Skip to content

Commit

Permalink
[TD] Fixes loading HouseClass and Dino missions.
Browse files Browse the repository at this point in the history
  • Loading branch information
OmniBlade committed Jun 18, 2024
1 parent ee2ad03 commit 678faa0
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 6 deletions.
9 changes: 6 additions & 3 deletions common/region.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,8 @@
class RegionClass
{
public:
RegionClass(void)
{
Threat = 0;
RegionClass(void){
//Threat = 0;
};
~RegionClass(void){};
int operator!=(RegionClass const& region)
Expand Down Expand Up @@ -75,6 +74,10 @@ class RegionClass
{
return Threat;
};
void Init()
{
Threat = 0;
}

protected:
int Threat;
Expand Down
3 changes: 3 additions & 0 deletions tiberiandawn/credits.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ class CreditClass
** Constructors, Destructors, and overloaded operators.
*/
CreditClass(void);
CreditClass(NoInitClass const&)
{
}

/*---------------------------------------------------------------------
** Member function prototypes.
Expand Down
3 changes: 3 additions & 0 deletions tiberiandawn/house.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,9 @@ 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;
Expand Down
31 changes: 28 additions & 3 deletions tiberiandawn/house.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/*---------------------------------------------------------------------
Expand Down
5 changes: 5 additions & 0 deletions tiberiandawn/saveload.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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);
}

Expand Down
4 changes: 4 additions & 0 deletions tiberiandawn/super.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 678faa0

Please sign in to comment.