diff --git a/src/citymania/cm_event.hpp b/src/citymania/cm_event.hpp index d3d28f9dc3..732b02eab6 100644 --- a/src/citymania/cm_event.hpp +++ b/src/citymania/cm_event.hpp @@ -22,7 +22,7 @@ namespace event { struct NewMonth {}; -struct TownBiilt { +struct TownBuilt { Town *town; }; diff --git a/src/citymania/cm_game.cpp b/src/citymania/cm_game.cpp index a442ae2172..5fec4c824d 100644 --- a/src/citymania/cm_game.cpp +++ b/src/citymania/cm_game.cpp @@ -11,12 +11,9 @@ namespace citymania { Game::Game() { this->events.listen(event::Slot::GAME, [this] (const event::NewMonth &) { for (Town *t : Town::Iterate()) { - t->cm.hs_last_month = t->cm.hs_total - t->cm.hs_total_prev; - t->cm.hs_total_prev = t->cm.hs_total; - t->cm.cs_last_month = t->cm.cs_total - t->cm.cs_total_prev; - t->cm.cs_total_prev = t->cm.cs_total; - t->cm.hr_last_month = t->cm.hr_total - t->cm.hr_total_prev; - t->cm.hr_total_prev = t->cm.hr_total; + t->cm.hs_last_month = t->cm.hs_this_month; + t->cm.cs_last_month = t->cm.cs_this_month; + t->cm.hr_last_month = t->cm.hr_this_month; t->cm.houses_reconstructed_last_month = t->cm.houses_reconstructed_this_month; t->cm.houses_reconstructed_this_month = 0; @@ -28,20 +25,23 @@ Game::Game() { this->towns_growth_tiles.clear(); }); this->events.listen(event::Slot::GAME, [this] (const event::TownBuilt &event) { - t->cm.hs_total = t->cm.hs_last_month = t->cm.hs_total_prev = 0; - t->cm.cs_total = t->cm.cs_last_month = t->cm.cs_total_prev = 0; - t->cm.hr_total = t->cm.hr_last_month = t->cm.hr_total_prev = 0; + auto t = event.town; + t->cm.hs_total = t->cm.hs_last_month = t->cm.hs_this_month = 0; + t->cm.cs_total = t->cm.cs_last_month = t->cm.cs_this_month = 0; + t->cm.hr_total = t->cm.hr_last_month = t->cm.hr_this_month = 0; }); this->events.listen(event::Slot::GAME, [this] (const event::TownGrowthSucceeded &event) { if (event.town->cache.num_houses <= event.prev_houses) { event.town->cm.hs_total++; + event.town->cm.hs_this_month++; this->set_town_growth_tile(event.tile, TownGrowthTileState::HS); } }); this->events.listen(event::Slot::GAME, [this] (const event::TownGrowthFailed &event) { event.town->cm.cs_total++; + event.town->cm.cs_this_month++; this->set_town_growth_tile(event.tile, TownGrowthTileState::CS); }); diff --git a/src/citymania/cm_saveload.cpp b/src/citymania/cm_saveload.cpp index 84746596e8..b4d69f4b9f 100644 --- a/src/citymania/cm_saveload.cpp +++ b/src/citymania/cm_saveload.cpp @@ -36,13 +36,13 @@ static void EncodeTowns(BitOStream &bs) bs.WriteBytes(t->cm.houses_demolished_this_month, 2); bs.WriteBytes(t->cm.houses_demolished_last_month, 2); bs.WriteBytes(t->cm.hs_total, 4); - bs.WriteBytes(t->cm.hs_total_prev, 2); + bs.WriteBytes(t->cm.hs_this_month, 2); bs.WriteBytes(t->cm.hs_last_month, 2); bs.WriteBytes(t->cm.cs_total, 4); - bs.WriteBytes(t->cm.cs_total_prev, 2); + bs.WriteBytes(t->cm.cs_this_month, 2); bs.WriteBytes(t->cm.cs_last_month, 2); bs.WriteBytes(t->cm.hr_total, 4); - bs.WriteBytes(t->cm.hr_total_prev, 2); + bs.WriteBytes(t->cm.hr_this_month, 2); bs.WriteBytes(t->cm.hr_last_month, 2); } } @@ -56,13 +56,13 @@ static void DecodeTowns(BitIStream &bs) t->cm.houses_demolished_this_month = bs.ReadBytes(2); t->cm.houses_demolished_last_month = bs.ReadBytes(2); t->cm.hs_total = bs.ReadBytes(2); - t->cm.hs_total_prev = bs.ReadBytes(2); + t->cm.hs_this_month = bs.ReadBytes(2); t->cm.hs_last_month = bs.ReadBytes(2); t->cm.cs_total = bs.ReadBytes(2); - t->cm.cs_total_prev = bs.ReadBytes(2); + t->cm.cs_this_month = bs.ReadBytes(2); t->cm.cs_last_month = bs.ReadBytes(2); t->cm.hr_total = bs.ReadBytes(2); - t->cm.hr_total_prev = bs.ReadBytes(2); + t->cm.hr_this_month = bs.ReadBytes(2); t->cm.hr_last_month = bs.ReadBytes(2); } } @@ -352,13 +352,13 @@ static void DecodeDataV1(BitIStream &bs) { continue; } t->cm.hs_total = bs.ReadBytes(4); - t->cm.hs_total_prev = bs.ReadBytes(2); + t->cm.hs_this_month = t->cm.hs_total - bs.ReadBytes(2); t->cm.hs_last_month = bs.ReadBytes(2); t->cm.cs_total = bs.ReadBytes(4); - t->cm.cs_total_prev = bs.ReadBytes(2); + t->cm.cs_this_month = t->cm.cs_total - bs.ReadBytes(2); t->cm.cs_last_month = bs.ReadBytes(2); t->cm.hr_total = bs.ReadBytes(4); - t->cm.hr_total_prev = bs.ReadBytes(2); + t->cm.hr_this_month = t->cm.hr_total -bs.ReadBytes(2); t->cm.hr_last_month = bs.ReadBytes(2); } DecodeTownsGrowthTiles(bs, _game->towns_growth_tiles); diff --git a/src/citymania/extensions/cmext_town.hpp b/src/citymania/extensions/cmext_town.hpp index 710a87e5b5..a1ca57869c 100644 --- a/src/citymania/extensions/cmext_town.hpp +++ b/src/citymania/extensions/cmext_town.hpp @@ -10,13 +10,13 @@ public: bool growing_by_chance = false; ///< whether town is growing due to 1/12 chance uint32 real_population = 0; ///< population including unfinished houses uint32 hs_total = 0; ///< number of skipped house buildings (HS) in total - uint16 hs_total_prev = 0; ///< number of skipped house buildings (HS) in total at the end of last month + uint16 hs_this_month = 0; ///< number of skipped house buildings (HS) during the current month uint16 hs_last_month = 0; ///< number of skipped house buildings (HS) during last month uint32 cs_total = 0; ///< number of skipped growth cycles (CS) in total - uint16 cs_total_prev = 0; ///< number of skipped growth cycles (CS) in total at the end of last month + uint16 cs_this_month = 0; ///< number of skipped growth cycles (CS) during the current month uint16 cs_last_month = 0; ///< number of skipped growth cycles (CS) during last month uint32 hr_total = 0; ///< number of houses removed by the server (HR) in total - uint16 hr_total_prev = 0; ///< number of houses removed by the server (HR) in total at the end of last month + uint16 hr_this_month = 0; ///< number of houses removed by the server (HR) during the current month uint16 hr_last_month = 0; ///< number of houses removed by the server (HR) during last month uint16 houses_constructing = 0; ///< number of houses currently being built uint16 houses_reconstructed_this_month = 0; ///< number of houses rebuilt this month