aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/exec_ns.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2007-11-22 21:19:44 +0000
committerNicola Mettifogo2007-11-22 21:19:44 +0000
commitd8e8050015086f4139fb327a2a25a6859b858d8f (patch)
treea4a0175c5149f544a2d328a571414bceb1d1acd8 /engines/parallaction/exec_ns.cpp
parentcd3f548407f90128c95deda368f3fd46613e1d5d (diff)
downloadscummvm-rg350-d8e8050015086f4139fb327a2a25a6859b858d8f.tar.gz
scummvm-rg350-d8e8050015086f4139fb327a2a25a6859b858d8f.tar.bz2
scummvm-rg350-d8e8050015086f4139fb327a2a25a6859b858d8f.zip
* added (incomplete) explicit state machine handling in engine class (see _inputMode)
* added service routines to Gfx * changed displayCharacterComment to work with the new state machine and gfx routines svn-id: r29613
Diffstat (limited to 'engines/parallaction/exec_ns.cpp')
-rw-r--r--engines/parallaction/exec_ns.cpp39
1 files changed, 7 insertions, 32 deletions
diff --git a/engines/parallaction/exec_ns.cpp b/engines/parallaction/exec_ns.cpp
index 52e132a56e..1545dc9d07 100644
--- a/engines/parallaction/exec_ns.cpp
+++ b/engines/parallaction/exec_ns.cpp
@@ -478,49 +478,24 @@ void Parallaction::runCommands(CommandList& list, Zone *z) {
}
-
+//
+// ZONE TYPE: EXAMINE
+//
// displays character head commenting an examined object
//
-// works on the frontbuffer
-//
void Parallaction::displayCharacterComment(ExamineData *data) {
if (data->_description == NULL) return;
- // NOTE: saving visible screen before displaying comment allows
- // to restore the exact situation after the comment is deleted.
- // This means animations are restored in the exact position as
- // they were, thus avoiding clipping effect as signalled in
- // BUG item #1762614.
- _gfx->copyScreen(Gfx::kBitFront, Gfx::kBitBack);
-
- _gfx->setFont(_dialogueFont);
- _gfx->flatBlitCnv(_char._talk, 0, 190, 80, Gfx::kBitFront);
-
- int16 v26, v28;
- _gfx->getStringExtent(data->_description, 130, &v28, &v26);
- Common::Rect r(v28, v26);
- r.moveTo(140, 10);
- _gfx->drawBalloon(r, 0);
- _gfx->displayWrappedString(data->_description, 140, 10, 0, 130);
-
- waitUntilLeftClick();
+ _gfx->setDialogueBalloon(data->_description, 140, 10, 130, 0, 0);
+ _gfx->setItem(_char._talk, 190, 80);
+ _gfx->setItemFrame(0, 0);
- _gfx->copyScreen(Gfx::kBitBack, Gfx::kBitFront);
- _gfx->updateScreen();
-
- return;
+ _inputMode = kInputModeComment;
}
-//
-// ZONE TYPE: EXAMINE
-//
-
// display detail view of an item (and eventually comments)
//
-// works on the frontbuffer
-//
-
void Parallaction::displayItemComment(ExamineData *data) {
if (data->_description == NULL) return;