@@ -31,6 +31,12 @@ CvarEnum<eGtaGameVersion> gCvarGameVersion("g_gamever", eGtaGameVersion_Unknown,
3131CvarString gCvarGameLanguage (" g_gamelang" , " en" , " Current game language" , CvarFlags_Init);
3232CvarInt gCvarNumPlayers (" g_numplayers" , 1 , " Number of players in split screen mode" , CvarFlags_Init);
3333
34+ // debug
35+ CvarVoid gCvarDbgDumpSpriteDeltas (" dbg_dumpSpriteDeltas" , " Dump sprite deltas" , CvarFlags_None);
36+ CvarVoid gCvarDbgDumpBlockTextures (" dbg_dumpBlocks" , " Dump block textures" , CvarFlags_None);
37+ CvarVoid gCvarDbgDumpSprites (" dbg_dumpSprites" , " Dump all sprites" , CvarFlags_None);
38+ CvarVoid gCvarDbgDumpCarSprites (" dbg_dumpCarSprites" , " Dump car sprites" , CvarFlags_None);
39+
3440// ////////////////////////////////////////////////////////////////////////
3541
3642CarnageGame gCarnageGame ;
@@ -127,6 +133,8 @@ void CarnageGame::UpdateFrame()
127133 // advance game state
128134 if (IsInGameState ())
129135 {
136+ ProcessDebugCvars ();
137+
130138 gSpriteManager .UpdateBlocksAnimations (deltaTime);
131139 gPhysics .UpdateFrame ();
132140 gGameObjectsManager .UpdateFrame ();
@@ -389,10 +397,6 @@ bool CarnageGame::StartScenario(const std::string& mapName)
389397 {
390398 debug_assert (false );
391399 }
392- // gSpriteManager.DumpSpriteDeltas("D:/Temp/gta1_deltas");
393- // gSpriteCache.DumpBlocksTexture("D:/Temp/gta1_blocks");
394- // gSpriteManager.DumpSpriteTextures("D:/Temp/gta1_sprites");
395- // gSpriteManager.DumpCarsTextures("D:/Temp/gta_cars");
396400
397401 gPhysics .EnterWorld ();
398402 gParticleManager .EnterWorld ();
@@ -579,3 +583,38 @@ std::string CarnageGame::GetTextsLanguageFileName(const std::string& languageID)
579583
580584 return " ENGLISH.FXT" ;
581585}
586+
587+ void CarnageGame::ProcessDebugCvars ()
588+ {
589+ if (gCvarDbgDumpSpriteDeltas .IsModified ())
590+ {
591+ gCvarDbgDumpSpriteDeltas .ClearModified ();
592+ std::string savePath = gFiles .mExecutableDirectory + " /sprite_deltas" ;
593+ gSpriteManager .DumpSpriteDeltas (savePath);
594+ gConsole .LogMessage (eLogMessage_Info, " Sprite deltas path is '%s'" , savePath.c_str ());
595+ }
596+
597+ if (gCvarDbgDumpBlockTextures .IsModified ())
598+ {
599+ gCvarDbgDumpBlockTextures .ClearModified ();
600+ std::string savePath = gFiles .mExecutableDirectory + " /block_textures" ;
601+ gSpriteManager .DumpBlocksTexture (savePath);
602+ gConsole .LogMessage (eLogMessage_Info, " Blocks textures path is '%s'" , savePath.c_str ());
603+ }
604+
605+ if (gCvarDbgDumpSprites .IsModified ())
606+ {
607+ gCvarDbgDumpSprites .ClearModified ();
608+ std::string savePath = gFiles .mExecutableDirectory + " /sprites" ;
609+ gSpriteManager .DumpSpriteTextures (savePath);
610+ gConsole .LogMessage (eLogMessage_Info, " Sprites path is '%s'" , savePath.c_str ());
611+ }
612+
613+ if (gCvarDbgDumpCarSprites .IsModified ())
614+ {
615+ gCvarDbgDumpCarSprites .ClearModified ();
616+ std::string savePath = gFiles .mExecutableDirectory + " /car_sprites" ;
617+ gSpriteManager .DumpCarsTextures (savePath);
618+ gConsole .LogMessage (eLogMessage_Info, " Car sprites path is '%s'" , savePath.c_str ());
619+ }
620+ }
0 commit comments