aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/game-manager.cpp
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-06-21 22:30:43 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commit3cf9cfbf78433e81ac5dcc39b31f5fa76983bde4 (patch)
tree883aacdbb2473884e15fc81c8f20fda6316a2850 /engines/supernova/game-manager.cpp
parenteb2a017a68e965b46881a2b41d9178d5e20b05b2 (diff)
downloadscummvm-rg350-3cf9cfbf78433e81ac5dcc39b31f5fa76983bde4.tar.gz
scummvm-rg350-3cf9cfbf78433e81ac5dcc39b31f5fa76983bde4.tar.bz2
scummvm-rg350-3cf9cfbf78433e81ac5dcc39b31f5fa76983bde4.zip
SUPERNOVA: Merge in the supernova2 engine.
Diffstat (limited to 'engines/supernova/game-manager.cpp')
-rw-r--r--engines/supernova/game-manager.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/engines/supernova/game-manager.cpp b/engines/supernova/game-manager.cpp
index 99d9215649..6aae050bb8 100644
--- a/engines/supernova/game-manager.cpp
+++ b/engines/supernova/game-manager.cpp
@@ -140,12 +140,12 @@ void GuiElement::setHighlight(bool isHighlighted_) {
}
}
-StringId GameManager::guiCommands[] = {
+int GameManager::guiCommands[] = {
kStringCommandGo, kStringCommandLook, kStringCommandTake, kStringCommandOpen, kStringCommandClose,
kStringCommandPress, kStringCommandPull, kStringCommandUse, kStringCommandTalk, kStringCommandGive
};
-StringId GameManager::guiStatusCommands[] = {
+int GameManager::guiStatusCommands[] = {
kStringStatusCommandGo, kStringStatusCommandLook, kStringStatusCommandTake, kStringStatusCommandOpen, kStringStatusCommandClose,
kStringStatusCommandPress, kStringStatusCommandPull, kStringStatusCommandUse, kStringStatusCommandTalk, kStringStatusCommandGive
};
@@ -480,7 +480,7 @@ void GameManager::sentence(int number, bool brightness) {
}
}
-void GameManager::say(StringId textId) {
+void GameManager::say(int textId) {
Common::String str = _vm->getGameString(textId);
if (!str.empty())
say(str.c_str());
@@ -510,7 +510,7 @@ void GameManager::say(const char *text) {
_vm->renderBox(0, 138, 320, 62, kColorBlack);
}
-void GameManager::reply(StringId textId, int aus1, int aus2) {
+void GameManager::reply(int textId, int aus1, int aus2) {
Common::String str = _vm->getGameString(textId);
if (!str.empty())
reply(str.c_str(), aus1, aus2);
@@ -536,7 +536,7 @@ void GameManager::reply(const char *text, int aus1, int aus2) {
_vm->removeMessage();
}
-int GameManager::dialog(int num, byte rowLength[6], StringId text[6], int number) {
+int GameManager::dialog(int num, byte rowLength[6], int text[6], int number) {
_vm->_allowLoadGame = false;
_guiEnabled = false;
@@ -769,9 +769,14 @@ void GameManager::edit(Common::String &input, int x, int y, uint length) {
bool isEditing = true;
uint cursorIndex = input.size();
// NOTE: Pixels for char needed = kFontWidth + 2px left and right side bearing
- int overdrawWidth = ((int)((length + 1) * (kFontWidth + 2)) > (kScreenWidth - x)) ?
- kScreenWidth - x : (length + 1) * (kFontWidth + 2);
+ int overdrawWidth;
+ if (_vm->_MSPart == 1)
+ overdrawWidth = ((int)((length + 1) * (kFontWidth + 2)) > (kScreenWidth - x)) ?
+ kScreenWidth - x : (length + 1) * (kFontWidth + 2);
+ else if (_vm->_MSPart == 2)
+ overdrawWidth = ((int)((length + 1) * (kFontWidth2 + 2)) > (kScreenWidth - x))
+ ? kScreenWidth - x : (length + 1) * (kFontWidth2 + 2);
_guiEnabled = false;
while (isEditing) {
_vm->_screen->setTextCursorPos(x, y);
@@ -788,10 +793,10 @@ void GameManager::edit(Common::String &input, int x, int y, uint length) {
_vm->renderBox(_vm->_screen->getTextCursorPos().x, y - 1,
Screen::textWidth(input[i]), 9, kColorWhite99);
_vm->_screen->setTextCursorColor(background);
- _vm->renderText(input[i]);
+ _vm->renderText((uint16)input[i]);
_vm->_screen->setTextCursorColor(kColorWhite99);
} else
- _vm->renderText(input[i]);
+ _vm->renderText((uint16)input[i]);
}
if (cursorIndex == input.size()) {
@@ -860,7 +865,7 @@ void GameManager::drawStatus() {
}
}
-void GameManager::dead(StringId messageId) {
+void GameManager::dead(int messageId) {
_vm->paletteFadeOut();
_guiEnabled = false;
if (_vm->_MSPart == 1)
@@ -869,7 +874,10 @@ void GameManager::dead(StringId messageId) {
_vm->setCurrentImage(43);
_vm->renderImage(0);
_vm->renderMessage(messageId);
- _sound->play(kAudioDeath);
+ if (_vm->_MSPart == 1)
+ _sound->play(kAudioDeath);
+ else if (_vm->_MSPart == 2)
+ _sound->play(kAudioDeath2);
_vm->paletteFadeIn();
getInput();
_vm->paletteFadeOut();
@@ -881,7 +889,7 @@ void GameManager::dead(StringId messageId) {
if (_vm->_MSPart == 1)
changeRoom(CABIN_R3);
else if (_vm->_MSPart == 2)
- changeRoom(CABIN_R3);
+ changeRoom(AIRPORT);
initGui();
_inventory.clear();
g_system->fillScreen(kColorBlack);