aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBendegúz Nagy2016-06-18 19:42:05 +0200
committerBendegúz Nagy2016-08-26 23:02:22 +0200
commit78d8a8d3c842cfa94b011cf318680d4ad3e71bd0 (patch)
tree9b7d6afd9717dfbeb2672c1ae3a538f6b22b5987
parentbcbb3e447f5037d4026ad5bed6d7a34eaa378e46 (diff)
downloadscummvm-rg350-78d8a8d3c842cfa94b011cf318680d4ad3e71bd0.tar.gz
scummvm-rg350-78d8a8d3c842cfa94b011cf318680d4ad3e71bd0.tar.bz2
scummvm-rg350-78d8a8d3c842cfa94b011cf318680d4ad3e71bd0.zip
DM: Add several global variables, add code to F0462_START_StartGame_CPSF
-rw-r--r--engines/dm/champion.h2
-rw-r--r--engines/dm/dm.cpp24
-rw-r--r--engines/dm/dm.h5
-rw-r--r--engines/dm/eventman.h3
-rw-r--r--engines/dm/gfx.h2
-rw-r--r--engines/dm/menus.h1
6 files changed, 34 insertions, 3 deletions
diff --git a/engines/dm/champion.h b/engines/dm/champion.h
index 5844760c05..2dda3de06a 100644
--- a/engines/dm/champion.h
+++ b/engines/dm/champion.h
@@ -256,6 +256,8 @@ public:
Thing _leaderHand; // @ G0414_T_LeaderHandObject
ChampionIndex _leaderIndex; // @ G0411_i_LeaderIndex
uint16 _candidateChampionOrdinal; // @ G0299_ui_CandidateChampionOrdinal
+ bool _partyIsSleeping; // @ G0300_B_PartyIsSleeping
+ uint16 _actingChampionOrdinal; // @ G0506_ui_ActingChampionOrdinal
ChampionMan(DMEngine *vm);
};
diff --git a/engines/dm/dm.cpp b/engines/dm/dm.cpp
index 2ff815cadb..a669154ea3 100644
--- a/engines/dm/dm.cpp
+++ b/engines/dm/dm.cpp
@@ -94,17 +94,37 @@ void DMEngine::initializeGame() {
void DMEngine::startGame() {
+ _pressingEye = false;
+ _stopPressingEye = false;
+ _pressingMouth = false;
+ _stopPressingMouth = false;
+ _highlightBoxInversionRequested = false;
+ _eventMan->_highlightBoxEnabled = false;
+ _championMan->_partyIsSleeping = false;
+ _championMan->_actingChampionOrdinal = indexToOrdinal(kChampionNone);
+ _menuMan->_actionAreaContainsIcons = true;
+ _eventMan->_useChampionIconOrdinalAsMousePointerBitmap = indexToOrdinal(kChampionNone);
+
_eventMan->_primaryMouseInput = gPrimaryMouseInput_Interface;
_eventMan->_secondaryMouseInput = gSecondaryMouseInput_Movement;
+ warning("MISSING CODE: set primary/secondary keyboard input");
+
+ // MISSING CODE: F0003_MAIN_ProcessNewPartyMap_CPSE
// TODO:(next 2 lines) move to F0003_MAIN_ProcessNewPartyMap_CPSE
_dungeonMan->setCurrentMapAndPartyMap(0);
_displayMan->loadCurrentMapGraphics();
+ if (!_dungeonMan->_messages._newGame) {
+ // MISSING CODE: loading game
+ } {
+ _displayMan->_useByteBoxCoordinates = false;
+ // MISSING CODE: clear screen
+ }
+ // MISSING CODE: build copper
_menuMan->drawMovementArrows();
+ warning("MISSING CODE: F0278_CHAMPION_ResetDataToStartGame");
_gameTimeTicking = true;
-
- // MISSING CODE: Lot of stuff
}
Common::Error DMEngine::run() {
diff --git a/engines/dm/dm.h b/engines/dm/dm.h
index 888e6313be..468390dd2b 100644
--- a/engines/dm/dm.h
+++ b/engines/dm/dm.h
@@ -102,6 +102,11 @@ public:
bool _gameTimeTicking; // @ G0301_B_GameTimeTicking
bool _restartGameAllowed; // @ G0524_B_RestartGameAllowed
uint32 _gameId; // @ G0525_l_GameID, probably useless here
+ bool _pressingEye; // @ G0331_B_PressingEye
+ bool _stopPressingEye; // @ G0332_B_StopPressingEye
+ bool _pressingMouth; // @ G0333_B_PressingMouth
+ bool _stopPressingMouth; // @ G0334_B_StopPressingMouth
+ bool _highlightBoxInversionRequested; // @ G0340_B_HighlightBoxInversionRequested
};
class Console : public GUI::Debugger {
diff --git a/engines/dm/eventman.h b/engines/dm/eventman.h
index cdf0f06291..b2834e813e 100644
--- a/engines/dm/eventman.h
+++ b/engines/dm/eventman.h
@@ -199,7 +199,8 @@ class EventManager {
public:
MouseInput* _primaryMouseInput;// @ G0441_ps_PrimaryMouseInput
MouseInput* _secondaryMouseInput;// @ G0442_ps_SecondaryMouseInput
-
+ bool _highlightBoxEnabled; // @ G0341_B_HighlightBoxEnabled
+ uint16 _useChampionIconOrdinalAsMousePointerBitmap; // @ G0599_ui_UseChampionIconOrdinalAsMousePointerBitmap
EventManager(DMEngine *vm);
void initMouse();
void showMouse(bool visibility);
diff --git a/engines/dm/gfx.h b/engines/dm/gfx.h
index 3283175086..86a152af9c 100644
--- a/engines/dm/gfx.h
+++ b/engines/dm/gfx.h
@@ -304,6 +304,8 @@ public:
int16 _currMapViAltarIndex; // @ G0266_i_CurrentMapViAltarWallOrnamentIndex
Thing _inscriptionThing; // @ G0290_T_DungeonView_InscriptionThing
+
+ bool _useByteBoxCoordinates; // @ G0578_B_UseByteBoxCoordinates
};
}
diff --git a/engines/dm/menus.h b/engines/dm/menus.h
index c1ceddd8ab..6006d7a210 100644
--- a/engines/dm/menus.h
+++ b/engines/dm/menus.h
@@ -9,6 +9,7 @@ class MenuMan {
DMEngine *_vm;
public:
bool _shouldRefreshActionArea; // @ G0508_B_RefreshActionArea
+ bool _actionAreaContainsIcons; // @ G0509_B_ActionAreaContainsIcons
MenuMan(DMEngine *vm);
void drawMovementArrows();