[Scummvm-cvs-logs] SF.net SVN: scummvm:[53135] scummvm/trunk/engines/hugo
strangerke at users.sourceforge.net
strangerke at users.sourceforge.net
Mon Oct 11 00:13:39 CEST 2010
Revision: 53135
http://scummvm.svn.sourceforge.net/scummvm/?rev=53135&view=rev
Author: strangerke
Date: 2010-10-10 22:13:38 +0000 (Sun, 10 Oct 2010)
Log Message:
-----------
HUGO: Add specific takeObject and dropObject for H1 DOS
Modified Paths:
--------------
scummvm/trunk/engines/hugo/parser.cpp
scummvm/trunk/engines/hugo/parser.h
Modified: scummvm/trunk/engines/hugo/parser.cpp
===================================================================
--- scummvm/trunk/engines/hugo/parser.cpp 2010-10-10 21:40:25 UTC (rev 53134)
+++ scummvm/trunk/engines/hugo/parser.cpp 2010-10-10 22:13:38 UTC (rev 53135)
@@ -372,6 +372,38 @@
return true;
}
+// Do all things necessary to carry an object
+void Parser_v1w::takeObject(object_t *obj) {
+ debugC(1, kDebugParser, "takeObject(object_t *obj)");
+
+ obj->carriedFl = true;
+ if (obj->seqNumb) { // Don't change if no image to display
+ obj->cycling = INVISIBLE;
+ }
+ _vm.adjustScore(obj->objValue);
+
+ if (obj->seqNumb > 0) // If object has an image, force walk to dropped
+ obj->viewx = -1; // (possibly moved) object next time taken!
+ Utils::Box(BOX_ANY, TAKE_TEXT, _vm._arrayNouns[obj->nounIndex][TAKE_NAME]);
+}
+
+// Do all necessary things to drop an object
+void Parser_v1w::dropObject(object_t *obj) {
+ debugC(1, kDebugParser, "dropObject(object_t *obj)");
+
+ obj->carriedFl = false;
+ obj->screenIndex = *_vm._screen_p;
+ if ((obj->seqNumb > 1) || (obj->seqList[0].imageNbr > 1))
+ obj->cycling = CYCLE_FORWARD;
+ else
+ obj->cycling = NOT_CYCLING;
+ obj->x = _vm._hero->x - 1;
+ obj->y = _vm._hero->y + _vm._hero->currImagePtr->y2 - 1;
+ obj->y = (obj->y + obj->currImagePtr->y2 < YPIX) ? obj->y : YPIX - obj->currImagePtr->y2 - 10;
+ _vm.adjustScore(-obj->objValue);
+ Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBOk]);
+}
+
// Search for matching verbs in background command list.
// Noun is not required. Return TRUE if match found
// Note that if the background command list has match set TRUE then do not
@@ -615,40 +647,6 @@
}
}
-// Do all things necessary to carry an object
-void Parser::takeObject(object_t *obj) {
- debugC(1, kDebugParser, "takeObject(object_t *obj)");
-
- obj->carriedFl = true;
- if (obj->seqNumb) { // Don't change if no image to display
- obj->cycling = INVISIBLE;
- if (_vm.getPlatform() != Common::kPlatformWindows)
- warning("takeObject : DOS version should use ALMOST_INVISIBLE");
- }
- _vm.adjustScore(obj->objValue);
-
- if (obj->seqNumb > 0) // If object has an image, force walk to dropped
- obj->viewx = -1; // (possibly moved) object next time taken!
- Utils::Box(BOX_ANY, TAKE_TEXT, _vm._arrayNouns[obj->nounIndex][TAKE_NAME]);
-}
-
-// Do all necessary things to drop an object
-void Parser::dropObject(object_t *obj) {
- debugC(1, kDebugParser, "dropObject(object_t *obj)");
-
- obj->carriedFl = false;
- obj->screenIndex = *_vm._screen_p;
- if ((obj->seqNumb > 1) || (obj->seqList[0].imageNbr > 1))
- obj->cycling = CYCLE_FORWARD;
- else
- obj->cycling = NOT_CYCLING;
- obj->x = _vm._hero->x - 1;
- obj->y = _vm._hero->y + _vm._hero->currImagePtr->y2 - 1;
- obj->y = (obj->y + obj->currImagePtr->y2 < YPIX) ? obj->y : YPIX - obj->currImagePtr->y2 - 10;
- _vm.adjustScore(-obj->objValue);
- Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBOk]);
-}
-
// Return TRUE if object being carried by hero
bool Parser::isCarrying(uint16 wordIndex) {
debugC(1, kDebugParser, "isCarrying(%d)", wordIndex);
@@ -892,6 +890,33 @@
return false;
}
+// Do all things necessary to carry an object
+void Parser_v1d::takeObject(object_t *obj) {
+ debugC(1, kDebugParser, "takeObject(object_t *obj)");
+
+ obj->carriedFl = true;
+ if (obj->seqNumb) // Don't change if no image to display
+ obj->cycling = ALMOST_INVISIBLE;
+
+ _vm.adjustScore(obj->objValue);
+
+ Utils::Box(BOX_ANY, TAKE_TEXT, _vm._arrayNouns[obj->nounIndex][TAKE_NAME]);
+}
+
+// Do all necessary things to drop an object
+void Parser_v1d::dropObject(object_t *obj) {
+ debugC(1, kDebugParser, "dropObject(object_t *obj)");
+
+ obj->carriedFl = false;
+ obj->screenIndex = *_vm._screen_p;
+ if (obj->seqNumb) // Don't change if no image to display
+ obj->cycling = NOT_CYCLING;
+ obj->x = _vm._hero->x - 1;
+ obj->y = _vm._hero->y + _vm._hero->currImagePtr->y2 - 1;
+ _vm.adjustScore(-obj->objValue);
+ Utils::Box(BOX_ANY, "%s", _vm._textParser[kTBOk]);
+}
+
// Print text for possible background object. Return TRUE if match found
// If test_noun TRUE, must have a noun given
bool Parser_v1d::isCatchallVerb(bool testNounFl, char *noun, char *verb, objectList_t obj) {
Modified: scummvm/trunk/engines/hugo/parser.h
===================================================================
--- scummvm/trunk/engines/hugo/parser.h 2010-10-10 21:40:25 UTC (rev 53134)
+++ scummvm/trunk/engines/hugo/parser.h 2010-10-10 22:13:38 UTC (rev 53135)
@@ -63,8 +63,6 @@
char *findNoun();
char *findVerb();
- void dropObject(object_t *obj);
- void takeObject(object_t *obj);
void showTakeables();
private:
@@ -89,6 +87,8 @@
bool isGenericVerb(object_t *obj, char *comment);
bool isNear(object_t *obj, char *verb, char *comment);
bool isObjectVerb(object_t *obj, char *comment);
+ void dropObject(object_t *obj);
+ void takeObject(object_t *obj);
};
class Parser_v1d : public Parser {
@@ -99,13 +99,14 @@
void lineHandler();
protected:
- char *findNextNoun(char *noun);
bool isNear(char *verb, char *noun, object_t *obj, char *comment);
bool isGenericVerb(char *word, object_t *obj);
bool isObjectVerb(char *word, object_t *obj);
bool isBackgroundWord(char *noun, char *verb, objectList_t obj);
bool isCatchallVerb(bool testNounFl, char *noun, char *verb, objectList_t obj);
-
+ char *findNextNoun(char *noun);
+ void dropObject(object_t *obj);
+ void takeObject(object_t *obj);
};
class Parser_v2d : public Parser_v1d {
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