aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen')
-rw-r--r--engines/xeen/combat.cpp2
-rw-r--r--engines/xeen/combat.h2
-rw-r--r--engines/xeen/dialogs/dialogs_party.cpp2
-rw-r--r--engines/xeen/dialogs/please_wait.cpp2
-rw-r--r--engines/xeen/font.cpp3
-rw-r--r--engines/xeen/resources.cpp1
-rw-r--r--engines/xeen/resources.h1
-rw-r--r--engines/xeen/scripts.cpp3
-rw-r--r--engines/xeen/xeen.cpp8
-rw-r--r--engines/xeen/xeen.h2
10 files changed, 16 insertions, 10 deletions
diff --git a/engines/xeen/combat.cpp b/engines/xeen/combat.cpp
index 0c0836af66..603b6aef71 100644
--- a/engines/xeen/combat.cpp
+++ b/engines/xeen/combat.cpp
@@ -103,7 +103,7 @@ Combat::Combat(XeenEngine *vm): _vm(vm), _missVoc("miss.voc") {
_whosTurn = -1;
_itemFlag = false;
_monstersAttacking = false;
- _combatMode = COMBATMODE_0;
+ _combatMode = COMBATMODE_STARTUP;
_attackDurationCtr = 0;
_partyRan = false;
_monster2Attack = -1;
diff --git a/engines/xeen/combat.h b/engines/xeen/combat.h
index f081add8c3..938845b022 100644
--- a/engines/xeen/combat.h
+++ b/engines/xeen/combat.h
@@ -58,7 +58,7 @@ enum ShootType {
};
enum CombatMode {
- COMBATMODE_0 = 0, COMBATMODE_1 = 1, COMBATMODE_2 = 2
+ COMBATMODE_STARTUP = 0, COMBATMODE_1 = 1, COMBATMODE_2 = 2
};
enum PowType {
diff --git a/engines/xeen/dialogs/dialogs_party.cpp b/engines/xeen/dialogs/dialogs_party.cpp
index 33e138b6ac..c3d6843ffd 100644
--- a/engines/xeen/dialogs/dialogs_party.cpp
+++ b/engines/xeen/dialogs/dialogs_party.cpp
@@ -121,7 +121,7 @@ void PartyDialog::execute() {
if (party._activeParty.size() == 0) {
ErrorScroll::show(_vm, Res.NO_ONE_TO_ADVENTURE_WITH);
} else {
- if (_vm->_mode != MODE_0) {
+ if (_vm->_mode != MODE_STARTUP) {
for (int idx = OBSCURITY_NONE; idx >= OBSCURITY_BLACK; --idx) {
events.updateGameCounter();
intf.obscureScene((Obscurity)idx);
diff --git a/engines/xeen/dialogs/please_wait.cpp b/engines/xeen/dialogs/please_wait.cpp
index 749c6a850a..9186910f07 100644
--- a/engines/xeen/dialogs/please_wait.cpp
+++ b/engines/xeen/dialogs/please_wait.cpp
@@ -40,7 +40,7 @@ void PleaseWait::show() {
Windows &windows = *g_vm->_windows;
Window &w = windows[9];
- if (g_vm->_mode != MODE_0) {
+ if (g_vm->_mode != MODE_STARTUP) {
w.open();
w.writeString(_msg);
w.update();
diff --git a/engines/xeen/font.cpp b/engines/xeen/font.cpp
index ccdcbf4627..58381e1516 100644
--- a/engines/xeen/font.cpp
+++ b/engines/xeen/font.cpp
@@ -23,6 +23,7 @@
#include "common/endian.h"
#include "xeen/font.h"
#include "xeen/resources.h"
+#include "xeen/xeen.h"
namespace Xeen {
@@ -320,7 +321,7 @@ int FontSurface::fontAtoi(int len) {
}
void FontSurface::setTextColor(int idx) {
- const byte *colP = &Res.TEXT_COLORS[idx][0];
+ const byte *colP = (g_vm->_mode == MODE_STARTUP) ? &Res.TEXT_COLORS_STARTUP[idx][0] : &Res.TEXT_COLORS[idx][0];
Common::copy(colP, colP + 4, &_textColors[0]);
}
diff --git a/engines/xeen/resources.cpp b/engines/xeen/resources.cpp
index 14c87d6a1a..c2732a9bf9 100644
--- a/engines/xeen/resources.cpp
+++ b/engines/xeen/resources.cpp
@@ -81,6 +81,7 @@ void Resources::loadData() {
file.syncStrings(WHO_WILL_ACTIONS, 4);
file.syncBytes2D((byte *)SYMBOLS, 20, 64);
file.syncBytes2D((byte *)TEXT_COLORS, 40, 4);
+ file.syncBytes2D((byte *)TEXT_COLORS_STARTUP, 40, 4);
file.syncStrings(DIRECTION_TEXT_UPPER, 4);
file.syncStrings(DIRECTION_TEXT, 4);
file.syncStrings(RACE_NAMES, 5);
diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h
index 6dff6a7de9..0659de45c9 100644
--- a/engines/xeen/resources.h
+++ b/engines/xeen/resources.h
@@ -135,6 +135,7 @@ public:
const char *WHO_WILL_ACTIONS[4];
byte SYMBOLS[20][64];
byte TEXT_COLORS[40][4];
+ byte TEXT_COLORS_STARTUP[40][4];
const char *DIRECTION_TEXT_UPPER[4];
const char *DIRECTION_TEXT[4];
const char *RACE_NAMES[5];
diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp
index ffe4e2dfe9..8777cdc6e0 100644
--- a/engines/xeen/scripts.cpp
+++ b/engines/xeen/scripts.cpp
@@ -435,7 +435,7 @@ bool Scripts::cmdSignText(ParamsIterator &params) {
bool Scripts::cmdNPC(ParamsIterator &params) {
Map &map = *_vm->_map;
- params.readByte();
+ params.readByte(); // _message already holds title
int textNum = params.readByte();
int portrait = params.readByte();
int confirm = params.readByte();
@@ -1479,6 +1479,7 @@ void Scripts::doEnding(const Common::String &endStr) {
// Get the current total score
uint finalScore = party.getScore();
+ g_vm->_mode = MODE_STARTUP;
g_vm->showCutscene(endStr, state, finalScore);
g_vm->_gameMode = GMODE_MENU;
}
diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp
index d4c6fa045b..c8fb40d2a0 100644
--- a/engines/xeen/xeen.cpp
+++ b/engines/xeen/xeen.cpp
@@ -59,7 +59,7 @@ XeenEngine::XeenEngine(OSystem *syst, const XeenGameDescription *gameDesc)
_noDirectionSense = false;
_startupWindowActive = false;
_gameMode = GMODE_STARTUP;
- _mode = MODE_0;
+ _mode = MODE_STARTUP;
_endingScore = 0;
_loadSaveSlot = -1;
_gameWon[0] = _gameWon[1] = _gameWon[2] = false;
@@ -220,7 +220,7 @@ void XeenEngine::play() {
}
_interface->startup();
- if (_mode == MODE_0) {
+ if (_mode == MODE_STARTUP) {
// _screen->fadeOut();
}
@@ -230,7 +230,7 @@ void XeenEngine::play() {
_events->setCursor(0);
_combat->_moveMonsters = true;
- if (_mode == MODE_0) {
+ if (_mode == MODE_STARTUP) {
_mode = MODE_1;
_screen->fadeIn();
}
@@ -241,6 +241,8 @@ void XeenEngine::play() {
if (_party->_dead)
death();
+
+ _mode = MODE_STARTUP;
}
void XeenEngine::gameLoop() {
diff --git a/engines/xeen/xeen.h b/engines/xeen/xeen.h
index d26ffdebab..c79b240388 100644
--- a/engines/xeen/xeen.h
+++ b/engines/xeen/xeen.h
@@ -76,7 +76,7 @@ enum XeenDebugChannels {
enum Mode {
MODE_FF = -1,
- MODE_0 = 0,
+ MODE_STARTUP = 0,
MODE_1 = 1,
MODE_COMBAT = 2,
MODE_3 = 3,