[Scummvm-cvs-logs] SF.net SVN: scummvm:[43305] scummvm/branches/gsoc2009-draci/engines/draci
dkasak13 at users.sourceforge.net
dkasak13 at users.sourceforge.net
Wed Aug 12 06:18:45 CEST 2009
Revision: 43305
http://scummvm.svn.sourceforge.net/scummvm/?rev=43305&view=rev
Author: dkasak13
Date: 2009-08-12 04:18:45 +0000 (Wed, 12 Aug 2009)
Log Message:
-----------
* Split loop status and substatus into two different enums since they are two separate concepts
* Fixed slight glitch where object titles (which normally disappear when objects are used/looked at) reappeared for a moment after the script has finished
Modified Paths:
--------------
scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
scummvm/branches/gsoc2009-draci/engines/draci/game.h
scummvm/branches/gsoc2009-draci/engines/draci/script.cpp
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-08-12 02:24:03 UTC (rev 43304)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-08-12 04:18:45 UTC (rev 43305)
@@ -174,7 +174,7 @@
_persons[kDragonObject]._y = 0;
}
- setLoopSubstatus(kStatusOrdinary);
+ setLoopSubstatus(kSubstatusOrdinary);
// Do the actual change
changeRoom(_newRoom);
@@ -281,7 +281,7 @@
int x = _vm->_mouse->getPosX();
int y = _vm->_mouse->getPosY();
- if (_loopStatus == kStatusDialogue && _loopSubstatus == kStatusOrdinary) {
+ if (_loopStatus == kStatusDialogue && _loopSubstatus == kSubstatusOrdinary) {
// Find animation under cursor
_animUnderCursor = _vm->_anims->getTopAnimationID(x, y);
@@ -309,7 +309,7 @@
Animation *titleAnim = _vm->_anims->getAnimation(kTitleText);
Text *title = reinterpret_cast<Text *>(titleAnim->getFrame());
- if (_loopStatus == kStatusOrdinary && _loopSubstatus == kStatusOrdinary) {
+ if (_loopStatus == kStatusOrdinary && _loopSubstatus == kSubstatusOrdinary) {
if(_vm->_mouse->isCursorOn()) {
// Find the game object under the cursor
// (to be more precise, one that corresponds to the animation under the cursor)
@@ -333,6 +333,7 @@
_vm->_mouse->cursorOff();
titleAnim->markDirtyRect(surface);
title->setText("");
+ _objUnderCursor = kObjectNotFound;
if (!obj->_imLook) {
if (obj->_lookDir == -1) {
@@ -359,6 +360,7 @@
_vm->_mouse->cursorOff();
titleAnim->markDirtyRect(surface);
title->setText("");
+ _objUnderCursor = kObjectNotFound;
if (!obj->_imUse) {
if (obj->_useDir == -1) {
@@ -394,7 +396,7 @@
debug(8, "Anim under cursor: %d", _animUnderCursor);
// Handle character talking (if there is any)
- if (_loopSubstatus == kStatusTalk) {
+ if (_loopSubstatus == kSubstatusTalk) {
Animation *speechAnim = _vm->_anims->getAnimation(kSpeechText);
Text *speechFrame = reinterpret_cast<Text *>(speechAnim->getFrame());
@@ -537,7 +539,7 @@
_dialogueExit = false;
hit = dialogueDraw();
- debug(7, kDraciLogicDebugLevel,
+ debugC(7, kDraciLogicDebugLevel,
"hit: %d, _lines[hit]: %d, lastblock: %d, dialogueLines: %d, dialogueExit: %d",
hit, _lines[hit], _lastBlock, _dialogueLines, _dialogueExit);
@@ -1111,7 +1113,7 @@
_loopStatus = status;
}
-void Game::setLoopSubstatus(LoopStatus status) {
+void Game::setLoopSubstatus(LoopSubstatus status) {
_loopSubstatus = status;
}
@@ -1119,7 +1121,7 @@
return _loopStatus;
}
-LoopStatus Game::getLoopSubstatus() {
+LoopSubstatus Game::getLoopSubstatus() {
return _loopSubstatus;
}
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-08-12 02:24:03 UTC (rev 43304)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-08-12 04:18:45 UTC (rev 43305)
@@ -175,12 +175,20 @@
GPL2Program _program;
};
-enum LoopStatus {
- kStatusGate, kStatusOrdinary, kStatusInventory,
- kStatusDialogue, kStatusTalk, kStatusStrange,
- kStatusFade
+enum LoopStatus {
+ kStatusOrdinary,
+ kStatusGate,
+ kStatusInventory,
+ kStatusDialogue
};
+enum LoopSubstatus {
+ kSubstatusOrdinary,
+ kSubstatusTalk,
+ kSubstatusFade,
+ kSubstatusStrange
+};
+
/**
* Enumerates the animations for the dragon's movement.
*/
@@ -262,9 +270,9 @@
void setMarkedAnimationIndex(int index);
void setLoopStatus(LoopStatus status);
- void setLoopSubstatus(LoopStatus status);
+ void setLoopSubstatus(LoopSubstatus status);
LoopStatus getLoopStatus();
- LoopStatus getLoopSubstatus();
+ LoopSubstatus getLoopSubstatus();
bool shouldQuit() { return _shouldQuit; }
void setQuit(bool quit) { _shouldQuit = quit; }
@@ -321,7 +329,7 @@
Animation *_dialogueAnims[4];
LoopStatus _loopStatus;
- LoopStatus _loopSubstatus;
+ LoopSubstatus _loopSubstatus;
bool _shouldQuit;
bool _shouldExitLoop;
Modified: scummvm/branches/gsoc2009-draci/engines/draci/script.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/script.cpp 2009-08-12 02:24:03 UTC (rev 43304)
+++ scummvm/branches/gsoc2009-draci/engines/draci/script.cpp 2009-08-12 04:18:45 UTC (rev 43305)
@@ -346,11 +346,11 @@
return;
}
- _vm->_game->setLoopStatus(kStatusStrange);
+ _vm->_game->setLoopSubstatus(kSubstatusStrange);
_vm->_game->setExitLoop(true);
_vm->_game->loop();
_vm->_game->setExitLoop(false);
- _vm->_game->setLoopStatus(kStatusOrdinary);
+ _vm->_game->setLoopSubstatus(kSubstatusOrdinary);
}
void Script::load(Common::Queue<int> ¶ms) {
@@ -446,7 +446,7 @@
Animation *anim = _vm->_anims->getAnimation(animID);
anim->registerCallback(&Animation::exitGameLoop);
- _vm->_game->setLoopStatus(kStatusStrange);
+ _vm->_game->setLoopSubstatus(kSubstatusStrange);
bool visible = (obj->_location == _vm->_game->getRoomNum() && obj->_visible);
@@ -457,7 +457,7 @@
_vm->_game->loop();
_vm->_game->setExitLoop(false);
_vm->_anims->stop(animID);
- _vm->_game->setLoopStatus(kStatusOrdinary);
+ _vm->_game->setLoopSubstatus(kSubstatusOrdinary);
anim->registerCallback(&Animation::doNothing);
}
@@ -596,9 +596,9 @@
_vm->_game->walkHero(x, y);
- _vm->_game->setLoopSubstatus(kStatusStrange);
+ _vm->_game->setLoopSubstatus(kSubstatusStrange);
_vm->_game->loop();
- _vm->_game->setLoopSubstatus(kStatusOrdinary);
+ _vm->_game->setLoopSubstatus(kSubstatusOrdinary);
_vm->_game->setExitLoop(false);
}
@@ -650,7 +650,7 @@
}
// Set the loop substatus to an appropriate value
- _vm->_game->setLoopSubstatus(kStatusTalk);
+ _vm->_game->setLoopSubstatus(kSubstatusTalk);
// Record time
_vm->_game->setSpeechTick(_vm->_system->getMillis());
@@ -673,7 +673,7 @@
speechFrame->setText("");
// Revert to "normal" loop status
- _vm->_game->setLoopSubstatus(kStatusOrdinary);
+ _vm->_game->setLoopSubstatus(kSubstatusOrdinary);
_vm->_game->setExitLoop(false);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list