1
0
Fork 0
mirror of https://git.rip/DMCA_FUCKER/re3.git synced 2024-12-24 16:00:00 +00:00

Merge pull request #255 from Nick007J/master

script 500-599
This commit is contained in:
erorcun 2019-10-30 03:20:15 +03:00 committed by GitHub
commit 34090ab4d6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 904 additions and 22 deletions

View file

@ -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::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); }

View file

@ -1,5 +1,7 @@
#pragma once #pragma once
class CVehicle;
class CGarages class CGarages
{ {
public: public:
@ -30,4 +32,7 @@ public:
static void PlayerArrestedOrDied(); static void PlayerArrestedOrDied();
static void Init(void); static void Init(void);
static void Update(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

View file

@ -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);

View file

@ -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);

View file

@ -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");

View file

@ -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 void
CWorld::Process(void) CWorld::Process(void)
{ {

View file

@ -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 RepositionCertainDynamicObjects(); static void RepositionCertainDynamicObjects();

View file

@ -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); }
WRAPPER void CWeather::Update(void) { EAXJMP(0x522C10); } WRAPPER void CWeather::Update(void) { EAXJMP(0x522C10); }
@ -46,3 +51,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;
}

View file

@ -32,6 +32,10 @@ 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 Update(void); static void Update(void);
@ -39,4 +43,6 @@ public:
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();
}; };