[Scummvm-cvs-logs] SF.net SVN: scummvm:[55325] scummvm/trunk/engines/hugo
strangerke at users.sourceforge.net
strangerke at users.sourceforge.net
Wed Jan 19 15:45:19 CET 2011
Revision: 55325
http://scummvm.svn.sourceforge.net/scummvm/?rev=55325&view=rev
Author: strangerke
Date: 2011-01-19 14:45:18 +0000 (Wed, 19 Jan 2011)
Log Message:
-----------
HUGO: Add specific decodeString() for H1 Dos
This fixes act3 logic.
Also move some functions from public to protected.
Modified Paths:
--------------
scummvm/trunk/engines/hugo/schedule.cpp
scummvm/trunk/engines/hugo/schedule.h
scummvm/trunk/engines/hugo/schedule_v1d.cpp
scummvm/trunk/engines/hugo/schedule_v2d.cpp
Modified: scummvm/trunk/engines/hugo/schedule.cpp
===================================================================
--- scummvm/trunk/engines/hugo/schedule.cpp 2011-01-19 09:03:09 UTC (rev 55324)
+++ scummvm/trunk/engines/hugo/schedule.cpp 2011-01-19 14:45:18 UTC (rev 55325)
@@ -98,19 +98,6 @@
}
/**
-* Decode a string
-*/
-void Scheduler::decodeString(char *line) {
- debugC(1, kDebugSchedule, "decodeString(%s)", line);
-
- static const char *cypher = getCypher();
-
- for (uint16 i = 0; i < strlen(line); i++)
- line[i] -= cypher[i % strlen(cypher)];
- debugC(1, kDebugSchedule, "result : %s", line);
-}
-
-/**
* Return system time in ticks. A tick is 1/TICKS_PER_SEC mS
*/
uint32 Scheduler::getWinTicks() {
Modified: scummvm/trunk/engines/hugo/schedule.h
===================================================================
--- scummvm/trunk/engines/hugo/schedule.h 2011-01-19 09:03:09 UTC (rev 55324)
+++ scummvm/trunk/engines/hugo/schedule.h 2011-01-19 14:45:18 UTC (rev 55325)
@@ -53,11 +53,9 @@
Scheduler(HugoEngine *vm);
virtual ~Scheduler();
- virtual uint32 getTicks() = 0;
-
+ virtual void decodeString(char *line) = 0;
virtual void runScheduler() = 0;
- void decodeString(char *line);
void freeActListArr();
void initEventQueue();
void insertActionList(uint16 actIndex);
@@ -85,6 +83,9 @@
act **_actListArr;
virtual const char *getCypher() = 0;
+
+ virtual uint32 getTicks() = 0;
+
virtual void delEventType(action_t actTypeDel) = 0;
virtual void delQueue(event_t *curEvent) = 0;
virtual void promptAction(act *action) = 0;
@@ -103,11 +104,14 @@
Scheduler_v1d(HugoEngine *vm);
~Scheduler_v1d();
+ virtual void decodeString(char *line);
+ virtual void runScheduler();
+
+protected:
virtual const char *getCypher();
+
virtual uint32 getTicks();
- virtual void runScheduler();
-protected:
virtual void delEventType(action_t actTypeDel);
virtual void delQueue(event_t *curEvent);
virtual void promptAction(act *action);
@@ -118,9 +122,11 @@
Scheduler_v2d(HugoEngine *vm);
virtual ~Scheduler_v2d();
- virtual const char *getCypher();
+ void decodeString(char *line);
protected:
+ virtual const char *getCypher();
+
void delEventType(action_t actTypeDel);
void delQueue(event_t *curEvent);
void promptAction(act *action);
@@ -131,6 +137,7 @@
Scheduler_v3d(HugoEngine *vm);
~Scheduler_v3d();
+protected:
const char *getCypher();
};
@@ -139,9 +146,11 @@
Scheduler_v1w(HugoEngine *vm);
~Scheduler_v1w();
+ void runScheduler();
+
+protected:
uint32 getTicks();
- void runScheduler();
};
} // End of namespace Hugo
#endif //HUGO_SCHEDULE_H
Modified: scummvm/trunk/engines/hugo/schedule_v1d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/schedule_v1d.cpp 2011-01-19 09:03:09 UTC (rev 55324)
+++ scummvm/trunk/engines/hugo/schedule_v1d.cpp 2011-01-19 14:45:18 UTC (rev 55325)
@@ -107,18 +107,20 @@
void Scheduler_v1d::promptAction(act *action) {
Utils::Box(BOX_PROMPT, "%s", _vm->_file->fetchString(action->a3.promptIndex));
+
+ warning("STUB: doAction(act3)");
+ // TODO: The answer of the player is not handled currently! Once it'll be read in the messageBox, uncomment this block
+#if 0
char response[256];
- strcpy(response, _vm->_file->fetchString(action->a3.responsePtr[0]));
+ // TODO: Put user input in response
+
+ Utils::strlwr(response);
if (action->a3.encodedFl) {
warning("Encrypted flag set");
decodeString(response);
}
- warning("STUB: doAction(act3), expecting answer %s", response);
-
- // TODO: The answer of the player is not handled currently! Once it'll be read in the messageBox, uncomment this block
-#if 0
- if (strstr (response, action->a3.response))
+ if (strstr(response, _vm->_file->fetchString(action->a3.responsePtr[0]))
insertActionList(action->a3.actPassIndex);
else
insertActionList(action->a3.actFailIndex);
@@ -127,4 +129,19 @@
// HACK: As the answer is not read, currently it's always considered correct
insertActionList(action->a3.actPassIndex);
}
+
+/**
+* Decode a response to a prompt
+*/
+void Scheduler_v1d::decodeString(char *line) {
+ debugC(1, kDebugSchedule, "decodeString(%s)", line);
+
+ static const char *cypher = getCypher();
+
+ for(uint16 i = 0; i < strlen(line); i++) {
+ line[i] = (line[i] + cypher[i]) % '~';
+ if (line[i] < ' ')
+ line[i] += ' ';
+ }
+}
} // End of namespace Hugo
Modified: scummvm/trunk/engines/hugo/schedule_v2d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/schedule_v2d.cpp 2011-01-19 09:03:09 UTC (rev 55324)
+++ scummvm/trunk/engines/hugo/schedule_v2d.cpp 2011-01-19 14:45:18 UTC (rev 55325)
@@ -126,4 +126,17 @@
// HACK: As the answer is not read, currently it's always considered correct
insertActionList(action->a3.actPassIndex);
}
+
+/**
+* Decode a string
+*/
+void Scheduler_v2d::decodeString(char *line) {
+ debugC(1, kDebugSchedule, "decodeString(%s)", line);
+
+ static const char *cypher = getCypher();
+
+ for (uint16 i = 0; i < strlen(line); i++)
+ line[i] -= cypher[i % strlen(cypher)];
+ debugC(1, kDebugSchedule, "result : %s", line);
+}
} // End of namespace Hugo
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