aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/xeen/dialogs_char_info.cpp4
-rw-r--r--engines/xeen/party.cpp4
-rw-r--r--engines/xeen/resources.cpp4
-rw-r--r--engines/xeen/screen.cpp7
4 files changed, 11 insertions, 8 deletions
diff --git a/engines/xeen/dialogs_char_info.cpp b/engines/xeen/dialogs_char_info.cpp
index 9fedb56fcf..1c0d0bfe31 100644
--- a/engines/xeen/dialogs_char_info.cpp
+++ b/engines/xeen/dialogs_char_info.cpp
@@ -88,9 +88,9 @@ void CharacterInfo::execute(int charIndex) {
charIndex = _buttonValue;
c = (oldMode != MODE_InCombat) ? &party._activeParty[charIndex] : party._combatParty[charIndex];
} else {
- _iconSprites.load("view.icn");
_vm->_mode = MODE_CHARACTER_INFO;
}
+ redrawFlag = true;
break;
case Common::KEYCODE_UP:
@@ -290,7 +290,7 @@ Common::String CharacterInfo::loadCharacterDetails(const Character &c) {
RACE_NAMES[c._race], CLASS_NAMES[c._class],
c.statColor(c.getStat(MIGHT), c.getStat(MIGHT, true)), c.getStat(MIGHT),
c.statColor(c.getStat(ACCURACY), c.getStat(ACCURACY, true)), c.getStat(ACCURACY),
- c.statColor(c._currentHp, c.getMaxHP()),
+ c.statColor(c._currentHp, c.getMaxHP()), c._currentHp,
c.getCurrentExperience(),
c.statColor(c.getStat(INTELLECT), c.getStat(INTELLECT, true)), c.getStat(INTELLECT),
c.statColor(c.getStat(LUCK), c.getStat(LUCK, true)), c.getStat(LUCK),
diff --git a/engines/xeen/party.cpp b/engines/xeen/party.cpp
index 3cfc56e1ec..42500ddcfe 100644
--- a/engines/xeen/party.cpp
+++ b/engines/xeen/party.cpp
@@ -187,7 +187,7 @@ int Character::getMaxSP() const {
Attribute attrib;
Skill skill;
- if (_hasSpells)
+ if (!_hasSpells)
return 0;
if (_class == CLASS_SORCERER || _class == CLASS_ARCHER) {
@@ -202,7 +202,7 @@ int Character::getMaxSP() const {
for (;;) {
// Get the base number of spell points
- result = statBonus(getStat(attrib));
+ result = statBonus(getStat(attrib)) + 3;
result += RACE_SP_BONUSES[_race][attrib - 1];
if (_skills[skill])
diff --git a/engines/xeen/resources.cpp b/engines/xeen/resources.cpp
index 467dbe21f8..0847944147 100644
--- a/engines/xeen/resources.cpp
+++ b/engines/xeen/resources.cpp
@@ -304,9 +304,9 @@ const uint CLASS_EXP_LEVELS[10] = {
};
const char *const CONDITION_NAMES[17] = {
- nullptr, "Cursed", "Heart Broken", "Weak", "Poisoned", "Diseased",
+ "Cursed", "Heart Broken", "Weak", "Poisoned", "Diseased",
"Insane", "In Love", "Drunk", "Asleep", "Depressed", "Confused",
- "Paralyzed", "Unconscious", "Dead", "Stone", "Eradicated"
+ "Paralyzed", "Unconscious", "Dead", "Stone", "Eradicated", "Good"
};
const int CONDITION_COLORS[17] = {
diff --git a/engines/xeen/screen.cpp b/engines/xeen/screen.cpp
index 9c9783ba4c..bb2f356f1b 100644
--- a/engines/xeen/screen.cpp
+++ b/engines/xeen/screen.cpp
@@ -192,9 +192,12 @@ void Window::drawList(DrawStruct *items, int count) {
if (items->_frame == -1 || items->_scale == -1 || items->_sprites == nullptr)
continue;
+ Common::Point pt(items->_x, items->_y);
+ pt.x += _innerBounds.left;
+ pt.y += _innerBounds.top;
+
// TODO: There are two sprite calls in this method. Figure out why
- items->_sprites->draw(*this, items->_frame,
- Common::Point(items->_x, items->_y), items->_flags, items->_scale);
+ items->_sprites->draw(*this, items->_frame, pt, items->_flags, items->_scale);
}
}