|
|
@@ -10,6 +10,10 @@ |
|
|
#include "DMAudio.h" |
|
|
#include "Draw.h" |
|
|
#include "FileMgr.h" |
|
|
#ifdef FIX_BUGS |
|
|
#include "Fire.h" |
|
|
#include "Garages.h" |
|
|
#endif |
|
|
#include "Heli.h" |
|
|
#include "main.h" |
|
|
#include "Matrix.h" |
|
|
@@ -22,6 +26,10 @@ |
|
|
#include "Plane.h" |
|
|
#include "Pools.h" |
|
|
#include "Population.h" |
|
|
#ifdef FIX_BUGS |
|
|
#include "Projectile.h" |
|
|
#include "ProjectileInfo.h" |
|
|
#endif |
|
|
#include "Replay.h" |
|
|
#include "References.h" |
|
|
#include "Pools.h" |
|
|
@@ -102,6 +110,11 @@ float CReplay::fDistanceLookAroundCam; |
|
|
float CReplay::fBetaAngleLookAroundCam; |
|
|
float CReplay::fAlphaAngleLookAroundCam; |
|
|
#ifdef FIX_BUGS |
|
|
uint8* CReplay::pGarages; |
|
|
CFire* CReplay::FireArray; |
|
|
uint32 CReplay::NumOfFires; |
|
|
uint8* CReplay::paProjectileInfo; |
|
|
uint8* CReplay::paProjectiles; |
|
|
int CReplay::nHandleOfPlayerPed[NUMPLAYERS]; |
|
|
#endif |
|
|
|
|
|
@@ -1156,6 +1169,17 @@ void CReplay::StoreStuffInMem(void) |
|
|
if (ped) |
|
|
StoreDetailedPedAnimation(ped, &pPedAnims[i]); |
|
|
} |
|
|
#ifdef FIX_BUGS |
|
|
pGarages = new uint8[sizeof(CGarages::aGarages)]; |
|
|
memcpy(pGarages, CGarages::aGarages, sizeof(CGarages::aGarages)); |
|
|
FireArray = new CFire[NUM_FIRES]; |
|
|
memcpy(FireArray, gFireManager.m_aFires, sizeof(gFireManager.m_aFires)); |
|
|
NumOfFires = gFireManager.m_nTotalFires; |
|
|
paProjectileInfo = new uint8[sizeof(gaProjectileInfo)]; |
|
|
memcpy(paProjectileInfo, gaProjectileInfo, sizeof(gaProjectileInfo)); |
|
|
paProjectiles = new uint8[sizeof(CProjectileInfo::ms_apProjectile)]; |
|
|
memcpy(paProjectiles, CProjectileInfo::ms_apProjectile, sizeof(CProjectileInfo::ms_apProjectile)); |
|
|
#endif |
|
|
} |
|
|
|
|
|
void CReplay::RestoreStuffFromMem(void) |
|
|
@@ -1206,7 +1230,7 @@ void CReplay::RestoreStuffFromMem(void) |
|
|
ped->m_rwObject = nil; |
|
|
ped->m_modelIndex = -1; |
|
|
ped->SetModelIndex(mi); |
|
|
ped->m_pVehicleAnim = 0; |
|
|
ped->m_pVehicleAnim = nil; |
|
|
ped->m_audioEntityId = DMAudio.CreateEntity(AUDIOTYPE_PHYSICAL, ped); |
|
|
DMAudio.SetEntityStatus(ped->m_audioEntityId, true); |
|
|
CPopulation::UpdatePedCount((ePedType)ped->m_nPedType, false); |
|
|
@@ -1322,6 +1346,22 @@ void CReplay::RestoreStuffFromMem(void) |
|
|
} |
|
|
delete[] pPedAnims; |
|
|
pPedAnims = nil; |
|
|
#ifdef FIX_BUGS |
|
|
memcpy(CGarages::aGarages, pGarages, sizeof(CGarages::aGarages)); |
|
|
delete[] pGarages; |
|
|
pGarages = nil; |
|
|
memcpy(gFireManager.m_aFires, FireArray, sizeof(gFireManager.m_aFires)); |
|
|
delete[] FireArray; |
|
|
FireArray = nil; |
|
|
gFireManager.m_nTotalFires = NumOfFires; |
|
|
memcpy(gaProjectileInfo, paProjectileInfo, sizeof(gaProjectileInfo)); |
|
|
delete[] paProjectileInfo; |
|
|
paProjectileInfo = nil; |
|
|
memcpy(CProjectileInfo::ms_apProjectile, paProjectiles, sizeof(CProjectileInfo::ms_apProjectile)); |
|
|
delete[] paProjectiles; |
|
|
paProjectiles = nil; |
|
|
//CExplosion::ClearAllExplosions(); not in III |
|
|
#endif |
|
|
DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND); |
|
|
DMAudio.SetRadioInCar(OldRadioStation); |
|
|
DMAudio.ChangeMusicMode(MUSICMODE_GAME); |
|
|
|