diff options
author | Eugene Sandulenko | 2004-03-01 06:23:25 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2004-03-01 06:23:25 +0000 |
commit | d7f9be12fea17181e38486e71caf497adadcdc76 (patch) | |
tree | 39f949dcf8b6f823a44c37a9be1c4748c9a0a048 /scumm/script_v7he.cpp | |
parent | 9e894f6bf39aaa9780fd3f27d68e0ce1b5886df8 (diff) | |
download | scummvm-rg350-d7f9be12fea17181e38486e71caf497adadcdc76.tar.gz scummvm-rg350-d7f9be12fea17181e38486e71caf497adadcdc76.tar.bz2 scummvm-rg350-d7f9be12fea17181e38486e71caf497adadcdc76.zip |
Move decodeParseString to script_v7he.cpp where it really belongs to.
svn-id: r13109
Diffstat (limited to 'scumm/script_v7he.cpp')
-rw-r--r-- | scumm/script_v7he.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp index e83e8d67f0..e59edef276 100644 --- a/scumm/script_v7he.cpp +++ b/scumm/script_v7he.cpp @@ -406,4 +406,90 @@ void ScummEngine_v7he::o7_objectY() { push(_objs[objnum].y_pos); } +void ScummEngine_v7he::decodeParseString(int m, int n) { + byte b; + int c; + + b = fetchScriptByte(); + + switch (b) { + case 65: // SO_AT + _string[m].ypos = pop(); + _string[m].xpos = pop(); + _string[m].overhead = false; + break; + case 66: // SO_COLOR + _string[m].color = pop(); + break; + case 67: // SO_CLIPPED + _string[m].right = pop(); + break; + case 69: // SO_CENTER + _string[m].center = true; + _string[m].overhead = false; + break; + case 71: // SO_LEFT + _string[m].center = false; + _string[m].overhead = false; + break; + case 72: // SO_OVERHEAD + _string[m].overhead = true; + _string[m].no_talk_anim = false; + break; + case 73: // SO_SAY_VOICE + error("decodeParseString: case 73"); + break; + case 74: // SO_MUMBLE + _string[m].no_talk_anim = true; + break; + case 75: // SO_TEXTSTRING + _messagePtr = translateTextAndPlaySpeech(_scriptPointer); + _scriptPointer += resStrLen(_scriptPointer)+ 1; + + switch (m) { + case 0: + actorTalk(); + break; + case 1: + drawString(1); + break; + case 2: + unkMessage1(); + break; + case 3: + unkMessage2(); + break; + } + return; + case 0xF9: + c = pop(); + if (c == 1) { + _string[m].color = pop(); + } else { + push(c); + int args[16]; + getStackList(args, ARRAYSIZE(args)); + } + warning("decodeParseString case 0xF9 stub"); + return; + case 0xFE: + setStringVars(m); + if (n) + _actorToPrintStrFor = pop(); + return; + case 0xFF: + _string[m].t_xpos = _string[m].xpos; + _string[m].t_ypos = _string[m].ypos; + _string[m].t_center = _string[m].center; + _string[m].t_overhead = _string[m].overhead; + _string[m].t_no_talk_anim = _string[m].no_talk_anim; + _string[m].t_right = _string[m].right; + _string[m].t_color = _string[m].color; + _string[m].t_charset = _string[m].charset; + return; + default: + error("decodeParseString: default case 0x%x", b); + } +} + } // End of namespace Scumm |