mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-29 08:03:45 +00:00
disable mission replay for lcs
This commit is contained in:
parent
2672504e8a
commit
0c4ab5b609
4 changed files with 76 additions and 130 deletions
|
@ -112,112 +112,71 @@ base::cSList<script_corona> CTheScripts::mCoronas;
|
|||
|
||||
#ifdef MISSION_REPLAY
|
||||
|
||||
static const char* nonMissionScripts[] = {
|
||||
"copcar",
|
||||
"ambulan",
|
||||
"taxi",
|
||||
"firetru",
|
||||
"rampage",
|
||||
"t4x4_1",
|
||||
"t4x4_2",
|
||||
"t4x4_3",
|
||||
"rc1",
|
||||
"rc2",
|
||||
"rc3",
|
||||
"rc4",
|
||||
"hj",
|
||||
"usj",
|
||||
"mayhem",
|
||||
"range",
|
||||
"race",
|
||||
"pizza",
|
||||
"rcheli",
|
||||
"rcplne1",
|
||||
"rcrace1",
|
||||
"cokerun",
|
||||
"buypro1",
|
||||
"carbuy1",
|
||||
"buypro2",
|
||||
"icecut",
|
||||
"icecre1",
|
||||
"buypro3",
|
||||
"buypro4",
|
||||
"buypro5",
|
||||
"buypro6",
|
||||
"buypro7",
|
||||
"buypro8",
|
||||
"buypro9",
|
||||
"buypro10",
|
||||
"buypro11",
|
||||
"ovalrng",
|
||||
"mm",
|
||||
"kickst",
|
||||
"heli1sc",
|
||||
"heli2sc",
|
||||
"heli3sc",
|
||||
"heli4sc",
|
||||
"carpark_1",
|
||||
"bmx_1",
|
||||
"bmx_2"
|
||||
};
|
||||
|
||||
static const char* MissionScripts[] = {
|
||||
"LAWYER1",
|
||||
"LAWYER2",
|
||||
"LAWYER3",
|
||||
"LAWYER4",
|
||||
"GENERL1",
|
||||
"COL2",
|
||||
"GENERL3",
|
||||
"COL_4",
|
||||
"COL_5",
|
||||
"baron1",
|
||||
"baron2",
|
||||
"baron3",
|
||||
"baron4",
|
||||
"kent1",
|
||||
"baron5",
|
||||
"serg1",
|
||||
"serg2",
|
||||
"serg3",
|
||||
"bankjo1",
|
||||
"bankjo2",
|
||||
"bankjo3",
|
||||
"bankjo4",
|
||||
"phil1",
|
||||
"phil2",
|
||||
"porno1",
|
||||
"porno2",
|
||||
"porno3",
|
||||
"porno4",
|
||||
"protec1",
|
||||
"protec2",
|
||||
"protec3",
|
||||
"count1",
|
||||
"count2",
|
||||
"CAP_1",
|
||||
"FIN_1",
|
||||
"bike1",
|
||||
"bike2",
|
||||
"bike3",
|
||||
"rockb1",
|
||||
"rockb2",
|
||||
"rockb3",
|
||||
"cuban1",
|
||||
"cuban2",
|
||||
"cuban3",
|
||||
"cuban4",
|
||||
"hait1",
|
||||
"hait2",
|
||||
"hait3",
|
||||
"assin1",
|
||||
"assin2",
|
||||
"assin3",
|
||||
"assin4",
|
||||
"assin5",
|
||||
"taxwar1",
|
||||
"taxwar2",
|
||||
"taxwar3"
|
||||
"VIC2",
|
||||
"VIC3",
|
||||
"VIC4",
|
||||
"VIC5",
|
||||
"VIC6",
|
||||
"VIC7",
|
||||
"SAL1",
|
||||
"SAL2",
|
||||
"SAL3",
|
||||
"SAL4",
|
||||
"SAL5",
|
||||
"SAL6",
|
||||
"SAL7",
|
||||
"SAL8",
|
||||
"JDT1",
|
||||
"JDT2",
|
||||
"JDT3",
|
||||
"JDT4",
|
||||
"JDT5",
|
||||
"JDT6",
|
||||
"JDT7",
|
||||
"JDT8",
|
||||
"MAC1",
|
||||
"MAC2",
|
||||
"MAC3",
|
||||
"MAC4",
|
||||
"MAC5",
|
||||
"SALS1",
|
||||
"SALS2",
|
||||
"SALS3",
|
||||
"SALS4",
|
||||
"SALS5",
|
||||
"SALS6",
|
||||
"RAYS1",
|
||||
"RAYS2",
|
||||
"RAYS3",
|
||||
"RAYS4",
|
||||
"RAYS5",
|
||||
"DONS1",
|
||||
"DONS2",
|
||||
"DONS3",
|
||||
"DONS4",
|
||||
"DONS5",
|
||||
"DONS6",
|
||||
"DONS7",
|
||||
"NEDS1",
|
||||
"NEDS2",
|
||||
"NEDS3",
|
||||
"NEDS4",
|
||||
"SALH1",
|
||||
"SALH2",
|
||||
"SALH3",
|
||||
"SALH4",
|
||||
"SALH5",
|
||||
"DONH1",
|
||||
"DONH2",
|
||||
"DONH3",
|
||||
"DONH4",
|
||||
"DONH5",
|
||||
"DONH6",
|
||||
"TOSH1",
|
||||
"TOSH2",
|
||||
"TOSH3",
|
||||
"TOSH4"
|
||||
};
|
||||
|
||||
int AllowMissionReplay;
|
||||
|
@ -234,7 +193,6 @@ int IsInAmmunation;
|
|||
int MissionSkipLevel;
|
||||
|
||||
#ifdef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
|
||||
bool UsingMobileScript;
|
||||
bool AlreadySavedGame;
|
||||
#endif
|
||||
|
||||
|
@ -1003,7 +961,6 @@ bool CTheScripts::Init(bool loaddata)
|
|||
LogAfterScriptInitializing();
|
||||
#endif
|
||||
#ifdef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
|
||||
UsingMobileScript = false;
|
||||
AlreadySavedGame = false;
|
||||
#endif
|
||||
return retval;
|
||||
|
|
|
@ -668,7 +668,7 @@ public:
|
|||
#ifdef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
|
||||
static bool MissionSupportsMissionReplay(int index)
|
||||
{
|
||||
return index >= 3 && index <= 35 || index >= 51 && index <= 65 || index >= 67 && index <= 74 || index >= 83 && index <= 87;
|
||||
return (index >= 48 && index <= 61) || (index >= 63 && index <= 117);
|
||||
}
|
||||
#endif
|
||||
static bool IsFortStauntonDestroyed() { return FSDestroyedFlag && *(int32*)&ScriptSpace[FSDestroyedFlag] == 1; }
|
||||
|
@ -700,7 +700,6 @@ extern int IsInAmmunation;
|
|||
extern int MissionSkipLevel;
|
||||
|
||||
#ifdef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
|
||||
extern bool UsingMobileScript;
|
||||
extern bool AlreadySavedGame;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -381,7 +381,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
|||
#ifdef MISSION_REPLAY
|
||||
missionRetryScriptIndex = GET_INTEGER_PARAM(0);
|
||||
#ifdef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
|
||||
if (!UsingMobileScript && CTheScripts::MissionSupportsMissionReplay(missionRetryScriptIndex)){
|
||||
if (CTheScripts::MissionSupportsMissionReplay(missionRetryScriptIndex)){
|
||||
if (!AlreadySavedGame) {
|
||||
m_nIp = oldIp - 2;
|
||||
SaveGameForPause(4);
|
||||
|
|
|
@ -1946,8 +1946,7 @@ void CRunningScript::LogAfterProcessingCommand(int32 command)
|
|||
CDebug::DebugAddText(commandInfo);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef MISSION_SWITCHER
|
||||
void
|
||||
|
@ -1975,30 +1974,21 @@ CTheScripts::SwitchToMission(int32 mission)
|
|||
|
||||
#ifdef MISSION_REPLAY
|
||||
missionRetryScriptIndex = mission;
|
||||
#ifdef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
|
||||
if (CTheScripts::MissionSupportsMissionReplay(missionRetryScriptIndex)) {
|
||||
SaveGameForPause(4);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
CTimer::Suspend();
|
||||
int offset = CTheScripts::MultiScriptArray[mission];
|
||||
#ifdef USE_DEBUG_SCRIPT_LOADER
|
||||
CFileMgr::ChangeDir("\\data\\");
|
||||
int handle = CFileMgr::OpenFile(scriptfile, "rb");
|
||||
CFileMgr::ChangeDir("\\");
|
||||
#else
|
||||
CFileMgr::ChangeDir("\\");
|
||||
int handle = CFileMgr::OpenFile("data\\main.scm", "rb");
|
||||
#endif
|
||||
CFileMgr::Seek(handle, offset, 0);
|
||||
CFileMgr::Read(handle, (const char*)&CTheScripts::ScriptSpace[SIZE_MAIN_SCRIPT], SIZE_MISSION_SCRIPT);
|
||||
CFileMgr::CloseFile(handle);
|
||||
CRunningScript* pMissionScript = CTheScripts::StartNewScript(SIZE_MAIN_SCRIPT);
|
||||
int offset = CTheScripts::MultiScriptArray[mission] + 8;
|
||||
int size = CTheScripts::MultiScriptArray[mission + 1] - CTheScripts::MultiScriptArray[mission];
|
||||
if (size <= 0)
|
||||
size = CTheScripts::LargestMissionScriptSize;
|
||||
CFileMgr::Seek(gScriptsFile, offset, 0);
|
||||
CFileMgr::Read(gScriptsFile, (const char*)&CTheScripts::ScriptSpace[CTheScripts::MainScriptSize], size);
|
||||
CRunningScript* pMissionScript = CTheScripts::StartNewScript(CTheScripts::MainScriptSize);
|
||||
CTimer::Resume();
|
||||
pMissionScript->m_bIsMissionScript = true;
|
||||
pMissionScript->m_bMissionFlag = true;
|
||||
CTheScripts::bAlreadyRunningAMissionScript = true;
|
||||
memset(&CTheScripts::ScriptSpace[CTheScripts::NumTrueGlobals * 4 + 8], 0, CTheScripts::MostGlobals * 4);
|
||||
CGameLogic::ClearShortCut();
|
||||
pMissionScript->Process();
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue