aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/preagi_troll.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2016-01-29 13:13:40 +0100
committerMartin Kiewitz2016-01-29 13:22:22 +0100
commit8a595e7771aa89d06876e13d7ab6751e26da8982 (patch)
treedfc61e112c9f7e5b1d9e295fbb60edf4ae1b65f3 /engines/agi/preagi_troll.cpp
parent1e73796bd0b17740ca4c35b9a7bd1882f9de6a37 (diff)
downloadscummvm-rg350-8a595e7771aa89d06876e13d7ab6751e26da8982.tar.gz
scummvm-rg350-8a595e7771aa89d06876e13d7ab6751e26da8982.tar.bz2
scummvm-rg350-8a595e7771aa89d06876e13d7ab6751e26da8982.zip
AGI: graphics rewrite + cleanup
- graphics code fully rewritten - Apple IIgs font support - Amiga Topaz support - Word parser rewritten - menu code rewritten - removed forced 2 second delay on all room changes replaced with heuristic to detect situations, where it's required - lots of naming cleanup - new console commands show_map, screenobj, vmvars and vmflags - all sorts of hacks/workarounds removed - added SCI wait mouse cursor - added Apple IIgs mouse cursor - added Atari ST mouse cursor - added Amiga/Apple IIgs transition - added Atari ST transition - user can select another render mode and use Apple IIgs palette + transition for PC versions - inventory screen rewritten - SetSimple command now properly implemented - PreAGI Mickey: Sierra logo now shown - saved games: now saving controller key mapping also saving automatic save data (SetSimple command) - fixed invalid memory access when saving games (31 bytes were saved using Common::String c_ptr() Special Thanks to: - fuzzie for helping out with the Apple IIgs font + valgrind - eriktorbjorn for helping out with valgrind - LordHoto for figuring out the code, that caused invalid memory access in the original code, when saving a game - sev for help out with reversing the Amiga transition currently missing: - mouse support for menu - mouse support for system dialogs - predictive dialog support
Diffstat (limited to 'engines/agi/preagi_troll.cpp')
-rw-r--r--engines/agi/preagi_troll.cpp48
1 files changed, 24 insertions, 24 deletions
diff --git a/engines/agi/preagi_troll.cpp b/engines/agi/preagi_troll.cpp
index 2889407c85..6d82c62987 100644
--- a/engines/agi/preagi_troll.cpp
+++ b/engines/agi/preagi_troll.cpp
@@ -41,7 +41,7 @@ TrollEngine::~TrollEngine() {
void TrollEngine::pressAnyKey(int col) {
drawStr(24, col, kColorDefault, IDS_TRO_PRESSANYKEY);
- _gfx->doUpdate();
+ g_system->updateScreen();
getSelection(kSelAnyKey);
}
@@ -49,7 +49,7 @@ void TrollEngine::drawMenu(const char *szMenu, int iSel) {
clearTextArea();
drawStr(21, 0, kColorDefault, szMenu);
drawStr(22 + iSel, 0, kColorDefault, " *");
- _gfx->doUpdate();
+ g_system->updateScreen();
}
bool TrollEngine::getMenuSel(const char *szMenu, int *iSel, int nSel) {
@@ -155,8 +155,8 @@ void TrollEngine::drawPic(int iPic, bool f3IsCont, bool clr, bool troll) {
_picture->drawPicture();
- _picture->showPic();
- _gfx->doUpdate();
+ _picture->showPic(); // TODO: *HAVE* to add coordinates + height/width!!
+ g_system->updateScreen();
}
// Game Logic
@@ -223,11 +223,11 @@ void TrollEngine::waitAnyKeyIntro() {
// fall through
case 0:
drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_2);
- _gfx->doUpdate();
+ g_system->updateScreen();
break;
case 100:
drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_3);
- _gfx->doUpdate();
+ g_system->updateScreen();
break;
}
@@ -262,7 +262,7 @@ void TrollEngine::credits() {
drawStr(17, 7, 12, IDS_TRO_CREDITS_5);
drawStr(19, 2, 14, IDS_TRO_CREDITS_6);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
}
@@ -288,11 +288,11 @@ void TrollEngine::tutorial() {
switch (iSel) {
case IDI_TRO_SEL_OPTION_1:
clearScreen(0x22, false);
- _gfx->doUpdate();
+ g_system->updateScreen();
break;
case IDI_TRO_SEL_OPTION_2:
clearScreen(0x00, false);
- _gfx->doUpdate();
+ g_system->updateScreen();
break;
case IDI_TRO_SEL_OPTION_3:
done = true;
@@ -304,7 +304,7 @@ void TrollEngine::tutorial() {
clearScreen(0x4F);
drawStr(7, 4, kColorDefault, IDS_TRO_TUTORIAL_5);
drawStr(9, 4, kColorDefault, IDS_TRO_TUTORIAL_6);
- _gfx->doUpdate();
+ g_system->updateScreen();
if (!getSelection(kSelYesNo))
break;
@@ -314,37 +314,37 @@ void TrollEngine::tutorial() {
clearScreen(0x5F);
drawStr(4, 1, kColorDefault, IDS_TRO_TUTORIAL_7);
drawStr(5, 1, kColorDefault, IDS_TRO_TUTORIAL_8);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
clearScreen(0x2F);
drawStr(6, 1, kColorDefault, IDS_TRO_TUTORIAL_9);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
clearScreen(0x19);
drawStr(7, 1, kColorDefault, IDS_TRO_TUTORIAL_10);
drawStr(8, 1, kColorDefault, IDS_TRO_TUTORIAL_11);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
clearScreen(0x6E);
drawStr(9, 1, kColorDefault, IDS_TRO_TUTORIAL_12);
drawStr(10, 1, kColorDefault, IDS_TRO_TUTORIAL_13);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
clearScreen(0x4C);
drawStr(11, 1, kColorDefault, IDS_TRO_TUTORIAL_14);
drawStr(12, 1, kColorDefault, IDS_TRO_TUTORIAL_15);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
clearScreen(0x5D);
drawStr(13, 1, kColorDefault, IDS_TRO_TUTORIAL_16);
drawStr(14, 1, kColorDefault, IDS_TRO_TUTORIAL_17);
drawStr(15, 1, kColorDefault, IDS_TRO_TUTORIAL_18);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
// show treasures
@@ -353,7 +353,7 @@ void TrollEngine::tutorial() {
for (int i = 0; i < IDI_TRO_MAX_TREASURE; i++)
drawStr(19 - i, 11, kColorDefault, _items[i].name);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
}
@@ -363,7 +363,7 @@ void TrollEngine::intro() {
clearScreen(0x2F);
drawStr(9, 10, kColorDefault, IDS_TRO_INTRO_0);
drawStr(14, 15, kColorDefault, IDS_TRO_INTRO_1);
- _gfx->doUpdate();
+ g_system->updateScreen();
_system->delayMillis(3200);
CursorMan.showMouse(true);
@@ -371,7 +371,7 @@ void TrollEngine::intro() {
// Draw logo
setDefaultTextColor(0x0f);
drawPic(45, false, true);
- _gfx->doUpdate();
+ g_system->updateScreen();
// wait for keypress and alternate message
waitAnyKeyIntro();
@@ -379,7 +379,7 @@ void TrollEngine::intro() {
// have you played this game before?
drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_4);
drawStr(23, 6, kColorDefault, IDS_TRO_INTRO_5);
- _gfx->doUpdate();
+ g_system->updateScreen();
if (!getSelection(kSelYesNo))
tutorial();
@@ -411,7 +411,7 @@ void TrollEngine::gameOver() {
sprintf(szMoves, IDS_TRO_GAMEOVER_0, _moves);
drawStr(21, 1, kColorDefault, szMoves);
drawStr(22, 1, kColorDefault, IDS_TRO_GAMEOVER_1);
- _gfx->doUpdate();
+ g_system->updateScreen();
pressAnyKey();
}
@@ -443,7 +443,7 @@ int TrollEngine::drawRoom(char *menu) {
}
drawPic(_currentRoom, contFlag, true);
- _gfx->doUpdate();
+ g_system->updateScreen();
if (_currentRoom == 42) {
drawPic(44, false, false); // don't clear
@@ -454,7 +454,7 @@ int TrollEngine::drawRoom(char *menu) {
}
}
- _gfx->doUpdate();
+ g_system->updateScreen();
char tmp[10];
strncat(menu, (char *)_gameData + _locMessagesIdx[_currentRoom], 39);
@@ -498,7 +498,7 @@ void TrollEngine::pickupTreasure(int treasureId) {
if (_currentRoom != 24) {
clearTextArea();
drawPic(_currentRoom, false, true);
- _gfx->doUpdate();
+ g_system->updateScreen();
}
printUserMessage(treasureId + 16);