aboutsummaryrefslogtreecommitdiff
path: root/sword2/sword2.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2003-12-01 07:47:54 +0000
committerTorbjörn Andersson2003-12-01 07:47:54 +0000
commit7c9d46765beeaed45971b98f5df0193688e37eab (patch)
tree80e091dbe28e6eb80077fd00598d41de16bc1322 /sword2/sword2.cpp
parenta008022b30e3585231cd316251b9fc39625e40f3 (diff)
downloadscummvm-rg350-7c9d46765beeaed45971b98f5df0193688e37eab.tar.gz
scummvm-rg350-7c9d46765beeaed45971b98f5df0193688e37eab.tar.bz2
scummvm-rg350-7c9d46765beeaed45971b98f5df0193688e37eab.zip
Removed some unnecessary / commented out code, and initialized the debug
console a bit earlier so that error messages about missing files will be more obvious to the user. (If an error happens that early, some of the debugger commands will cause ScummVM to crash. I might look into that later.) svn-id: r11443
Diffstat (limited to 'sword2/sword2.cpp')
-rw-r--r--sword2/sword2.cpp58
1 files changed, 21 insertions, 37 deletions
diff --git a/sword2/sword2.cpp b/sword2/sword2.cpp
index edddfdeab5..5c5b3ac4b0 100644
--- a/sword2/sword2.cpp
+++ b/sword2/sword2.cpp
@@ -51,9 +51,9 @@ GameList Engine_SWORD2_detectGames(const FSList &fslist) {
GameList detectedGames;
const GameSettings *g;
- // TODO: It would be nice if we had code here which distinguishes between
- // the 'sword2' and 'sword2demo' targets. The current code can't do that
- // since they use the same detectname.
+ // TODO: It would be nice if we had code here which distinguishes
+ // between the 'sword2' and 'sword2demo' targets. The current code
+ // can't do that since they use the same detectname.
for (g = sword2_settings; g->gameName; ++g) {
// Iterate over all files in the given directory
@@ -85,6 +85,8 @@ Sword2Engine::Sword2Engine(GameDetector *detector, OSystem *syst)
g_sword2 = this;
_debugger = NULL;
+ _sound = NULL;
+ _graphics = NULL;
_features = detector->_game.features;
_targetName = strdup(detector->_targetName.c_str());
_bootParam = ConfMan.getInt("boot_param");
@@ -104,6 +106,15 @@ Sword2Engine::Sword2Engine(GameDetector *detector, OSystem *syst)
// get some falling RAM and put it in your pocket, never let it slip
// away
+ _graphics = new Graphics(this, 640, 480);
+
+ // Create the debugger as early as possible (but not before the
+ // graphics object!) so that errors can be displayed in it. In
+ // particular, we want errors about missing files to be clearly
+ // visible to the user.
+
+ _debugger = new Debugger(this);
+
_memory = new MemoryManager(this);
_resman = new ResourceManager(this);
_logic = new Logic(this);
@@ -111,8 +122,6 @@ Sword2Engine::Sword2Engine(GameDetector *detector, OSystem *syst)
_gui = new Gui(this);
_input = new Input(this);
_sound = new Sound(this);
- _graphics = new Graphics(this, 640, 480);
- _debugger = new Debugger(this);
_lastPaletteRes = 0;
@@ -185,10 +194,11 @@ void Sword2Engine::errorString(const char *buf1, char *buf2) {
return;
#endif
- // Unless an error -originated- within the debugger, spawn the debugger. Otherwise
- // exit out normally.
+ // Unless an error -originated- within the debugger, spawn the
+ // debugger. Otherwise exit out normally.
if (_debugger && !_debugger->isAttached()) {
- printf("%s\n", buf2); // (Print it again in case debugger segfaults)
+ // (Print it again in case debugger segfaults)
+ printf("%s\n", buf2);
_debugger->attach(buf2);
_debugger->onFrame();
}
@@ -243,7 +253,7 @@ void Sword2Engine::gameCycle(void) {
// got a screen to run?
if (_logic->getRunList()) {
- //run the logic session UNTIL a full loop has been performed
+ // run the logic session UNTIL a full loop has been performed
do {
// reset the graphic 'buildit' list before a new
// logic list (see fnRegisterFrame)
@@ -275,14 +285,6 @@ void Sword2Engine::gameCycle(void) {
void Sword2Engine::go() {
_keyboardEvent ke;
- // Call the application "Revolution" until the resource manager is
- // ready to dig the name out of a text file. See initialiseGame()
- // which calls InitialiseFontResourceFlags() in maketext.cpp
- //
- // Have to do it like this since we cannot really fire up the resource
- // manager until a window has been created as any errors are displayed
- // via a window, thus time becomes a loop.
-
debug(5, "CALLING: readOptionSettings");
_gui->readOptionSettings();
@@ -342,14 +344,9 @@ void Sword2Engine::go() {
char c = toupper(ke.ascii);
- if (ke.modifiers == OSystem::KBD_CTRL) {
- if (ke.keycode == 'd') {
- _debugger->attach();
- }
- }
-
- if (c == '~' || c == '#')
+ if ((ke.modifiers == OSystem::KBD_CTRL && ke.keycode == 'd') || c == '~' || c == '#') {
_debugger->attach();
+ }
if (_gamePaused) { // if currently paused
if (c == 'P') {
@@ -466,14 +463,6 @@ void Sword2Engine::sleepUntil(uint32 time) {
}
void Sword2Engine::pauseGame(void) {
- // uint8 *text;
-
- // open text file & get the line "PAUSED"
- // text = fetchTextLine(_resman->openResource(3258), 449);
- // pause_text_bloc_no = _fontRenderer->buildNewBloc(text + 2, 320, 210, 640, 184, RDSPR_TRANS | RDSPR_DISPLAYALIGN, SPEECH_FONT_ID, POSITION_AT_CENTRE_OF_BASE);
- // now ok to close the text file
- // _resman->closeResource(3258);
-
// don't allow Pause while screen fading or while black
if (_graphics->getFadeStatus() != RDFADE_NONE)
return;
@@ -483,8 +472,6 @@ void Sword2Engine::pauseGame(void) {
// make a normal mouse
clearPointerText();
- // mouse_mode=MOUSE_normal;
-
// this is the only place allowed to do it this way
_graphics->setLuggageAnim(NULL, 0);
@@ -512,9 +499,6 @@ void Sword2Engine::pauseGame(void) {
}
void Sword2Engine::unpauseGame(void) {
- // removed "PAUSED" from screen
- // _fontRenderer->killTextBloc(pause_text_bloc_no);
-
if (OBJECT_HELD && _realLuggageItem)
setLuggage(_realLuggageItem);