[Scummvm-cvs-logs] SF.net SVN: scummvm:[43492] scummvm/branches/gsoc2009-draci/engines/draci
dkasak13 at users.sourceforge.net
dkasak13 at users.sourceforge.net
Mon Aug 17 21:37:55 CEST 2009
Revision: 43492
http://scummvm.svn.sourceforge.net/scummvm/?rev=43492&view=rev
Author: dkasak13
Date: 2009-08-17 19:37:55 +0000 (Mon, 17 Aug 2009)
Log Message:
-----------
Removed public data variables of Game concerning dialogues and added getters/setters.
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-17 19:26:15 UTC (rev 43491)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-08-17 19:37:55 UTC (rev 43492)
@@ -805,10 +805,10 @@
debugC(7, kDraciLogicDebugLevel,
"hit: %d, _lines[hit]: %d, lastblock: %d, dialogueLines: %d, dialogueExit: %d",
- hit, _lines[hit], _lastBlock, _dialogueLines, _dialogueExit);
+ hit, _lines[hit], _lastBlock, _dialogueLinesNum, _dialogueExit);
if ((!_dialogueExit) && (hit != -1) && (_lines[hit] != -1)) {
- if ((oldLines == 1) && (_dialogueLines == 1) && (_lines[hit] == _lastBlock)) {
+ if ((oldLines == 1) && (_dialogueLinesNum == 1) && (_lines[hit] == _lastBlock)) {
break;
}
_currentBlock = _lines[hit];
@@ -819,7 +819,7 @@
_lastBlock = _lines[hit];
_dialogueVars[_dialogueOffsets[dialogueID] + _lastBlock] += 1;
_dialogueBegin = false;
- oldLines = _dialogueLines;
+ oldLines = _dialogueLinesNum;
} while(!_dialogueExit);
@@ -828,32 +828,32 @@
}
int Game::dialogueDraw() {
- _dialogueLines = 0;
+ _dialogueLinesNum = 0;
int i = 0;
int ret = 0;
Animation *anim;
Text *dialogueLine;
- while ((_dialogueLines < 4) && (i < _blockNum)) {
+ while ((_dialogueLinesNum < 4) && (i < _blockNum)) {
GPL2Program blockTest;
blockTest._bytecode = _dialogueBlocks[i]._canBlock;
blockTest._length = _dialogueBlocks[i]._canLen;
debugC(3, kDraciLogicDebugLevel, "Testing dialogue block %d", i);
if (_vm->_script->testExpression(blockTest, 1)) {
- anim = _dialogueAnims[_dialogueLines];
+ anim = _dialogueAnims[_dialogueLinesNum];
dialogueLine = reinterpret_cast<Text *>(anim->getFrame());
dialogueLine->setText(_dialogueBlocks[i]._title);
dialogueLine->setColour(kLineInactiveColour);
- _lines[_dialogueLines] = i;
- _dialogueLines++;
+ _lines[_dialogueLinesNum] = i;
+ _dialogueLinesNum++;
}
++i;
}
- for (i = _dialogueLines; i < kDialogueLines; ++i) {
+ for (i = _dialogueLinesNum; i < kDialogueLines; ++i) {
_lines[i] = -1;
anim = _dialogueAnims[i];
dialogueLine = reinterpret_cast<Text *>(anim->getFrame());
@@ -862,7 +862,7 @@
_oldObjUnderCursor = kObjectNotFound;
- if (_dialogueLines > 1) {
+ if (_dialogueLinesNum > 1) {
_vm->_mouse->cursorOn();
_shouldExitLoop = false;
loop();
@@ -882,7 +882,7 @@
ret = _dialogueAnims[0]->getID() - _animUnderCursor;
}
} else {
- ret = _dialogueLines - 1;
+ ret = _dialogueLinesNum - 1;
}
for (i = 0; i < kDialogueLines; ++i) {
@@ -970,6 +970,50 @@
_vm->_anims->deleteAfterIndex(lastAnimIndex);
}
+bool Game::isDialogueBegin() {
+ return _dialogueBegin;
+}
+
+bool Game::shouldExitDialogue() {
+ return _dialogueExit;
+}
+
+void Game::setDialogueExit(bool exit) {
+ _dialogueExit = exit;
+}
+
+int Game::getDialogueBlockNum() {
+ return _blockNum;
+}
+
+int Game::getDialogueVar(int dialogueID) {
+ return _dialogueVars[dialogueID];
+}
+
+void Game::setDialogueVar(int dialogueID, int value) {
+ _dialogueVars[dialogueID] = value;
+}
+
+int Game::getCurrentDialogue() {
+ return _currentDialogue;
+}
+
+int Game::getDialogueLastBlock() {
+ return _lastBlock;
+}
+
+int Game::getDialogueLinesNum() {
+ return _dialogueLinesNum;
+}
+
+int Game::getDialogueCurrentBlock() {
+ return _currentBlock;
+}
+
+int Game::getCurrentDialogueOffset() {
+ return _dialogueOffsets[_currentDialogue];
+}
+
void Game::walkHero(int x, int y) {
Surface *surface = _vm->_screen->getSurface();
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-08-17 19:26:15 UTC (rev 43491)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-08-17 19:37:55 UTC (rev 43492)
@@ -324,6 +324,18 @@
void dialogueDone();
void runDialogueProg(GPL2Program, int offset);
+ bool isDialogueBegin();
+ bool shouldExitDialogue();
+ void setDialogueExit(bool exit);
+ int getDialogueBlockNum();
+ int getDialogueVar(int dialogueID);
+ void setDialogueVar(int dialogueID, int value);
+ int getCurrentDialogue();
+ int getDialogueCurrentBlock();
+ int getDialogueLastBlock();
+ int getDialogueLinesNum();
+ int getCurrentDialogueOffset();
+
void schedulePalette(int paletteID);
int getScheduledPalette();
@@ -344,14 +356,11 @@
int _inventory[kInventorySlots];
bool _inventoryExit;
-
Room _currentRoom;
int _currentGate;
int _newRoom;
int _newGate;
-// HACK: remove public when tested and add getters instead
-public:
uint *_dialogueOffsets;
int _currentDialogue;
int *_dialogueVars;
@@ -361,7 +370,7 @@
bool _dialogueExit;
int _currentBlock;
int _lastBlock;
- int _dialogueLines;
+ int _dialogueLinesNum;
int _blockNum;
int _lines[kDialogueLines];
Animation *_dialogueAnims[kDialogueLines];
Modified: scummvm/branches/gsoc2009-draci/engines/draci/script.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/script.cpp 2009-08-17 19:26:15 UTC (rev 43491)
+++ scummvm/branches/gsoc2009-draci/engines/draci/script.cpp 2009-08-17 19:37:55 UTC (rev 43492)
@@ -219,29 +219,31 @@
}
int Script::funcAtBegin(int yesno) {
- return _vm->_game->_dialogueBegin == yesno;
+ return _vm->_game->isDialogueBegin() == yesno;
}
int Script::funcLastBlock(int blockID) {
blockID -= 1;
- return _vm->_game->_lastBlock == blockID;
+ return _vm->_game->getDialogueLastBlock() == blockID;
}
int Script::funcBlockVar(int blockID) {
blockID -= 1;
-
- return _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue] + blockID];
+
+ const int currentOffset = _vm->_game->getCurrentDialogueOffset();
+ return _vm->_game->getDialogueVar(currentOffset + blockID);
}
int Script::funcHasBeen(int blockID) {
blockID -= 1;
- return _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue] + blockID] > 0;
+ const int currentOffset = _vm->_game->getCurrentDialogueOffset();
+ return _vm->_game->getDialogueVar(currentOffset + blockID) > 0;
}
int Script::funcMaxLine(int lines) {
- return _vm->_game->_dialogueLines < lines;
+ return _vm->_game->getDialogueLinesNum() < lines;
}
int Script::funcNot(int n) {
@@ -731,27 +733,33 @@
}
void Script::resetDialogue(Common::Queue<int> ¶ms) {
+
+ const int currentOffset = _vm->_game->getCurrentDialogueOffset();
- for (int i = 0; i < _vm->_game->_blockNum; ++i) {
- _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue]+i] = 0;
+ for (int i = 0; i < _vm->_game->getDialogueBlockNum(); ++i) {
+ _vm->_game->setDialogueVar(currentOffset + i, 0);
}
}
void Script::resetDialogueFrom(Common::Queue<int> ¶ms) {
- for (int i = _vm->_game->_currentBlock; i < _vm->_game->_blockNum; ++i) {
- _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue]+i] = 0;
+ const int currentOffset = _vm->_game->getCurrentDialogueOffset();
+
+ for (int i = _vm->_game->getDialogueCurrentBlock(); i < _vm->_game->getDialogueBlockNum(); ++i) {
+ _vm->_game->setDialogueVar(currentOffset + i, 0);
}
}
void Script::resetBlock(Common::Queue<int> ¶ms) {
int blockID = params.pop() - 1;
- _vm->_game->_dialogueVars[_vm->_game->_dialogueOffsets[_vm->_game->_currentDialogue]+blockID] = 0;
+ const int currentOffset = _vm->_game->getCurrentDialogueOffset();
+
+ _vm->_game->setDialogueVar(currentOffset + blockID, 0);
}
void Script::exitDialogue(Common::Queue<int> ¶ms) {
- _vm->_game->_dialogueExit = true;
+ _vm->_game->setDialogueExit(true);
}
void Script::roomMap(Common::Queue<int> ¶ms) {
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