MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / Map

Method Map

PanzerChasm/server/map_save_load.cpp:180–409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

178}
179
180Map::Map(
181 const DifficultyType difficulty,
182 const GameRules game_rules,
183 const MapDataConstPtr& map_data,
184 LoadStream& load_stream,
185 const GameResourcesConstPtr& game_resources,
186 MapEndCallback map_end_callback )
187 : difficulty_(difficulty)
188 , game_rules_(game_rules)
189 , map_data_(map_data)
190 , game_resources_(game_resources)
191 , map_end_callback_( std::move( map_end_callback ) )
192 , random_generator_( std::make_shared<LongRand>() )
193 , collision_index_( map_data )
194{
195 PC_ASSERT( map_data_ != nullptr );
196 PC_ASSERT( game_resources_ != nullptr );
197
198 // Random generator.
199 uint32_t rand_state;
200 load_stream.ReadUInt32( rand_state );
201 random_generator_->SetInnerState( rand_state );
202
203 // Dynamic walls
204 unsigned int dynamic_walls_count;
205 load_stream.ReadUInt32( dynamic_walls_count );
206 PC_ASSERT( dynamic_walls_count == map_data_->dynamic_walls.size() );
207 dynamic_walls_.resize( dynamic_walls_count );
208 for( DynamicWall& wall : dynamic_walls_ )
209 {
210 load_stream.ReadVec2( wall.vert_pos[0] );
211 load_stream.ReadVec2( wall.vert_pos[1] );
212 load_stream.ReadVec2( wall.vert_move_speed[0] );
213 load_stream.ReadVec2( wall.vert_move_speed[1] );
214 load_stream.ReadFloat( wall.z );
215 load_stream.ReadUInt8( wall.texture_id );
216 load_stream.ReadBool( wall.mortal );
217 }
218
219 // Procedures
220 unsigned int procedures_count;
221 load_stream.ReadUInt32( procedures_count );
222 PC_ASSERT( procedures_count == map_data_->procedures.size() );
223 procedures_.resize( procedures_count );
224 for( ProcedureState& procedure_state : procedures_ )
225 {
226 load_stream.ReadBool( procedure_state.locked );
227 load_stream.ReadBool( procedure_state.first_message_printed );
228 unsigned int movement_state;
229 load_stream.ReadUInt32( movement_state );
230 procedure_state.movement_state= static_cast<ProcedureState::MovementState>( movement_state );
231 load_stream.ReadFloat( procedure_state.movement_stage );
232 load_stream.ReadTime( procedure_state.last_state_change_time );
233 }
234
235 // Map end flag
236 load_stream.ReadBool( map_end_triggered_ );
237

Callers

nothing calls this directly

Calls 12

ReadUInt32Method · 0.80
SetInnerStateMethod · 0.80
ReadVec2Method · 0.80
ReadFloatMethod · 0.80
ReadUInt8Method · 0.80
ReadBoolMethod · 0.80
ReadTimeMethod · 0.80
ReadVec3Method · 0.80
ReadInt32Method · 0.80
ReadUInt16Method · 0.80
SetRandomGeneratorMethod · 0.80
ReadInt8Method · 0.80

Tested by

no test coverage detected