aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/monitor.cpp
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2011-12-26 21:56:40 +0100
committerWillem Jan Palenstijn2011-12-26 21:58:17 +0100
commit2cd0b29de182be4f01caddaa4e66582ab780bcd4 (patch)
tree92c49c84149e9522946497f291745e237a47a567 /engines/dreamweb/monitor.cpp
parent2ec65882e885730e05b074063ce71caaba7cd2fc (diff)
downloadscummvm-rg350-2cd0b29de182be4f01caddaa4e66582ab780bcd4.tar.gz
scummvm-rg350-2cd0b29de182be4f01caddaa4e66582ab780bcd4.tar.bz2
scummvm-rg350-2cd0b29de182be4f01caddaa4e66582ab780bcd4.zip
DREAMWEB: Convert searchForString
Diffstat (limited to 'engines/dreamweb/monitor.cpp')
-rw-r--r--engines/dreamweb/monitor.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/engines/dreamweb/monitor.cpp b/engines/dreamweb/monitor.cpp
index db3401e078..f1b870d9c0 100644
--- a/engines/dreamweb/monitor.cpp
+++ b/engines/dreamweb/monitor.cpp
@@ -662,5 +662,45 @@ const char *DreamBase::parser() {
return output;
}
+void DreamGenContext::searchForString() {
+ const char *topic = (const char*)es.ptr(di, 0);
+ const char *text = (const char*)ds.ptr(si, 0);
+ const char *found = searchForString(topic, text);
+ if (!found) {
+ al = 1;
+ } else {
+ es = ds;
+ bx = si + (found - text);
+ si = bx;
+ al = 0;
+ }
+}
+
+// input: es:di : topic
+// ds:si : monitor text
+const char *DreamBase::searchForString(const char *topic, const char *text) {
+ char delim = *topic;
+
+ while (true) {
+ const char *s = topic;
+ int delimCount = 0;
+
+ char c;
+ do {
+ c = makeCaps(*text++);
+
+ if (c == '*' || (delim == '=' && c == 34))
+ return 0;
+
+ if (c == delim) {
+ delimCount++;
+ if (delimCount == 2)
+ return text;
+ }
+
+ } while (c == *s++);
+ }
+}
+
} // End of namespace DreamGen