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

Method Save

PanzerChasm/client/client.cpp:111–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111void Client::Save( SaveLoadBuffer& buffer, SaveComment& out_save_comment )
112{
113 PC_ASSERT( current_map_data_ != nullptr );
114 PC_ASSERT( minimap_state_ != nullptr );
115 if( minimap_state_ == nullptr ) return;
116
117 SaveStream save_stream( buffer );
118
119 save_stream.WriteUInt32( requested_weapon_index_ );
120 save_stream.WriteBool( minimap_mode_ );
121 save_stream.WriteUInt32( current_map_data_->number );
122
123 const MinimapState::WallsVisibility& static_walls_visibility = minimap_state_->GetStaticWallsVisibility ();
124 const MinimapState::WallsVisibility& dynamic_walls_visibility= minimap_state_->GetDynamicWallsVisibility();
125
126 // TODO - write bools in more compact form
127
128 save_stream.WriteUInt32( static_cast<uint32_t>(static_walls_visibility .size()) );
129 for( const bool& wall_visibility : static_walls_visibility )
130 save_stream.WriteBool( wall_visibility );
131
132 save_stream.WriteUInt32( static_cast<uint32_t>(dynamic_walls_visibility.size()) );
133 for( const bool& wall_visibility : dynamic_walls_visibility )
134 save_stream.WriteBool( wall_visibility );
135
136 // Write comment
137 std::snprintf( out_save_comment.data(), sizeof(SaveComment), "Level%2d health %03d", current_map_data_->number, player_state_.health );
138}
139
140void Client::Load( const SaveLoadBuffer& buffer, unsigned int& buffer_pos )
141{

Callers 1

DoSaveMethod · 0.45

Calls 2

WriteUInt32Method · 0.80
WriteBoolMethod · 0.80

Tested by

no test coverage detected