diff --git a/common/region.h b/common/region.h index 3085328e..e8d67a8d 100644 --- a/common/region.h +++ b/common/region.h @@ -40,7 +40,7 @@ class RegionClass public: RegionClass(void) { - Threat = 0; + //Threat = 0; }; ~RegionClass(void){}; int operator!=(RegionClass const& region) @@ -75,7 +75,10 @@ class RegionClass { return Threat; }; - + void Init() + { + Threat = 0; + } protected: int Threat; }; diff --git a/tiberiandawn/credits.h b/tiberiandawn/credits.h index 152fe945..2b867668 100644 --- a/tiberiandawn/credits.h +++ b/tiberiandawn/credits.h @@ -50,6 +50,9 @@ class CreditClass ** Constructors, Destructors, and overloaded operators. */ CreditClass(void); + CreditClass(NoInitClass const&) + { + } /*--------------------------------------------------------------------- ** Member function prototypes. diff --git a/tiberiandawn/house.cpp b/tiberiandawn/house.cpp index 1115d860..f22691da 100644 --- a/tiberiandawn/house.cpp +++ b/tiberiandawn/house.cpp @@ -367,7 +367,10 @@ HouseClass::HouseClass(HousesType house) , CapturedBuildings() , TotalCrates() { - + for (int i = 0; i < MAP_TOTAL_REGIONS; ++i) { + Regions[i].Init(); + } + for (HousesType i = HOUSE_FIRST; i < HOUSE_COUNT; i++) { UnitsKilled[i] = 0; BuildingsKilled[i] = 0; diff --git a/tiberiandawn/house.h b/tiberiandawn/house.h index 8e0d3b09..1ffcb36a 100644 --- a/tiberiandawn/house.h +++ b/tiberiandawn/house.h @@ -421,10 +421,35 @@ class HouseClass { } HouseClass(void) - : Class(0){}; + : Class(0) + { + for (int i = 0; i < MAP_TOTAL_REGIONS; ++i) { + Regions[i].Init(); + } + } HouseClass(HousesType house); - HouseClass(NoInitClass const&) - : Class(this->Class){}; + HouseClass(NoInitClass const& noinit) + : Class(this->Class) + , FreeHarvester(noinit) + , IonCannon(noinit) + , AirStrike(noinit) + , NukeStrike(noinit) + , AlertTime(noinit) + , BorrowedTime(noinit) + , BlitzTime(noinit) + , VisibleCredits(noinit) + , ScreenShakeTime(noinit) + , DamageTime(noinit) + , TeamTime(noinit) + , TriggerTime(noinit) + , SpeakAttackDelay(noinit) + , SpeakPowerDelay(noinit) + , SpeakMoneyDelay(noinit) + , SpeakMaxedDelay(noinit) + , Attack(noinit) + , AITimer(noinit) + { + } operator HousesType(void) const; /*--------------------------------------------------------------------- diff --git a/tiberiandawn/saveload.cpp b/tiberiandawn/saveload.cpp index 12c562d8..425890b0 100644 --- a/tiberiandawn/saveload.cpp +++ b/tiberiandawn/saveload.cpp @@ -638,6 +638,7 @@ bool Save_Misc_Values(FileClass& file) // This is new... file.Write(ActionMovie, sizeof(ActionMovie)); file.Write(&TempleIoned, sizeof(TempleIoned)); + file.Write(&AreThingiesEnabled, sizeof(AreThingiesEnabled)); return (true); } @@ -752,6 +753,10 @@ bool Load_Misc_Values(FileClass& file) file.Read(&TempleIoned, sizeof(TempleIoned)); } + if (file.Seek(0, SEEK_CUR) < file.Size()) { + file.Read(&AreThingiesEnabled, sizeof(AreThingiesEnabled)); + } + return (true); } diff --git a/tiberiandawn/super.h b/tiberiandawn/super.h index 8e30e3e1..52a046f5 100644 --- a/tiberiandawn/super.h +++ b/tiberiandawn/super.h @@ -45,6 +45,10 @@ class SuperClass VoxType ready = VOX_NONE, VoxType impatient = VOX_NONE, VoxType suspend = VOX_NONE); + SuperClass(NoInitClass const& noinit) + : Control(noinit) + { + } bool Suspend(bool on); bool Enable(bool onetime = false, bool player = false, bool quiet = false);