script 500-599 plus bugfix
This commit is contained in:
parent
9d4140734f
commit
d579ee1b64
@ -72,6 +72,9 @@ WRAPPER void CGarages::TriggerMessage(const char *text, int16, uint16 time, int1
|
|||||||
WRAPPER bool CGarages::IsPointWithinHideOutGarage(CVector&) { EAXJMP(0x428260); }
|
WRAPPER bool CGarages::IsPointWithinHideOutGarage(CVector&) { EAXJMP(0x428260); }
|
||||||
WRAPPER bool CGarages::IsPointWithinAnyGarage(CVector&) { EAXJMP(0x428320); }
|
WRAPPER bool CGarages::IsPointWithinAnyGarage(CVector&) { EAXJMP(0x428320); }
|
||||||
WRAPPER void CGarages::PlayerArrestedOrDied() { EAXJMP(0x427F60); }
|
WRAPPER void CGarages::PlayerArrestedOrDied() { EAXJMP(0x427F60); }
|
||||||
|
WRAPPER int16 CGarages::AddOne(float, float, float, float, float, float, uint8, uint32) { EAXJMP(0x421FA0); }
|
||||||
|
WRAPPER void CGarages::SetTargetCarForMissonGarage(int16, CVehicle*) { EAXJMP(0x426BD0); }
|
||||||
|
WRAPPER bool CGarages::HasCarBeenDroppedOffYet(int16) { EAXJMP(0x426C20); }
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
WRAPPER void CGarages::PrintMessages(void) { EAXJMP(0x426310); }
|
WRAPPER void CGarages::PrintMessages(void) { EAXJMP(0x426310); }
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
class CVehicle;
|
||||||
|
|
||||||
class CGarages
|
class CGarages
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -28,4 +30,7 @@ public:
|
|||||||
static bool IsPointWithinHideOutGarage(CVector&);
|
static bool IsPointWithinHideOutGarage(CVector&);
|
||||||
static bool IsPointWithinAnyGarage(CVector&);
|
static bool IsPointWithinAnyGarage(CVector&);
|
||||||
static void PlayerArrestedOrDied();
|
static void PlayerArrestedOrDied();
|
||||||
|
static int16 AddOne(float, float, float, float, float, float, uint8, uint32);
|
||||||
|
static void SetTargetCarForMissonGarage(int16, CVehicle*);
|
||||||
|
static bool HasCarBeenDroppedOffYet(int16);
|
||||||
};
|
};
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -31,6 +31,7 @@ public:
|
|||||||
static CCutsceneObject* GetCutsceneObject(int id) { return ms_pCutsceneObjects[id]; }
|
static CCutsceneObject* GetCutsceneObject(int id) { return ms_pCutsceneObjects[id]; }
|
||||||
static int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; }
|
static int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; }
|
||||||
static char *GetCutsceneName(void) { return ms_cutsceneName; }
|
static char *GetCutsceneName(void) { return ms_cutsceneName; }
|
||||||
|
static void SetCutsceneOffset(const CVector& vec) { ms_cutsceneOffset = vec; }
|
||||||
static bool HasCutsceneFinished(void);
|
static bool HasCutsceneFinished(void);
|
||||||
|
|
||||||
static void Initialise(void);
|
static void Initialise(void);
|
||||||
|
@ -10,6 +10,7 @@ WRAPPER void CMessages::InsertNumberInString(wchar* src, int n1, int n2, int n3,
|
|||||||
WRAPPER void CMessages::InsertPlayerControlKeysInString(wchar* src) { EAXJMP(0x52A490); }
|
WRAPPER void CMessages::InsertPlayerControlKeysInString(wchar* src) { EAXJMP(0x52A490); }
|
||||||
WRAPPER int CMessages::GetWideStringLength(wchar* src) { EAXJMP(0x529490); }
|
WRAPPER int CMessages::GetWideStringLength(wchar* src) { EAXJMP(0x529490); }
|
||||||
WRAPPER void CMessages::AddBigMessage(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529EB0); }
|
WRAPPER void CMessages::AddBigMessage(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529EB0); }
|
||||||
|
WRAPPER void CMessages::AddBigMessageQ(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529F60); }
|
||||||
WRAPPER void CMessages::AddBigMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AD10); }
|
WRAPPER void CMessages::AddBigMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AD10); }
|
||||||
WRAPPER void CMessages::AddBigMessageWithNumberQ(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AE00); }
|
WRAPPER void CMessages::AddBigMessageWithNumberQ(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6) { EAXJMP(0x52AE00); }
|
||||||
WRAPPER void CMessages::AddMessage(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529900); }
|
WRAPPER void CMessages::AddMessage(wchar* key, uint32 time, uint16 pos) { EAXJMP(0x529900); }
|
||||||
|
@ -42,6 +42,7 @@ public:
|
|||||||
static void InsertPlayerControlKeysInString(wchar* src);
|
static void InsertPlayerControlKeysInString(wchar* src);
|
||||||
static int GetWideStringLength(wchar *src);
|
static int GetWideStringLength(wchar *src);
|
||||||
static void AddBigMessage(wchar* key, uint32 time, uint16 pos);
|
static void AddBigMessage(wchar* key, uint32 time, uint16 pos);
|
||||||
|
static void AddBigMessageQ(wchar* key, uint32 time, uint16 pos);
|
||||||
static void AddBigMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
|
static void AddBigMessageWithNumber(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
|
||||||
static void AddBigMessageWithNumberQ(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
|
static void AddBigMessageWithNumberQ(wchar* key, uint32 time, uint16 pos, int n1, int n2, int n3, int n4, int n5, int n6);
|
||||||
static void AddMessage(wchar* key, uint32 time, uint16 pos);
|
static void AddMessage(wchar* key, uint32 time, uint16 pos);
|
||||||
|
@ -72,6 +72,22 @@ CPlayerInfo::ArrestPlayer()
|
|||||||
CStats::TimesArrested++;
|
CStats::TimesArrested++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
CPlayerInfo::IsPlayerInRemoteMode()
|
||||||
|
{
|
||||||
|
return m_pRemoteVehicle || m_bInRemoteMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CPlayerInfo::PlayerFailedCriticalMission()
|
||||||
|
{
|
||||||
|
if (m_WBState != WBSTATE_PLAYING)
|
||||||
|
return;
|
||||||
|
m_WBState = WBSTATE_FAILED_CRITICAL_MISSION;
|
||||||
|
m_nWBTime = CTimer::GetTimeInMilliseconds();
|
||||||
|
CDarkel::ResetOnPlayerDeath();
|
||||||
|
}
|
||||||
|
|
||||||
STARTPATCHES
|
STARTPATCHES
|
||||||
InjectHook(0x4A1700, &CPlayerInfo::LoadPlayerSkin, PATCH_JUMP);
|
InjectHook(0x4A1700, &CPlayerInfo::LoadPlayerSkin, PATCH_JUMP);
|
||||||
InjectHook(0x4A1750, &CPlayerInfo::DeletePlayerSkin, PATCH_JUMP);
|
InjectHook(0x4A1750, &CPlayerInfo::DeletePlayerSkin, PATCH_JUMP);
|
||||||
|
@ -75,6 +75,8 @@ public:
|
|||||||
void Process(void);
|
void Process(void);
|
||||||
void KillPlayer(void);
|
void KillPlayer(void);
|
||||||
void ArrestPlayer(void);
|
void ArrestPlayer(void);
|
||||||
|
bool IsPlayerInRemoteMode(void);
|
||||||
|
void PlayerFailedCriticalMission(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
static_assert(sizeof(CPlayerInfo) == 0x13C, "CPlayerInfo: error");
|
static_assert(sizeof(CPlayerInfo) == 0x13C, "CPlayerInfo: error");
|
||||||
|
@ -14,6 +14,7 @@ CPager& CUserDisplay::Pager = *(CPager*)0x8F2744;
|
|||||||
CCurrentVehicle& CUserDisplay::CurrentVehicle = *(CCurrentVehicle*)0x8F5FE8;
|
CCurrentVehicle& CUserDisplay::CurrentVehicle = *(CCurrentVehicle*)0x8F5FE8;
|
||||||
|
|
||||||
WRAPPER void CPager::AddMessage(wchar*, uint16, uint16, uint16) { EAXJMP(0x52B940); }
|
WRAPPER void CPager::AddMessage(wchar*, uint16, uint16, uint16) { EAXJMP(0x52B940); }
|
||||||
|
WRAPPER void CPager::AddMessageWithNumber(wchar*, int, int, int, int, int, uint16, uint16, uint16) { EAXJMP(0x52BB50); }
|
||||||
|
|
||||||
void COnscreenTimer::Init() {
|
void COnscreenTimer::Init() {
|
||||||
m_bDisabled = false;
|
m_bDisabled = false;
|
||||||
|
@ -54,6 +54,7 @@ class CPager
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void AddMessage(wchar*, uint16, uint16, uint16);
|
void AddMessage(wchar*, uint16, uint16, uint16);
|
||||||
|
void AddMessageWithNumber(wchar*, int, int, int, int, int, uint16, uint16, uint16);
|
||||||
};
|
};
|
||||||
|
|
||||||
class CUserDisplay
|
class CUserDisplay
|
||||||
|
@ -996,6 +996,19 @@ CWorld::RemoveFallenCars(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CWorld::StopAllLawEnforcersInTheirTracks(void)
|
||||||
|
{
|
||||||
|
int poolSize = CPools::GetVehiclePool()->GetSize();
|
||||||
|
for (int poolIndex = poolSize - 1; poolIndex >= 0; poolIndex--) {
|
||||||
|
CVehicle* veh = CPools::GetVehiclePool()->GetSlot(poolIndex);
|
||||||
|
if (veh) {
|
||||||
|
if (veh->bIsLawEnforcer)
|
||||||
|
veh->SetMoveSpeed(0.0f, 0.0f, 0.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CWorld::Process(void)
|
CWorld::Process(void)
|
||||||
{
|
{
|
||||||
|
@ -120,6 +120,8 @@ public:
|
|||||||
static void RemoveFallenPeds();
|
static void RemoveFallenPeds();
|
||||||
static void RemoveFallenCars();
|
static void RemoveFallenCars();
|
||||||
|
|
||||||
|
static void StopAllLawEnforcersInTheirTracks();
|
||||||
|
|
||||||
static void Initialise();
|
static void Initialise();
|
||||||
static void ShutDown();
|
static void ShutDown();
|
||||||
static void Process();
|
static void Process();
|
||||||
|
@ -27,6 +27,11 @@ float &CWeather::Rainbow = *(float*)0x940598;
|
|||||||
bool &CWeather::bScriptsForceRain = *(bool*)0x95CD7D;
|
bool &CWeather::bScriptsForceRain = *(bool*)0x95CD7D;
|
||||||
bool &CWeather::Stored_StateStored = *(bool*)0x95CDC1;
|
bool &CWeather::Stored_StateStored = *(bool*)0x95CDC1;
|
||||||
|
|
||||||
|
float &CWeather::Stored_InterpolationValue = *(float*)0x942F54;
|
||||||
|
int16 &CWeather::Stored_OldWeatherType = *(int16*)0x95CC68;
|
||||||
|
int16 &CWeather::Stored_NewWeatherType = *(int16*)0x95CCAE;
|
||||||
|
float &CWeather::Stored_Rain = *(float*)0x885B4C;
|
||||||
|
|
||||||
WRAPPER void CWeather::RenderRainStreaks(void) { EAXJMP(0x524550); }
|
WRAPPER void CWeather::RenderRainStreaks(void) { EAXJMP(0x524550); }
|
||||||
|
|
||||||
void CWeather::ReleaseWeather()
|
void CWeather::ReleaseWeather()
|
||||||
@ -45,3 +50,23 @@ void CWeather::ForceWeatherNow(int16 weather)
|
|||||||
NewWeatherType = weather;
|
NewWeatherType = weather;
|
||||||
ForcedWeatherType = weather;
|
ForcedWeatherType = weather;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CWeather::StoreWeatherState()
|
||||||
|
{
|
||||||
|
Stored_StateStored = true;
|
||||||
|
Stored_InterpolationValue = InterpolationValue;
|
||||||
|
Stored_Rain = Rain;
|
||||||
|
Stored_NewWeatherType = NewWeatherType;
|
||||||
|
Stored_OldWeatherType = OldWeatherType;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CWeather::RestoreWeatherState()
|
||||||
|
{
|
||||||
|
#ifdef FIX_BUGS // it's not used anyway though
|
||||||
|
Stored_StateStored = false;
|
||||||
|
#endif
|
||||||
|
InterpolationValue = Stored_InterpolationValue;
|
||||||
|
Rain = Stored_Rain;
|
||||||
|
NewWeatherType = Stored_NewWeatherType;
|
||||||
|
OldWeatherType = Stored_OldWeatherType;
|
||||||
|
}
|
@ -32,10 +32,16 @@ public:
|
|||||||
|
|
||||||
static bool &bScriptsForceRain;
|
static bool &bScriptsForceRain;
|
||||||
static bool &Stored_StateStored;
|
static bool &Stored_StateStored;
|
||||||
|
static float &Stored_InterpolationValue;
|
||||||
|
static int16 &Stored_OldWeatherType;
|
||||||
|
static int16 &Stored_NewWeatherType;
|
||||||
|
static float &Stored_Rain;
|
||||||
|
|
||||||
static void RenderRainStreaks(void);
|
static void RenderRainStreaks(void);
|
||||||
|
|
||||||
static void ReleaseWeather();
|
static void ReleaseWeather();
|
||||||
static void ForceWeather(int16);
|
static void ForceWeather(int16);
|
||||||
static void ForceWeatherNow(int16);
|
static void ForceWeatherNow(int16);
|
||||||
|
static void StoreWeatherState();
|
||||||
|
static void RestoreWeatherState();
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user