summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2021-07-27 20:59:08 +0300
committerGitHub <noreply@github.com>2021-07-27 20:59:08 +0300
commitec7d70218595fe9c9c6c65a71893e48dc3d3ec38 (patch)
tree764e32edbee11892578765e045fe56b2ca9c70f8 /src
parent6dc8c5bd92dc031afa3ba9b6e1149dbbba338598 (diff)
parent0461a36a4ec59ee38f8ac49c580e60a5bd70a24b (diff)
Merge pull request #1255 from Nick007J/lcs
low effort save support
Diffstat (limited to 'src')
-rw-r--r--src/control/Garages.cpp48
-rw-r--r--src/control/Script.cpp6
-rw-r--r--src/control/Script4.cpp6
-rw-r--r--src/control/Script5.cpp10
-rw-r--r--src/core/Game.cpp34
-rw-r--r--src/core/Game.h2
-rw-r--r--src/core/config.h2
-rw-r--r--src/renderer/Particle.cpp618
-rw-r--r--src/renderer/Particle.h2
-rw-r--r--src/save/GenericGameStorage.cpp122
-rw-r--r--src/skel/win/win.cpp2
11 files changed, 449 insertions, 403 deletions
diff --git a/src/control/Garages.cpp b/src/control/Garages.cpp
index 2c0bf8f2..8978fac4 100644
--- a/src/control/Garages.cpp
+++ b/src/control/Garages.cpp
@@ -2613,14 +2613,12 @@ void CGarages::SetAllDoorsBackToOriginalHeight()
}
}
+#define GARAGE_SIZE 208
+
void CGarages::Save(uint8 * buf, uint32 * size)
{
-//INITSAVEBUF
- *size = 10692; // for some reason it's not actual size again
- //*size = (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + TOTAL_HIDEOUT_GARAGES * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * sizeof(CGarage));
-#if !defined THIS_IS_STUPID && defined COMPATIBLE_SAVES
- memset(buf + 7340, 0, *size - 7340); // garbage data is written otherwise
-#endif
+INITSAVEBUF
+ *size = (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + TOTAL_HIDEOUT_GARAGES * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * GARAGE_SIZE);
CloseHideOutGaragesBeforeSave();
WriteSaveBuf(buf, NumGarages);
WriteSaveBuf(buf, (uint32)BombsAreFree);
@@ -2661,12 +2659,16 @@ void CGarages::Save(uint8 * buf, uint32 * size)
WriteSaveBuf(buf, aGarages[i].m_vDir1);
WriteSaveBuf(buf, aGarages[i].m_vDir2);
WriteSaveBuf(buf, aGarages[i].m_fSupZ);
+ WriteSaveBuf(buf, aGarages[i].m_vecSSGaragePos);
+ WriteSaveBuf(buf, aGarages[i].m_fSSGarageAngle);
WriteSaveBuf(buf, aGarages[i].m_fDir1Len);
WriteSaveBuf(buf, aGarages[i].m_fDir2Len);
WriteSaveBuf(buf, aGarages[i].m_fInfX);
WriteSaveBuf(buf, aGarages[i].m_fSupX);
WriteSaveBuf(buf, aGarages[i].m_fInfY);
WriteSaveBuf(buf, aGarages[i].m_fSupY);
+ WriteSaveBuf(buf, aGarages[i].m_nTimeCrusherCraneActivated);
+ ZeroSaveBuf(buf, 4);
WriteSaveBuf(buf, aGarages[i].m_fDoorPos);
WriteSaveBuf(buf, aGarages[i].m_fDoorHeight);
WriteSaveBuf(buf, aGarages[i].m_fDoor1X);
@@ -2679,18 +2681,26 @@ void CGarages::Save(uint8 * buf, uint32 * size)
WriteSaveBuf(buf, aGarages[i].m_bCollectedCarsState);
ZeroSaveBuf(buf, 3 + 4);
ZeroSaveBuf(buf, sizeof(aGarages[i].m_sStoredCar));
+ WriteSaveBuf(buf, aGarages[i].m_bInitialized);
+ ZeroSaveBuf(buf, 3);
+#ifdef GTA_NETWORK
+ ZeroSaveBuf(buf, 4);
+#endif
+ WriteSaveBuf(buf, aGarages[i].m_bSSGarageAcceptedVehicle);
+ WriteSaveBuf(buf, aGarages[i].m_bLocked);
+ WriteSaveBuf(buf, aGarages[i].m_nSSGarageState);
+ WriteSaveBuf(buf, aGarages[i].m_bSSGarageStateChanging);
#else
WriteSaveBuf(buf, aGarages[i]);
#endif
}
-//VALIDATESAVEBUF(*size);
+VALIDATESAVEBUF(*size);
}
void CGarages::Load(uint8* buf, uint32 size)
{
-//INITSAVEBUF
- assert(size == 10692);
- //assert(size == (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + TOTAL_HIDEOUT_GARAGES * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * sizeof(CGarage)));
+INITSAVEBUF
+ assert(size == (6 * sizeof(uint32) + TOTAL_COLLECTCARS_GARAGES * sizeof(*CarTypesCollected) + sizeof(uint32) + TOTAL_HIDEOUT_GARAGES * NUM_GARAGE_STORED_CARS * sizeof(CStoredCar) + NUM_GARAGES * GARAGE_SIZE));
CloseHideOutGaragesBeforeSave();
ReadSaveBuf(&NumGarages, buf);
int32 tempInt;
@@ -2734,12 +2744,16 @@ void CGarages::Load(uint8* buf, uint32 size)
ReadSaveBuf(&aGarages[i].m_vDir1, buf);
ReadSaveBuf(&aGarages[i].m_vDir2, buf);
ReadSaveBuf(&aGarages[i].m_fSupZ, buf);
+ ReadSaveBuf(&aGarages[i].m_vecSSGaragePos, buf);
+ ReadSaveBuf(&aGarages[i].m_fSSGarageAngle, buf);
ReadSaveBuf(&aGarages[i].m_fDir1Len, buf);
ReadSaveBuf(&aGarages[i].m_fDir2Len, buf);
ReadSaveBuf(&aGarages[i].m_fInfX, buf);
ReadSaveBuf(&aGarages[i].m_fSupX, buf);
ReadSaveBuf(&aGarages[i].m_fInfY, buf);
ReadSaveBuf(&aGarages[i].m_fSupY, buf);
+ ReadSaveBuf(&aGarages[i].m_nTimeCrusherCraneActivated, buf);
+ SkipSaveBuf(buf, 4);
ReadSaveBuf(&aGarages[i].m_fDoorPos, buf);
ReadSaveBuf(&aGarages[i].m_fDoorHeight, buf);
ReadSaveBuf(&aGarages[i].m_fDoor1X, buf);
@@ -2752,6 +2766,15 @@ void CGarages::Load(uint8* buf, uint32 size)
ReadSaveBuf(&aGarages[i].m_bCollectedCarsState, buf);
SkipSaveBuf(buf, 3 + 4);
SkipSaveBuf(buf, sizeof(aGarages[i].m_sStoredCar));
+ ReadSaveBuf(&aGarages[i].m_bInitialized, buf);
+ SkipSaveBuf(buf, 3);
+#ifdef GTA_NETWORK
+ SkipSaveBuf(buf, 4);
+#endif
+ ReadSaveBuf(&aGarages[i].m_bSSGarageAcceptedVehicle, buf);
+ ReadSaveBuf(&aGarages[i].m_bLocked, buf);
+ ReadSaveBuf(&aGarages[i].m_nSSGarageState, buf);
+ ReadSaveBuf(&aGarages[i].m_bSSGarageStateChanging, buf);
#else
ReadSaveBuf(&aGarages[i], buf);
#endif
@@ -2765,11 +2788,14 @@ void CGarages::Load(uint8* buf, uint32 size)
else
aGarages[i].UpdateDoorsHeight();
}
-//VALIDATESAVEBUF(size);
+VALIDATESAVEBUF(size);
MessageEndTime = 0;
bCamShouldBeOutisde = false;
MessageStartTime = 0;
+ hGarages = DMAudio.CreateEntity(AUDIOTYPE_GARAGE, (void*)1);
+ if (hGarages >= 0)
+ DMAudio.SetEntityStatus(hGarages, TRUE);
}
bool
diff --git a/src/control/Script.cpp b/src/control/Script.cpp
index fbb7024c..f52dda03 100644
--- a/src/control/Script.cpp
+++ b/src/control/Script.cpp
@@ -18,9 +18,7 @@
#include "FileMgr.h"
#include "Frontend.h"
#include "General.h"
-#ifdef MISSION_REPLAY
#include "GenericGameStorage.h"
-#endif
#include "HandlingMgr.h"
#include "Heli.h"
#include "Hud.h"
@@ -1853,7 +1851,7 @@ void FlushLog()
const uint32 CRunningScript::nSaveStructSize =
#ifdef COMPATIBLE_SAVES
- 136;
+ 536;
#else
sizeof(CRunningScript);
#endif
@@ -2691,7 +2689,7 @@ bool CTheScripts::Init(bool loaddata)
InvisibilitySettingArray[i] = nil;
if (loaddata) {
printf("loaddata = true\n");
- //retval = GenericLoad(); // TODO
+ retval = GenericLoad();
}
for (int i = 0; i < MAX_ALLOWED_COLLISIONS; i++)
AllowedCollision[i] = 0;
diff --git a/src/control/Script4.cpp b/src/control/Script4.cpp
index d5edc5cf..7ff785d5 100644
--- a/src/control/Script4.cpp
+++ b/src/control/Script4.cpp
@@ -2262,8 +2262,10 @@ void CTheScripts::SwapNearestBuildingModel(float x, float y, float z, float radi
}
}
CBuilding* pReplacedBuilding = ((CBuilding*)pClosestEntity);
- pReplacedBuilding->ReplaceWithNewModel(mi2);
- AddToBuildingSwapArray(pReplacedBuilding, mi1, mi2);
+ if (pReplacedBuilding) {
+ pReplacedBuilding->ReplaceWithNewModel(mi2);
+ AddToBuildingSwapArray(pReplacedBuilding, mi1, mi2);
+ }
}
void CTheScripts::AddToBuildingSwapArray(CBuilding* pBuilding, int32 old_model, int32 new_model)
diff --git a/src/control/Script5.cpp b/src/control/Script5.cpp
index 502e6d72..8544f604 100644
--- a/src/control/Script5.cpp
+++ b/src/control/Script5.cpp
@@ -2114,8 +2114,8 @@ void CTheScripts::RenderTheScriptDebugLines()
}
*/
-#define SCRIPT_DATA_SIZE sizeof(CTheScripts::OnAMissionFlag) +\
- 4 * sizeof(uint32) * MAX_NUM_BUILDING_SWAPS + 2 * sizeof(uint32) * MAX_NUM_INVISIBILITY_SETTINGS + 5 * sizeof(uint32)
+#define SCRIPT_DATA_SIZE sizeof(CTheScripts::OnAMissionFlag) + sizeof(tCollectiveData) * MAX_NUM_COLLECTIVES +\
+ 4 * sizeof(uint32) * MAX_NUM_BUILDING_SWAPS + 2 * sizeof(uint32) * MAX_NUM_INVISIBILITY_SETTINGS + 4 * sizeof(uint32)
void CTheScripts::SaveAllScripts(uint8* buf, uint32* size)
{
@@ -2124,7 +2124,7 @@ INITSAVEBUF
uint32 runningScripts = 0;
for (CRunningScript* pScript = pActiveScripts; pScript; pScript = pScript->GetNext())
runningScripts++;
- *size = CRunningScript::nSaveStructSize * runningScripts + varSpace + SCRIPT_DATA_SIZE + SAVE_HEADER_SIZE + 3 * sizeof(uint32);
+ *size = CRunningScript::nSaveStructSize * runningScripts + varSpace + SCRIPT_DATA_SIZE + SAVE_HEADER_SIZE + 5 * sizeof(uint32);
WriteSaveHeader(buf, 'S', 'C', 'R', '\0', *size - SAVE_HEADER_SIZE);
WriteSaveBuf(buf, varSpace);
for (uint32 i = 0; i < varSpace; i++)
@@ -2200,10 +2200,8 @@ INITSAVEBUF
VALIDATESAVEBUF(*size)
}
-// TODO: I don't really understand how script loading works, so I leave it the VC way for now.
bool CTheScripts::LoadAllScripts(uint8* buf, uint32 size)
{
- Init(); // TODO: in LCS CTheScripts::Init call GenericLoad, which then calls LoadAllScripts
INITSAVEBUF
CheckSaveHeader(buf, 'S', 'C', 'R', '\0', size - SAVE_HEADER_SIZE);
uint32 varSpace, type, handle;
@@ -2222,7 +2220,6 @@ INITSAVEBUF
else
SkipSaveBuf(buf, 1);
}
- // everything else is... gone? TODO
ReadSaveBuf(&tmp, buf);
script_assert(tmp == SCRIPT_DATA_SIZE);
ReadSaveBuf(&OnAMissionFlag, buf);
@@ -2304,7 +2301,6 @@ INITSAVEBUF
ReadSaveBuf(&runningScripts, buf);
for (uint32 i = 0; i < runningScripts; i++)
CRunningScript().Load(buf);
- StartTestScript(); // <- tmp hack
return true;
VALIDATESAVEBUF(size)
}
diff --git a/src/core/Game.cpp b/src/core/Game.cpp
index a370c9d4..d2646512 100644
--- a/src/core/Game.cpp
+++ b/src/core/Game.cpp
@@ -648,7 +648,7 @@ bool CGame::ShutDown(void)
return true;
}
-void CGame::ReInitGameObjectVariables(void)
+bool CGame::ReInitGameObjectVariables(bool load)
{
CGameLogic::InitAtStartOfGame();
#ifdef PS2_MENU
@@ -693,7 +693,7 @@ void CGame::ReInitGameObjectVariables(void)
gPhoneInfo.Initialise();
PUSH_MEMID(MEMID_SCRIPT);
- CTheScripts::Init();
+ bool res = CTheScripts::Init(load);
CGangs::Initialise();
POP_MEMID();
@@ -706,12 +706,14 @@ void CGame::ReInitGameObjectVariables(void)
CStats::Init();
CPickups::Init();
CPacManPickups::Init();
- CGarages::Init();
+ if (!load)
+ CGarages::Init();
CSpecialFX::Init();
CRopes::Init();
CWaterCannons::Init();
CScriptPaths::Init();
CParticle::ReloadConfig();
+ CParticle::SetPixelData();
#ifdef PS2_MENU
if ( !TheMemoryCard.m_bWantToLoad )
@@ -730,6 +732,8 @@ void CGame::ReInitGameObjectVariables(void)
for (int32 i = 0; i < MAX_PADS; i++)
CPad::GetPad(i)->Clear(true);
+
+ return res;
}
void CGame::ReloadIPLs(void)
@@ -800,13 +804,12 @@ void CGame::InitialiseWhenRestarting(void)
RestoreForStartLoad();
}
- ReInitGameObjectVariables();
+ bool bLoadSuccessful = ReInitGameObjectVariables(FrontEndMenuManager.m_bWantToLoad);
if ( FrontEndMenuManager.m_bWantToLoad == true )
{
- FrontEndMenuManager.m_bWantToLoad = false;
InitRadioStationPositionList();
- if ( GenericLoad() == true )
+ if ( bLoadSuccessful == true )
{
DMAudio.ResetTimers(CTimer::GetTimeInMilliseconds());
CFerry::InitFerrys();
@@ -825,8 +828,8 @@ void CGame::InitialiseWhenRestarting(void)
ShutDownForRestart();
CTimer::Stop();
CTimer::Initialise();
- FrontEndMenuManager.m_bWantToLoad = false;
- ReInitGameObjectVariables();
+ //FrontEndMenuManager.m_bWantToLoad = false;
+ ReInitGameObjectVariables(false);
currLevel = LEVEL_GENERIC;
CCollision::SortOutCollisionAfterLoad();
}
@@ -835,6 +838,7 @@ void CGame::InitialiseWhenRestarting(void)
#endif
}
+ FrontEndMenuManager.m_bWantToLoad = true;
CTimer::Update();
DMAudio.ChangeMusicMode(MUSICMODE_GAME);
@@ -845,6 +849,20 @@ void CGame::InitialiseWhenRestarting(void)
void CGame::Process(void)
{
+ if (FrontEndMenuManager.m_bWantToLoad) {
+ CTheScripts::StartTestScript();
+ CTheScripts::Process();
+ TheCamera.Process();
+ CStreaming::LoadScene(TheCamera.GetPosition());
+ //CGame::GenerateTempPedAtStartOfNetworkGame();
+ if (/* ?*/true){
+ CStreaming::RequestSpecialModel(MI_PLAYER, "player", STREAMFLAGS_DEPENDENCY | STREAMFLAGS_DONT_REMOVE);
+ CStreaming::LoadAllRequestedModels(false);
+ }
+ TheCamera.Process();
+ CStreaming::LoadScene(TheCamera.GetPosition());
+ FrontEndMenuManager.m_bWantToLoad = false;
+ }
CPad::UpdatePads();
#ifdef USE_CUSTOM_ALLOCATOR
ProcessTidyUpMemory();
diff --git a/src/core/Game.h b/src/core/Game.h
index dd14278a..e6016888 100644
--- a/src/core/Game.h
+++ b/src/core/Game.h
@@ -62,7 +62,7 @@ public:
static void FinalShutdown(void);
static bool Initialise(const char *datFile);
static bool ShutDown(void);
- static void ReInitGameObjectVariables(void);
+ static bool ReInitGameObjectVariables(bool);
static void ReloadIPLs(void);
static void ShutDownForRestart(void);
static void InitialiseWhenRestarting(void);
diff --git a/src/core/config.h b/src/core/config.h
index d8d62782..bee60489 100644
--- a/src/core/config.h
+++ b/src/core/config.h
@@ -274,7 +274,7 @@ enum Config {
#define FIX_BUGS // fixes bugs that we've came across during reversing. You can undefine this only on release builds.
//#define MORE_LANGUAGES // Add more translations to the game
#define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible, and keeps saves compatible between platforms
-#define FIX_INCOMPATIBLE_SAVES // try to fix incompatible saves, requires COMPATIBLE_SAVES
+//#define FIX_INCOMPATIBLE_SAVES // try to fix incompatible saves, requires COMPATIBLE_SAVES
#define LOAD_INI_SETTINGS // as the name suggests. fundamental for CUSTOM_FRONTEND_OPTIONS
#define NO_MOVIES // add option to disable intro videos
diff --git a/src/renderer/Particle.cpp b/src/renderer/Particle.cpp
index 54b6ca92..18e9e415 100644
--- a/src/renderer/Particle.cpp
+++ b/src/renderer/Particle.cpp
@@ -512,317 +512,321 @@ void CParticle::Initialise()
gpFireHoseRaster = RwTextureGetRaster(gpFireHoseTex);
CTxdStore::PopCurrentTxd();
-
- for ( int32 i = 0; i < MAX_PARTICLES; i++ )
+ SetPixelData();
+
+ debug("CParticle ready");
+}
+
+void CParticle::SetPixelData()
+{
+ for (int32 i = 0; i < MAX_PARTICLES; i++)
{
- tParticleSystemData *entry = &mod_ParticleSystemManager.m_aParticles[i];
-
- switch( i )
+ tParticleSystemData* entry = &mod_ParticleSystemManager.m_aParticles[i];
+
+ switch (i)
{
- case PARTICLE_SPARK:
- entry->m_ppRaster = &gpRainDropSmallRaster;
- break;
-
- case PARTICLE_SPARK_SMALL:
- entry->m_ppRaster = &gpRainDropSmallRaster;
- break;
-
- case PARTICLE_WATER_SPARK:
- entry->m_ppRaster = &gpSparkRaster;
- break;
-
- case PARTICLE_WHEEL_DIRT:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_SAND:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_WHEEL_WATER:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_BLOOD:
- entry->m_ppRaster = &gpBloodRaster;
- break;
-
- case PARTICLE_BLOOD_SMALL:
- entry->m_ppRaster = &gpBloodSmallRaster;
- break;
-
- case PARTICLE_BLOOD_SPURT:
- entry->m_ppRaster = &gpBloodSmallRaster;
- break;
-
- case PARTICLE_DEBRIS:
- entry->m_ppRaster = gpLeafRaster;
- break;
-
- case PARTICLE_DEBRIS2:
- entry->m_ppRaster = &gpGungeRaster;
- break;
-
- case PARTICLE_FLYERS:
- entry->m_ppRaster = &gpNewspaperRaster;
- break;
-
- case PARTICLE_WATER:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_FLAME:
- entry->m_ppRaster = &gpFlame1Raster;
- break;
-
- case PARTICLE_FIREBALL:
- entry->m_ppRaster = &gpFlame5Raster;
- break;
-
- case PARTICLE_GUNFLASH:
- entry->m_ppRaster = gpGunFlashRaster;
- break;
-
- case PARTICLE_GUNFLASH_NOANIM:
- entry->m_ppRaster = gpGunFlashRaster;
- break;
-
- case PARTICLE_GUNSMOKE:
- entry->m_ppRaster = nil;
- break;
-
- case PARTICLE_GUNSMOKE2:
- entry->m_ppRaster = gpRubberRaster;
- break;
-
- case PARTICLE_CIGARETTE_SMOKE:
- entry->m_ppRaster = &gpGunSmokeRaster;
- break;
-
- case PARTICLE_TEARGAS:
- entry->m_ppRaster = &gpHeatHazeRaster;
- break;
-
- case PARTICLE_SMOKE:
- case PARTICLE_SMOKE_SLOWMOTION:
- case PARTICLE_DRY_ICE:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_GARAGEPAINT_SPRAY:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_SHARD:
- entry->m_ppRaster = &gpRainDropRaster;
- break;
-
- case PARTICLE_SPLASH:
- entry->m_ppRaster = gpCarSplashRaster;
- break;
-
- case PARTICLE_CARFLAME:
- entry->m_ppRaster = &gpFlame1Raster;
- break;
-
- case PARTICLE_STEAM:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_STEAM2:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_STEAM_NY:
- case PARTICLE_STEAM_NY_SLOWMOTION:
- case PARTICLE_GROUND_STEAM:
- case PARTICLE_HYDRANT_STEAM:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_ENGINE_STEAM:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_RAINDROP:
- entry->m_ppRaster = &gpRainDropRaster;
- break;
-
- case PARTICLE_RAINDROP_SMALL:
- entry->m_ppRaster = &gpRainDropSmallRaster;
- break;
-
- case PARTICLE_RAIN_SPLASH:
- case PARTICLE_RAIN_SPLASH_BIGGROW:
- entry->m_ppRaster = gpRainSplashRaster;
- break;
-
- case PARTICLE_RAIN_SPLASHUP:
- entry->m_ppRaster = gpRainSplashupRaster;
- break;
-
- case PARTICLE_WATERSPRAY:
- entry->m_ppRaster = gpWatersprayRaster;
- break;
-
- case PARTICLE_RAINDROP_2D:
- entry->m_ppRaster = &gpRainDropRaster;
- break;
-
- case PARTICLE_EXPLOSION_MEDIUM:
- entry->m_ppRaster = gpExplosionMediumRaster;
- break;
-
- case PARTICLE_EXPLOSION_LARGE:
- entry->m_ppRaster = gpExplosionMediumRaster;
- break;
-
- case PARTICLE_EXPLOSION_MFAST:
- entry->m_ppRaster = gpExplosionMediumRaster;
- break;
-
- case PARTICLE_EXPLOSION_LFAST:
- entry->m_ppRaster = gpExplosionMediumRaster;
- break;
-
- case PARTICLE_CAR_SPLASH:
- entry->m_ppRaster = gpCarSplashRaster;
- break;
-
- case PARTICLE_BOAT_SPLASH:
- entry->m_ppRaster = &gpBoatWakeRaster;
- break;
-
- case PARTICLE_BOAT_THRUSTJET:
- entry->m_ppRaster = gpRubberRaster;
- break;
-
- case PARTICLE_WATER_HYDRANT:
- entry->m_ppRaster = gpCarSplashRaster;
- break;
-
- case PARTICLE_WATER_CANNON:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_EXTINGUISH_STEAM:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_PED_SPLASH:
- entry->m_ppRaster = gpCarSplashRaster;
- break;
-
- case PARTICLE_PEDFOOT_DUST:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_CAR_DUST:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_HELI_DUST:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_HELI_ATTACK:
- entry->m_ppRaster = &gpRainDropSmallRaster;
- break;
-
- case PARTICLE_ENGINE_SMOKE:
- entry->m_ppRaster = &gpCloudRaster4;
- break;
-
- case PARTICLE_ENGINE_SMOKE2:
- case PARTICLE_ROCKET_SMOKE:
- entry->m_ppRaster = &gpCloudRaster4;
- break;
-
- case PARTICLE_CARFLAME_SMOKE:
- entry->m_ppRaster = &gpCloudRaster4;
- break;
-
- case PARTICLE_FIREBALL_SMOKE:
- entry->m_ppRaster = &gpCloudRaster4;
- break;
-
- case PARTICLE_PAINT_SMOKE:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_TREE_LEAVES:
- entry->m_ppRaster = gpLeafRaster;
- break;
-
- case PARTICLE_CARCOLLISION_DUST:
- entry->m_ppRaster = &gpCollisionSmokeRaster;
- break;
-
- case PARTICLE_CAR_DEBRIS:
- case PARTICLE_BIRD_DEBRIS:
- case PARTICLE_HELI_DEBRIS:
- entry->m_ppRaster = gpCarDebrisRaster;
- break;
-
- case PARTICLE_EXHAUST_FUMES:
- entry->m_ppRaster = &gpSmoke2Raster;
- break;
-
- case PARTICLE_RUBBER_SMOKE:
- entry->m_ppRaster = gpRubberRaster;
- break;
-
- case PARTICLE_BURNINGRUBBER_SMOKE:
- entry->m_ppRaster = &gpCollisionSmokeRaster;
- break;
-
- case PARTICLE_BULLETHIT_SMOKE:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_GUNSHELL_FIRST:
- entry->m_ppRaster = &gpGunShellRaster;
- break;
-
- case PARTICLE_GUNSHELL:
- entry->m_ppRaster = &gpGunShellRaster;
- break;
-
- case PARTICLE_GUNSHELL_BUMP1:
- entry->m_ppRaster = &gpGunShellRaster;
- break;
-
- case PARTICLE_GUNSHELL_BUMP2:
- entry->m_ppRaster = &gpGunShellRaster;
- break;
-
- case PARTICLE_TEST:
- entry->m_ppRaster = &gpCloudRaster4;
- break;
-
- case PARTICLE_BIRD_FRONT:
- entry->m_ppRaster = gpBirdfrontRaster;
- break;
-
- case PARTICLE_SHIP_SIDE:
- entry->m_ppRaster = gpBoatRaster;
- break;
-
- case PARTICLE_BEASTIE:
- entry->m_ppRaster = &gpBeastieRaster;
- break;
-
- case PARTICLE_FERRY_CHIM_SMOKE:
- entry->m_ppRaster = gpSmokeRaster;
- break;
-
- case PARTICLE_MULTIPLAYER_HIT:
- entry->m_ppRaster = &gpMultiPlayerHitRaster;
- break;
+ case PARTICLE_SPARK:
+ entry->m_ppRaster = &gpRainDropSmallRaster;
+ break;
+
+ case PARTICLE_SPARK_SMALL:
+ entry->m_ppRaster = &gpRainDropSmallRaster;
+ break;
+
+ case PARTICLE_WATER_SPARK:
+ entry->m_ppRaster = &gpSparkRaster;
+ break;
+
+ case PARTICLE_WHEEL_DIRT:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_SAND:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_WHEEL_WATER:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_BLOOD:
+ entry->m_ppRaster = &gpBloodRaster;
+ break;
+
+ case PARTICLE_BLOOD_SMALL:
+ entry->m_ppRaster = &gpBloodSmallRaster;
+ break;
+
+ case PARTICLE_BLOOD_SPURT:
+ entry->m_ppRaster = &gpBloodSmallRaster;
+ break;
+
+ case PARTICLE_DEBRIS:
+ entry->m_ppRaster = gpLeafRaster;
+ break;
+
+ case PARTICLE_DEBRIS2:
+ entry->m_ppRaster = &gpGungeRaster;
+ break;
+
+ case PARTICLE_FLYERS:
+ entry->m_ppRaster = &gpNewspaperRaster;
+ break;
+
+ case PARTICLE_WATER:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_FLAME:
+ entry->m_ppRaster = &gpFlame1Raster;
+ break;
+
+ case PARTICLE_FIREBALL:
+ entry->m_ppRaster = &gpFlame5Raster;
+ break;
+
+ case PARTICLE_GUNFLASH:
+ entry->m_ppRaster = gpGunFlashRaster;
+ break;
+
+ case PARTICLE_GUNFLASH_NOANIM:
+ entry->m_ppRaster = gpGunFlashRaster;
+ break;
+
+ case PARTICLE_GUNSMOKE:
+ entry->m_ppRaster = nil;
+ break;
+
+ case PARTICLE_GUNSMOKE2:
+ entry->m_ppRaster = gpRubberRaster;
+ break;
+
+ case PARTICLE_CIGARETTE_SMOKE:
+ entry->m_ppRaster = &gpGunSmokeRaster;
+ break;
+
+ case PARTICLE_TEARGAS:
+ entry->m_ppRaster = &gpHeatHazeRaster;
+ break;
+
+ case PARTICLE_SMOKE:
+ case PARTICLE_SMOKE_SLOWMOTION:
+ case PARTICLE_DRY_ICE:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_GARAGEPAINT_SPRAY:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_SHARD:
+ entry->m_ppRaster = &gpRainDropRaster;
+ break;
+
+ case PARTICLE_SPLASH:
+ entry->m_ppRaster = gpCarSplashRaster;
+ break;
+
+ case PARTICLE_CARFLAME:
+ entry->m_ppRaster = &gpFlame1Raster;
+ break;
+
+ case PARTICLE_STEAM:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_STEAM2:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_STEAM_NY:
+ case PARTICLE_STEAM_NY_SLOWMOTION:
+ case PARTICLE_GROUND_STEAM:
+ case PARTICLE_HYDRANT_STEAM:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_ENGINE_STEAM:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_RAINDROP:
+ entry->m_ppRaster = &gpRainDropRaster;
+ break;
+
+ case PARTICLE_RAINDROP_SMALL:
+ entry->m_ppRaster = &gpRainDropSmallRaster;
+ break;
+
+ case PARTICLE_RAIN_SPLASH:
+ case PARTICLE_RAIN_SPLASH_BIGGROW:
+ entry->m_ppRaster = gpRainSplashRaster;
+ break;
+
+ case PARTICLE_RAIN_SPLASHUP:
+ entry->m_ppRaster = gpRainSplashupRaster;
+ break;
+
+ case PARTICLE_WATERSPRAY:
+ entry->m_ppRaster = gpWatersprayRaster;
+ break;
+
+ case PARTICLE_RAINDROP_2D:
+ entry->m_ppRaster = &gpRainDropRaster;
+ break;
+
+ case PARTICLE_EXPLOSION_MEDIUM:
+ entry->m_ppRaster = gpExplosionMediumRaster;
+ break;
+
+ case PARTICLE_EXPLOSION_LARGE:
+ entry->m_ppRaster = gpExplosionMediumRaster;
+ break;
+
+ case PARTICLE_EXPLOSION_MFAST:
+ entry->m_ppRaster = gpExplosionMediumRaster;
+ break;
+
+ case PARTICLE_EXPLOSION_LFAST:
+ entry->m_ppRaster = gpExplosionMediumRaster;
+ break;
+
+ case PARTICLE_CAR_SPLASH:
+ entry->m_ppRaster = gpCarSplashRaster;
+ break;
+
+ case PARTICLE_BOAT_SPLASH:
+ entry->m_ppRaster = &gpBoatWakeRaster;
+ break;
+
+ case PARTICLE_BOAT_THRUSTJET:
+ entry->m_ppRaster = gpRubberRaster;
+ break;
+
+ case PARTICLE_WATER_HYDRANT:
+ entry->m_ppRaster = gpCarSplashRaster;
+ break;
+
+ case PARTICLE_WATER_CANNON:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_EXTINGUISH_STEAM:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_PED_SPLASH:
+ entry->m_ppRaster = gpCarSplashRaster;
+ break;
+
+ case PARTICLE_PEDFOOT_DUST:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_CAR_DUST:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_HELI_DUST:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_HELI_ATTACK:
+ entry->m_ppRaster = &gpRainDropSmallRaster;
+ break;
+
+ case PARTICLE_ENGINE_SMOKE:
+ entry->m_ppRaster = &gpCloudRaster4;
+ break;
+
+ case PARTICLE_ENGINE_SMOKE2:
+ case PARTICLE_ROCKET_SMOKE:
+ entry->m_ppRaster = &gpCloudRaster4;
+ break;
+
+ case PARTICLE_CARFLAME_SMOKE:
+ entry->m_ppRaster = &gpCloudRaster4;
+ break;
+
+ case PARTICLE_FIREBALL_SMOKE:
+ entry->m_ppRaster = &gpCloudRaster4;
+ break;
+
+ case PARTICLE_PAINT_SMOKE:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_TREE_LEAVES:
+ entry->m_ppRaster = gpLeafRaster;
+ break;
+
+ case PARTICLE_CARCOLLISION_DUST:
+ entry->m_ppRaster = &gpCollisionSmokeRaster;
+ break;
+
+ case PARTICLE_CAR_DEBRIS:
+ case PARTICLE_BIRD_DEBRIS:
+ case PARTICLE_HELI_DEBRIS:
+ entry->m_ppRaster = gpCarDebrisRaster;
+ break;
+
+ case PARTICLE_EXHAUST_FUMES:
+ entry->m_ppRaster = &gpSmoke2Raster;
+ break;
+
+ case PARTICLE_RUBBER_SMOKE:
+ entry->m_ppRaster = gpRubberRaster;
+ break;
+
+ case PARTICLE_BURNINGRUBBER_SMOKE:
+ entry->m_ppRaster = &gpCollisionSmokeRaster;
+ break;
+
+ case PARTICLE_BULLETHIT_SMOKE:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_GUNSHELL_FIRST:
+ entry->m_ppRaster = &gpGunShellRaster;
+ break;
+
+ case PARTICLE_GUNSHELL:
+ entry->m_ppRaster = &gpGunShellRaster;
+ break;
+
+ case PARTICLE_GUNSHELL_BUMP1:
+ entry->m_ppRaster = &gpGunShellRaster;
+ break;
+
+ case PARTICLE_GUNSHELL_BUMP2:
+ entry->m_ppRaster = &gpGunShellRaster;
+ break;
+
+ case PARTICLE_TEST:
+ entry->m_ppRaster = &gpCloudRaster4;
+ break;
+
+ case PARTICLE_BIRD_FRONT:
+ entry->m_ppRaster = gpBirdfrontRaster;
+ break;
+
+ case PARTICLE_SHIP_SIDE:
+ entry->m_ppRaster = gpBoatRaster;
+ break;
+
+ case PARTICLE_BEASTIE:
+ entry->m_ppRaster = &gpBeastieRaster;
+ break;
+
+ case PARTICLE_FERRY_CHIM_SMOKE:
+ entry->m_ppRaster = gpSmokeRaster;
+ break;
+
+ case PARTICLE_MULTIPLAYER_HIT:
+ entry->m_ppRaster = &gpMultiPlayerHitRaster;
+ break;
}
}
-
- debug("CParticle ready");
}
void CParticle::Shutdown()
diff --git a/src/renderer/Particle.h b/src/renderer/Particle.h
index a306f0c4..57e36f82 100644
--- a/src/renderer/Particle.h
+++ b/src/renderer/Particle.h
@@ -91,6 +91,8 @@ public:
static void HandleShipsAtHorizonStuff();
static void HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos);
+
+ static void SetPixelData();
};
extern RwRaster *gpCarSplashRaster[];
diff --git a/src/save/GenericGameStorage.cpp b/src/save/GenericGameStorage.cpp
index 4849fa4d..d2fbb9b0 100644
--- a/src/save/GenericGameStorage.cpp
+++ b/src/save/GenericGameStorage.cpp
@@ -181,7 +181,7 @@ GenericSave(int file)
WriteDataToBufferPointer(buf, CClock::ms_nGameClockMinutes);
currPad = CPad::GetPad(0);
WriteDataToBufferPointer(buf, currPad->Mode);
- WriteDataToBufferPointer(buf, CTimer::m_snTimeInMilliseconds);
+ //WriteDataToBufferPointer(buf, CTimer::m_snTimeInMilliseconds);
WriteDataToBufferPointer(buf, CTimer::ms_fTimeScale);
WriteDataToBufferPointer(buf, CTimer::ms_fTimeStep);
WriteDataToBufferPointer(buf, CTimer::ms_fTimeStepNonClipped);
@@ -213,7 +213,7 @@ GenericSave(int file)
WriteDataToBufferPointer(buf, CTimeCycle::m_ExtraColourInter);
PopulateRadioStationPositionList();
WriteDataToBufferPointer(buf, RadioStationPosition);
- assert(buf - work_buff == SIZE_OF_SIMPLEVARS);
+ //assert(buf - work_buff == SIZE_OF_SIMPLEVARS);
// Save scripts, block is nested within the same block as simple vars for some reason
presize = buf;
@@ -230,26 +230,26 @@ GenericSave(int file)
// Save the rest
//WriteSaveDataBlock(CPools::SavePedPool, "PedPoolSize");
WriteSaveDataBlock(CGarages::Save, "GaragesSize");
- WriteSaveDataBlock(CGameLogic::Save, "GameLogicSize");
- WriteSaveDataBlock(CPools::SaveVehiclePool, "VehPoolSize");
- WriteSaveDataBlock(CPools::SaveObjectPool, "ObjectPoolSize");
- WriteSaveDataBlock(ThePaths.Save, "ThePathsSize");
- WriteSaveDataBlock(CCranes::Save, "CranesSize");
- WriteSaveDataBlock(CPickups::Save, "PickUpsSize");
- WriteSaveDataBlock(gPhoneInfo.Save, "PhoneInfoSize");
- WriteSaveDataBlock(CRestart::SaveAllRestartPoints, "RestartPointsBufferSize");
- WriteSaveDataBlock(CRadar::SaveAllRadarBlips, "RadarBlipsBufferSize");
- WriteSaveDataBlock(CTheZones::SaveAllZones, "AllZonesBufferSize");
- WriteSaveDataBlock(CGangs::SaveAllGangData, "AllGangDataSize");
- WriteSaveDataBlock(CTheCarGenerators::SaveAllCarGenerators, "AllCarGeneratorsSize");
- WriteSaveDataBlock(CParticleObject::SaveParticle, "ParticlesSize");
- WriteSaveDataBlock(cAudioScriptObject::SaveAllAudioScriptObjects, "AllAudioScriptObjectsSize");
- WriteSaveDataBlock(CScriptPaths::Save, "ScriptPathsSize");
+ //WriteSaveDataBlock(CGameLogic::Save, "GameLogicSize");
+ //WriteSaveDataBlock(CPools::SaveVehiclePool, "VehPoolSize");
+ //WriteSaveDataBlock(CPools::SaveObjectPool, "ObjectPoolSize");
+ //WriteSaveDataBlock(ThePaths.Save, "ThePathsSize");
+ //WriteSaveDataBlock(CCranes::Save, "CranesSize");
+ //WriteSaveDataBlock(CPickups::Save, "PickUpsSize");
+ //WriteSaveDataBlock(gPhoneInfo.Save, "PhoneInfoSize");
+ //WriteSaveDataBlock(CRestart::SaveAllRestartPoints, "RestartPointsBufferSize");
+ //WriteSaveDataBlock(CRadar::SaveAllRadarBlips, "RadarBlipsBufferSize");
+ //WriteSaveDataBlock(CTheZones::SaveAllZones, "AllZonesBufferSize");
+ //WriteSaveDataBlock(CGangs::SaveAllGangData, "AllGangDataSize");
+ //WriteSaveDataBlock(CTheCarGenerators::SaveAllCarGenerators, "AllCarGeneratorsSize");
+ //WriteSaveDataBlock(CParticleObject::SaveParticle, "ParticlesSize");
+ //WriteSaveDataBlock(cAudioScriptObject::SaveAllAudioScriptObjects, "AllAudioScriptObjectsSize");
+ //WriteSaveDataBlock(CScriptPaths::Save, "ScriptPathsSize");
WriteSaveDataBlock(CWorld::Players[CWorld::PlayerInFocus].SavePlayerInfo, "PlayerInfoSize");
WriteSaveDataBlock(CStats::SaveStats, "StatsSize");
- WriteSaveDataBlock(CSetPieces::Save, "SetPiecesSize");
- WriteSaveDataBlock(CStreaming::MemoryCardSave, "StreamingSize");
- WriteSaveDataBlock(CPedType::Save, "PedTypeSize");
+ //WriteSaveDataBlock(CSetPieces::Save, "SetPiecesSize");
+ //WriteSaveDataBlock(CStreaming::MemoryCardSave, "StreamingSize");
+ //WriteSaveDataBlock(CPedType::Save, "PedTypeSize");
// sure just write garbage data repeatedly ...
#ifndef THIS_IS_STUPID
@@ -318,7 +318,7 @@ GenericLoad()
ReadDataFromBufferPointer(buf, CClock::ms_nGameClockMinutes);
currPad = CPad::GetPad(0);
ReadDataFromBufferPointer(buf, currPad->Mode);
- ReadDataFromBufferPointer(buf, CTimer::m_snTimeInMilliseconds);
+ //ReadDataFromBufferPointer(buf, CTimer::m_snTimeInMilliseconds);
ReadDataFromBufferPointer(buf, CTimer::ms_fTimeScale);
ReadDataFromBufferPointer(buf, CTimer::ms_fTimeStep);
ReadDataFromBufferPointer(buf, CTimer::ms_fTimeStepNonClipped);
@@ -359,7 +359,7 @@ GenericLoad()
ReadDataFromBufferPointer(buf, CTimeCycle::m_bExtraColourOn);
ReadDataFromBufferPointer(buf, CTimeCycle::m_ExtraColourInter);
ReadDataFromBufferPointer(buf, RadioStationPosition);
- assert(buf - work_buff == SIZE_OF_SIMPLEVARS);
+ //assert(buf - work_buff == SIZE_OF_SIMPLEVARS);
#ifdef MISSION_REPLAY
WaitForSave = 0;
if (FrontEndMenuManager.m_nCurrSaveSlot == PAUSE_SAVE_SLOT && qs == 3)
@@ -372,50 +372,50 @@ GenericLoad()
//ReadDataFromBlock("Loading PedPool \n", CPools::LoadPedPool);
LoadSaveDataBlock();
ReadDataFromBlock("Loading Garages \n", CGarages::Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading GameLogic \n", CGameLogic::Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Vehicles \n", CPools::LoadVehiclePool);
- LoadSaveDataBlock();
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading GameLogic \n", CGameLogic::Load);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Vehicles \n", CPools::LoadVehiclePool);
+ //LoadSaveDataBlock();
CProjectileInfo::RemoveAllProjectiles();
CObject::DeleteAllTempObjects();
- ReadDataFromBlock("Loading Objects \n", CPools::LoadObjectPool);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Paths \n", ThePaths.Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Cranes \n", CCranes::Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Pickups \n", CPickups::Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Phoneinfo \n", gPhoneInfo.Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Restart \n", CRestart::LoadAllRestartPoints);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Radar Blips \n", CRadar::LoadAllRadarBlips);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Zones \n", CTheZones::LoadAllZones);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Gang Data \n", CGangs::LoadAllGangData);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Car Generators \n", CTheCarGenerators::LoadAllCarGenerators);
- CParticle::ReloadConfig();
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Particles \n", CParticleObject::LoadParticle);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading AudioScript Objects \n", cAudioScriptObject::LoadAllAudioScriptObjects);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading ScriptPaths \n", CScriptPaths::Load);
+ //ReadDataFromBlock("Loading Objects \n", CPools::LoadObjectPool);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Paths \n", ThePaths.Load);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Cranes \n", CCranes::Load);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Pickups \n", CPickups::Load);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Phoneinfo \n", gPhoneInfo.Load);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Restart \n", CRestart::LoadAllRestartPoints);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Radar Blips \n", CRadar::LoadAllRadarBlips);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Zones \n", CTheZones::LoadAllZones);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Gang Data \n", CGangs::LoadAllGangData);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Car Generators \n", CTheCarGenerators::LoadAllCarGenerators);
+ //CParticle::ReloadConfig();
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Particles \n", CParticleObject::LoadParticle);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading AudioScript Objects \n", cAudioScriptObject::LoadAllAudioScriptObjects);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading ScriptPaths \n", CScriptPaths::Load);
LoadSaveDataBlock();
ReadDataFromBlock("Loading Player Info \n", CWorld::Players[CWorld::PlayerInFocus].LoadPlayerInfo);
LoadSaveDataBlock();
ReadDataFromBlock("Loading Stats \n", CStats::LoadStats);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Set Pieces \n", CSetPieces::Load);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading Streaming Stuff \n", CStreaming::MemoryCardLoad);
- LoadSaveDataBlock();
- ReadDataFromBlock("Loading PedType Stuff \n", CPedType::Load);
-
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Set Pieces \n", CSetPieces::Load);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading Streaming Stuff \n", CStreaming::MemoryCardLoad);
+ //LoadSaveDataBlock();
+ //ReadDataFromBlock("Loading PedType Stuff \n", CPedType::Load);
+ CStreaming::ReInit();
DMAudio.SetMusicMasterVolume(FrontEndMenuManager.m_PrefsMusicVolume);
DMAudio.SetEffectsMasterVolume(FrontEndMenuManager.m_PrefsSfxVolume);
if (!CloseFile(file)) {
@@ -423,7 +423,7 @@ GenericLoad()
return false;
}
- DoGameSpecificStuffAfterSucessLoad();
+ //DoGameSpecificStuffAfterSucessLoad();
debug("Game successfully loaded \n");
return true;
}
diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp
index 268d6771..a6d8bea8 100644
--- a/src/skel/win/win.cpp
+++ b/src/skel/win/win.cpp
@@ -2558,7 +2558,7 @@ WinMain(HINSTANCE instance,
CGame::InitialiseWhenRestarting();
DMAudio.ChangeMusicMode(MUSICMODE_GAME);
LoadSplash(GetLevelSplashScreen(CGame::currLevel));
- FrontEndMenuManager.m_bWantToLoad = false;
+ //FrontEndMenuManager.m_bWantToLoad = false;
}
else
{