aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/xeen.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2015-01-02 13:30:00 -1000
committerPaul Gilbert2015-01-02 13:30:00 -1000
commite1404f127d376225d0c15c43b12f59749689c731 (patch)
tree6667f7f02abe3ed2b5f7bedcd7615834a2d99bf6 /engines/xeen/xeen.cpp
parent21d981f8e86bf214daa2e203acc2fb20c82ec8a0 (diff)
downloadscummvm-rg350-e1404f127d376225d0c15c43b12f59749689c731.tar.gz
scummvm-rg350-e1404f127d376225d0c15c43b12f59749689c731.tar.bz2
scummvm-rg350-e1404f127d376225d0c15c43b12f59749689c731.zip
XEEN: Simplified SpriteResource class, char faces loading in main engine
Diffstat (limited to 'engines/xeen/xeen.cpp')
-rw-r--r--engines/xeen/xeen.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp
index dfa05b0aa1..f2bbbe0517 100644
--- a/engines/xeen/xeen.cpp
+++ b/engines/xeen/xeen.cpp
@@ -42,7 +42,10 @@ XeenEngine::XeenEngine(OSystem *syst, const XeenGameDescription *gameDesc)
_sound = nullptr;
_eventData = nullptr;
Common::fill(&_activeRoster[0], &_activeRoster[MAX_ACTIVE_PARTY], nullptr);
+ Common::fill(&_partyFaces[0], &_partyFaces[MAX_ACTIVE_PARTY], nullptr);
+
_isEarlyGame = false;
+
}
XeenEngine::~XeenEngine() {
@@ -243,14 +246,14 @@ void XeenEngine::showMainMenu() {
void XeenEngine::playGame() {
_saves->reset();
- drawUI();
+ drawUI(true);
}
/*
* Lots of stuff in this method.
* TODO: Consider renaming method when better understood
*/
-void XeenEngine::drawUI() {
+void XeenEngine::drawUI(bool soundPlayed) {
SpriteResource sprites1("global.icn"), borderSprites("border.icn");
// Get mappings to the active characters in the party
@@ -260,6 +263,30 @@ void XeenEngine::drawUI() {
}
_isEarlyGame = _party._minutes >= 300;
+
+ if (_party._mazeId == 0) {
+ if (!soundPlayed) {
+ warning("TODO: loadSound?");
+ }
+
+ if (!_partyFaces[0]) {
+ // Xeen only uses 24 of possible 30 character slots
+ loadCharIcons(24);
+
+ for (int i = 0; i < _party._partyCount; ++i)
+ _partyFaces[i] = &_charFaces[_party._partyMembers[i]];
+ }
+ }
+}
+
+void XeenEngine::loadCharIcons(int numChars) {
+ for (int i = 0; i < numChars; ++i) {
+ // Load new character resource
+ Common::String name = Common::String::format("char%02d.fac", i);
+ _charFaces[i].load(name);
+ }
+
+ _dseFace.load("dse.fac");
}
} // End of namespace Xeen