summaryrefslogtreecommitdiff
path: root/src/json.rs
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2018-05-14 23:31:07 +0200
committerJustin Worthe <justin@worthe-it.co.za>2018-05-14 23:31:07 +0200
commiteacb65f120ca0fcbd920f14160404cb6c709b4ef (patch)
tree1c30a23422f71022a01f91139731963d298366d3 /src/json.rs
parentd9bf3dbdaeab077e7b27565d1c59a4e8faff9313 (diff)
Added running total of unoccupied cells
Diffstat (limited to 'src/json.rs')
-rw-r--r--src/json.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/json.rs b/src/json.rs
index 10c3ab8..4253a19 100644
--- a/src/json.rs
+++ b/src/json.rs
@@ -12,7 +12,10 @@ pub fn read_state_from_file(filename: &str) -> Result<(engine::settings::GameSet
let mut content = String::new();
file.read_to_string(&mut content)?;
let state: State = serde_json::from_str(content.as_ref())?;
- Ok((state.to_engine_settings(), state.to_engine()))
+
+ let engine_settings = state.to_engine_settings();
+ let engine_state = state.to_engine(&engine_settings);
+ Ok((engine_settings, engine_state))
}
#[derive(Deserialize)]
@@ -116,16 +119,16 @@ impl State {
}
}
- fn to_engine(&self) -> engine::GameState {
- engine::GameState {
- status: engine::GameStatus::Continue,
- player: self.player().to_engine(),
- opponent: self.opponent().to_engine(),
- player_buildings: self.buildings_to_engine('A'),
- opponent_buildings: self.buildings_to_engine('B'),
- player_missiles: self.missiles_to_engine('A'),
- opponent_missiles: self.missiles_to_engine('B'),
- }
+ fn to_engine(&self, settings: &engine::settings::GameSettings) -> engine::GameState {
+ engine::GameState::new(
+ self.player().to_engine(),
+ self.opponent().to_engine(),
+ self.buildings_to_engine('A'),
+ self.buildings_to_engine('B'),
+ self.missiles_to_engine('A'),
+ self.missiles_to_engine('B'),
+ settings
+ )
}
fn player(&self) -> &Player {