From fa0009fbb7879f59c3bd9a303abba8e6fb87865c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bendeg=C3=BAz=20Nagy?= Date: Fri, 12 Aug 2016 16:29:52 +0200 Subject: [PATCH] DM: Add entrance credits --- engines/dm/dm.cpp | 14 ++++++++++++-- engines/dm/dm.h | 2 +- engines/dm/menus.cpp | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/engines/dm/dm.cpp b/engines/dm/dm.cpp index 79b10f2cb01..2912b3198d3 100644 --- a/engines/dm/dm.cpp +++ b/engines/dm/dm.cpp @@ -768,6 +768,16 @@ void DMEngine::f438_STARTEND_OpenEntranceDoors() { _savedScreenForOpenEntranceDoors = nullptr; } +void DMEngine::f442_SARTEND_processCommand202_entranceDrawCredits() { + _eventMan->f78_showMouse(); + _displayMan->f436_STARTEND_FadeToPalette(_displayMan->_g345_aui_BlankBuffer); + _displayMan->f466_loadIntoBitmap(k5_creditsGraphicIndice, _displayMan->_g348_bitmapScreen); + _displayMan->f436_STARTEND_FadeToPalette(g19_PalCredits); + f22_delay(50); + _eventMan->f541_waitForMouseOrKeyActivity(); + _g298_newGame = k202_modeEntranceDrawCredits; +} + void DMEngine::f446_STARTEND_fuseSequnce() { int16 L1424_i_Multiple; #define AL1424_B_RemoveFluxcagesFromLoadChaosSquare L1424_i_Multiple @@ -914,9 +924,9 @@ void DMEngine::f445_STARTEND_fuseSequenceUpdate() { _eventMan->f357_discardAllInput(); _displayMan->updateScreen(); f22_delay(1); - _g313_gameTime++; /* BUG0_71 Some timings are too short on fast computers. + _g313_gameTime++; /* BUG0_71 Some timings are too short on fast computers. The ending animation when Lord Chaos is fused plays too quickly because the execution speed is not limited */ - + } } // End of namespace DM diff --git a/engines/dm/dm.h b/engines/dm/dm.h index d7af0925296..739ef170d1f 100644 --- a/engines/dm/dm.h +++ b/engines/dm/dm.h @@ -267,7 +267,7 @@ public: bool f505_soundGetVolume(int16 mapX, int16 mapY, uint8 *leftVolume, uint8 *rightVolume); // @ F0505_SOUND_GetVolume void f438_STARTEND_OpenEntranceDoors(); // @ F0438_STARTEND_OpenEntranceDoors void f437_STARTEND_drawTittle() { warning(false, "STUB METHOD: f437_STARTEND_drawTittle"); }// @ F0437_STARTEND_DrawTitle - void f442_SARTEND_processCommand202_entranceDrawCredits() { warning(false, "STUB METHOD: f442_SARTEND_processCommand202_entranceDrawCredits"); }// @ F0442_STARTEND_ProcessCommand202_EntranceDrawCredits + void f442_SARTEND_processCommand202_entranceDrawCredits(); void f446_STARTEND_fuseSequnce(); // @ F0446_STARTEND_FuseSequence void f445_STARTEND_fuseSequenceUpdate(); // @ F0445_STARTEND_FuseSequenceUpdate diff --git a/engines/dm/menus.cpp b/engines/dm/menus.cpp index 5c425c81845..3137bad00ae 100644 --- a/engines/dm/menus.cpp +++ b/engines/dm/menus.cpp @@ -965,7 +965,7 @@ bool MenuMan::f407_isActionPerformed(uint16 champIndex, int16 actionIndex) { 2, /* BRANDISH */ 0, /* THROW */ 2}; /* FUSE */ - unsigned char G0497_auc_Graphic560_ActionExperienceGain[44] = { + static unsigned char G0497_auc_Graphic560_ActionExperienceGain[44] = { 0, /* N */ 8, /* BLOCK */ 10, /* CHOP */