mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 11:49:00 +00:00
Merge branch 'master' of git://github.com/GTAmodding/re3 into erorcun
This commit is contained in:
commit
30c780c300
10 changed files with 904 additions and 22 deletions
|
@ -75,6 +75,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:
|
||||
|
@ -30,4 +32,7 @@ public:
|
|||
static void PlayerArrestedOrDied();
|
||||
static void Init(void);
|
||||
static void Update(void);
|
||||
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);
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -998,6 +998,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 RepositionCertainDynamicObjects();
|
||||
|
|
|
@ -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); }
|
||||
WRAPPER void CWeather::Update(void) { EAXJMP(0x522C10); }
|
||||
|
||||
|
@ -46,3 +51,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,6 +32,10 @@ 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 Update(void);
|
||||
|
@ -39,4 +43,6 @@ public:
|
|||
static void ReleaseWeather();
|
||||
static void ForceWeather(int16);
|
||||
static void ForceWeatherNow(int16);
|
||||
static void StoreWeatherState();
|
||||
static void RestoreWeatherState();
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue