Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions Client/game_sa/CGameSA.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,9 @@ void CGameSA::SetMinuteDuration ( unsigned long ulTime )

bool CGameSA::IsCheatEnabled ( const char* szCheatName )
{
if (!strcmp ( szCheatName, PROP_RANDOM_FOLIAGE ))
return IsRandomFoliageEnabled ();

if ( !strcmp ( szCheatName, PROP_SNIPER_MOON ) )
return IsMoonEasterEggEnabled ();

Expand All @@ -580,6 +583,12 @@ bool CGameSA::IsCheatEnabled ( const char* szCheatName )

bool CGameSA::SetCheatEnabled ( const char* szCheatName, bool bEnable )
{
if (!strcmp ( szCheatName, PROP_RANDOM_FOLIAGE ))
{
SetRandomFoliageEnabled ( bEnable );
return true;
}

if ( !strcmp( szCheatName, PROP_SNIPER_MOON ) )
{
SetMoonEasterEggEnabled ( bEnable );
Expand All @@ -598,6 +607,8 @@ bool CGameSA::SetCheatEnabled ( const char* szCheatName, bool bEnable )

void CGameSA::ResetCheats ()
{
SetRandomFoliageEnabled ( true );

SetMoonEasterEggEnabled ( false );

std::map < std::string, SCheatSA* >::iterator it;
Expand All @@ -610,6 +621,19 @@ void CGameSA::ResetCheats ()
}
}

bool CGameSA::IsRandomFoliageEnabled ()
{
return *(unsigned char *)0x5DD01B == 0x74;
}

void CGameSA::SetRandomFoliageEnabled ( bool bEnabled )
{
// 0xEB skip random foliage generation
MemPut < BYTE > ( 0x5DD01B, bEnabled ? 0x74 : 0xEB );
// 0x74 destroy random foliage loaded
MemPut < BYTE > ( 0x5DC536, bEnabled ? 0x75 : 0x74 );
}

bool CGameSA::IsMoonEasterEggEnabled ()
{
return *(unsigned char *)0x73ABCF == 0x75;
Expand Down
4 changes: 4 additions & 0 deletions Client/game_sa/CGameSA.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@
#define CHEAT_NEVERWANTED "neverwanted"
#define CHEAT_HEALTARMORMONEY "healtharmormoney"

#define PROP_RANDOM_FOLIAGE "randomfoliage"
#define PROP_SNIPER_MOON "snipermoon"

struct SCheatSA {
Expand Down Expand Up @@ -215,6 +216,9 @@ class CGameSA : public CGame
bool SetCheatEnabled ( const char* szCheatName, bool bEnable );
void ResetCheats ();

bool IsRandomFoliageEnabled ();
void SetRandomFoliageEnabled ( bool bEnable );

bool IsMoonEasterEggEnabled ();
void SetMoonEasterEggEnabled ( bool bEnabled );

Expand Down
Loading