[Scummvm-git-logs] scummvm master -> 392db4ed338e95158931c630a9c71ced0c903765
Joefish
joewinzer at googlemail.com
Sun Mar 11 23:42:27 CET 2018
This automated email contains information about 12 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
316817dc96 SUPERNOVA: Removes unused variable
0274dca40b SUPERNOVA: Appends NULL terminator to strings
3ec7c1f905 SUPERNOVA: Implements animated text during in/outro
0770800844 SUPERNOVA: Removes Console commands
a38db245ed SUPERNOVA: Fixes formatting
7f5cea54e3 SUPERNOVA: Implements original quit prompt
bb9bfcba4a SUPERNOVA: Encapsulates GuiElement
53af82785e SUPERNOVA: Substitues constant strings
78e4a162ab SUPERNOVA: Removes unused function
7fab63f297 SUPERNOVA: Recenters animated text on loop
61fb88ef20 SUPERNOVA: Removes TODO for quitGameDialog()
392db4ed33 SUPERNOVA: Fixes formatting
Commit: 316817dc96ceacd65c63b059acbb08a60a050a43
https://github.com/scummvm/scummvm/commit/316817dc96ceacd65c63b059acbb08a60a050a43
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Removes unused variable
Changed paths:
engines/supernova/state.h
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index bb0b933..25a4a74 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -146,8 +146,6 @@ public:
GuiElement _guiCommandButton[10];
GuiElement _guiInventory[8];
GuiElement _guiInventoryArrow[2];
- // 0 PC Speaker | 1 SoundBlaster | 2 No Sound
- int _soundDevice;
// Dialog
int _currentSentence;
int _sentenceNumber[6];
Commit: 0274dca40b791f36de2627778621d2aa234bc2b9
https://github.com/scummvm/scummvm/commit/0274dca40b791f36de2627778621d2aa234bc2b9
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Appends NULL terminator to strings
The NULL terminator is needed during parsing.
Changed paths:
engines/supernova/rooms.cpp
engines/supernova/rooms.h
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index d8b138f..780c75e 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -122,20 +122,20 @@ Intro::Intro(SupernovaEngine *vm, GameManager *gm) {
_shouldExit = false;
- introText =
- _vm->getGameString(kStringIntro1) +
- _vm->getGameString(kStringIntro2) +
- _vm->getGameString(kStringIntro3) +
- _vm->getGameString(kStringIntro4) +
- _vm->getGameString(kStringIntro5) +
- _vm->getGameString(kStringIntro6) +
- _vm->getGameString(kStringIntro7) +
- _vm->getGameString(kStringIntro8) +
- _vm->getGameString(kStringIntro9) +
- _vm->getGameString(kStringIntro10) +
- _vm->getGameString(kStringIntro11) +
- _vm->getGameString(kStringIntro12) +
- _vm->getGameString(kStringIntro13);
+ _introText =
+ _vm->getGameString(kStringIntro1) + '\0' +
+ _vm->getGameString(kStringIntro2) + '\0' +
+ _vm->getGameString(kStringIntro3) + '\0' +
+ _vm->getGameString(kStringIntro4) + '\0' +
+ _vm->getGameString(kStringIntro5) + '\0' +
+ _vm->getGameString(kStringIntro6) + '\0' +
+ _vm->getGameString(kStringIntro7) + '\0' +
+ _vm->getGameString(kStringIntro8) + '\0' +
+ _vm->getGameString(kStringIntro9) + '\0' +
+ _vm->getGameString(kStringIntro10) + '\0' +
+ _vm->getGameString(kStringIntro11) + '\0' +
+ _vm->getGameString(kStringIntro12) + '\0' +
+ _vm->getGameString(kStringIntro13) + '\0';
}
void Intro::onEntrance() {
@@ -3174,21 +3174,21 @@ Outro::Outro(SupernovaEngine *vm, GameManager *gm) {
_id = OUTRO;
_shown[0] = kShownFalse;
- outroText =
- _vm->getGameString(kStringOutro1) +
- _vm->getGameString(kStringOutro2) +
- _vm->getGameString(kStringOutro3) +
- _vm->getGameString(kStringOutro4) +
- _vm->getGameString(kStringOutro5) +
- _vm->getGameString(kStringOutro6) +
- _vm->getGameString(kStringOutro7) +
- _vm->getGameString(kStringOutro8) +
- _vm->getGameString(kStringOutro9) +
- _vm->getGameString(kStringOutro10) +
- _vm->getGameString(kStringOutro11) +
- _vm->getGameString(kStringOutro12) +
- _vm->getGameString(kStringOutro13) +
- _vm->getGameString(kStringOutro14);
+ _outroText =
+ _vm->getGameString(kStringOutro1) + '\0' +
+ _vm->getGameString(kStringOutro2) + '\0' +
+ _vm->getGameString(kStringOutro3) + '\0' +
+ _vm->getGameString(kStringOutro4) + '\0' +
+ _vm->getGameString(kStringOutro5) + '\0' +
+ _vm->getGameString(kStringOutro6) + '\0' +
+ _vm->getGameString(kStringOutro7) + '\0' +
+ _vm->getGameString(kStringOutro8) + '\0' +
+ _vm->getGameString(kStringOutro9) + '\0' +
+ _vm->getGameString(kStringOutro10) + '\0' +
+ _vm->getGameString(kStringOutro11) + '\0' +
+ _vm->getGameString(kStringOutro12) + '\0' +
+ _vm->getGameString(kStringOutro13) + '\0' +
+ _vm->getGameString(kStringOutro14) + '\0';
}
void Outro::onEntrance() {
diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h
index a16f57e..454034d 100644
--- a/engines/supernova/rooms.h
+++ b/engines/supernova/rooms.h
@@ -139,7 +139,7 @@ private:
void leaveCutscene();
bool _shouldExit;
- Common::String introText;
+ Common::String _introText;
};
// Spaceship
@@ -1381,7 +1381,7 @@ private:
void animate(int filenumber, int section1, int section2, int section3, int section4, int duration,
MessagePosition position, const char *text);
- Common::String outroText;
+ Common::String _outroText;
};
}
Commit: 3ec7c1f9056ec60db76013a7ef58ef94129cb78d
https://github.com/scummvm/scummvm/commit/3ec7c1f9056ec60db76013a7ef58ef94129cb78d
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Implements animated text during in/outro
Changed paths:
engines/supernova/rooms.cpp
engines/supernova/state.cpp
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index 780c75e..dc6721c 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -147,6 +147,93 @@ void Intro::onEntrance() {
leaveCutscene();
}
+class Marquee {
+public:
+ enum MarqueeIndex {
+ kMarqueeIntro,
+ kMarqueeOutro
+ };
+
+ Marquee(SupernovaEngine *vm, MarqueeIndex id, const char *text)
+ : _text(text)
+ , _textBegin(text)
+ , _delay(0)
+ , _color(kColorLightBlue)
+ , _loop(false)
+ , _vm(vm)
+ {
+ if (id == kMarqueeIntro) {
+ _y = 191;
+ _loop = true;
+ } else if (id == kMarqueeOutro) {
+ _y = 1;
+ }
+ _textWidth = _vm->textWidth(_text);
+ _x = kScreenWidth / 2 - _textWidth / 2;
+ _vm->_textCursorX = _x;
+ _vm->_textCursorY = _y;
+ _vm->_textColor = _color;
+ }
+
+ void renderCharacter();
+
+private:
+ void clearText();
+
+ SupernovaEngine *_vm;
+ MarqueeIndex _id;
+ const char *const _textBegin;
+ const char *_text;
+ bool _loop;
+ int _delay;
+ int _color;
+ int _x;
+ int _y;
+ int _textWidth;
+};
+
+void Marquee::clearText() {
+ _vm->renderBox(_x, _y - 1, _textWidth + 1, 9, kColorBlack);
+}
+
+void Marquee::renderCharacter() {
+ if (_delay != 0) {
+ _delay--;
+ return;
+ }
+
+ switch (*_text) {
+ case '\233':
+ if (_loop) {
+ _loop = false;
+ _text = _textBegin;
+ }
+ break;
+ case '\0':
+ clearText();
+ _text++;
+ _textWidth = _vm->textWidth(_text);
+ _x = kScreenWidth / 2 - _textWidth / 2;
+ _vm->_textCursorX = _x;
+ _color = kColorLightBlue;
+ _vm->_textColor = _color;
+ break;
+ case '^':
+ _color = kColorLightYellow;
+ _vm->_textColor = _color;
+ _text++;
+ break;
+ case '#':
+ _delay = 50;
+ _text++;
+ break;
+ default:
+ _vm->renderText((uint16)*_text++);
+ _delay = 1;
+ break;
+ }
+}
+
void Intro::titleScreen() {
// Newspaper
CursorMan.showMouse(false);
@@ -178,8 +265,16 @@ void Intro::titleScreen() {
_gm->wait2(1);
CursorMan.showMouse(true);
_vm->playSoundMod(kMusicIntro);
- _gm->getInput();
- // TODO: render animated text
+
+ Marquee marquee(_vm, Marquee::kMarqueeIntro, _introText.c_str());
+ while (!_vm->shouldQuit()) {
+ _vm->updateEvents();
+ marquee.renderCharacter();
+ if (_gm->_mouseClicked || _gm->_keyPressed)
+ break;
+ g_system->updateScreen();
+ g_system->delayMillis(_vm->_delay);
+ }
_vm->playSound(kAudioVoiceYeah);
while (_vm->_mixer->isSoundHandleActive(_vm->_soundHandle))
_gm->wait2(1);
@@ -916,7 +1011,7 @@ bool ShipCabinL3::interact(Action verb, Object &obj1, Object &obj2) {
_gm->wait2(3);
}
}
-
+
_vm->renderImage(15);
setSectionVisible(14, false);
setSectionVisible(13, false);
@@ -3128,25 +3223,10 @@ bool AxacussStation::interact(Action verb, Object &obj1, Object &obj2) {
_gm->changeRoom(SIGN);
} else if ((verb == ACTION_WALK) && (obj1._id == DOOR) && obj1.hasProperty(OPENED)) {
_gm->great(0);
+ _gm->_guiEnabled = false;
_vm->paletteFadeOut();
- _vm->setCurrentImage(35);
- _vm->renderImage(0);
- _vm->renderImage(1);
- _vm->paletteFadeIn();
- _gm->wait2(10);
- for (int i = 8; i <= 21; i++) {
- _vm->renderImage(i);
- _gm->wait2(2);
- _vm->renderImage(_gm->invertSection(i));
- }
- _gm->wait2(18);
- _vm->renderImage(_gm->invertSection(1));
- for (int i = 2; i <= 7; i++) {
- _vm->renderImage(i);
- _gm->wait2(3);
- _vm->renderImage(_gm->invertSection(i));
- }
- _gm->outro();
+ _vm->_system->fillScreen(kColorBlack);
+ _gm->changeRoom(OUTRO);
} else
return false;
@@ -3192,6 +3272,45 @@ Outro::Outro(SupernovaEngine *vm, GameManager *gm) {
}
void Outro::onEntrance() {
+ _vm->setCurrentImage(35);
+ _vm->renderImage(0);
+ _vm->renderImage(1);
+ _vm->paletteFadeIn();
+ _gm->wait2(10);
+ for (int i = 8; i <= 21; i++) {
+ _vm->renderImage(i);
+ _gm->wait2(2);
+ _vm->renderImage(_gm->invertSection(i));
+ }
+ _gm->wait2(18);
+ _vm->renderImage(_gm->invertSection(1));
+ for (int i = 2; i <= 7; i++) {
+ _vm->renderImage(i);
+ _gm->wait2(3);
+ _vm->renderImage(_gm->invertSection(i));
+ }
+
+ _vm->playSoundMod(kMusicOutro);
+ Marquee marquee(_vm, Marquee::kMarqueeOutro, _outroText.c_str());
+ while (!_vm->shouldQuit()) {
+ _vm->updateEvents();
+ marquee.renderCharacter();
+ if (_gm->_mouseClicked || _gm->_keyPressed)
+ break;
+ g_system->updateScreen();
+ g_system->delayMillis(_vm->_delay);
+ }
+ _vm->paletteFadeOut();
+ _vm->setCurrentImage(55);
+ _vm->renderImage(0);
+ _vm->paletteFadeIn();
+ _gm->getInput();
+ _vm->paletteFadeOut();
+ _vm->_brightness = 1;
+
+ Common::Event event;
+ event.type = Common::EVENT_RTL;
+ _vm->getEventManager()->pushEvent(event);
}
void Outro::animation() {
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index e843738..8fed73c 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -1294,18 +1294,6 @@ void GameManager::searchStartEvent() {
}
void GameManager::outro() {
- _vm->playSoundMod(kMusicOutro);
- _vm->paletteFadeOut();
- _vm->setCurrentImage(55);
- _vm->renderImage(0);
- _vm->paletteFadeIn();
- getInput();
- _vm->paletteFadeOut();
- _vm->_brightness = 1;
-
- Common::Event event;
- event.type = Common::EVENT_RTL;
- _vm->getEventManager()->pushEvent(event);
}
void GameManager::great(uint number) {
Commit: 0770800844854ade735524b33e04b0a7858eefe7
https://github.com/scummvm/scummvm/commit/0770800844854ade735524b33e04b0a7858eefe7
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Removes Console commands
Most of them were for debugging only anyway and commands like `giveall`
actually broke parts of the game (and didn't even give you all items).
Changed paths:
engines/supernova/console.cpp
engines/supernova/console.h
diff --git a/engines/supernova/console.cpp b/engines/supernova/console.cpp
index 4dc7f04..9e7c15c 100644
--- a/engines/supernova/console.cpp
+++ b/engines/supernova/console.cpp
@@ -30,85 +30,8 @@ namespace Supernova {
Console::Console(SupernovaEngine *vm, GameManager *gm)
{
- registerCmd("render", WRAP_METHOD(Console, cmdRenderImage));
- registerCmd("play", WRAP_METHOD(Console, cmdPlaySound));
- registerCmd("music", WRAP_METHOD(Console, cmdMusic));
- registerCmd("list", WRAP_METHOD(Console, cmdList));
- registerCmd("inventory", WRAP_METHOD(Console, cmdInventory));
- registerCmd("giveall", WRAP_METHOD(Console, cmdGiveAll));
-
_vm = vm;
_gm = gm;
}
-bool Console::cmdRenderImage(int argc, const char **argv) {
- if (argc != 3) {
- debugPrintf("Usage: render [filenumber] [section]\n");
- return true;
- }
-
- int image = atoi(argv[1]);
- if (_vm->setCurrentImage(image))
- _vm->renderImage(atoi(argv[2]));
- else
- debugPrintf("Image %d is invalid!", image);
-
- return true;
-}
-
-bool Console::cmdPlaySound(int argc, const char **argv) {
- if (argc != 2) {
- debugPrintf("Usage: play [0-%d]\n", kAudioNumSamples - 1);
- return true;
- }
-
- int sample = Common::String(argv[1]).asUint64();
- _vm->playSound(static_cast<AudioIndex>(sample));
-
- return true;
-}
-
-bool Console::cmdMusic(int argc, const char **argv) {
- if (argc != 2) {
- debugPrintf("Usage: music [49/52]\n");
- return true;
- }
-
- _vm->playSoundMod(atoi(argv[1]));
-
- return true;
-}
-
-bool Console::cmdList(int argc, const char **argv) {
- // Objects in room and sections
-
- return true;
-}
-
-bool Console::cmdInventory(int argc, const char **argv) {
- if (argc != 2 && argc != 3) {
- debugPrintf("Usage: inventory [list][add/remove [object]]");
- return true;
- }
-
- // TODO
-
- return true;
-}
-
-bool Console::cmdGiveAll(int argc, const char **argv) {
- _gm->takeObject(*_gm->_rooms[INTRO]->getObject(0));
- _gm->takeObject(*_gm->_rooms[INTRO]->getObject(1));
- _gm->takeObject(*_gm->_rooms[INTRO]->getObject(2));
- _gm->takeObject(*_gm->_rooms[GENERATOR]->getObject(2)); // Commander Keycard
- _gm->takeObject(*_gm->_rooms[GENERATOR]->getObject(0)); // Power Cord with Plug
- _gm->takeObject(*_gm->_rooms[CABIN_L1]->getObject(5)); // Pen
- _gm->takeObject(*_gm->_rooms[CABIN_R3]->getObject(0)); // Chess Board
- _gm->takeObject(*_gm->_rooms[CABIN_R3]->getObject(9)); // Rope
- _gm->takeObject(*_gm->_rooms[AIRLOCK]->getObject(4)); // Helmet
- _gm->takeObject(*_gm->_rooms[AIRLOCK]->getObject(5)); // Space Suit
- _gm->takeObject(*_gm->_rooms[AIRLOCK]->getObject(6)); // Supply
- return true;
-}
-
}
diff --git a/engines/supernova/console.h b/engines/supernova/console.h
index 74b40c2..32642c8 100644
--- a/engines/supernova/console.h
+++ b/engines/supernova/console.h
@@ -39,12 +39,6 @@ public:
Console(Supernova::SupernovaEngine *vm, Supernova::GameManager *gm);
virtual ~Console() {}
- bool cmdRenderImage(int argc, const char **argv);
- bool cmdPlaySound(int argc, const char **argv);
- bool cmdMusic(int argc, const char **argv);
- bool cmdList(int argc, const char **argv);
- bool cmdInventory(int argc, const char **argv);
- bool cmdGiveAll(int argc, const char **argv);
private:
SupernovaEngine *_vm;
GameManager *_gm;
Commit: a38db245ed349e1088dbeec8c41dd0c4c7549ade
https://github.com/scummvm/scummvm/commit/a38db245ed349e1088dbeec8c41dd0c4c7549ade
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Fixes formatting
Because of confusion when indentation level is raised and thus tabs or
spaces should be used when aligning code, this commit switches to tabs
to avoid any further confusion.
Changed paths:
engines/supernova/detection.cpp
engines/supernova/graphics.cpp
engines/supernova/msn_def.h
engines/supernova/rooms.cpp
engines/supernova/rooms.h
engines/supernova/state.cpp
engines/supernova/state.h
engines/supernova/supernova.cpp
engines/supernova/supernova.h
diff --git a/engines/supernova/detection.cpp b/engines/supernova/detection.cpp
index 61a99f0..8e9db14 100644
--- a/engines/supernova/detection.cpp
+++ b/engines/supernova/detection.cpp
@@ -30,9 +30,9 @@
#include "supernova/supernova.h"
static const PlainGameDescriptor supernovaGames[] = {
- {"msn1", "Mission Supernova 1"},
- {"msn2", "Mission Supernova 2"},
- {NULL, NULL}
+ {"msn1", "Mission Supernova 1"},
+ {"msn2", "Mission Supernova 2"},
+ {NULL, NULL}
};
namespace Supernova {
@@ -133,7 +133,7 @@ SaveStateList SupernovaMetaEngine::listSaves(const char *target) const {
SaveStateList saveFileList;
for (Common::StringArray::const_iterator file = filenames.begin();
- file != filenames.end(); ++file) {
+ file != filenames.end(); ++file) {
int saveSlot = atoi(file->c_str() + file->size() - 3);
if (saveSlot >= 0 && saveSlot <= getMaximumSaveSlot()) {
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(*file);
@@ -166,7 +166,7 @@ void SupernovaMetaEngine::removeSaveState(const char *target, int slot) const {
SaveStateDescriptor SupernovaMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
Common::String fileName = Common::String::format("msn_save.%03d", slot);
Common::InSaveFile *savefile = g_system->getSavefileManager()->openForLoading(fileName);
-
+
if (savefile) {
uint saveHeader = savefile->readUint32LE();
if (saveHeader != SAVEGAME_HEADER) {
@@ -178,7 +178,7 @@ SaveStateDescriptor SupernovaMetaEngine::querySaveMetaInfos(const char *target,
delete savefile;
return SaveStateDescriptor();
}
-
+
int descriptionSize = savefile->readSint16LE();
char* description = new char[descriptionSize];
savefile->read(description, descriptionSize);
@@ -205,10 +205,10 @@ SaveStateDescriptor SupernovaMetaEngine::querySaveMetaInfos(const char *target,
}
delete savefile;
-
+
return desc;
}
-
+
return SaveStateDescriptor();
}
diff --git a/engines/supernova/graphics.cpp b/engines/supernova/graphics.cpp
index d7839c1..3a29bac 100644
--- a/engines/supernova/graphics.cpp
+++ b/engines/supernova/graphics.cpp
@@ -248,7 +248,7 @@ void MSNImageDecoder::destroy() {
_encodedImage = NULL;
}
for (Common::Array<Graphics::Surface *>::iterator it = _sectionSurfaces.begin();
- it != _sectionSurfaces.end(); ++it) {
+ it != _sectionSurfaces.end(); ++it) {
(*it)->free();
}
}
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h
index c2086cd..c18baa0 100644
--- a/engines/supernova/msn_def.h
+++ b/engines/supernova/msn_def.h
@@ -583,7 +583,7 @@ struct Object {
, _direction(0)
{}
Object(byte roomId, StringID name, StringID description, ObjectID id, ObjectType type,
- byte click, byte click2, byte section = 0, RoomID exitRoom = NULLROOM, byte direction = 0)
+ byte click, byte click2, byte section = 0, RoomID exitRoom = NULLROOM, byte direction = 0)
: _name(name)
, _description(description)
, _id(id)
@@ -621,7 +621,7 @@ struct Object {
static bool combine(Object &obj1, Object &obj2, ObjectID id1, ObjectID id2) {
if (obj1.hasProperty(COMBINABLE))
return (((obj1._id == id1) && (obj2._id == id2)) ||
- ((obj1._id == id2) && (obj2._id == id1)));
+ ((obj1._id == id2) && (obj2._id == id1)));
else
return false;
}
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index dc6721c..ce06f44 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -118,7 +118,7 @@ Intro::Intro(SupernovaEngine *vm, GameManager *gm) {
TAKE | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_objectState[4] =
Object(_id, kStringInventoryMoney, kStringDefaultDescription, MONEY,
- TAKE | COMBINABLE, 255, 255, 0);
+ TAKE | COMBINABLE, 255, 255, 0);
_shouldExit = false;
@@ -155,12 +155,12 @@ public:
};
Marquee(SupernovaEngine *vm, MarqueeIndex id, const char *text)
- : _text(text)
- , _textBegin(text)
- , _delay(0)
- , _color(kColorLightBlue)
- , _loop(false)
- , _vm(vm)
+ : _text(text)
+ , _textBegin(text)
+ , _delay(0)
+ , _color(kColorLightBlue)
+ , _loop(false)
+ , _vm(vm)
{
if (id == kMarqueeIntro) {
_y = 191;
@@ -315,7 +315,7 @@ bool Intro::animate(int section1, int section2, int duration) {
}
bool Intro::animate(int section1, int section2, int duration,
- MessagePosition position, StringID textId) {
+ MessagePosition position, StringID textId) {
Common::KeyCode key = Common::KEYCODE_INVALID;
const Common::String& text = _vm->getGameString(textId);
_vm->renderMessage(text, position);
@@ -340,7 +340,7 @@ bool Intro::animate(int section1, int section2, int duration,
}
bool Intro::animate(int section1, int section2, int section3, int section4,
- int duration, MessagePosition position, StringID textId) {
+ int duration, MessagePosition position, StringID textId) {
Common::KeyCode key = Common::KEYCODE_INVALID;
const Common::String& text = _vm->getGameString(textId);
_vm->renderMessage(text, position);
@@ -690,7 +690,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
// Sleep duration in days
_vm->renderText(kStringShipSleepCabin4, 30, 85, kColorWhite99);
_vm->renderText(Common::String::format("%d",_gm->_state._timeSleep).c_str(),
- 150, 85, kColorWhite99);
+ 150, 85, kColorWhite99);
_vm->renderText(kStringShipSleepCabin5, 30, 105, kColorWhite99);
_gm->getInput();
} else {
@@ -737,7 +737,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
_gm->_guiEnabled = true;
input.clear();
} else if (((verb == ACTION_WALK) || (verb == ACTION_USE)) &&
- ((obj1._id == CABINS) || (obj1._id == CABIN))) {
+ ((obj1._id == CABINS) || (obj1._id == CABIN))) {
room = _gm->_rooms[AIRLOCK];
if (!(obj1._id == CABIN) || !isSectionVisible(5)) {
_vm->renderMessage(kStringShipSleepCabin10);
@@ -889,7 +889,7 @@ bool ShipCockpit::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderText(kStringShipCockpit6);
_vm->renderText(kStringShipCockpit7, 50, 110, kColorLightYellow);
_vm->renderText(Common::String::format("%d", _gm->_state._arrivalDaysLeft).c_str(),
- 50, 120, kColorLightYellow);
+ 50, 120, kColorLightYellow);
_vm->renderText(kStringShipCockpit8);
_gm->getInput();
@@ -1196,8 +1196,8 @@ bool ShipAirlock::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderImage(_gm->invertSection(4));
r = _gm->_rooms[AIRLOCK];
if (!r->getObject(4)->hasProperty(WORN) ||
- !r->getObject(5)->hasProperty(WORN) ||
- !r->getObject(6)->hasProperty(WORN)) {
+ !r->getObject(5)->hasProperty(WORN) ||
+ !r->getObject(6)->hasProperty(WORN)) {
_gm->dead(kStringShipAirlock1);
return true;
}
@@ -1231,7 +1231,7 @@ bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) {
else if ((verb == ACTION_CLOSE) && (obj1._id == LANDINGMOD_HATCH) && (isSectionVisible(4) || isSectionVisible(6)))
_vm->renderMessage(kStringCable1);
else if (((verb == ACTION_TAKE) && (obj1._id == HOLD_WIRE)) ||
- ((verb == ACTION_USE) && Object::combine(obj1, obj2, HOLD_WIRE, LANDINGMOD_HATCH)))
+ ((verb == ACTION_USE) && Object::combine(obj1, obj2, HOLD_WIRE, LANDINGMOD_HATCH)))
_vm->renderMessage(kStringCable2);
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, HOLD_WIRE)) {
getObject(0)->_name = kStringWireAndClip;
@@ -1404,7 +1404,7 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
_vm->playSound(kAudioDoorClose);
}
} else if ((verb == ACTION_WALK) && (obj1._id == OUTERHATCH) &&
- isSectionVisible(7)) {
+ isSectionVisible(7)) {
if (!obj1.hasProperty(OPENED))
_vm->renderMessage(kStringShipHold9);
else if (!isSectionVisible(11))
@@ -1416,13 +1416,13 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
} else if ((verb == ACTION_TAKE) && (obj1._id == GENERATOR_WIRE))
_vm->renderMessage(kStringCable2);
else if ((verb == ACTION_PULL) && (obj1._id == SHORT_WIRE) &&
- (obj1._click != 11)) {
+ (obj1._click != 11)) {
_vm->renderImage(3);
_vm->renderImage(4);
obj1._click = 11;
_gm->turnOff();
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, SHORT_WIRE, CLIP) &&
- (getObject(11)->_click == 11) && !isSectionVisible(9)) {
+ (getObject(11)->_click == 11) && !isSectionVisible(9)) {
_vm->renderImage(2);
setSectionVisible(3, false);
setSectionVisible(4, false);
@@ -1451,7 +1451,7 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
return false;
}
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, GENERATOR_WIRE, CLIP) &&
- isSectionVisible(3) && (getObject(0)->_click != 16)) {
+ isSectionVisible(3) && (getObject(0)->_click != 16)) {
_vm->renderImage(_gm->invertSection(8));
_vm->renderImage(2);
setSectionVisible(4, false);
@@ -1475,9 +1475,9 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
_gm->turnOff();
_gm->_rooms[HOLD]->setSectionVisible(7, false);
} else if ((verb == ACTION_USE) &&
- (Object::combine(obj1, obj2, WIRE, CLIP) ||
- Object::combine(obj1, obj2, SPOOL, CLIP)) &&
- isSectionVisible(3)) {
+ (Object::combine(obj1, obj2, WIRE, CLIP) ||
+ Object::combine(obj1, obj2, SPOOL, CLIP)) &&
+ isSectionVisible(3)) {
_vm->renderMessage(kStringShipHold11);
} else if ((verb == ACTION_LOOK) && (obj1._id == VOLTMETER)) {
if (_gm->_state._powerOff)
@@ -1523,7 +1523,7 @@ void ArsanoRocks::onEntrance() {
bool ArsanoRocks::interact(Action verb, Object &obj1, Object &obj2) {
if (((verb == ACTION_PULL) || (verb == ACTION_PRESS)) &&
- (obj1._id == STONE) && !isSectionVisible(3)) {
+ (obj1._id == STONE) && !isSectionVisible(3)) {
_vm->renderImage(1);
_gm->wait2(2);
_vm->renderImage(2);
@@ -1568,8 +1568,8 @@ void ArsanoMeetup::animation() {
bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_WALK) &&
- ((obj1._id == SPACESHIPS) ||
- ((obj1._id == SPACESHIP) && !obj1.hasProperty(OPENED)))) {
+ ((obj1._id == SPACESHIPS) ||
+ ((obj1._id == SPACESHIP) && !obj1.hasProperty(OPENED)))) {
_vm->renderMessage(kStringArsanoMeetup1);
} else if ((verb == ACTION_WALK) && (obj1._id == SPACESHIP))
_gm->changeRoom(GLIDER);
@@ -1819,8 +1819,8 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
_gm->_state._language = 1;
} else if ((verb == ACTION_WALK) && (obj1._id == MEETUP_EXIT)) {
if (!((_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) &&
- (_gm->_rooms[AIRLOCK]->getObject(5)->hasProperty(WORN)) &&
- (_gm->_rooms[AIRLOCK]->getObject(6)->hasProperty(WORN)))) {
+ (_gm->_rooms[AIRLOCK]->getObject(5)->hasProperty(WORN)) &&
+ (_gm->_rooms[AIRLOCK]->getObject(6)->hasProperty(WORN)))) {
_vm->renderMessage(kStringArsanoEntrance26);
_gm->_rooms[AIRLOCK]->getObject(4)->setProperty(WORN);
_gm->_rooms[AIRLOCK]->getObject(5)->setProperty(WORN);
@@ -2084,7 +2084,7 @@ bool ArsanoRoger::interact(Action verb, Object &obj1, Object &obj2) {
}
}
} else if (((verb == ACTION_USE) && Object::combine(obj1, obj2, CHESS, ROGER_W)) ||
- ((verb == ACTION_GIVE) && (obj1._id == CHESS) && (obj2._id == ROGER_W))) {
+ ((verb == ACTION_GIVE) && (obj1._id == CHESS) && (obj2._id == ROGER_W))) {
_vm->renderImage(11);
_gm->great(0);
_gm->say(kStringArsanoRoger36);
@@ -2141,7 +2141,7 @@ bool ArsanoGlider::interact(Action verb, Object &obj1, Object &obj2) {
getObject(5)->_click = 10;
_gm->_inventory.remove(*_gm->_rooms[ROGER]->getObject(8));
} else if (((verb == ACTION_TAKE) || (verb == ACTION_PULL)) &&
- (obj1._id == GLIDER_KEYCARD)) {
+ (obj1._id == GLIDER_KEYCARD)) {
_vm->renderImage(_gm->invertSection(5));
_vm->renderImage(_gm->invertSection(8));
getObject(5)->_click = 255;
@@ -2150,7 +2150,7 @@ bool ArsanoGlider::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderImage(_gm->invertSection(i));
l = r = 0;
} else if ((verb == ACTION_PRESS) &&
- (obj1._id >= GLIDER_BUTTON1) && (obj1._id <= GLIDER_BUTTON4)) {
+ (obj1._id >= GLIDER_BUTTON1) && (obj1._id <= GLIDER_BUTTON4)) {
int i = obj1._id - GLIDER_BUTTON1 + 1;
_vm->renderImage(i);
if (isSectionVisible(8)) {
@@ -2217,8 +2217,8 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) {
static byte row4[6] = {2, 1, 0, 0, 0, 0};
if (((verb == ACTION_WALK) &&
- ((obj1._id == SPACESHIP) || (obj1._id == ROGER_W))) ||
- ((verb == ACTION_TALK) && (obj1._id == ROGER_W))) {
+ ((obj1._id == SPACESHIP) || (obj1._id == ROGER_W))) ||
+ ((verb == ACTION_TALK) && (obj1._id == ROGER_W))) {
_gm->changeRoom(INTRO);
_vm->setCurrentImage(30);
_vm->renderImage(0);
@@ -2512,7 +2512,7 @@ void AxacussCell::animation() {
}
if ((isSectionVisible(6)) &&
- ((_gm->_state._timeRobot == 310) || (_gm->_state._timeRobot == 610))) {
+ ((_gm->_state._timeRobot == 310) || (_gm->_state._timeRobot == 610))) {
_vm->playSound(kAudioRobotShock);
_gm->_state._timeRobot = 10000;
}
@@ -2524,9 +2524,9 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_PRESS) && (obj1._id == CELL_BUTTON))
_vm->renderMessage(kStringAxacussCell_2);
else if ((verb == ACTION_PULL) && (obj1._id == CELL_WIRE) &&
- !isSectionVisible(2) &&
- !isSectionVisible(3) &&
- !isSectionVisible(5)) {
+ !isSectionVisible(2) &&
+ !isSectionVisible(3) &&
+ !isSectionVisible(5)) {
if (isSectionVisible(1)) {
_vm->renderImage(_gm->invertSection(1));
_vm->renderImage(2);
@@ -2541,7 +2541,7 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) {
getObject(5)->_click = 10;
}
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, CELL_WIRE, SOCKET) &&
- !isSectionVisible(1) && !isSectionVisible(4) && !isSectionVisible(6)) {
+ !isSectionVisible(1) && !isSectionVisible(4) && !isSectionVisible(6)) {
if (isSectionVisible(2)) {
_vm->renderImage(_gm->invertSection(2));
_vm->renderImage(1);
@@ -2560,7 +2560,7 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) {
getObject(5)->_click = 9;
}
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, CELL_WIRE, KNIFE) &&
- ((isSectionVisible(1)) || (isSectionVisible(2)))) {
+ ((isSectionVisible(1)) || (isSectionVisible(2)))) {
if (isSectionVisible(1))
_gm->shock();
else {
@@ -2569,10 +2569,10 @@ bool AxacussCell::interact(Action verb, Object &obj1, Object &obj2) {
getObject(5)->_click = 8;
}
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, CELL_WIRE, CELL_TABLE) &&
- !isSectionVisible(1) &&
- !isSectionVisible(2) &&
- !isSectionVisible(5) &&
- !isSectionVisible(6)) {
+ !isSectionVisible(1) &&
+ !isSectionVisible(2) &&
+ !isSectionVisible(5) &&
+ !isSectionVisible(6)) {
if (isSectionVisible(3)) {
_vm->renderImage(_gm->invertSection(3));
_vm->renderImage(5);
@@ -2649,7 +2649,7 @@ bool AxacussCorridor4::interact(Action verb, Object &obj1, Object &obj2) {
if (isSectionVisible(29))
_vm->renderImage(29);
} else if (((verb == ACTION_USE) && Object::combine(obj1, obj2, TABLE, WATCH)) ||
- ((verb == ACTION_GIVE) && (obj1._id == WATCH) && (obj2._id == TABLE))) {
+ ((verb == ACTION_GIVE) && (obj1._id == WATCH) && (obj2._id == TABLE))) {
if (obj1._id == WATCH)
_gm->_inventory.remove(obj1);
else
@@ -2754,7 +2754,7 @@ void AxacussCorridor6::onEntrance() {
bool AxacussCorridor6::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
- (obj1.hasProperty(OPENED))) {
+ (obj1.hasProperty(OPENED))) {
_vm->renderImage(6);
setSectionVisible(7, false);
obj1.resetProperty(EXIT | OPENABLE | CLOSED);
@@ -2835,7 +2835,7 @@ void AxacussBcorridor::onEntrance() {
bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
if (obj1.hasProperty(EXIT) ||
- ((verb == ACTION_USE) && obj1.hasProperty(COMBINABLE) && obj2.hasProperty(EXIT))) {
+ ((verb == ACTION_USE) && obj1.hasProperty(COMBINABLE) && obj2.hasProperty(EXIT))) {
_gm->_state._playerHidden = false;
}
@@ -2854,11 +2854,11 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
_gm->_state._eventTime = kMaxTimerValue;
}
} else if (((verb == ACTION_WALK) || ((verb == ACTION_OPEN) && !obj1.hasProperty(OPENED))) &&
- (obj1._id >= DOOR1) && (obj1._id <= DOOR4) &&
- obj1.hasProperty(OCCUPIED)) {
+ (obj1._id >= DOOR1) && (obj1._id <= DOOR4) &&
+ obj1.hasProperty(OCCUPIED)) {
_vm->renderMessage(kStringDontEnter);
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR1) &&
- !getObject(4)->hasProperty(OPENED)) {
+ !getObject(4)->hasProperty(OPENED)) {
if (getObject(4)->hasProperty(OCCUPIED))
_vm->renderMessage(kStringDontEnter);
else {
@@ -2973,13 +2973,13 @@ bool AxacussExit::interact(Action verb, Object &obj1, Object &obj2) {
bool AxacussOffice1::interact(Action verb, Object &obj1, Object &obj2) {
Common::String input;
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
- obj1.hasProperty(OPENED)) {
+ obj1.hasProperty(OPENED)) {
_vm->renderImage(_gm->invertSection(9));
obj1.disableProperty(OPENED);
obj1.setProperty(CLOSED);
_vm->playSound(kAudioDoorClose);
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR) &&
- !getObject(0)->hasProperty(OPENED)) {
+ !getObject(0)->hasProperty(OPENED)) {
_vm->renderImage(9);
getObject(0)->disableProperty(CLOSED);
getObject(0)->setProperty(OPENED);
@@ -2994,8 +2994,8 @@ bool AxacussOffice1::interact(Action verb, Object &obj1, Object &obj2) {
else
_gm->telomat(0);
} else if (((verb == ACTION_OPEN) || (verb == ACTION_USE)) &&
- (obj1._id == LOCKER) &&
- !obj1.hasProperty(OPENED)) {
+ (obj1._id == LOCKER) &&
+ !obj1.hasProperty(OPENED)) {
_vm->renderMessage(kStringAxacussOffice1_1);
_vm->renderBox(160, 70, 70, 10, kColorDarkBlue);
_gm->edit(input, 161, 71, 10);
@@ -3057,7 +3057,7 @@ bool AxacussOffice1::interact(Action verb, Object &obj1, Object &obj2) {
bool AxacussOffice2::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
- obj1.hasProperty(OPENED)) {
+ obj1.hasProperty(OPENED)) {
_vm->renderImage(_gm->invertSection(9));
obj1.disableProperty(OPENED);
obj1.setProperty(CLOSED);
@@ -3084,13 +3084,13 @@ bool AxacussOffice2::interact(Action verb, Object &obj1, Object &obj2) {
bool AxacussOffice3::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_CLOSE) && (obj1._id == DOOR) &&
- obj1.hasProperty(OPENED)) {
+ obj1.hasProperty(OPENED)) {
_vm->renderImage(_gm->invertSection(3));
obj1.disableProperty(OPENED);
obj1.setProperty(CLOSED);
_vm->playSound(kAudioDoorClose);
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR) &&
- !getObject(0)->hasProperty(OPENED)) {
+ !getObject(0)->hasProperty(OPENED)) {
_vm->renderImage(3);
getObject(0)->disableProperty(CLOSED);
getObject(0)->setProperty(OPENED);
@@ -3120,7 +3120,7 @@ bool AxacussOffice4::interact(Action verb, Object &obj1, Object &obj2) {
obj1.setProperty(CLOSED);
_vm->playSound(kAudioDoorClose);
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR) &&
- !getObject(0)->hasProperty(OPENED)) {
+ !getObject(0)->hasProperty(OPENED)) {
_vm->renderImage(3);
getObject(0)->disableProperty(CLOSED);
getObject(0)->setProperty(OPENED);
@@ -3235,7 +3235,7 @@ bool AxacussStation::interact(Action verb, Object &obj1, Object &obj2) {
bool AxacussSign::interact(Action verb, Object &obj1, Object &obj2) {
if ((verb == ACTION_USE) && Object::combine(obj1, obj2, STATION_SLOT, MONEY) &&
- isSectionVisible(1)) {
+ isSectionVisible(1)) {
_gm->takeMoney(-180);
_vm->renderImage(2);
setSectionVisible(1, false);
@@ -3328,7 +3328,7 @@ void Outro::animate(int filenumber, int section1, int section2, int duration) {
}
void Outro::animate(int filenumber, int section1, int section2, int duration,
- MessagePosition position, const char *text) {
+ MessagePosition position, const char *text) {
_vm->renderMessage(text, position);
int delay = (Common::strnlen(text, 512) + 20) * (10 - duration) * _vm->_textSpeed / 400;
_vm->setCurrentImage(filenumber);
@@ -3345,7 +3345,7 @@ void Outro::animate(int filenumber, int section1, int section2, int duration,
}
void Outro::animate(int filenumber, int section1, int section2, int section3, int section4,
- int duration, MessagePosition position, const char *text) {
+ int duration, MessagePosition position, const char *text) {
_vm->renderMessage(text, position);
if (duration == 0)
duration = (Common::strnlen(text, 512) + 20) * _vm->_textSpeed / 40;
diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h
index 454034d..3cedc35 100644
--- a/engines/supernova/rooms.h
+++ b/engines/supernova/rooms.h
@@ -129,9 +129,9 @@ public:
private:
bool animate(int section1, int section2, int duration);
bool animate(int section1, int section2, int duration, MessagePosition position,
- StringID text);
+ StringID text);
bool animate(int section1, int section2, int section3, int section4, int duration,
- MessagePosition position, StringID text);
+ MessagePosition position, StringID text);
void titleScreen();
void titleFadeIn();
@@ -1377,9 +1377,9 @@ public:
private:
void animate(int filenumber, int section1, int section2, int duration);
void animate(int filenumber, int section1, int section2, int duration, MessagePosition position,
- const char *text);
+ const char *text);
void animate(int filenumber, int section1, int section2, int section3, int section4, int duration,
- MessagePosition position, const char *text);
+ MessagePosition position, const char *text);
Common::String _outroText;
};
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 8fed73c..93c9d69 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -286,8 +286,8 @@ StringID GameManager::guiStatusCommands[] = {
};
GameManager::GameManager(SupernovaEngine *vm)
- : _inventory(_inventoryScroll)
- , _vm(vm) {
+ : _inventory(_inventoryScroll)
+ , _vm(vm) {
initRooms();
changeRoom(INTRO);
initState();
@@ -669,13 +669,13 @@ void GameManager::processInput() {
} else {
/* normal item */
for (int i = 0; (_currentRoom->getObject(i)->_id != INVALIDOBJECT) &&
- (field == -1) && i < kMaxObject; i++) {
+ (field == -1) && i < kMaxObject; i++) {
click = _currentRoom->getObject(i)->_click;
if (click != 255 && _vm->_currentImage) {
MSNImageDecoder::ClickField *clickField = _vm->_currentImage->_clickField;
do {
if ((_mouseX >= clickField[click].x1) && (_mouseX <= clickField[click].x2) &&
- (_mouseY >= clickField[click].y1) && (_mouseY <= clickField[click].y2))
+ (_mouseY >= clickField[click].y1) && (_mouseY <= clickField[click].y2))
field = i;
click = clickField[click].next;
@@ -718,7 +718,7 @@ void GameManager::processInput() {
mouseLocation = onInventoryArrowDown;
else
mouseLocation = onNone;
-
+
switch (mouseLocation) {
case onInventoryArrowUp:
case onInventoryArrowDown:
@@ -800,7 +800,7 @@ void GameManager::telomat(int nr) {
do
edit(input, 50, 105, 30);
while ((_key.keycode != Common::KEYCODE_RETURN) && (_key.keycode != Common::KEYCODE_ESCAPE));
-
+
if (_key.keycode == Common::KEYCODE_ESCAPE) {
_vm->renderBox(0, 0, 320, 200, kColorBlack);
_vm->renderRoom(*_currentRoom);
@@ -1132,7 +1132,7 @@ void GameManager::walk(int imgId) {
void GameManager::guardWalkEvent() {
_prevImgId = 0;
bool behind = (!_rooms[BCORRIDOR]->getObject(_state._origin + 4)->hasProperty(OCCUPIED) ||
- _rooms[BCORRIDOR]->getObject(_state._origin + 4)->hasProperty(OPENED));
+ _rooms[BCORRIDOR]->getObject(_state._origin + 4)->hasProperty(OPENED));
_rooms[BCORRIDOR]->getObject(_state._origin + 4)->disableProperty(OCCUPIED);
if (_currentRoom == _rooms[BCORRIDOR]) {
if (_vm->_messageDisplayed)
@@ -1187,7 +1187,7 @@ void GameManager::guardWalkEvent() {
walk(19);
walk(18);
}
-
+
if (!_state._playerHidden) {
if (_state._origin & 1)
walk(10);
@@ -1306,15 +1306,15 @@ void GameManager::great(uint number) {
bool GameManager::airless() {
return (_currentRoom->getId() == HOLD ||
- _currentRoom->getId() == LANDINGMODULE ||
- _currentRoom->getId() == GENERATOR ||
- _currentRoom->getId() == OUTSIDE ||
- _currentRoom->getId() == ROCKS ||
- _currentRoom->getId() == CAVE ||
- _currentRoom->getId() == MEETUP ||
- _currentRoom->getId() == MEETUP2 ||
- _currentRoom->getId() == MEETUP3 ||
- (_currentRoom->getId() == AIRLOCK && _rooms[AIRLOCK]->getObject(1)->hasProperty(OPENED)));
+ _currentRoom->getId() == LANDINGMODULE ||
+ _currentRoom->getId() == GENERATOR ||
+ _currentRoom->getId() == OUTSIDE ||
+ _currentRoom->getId() == ROCKS ||
+ _currentRoom->getId() == CAVE ||
+ _currentRoom->getId() == MEETUP ||
+ _currentRoom->getId() == MEETUP2 ||
+ _currentRoom->getId() == MEETUP3 ||
+ (_currentRoom->getId() == AIRLOCK && _rooms[AIRLOCK]->getObject(1)->hasProperty(OPENED)));
}
void GameManager::sentence(int number, bool brightness) {
@@ -1470,54 +1470,54 @@ void GameManager::takeObject(Object &obj) {
void GameManager::drawCommandBox() {
for (int i = 0; i < ARRAYSIZE(_guiCommandButton); ++i) {
_vm->renderBox(_guiCommandButton[i].left,
- _guiCommandButton[i].top,
- _guiCommandButton[i].width(),
- _guiCommandButton[i].height(),
- _guiCommandButton[i]._bgColor);
+ _guiCommandButton[i].top,
+ _guiCommandButton[i].width(),
+ _guiCommandButton[i].height(),
+ _guiCommandButton[i]._bgColor);
int space = (_guiCommandButton[i].width() - _vm->textWidth(_guiCommandButton[i]._text)) / 2;
_vm->renderText(_guiCommandButton[i]._text,
- _guiCommandButton[i]._textPosition.x + space,
- _guiCommandButton[i]._textPosition.y,
- _guiCommandButton[i]._textColor);
+ _guiCommandButton[i]._textPosition.x + space,
+ _guiCommandButton[i]._textPosition.y,
+ _guiCommandButton[i]._textColor);
}
}
void GameManager::drawInventory() {
for (int i = 0; i < ARRAYSIZE(_guiInventory); ++i) {
_vm->renderBox(_guiInventory[i].left,
- _guiInventory[i].top,
- _guiInventory[i].width(),
- _guiInventory[i].height(),
- _guiInventory[i]._bgColor);
+ _guiInventory[i].top,
+ _guiInventory[i].width(),
+ _guiInventory[i].height(),
+ _guiInventory[i]._bgColor);
_vm->renderText(_inventory.get(i + _inventoryScroll)->_name,
- _guiInventory[i]._textPosition.x,
- _guiInventory[i]._textPosition.y,
- _guiInventory[i]._textColor);
+ _guiInventory[i]._textPosition.x,
+ _guiInventory[i]._textPosition.y,
+ _guiInventory[i]._textColor);
}
_vm->renderBox(_guiInventoryArrow[0].left,
- _guiInventoryArrow[0].top,
- _guiInventoryArrow[0].width(),
- _guiInventoryArrow[0].height(),
- _guiInventoryArrow[0]._bgColor);
+ _guiInventoryArrow[0].top,
+ _guiInventoryArrow[0].width(),
+ _guiInventoryArrow[0].height(),
+ _guiInventoryArrow[0]._bgColor);
_vm->renderBox(_guiInventoryArrow[1].left,
- _guiInventoryArrow[1].top,
- _guiInventoryArrow[1].width(),
- _guiInventoryArrow[1].height(),
- _guiInventoryArrow[1]._bgColor);
+ _guiInventoryArrow[1].top,
+ _guiInventoryArrow[1].width(),
+ _guiInventoryArrow[1].height(),
+ _guiInventoryArrow[1]._bgColor);
if (_inventory.getSize() > ARRAYSIZE(_guiInventory)) {
if (_inventoryScroll != 0) {
_vm->renderText(_guiInventoryArrow[0]._text,
- _guiInventoryArrow[0]._textPosition.x,
- _guiInventoryArrow[0]._textPosition.y,
- _guiInventoryArrow[0]._textColor);
+ _guiInventoryArrow[0]._textPosition.x,
+ _guiInventoryArrow[0]._textPosition.y,
+ _guiInventoryArrow[0]._textColor);
}
if (_inventoryScroll + ARRAYSIZE(_guiInventory) < _inventory.getSize()) {
_vm->renderText(_guiInventoryArrow[1]._text,
- _guiInventoryArrow[1]._textPosition.x,
- _guiInventoryArrow[1]._textPosition.y,
- _guiInventoryArrow[1]._textColor);
+ _guiInventoryArrow[1]._textPosition.x,
+ _guiInventoryArrow[1]._textPosition.y,
+ _guiInventoryArrow[1]._textColor);
}
}
}
@@ -1528,15 +1528,15 @@ uint16 GameManager::getKeyInput(bool blockForPrintChar) {
if (_keyPressed) {
if (blockForPrintChar) {
if (Common::isPrint(_key.keycode) ||
- _key.keycode == Common::KEYCODE_BACKSPACE ||
- _key.keycode == Common::KEYCODE_DELETE ||
- _key.keycode == Common::KEYCODE_RETURN ||
- _key.keycode == Common::KEYCODE_SPACE ||
- _key.keycode == Common::KEYCODE_ESCAPE ||
- _key.keycode == Common::KEYCODE_UP ||
- _key.keycode == Common::KEYCODE_DOWN ||
- _key.keycode == Common::KEYCODE_LEFT ||
- _key.keycode == Common::KEYCODE_RIGHT) {
+ _key.keycode == Common::KEYCODE_BACKSPACE ||
+ _key.keycode == Common::KEYCODE_DELETE ||
+ _key.keycode == Common::KEYCODE_RETURN ||
+ _key.keycode == Common::KEYCODE_SPACE ||
+ _key.keycode == Common::KEYCODE_ESCAPE ||
+ _key.keycode == Common::KEYCODE_UP ||
+ _key.keycode == Common::KEYCODE_DOWN ||
+ _key.keycode == Common::KEYCODE_LEFT ||
+ _key.keycode == Common::KEYCODE_RIGHT) {
if (_key.flags & Common::KBD_SHIFT)
return toupper(_key.ascii);
else
@@ -1593,7 +1593,7 @@ void GameManager::roomBrightness() {
if (_vm->_brightness != 0)
_vm->_brightness = _roomBrightness;
-
+
_vm->paletteBrightness();
}
@@ -1734,7 +1734,7 @@ void GameManager::edit(Common::String &input, int x, int y, uint length) {
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);
+ kScreenWidth - x : (length + 1) * (kFontWidth + 2);
while (isEditing) {
_vm->_textCursorX = x;
@@ -1944,7 +1944,7 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
takeObject(*_rooms[ENTRANCE]->getObject(17));
}
} else if ((verb == ACTION_LOOK) && (obj1._id == PILL_HULL) &&
- (_state._language == 2)) {
+ (_state._language == 2)) {
_vm->renderMessage(kStringGenericInteract_6);
_state._language = 1;
} else if ((verb == ACTION_OPEN) && (obj1._id == WALLET)) {
@@ -2231,8 +2231,8 @@ void GameManager::handleInput() {
case ACTION_CLOSE:
if (!_inputObject[0]->hasProperty(OPENABLE) ||
- (_inputObject[0]->hasProperty(CLOSED) &&
- _inputObject[0]->hasProperty(OPENED))) {
+ (_inputObject[0]->hasProperty(CLOSED) &&
+ _inputObject[0]->hasProperty(OPENED))) {
// This can't be closed.
_vm->renderMessage(kStringGenericInteract_41);
} else if (!_inputObject[0]->hasProperty(OPENED)) {
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index 25a4a74..9072aa2 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -64,8 +64,8 @@ struct GameState {
class Inventory {
public:
Inventory(int &inventoryScroll)
- : _numObjects(0)
- , _inventoryScroll(inventoryScroll)
+ : _numObjects(0)
+ , _inventoryScroll(inventoryScroll)
{}
void add(Object &obj);
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index a9f2974..084c8b5 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -228,11 +228,11 @@ void SupernovaEngine::updateEvents() {
case Common::EVENT_KEYDOWN:
_gm->_keyPressed = true;
if (event.kbd.keycode == Common::KEYCODE_d &&
- (event.kbd.flags & Common::KBD_CTRL)) {
+ (event.kbd.flags & Common::KBD_CTRL)) {
_console->attach();
}
if (event.kbd.keycode == Common::KEYCODE_x &&
- (event.kbd.flags & Common::KBD_CTRL)) {
+ (event.kbd.flags & Common::KBD_CTRL)) {
// TODO: Draw exit box
}
@@ -301,7 +301,7 @@ Common::Error SupernovaEngine::loadGameStrings() {
GUIErrorMessage(msg);
return Common::kReadingFailed;
}
-
+
int version = f.readByte();
if (version != SUPERNOVA_DAT_VERSION) {
Common::String msg = Common::String::format(
@@ -393,8 +393,8 @@ void SupernovaEngine::playSound(AudioIndex sample) {
return;
Audio::SeekableAudioStream *audioStream = Audio::makeRawStream(
- _soundSamples[sample]._buffer, _soundSamples[sample]._length,
- 11931, Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN, DisposeAfterUse::NO);
+ _soundSamples[sample]._buffer, _soundSamples[sample]._length,
+ 11931, Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN, DisposeAfterUse::NO);
stopSound();
_mixer->playStream(Audio::Mixer::kPlainSoundType, &_soundHandle, audioStream);
}
@@ -416,7 +416,7 @@ void SupernovaEngine::playSoundMod(int filenumber)
stopSound();
_mixer->playStream(Audio::Mixer::kMusicSoundType, &_soundHandle, audioStream,
- -1, Audio::Mixer::kMaxChannelVolume, 0);
+ -1, Audio::Mixer::kMaxChannelVolume, 0);
}
void SupernovaEngine::renderImageSection(int section) {
@@ -431,9 +431,9 @@ void SupernovaEngine::renderImageSection(int section) {
return;
Common::Rect sectionRect(_currentImage->_section[section].x1,
- _currentImage->_section[section].y1,
- _currentImage->_section[section].x2 + 1,
- _currentImage->_section[section].y2 + 1) ;
+ _currentImage->_section[section].y1,
+ _currentImage->_section[section].x2 + 1,
+ _currentImage->_section[section].y2 + 1) ;
if (_currentImage->_filenumber == 1 || _currentImage->_filenumber == 2) {
sectionRect.setWidth(640);
sectionRect.setHeight(480);
@@ -459,9 +459,9 @@ void SupernovaEngine::renderImageSection(int section) {
}
_system->copyRectToScreen(static_cast<const byte *>(_currentImage->_sectionSurfaces[section]->getPixels()) + offset,
- pitch,
- sectionRect.left, sectionRect.top,
- sectionRect.width(), sectionRect.height());
+ pitch,
+ sectionRect.left, sectionRect.top,
+ sectionRect.width(), sectionRect.height());
}
void SupernovaEngine::renderImage(int section) {
@@ -1025,7 +1025,7 @@ bool SupernovaEngine::loadGame(int slot) {
delete savefile;
return false; //Common::kUnknownError
}
-
+
byte saveVersion = savefile->readByte();
// Save version 1 was used during development and is no longer supported
if (saveVersion > SAVEGAME_VERSION || saveVersion == 1) {
@@ -1065,7 +1065,7 @@ bool SupernovaEngine::saveGame(int slot, const Common::String &description) {
Common::OutSaveFile *savefile = _saveFileMan->openForSaving(filename);
if (!savefile)
return false;
-
+
savefile->writeUint32LE(SAVEGAME_HEADER);
savefile->writeByte(SAVEGAME_VERSION);
@@ -1092,7 +1092,7 @@ bool SupernovaEngine::saveGame(int slot, const Common::String &description) {
}
void SupernovaEngine::errorTempSave(bool saving) {
- GUIErrorMessage(saving
+ GUIErrorMessage(saving
? "Failed to save temporary game state. Make sure your save game directory is set in ScummVM and that you can write to it."
: "Failed to load temporary game state.");
error("Unrecoverable error");
@@ -1146,8 +1146,8 @@ void ScreenBufferStack::restore() {
--_last;
g_system->lockScreen()->copyRectToSurface(
- _last->_pixels, _last->_width, _last->_x, _last->_y,
- _last->_width, _last->_height);
+ _last->_pixels, _last->_width, _last->_x, _last->_y,
+ _last->_width, _last->_height);
g_system->unlockScreen();
delete[] _last->_pixels;
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index 90ea884..0725e0c 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -78,8 +78,8 @@ private:
struct SoundSample {
SoundSample()
- : _buffer(NULL)
- , _length(0)
+ : _buffer(NULL)
+ , _length(0)
{}
~SoundSample() {
@@ -124,8 +124,8 @@ public:
int _textCursorY;
int _textColor;
- int textWidth(const char *text);
- int textWidth(const uint16 key);
+ int textWidth(const char *text);
+ int textWidth(const uint16 key);
Common::Error loadGameStrings();
void initData();
void initPalette();
@@ -169,7 +169,7 @@ public:
_gameStrings[idx] = string;
}
- int textWidth(const Common::String &text) {
+ int textWidth(const Common::String &text) {
if (text.empty())
return 0;
return textWidth(text.c_str());
Commit: 7f5cea54e3b31370f8630503bf163e622ce93718
https://github.com/scummvm/scummvm/commit/7f5cea54e3b31370f8630503bf163e622ce93718
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Implements original quit prompt
Changed paths:
engines/supernova/state.cpp
engines/supernova/supernova.cpp
engines/supernova/supernova.h
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 93c9d69..e3e341e 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -525,13 +525,8 @@ void GameManager::processInput(Common::KeyState &state) {
break;
case Common::KEYCODE_x:
if (state.flags & Common::KBD_ALT) {
- // quit game
- GUI::MessageDialog *dialog = new GUI::MessageDialog("Quit Game?", "Quit", "Cancel");
- if (dialog->runModal() == GUI::kMessageOK)
+ if (_vm->quitGameDialog())
_vm->quitGame();
- delete dialog;
-
- // TODO: Add original quit game message prompt
}
break;
default:
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 084c8b5..54e87e2 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -807,6 +807,69 @@ void SupernovaEngine::setTextSpeed() {
_gm->animationOn();
}
+bool SupernovaEngine::quitGameDialog() {
+ bool quit = false;
+
+ // TODO: Center text position dynamically
+ // Get translated strings
+ // Create on startup
+ GuiElement guiQuitBox;
+ guiQuitBox.setColor(kColorRed, kColorWhite99, kColorRed, kColorWhite99);
+ guiQuitBox.setSize(112, 97, 112 + 96, 97 + 27);
+ guiQuitBox.setText("Spiel abbrechen?");
+ guiQuitBox.setTextPosition(guiQuitBox.left + 3, guiQuitBox.top + 3);
+ GuiElement guiQuitYes;
+ guiQuitYes.setColor(kColorWhite35, kColorWhite99, kColorWhite35, kColorWhite99);
+ guiQuitYes.setSize(115, 111, 158, 121);
+ guiQuitYes.setText("Ja");
+ guiQuitYes.setTextPosition(132, 112);
+ GuiElement guiQuitNo;
+ guiQuitNo.setColor(kColorWhite35, kColorWhite99, kColorWhite35, kColorWhite99);
+ guiQuitNo.setSize(162, 111, 205, 121);
+ guiQuitNo.setText("Nein");
+ guiQuitNo.setTextPosition(173, 112);
+
+ _gm->animationOff();
+ _gm->saveTime();
+ saveScreen(guiQuitBox.left, guiQuitBox.top, guiQuitBox.width(), guiQuitBox.height());
+
+ renderBox(guiQuitBox.left, guiQuitBox.top, guiQuitBox.width(), guiQuitBox.height(), guiQuitBox._bgColorNormal);
+ renderText(guiQuitBox._text, guiQuitBox._textPosition.x, guiQuitBox._textPosition.y, guiQuitBox._textColorNormal);
+ renderBox(guiQuitYes.left, guiQuitYes.top, guiQuitYes.width(), guiQuitYes.height(), guiQuitYes._bgColorNormal);
+ renderText(guiQuitYes._text, guiQuitYes._textPosition.x, guiQuitYes._textPosition.y, guiQuitYes._textColorNormal);
+ renderBox(guiQuitNo.left, guiQuitNo.top, guiQuitNo.width(), guiQuitNo.height(), guiQuitNo._bgColorNormal);
+ renderText(guiQuitNo._text, guiQuitNo._textPosition.x, guiQuitNo._textPosition.y, guiQuitNo._textColorNormal);
+
+ do {
+ _gm->getInput();
+ if (_gm->_keyPressed) {
+ if (_gm->_key.keycode == Common::KEYCODE_j) {
+ quit = true;
+ break;
+ } else if (_gm->_key.keycode == Common::KEYCODE_n) {
+ quit = false;
+ break;
+ }
+ }
+ if (_gm->_mouseClicked) {
+ if (guiQuitYes.contains(_gm->_mouseX, _gm->_mouseY)) {
+ quit = true;
+ break;
+ } else if (guiQuitNo.contains(_gm->_mouseX, _gm->_mouseY)) {
+ quit = false;
+ break;
+ }
+ }
+ } while (true);
+
+ _gm->resetInputState();
+ restoreScreen();
+ _gm->loadTime();
+ _gm->animationOn();
+
+ return quit;
+}
+
Common::MemoryReadStream *SupernovaEngine::convertToMod(const char *filename, int version) {
// MSN format
struct {
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index 0725e0c..7aa6c13 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -152,6 +152,7 @@ public:
void setColor63(byte value);
bool loadGame(int slot);
bool saveGame(int slot, const Common::String &description);
+ bool quitGameDialog();
void errorTempSave(bool saving);
void setTextSpeed();
Commit: bb9bfcba4a1cf83eb4c29142760785c38587c0bb
https://github.com/scummvm/scummvm/commit/bb9bfcba4a1cf83eb4c29142760785c38587c0bb
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Encapsulates GuiElement
It simplifies the overloaded functions for renderBox/Text and saveScreen
Changed paths:
engines/supernova/state.cpp
engines/supernova/state.h
engines/supernova/supernova.cpp
engines/supernova/supernova.h
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index e3e341e..798bfe1 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -1464,56 +1464,31 @@ void GameManager::takeObject(Object &obj) {
void GameManager::drawCommandBox() {
for (int i = 0; i < ARRAYSIZE(_guiCommandButton); ++i) {
- _vm->renderBox(_guiCommandButton[i].left,
- _guiCommandButton[i].top,
- _guiCommandButton[i].width(),
- _guiCommandButton[i].height(),
- _guiCommandButton[i]._bgColor);
- int space = (_guiCommandButton[i].width() - _vm->textWidth(_guiCommandButton[i]._text)) / 2;
- _vm->renderText(_guiCommandButton[i]._text,
- _guiCommandButton[i]._textPosition.x + space,
- _guiCommandButton[i]._textPosition.y,
- _guiCommandButton[i]._textColor);
+ _vm->renderBox(_guiCommandButton[i]);
+ int space = (_guiCommandButton[i].width() - _vm->textWidth(_guiCommandButton[i].getText())) / 2;
+ _vm->renderText(_guiCommandButton[i].getText(),
+ _guiCommandButton[i].getTextPos().x + space,
+ _guiCommandButton[i].getTextPos().y,
+ _guiCommandButton[i].getTextColor());
}
}
void GameManager::drawInventory() {
for (int i = 0; i < ARRAYSIZE(_guiInventory); ++i) {
- _vm->renderBox(_guiInventory[i].left,
- _guiInventory[i].top,
- _guiInventory[i].width(),
- _guiInventory[i].height(),
- _guiInventory[i]._bgColor);
-
+ _vm->renderBox(_guiInventory[i]);
_vm->renderText(_inventory.get(i + _inventoryScroll)->_name,
- _guiInventory[i]._textPosition.x,
- _guiInventory[i]._textPosition.y,
- _guiInventory[i]._textColor);
+ _guiInventory[i].getTextPos().x,
+ _guiInventory[i].getTextPos().y,
+ _guiInventory[i].getTextColor());
}
- _vm->renderBox(_guiInventoryArrow[0].left,
- _guiInventoryArrow[0].top,
- _guiInventoryArrow[0].width(),
- _guiInventoryArrow[0].height(),
- _guiInventoryArrow[0]._bgColor);
- _vm->renderBox(_guiInventoryArrow[1].left,
- _guiInventoryArrow[1].top,
- _guiInventoryArrow[1].width(),
- _guiInventoryArrow[1].height(),
- _guiInventoryArrow[1]._bgColor);
+ _vm->renderBox(_guiInventoryArrow[0]);
+ _vm->renderBox(_guiInventoryArrow[1]);
if (_inventory.getSize() > ARRAYSIZE(_guiInventory)) {
- if (_inventoryScroll != 0) {
- _vm->renderText(_guiInventoryArrow[0]._text,
- _guiInventoryArrow[0]._textPosition.x,
- _guiInventoryArrow[0]._textPosition.y,
- _guiInventoryArrow[0]._textColor);
- }
- if (_inventoryScroll + ARRAYSIZE(_guiInventory) < _inventory.getSize()) {
- _vm->renderText(_guiInventoryArrow[1]._text,
- _guiInventoryArrow[1]._textPosition.x,
- _guiInventoryArrow[1]._textPosition.y,
- _guiInventoryArrow[1]._textColor);
- }
+ if (_inventoryScroll != 0)
+ _vm->renderText(_guiInventoryArrow[0]);
+ if (_inventoryScroll + ARRAYSIZE(_guiInventory) < _inventory.getSize())
+ _vm->renderText(_guiInventoryArrow[1]);
}
}
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index 9072aa2..e361cb7 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -91,6 +91,23 @@ public:
void setColor(int bgColor, int textColor, int bgColorHighlighted, int textColorHightlighted);
void setHighlight(bool isHighlighted);
+ const char *getText() const {
+ return _text;
+ }
+ int getBackgroundColor() const {
+ return _bgColor;
+ }
+ int getTextColor() const {
+ return _textColor;
+ }
+ const Common::Point &getTextPos() const {
+ return _textPosition;
+ }
+ bool isHighlighted() const {
+ return _isHighlighted;
+ }
+
+private:
Common::Point _textPosition;
char _text[128];
int _bgColor;
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 54e87e2..170a081 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -506,6 +506,9 @@ bool SupernovaEngine::setCurrentImage(int filenumber) {
void SupernovaEngine::saveScreen(int x, int y, int width, int height) {
_screenBuffer.push(x, y, width, height);
}
+void SupernovaEngine::saveScreen(const GuiElement &guiElement) {
+ saveScreen(guiElement.left, guiElement.top, guiElement.width(), guiElement.height());
+}
void SupernovaEngine::restoreScreen() {
_screenBuffer.restore();
@@ -692,6 +695,10 @@ void SupernovaEngine::renderText(const uint16 character) {
text[1] = 0;
renderText(text, _textCursorX, _textCursorY, _textColor);
}
+void SupernovaEngine::renderText(const GuiElement &guiElement) {
+ renderText(guiElement.getText(), guiElement.getTextPos().x,
+ guiElement.getTextPos().y, guiElement.getTextColor());
+}
void SupernovaEngine::renderBox(int x, int y, int width, int height, byte color) {
Graphics::Surface *screen = _system->lockScreen();
@@ -699,6 +706,10 @@ void SupernovaEngine::renderBox(int x, int y, int width, int height, byte color)
_system->unlockScreen();
}
+void SupernovaEngine::renderBox(const GuiElement &guiElement) {
+ renderBox(guiElement.left, guiElement.top, guiElement.width(),
+ guiElement.height(), guiElement.getBackgroundColor());
+}
void SupernovaEngine::paletteBrightness() {
byte palette[768];
@@ -831,14 +842,14 @@ bool SupernovaEngine::quitGameDialog() {
_gm->animationOff();
_gm->saveTime();
- saveScreen(guiQuitBox.left, guiQuitBox.top, guiQuitBox.width(), guiQuitBox.height());
-
- renderBox(guiQuitBox.left, guiQuitBox.top, guiQuitBox.width(), guiQuitBox.height(), guiQuitBox._bgColorNormal);
- renderText(guiQuitBox._text, guiQuitBox._textPosition.x, guiQuitBox._textPosition.y, guiQuitBox._textColorNormal);
- renderBox(guiQuitYes.left, guiQuitYes.top, guiQuitYes.width(), guiQuitYes.height(), guiQuitYes._bgColorNormal);
- renderText(guiQuitYes._text, guiQuitYes._textPosition.x, guiQuitYes._textPosition.y, guiQuitYes._textColorNormal);
- renderBox(guiQuitNo.left, guiQuitNo.top, guiQuitNo.width(), guiQuitNo.height(), guiQuitNo._bgColorNormal);
- renderText(guiQuitNo._text, guiQuitNo._textPosition.x, guiQuitNo._textPosition.y, guiQuitNo._textColorNormal);
+ saveScreen(guiQuitBox);
+
+ renderBox(guiQuitBox);
+ renderText(guiQuitBox);
+ renderBox(guiQuitYes);
+ renderText(guiQuitYes);
+ renderBox(guiQuitNo);
+ renderText(guiQuitNo);
do {
_gm->getInput();
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index 7aa6c13..e01fb77 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -90,6 +90,7 @@ struct SoundSample {
int _length;
};
+class GuiElement;
class SupernovaEngine : public Engine {
public:
explicit SupernovaEngine(OSystem *syst);
@@ -140,6 +141,7 @@ public:
void renderImage(int section);
bool setCurrentImage(int filenumber);
void saveScreen(int x, int y, int width, int height);
+ void saveScreen(const GuiElement &guiElement);
void restoreScreen();
void renderRoom(Room &room);
void renderMessage(const char *text, MessagePosition position = kMessageNormal);
@@ -148,7 +150,9 @@ public:
void renderText(const uint16 character, int x, int y, byte color);
void renderText(const char *text);
void renderText(const uint16 character);
+ void renderText(const GuiElement &guiElement);
void renderBox(int x, int y, int width, int height, byte color);
+ void renderBox(const GuiElement &guiElement);
void setColor63(byte value);
bool loadGame(int slot);
bool saveGame(int slot, const Common::String &description);
Commit: 53af82785e934f8fd6446b6f69f1fa914ac153f3
https://github.com/scummvm/scummvm/commit/53af82785e934f8fd6446b6f69f1fa914ac153f3
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Substitues constant strings
Changed paths:
engines/supernova/supernova.cpp
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 170a081..e6b0799 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -827,17 +827,17 @@ bool SupernovaEngine::quitGameDialog() {
GuiElement guiQuitBox;
guiQuitBox.setColor(kColorRed, kColorWhite99, kColorRed, kColorWhite99);
guiQuitBox.setSize(112, 97, 112 + 96, 97 + 27);
- guiQuitBox.setText("Spiel abbrechen?");
+ guiQuitBox.setText(getGameString(kStringLeaveGame).c_str());
guiQuitBox.setTextPosition(guiQuitBox.left + 3, guiQuitBox.top + 3);
GuiElement guiQuitYes;
guiQuitYes.setColor(kColorWhite35, kColorWhite99, kColorWhite35, kColorWhite99);
guiQuitYes.setSize(115, 111, 158, 121);
- guiQuitYes.setText("Ja");
+ guiQuitYes.setText(getGameString(kStringYes).c_str());
guiQuitYes.setTextPosition(132, 112);
GuiElement guiQuitNo;
guiQuitNo.setColor(kColorWhite35, kColorWhite99, kColorWhite35, kColorWhite99);
guiQuitNo.setSize(162, 111, 205, 121);
- guiQuitNo.setText("Nein");
+ guiQuitNo.setText(getGameString(kStringNo).c_str());
guiQuitNo.setTextPosition(173, 112);
_gm->animationOff();
Commit: 78e4a162ab70e76c43c7875771be8365e51711ee
https://github.com/scummvm/scummvm/commit/78e4a162ab70e76c43c7875771be8365e51711ee
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Removes unused function
Changed paths:
engines/supernova/state.cpp
engines/supernova/state.h
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 798bfe1..e41edbf 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -1288,9 +1288,6 @@ void GameManager::searchStartEvent() {
_state._corridorSearch = true;
}
-void GameManager::outro() {
-}
-
void GameManager::great(uint number) {
if (number && (_state._greatFlag & (1 << number)))
return;
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index e361cb7..ab21842 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -234,7 +234,6 @@ public:
void guardWalkEvent();
void taxiEvent();
void searchStartEvent();
- void outro();
void guardShot();
void guard3Shot();
void alarm();
Commit: 7fab63f297a3639aa624d0a7f867e12c0e329545
https://github.com/scummvm/scummvm/commit/7fab63f297a3639aa624d0a7f867e12c0e329545
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Recenters animated text on loop
Changed paths:
engines/supernova/rooms.cpp
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp
index ce06f44..faa6129 100644
--- a/engines/supernova/rooms.cpp
+++ b/engines/supernova/rooms.cpp
@@ -207,6 +207,10 @@ void Marquee::renderCharacter() {
if (_loop) {
_loop = false;
_text = _textBegin;
+ clearText();
+ _textWidth = _vm->textWidth(_text);
+ _x = kScreenWidth / 2 - _textWidth / 2;
+ _vm->_textCursorX = _x;
}
break;
case '\0':
Commit: 61fb88ef2076d230b9380677ecb9ba6353b95f3c
https://github.com/scummvm/scummvm/commit/61fb88ef2076d230b9380677ecb9ba6353b95f3c
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Removes TODO for quitGameDialog()
Changed paths:
engines/supernova/supernova.cpp
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index e6b0799..78d4ef1 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -821,9 +821,6 @@ void SupernovaEngine::setTextSpeed() {
bool SupernovaEngine::quitGameDialog() {
bool quit = false;
- // TODO: Center text position dynamically
- // Get translated strings
- // Create on startup
GuiElement guiQuitBox;
guiQuitBox.setColor(kColorRed, kColorWhite99, kColorRed, kColorWhite99);
guiQuitBox.setSize(112, 97, 112 + 96, 97 + 27);
Commit: 392db4ed338e95158931c630a9c71ced0c903765
https://github.com/scummvm/scummvm/commit/392db4ed338e95158931c630a9c71ced0c903765
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2018-03-11T23:25:00+01:00
Commit Message:
SUPERNOVA: Fixes formatting
Changed paths:
engines/supernova/supernova.cpp
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 78d4ef1..50731ae 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -697,7 +697,7 @@ void SupernovaEngine::renderText(const uint16 character) {
}
void SupernovaEngine::renderText(const GuiElement &guiElement) {
renderText(guiElement.getText(), guiElement.getTextPos().x,
- guiElement.getTextPos().y, guiElement.getTextColor());
+ guiElement.getTextPos().y, guiElement.getTextColor());
}
void SupernovaEngine::renderBox(int x, int y, int width, int height, byte color) {
@@ -708,7 +708,7 @@ void SupernovaEngine::renderBox(int x, int y, int width, int height, byte color)
void SupernovaEngine::renderBox(const GuiElement &guiElement) {
renderBox(guiElement.left, guiElement.top, guiElement.width(),
- guiElement.height(), guiElement.getBackgroundColor());
+ guiElement.height(), guiElement.getBackgroundColor());
}
void SupernovaEngine::paletteBrightness() {
byte palette[768];
More information about the Scummvm-git-logs
mailing list