aboutsummaryrefslogtreecommitdiff
path: root/sword2/logic.h
diff options
context:
space:
mode:
authorTorbjörn Andersson2003-11-04 18:02:49 +0000
committerTorbjörn Andersson2003-11-04 18:02:49 +0000
commitba098a3a5b27967c5e3f629cb6e8a0dc453aded8 (patch)
tree54e9193bc66152082fdade1221b313c92aeb2ac7 /sword2/logic.h
parent64ec1907c2d99e7ecc46e0a5d5605e474c548248 (diff)
downloadscummvm-rg350-ba098a3a5b27967c5e3f629cb6e8a0dc453aded8.tar.gz
scummvm-rg350-ba098a3a5b27967c5e3f629cb6e8a0dc453aded8.tar.bz2
scummvm-rg350-ba098a3a5b27967c5e3f629cb6e8a0dc453aded8.zip
Create g_logic dynamically. More moving of stuff into classes.
svn-id: r11129
Diffstat (limited to 'sword2/logic.h')
-rw-r--r--sword2/logic.h30
1 files changed, 28 insertions, 2 deletions
diff --git a/sword2/logic.h b/sword2/logic.h
index d276c3b1a8..9eda55c624 100644
--- a/sword2/logic.h
+++ b/sword2/logic.h
@@ -25,6 +25,7 @@
#include "sword2/header.h"
#include "sword2/memory.h"
#include "sword2/speech.h"
+#include "sword2/startup.h"
#include "sword2/driver/driver96.h"
namespace Sword2 {
@@ -140,14 +141,36 @@ private:
void getCorrectCdForSpeech(int32 wavId);
#endif
+ uint32 _totalStartups;
+ uint32 _totalScreenManagers;
+ uint32 _startRes;
+
+ struct _startup {
+ char description[MAX_description];
+
+ // id of screen manager object
+ uint32 start_res_id;
+
+ //tell the manager which startup you want (if there are more
+ // than 1) (i.e more than 1 entrance to a screen and/or
+ // seperate game boots)
+ uint32 key;
+ };
+
+ _startup _startList[MAX_starts];
+
+ uint32 initStartMenu(void);
+
public:
Logic() : _globals(NULL), _kills(0), _debugFlag(false),
_smackerLeadOut(0), _sequenceTextLines(0), _speechTime(0),
_animId(0), _leftClickDelay(0), _rightClickDelay(0),
- _defaultResponseId(0), _officialTextNumber(0),
+ _defaultResponseId(0), _totalStartups(0),
+ _totalScreenManagers(0), _officialTextNumber(0),
_speechScriptWaiting(0), _speechTextBlocNo(0),
_choosing(false), _unpauseZone(0) {
memset(_subjectList, 0, sizeof(_subjectList));
+ initStartMenu();
setupOpcodes();
}
@@ -171,6 +194,9 @@ public:
uint32 _unpauseZone;
+ void conPrintStartMenu(void);
+ void conStart(int start);
+
void setGlobalInterpreterVariables(int32 *vars);
int runScript(char *scriptData, char *objectData, uint32 *offset);
@@ -316,7 +342,7 @@ public:
};
-extern Logic g_logic;
+extern Logic *g_logic;
} // End of namespace Sword2