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::IsPointWithinAnyGarage(CVector&) { EAXJMP(0x428320); }
|
||||
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
|
||||
WRAPPER void CGarages::PrintMessages(void) { EAXJMP(0x426310); }
|
||||
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
class CVehicle;
|
||||
|
||||
class CGarages
|
||||
{
|
||||
public:
|
||||
@ -28,4 +30,7 @@ public:
|
||||
static bool IsPointWithinHideOutGarage(CVector&);
|
||||
static bool IsPointWithinAnyGarage(CVector&);
|
||||
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 int GetCutsceneTimeInMilleseconds(void) { return 1000.0f * ms_cutsceneTimer; }
|
||||
static char *GetCutsceneName(void) { return ms_cutsceneName; }
|
||||
static void SetCutsceneOffset(const CVector& vec) { ms_cutsceneOffset = vec; }
|
||||
static bool HasCutsceneFinished(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 int CMessages::GetWideStringLength(wchar* src) { EAXJMP(0x529490); }
|
||||
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::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); }
|
||||
|
@ -42,6 +42,7 @@ public:
|
||||
static void InsertPlayerControlKeysInString(wchar* src);
|
||||
static int GetWideStringLength(wchar *src);
|
||||
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 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);
|
||||
|
@ -72,6 +72,22 @@ CPlayerInfo::ArrestPlayer()
|
||||
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
|
||||
InjectHook(0x4A1700, &CPlayerInfo::LoadPlayerSkin, PATCH_JUMP);
|
||||
InjectHook(0x4A1750, &CPlayerInfo::DeletePlayerSkin, PATCH_JUMP);
|
||||
|
@ -75,6 +75,8 @@ public:
|
||||
void Process(void);
|
||||
void KillPlayer(void);
|
||||
void ArrestPlayer(void);
|
||||
bool IsPlayerInRemoteMode(void);
|
||||
void PlayerFailedCriticalMission(void);
|
||||
};
|
||||
|
||||
static_assert(sizeof(CPlayerInfo) == 0x13C, "CPlayerInfo: error");
|
||||
|
@ -14,6 +14,7 @@ CPager& CUserDisplay::Pager = *(CPager*)0x8F2744;
|
||||
CCurrentVehicle& CUserDisplay::CurrentVehicle = *(CCurrentVehicle*)0x8F5FE8;
|
||||
|
||||
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() {
|
||||
m_bDisabled = false;
|
||||
|
@ -54,6 +54,7 @@ class CPager
|
||||
{
|
||||
public:
|
||||
void AddMessage(wchar*, uint16, uint16, uint16);
|
||||
void AddMessageWithNumber(wchar*, int, int, int, int, int, uint16, uint16, uint16);
|
||||
};
|
||||
|
||||
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
|
||||
CWorld::Process(void)
|
||||
{
|
||||
|
@ -120,6 +120,8 @@ public:
|
||||
static void RemoveFallenPeds();
|
||||
static void RemoveFallenCars();
|
||||
|
||||
static void StopAllLawEnforcersInTheirTracks();
|
||||
|
||||
static void Initialise();
|
||||
static void ShutDown();
|
||||
static void Process();
|
||||
|
@ -27,6 +27,11 @@ float &CWeather::Rainbow = *(float*)0x940598;
|
||||
bool &CWeather::bScriptsForceRain = *(bool*)0x95CD7D;
|
||||
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); }
|
||||
|
||||
void CWeather::ReleaseWeather()
|
||||
@ -45,3 +50,23 @@ void CWeather::ForceWeatherNow(int16 weather)
|
||||
NewWeatherType = 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 &Stored_StateStored;
|
||||
static float &Stored_InterpolationValue;
|
||||
static int16 &Stored_OldWeatherType;
|
||||
static int16 &Stored_NewWeatherType;
|
||||
static float &Stored_Rain;
|
||||
|
||||
static void RenderRainStreaks(void);
|
||||
|
||||
static void ReleaseWeather();
|
||||
static void ForceWeather(int16);
|
||||
static void ForceWeatherNow(int16);
|
||||
static void StoreWeatherState();
|
||||
static void RestoreWeatherState();
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user