2012-09-07 12:20:05 +00:00
|
|
|
/* ScummVM - Graphic Adventure Engine
|
|
|
|
*
|
|
|
|
* ScummVM is the legal property of its developers, whose names
|
|
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
|
|
* file distributed with this source distribution.
|
|
|
|
*
|
2012-10-29 22:38:31 +00:00
|
|
|
* This program is free software; you can redistribute it and/or
|
2012-09-07 12:20:05 +00:00
|
|
|
* modify it under the terms of the GNU General Public License
|
2012-10-29 22:38:31 +00:00
|
|
|
* as published by the Free Software Foundation; either version 2
|
2012-09-07 12:20:05 +00:00
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
2012-10-29 22:38:31 +00:00
|
|
|
* along with this program; if not, write to the Free Software
|
2012-10-27 17:08:53 +00:00
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
2012-09-07 12:20:05 +00:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "common/scummsys.h"
|
|
|
|
#include "common/config-manager.h"
|
|
|
|
#include "common/debug-channels.h"
|
|
|
|
#include "common/events.h"
|
|
|
|
#include "common/file.h"
|
2012-09-08 13:43:35 +00:00
|
|
|
#include "hopkins/graphics.h"
|
2012-09-07 12:20:05 +00:00
|
|
|
#include "hopkins/hopkins.h"
|
|
|
|
#include "hopkins/files.h"
|
2012-10-24 11:49:32 +00:00
|
|
|
#include "hopkins/saveload.h"
|
2012-09-08 11:43:33 +00:00
|
|
|
#include "hopkins/sound.h"
|
2012-09-26 13:34:10 +00:00
|
|
|
#include "hopkins/talk.h"
|
2012-09-07 12:20:05 +00:00
|
|
|
|
|
|
|
namespace Hopkins {
|
|
|
|
|
|
|
|
HopkinsEngine *g_vm;
|
|
|
|
|
|
|
|
HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDesc) : Engine(syst),
|
2012-09-15 00:27:15 +00:00
|
|
|
_gameDescription(gameDesc), _randomSource("Hopkins"), _animationManager() {
|
2012-09-07 12:20:05 +00:00
|
|
|
g_vm = this;
|
2012-10-14 02:43:29 +00:00
|
|
|
_debugger.setParent(this);
|
2012-09-15 00:27:15 +00:00
|
|
|
_animationManager.setParent(this);
|
2012-10-24 09:37:42 +00:00
|
|
|
_dialogsManager.setParent(this);
|
2012-09-19 11:34:23 +00:00
|
|
|
_eventsManager.setParent(this);
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.setParent(this);
|
2012-09-19 11:34:23 +00:00
|
|
|
_fontManager.setParent(this);
|
2012-09-22 09:54:30 +00:00
|
|
|
_globals.setParent(this);
|
2012-09-21 11:20:07 +00:00
|
|
|
_graphicsManager.setParent(this);
|
2012-10-08 13:21:03 +00:00
|
|
|
_linesManager.setParent(this);
|
2012-09-17 08:53:29 +00:00
|
|
|
_menuManager.setParent(this);
|
|
|
|
_objectsManager.setParent(this);
|
2012-10-24 11:49:32 +00:00
|
|
|
_saveLoadManager.setParent(this);
|
2012-10-23 09:40:19 +00:00
|
|
|
_scriptManager.setParent(this);
|
2012-09-15 00:27:15 +00:00
|
|
|
_soundManager.setParent(this);
|
2012-10-22 22:07:19 +00:00
|
|
|
_talkManager.setParent(this);
|
2012-09-07 12:20:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
HopkinsEngine::~HopkinsEngine() {
|
|
|
|
}
|
|
|
|
|
2012-10-28 03:51:17 +00:00
|
|
|
Common::String HopkinsEngine::generateSaveName(int slot) {
|
|
|
|
return Common::String::format("%s.%03d", _targetName.c_str(), slot);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns true if it is currently okay to restore a game
|
|
|
|
*/
|
|
|
|
bool HopkinsEngine::canLoadGameStateCurrently() {
|
|
|
|
return !_globals.SORTIE && !_globals.PLAN_FLAG;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns true if it is currently okay to save the game
|
|
|
|
*/
|
|
|
|
bool HopkinsEngine::canSaveGameStateCurrently() {
|
|
|
|
return !_globals.SORTIE && !_globals.PLAN_FLAG;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Load the savegame at the specified slot index
|
|
|
|
*/
|
|
|
|
Common::Error HopkinsEngine::loadGameState(int slot) {
|
|
|
|
return _saveLoadManager.restore(slot);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Save the game to the given slot index, and with the given name
|
|
|
|
*/
|
|
|
|
Common::Error HopkinsEngine::saveGameState(int slot, const Common::String &desc) {
|
|
|
|
return _saveLoadManager.save(slot, desc);
|
|
|
|
}
|
|
|
|
|
2012-09-07 12:20:05 +00:00
|
|
|
Common::Error HopkinsEngine::run() {
|
2012-10-24 11:49:32 +00:00
|
|
|
_saveLoadManager.initSaves();
|
2012-09-07 12:20:05 +00:00
|
|
|
|
2012-09-07 23:09:09 +00:00
|
|
|
Common::StringMap iniParams;
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.Chage_Inifile(iniParams);
|
2012-09-07 23:09:09 +00:00
|
|
|
processIniParams(iniParams);
|
|
|
|
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.setConfig();
|
|
|
|
_fileManager.F_Censure();
|
2012-09-08 08:45:22 +00:00
|
|
|
INIT_SYSTEM();
|
2012-09-08 11:43:33 +00:00
|
|
|
|
2012-09-15 00:27:15 +00:00
|
|
|
_soundManager.WSOUND_INIT();
|
2012-09-08 11:43:33 +00:00
|
|
|
|
2012-11-10 22:52:49 +00:00
|
|
|
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;
|
2012-11-09 00:18:14 +00:00
|
|
|
|
2012-11-10 22:52:49 +00:00
|
|
|
// 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() {
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.CHARGE_OBJET();
|
2012-09-17 08:03:25 +00:00
|
|
|
_objectsManager.CHANGE_OBJET(14);
|
|
|
|
_objectsManager.AJOUTE_OBJET(14);
|
2012-09-08 13:43:35 +00:00
|
|
|
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.HELICO = 0;
|
2012-09-17 06:53:21 +00:00
|
|
|
_eventsManager.MOUSE_OFF();
|
2012-09-08 08:45:22 +00:00
|
|
|
|
2012-09-08 14:12:27 +00:00
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
2012-09-09 09:55:05 +00:00
|
|
|
|
2012-11-10 22:52:49 +00:00
|
|
|
_graphicsManager.LOAD_IMAGE("LINUX");
|
2012-09-10 10:26:24 +00:00
|
|
|
_graphicsManager.FADE_INW();
|
2012-11-10 22:52:49 +00:00
|
|
|
_eventsManager.delay(1500);
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
|
|
|
|
if (!_globals.internet) {
|
2012-09-15 00:27:15 +00:00
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
2012-11-10 22:52:49 +00:00
|
|
|
_animationManager.PLAY_ANM("MP.ANM", 10, 16, 200);
|
2012-09-15 00:27:15 +00:00
|
|
|
}
|
2012-11-10 22:52:49 +00:00
|
|
|
|
|
|
|
_graphicsManager.LOAD_IMAGE("H2");
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_eventsManager.delay(500);
|
2012-09-15 01:45:36 +00:00
|
|
|
_graphicsManager.FADE_OUTW();
|
2012-09-15 03:23:46 +00:00
|
|
|
|
2012-11-10 22:52:49 +00:00
|
|
|
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 = true;
|
|
|
|
|
|
|
|
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();
|
2012-11-09 00:18:14 +00:00
|
|
|
}
|
2012-11-10 22:52:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_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;
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = false;
|
2012-11-10 22:52:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9);
|
|
|
|
goto LABEL_124;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (_globals.SORTIE == 11) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_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)) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_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) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_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;
|
2012-11-09 00:18:14 +00:00
|
|
|
|
2012-11-10 22:52:49 +00:00
|
|
|
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) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_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) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10);
|
|
|
|
goto LABEL_124;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (_globals.SORTIE == 112) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-11-10 22:52:49 +00:00
|
|
|
_objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10);
|
|
|
|
LABEL_124:
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = false;
|
2012-11-10 22:52:49 +00:00
|
|
|
} 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;
|
|
|
|
}
|
|
|
|
}
|
2012-11-09 00:18:14 +00:00
|
|
|
}
|
2012-11-10 22:52:49 +00:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
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();
|
2012-11-09 00:18:14 +00:00
|
|
|
|
2012-09-15 03:23:46 +00:00
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
INTRORUN();
|
2012-09-17 06:53:21 +00:00
|
|
|
|
|
|
|
_globals.iRegul = 0;
|
2012-10-06 13:21:10 +00:00
|
|
|
_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;
|
2012-11-10 22:52:49 +00:00
|
|
|
_globals.PASSWORD = false;
|
2012-09-17 06:53:21 +00:00
|
|
|
|
2012-11-11 13:22:58 +00:00
|
|
|
LABEL_10:
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE == 300)
|
2012-11-11 13:22:58 +00:00
|
|
|
LABEL_11:
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.SORTIE = 0;
|
|
|
|
if (!_globals.SORTIE) {
|
|
|
|
_globals.SORTIE = _menuManager.MENU();
|
|
|
|
if (_globals.SORTIE == -1) {
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.PERSO = _globals.dos_free2(_globals.PERSO);
|
|
|
|
REST_SYSTEM();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
2012-11-11 13:22:58 +00:00
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
for (;;) {
|
|
|
|
if (_globals.SORTIE == 300)
|
|
|
|
goto LABEL_11;
|
|
|
|
if (_globals.SORTIE != 18)
|
|
|
|
break;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
|
|
|
_objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 29);
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE != 23)
|
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6);
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE != 22)
|
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6);
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE != 19)
|
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 50;
|
|
|
|
_globals.Max_Ligne_Long = 40;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 123))
|
|
|
|
_objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6);
|
|
|
|
else
|
|
|
|
_objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6);
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE != 20)
|
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 8;
|
|
|
|
_globals.Max_Ligne_Long = 10;
|
|
|
|
_globals.Max_Propre_Gen = 8;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6);
|
|
|
|
if (_globals.SORTIE == 17) {
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
_soundManager.WSOUND_OFF();
|
|
|
|
_soundManager.WSOUND(6);
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
if (_globals.SVGA == 2)
|
|
|
|
_animationManager.PLAY_ANM("PURG2A.ANM", 12, 18, 50);
|
|
|
|
if (_globals.SVGA == 1)
|
|
|
|
_animationManager.PLAY_ANM("PURG2.ANM", 12, 18, 50);
|
|
|
|
LABEL_231:
|
|
|
|
_globals.iRegul = 0;
|
|
|
|
}
|
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 1)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 50;
|
|
|
|
_globals.Max_Ligne_Long = 40;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 3)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
2012-10-06 13:21:10 +00:00
|
|
|
if (!*((byte *)_globals.SAUVEGARDE + 170)) {
|
2012-09-17 06:53:21 +00:00
|
|
|
_soundManager.WSOUND(3);
|
|
|
|
if (_globals.FR == 1)
|
2012-10-29 22:38:31 +00:00
|
|
|
_graphicsManager.LOAD_IMAGE("fondfr");
|
2012-09-17 06:53:21 +00:00
|
|
|
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;
|
2012-10-06 13:21:10 +00:00
|
|
|
if (!_globals.CENSURE)
|
2012-09-17 06:53:21 +00:00
|
|
|
_animationManager.PLAY_ANM("BANQUE.ANM", 200, 28, 200);
|
2012-11-11 13:22:58 +00:00
|
|
|
if (_globals.CENSURE)
|
2012-09-17 06:53:21 +00:00
|
|
|
_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);
|
2012-10-06 13:21:10 +00:00
|
|
|
*((byte *)_globals.SAUVEGARDE + 170) = 1;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 4)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
2012-09-28 12:15:59 +00:00
|
|
|
_objectsManager.PLAN_BETA();
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.DESACTIVE_INVENT = false;
|
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 5)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 455;
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
byte v2 = *((byte *)_globals.SAUVEGARDE + 80);
|
|
|
|
if (v2) {
|
|
|
|
if (v2 == 1)
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3);
|
2012-09-17 06:53:21 +00:00
|
|
|
} else {
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = false;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 8)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 15;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 6)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 460;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE != 7)
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
2012-10-06 13:21:10 +00:00
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 220))
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2);
|
2012-09-17 06:53:21 +00:00
|
|
|
else
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE == 9) {
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
2012-10-06 13:21:10 +00:00
|
|
|
if (!*((byte *)_globals.SAUVEGARDE + 225))
|
2012-11-11 13:22:58 +00:00
|
|
|
goto LABEL_140;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10);
|
2012-09-17 06:53:21 +00:00
|
|
|
} else {
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE == 10) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9);
|
2012-11-11 13:22:58 +00:00
|
|
|
goto LABEL_239;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE == 11) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2);
|
2012-11-11 13:22:58 +00:00
|
|
|
goto LABEL_239;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
switch (_globals.SORTIE) {
|
2012-09-17 06:53:21 +00:00
|
|
|
case 12:
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
2012-10-06 13:21:10 +00:00
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 225)) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1);
|
2012-09-17 06:53:21 +00:00
|
|
|
} else {
|
2012-11-11 13:22:58 +00:00
|
|
|
LABEL_140:
|
2012-09-17 06:53:21 +00:00
|
|
|
BOOM();
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 13:
|
|
|
|
_globals.Max_Propre = 50;
|
|
|
|
_globals.Max_Ligne_Long = 40;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1);
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
case 14:
|
|
|
|
_globals.Max_Propre = 50;
|
|
|
|
_globals.Max_Ligne_Long = 40;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1);
|
2012-09-17 06:53:21 +00:00
|
|
|
break;
|
|
|
|
default:
|
2012-10-06 13:21:10 +00:00
|
|
|
if (_globals.SORTIE == 15) {
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.NOSPRECRAN = true;
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29);
|
2012-11-11 13:22:58 +00:00
|
|
|
goto LABEL_239;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
switch (_globals.SORTIE) {
|
|
|
|
case 16: {
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
2012-11-11 13:22:58 +00:00
|
|
|
byte v3 = *((byte *)_globals.SAUVEGARDE + 113);
|
|
|
|
if (v3 == 1) {
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7);
|
2012-11-11 13:22:58 +00:00
|
|
|
} else if (!v3) {
|
2012-10-04 14:55:25 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 17: {
|
|
|
|
_globals.Max_Propre = 50;
|
|
|
|
_globals.Max_Ligne_Long = 40;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
byte v4 = *((byte *)_globals.SAUVEGARDE + 117);
|
|
|
|
if (v4 == 1) {
|
|
|
|
_objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11);
|
|
|
|
} else if (!v4) {
|
|
|
|
_objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11);
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 18) {
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
_soundManager.WSOUND_OFF();
|
|
|
|
_soundManager.WSOUND(29);
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
if (_globals.SVGA == 2)
|
|
|
|
_animationManager.PLAY_ANM("PURG1A.ANM", 12, 18, 50);
|
|
|
|
if (_globals.SVGA == 1)
|
|
|
|
_animationManager.PLAY_ANM("PURG1.ANM", 12, 18, 50);
|
|
|
|
goto LABEL_231;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 24: {
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
|
|
|
byte v5 = *((byte *)_globals.SAUVEGARDE + 181);
|
|
|
|
if (v5) {
|
|
|
|
if (v5 == 1)
|
|
|
|
_objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1);
|
2012-09-17 06:53:21 +00:00
|
|
|
} else {
|
2012-11-11 13:22:58 +00:00
|
|
|
_objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 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);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (_globals.SORTIE == 33) {
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
switch (_globals.SORTIE) {
|
|
|
|
case 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);
|
|
|
|
break;
|
|
|
|
case 27: {
|
|
|
|
_globals.Max_Propre = 10;
|
|
|
|
_globals.Max_Ligne_Long = 15;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
byte v6 = *((byte *)_globals.SAUVEGARDE + 177);
|
|
|
|
if (v6 == 1) {
|
|
|
|
_objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27);
|
|
|
|
} else if (!v6) {
|
|
|
|
_objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27);
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 28:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 450;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 166) != 1 || *((byte *)_globals.SAUVEGARDE + 167) != 1)
|
|
|
|
_objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1);
|
|
|
|
else
|
|
|
|
_objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1);
|
|
|
|
break;
|
|
|
|
case 29:
|
|
|
|
_globals.Max_Propre = 60;
|
|
|
|
_globals.Max_Ligne_Long = 50;
|
|
|
|
_globals.Max_Propre_Gen = 50;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (_globals.SORTIE == 30) {
|
|
|
|
_globals.Max_Propre = 10;
|
|
|
|
_globals.Max_Ligne_Long = 15;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 31) {
|
|
|
|
_objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10);
|
|
|
|
} else if ((unsigned __int16)(_globals.SORTIE - 35) <= 6u) {
|
|
|
|
_globals.fmusic = 13;
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.Max_Propre = 50;
|
|
|
|
_globals.Max_Ligne_Long = 40;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
2012-11-11 13:22:58 +00:00
|
|
|
_globals.DESACTIVE_INVENT = false;
|
|
|
|
_globals.FORET = 1;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
Common::String im = "IM" + _globals.SORTIE;
|
|
|
|
_soundManager.WSOUND(13);
|
|
|
|
if (_globals.FORETSPR == g_PTRNUL) {
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("HOPDEG.SPR");
|
|
|
|
_globals.FORETSPR = _objectsManager.CHARGE_SPRITE(_globals.NFICHIER);
|
|
|
|
_soundManager.CHARGE_SAMPLE(1, "SOUND41.WAV");
|
|
|
|
}
|
|
|
|
_objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13);
|
|
|
|
_globals.NOSPRECRAN = false;
|
|
|
|
if (_globals.SORTIE - 35 > 14) {
|
|
|
|
_globals.dos_free2(_globals.FORETSPR);
|
|
|
|
_globals.FORETSPR = g_PTRNUL;
|
|
|
|
_globals.FORET = 0;
|
|
|
|
_soundManager.DEL_SAMPLE(1);
|
|
|
|
}
|
|
|
|
} else if (_globals.SORTIE == 32) {
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 20;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2);
|
2012-09-17 06:53:21 +00:00
|
|
|
} else {
|
2012-11-11 13:22:58 +00:00
|
|
|
if (_globals.SORTIE == 34) {
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2);
|
|
|
|
goto LABEL_239;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
switch (_globals.SORTIE) {
|
|
|
|
case 51:
|
|
|
|
_globals.Max_Propre = 20;
|
|
|
|
_globals.Max_Ligne_Long = 10;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14);
|
|
|
|
break;
|
|
|
|
case 52:
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 15;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14);
|
|
|
|
break;
|
|
|
|
case 54:
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14);
|
|
|
|
break;
|
|
|
|
case 55:
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 460;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14);
|
|
|
|
break;
|
|
|
|
case 56:
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14);
|
|
|
|
break;
|
|
|
|
case 58:
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14);
|
|
|
|
break;
|
|
|
|
case 57:
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (_globals.SORTIE == 59) {
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21);
|
|
|
|
goto LABEL_239;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
if (_globals.SORTIE == 60) {
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 61) {
|
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 311) == 1 && !*((byte *)_globals.SAUVEGARDE + 312))
|
|
|
|
INCENDIE();
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21);
|
|
|
|
} else {
|
|
|
|
if (_globals.SORTIE == 63) {
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21);
|
|
|
|
goto LABEL_239;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
if (_globals.SORTIE == 64) {
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21);
|
|
|
|
} else {
|
|
|
|
if (_globals.SORTIE == 65) {
|
|
|
|
_globals.Max_Propre = 40;
|
|
|
|
_globals.Max_Ligne_Long = 30;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 66) {
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 69) {
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 62) {
|
|
|
|
_globals.Max_Propre = 8;
|
|
|
|
_globals.Max_Ligne_Long = 8;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 68) {
|
|
|
|
_globals.Max_Propre = 8;
|
|
|
|
_globals.Max_Ligne_Long = 8;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21);
|
|
|
|
} else {
|
|
|
|
if (_globals.SORTIE == 67) {
|
|
|
|
_globals.Max_Propre = 8;
|
|
|
|
_globals.Max_Ligne_Long = 8;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 70) {
|
|
|
|
_globals.Max_Propre = 8;
|
|
|
|
_globals.Max_Ligne_Long = 8;
|
|
|
|
_globals.Max_Propre_Gen = 20;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 71) {
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
switch (_globals.SORTIE) {
|
|
|
|
case 73: {
|
|
|
|
_globals.Max_Propre = 15;
|
|
|
|
_globals.Max_Ligne_Long = 15;
|
|
|
|
_globals.Max_Propre_Gen = 10;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
byte v7 = *((byte *)_globals.SAUVEGARDE + 318);
|
|
|
|
if (v7 == 1) {
|
|
|
|
_objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21);
|
|
|
|
} else if (!v7) {
|
|
|
|
_objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case 75:
|
|
|
|
BASE();
|
|
|
|
break;
|
|
|
|
case 93:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 445;
|
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 330))
|
|
|
|
_objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 29);
|
|
|
|
else
|
|
|
|
_objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 29);
|
|
|
|
break;
|
|
|
|
case 94:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 440;
|
|
|
|
_objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19);
|
|
|
|
break;
|
|
|
|
case 95:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19);
|
|
|
|
break;
|
|
|
|
case 97:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19);
|
|
|
|
if (_globals.SORTIE == 18) {
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_soundManager.WSOUND_OFF();
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
_soundManager.WSOUND(6);
|
|
|
|
if (_globals.SVGA == 2)
|
|
|
|
_animationManager.PLAY_ANM("PURG1A.ANM", 12, 18, 50);
|
|
|
|
if (_globals.SVGA == 1)
|
|
|
|
_animationManager.PLAY_ANM("PURG1.ANM", 12, 18, 50);
|
|
|
|
_graphicsManager.FADE_OUTS();
|
|
|
|
goto LABEL_231;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 98:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19);
|
|
|
|
break;
|
|
|
|
case 99:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19);
|
|
|
|
break;
|
|
|
|
case 96:
|
|
|
|
_globals.Max_Propre = 5;
|
|
|
|
_globals.Max_Ligne_Long = 5;
|
|
|
|
_globals.Max_Propre_Gen = 5;
|
|
|
|
_globals.Max_Perso_Y = 435;
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19);
|
|
|
|
break;
|
|
|
|
case 77:
|
|
|
|
OCEAN(77, "OCEAN01", "OCEAN1", 3, 0, 84, 0, 0, 25);
|
|
|
|
break;
|
|
|
|
case 78:
|
|
|
|
OCEAN(78, "OCEAN02", "OCEAN1", 1, 0, 91, 84, 0, 25);
|
|
|
|
break;
|
|
|
|
case 79:
|
|
|
|
OCEAN(79, "OCEAN03", "OCEAN1", 7, 87, 0, 0, 83, 25);
|
|
|
|
break;
|
|
|
|
case 80:
|
|
|
|
OCEAN(80, "OCEAN04", "OCEAN1", 1, 86, 88, 0, 81, 25);
|
|
|
|
break;
|
|
|
|
case 81:
|
|
|
|
OCEAN(81, "OCEAN05", "OCEAN1", 1, 91, 82, 80, 85, 25);
|
|
|
|
break;
|
|
|
|
case 82:
|
|
|
|
OCEAN(82, "OCEAN06", "OCEAN1", 7, 81, 0, 88, 0, 25);
|
|
|
|
break;
|
|
|
|
case 83:
|
|
|
|
OCEAN(83, "OCEAN07", "OCEAN1", 1, 89, 0, 79, 88, 25);
|
|
|
|
break;
|
|
|
|
case 84:
|
|
|
|
OCEAN(84, "OCEAN08", "OCEAN1", 1, 77, 0, 0, 78, 25);
|
|
|
|
break;
|
|
|
|
case 85:
|
|
|
|
OCEAN(85, "OCEAN09", "OCEAN1", 1, 0, 0, 81, 0, 25);
|
|
|
|
break;
|
|
|
|
case 86:
|
|
|
|
OCEAN(86, "OCEAN10", "OCEAN1", 1, 0, 80, 0, 91, 25);
|
|
|
|
break;
|
|
|
|
case 87:
|
|
|
|
OCEAN(87, "OCEAN11", "OCEAN1", 3, 0, 79, 90, 0, 25);
|
|
|
|
break;
|
|
|
|
case 88:
|
|
|
|
OCEAN(88, "OCEAN12", "OCEAN1", 1, 80, 0, 83, 82, 25);
|
|
|
|
break;
|
|
|
|
case 89:
|
|
|
|
OCEAN(89, "OCEAN13", "OCEAN1", 3, 0, 83, 0, 0, 25);
|
|
|
|
break;
|
|
|
|
case 91:
|
|
|
|
OCEAN(91, "OCEAN15", "OCEAN1", 3, 78, 81, 86, 0, 25);
|
|
|
|
break;
|
|
|
|
case 90:
|
|
|
|
BASED();
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if (_globals.SORTIE == 111) {
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10);
|
|
|
|
goto LABEL_239;
|
|
|
|
}
|
|
|
|
if (_globals.SORTIE == 112) {
|
|
|
|
_globals.NOSPRECRAN = true;
|
|
|
|
_objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10);
|
|
|
|
LABEL_239:
|
|
|
|
_globals.NOSPRECRAN = false;
|
|
|
|
} 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_243;
|
|
|
|
}
|
|
|
|
switch (_globals.SORTIE) {
|
|
|
|
case 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_243:
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
break;
|
|
|
|
case 100:
|
|
|
|
JOUE_FIN();
|
|
|
|
break;
|
|
|
|
case 50:
|
|
|
|
AVION();
|
|
|
|
_globals.SORTIE = 51;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
if ((unsigned __int16)(_globals.SORTIE - 194) > 5u) {
|
|
|
|
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_10;
|
|
|
|
}
|
|
|
|
_globals.PERSO = _globals.dos_free2(_globals.PERSO);
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_soundManager.WSOUND(23);
|
|
|
|
_globals.SORTIE = PWBASE();
|
|
|
|
_soundManager.WSOUND_OFF();
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
|
|
|
|
_globals.PERSO = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
|
|
|
_globals.PERSO_TYPE = 0;
|
|
|
|
_globals.iRegul = 0;
|
|
|
|
_graphicsManager.nbrligne = 640;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
break;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
break;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
2012-11-11 13:22:58 +00:00
|
|
|
break;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2012-09-10 12:18:43 +00:00
|
|
|
}
|
2012-11-10 22:52:49 +00:00
|
|
|
return true;
|
2012-09-07 12:20:05 +00:00
|
|
|
}
|
|
|
|
|
2012-09-23 11:05:55 +00:00
|
|
|
bool HopkinsEngine::shouldQuit() const {
|
|
|
|
return g_system->getEventManager()->shouldQuit();
|
|
|
|
}
|
|
|
|
|
2012-09-07 12:20:05 +00:00
|
|
|
int HopkinsEngine::getRandomNumber(int maxNumber) {
|
|
|
|
return _randomSource.getRandomNumber(maxNumber);
|
|
|
|
}
|
|
|
|
|
2012-09-07 23:09:09 +00:00
|
|
|
void HopkinsEngine::processIniParams(Common::StringMap &iniParams) {
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.XFULLSCREEN = iniParams["FULLSCREEN"] == "YES";
|
2012-09-07 23:09:09 +00:00
|
|
|
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.XSETMODE = 1;
|
2012-09-08 00:08:12 +00:00
|
|
|
if (iniParams.contains("SETMODE")) {
|
|
|
|
int setMode = atoi(iniParams["SETMODE"].c_str());
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.XSETMODE = CLIP(setMode, 1, 5);
|
2012-09-08 00:08:12 +00:00
|
|
|
}
|
|
|
|
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.XZOOM = 0;
|
|
|
|
if (_globals.XSETMODE == 5 && iniParams.contains("ZOOM")) {
|
2012-09-08 00:08:12 +00:00
|
|
|
int zoom = atoi(iniParams["ZOOM"].c_str());
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.XZOOM = CLIP(zoom, 25, 100);
|
2012-09-08 00:08:12 +00:00
|
|
|
}
|
|
|
|
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.XFORCE16 = iniParams["FORCE16BITS"] == "YES";
|
|
|
|
_globals.XFORCE8 = iniParams["FORCE8BITS"] == "YES";
|
|
|
|
_globals.CARD_SB = iniParams["SOUND"] == "YES";
|
2012-09-07 23:09:09 +00:00
|
|
|
}
|
|
|
|
|
2012-09-08 08:45:22 +00:00
|
|
|
void HopkinsEngine::INIT_SYSTEM() {
|
2012-09-08 13:43:35 +00:00
|
|
|
// Set graphics mode
|
|
|
|
_graphicsManager.SET_MODE(640, 480);
|
2012-11-11 04:21:30 +00:00
|
|
|
|
|
|
|
// Synchronise the sound settings from ScummVM
|
|
|
|
_soundManager.syncSoundSettings();
|
|
|
|
|
2012-10-27 17:08:53 +00:00
|
|
|
if (getPlatform() == Common::kPlatformLinux)
|
|
|
|
_eventsManager.mouse_linux = true;
|
|
|
|
else
|
|
|
|
_eventsManager.mouse_linux = false;
|
|
|
|
|
2012-09-17 06:53:21 +00:00
|
|
|
switch (_globals.FR) {
|
2012-09-08 08:45:22 +00:00
|
|
|
case 0:
|
2012-09-15 00:27:15 +00:00
|
|
|
if (!_eventsManager.mouse_linux)
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.CONSTRUIT_SYSTEM("SOUAN.SPR");
|
2012-10-28 21:38:34 +00:00
|
|
|
else
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.CONSTRUIT_SYSTEM("LSOUAN.SPR");
|
2012-09-08 08:45:22 +00:00
|
|
|
break;
|
|
|
|
case 1:
|
2012-10-28 21:38:34 +00:00
|
|
|
if (!_eventsManager.mouse_linux)
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("SOUFR.SPR");
|
|
|
|
else
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("LSOUFR.SPR");
|
2012-09-08 08:45:22 +00:00
|
|
|
break;
|
|
|
|
case 2:
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.CONSTRUIT_SYSTEM("SOUES.SPR");
|
2012-09-08 08:45:22 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2012-09-15 00:27:15 +00:00
|
|
|
if (_eventsManager.mouse_linux) {
|
|
|
|
_eventsManager.souris_sizex = 52;
|
|
|
|
_eventsManager.souris_sizey = 32;
|
2012-09-08 08:45:22 +00:00
|
|
|
} else {
|
2012-09-15 00:27:15 +00:00
|
|
|
_eventsManager.souris_sizex = 34;
|
|
|
|
_eventsManager.souris_sizey = 20;
|
2012-09-08 08:45:22 +00:00
|
|
|
}
|
2012-10-06 13:21:10 +00:00
|
|
|
_eventsManager.pointeur_souris = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
|
|
|
|
|
|
|
_globals.clearAll();
|
|
|
|
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("FONTE3.SPR");
|
|
|
|
_globals.police = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
|
|
|
_globals.police_l = 12;
|
|
|
|
_globals.police_h = 21;
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("ICONE.SPR");
|
|
|
|
_globals.ICONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("TETE.SPR");
|
|
|
|
_globals.TETE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
2012-09-08 08:45:22 +00:00
|
|
|
|
2012-09-17 06:53:21 +00:00
|
|
|
switch (_globals.FR) {
|
2012-09-08 08:45:22 +00:00
|
|
|
case 0:
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.CONSTRUIT_FICHIER(_globals.HOPLINK, "ZONEAN.TXT");
|
|
|
|
_globals.BUF_ZONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
2012-09-08 08:45:22 +00:00
|
|
|
break;
|
|
|
|
case 1:
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.CONSTRUIT_FICHIER(_globals.HOPLINK, "ZONE01.TXT");
|
|
|
|
_globals.BUF_ZONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
2012-09-08 08:45:22 +00:00
|
|
|
break;
|
|
|
|
case 2:
|
2012-10-06 13:21:10 +00:00
|
|
|
_fileManager.CONSTRUIT_FICHIER(_globals.HOPLINK, "ZONEES.TXT");
|
|
|
|
_globals.BUF_ZONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
2012-09-08 08:45:22 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2012-09-15 00:27:15 +00:00
|
|
|
_eventsManager.INSTALL_SOURIS();
|
|
|
|
_eventsManager.souris_on();
|
|
|
|
_eventsManager.souris_flag = false;
|
|
|
|
_eventsManager.souris_max();
|
2012-09-08 08:45:22 +00:00
|
|
|
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.HOPKINS_DATA();
|
2012-09-08 08:45:22 +00:00
|
|
|
|
2012-09-15 00:27:15 +00:00
|
|
|
_eventsManager.ofset_souris_x = 0;
|
|
|
|
_eventsManager.ofset_souris_y = 0;
|
2012-10-06 13:21:10 +00:00
|
|
|
_globals.lItCounter = 0;
|
|
|
|
_globals.lOldItCounter = 0;
|
2012-09-08 08:45:22 +00:00
|
|
|
}
|
|
|
|
|
2012-09-15 03:23:46 +00:00
|
|
|
void HopkinsEngine::INTRORUN() {
|
|
|
|
signed int v2;
|
|
|
|
signed int v3;
|
2012-09-30 11:21:09 +00:00
|
|
|
uint16 v4;
|
2012-09-15 03:23:46 +00:00
|
|
|
signed int v5;
|
|
|
|
int i;
|
|
|
|
int v7;
|
|
|
|
signed int v8;
|
|
|
|
signed int v9;
|
|
|
|
signed int v11;
|
|
|
|
int v12;
|
|
|
|
signed int v13;
|
|
|
|
signed int v14;
|
|
|
|
int j;
|
|
|
|
int k;
|
|
|
|
int l;
|
|
|
|
int m;
|
2012-09-30 11:21:09 +00:00
|
|
|
int v21;
|
2012-09-15 03:23:46 +00:00
|
|
|
char v22;
|
|
|
|
char v23;
|
2012-09-15 11:42:20 +00:00
|
|
|
byte paletteData[PALETTE_EXT_BLOCK_SIZE];
|
|
|
|
byte paletteData2[PALETTE_EXT_BLOCK_SIZE];
|
2012-09-15 03:23:46 +00:00
|
|
|
|
2012-09-15 11:42:20 +00:00
|
|
|
memset(&paletteData, 0, PALETTE_EXT_BLOCK_SIZE);
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-10-28 21:38:34 +00:00
|
|
|
_eventsManager.souris_flag = false;
|
2012-09-15 03:23:46 +00:00
|
|
|
_globals.iRegul = 1;
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.WSOUND(16);
|
2012-10-29 21:54:35 +00:00
|
|
|
_animationManager.CLS_ANM = true;
|
2012-09-15 03:23:46 +00:00
|
|
|
_animationManager.PLAY_ANM("J1.anm", 12, 12, 50);
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_soundManager.VOICE_MIX(1, 3);
|
|
|
|
_animationManager.PLAY_ANM("J2.anm", 12, 12, 50);
|
|
|
|
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_soundManager.VOICE_MIX(2, 3);
|
|
|
|
_animationManager.PLAY_ANM("J3.anm", 12, 12, 50);
|
|
|
|
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_soundManager.VOICE_MIX(3, 3);
|
2012-09-17 06:53:21 +00:00
|
|
|
_graphicsManager.DD_Lock();
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.Cls_Video();
|
2012-09-17 06:53:21 +00:00
|
|
|
_graphicsManager.DD_Unlock();
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
_graphicsManager.DD_VBL();
|
|
|
|
_soundManager.WSOUND(11);
|
|
|
|
_graphicsManager.LOAD_IMAGE("intro1");
|
|
|
|
_graphicsManager.SCROLL_ECRAN(0);
|
|
|
|
_graphicsManager.ofscroll = 0;
|
|
|
|
_graphicsManager.SETCOLOR3(252, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(253, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(251, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(254, 0, 0, 0);
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = true;
|
2012-09-15 03:23:46 +00:00
|
|
|
v2 = 0;
|
|
|
|
do {
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
++v2;
|
|
|
|
} while (v2 <= 4);
|
|
|
|
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = false;
|
2012-09-15 03:23:46 +00:00
|
|
|
_globals.iRegul = 1;
|
|
|
|
_graphicsManager.FADE_INW();
|
2012-10-29 21:54:35 +00:00
|
|
|
if (_graphicsManager.DOUBLE_ECRAN == true) {
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.no_scroll = 2;
|
|
|
|
v3 = 0;
|
|
|
|
_graphicsManager.SCROLL = 0;
|
|
|
|
|
|
|
|
do {
|
|
|
|
_graphicsManager.SCROLL += 2;
|
|
|
|
if (_graphicsManager.SCROLL > (SCREEN_WIDTH - 2)) {
|
|
|
|
_graphicsManager.SCROLL = SCREEN_WIDTH;
|
|
|
|
v3 = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (_eventsManager.XMOUSE() < _graphicsManager.SCROLL + 10) {
|
|
|
|
v4 = _eventsManager.YMOUSE();
|
|
|
|
_eventsManager.souris_xy(_eventsManager.souris_x + 4, v4);
|
|
|
|
}
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-10-28 11:31:12 +00:00
|
|
|
} while (!shouldQuit() && v3 != 1 && _graphicsManager.SCROLL != SCREEN_WIDTH);
|
2012-09-15 03:23:46 +00:00
|
|
|
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.no_scroll = 0;
|
2012-10-28 11:31:12 +00:00
|
|
|
|
|
|
|
if (shouldQuit())
|
|
|
|
return;
|
2012-09-15 03:23:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
_soundManager.VOICE_MIX(4, 3);
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_graphicsManager.no_scroll = 0;
|
|
|
|
_graphicsManager.LOAD_IMAGE("intro2");
|
|
|
|
_graphicsManager.SCROLL_ECRAN(0);
|
|
|
|
_animationManager.CHARGE_ANIM("INTRO2");
|
|
|
|
_graphicsManager.VISU_ALL();
|
|
|
|
_soundManager.WSOUND(23);
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(3);
|
|
|
|
_objectsManager.BOBANIM_OFF(5);
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.ofscroll = 0;
|
|
|
|
_graphicsManager.SETCOLOR3(252, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(253, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(251, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(254, 0, 0, 0);
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = true;
|
2012-09-15 03:23:46 +00:00
|
|
|
v5 = 0;
|
|
|
|
|
|
|
|
do {
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
++v5;
|
|
|
|
} while (v5 <= 4);
|
|
|
|
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = false;
|
2012-09-15 03:23:46 +00:00
|
|
|
_globals.iRegul = 1;
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
for (i = 0; i < 200 / _globals.vitesse; ++i)
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_ON(3);
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.VOICE_MIX(5, 3);
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(3);
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
memcpy(&paletteData2, _graphicsManager.Palette, 796);
|
|
|
|
v21 = *(uint16 *)&_graphicsManager.Palette[796];
|
|
|
|
v22 = _graphicsManager.Palette[798];
|
|
|
|
v7 = (int)&v23;
|
|
|
|
_graphicsManager.setpal_vga256_linux(paletteData, _graphicsManager.VESA_BUFFER);
|
|
|
|
_graphicsManager.FIN_VISU();
|
2012-10-28 11:31:12 +00:00
|
|
|
|
|
|
|
if (shouldQuit())
|
|
|
|
return;
|
|
|
|
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.SPECIAL_SOUND = 5;
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_ANM("ELEC.ANM", 10, 26, 200);
|
2012-10-28 11:31:12 +00:00
|
|
|
if (shouldQuit())
|
|
|
|
return;
|
|
|
|
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.SPECIAL_SOUND = 0;
|
|
|
|
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_graphicsManager.LOAD_IMAGE("intro2");
|
|
|
|
_graphicsManager.SCROLL_ECRAN(0);
|
|
|
|
_animationManager.CHARGE_ANIM("INTRO2");
|
|
|
|
_graphicsManager.VISU_ALL();
|
|
|
|
_soundManager.WSOUND(23);
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(3);
|
|
|
|
_objectsManager.BOBANIM_OFF(5);
|
|
|
|
_objectsManager.BOBANIM_OFF(1);
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.ofscroll = 0;
|
|
|
|
_graphicsManager.SETCOLOR3(252, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(253, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(251, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(254, 0, 0, 0);
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = true;
|
2012-09-15 03:23:46 +00:00
|
|
|
v8 = 0;
|
|
|
|
|
|
|
|
do {
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
++v8;
|
|
|
|
} while (v8 <= 3);
|
|
|
|
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = false;
|
2012-09-15 03:23:46 +00:00
|
|
|
_globals.iRegul = 1;
|
|
|
|
_graphicsManager.setpal_vga256_linux(paletteData2, _graphicsManager.VESA_BUFFER);
|
|
|
|
v9 = 0;
|
|
|
|
|
2012-10-28 11:31:12 +00:00
|
|
|
while (!shouldQuit() && !_eventsManager.ESC_KEY) {
|
2012-09-15 03:23:46 +00:00
|
|
|
if (v9 == 12) {
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_ON(3);
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.VOICE_MIX(6, 3);
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(3);
|
2012-09-15 03:23:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Common::copy(&paletteData2[0], &paletteData2[PALETTE_BLOCK_SIZE], &_graphicsManager.Palette[0]);
|
|
|
|
|
|
|
|
v11 = 1;
|
|
|
|
v12 = 4 * v9;
|
|
|
|
do {
|
|
|
|
if (_graphicsManager.Palette[v11] > v12)
|
|
|
|
_graphicsManager.Palette[v11] -= v12;
|
|
|
|
++v11;
|
|
|
|
} while ( v11 <= PALETTE_BLOCK_SIZE);
|
|
|
|
|
|
|
|
_graphicsManager.setpal_vga256_linux(_graphicsManager.Palette, _graphicsManager.VESA_BUFFER);
|
|
|
|
v13 = 1;
|
|
|
|
|
|
|
|
if (2 * v9 > 1) {
|
|
|
|
v7 = 2 * v9;
|
|
|
|
|
|
|
|
do {
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
++v13;
|
|
|
|
} while (v13 < v7);
|
|
|
|
}
|
|
|
|
|
|
|
|
_graphicsManager.setpal_vga256_linux(paletteData2, _graphicsManager.VESA_BUFFER);
|
|
|
|
v14 = 1;
|
|
|
|
if (20 - v9 > 1) {
|
|
|
|
v7 = 20 - v9;
|
|
|
|
|
|
|
|
do {
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
++v14;
|
|
|
|
} while (v14 < v7);
|
|
|
|
}
|
|
|
|
|
|
|
|
v9 += 2;
|
|
|
|
if (v9 > 15) {
|
|
|
|
_graphicsManager.setpal_vga256_linux(paletteData, _graphicsManager.VESA_BUFFER);
|
|
|
|
for (j = 1; j < 100 / _globals.vitesse; ++j)
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_ON(3);
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.VOICE_MIX(7, 3);
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(3);
|
2012-09-15 03:23:46 +00:00
|
|
|
|
|
|
|
for (k = 1; k < 60 / _globals.vitesse; ++k)
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_ON(5);
|
2012-09-15 03:23:46 +00:00
|
|
|
for (l = 0; l < 20 / _globals.vitesse; ++l)
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
|
|
|
|
Common::copy(&paletteData2[0], &paletteData2[PALETTE_BLOCK_SIZE], &_graphicsManager.Palette[0]);
|
|
|
|
_graphicsManager.setpal_vga256_linux(_graphicsManager.Palette, _graphicsManager.VESA_BUFFER);
|
|
|
|
|
|
|
|
for (m = 0; m < 50 / _globals.vitesse; ++m) {
|
|
|
|
if (m == 30 / _globals.vitesse) {
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_ON(3);
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.VOICE_MIX(8, 3);
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(3);
|
2012-09-15 03:23:46 +00:00
|
|
|
}
|
|
|
|
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-15 03:23:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_graphicsManager.FIN_VISU();
|
2012-10-29 21:54:35 +00:00
|
|
|
_animationManager.CLS_ANM = true;
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.WSOUND(3);
|
|
|
|
_soundManager.SPECIAL_SOUND = 1;
|
|
|
|
_animationManager.PLAY_ANM("INTRO1.anm", 10, 24, 18);
|
2012-10-28 11:31:12 +00:00
|
|
|
if (shouldQuit())
|
|
|
|
return;
|
|
|
|
|
2012-09-15 03:23:46 +00:00
|
|
|
_soundManager.SPECIAL_SOUND = 0;
|
|
|
|
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_animationManager.PLAY_ANM("INTRO2.anm", 10, 24, 18);
|
2012-10-28 11:31:12 +00:00
|
|
|
if (shouldQuit())
|
|
|
|
return;
|
2012-09-15 03:23:46 +00:00
|
|
|
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_animationManager.PLAY_ANM("INTRO3.anm", 10, 24, 200);
|
2012-10-28 11:31:12 +00:00
|
|
|
if (shouldQuit())
|
|
|
|
return;
|
|
|
|
|
2012-09-15 03:23:46 +00:00
|
|
|
if (!_eventsManager.ESC_KEY) {
|
2012-10-29 21:54:35 +00:00
|
|
|
_animationManager.CLS_ANM = false;
|
2012-09-15 03:23:46 +00:00
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_ANM("J4.anm", 12, 12, 1000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_eventsManager.ESC_KEY = false;
|
2012-09-08 11:43:33 +00:00
|
|
|
}
|
|
|
|
|
2012-09-17 06:53:21 +00:00
|
|
|
void HopkinsEngine::PASS() {
|
2012-09-26 13:34:10 +00:00
|
|
|
if (_globals.FR == 1)
|
|
|
|
_graphicsManager.LOAD_IMAGE("ndfr");
|
|
|
|
else
|
|
|
|
_graphicsManager.LOAD_IMAGE("nduk");
|
|
|
|
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
if (_soundManager.VOICEOFF)
|
|
|
|
_eventsManager.delay(500);
|
|
|
|
else
|
|
|
|
_soundManager.VOICE_MIX(628, 4);
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_globals.SORTIE = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::ENDEMO() {
|
|
|
|
_soundManager.WSOUND(28);
|
|
|
|
if (_globals.FR == 1)
|
|
|
|
_graphicsManager.LOAD_IMAGE("endfr");
|
|
|
|
else
|
|
|
|
_graphicsManager.LOAD_IMAGE("enduk");
|
|
|
|
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_eventsManager.delay(1500);
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_globals.SORTIE = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::BOOM() {
|
|
|
|
_graphicsManager.nbrligne = 640;
|
|
|
|
_graphicsManager.SCANLINE(640);
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_soundManager.SPECIAL_SOUND = 199;
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
if (_globals.SVGA == 1)
|
|
|
|
_animationManager.PLAY_ANM("BOMBE2.ANM", 50, 14, 500);
|
|
|
|
if (_globals.SVGA == 2)
|
|
|
|
_animationManager.PLAY_ANM("BOMBE2A.ANM", 50, 14, 500);
|
|
|
|
|
|
|
|
_soundManager.SPECIAL_SOUND = 0;
|
|
|
|
_graphicsManager.LOAD_IMAGE("IM15");
|
|
|
|
_animationManager.CHARGE_ANIM("ANIM15");
|
|
|
|
_graphicsManager.VISU_ALL();
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_OFF(7);
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = true;
|
2012-09-26 13:34:10 +00:00
|
|
|
|
|
|
|
for (int idx = 0; idx < 5; ++idx) {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
}
|
|
|
|
|
2012-10-28 21:38:34 +00:00
|
|
|
_globals.BPP_NOAFF = false;
|
2012-09-26 13:34:10 +00:00
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_eventsManager.MOUSE_OFF();
|
|
|
|
|
|
|
|
for (int idx = 0; idx < 20; ++idx) {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
}
|
|
|
|
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO2("vire.pe2");
|
|
|
|
_globals.NOPARLE = false;
|
2012-10-03 12:15:39 +00:00
|
|
|
_objectsManager.BOBANIM_ON(7);
|
2012-09-26 13:34:10 +00:00
|
|
|
|
|
|
|
for (int idx = 0; idx < 100; ++idx) {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
}
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_graphicsManager.FIN_VISU();
|
|
|
|
_globals.iRegul = 0;
|
|
|
|
_globals.SORTIE = 151;
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::REST_SYSTEM() {
|
2012-09-22 10:45:08 +00:00
|
|
|
quitGame();
|
|
|
|
_eventsManager.CONTROLE_MES();
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::PUBQUIT() {
|
2012-11-08 07:29:26 +00:00
|
|
|
_globals.PUBEXIT = true;
|
2012-09-17 06:53:21 +00:00
|
|
|
_graphicsManager.RESET_SEGMENT_VESA();
|
|
|
|
_globals.FORET = 0;
|
2012-10-28 21:38:34 +00:00
|
|
|
_eventsManager.CASSE = false;
|
2012-09-17 06:53:21 +00:00
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
_globals.FLAG_VISIBLE = false;
|
|
|
|
_graphicsManager.LOAD_IMAGE("BOX");
|
|
|
|
_soundManager.WSOUND(28);
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_eventsManager.MOUSE_ON();
|
|
|
|
_eventsManager.CHANGE_MOUSE(0);
|
2012-09-19 11:34:23 +00:00
|
|
|
_eventsManager.btsouris = 0;
|
2012-09-17 06:53:21 +00:00
|
|
|
_eventsManager.souris_n = 0;
|
|
|
|
_globals.netscape = true;
|
|
|
|
|
|
|
|
bool mouseClicked = false;
|
|
|
|
int xp, yp;
|
|
|
|
do {
|
|
|
|
xp = _eventsManager.XMOUSE();
|
|
|
|
yp = _eventsManager.YMOUSE();
|
2012-09-23 00:59:52 +00:00
|
|
|
_eventsManager.VBL();
|
2012-09-17 06:53:21 +00:00
|
|
|
|
|
|
|
if (_eventsManager.BMOUSE() == 1)
|
|
|
|
mouseClicked = true;
|
2012-09-17 08:53:29 +00:00
|
|
|
} while (!mouseClicked && !g_system->getEventManager()->shouldQuit());
|
2012-09-22 10:45:08 +00:00
|
|
|
|
|
|
|
// Original tried to open a web browser link here. Since ScummVM doesn't support
|
|
|
|
// that, it's being skipped in favour of simply exitting
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
2012-09-17 06:53:21 +00:00
|
|
|
}
|
|
|
|
|
2012-11-11 13:22:58 +00:00
|
|
|
void HopkinsEngine::INCENDIE() {
|
2012-11-11 17:13:01 +00:00
|
|
|
warning("INCENDIE()");
|
|
|
|
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_graphicsManager.LOAD_IMAGE("IM71");
|
|
|
|
_animationManager.CHARGE_ANIM("ANIM71");
|
|
|
|
_graphicsManager.SETCOLOR3(252, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(253, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(251, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(254, 0, 0, 0);
|
|
|
|
_graphicsManager.VISU_ALL();
|
|
|
|
_globals.BPP_NOAFF = true;
|
|
|
|
|
|
|
|
int cpt = 0;
|
|
|
|
do {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
++cpt;
|
|
|
|
} while (cpt <= 4);
|
|
|
|
|
|
|
|
_globals.BPP_NOAFF = false;
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
|
|
|
|
cpt = 0;
|
|
|
|
do {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
++cpt;
|
|
|
|
} while (cpt <= 249);
|
|
|
|
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO("SVGARD1.pe2");
|
|
|
|
_globals.NOPARLE = false;
|
|
|
|
|
|
|
|
cpt = 0;
|
|
|
|
do {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
++cpt;
|
|
|
|
} while (cpt <= 49);
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_graphicsManager.FIN_VISU();
|
|
|
|
*((byte *)_globals.SAUVEGARDE + 312) = 1;
|
|
|
|
_globals.DESACTIVE_INVENT = false;
|
2012-11-11 13:22:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::BASE() {
|
|
|
|
warning("STUB - BASE()");
|
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::BASED() {
|
2012-11-11 17:52:43 +00:00
|
|
|
warning("BASED()");
|
|
|
|
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
_animationManager.NO_SEQ = false;
|
|
|
|
_soundManager.WSOUND(26);
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
_animationManager.NO_COUL = true;
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_SEQ("abase.seq", 50, 15, 50);
|
|
|
|
_animationManager.NO_COUL = false;
|
|
|
|
_graphicsManager.LOAD_IMAGE("IM92");
|
|
|
|
_animationManager.CHARGE_ANIM("ANIM92");
|
|
|
|
_graphicsManager.VISU_ALL();
|
|
|
|
_objectsManager.INILINK("IM92");
|
|
|
|
_globals.BPP_NOAFF = true;
|
|
|
|
|
|
|
|
int cpt = 0;
|
|
|
|
do {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
++cpt;
|
|
|
|
} while (cpt <= 4);
|
|
|
|
|
|
|
|
_globals.BPP_NOAFF = false;
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_globals.CACHE_ON();
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(8) != 22);
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_graphicsManager.FIN_VISU();
|
|
|
|
_globals.RESET_CACHE();
|
|
|
|
_globals.DESACTIVE_INVENT = false;
|
|
|
|
_globals.SORTIE = 93;
|
|
|
|
_globals.iRegul = 0;
|
2012-11-11 13:22:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::JOUE_FIN() {
|
2012-11-11 15:43:18 +00:00
|
|
|
warning("JOUE_FIN()");
|
|
|
|
|
|
|
|
_globals.PERSO = _globals.dos_free2(_globals.PERSO);
|
|
|
|
_dialogsManager.VIRE_INVENT = true;
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
_graphicsManager.ofscroll = 0;
|
|
|
|
_globals.PLAN_FLAG = false;
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_soundManager.WSOUND(26);
|
|
|
|
_globals.chemin = (int16 *)g_PTRNUL;
|
|
|
|
_globals.NOMARCHE = true;
|
|
|
|
_globals.SORTIE = 0;
|
|
|
|
_globals.AFFLI = false;
|
|
|
|
_globals.AFFIVBL = false;
|
|
|
|
_soundManager.CHARGE_SAMPLE(1, "SOUND90.WAV");
|
|
|
|
_graphicsManager.LOAD_IMAGE("IM100");
|
|
|
|
_animationManager.CHARGE_ANIM("ANIM100");
|
|
|
|
_graphicsManager.VISU_ALL();
|
|
|
|
_eventsManager.MOUSE_ON();
|
|
|
|
_objectsManager.BOBANIM_OFF(7);
|
|
|
|
_objectsManager.BOBANIM_OFF(8);
|
|
|
|
_objectsManager.BOBANIM_OFF(9);
|
|
|
|
_graphicsManager.SETCOLOR3(252, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(253, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(251, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(254, 0, 0, 0);
|
|
|
|
_eventsManager.CHANGE_MOUSE(0);
|
|
|
|
_globals.BPP_NOAFF = true;
|
|
|
|
|
|
|
|
int cpt = 0;
|
|
|
|
do {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
++cpt;
|
|
|
|
} while (cpt <= 4);
|
|
|
|
|
|
|
|
_globals.BPP_NOAFF = false;
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(6) != 54);
|
|
|
|
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO("GM4.PE2");
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
_objectsManager.BOBANIM_OFF(6);
|
|
|
|
_objectsManager.BOBANIM_OFF(10);
|
|
|
|
_objectsManager.BOBANIM_ON(9);
|
|
|
|
_objectsManager.BOBANIM_ON(7);
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(7) != 54);
|
|
|
|
|
|
|
|
_soundManager.PLAY_SAMPLE2(1);
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(7) != 65);
|
|
|
|
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO("DUELB4.PE2");
|
|
|
|
_eventsManager.MOUSE_OFF();
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(7) != 72);
|
|
|
|
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO("DUELH1.PE2");
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(7) != 81);
|
|
|
|
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO("DUELB5.PE2");
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(7) != 120);
|
|
|
|
|
|
|
|
_objectsManager.BOBANIM_OFF(7);
|
|
|
|
if (*((byte *)_globals.SAUVEGARDE + 135) == 1) {
|
|
|
|
_soundManager.SPECIAL_SOUND = 200;
|
|
|
|
_soundManager.VBL_MERDE = true;
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_ANM("BERM.ANM", 100, 24, 300);
|
|
|
|
_graphicsManager.FIN_VISU();
|
|
|
|
_soundManager.DEL_SAMPLE(1);
|
|
|
|
_graphicsManager.LOAD_IMAGE("PLAN3");
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_globals.lItCounter = 0;
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
do
|
|
|
|
_eventsManager.CONTROLE_MES();
|
|
|
|
while (_globals.lItCounter < 2000 / _globals.vitesse && !_eventsManager.ESC_KEY);
|
|
|
|
}
|
|
|
|
_eventsManager.ESC_KEY = false;
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_soundManager.SPECIAL_SOUND = 0;
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_ANM("JOUR2A.anm", 12, 12, 1000);
|
|
|
|
_soundManager.WSOUND(11);
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
_animationManager.PLAY_ANM("FF1a.anm", 18, 18, 9);
|
|
|
|
_animationManager.PLAY_ANM("FF1a.anm", 9, 18, 9);
|
|
|
|
_animationManager.PLAY_ANM("FF1a.anm", 9, 18, 18);
|
|
|
|
_animationManager.PLAY_ANM("FF1a.anm", 9, 18, 9);
|
|
|
|
_animationManager.PLAY_ANM("FF2a.anm", 24, 24, 100);
|
|
|
|
Credits();
|
|
|
|
_globals.iRegul = 0;
|
|
|
|
_globals.SORTIE = 300;
|
|
|
|
_dialogsManager.VIRE_INVENT = false;
|
|
|
|
_globals.DESACTIVE_INVENT = false;
|
|
|
|
} else {
|
|
|
|
_soundManager.SPECIAL_SOUND = 200;
|
|
|
|
_soundManager.VBL_MERDE = true;
|
|
|
|
_animationManager.PLAY_ANM2("BERM.ANM", 100, 24, 300);
|
|
|
|
_objectsManager.BOBANIM_OFF(7);
|
|
|
|
_objectsManager.BOBANIM_ON(8);
|
|
|
|
_globals.NOPARLE = true;
|
|
|
|
_talkManager.PARLER_PERSO("GM5.PE2");
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(8) != 5);
|
|
|
|
|
|
|
|
_soundManager.PLAY_SOUND2("SOUND41.WAV");
|
|
|
|
|
|
|
|
do
|
|
|
|
_eventsManager.VBL();
|
|
|
|
while (_objectsManager.BOBPOSI(8) != 21);
|
|
|
|
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_graphicsManager.FIN_VISU();
|
|
|
|
_soundManager.DEL_SAMPLE(1);
|
|
|
|
_soundManager.WSOUND(16);
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_soundManager.SPECIAL_SOUND = 0;
|
|
|
|
_dialogsManager.VIRE_INVENT = false;
|
|
|
|
_globals.DESACTIVE_INVENT = false;
|
|
|
|
_animationManager.PLAY_ANM("JOUR4A.anm", 12, 12, 1000);
|
|
|
|
_globals.iRegul = 0;
|
|
|
|
_globals.SORTIE = 300;
|
|
|
|
}
|
|
|
|
_fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
|
|
|
|
_globals.PERSO = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
|
|
|
|
_globals.PERSO_TYPE = 0;
|
|
|
|
_globals.iRegul = 0;
|
2012-11-11 13:22:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::AVION() {
|
2012-11-11 14:50:22 +00:00
|
|
|
warning("AVION()");
|
|
|
|
|
|
|
|
_soundManager.WSOUND(28);
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_globals.nbrligne = 640;
|
|
|
|
_graphicsManager.DD_Lock();
|
|
|
|
_graphicsManager.Cls_Video();
|
|
|
|
_graphicsManager.DD_Unlock();
|
|
|
|
_graphicsManager.Cls_Pal();
|
|
|
|
|
|
|
|
_animationManager.CLS_ANM = false;
|
|
|
|
if (_globals.SVGA == 1) {
|
|
|
|
_animationManager.PLAY_ANM("aerop00.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop10.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop20.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop30.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop40.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop50.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop60.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop70.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans00.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans10.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans15.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans20.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans30.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans40.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_ANM("PARA00.anm", 9, 9, 9);
|
|
|
|
}
|
|
|
|
} else if (_globals.SVGA == 2) {
|
|
|
|
_animationManager.PLAY_ANM("aerop00a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("serop10a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop20a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop30a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop40a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop50a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop60a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("aerop70a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans00a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans10a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans15a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans20a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans30a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY)
|
|
|
|
_animationManager.PLAY_ANM("trans40a.anm", 10, 18, 18);
|
|
|
|
if (!_eventsManager.ESC_KEY) {
|
|
|
|
_graphicsManager.FADE_LINUX = 2;
|
|
|
|
_animationManager.PLAY_ANM("PARA00a.anm", 9, 9, 9);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_eventsManager.ESC_KEY = 0;
|
|
|
|
_animationManager.CLS_ANM = 0;
|
2012-11-11 13:22:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int HopkinsEngine::PWBASE() {
|
2012-11-11 14:11:31 +00:00
|
|
|
warning("PWBASE()");
|
|
|
|
|
|
|
|
_globals.DESACTIVE_INVENT = true;
|
|
|
|
_graphicsManager.LOAD_IMAGE("PBASE");
|
|
|
|
_graphicsManager.SETCOLOR3(252, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(253, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(251, 100, 100, 100);
|
|
|
|
_graphicsManager.SETCOLOR3(254, 0, 0, 0);
|
|
|
|
_eventsManager.CHANGE_MOUSE(0);
|
|
|
|
_graphicsManager.FADE_INW();
|
2012-11-11 14:15:59 +00:00
|
|
|
bool loopCond = false;
|
2012-11-11 14:11:31 +00:00
|
|
|
int zone;
|
|
|
|
do {
|
|
|
|
int mouseButton = _eventsManager.BMOUSE();
|
|
|
|
int posX = _eventsManager.XMOUSE();
|
|
|
|
int posY = _eventsManager.YMOUSE();
|
|
|
|
zone = 0;
|
|
|
|
if ((posX - 181 <= 16) && (posY - 66 <= 22) &&
|
|
|
|
(posX - 181 >= 0) && (posY - 66 >= 0))
|
|
|
|
zone = 1;
|
|
|
|
if ((posX - 353 <= 22) && (posY - 116 <= 19) &&
|
|
|
|
(posX - 353 >= 0) && (posY - 116 >= 0))
|
|
|
|
zone = 2;
|
|
|
|
if ((posX - 483 <= 20) && (posY - 250 <= 25) &&
|
|
|
|
(posX - 483 >= 0) && (posY - 250 >= 0))
|
|
|
|
zone = 3;
|
|
|
|
if ((posX - 471 <= 27) && (posY - 326 <= 20) &&
|
|
|
|
(posX - 471 >= 0) && (posY - 326 >= 0))
|
|
|
|
zone = 4;
|
|
|
|
if ((posX - 162 <= 21) && (posY - 365 <= 23) &&
|
|
|
|
(posX - 162 >= 0) && (posY - 365 >= 0))
|
|
|
|
zone = 5;
|
|
|
|
if ((posX - 106 <= 20) && (posY - 267 <= 26) &&
|
|
|
|
(posX - 106 >= 0) && (posY - 267 >= 0))
|
|
|
|
zone = 6;
|
|
|
|
if (zone) {
|
|
|
|
_eventsManager.CHANGE_MOUSE(4);
|
|
|
|
_globals.couleur_40 += 25;
|
|
|
|
if (_globals.couleur_40 > 100)
|
|
|
|
_globals.couleur_40 = 0;
|
|
|
|
_graphicsManager.SETCOLOR4(251, _globals.couleur_40, _globals.couleur_40, _globals.couleur_40);
|
|
|
|
} else {
|
|
|
|
_eventsManager.CHANGE_MOUSE(0);
|
|
|
|
_graphicsManager.SETCOLOR4(251, 100, 100, 100);
|
|
|
|
}
|
|
|
|
_eventsManager.VBL();
|
|
|
|
if ((mouseButton == 1) && zone)
|
2012-11-11 14:15:59 +00:00
|
|
|
loopCond = true;
|
|
|
|
} while (!loopCond);
|
2012-11-11 14:50:22 +00:00
|
|
|
|
2012-11-11 14:11:31 +00:00
|
|
|
_globals.DESACTIVE_INVENT = false;
|
|
|
|
_graphicsManager.FADE_OUTW();
|
2012-11-11 14:15:59 +00:00
|
|
|
|
|
|
|
int result;
|
2012-11-11 14:11:31 +00:00
|
|
|
switch (zone) {
|
|
|
|
case 1:
|
|
|
|
result = 94;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
result = 95;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
result = 96;
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
result = 97;
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
result = 98;
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
result = 99;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
result = 0;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return result;
|
2012-11-11 13:22:58 +00:00
|
|
|
}
|
|
|
|
|
2012-11-11 16:59:29 +00:00
|
|
|
void HopkinsEngine::Charge_Credits() {
|
|
|
|
warning("STUB - Charge_Credits()");
|
|
|
|
}
|
|
|
|
|
|
|
|
void HopkinsEngine::CREDIT_AFFICHE(int a1, int a2, char a3) {
|
|
|
|
warning("STUB - CREDIT_AFFICHE");
|
|
|
|
}
|
|
|
|
|
2012-11-11 15:43:18 +00:00
|
|
|
void HopkinsEngine::Credits() {
|
2012-11-11 16:59:29 +00:00
|
|
|
warning("Credits()");
|
|
|
|
|
|
|
|
Charge_Credits();
|
|
|
|
_globals.Credit_y = 436;
|
|
|
|
_graphicsManager.LOAD_IMAGE("GENERIC");
|
|
|
|
_graphicsManager.FADE_INW();
|
|
|
|
_soundManager.WSOUND(28);
|
|
|
|
_eventsManager.souris_flag = false;
|
|
|
|
_globals.iRegul = 3;
|
|
|
|
_globals.Credit_bx = _globals.Credit_bx1 = _globals.Credit_by = _globals.Credit_by1 = -1;
|
|
|
|
int soundId = 28;
|
|
|
|
do {
|
|
|
|
for (int i = 0; i < _globals.Credit_lignes; ++i) {
|
|
|
|
if (_globals.Credit[60 * i] == 1) {
|
|
|
|
int nextY = _globals.Credit_y + i * _globals.Credit_step;
|
|
|
|
// *(_DWORD *)&Credit[60 * i + 4] = nextY;
|
|
|
|
_globals.Credit[60 * i + 4] = nextY & 0xFF;
|
|
|
|
_globals.Credit[60 * i + 5] = (nextY >> 8) & 0xFF;
|
|
|
|
_globals.Credit[60 * i + 6] = (nextY >> 16) & 0xFF;
|
|
|
|
_globals.Credit[60 * i + 7] = (nextY >> 24) & 0xFF;
|
|
|
|
|
|
|
|
if ((nextY - 21 >= 0) && (nextY - 21 <= 418)) {
|
|
|
|
char tmpVal = _globals.Credit[60 * i + 1];
|
|
|
|
int a1 = 0;
|
|
|
|
if (tmpVal == 49)
|
|
|
|
a1 = 163;
|
|
|
|
if (tmpVal == 50)
|
|
|
|
a1 = 161;
|
|
|
|
if (tmpVal == 51)
|
|
|
|
a1 = 162;
|
|
|
|
// if (*(_WORD *)&Credit[60 * i + 8] != -1)
|
|
|
|
if ((_globals.Credit[60 * i + 8] != 0xFF) && _globals.Credit[60 * i + 9] != 0xFF)
|
|
|
|
CREDIT_AFFICHE(nextY, 60 * i + 8, a1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
--_globals.Credit_y;
|
|
|
|
if (_globals.Credit_bx != -1 || _globals.Credit_bx1 != -1 || _globals.Credit_by != -1 || _globals.Credit_by1 != -1) {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
_graphicsManager.SCOPY(_graphicsManager.VESA_SCREEN, 60, 50, 520, 380, _graphicsManager.VESA_BUFFER, 60, 50);
|
|
|
|
} else {
|
|
|
|
_eventsManager.VBL();
|
|
|
|
}
|
|
|
|
// if (*(_DWORD *)&Credit[20 * (3 * Credit_lignes - 3) + 4] <= 39) {
|
|
|
|
if ( _globals.Credit[20 * (3 * _globals.Credit_lignes - 3) + 4] +
|
|
|
|
(_globals.Credit[20 * (3 * _globals.Credit_lignes - 3) + 4] << 8) +
|
|
|
|
(_globals.Credit[20 * (3 * _globals.Credit_lignes - 3) + 4] << 16) +
|
|
|
|
(_globals.Credit[20 * (3 * _globals.Credit_lignes - 3) + 4] << 24) <= 39) {
|
|
|
|
_globals.Credit_y = 440;
|
|
|
|
++soundId;
|
|
|
|
if (soundId > 31)
|
|
|
|
soundId = 28;
|
|
|
|
_soundManager.WSOUND(soundId);
|
|
|
|
}
|
|
|
|
_globals.Credit_bx = -1;
|
|
|
|
_globals.Credit_bx1 = -1;
|
|
|
|
_globals.Credit_by = -1;
|
|
|
|
_globals.Credit_by1 = -1;
|
|
|
|
} while (_eventsManager.BMOUSE() != 1);
|
|
|
|
_graphicsManager.FADE_OUTW();
|
|
|
|
_globals.iRegul = 1;
|
|
|
|
_eventsManager.souris_flag = true;
|
2012-11-11 15:43:18 +00:00
|
|
|
}
|
|
|
|
|
2012-11-11 13:22:58 +00:00
|
|
|
void HopkinsEngine::OCEAN(int16 a1, Common::String a2, Common::String a3, int16 a4, int16 a5, int16 a6, int16 a7, int16 a8, int16 a9) {
|
|
|
|
warning("STUB - OCEAN()");
|
|
|
|
}
|
|
|
|
|
2012-11-11 04:21:30 +00:00
|
|
|
void HopkinsEngine::syncSoundSettings() {
|
|
|
|
Engine::syncSoundSettings();
|
|
|
|
|
|
|
|
_soundManager.syncSoundSettings();
|
|
|
|
}
|
|
|
|
|
2012-09-07 12:20:05 +00:00
|
|
|
} // End of namespace Hopkins
|