mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-11 21:55:27 +00:00
HOPKINS: Split run() in two in order to prepare future diffing between versions
This commit is contained in:
parent
11d73dfc8d
commit
8290b04018
@ -104,9 +104,31 @@ Common::Error HopkinsEngine::run() {
|
||||
|
||||
_soundManager.WSOUND_INIT();
|
||||
|
||||
if (!getIsDemo())
|
||||
_soundManager.WSOUND(16);
|
||||
bool retVal;
|
||||
if (getPlatform() == Common::kPlatformLinux) {
|
||||
if (getIsDemo())
|
||||
retVal = runLinuxDemo();
|
||||
else
|
||||
retVal = runLinuxFull();
|
||||
} else {
|
||||
warning("Unhandled version, switching to linux demo");
|
||||
retVal = runLinuxDemo();
|
||||
}
|
||||
|
||||
if (!retVal)
|
||||
return Common::kNoError;
|
||||
|
||||
// Stub event loop
|
||||
Common::Event evt;
|
||||
while (!g_system->getEventManager()->shouldQuit()) {
|
||||
while (g_system->getEventManager()->pollEvent(evt))
|
||||
g_system->updateScreen();
|
||||
}
|
||||
|
||||
return Common::kNoError;
|
||||
}
|
||||
|
||||
bool HopkinsEngine::runLinuxDemo() {
|
||||
_globals.CHARGE_OBJET();
|
||||
_objectsManager.CHANGE_OBJET(14);
|
||||
_objectsManager.AJOUTE_OBJET(14);
|
||||
@ -118,34 +140,21 @@ Common::Error HopkinsEngine::run() {
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
|
||||
if (getIsDemo())
|
||||
_graphicsManager.LOAD_IMAGE("LINUX");
|
||||
else
|
||||
_graphicsManager.LOAD_IMAGE("H2");
|
||||
|
||||
_graphicsManager.LOAD_IMAGE("LINUX");
|
||||
_graphicsManager.FADE_INW();
|
||||
if (getIsDemo())
|
||||
_eventsManager.delay(1500);
|
||||
else {
|
||||
_eventsManager.delay(500);
|
||||
_globals.vitesse = 2;
|
||||
_globals.iRegul = 1;
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
}
|
||||
_eventsManager.delay(1500);
|
||||
_graphicsManager.FADE_OUTW();
|
||||
|
||||
if (getIsDemo()) {
|
||||
if (!_globals.internet) {
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
_animationManager.PLAY_ANM("MP.ANM", 10, 16, 200);
|
||||
}
|
||||
|
||||
_graphicsManager.LOAD_IMAGE("H2");
|
||||
_graphicsManager.FADE_INW();
|
||||
_eventsManager.delay(500);
|
||||
_graphicsManager.FADE_OUTW();
|
||||
if (!_globals.internet) {
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
_animationManager.PLAY_ANM("MP.ANM", 10, 16, 200);
|
||||
}
|
||||
|
||||
_graphicsManager.LOAD_IMAGE("H2");
|
||||
_graphicsManager.FADE_INW();
|
||||
_eventsManager.delay(500);
|
||||
_graphicsManager.FADE_OUTW();
|
||||
|
||||
if (!_eventsManager.ESC_KEY)
|
||||
INTRORUN();
|
||||
|
||||
@ -156,10 +165,7 @@ Common::Error HopkinsEngine::run() {
|
||||
_globals.PLANX = _globals.PLANY = 0;
|
||||
memset(_globals.SAUVEGARDE, 0, 2000);
|
||||
_globals.SORTIE = 0;
|
||||
if (getIsDemo())
|
||||
_globals.PASSWORD = true;
|
||||
else
|
||||
_globals.PASSWORD = false;
|
||||
_globals.PASSWORD = true;
|
||||
|
||||
LABEL_12:
|
||||
if (_globals.SORTIE == 300)
|
||||
@ -185,7 +191,7 @@ LABEL_13:
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
if (g_system->getEventManager()->shouldQuit())
|
||||
return Common::kNoError;
|
||||
return false;
|
||||
|
||||
if (_globals.SORTIE == 300)
|
||||
goto LABEL_13;
|
||||
@ -521,15 +527,405 @@ LABEL_128:
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Stub event loop
|
||||
Common::Event evt;
|
||||
while (!g_system->getEventManager()->shouldQuit()) {
|
||||
while (g_system->getEventManager()->pollEvent(evt))
|
||||
g_system->updateScreen();
|
||||
bool HopkinsEngine::runLinuxFull() {
|
||||
_soundManager.WSOUND(16);
|
||||
|
||||
_globals.CHARGE_OBJET();
|
||||
_objectsManager.CHANGE_OBJET(14);
|
||||
_objectsManager.AJOUTE_OBJET(14);
|
||||
|
||||
_globals.HELICO = 0;
|
||||
_eventsManager.MOUSE_OFF();
|
||||
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
|
||||
_graphicsManager.LOAD_IMAGE("H2");
|
||||
_graphicsManager.FADE_INW();
|
||||
_eventsManager.delay(500);
|
||||
|
||||
_globals.vitesse = 2;
|
||||
_globals.iRegul = 1;
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
_graphicsManager.FADE_OUTW();
|
||||
|
||||
if (!_eventsManager.ESC_KEY)
|
||||
INTRORUN();
|
||||
|
||||
_globals.iRegul = 0;
|
||||
_fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
|
||||
_globals.PERSO = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
||||
_globals.PERSO_TYPE = 0;
|
||||
_globals.PLANX = _globals.PLANY = 0;
|
||||
memset(_globals.SAUVEGARDE, 0, 2000);
|
||||
_globals.SORTIE = 0;
|
||||
_globals.PASSWORD = false;
|
||||
|
||||
LABEL_12:
|
||||
if (_globals.SORTIE == 300)
|
||||
LABEL_13:
|
||||
_globals.SORTIE = 0;
|
||||
|
||||
if (!_globals.SORTIE) {
|
||||
_globals.SORTIE = _menuManager.MENU();
|
||||
if (_globals.SORTIE == -1) {
|
||||
if (!g_system->getEventManager()->shouldQuit())
|
||||
PUBQUIT();
|
||||
_globals.PERSO = _globals.dos_free2(_globals.PERSO);
|
||||
REST_SYSTEM();
|
||||
}
|
||||
}
|
||||
|
||||
return Common::kNoError;
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
if (g_system->getEventManager()->shouldQuit())
|
||||
return false;
|
||||
|
||||
if (_globals.SORTIE == 300)
|
||||
goto LABEL_13;
|
||||
if (_globals.SORTIE == 18)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 23)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 22)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 19)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 20)
|
||||
PASS();
|
||||
if (_globals.SORTIE != 1)
|
||||
break;
|
||||
|
||||
_globals.Max_Propre = 50;
|
||||
_globals.Max_Ligne_Long = 40;
|
||||
_globals.Max_Propre_Gen = 20;
|
||||
_globals.Max_Perso_Y = 435;
|
||||
_objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1);
|
||||
}
|
||||
|
||||
if (_globals.SORTIE != 3)
|
||||
break;
|
||||
|
||||
if (!*((byte *)_globals.SAUVEGARDE + 170)) {
|
||||
_soundManager.WSOUND(3);
|
||||
if (_globals.FR == 1)
|
||||
_graphicsManager.LOAD_IMAGE("fondfr");
|
||||
if (!_globals.FR)
|
||||
_graphicsManager.LOAD_IMAGE("fondan");
|
||||
if (_globals.FR == 2)
|
||||
_graphicsManager.LOAD_IMAGE("fondes");
|
||||
_graphicsManager.FADE_INW();
|
||||
_eventsManager.delay(500);
|
||||
_graphicsManager.FADE_OUTW();
|
||||
_globals.iRegul = 1;
|
||||
_soundManager.SPECIAL_SOUND = 2;
|
||||
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
_graphicsManager.Cls_Pal();
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
|
||||
if (!_globals.CENSURE)
|
||||
_animationManager.PLAY_ANM("BANQUE.ANM", 200, 28, 200);
|
||||
if (_globals.CENSURE == 1)
|
||||
_animationManager.PLAY_ANM("BANKUK.ANM", 200, 28, 200);
|
||||
_soundManager.SPECIAL_SOUND = 0;
|
||||
_soundManager.DEL_SAMPLE(1);
|
||||
_soundManager.DEL_SAMPLE(2);
|
||||
_soundManager.DEL_SAMPLE(3);
|
||||
_soundManager.DEL_SAMPLE(4);
|
||||
*((byte *)_globals.SAUVEGARDE + 170) = 1;
|
||||
}
|
||||
|
||||
_globals.Max_Propre = 5;
|
||||
_globals.Max_Ligne_Long = 5;
|
||||
_globals.Max_Propre_Gen = 5;
|
||||
_globals.Max_Perso_Y = 450;
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2);
|
||||
}
|
||||
|
||||
if (_globals.SORTIE != 4)
|
||||
break;
|
||||
_globals.DESACTIVE_INVENT = true;
|
||||
_objectsManager.PLAN_BETA();
|
||||
_globals.DESACTIVE_INVENT = false;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE != 5)
|
||||
break;
|
||||
_globals.Max_Propre = 5;
|
||||
_globals.Max_Ligne_Long = 5;
|
||||
_globals.Max_Propre_Gen = 5;
|
||||
_globals.Max_Perso_Y = 455;
|
||||
_globals.NOSPRECRAN = 1;
|
||||
byte v1 = *((byte *)_globals.SAUVEGARDE + 80);
|
||||
if (v1) {
|
||||
if (v1 == 1)
|
||||
_objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3);
|
||||
} else {
|
||||
_objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3);
|
||||
}
|
||||
|
||||
_globals.NOSPRECRAN = 0;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE != 8)
|
||||
break;
|
||||
|
||||
_globals.Max_Propre = 15;
|
||||
_globals.Max_Ligne_Long = 15;
|
||||
_globals.Max_Propre_Gen = 10;
|
||||
_globals.Max_Perso_Y = 450;
|
||||
_objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2);
|
||||
}
|
||||
|
||||
if (_globals.SORTIE != 6)
|
||||
break;
|
||||
_globals.Max_Propre = 15;
|
||||
_globals.Max_Ligne_Long = 20;
|
||||
_globals.Max_Propre_Gen = 10;
|
||||
_globals.Max_Perso_Y = 460;
|
||||
_objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2);
|
||||
}
|
||||
|
||||
if (_globals.SORTIE != 7)
|
||||
break;
|
||||
if (*((byte *)_globals.SAUVEGARDE + 220))
|
||||
_objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2);
|
||||
else
|
||||
_objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2);
|
||||
}
|
||||
|
||||
if (_globals.SORTIE == 9) {
|
||||
_globals.Max_Propre = 15;
|
||||
_globals.Max_Ligne_Long = 20;
|
||||
_globals.Max_Propre_Gen = 10;
|
||||
_globals.Max_Perso_Y = 440;
|
||||
|
||||
if (!*((byte *)_globals.SAUVEGARDE + 225))
|
||||
goto LABEL_109;
|
||||
_objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10);
|
||||
} else {
|
||||
if (_globals.SORTIE == 10) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9);
|
||||
goto LABEL_124;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE == 11) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_globals.Max_Propre = 15;
|
||||
_globals.Max_Ligne_Long = 20;
|
||||
_globals.Max_Propre_Gen = 10;
|
||||
_globals.Max_Perso_Y = 450;
|
||||
_objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2);
|
||||
goto LABEL_124;
|
||||
}
|
||||
|
||||
switch (_globals.SORTIE) {
|
||||
case 12:
|
||||
_globals.Max_Propre = 15;
|
||||
_globals.Max_Ligne_Long = 20;
|
||||
_globals.Max_Propre_Gen = 10;
|
||||
_globals.Max_Perso_Y = 450;
|
||||
if (*((byte *)_globals.SAUVEGARDE + 225)) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1);
|
||||
} else {
|
||||
LABEL_109:
|
||||
BOOM();
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
_globals.Max_Propre = 50;
|
||||
_globals.Max_Ligne_Long = 40;
|
||||
_globals.Max_Propre_Gen = 20;
|
||||
_globals.Max_Perso_Y = 440;
|
||||
_objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1);
|
||||
break;
|
||||
case 14:
|
||||
_globals.Max_Propre = 50;
|
||||
_globals.Max_Ligne_Long = 40;
|
||||
_globals.Max_Propre_Gen = 20;
|
||||
_globals.Max_Perso_Y = 440;
|
||||
_objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1);
|
||||
break;
|
||||
default:
|
||||
if (_globals.SORTIE == 15) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29);
|
||||
goto LABEL_124;
|
||||
}
|
||||
if (_globals.SORTIE == 16) {
|
||||
_globals.Max_Propre = 5;
|
||||
_globals.Max_Ligne_Long = 5;
|
||||
_globals.Max_Propre_Gen = 5;
|
||||
_globals.Max_Perso_Y = 450;
|
||||
|
||||
byte v2 = *((byte *)_globals.SAUVEGARDE + 113);
|
||||
if (v2 == 1) {
|
||||
_objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7);
|
||||
} else if (!v2) {
|
||||
_objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7);
|
||||
}
|
||||
} else {
|
||||
if (_globals.SORTIE == 17)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 24)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 25) {
|
||||
_globals.Max_Propre = 15;
|
||||
_globals.Max_Ligne_Long = 20;
|
||||
_globals.Max_Propre_Gen = 10;
|
||||
_globals.Max_Perso_Y = 445;
|
||||
_objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30);
|
||||
} else {
|
||||
if (_globals.SORTIE == 33) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8);
|
||||
goto LABEL_124;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE == 26) {
|
||||
_globals.Max_Propre = 50;
|
||||
_globals.Max_Ligne_Long = 40;
|
||||
_globals.Max_Propre_Gen = 20;
|
||||
_globals.Max_Perso_Y = 435;
|
||||
_objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30);
|
||||
} else {
|
||||
if (_globals.SORTIE == 27)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 28)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 29)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 30)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 31)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 35)
|
||||
ENDEMO();
|
||||
if (_globals.SORTIE == 32)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 34)
|
||||
PASS();
|
||||
|
||||
if ((uint16)(_globals.SORTIE - 51) <= 38)
|
||||
PASS();
|
||||
if (_globals.SORTIE == 111) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10);
|
||||
goto LABEL_124;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE == 112) {
|
||||
_globals.NOSPRECRAN = 1;
|
||||
_objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10);
|
||||
LABEL_124:
|
||||
_globals.NOSPRECRAN = 0;
|
||||
} else if (_globals.SORTIE == 113) {
|
||||
_globals.SORTIE = 0;
|
||||
_globals.OLD_ECRAN = _globals.ECRAN;
|
||||
*((byte *)_globals.SAUVEGARDE + 6) = _globals.ECRAN;
|
||||
_globals.ECRAN = 113;
|
||||
*((byte *)_globals.SAUVEGARDE + 5) = 113;
|
||||
_menuManager.COMPUT_HOPKINS(1);
|
||||
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
_graphicsManager.DD_VBL();
|
||||
memset(_graphicsManager.VESA_BUFFER, 0, 0x4B000u);
|
||||
memset(_graphicsManager.VESA_SCREEN, 0, 0x4B000u);
|
||||
_graphicsManager.Cls_Pal();
|
||||
_graphicsManager.RESET_SEGMENT_VESA();
|
||||
} else {
|
||||
if (_globals.SORTIE == 114) {
|
||||
_globals.SORTIE = 0;
|
||||
_globals.OLD_ECRAN = _globals.ECRAN;
|
||||
*((byte *)_globals.SAUVEGARDE + 6) = _globals.ECRAN;
|
||||
_globals.ECRAN = 114;
|
||||
*((byte *)_globals.SAUVEGARDE + 5) = 114;
|
||||
_menuManager.COMPUT_HOPKINS(2);
|
||||
goto LABEL_128;
|
||||
}
|
||||
if (_globals.SORTIE == 115) {
|
||||
_globals.SORTIE = 0;
|
||||
_globals.OLD_ECRAN = _globals.ECRAN;
|
||||
*((byte *)_globals.SAUVEGARDE + 6) = _globals.ECRAN;
|
||||
_globals.ECRAN = 115;
|
||||
*((byte *)_globals.SAUVEGARDE + 5) = 115;
|
||||
_menuManager.COMPUT_HOPKINS(3);
|
||||
|
||||
LABEL_128:
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
} else if ((uint16)(_globals.SORTIE - 194) > 5) {
|
||||
if (_globals.SORTIE == 151) {
|
||||
_soundManager.WSOUND(16);
|
||||
_globals.iRegul = 1;
|
||||
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
_graphicsManager.Cls_Pal();
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
_animationManager.PLAY_ANM("JOUR3A.anm", 12, 12, 2000);
|
||||
_globals.iRegul = 0;
|
||||
_globals.SORTIE = 300;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE == 150) {
|
||||
_soundManager.WSOUND(16);
|
||||
_globals.iRegul = 1;
|
||||
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
_graphicsManager.Cls_Pal();
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
_animationManager.PLAY_ANM("JOUR1A.anm", 12, 12, 2000);
|
||||
_globals.iRegul = 0;
|
||||
_globals.SORTIE = 300;
|
||||
}
|
||||
|
||||
if (_globals.SORTIE == 152) {
|
||||
_soundManager.WSOUND(16);
|
||||
_globals.iRegul = 1;
|
||||
|
||||
_graphicsManager.DD_Lock();
|
||||
_graphicsManager.Cls_Video();
|
||||
_graphicsManager.DD_Unlock();
|
||||
_graphicsManager.Cls_Pal();
|
||||
_graphicsManager.FADE_LINUX = 2;
|
||||
_animationManager.PLAY_ANM("JOUR4A.anm", 12, 12, 2000);
|
||||
_globals.iRegul = 0;
|
||||
_globals.SORTIE = 300;
|
||||
}
|
||||
goto LABEL_12;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool HopkinsEngine::shouldQuit() const {
|
||||
|
@ -91,6 +91,10 @@ private:
|
||||
void PUBQUIT();
|
||||
void ENDEMO();
|
||||
void BOOM();
|
||||
|
||||
bool runLinuxDemo();
|
||||
bool runLinuxFull();
|
||||
|
||||
protected:
|
||||
// Engine APIs
|
||||
virtual Common::Error run();
|
||||
|
Loading…
x
Reference in New Issue
Block a user