Skip to content

Commit

Permalink
Add "traincinemacamera" special property
Browse files Browse the repository at this point in the history
Cinematic camera for the trains
  • Loading branch information
ZReC committed May 1, 2017
1 parent cc48fb6 commit 795b993
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 6 deletions.
26 changes: 23 additions & 3 deletions Client/game_sa/CGameSA.cpp
Expand Up @@ -578,6 +578,9 @@ bool CGameSA::IsCheatEnabled ( const char* szCheatName )
if ( !strcmp ( szCheatName, PROP_EXTRA_AIR_RESISTANCE ) ) if ( !strcmp ( szCheatName, PROP_EXTRA_AIR_RESISTANCE ) )
return IsExtraAirResistanceEnabled (); return IsExtraAirResistanceEnabled ();


if (!strcmp ( szCheatName, PROP_TRAIN_CINEMA_CAMERA ))
return IsTrainCinematicCameraEnabled ();

std::map < std::string, SCheatSA* >::iterator it = m_Cheats.find ( szCheatName ); std::map < std::string, SCheatSA* >::iterator it = m_Cheats.find ( szCheatName );
if ( it == m_Cheats.end () ) if ( it == m_Cheats.end () )
return false; return false;
Expand All @@ -604,6 +607,12 @@ bool CGameSA::SetCheatEnabled ( const char* szCheatName, bool bEnable )
return true; return true;
} }


if (!strcmp ( szCheatName, PROP_TRAIN_CINEMA_CAMERA ))
{
SetTrainCinematicCameraEnabled ( bEnable );
return true;
}

std::map < std::string, SCheatSA* >::iterator it = m_Cheats.find ( szCheatName ); std::map < std::string, SCheatSA* >::iterator it = m_Cheats.find ( szCheatName );
if ( it == m_Cheats.end () ) if ( it == m_Cheats.end () )
return false; return false;
Expand All @@ -619,6 +628,7 @@ void CGameSA::ResetCheats ()
SetRandomFoliageEnabled ( true ); SetRandomFoliageEnabled ( true );
SetMoonEasterEggEnabled ( false ); SetMoonEasterEggEnabled ( false );
SetExtraAirResistanceEnabled ( true ); SetExtraAirResistanceEnabled ( true );
SetTrainCinematicCameraEnabled ( false );


std::map < std::string, SCheatSA* >::iterator it; std::map < std::string, SCheatSA* >::iterator it;
for ( it = m_Cheats.begin (); it != m_Cheats.end (); it++ ) { for ( it = m_Cheats.begin (); it != m_Cheats.end (); it++ ) {
Expand All @@ -635,12 +645,12 @@ bool CGameSA::IsRandomFoliageEnabled ()
return *(unsigned char *)0x5DD01B == 0x74; return *(unsigned char *)0x5DD01B == 0x74;
} }


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


bool CGameSA::IsMoonEasterEggEnabled () bool CGameSA::IsMoonEasterEggEnabled ()
Expand All @@ -664,6 +674,16 @@ void CGameSA::SetExtraAirResistanceEnabled ( bool bEnable )
MemPut < BYTE > ( 0x72DDD9, bEnable ? 0x01 : 0x00 ); MemPut < BYTE > ( 0x72DDD9, bEnable ? 0x01 : 0x00 );
} }


bool CGameSA::IsTrainCinematicCameraEnabled ()
{
return *(unsigned char *)0x52A535 == 0x01;
}

void CGameSA::SetTrainCinematicCameraEnabled ( bool bEnable )
{
MemPut < BYTE > ( 0x52A535, bEnable ? 0x01 : 0x00 );
}

bool CGameSA::GetJetpackWeaponEnabled ( eWeaponType weaponType ) bool CGameSA::GetJetpackWeaponEnabled ( eWeaponType weaponType )
{ {
if ( weaponType >= WEAPONTYPE_BRASSKNUCKLE && weaponType < WEAPONTYPE_LAST_WEAPONTYPE ) if ( weaponType >= WEAPONTYPE_BRASSKNUCKLE && weaponType < WEAPONTYPE_LAST_WEAPONTYPE )
Expand Down
6 changes: 5 additions & 1 deletion Client/game_sa/CGameSA.h
Expand Up @@ -90,6 +90,7 @@
#define PROP_RANDOM_FOLIAGE "randomfoliage" #define PROP_RANDOM_FOLIAGE "randomfoliage"
#define PROP_SNIPER_MOON "snipermoon" #define PROP_SNIPER_MOON "snipermoon"
#define PROP_EXTRA_AIR_RESISTANCE "extraairresistance" #define PROP_EXTRA_AIR_RESISTANCE "extraairresistance"
#define PROP_TRAIN_CINEMA_CAMERA "traincinemacamera"


struct SCheatSA { struct SCheatSA {
BYTE* m_byAddress; //Cheat Address BYTE* m_byAddress; //Cheat Address
Expand Down Expand Up @@ -221,11 +222,14 @@ class CGameSA : public CGame
void SetRandomFoliageEnabled ( bool bEnable ); void SetRandomFoliageEnabled ( bool bEnable );


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


bool IsExtraAirResistanceEnabled (); bool IsExtraAirResistanceEnabled ();
void SetExtraAirResistanceEnabled ( bool bEnable ); void SetExtraAirResistanceEnabled ( bool bEnable );


bool IsTrainCinematicCameraEnabled ();
void SetTrainCinematicCameraEnabled ( bool bEnable );

bool VerifySADataFileNames (); bool VerifySADataFileNames ();
bool PerformChecks (); bool PerformChecks ();
int& GetCheckStatus ( void ) { return m_iCheckStatus; } int& GetCheckStatus ( void ) { return m_iCheckStatus; }
Expand Down
4 changes: 2 additions & 2 deletions Client/multiplayer_sa/CMultiplayerSA.cpp
Expand Up @@ -739,8 +739,8 @@ void CMultiplayerSA::InitHooks()
MemPut < BYTE > ( 0x4EB3C1, 0x10 ); MemPut < BYTE > ( 0x4EB3C1, 0x10 );
MemPut < BYTE > ( 0x4EB3C2, 0x00 ); MemPut < BYTE > ( 0x4EB3C2, 0x00 );


// DISABLE cinematic camera for trains /* DISABLE cinematic camera for trains
MemPut < BYTE > ( 0x52A535, 0 ); MemPut < BYTE > ( 0x52A535, 0 );*/


// DISABLE wanted levels for military zones // DISABLE wanted levels for military zones
MemPut < BYTE > ( 0x72DF0D, 0xEB ); MemPut < BYTE > ( 0x72DF0D, 0xEB );
Expand Down

0 comments on commit 795b993

Please sign in to comment.