refactor use of _messagePtr -> instead of using it as an implicit parameter for various methods, pass its value explicitly to those methods. Note: this *should* be just a code transformation, with no change to the program logic - unless I messed up once again <sigh>
svn-id: r13298
This commit is contained in:
parent
759c05f936
commit
ba5aa37dcc
9 changed files with 79 additions and 87 deletions
|
@ -1144,10 +1144,10 @@ int ScummEngine::getActorFromPos(int x, int y) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine::actorTalk() {
|
void ScummEngine::actorTalk(const byte *msg) {
|
||||||
Actor *a;
|
Actor *a;
|
||||||
|
|
||||||
_messagePtr = addMessageToStack(_messagePtr, _charsetBuffer, sizeof(_charsetBuffer));
|
_messagePtr = addMessageToStack(msg, _charsetBuffer, sizeof(_charsetBuffer));
|
||||||
|
|
||||||
// FIXME: Workaround for bugs #770039 and #770049
|
// FIXME: Workaround for bugs #770039 and #770049
|
||||||
if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
|
if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
|
||||||
|
|
|
@ -428,8 +428,7 @@ void ScummEngine_v2::decodeParseString() {
|
||||||
_string[textSlot].color = v1_mm_actor_speech_color[_actorToPrintStrFor];
|
_string[textSlot].color = v1_mm_actor_speech_color[_actorToPrintStrFor];
|
||||||
}
|
}
|
||||||
|
|
||||||
_messagePtr = buffer;
|
actorTalk(buffer);
|
||||||
actorTalk();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScummEngine_v2::readVar(uint var) {
|
int ScummEngine_v2::readVar(uint var) {
|
||||||
|
@ -1055,15 +1054,13 @@ void ScummEngine_v2::o2_drawSentence() {
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
_messagePtr = (byte*)sentence;
|
|
||||||
|
|
||||||
sentenceline.top = virtscr[2].topline;
|
sentenceline.top = virtscr[2].topline;
|
||||||
sentenceline.bottom = virtscr[2].topline + 8;
|
sentenceline.bottom = virtscr[2].topline + 8;
|
||||||
sentenceline.left = 0;
|
sentenceline.left = 0;
|
||||||
sentenceline.right = 319;
|
sentenceline.right = 319;
|
||||||
restoreBG(sentenceline);
|
restoreBG(sentenceline);
|
||||||
|
|
||||||
drawString(2);
|
drawString(2, (byte*)sentence);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v2::o2_ifClassOfIs() {
|
void ScummEngine_v2::o2_ifClassOfIs() {
|
||||||
|
|
|
@ -2702,6 +2702,7 @@ int ScummEngine_v5::getWordVararg(int *ptr) {
|
||||||
|
|
||||||
void ScummEngine_v5::decodeParseString() {
|
void ScummEngine_v5::decodeParseString() {
|
||||||
int textSlot;
|
int textSlot;
|
||||||
|
const byte *msg;
|
||||||
|
|
||||||
switch (_actorToPrintStrFor) {
|
switch (_actorToPrintStrFor) {
|
||||||
case 252:
|
case 252:
|
||||||
|
@ -2784,19 +2785,21 @@ void ScummEngine_v5::decodeParseString() {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 15: // SO_TEXTSTRING
|
case 15: // SO_TEXTSTRING
|
||||||
_messagePtr = _scriptPointer;
|
msg = _scriptPointer;
|
||||||
|
_scriptPointer += resStrLen(_scriptPointer)+ 1;
|
||||||
|
|
||||||
switch (textSlot) {
|
switch (textSlot) {
|
||||||
case 0:
|
case 0:
|
||||||
actorTalk();
|
actorTalk(msg);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
drawString(1);
|
drawString(1, msg);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
unkMessage1();
|
unkMessage1(msg);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
unkMessage2();
|
unkMessage2(msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2812,8 +2815,6 @@ void ScummEngine_v5::decodeParseString() {
|
||||||
_string[textSlot].t_ypos = _string[textSlot].ypos;
|
_string[textSlot].t_ypos = _string[textSlot].ypos;
|
||||||
_string[textSlot].t_color = _string[textSlot].color;
|
_string[textSlot].t_color = _string[textSlot].color;
|
||||||
}
|
}
|
||||||
|
|
||||||
_scriptPointer = _messagePtr;
|
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
warning("ScummEngine_v5::decodeParseString: Unhandled case %d", _opcode & 0xF);
|
warning("ScummEngine_v5::decodeParseString: Unhandled case %d", _opcode & 0xF);
|
||||||
|
|
|
@ -2319,11 +2319,11 @@ void ScummEngine_v6::o6_printEgo() {
|
||||||
void ScummEngine_v6::o6_talkActor() {
|
void ScummEngine_v6::o6_talkActor() {
|
||||||
_actorToPrintStrFor = pop();
|
_actorToPrintStrFor = pop();
|
||||||
|
|
||||||
_messagePtr = translateTextAndPlaySpeech(_scriptPointer);
|
const byte *msg = translateTextAndPlaySpeech(_scriptPointer);
|
||||||
_scriptPointer += resStrLen(_scriptPointer) + 1;
|
_scriptPointer += resStrLen(_scriptPointer) + 1;
|
||||||
|
|
||||||
setStringVars(0);
|
setStringVars(0);
|
||||||
actorTalk();
|
actorTalk(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v6::o6_talkEgo() {
|
void ScummEngine_v6::o6_talkEgo() {
|
||||||
|
@ -2507,9 +2507,8 @@ void ScummEngine_v6::o6_kernelSetFunctions() {
|
||||||
case 17:{
|
case 17:{
|
||||||
const byte *message;
|
const byte *message;
|
||||||
byte buf_input[300], buf_output[300];
|
byte buf_input[300], buf_output[300];
|
||||||
_messagePtr = getStringAddressVar(VAR_STRING2DRAW);
|
|
||||||
message = buf_input;
|
message = buf_input;
|
||||||
addMessageToStack(_messagePtr, buf_input, sizeof(buf_input));
|
addMessageToStack(getStringAddressVar(VAR_STRING2DRAW), buf_input, sizeof(buf_input));
|
||||||
if ((_gameId == GID_DIG) && !(_features & GF_DEMO)) {
|
if ((_gameId == GID_DIG) && !(_features & GF_DEMO)) {
|
||||||
byte buf_trans[300];
|
byte buf_trans[300];
|
||||||
char *t_ptr = (char *)buf_input;
|
char *t_ptr = (char *)buf_input;
|
||||||
|
@ -3115,6 +3114,7 @@ void ScummEngine_v6::o6_setBoxSet() {
|
||||||
|
|
||||||
void ScummEngine_v6::decodeParseString(int m, int n) {
|
void ScummEngine_v6::decodeParseString(int m, int n) {
|
||||||
byte b;
|
byte b;
|
||||||
|
const byte *msg;
|
||||||
|
|
||||||
b = fetchScriptByte();
|
b = fetchScriptByte();
|
||||||
|
|
||||||
|
@ -3149,29 +3149,30 @@ void ScummEngine_v6::decodeParseString(int m, int n) {
|
||||||
_string[m].no_talk_anim = true;
|
_string[m].no_talk_anim = true;
|
||||||
break;
|
break;
|
||||||
case 75: // SO_TEXTSTRING
|
case 75: // SO_TEXTSTRING
|
||||||
_messagePtr = translateTextAndPlaySpeech(_scriptPointer);
|
msg = translateTextAndPlaySpeech(_scriptPointer);
|
||||||
_scriptPointer += resStrLen(_scriptPointer)+ 1;
|
_scriptPointer += resStrLen(_scriptPointer) + 1;
|
||||||
|
|
||||||
switch (m) {
|
switch (m) {
|
||||||
case 0:
|
case 0:
|
||||||
actorTalk();
|
actorTalk(msg);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
drawString(1);
|
drawString(1, msg);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
unkMessage1();
|
unkMessage1(msg);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
unkMessage2();
|
unkMessage2(msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
|
break;
|
||||||
case 0xFE:
|
case 0xFE:
|
||||||
setStringVars(m);
|
setStringVars(m);
|
||||||
if (n)
|
if (n)
|
||||||
_actorToPrintStrFor = pop();
|
_actorToPrintStrFor = pop();
|
||||||
return;
|
break;
|
||||||
case 0xFF:
|
case 0xFF:
|
||||||
_string[m].t_xpos = _string[m].xpos;
|
_string[m].t_xpos = _string[m].xpos;
|
||||||
_string[m].t_ypos = _string[m].ypos;
|
_string[m].t_ypos = _string[m].ypos;
|
||||||
|
@ -3181,7 +3182,7 @@ void ScummEngine_v6::decodeParseString(int m, int n) {
|
||||||
_string[m].t_right = _string[m].right;
|
_string[m].t_right = _string[m].right;
|
||||||
_string[m].t_color = _string[m].color;
|
_string[m].t_color = _string[m].color;
|
||||||
_string[m].t_charset = _string[m].charset;
|
_string[m].t_charset = _string[m].charset;
|
||||||
return;
|
break;
|
||||||
default:
|
default:
|
||||||
error("decodeParseString: default case 0x%x", b);
|
error("decodeParseString: default case 0x%x", b);
|
||||||
}
|
}
|
||||||
|
|
|
@ -955,8 +955,7 @@ void ScummEngine_v6he::o6_openFile() {
|
||||||
int mode, len, slot, l, r;
|
int mode, len, slot, l, r;
|
||||||
byte filename[100];
|
byte filename[100];
|
||||||
|
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename, sizeof(filename));
|
||||||
addMessageToStack(_messagePtr, filename, sizeof(filename));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
@ -1002,8 +1001,7 @@ void ScummEngine_v6he::o6_deleteFile() {
|
||||||
int len, r;
|
int len, r;
|
||||||
byte filename[100];
|
byte filename[100];
|
||||||
|
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename, sizeof(filename));
|
||||||
addMessageToStack(_messagePtr, filename, sizeof(filename));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
@ -1020,8 +1018,7 @@ void ScummEngine_v6he::o6_rename() {
|
||||||
int len, r1, r2;
|
int len, r1, r2;
|
||||||
byte filename[100],filename2[100];
|
byte filename[100],filename2[100];
|
||||||
|
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename, sizeof(filename));
|
||||||
addMessageToStack(_messagePtr, filename, sizeof(filename));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
@ -1031,8 +1028,7 @@ void ScummEngine_v6he::o6_rename() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename2, sizeof(filename2));
|
||||||
addMessageToStack(_messagePtr, filename2, sizeof(filename2));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
@ -1340,22 +1336,19 @@ void ScummEngine_v6he::o6_unknownF4() {
|
||||||
|
|
||||||
switch (b) {
|
switch (b) {
|
||||||
case 1:
|
case 1:
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename1, sizeof(filename1));
|
||||||
addMessageToStack(_messagePtr, filename1, sizeof(filename1));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
debug(1, "o6_unknownF4(%d, %d, \"%s\")", a, b, _messagePtr);
|
debug(1, "o6_unknownF4(%d, %d, \"%s\")", a, b, filename1);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename1, sizeof(filename1));
|
||||||
addMessageToStack(_messagePtr, filename1, sizeof(filename1));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename2, sizeof(filename2));
|
||||||
addMessageToStack(_messagePtr, filename2, sizeof(filename2));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
@ -1371,8 +1364,7 @@ void ScummEngine_v6he::o6_unknownF9() {
|
||||||
int len, r;
|
int len, r;
|
||||||
byte filename[100];
|
byte filename[100];
|
||||||
|
|
||||||
_messagePtr = _scriptPointer;
|
addMessageToStack(_scriptPointer, filename, sizeof(filename));
|
||||||
addMessageToStack(_messagePtr, filename, sizeof(filename));
|
|
||||||
|
|
||||||
len = resStrLen(_scriptPointer);
|
len = resStrLen(_scriptPointer);
|
||||||
_scriptPointer += len + 1;
|
_scriptPointer += len + 1;
|
||||||
|
@ -1413,6 +1405,7 @@ void ScummEngine_v6he::o6_unknownFB() {
|
||||||
void ScummEngine_v6he::decodeParseString(int m, int n) {
|
void ScummEngine_v6he::decodeParseString(int m, int n) {
|
||||||
byte b;
|
byte b;
|
||||||
int c;
|
int c;
|
||||||
|
const byte *msg;
|
||||||
|
|
||||||
b = fetchScriptByte();
|
b = fetchScriptByte();
|
||||||
|
|
||||||
|
@ -1447,24 +1440,25 @@ void ScummEngine_v6he::decodeParseString(int m, int n) {
|
||||||
_string[m].no_talk_anim = true;
|
_string[m].no_talk_anim = true;
|
||||||
break;
|
break;
|
||||||
case 75: // SO_TEXTSTRING
|
case 75: // SO_TEXTSTRING
|
||||||
_messagePtr = translateTextAndPlaySpeech(_scriptPointer);
|
msg = translateTextAndPlaySpeech(_scriptPointer);
|
||||||
_scriptPointer += resStrLen(_scriptPointer)+ 1;
|
_scriptPointer += resStrLen(_scriptPointer) + 1;
|
||||||
|
|
||||||
switch (m) {
|
switch (m) {
|
||||||
case 0:
|
case 0:
|
||||||
actorTalk();
|
actorTalk(msg);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
drawString(1);
|
drawString(1, msg);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
unkMessage1();
|
unkMessage1(msg);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
unkMessage2();
|
unkMessage2(msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
|
break;
|
||||||
case 0xF9:
|
case 0xF9:
|
||||||
c = pop();
|
c = pop();
|
||||||
if (c == 1) {
|
if (c == 1) {
|
||||||
|
@ -1475,12 +1469,12 @@ void ScummEngine_v6he::decodeParseString(int m, int n) {
|
||||||
getStackList(args, ARRAYSIZE(args));
|
getStackList(args, ARRAYSIZE(args));
|
||||||
}
|
}
|
||||||
warning("decodeParseString case 0xF9 stub");
|
warning("decodeParseString case 0xF9 stub");
|
||||||
return;
|
break;
|
||||||
case 0xFE:
|
case 0xFE:
|
||||||
setStringVars(m);
|
setStringVars(m);
|
||||||
if (n)
|
if (n)
|
||||||
_actorToPrintStrFor = pop();
|
_actorToPrintStrFor = pop();
|
||||||
return;
|
break;
|
||||||
case 0xFF:
|
case 0xFF:
|
||||||
_string[m].t_xpos = _string[m].xpos;
|
_string[m].t_xpos = _string[m].xpos;
|
||||||
_string[m].t_ypos = _string[m].ypos;
|
_string[m].t_ypos = _string[m].ypos;
|
||||||
|
@ -1490,7 +1484,7 @@ void ScummEngine_v6he::decodeParseString(int m, int n) {
|
||||||
_string[m].t_right = _string[m].right;
|
_string[m].t_right = _string[m].right;
|
||||||
_string[m].t_color = _string[m].color;
|
_string[m].t_color = _string[m].color;
|
||||||
_string[m].t_charset = _string[m].charset;
|
_string[m].t_charset = _string[m].charset;
|
||||||
return;
|
break;
|
||||||
default:
|
default:
|
||||||
error("decodeParseString: default case 0x%x", b);
|
error("decodeParseString: default case 0x%x", b);
|
||||||
}
|
}
|
||||||
|
|
|
@ -467,6 +467,7 @@ void ScummEngine_v8::writeVar(uint var, int value) {
|
||||||
|
|
||||||
void ScummEngine_v8::decodeParseString(int m, int n) {
|
void ScummEngine_v8::decodeParseString(int m, int n) {
|
||||||
byte b;
|
byte b;
|
||||||
|
const byte *msg;
|
||||||
|
|
||||||
b = fetchScriptByte();
|
b = fetchScriptByte();
|
||||||
|
|
||||||
|
@ -513,29 +514,30 @@ void ScummEngine_v8::decodeParseString(int m, int n) {
|
||||||
_string[m].no_talk_anim = true;
|
_string[m].no_talk_anim = true;
|
||||||
break;
|
break;
|
||||||
case 0xD1: // SO_PRINT_STRING
|
case 0xD1: // SO_PRINT_STRING
|
||||||
_messagePtr = translateTextAndPlaySpeech(_scriptPointer);
|
msg = translateTextAndPlaySpeech(_scriptPointer);
|
||||||
_scriptPointer += resStrLen(_scriptPointer)+ 1;
|
_scriptPointer += resStrLen(_scriptPointer) + 1;
|
||||||
|
|
||||||
switch (m) {
|
switch (m) {
|
||||||
case 0:
|
case 0:
|
||||||
actorTalk();
|
actorTalk(msg);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
drawString(1);
|
drawString(1, msg);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
unkMessage1();
|
unkMessage1(msg);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
unkMessage2();
|
unkMessage2(msg);
|
||||||
break;
|
break;
|
||||||
case 5:{
|
case 5:{
|
||||||
byte buffer[256];
|
byte buffer[256];
|
||||||
addMessageToStack(_messagePtr, buffer, sizeof(buffer));
|
addMessageToStack(msg, buffer, sizeof(buffer));
|
||||||
enqueueText(buffer, _string[m].xpos, _string[m].ypos, _string[m].color, _string[m].charset, _string[m].center);
|
enqueueText(buffer, _string[m].xpos, _string[m].ypos, _string[m].color, _string[m].charset, _string[m].center);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 0xD2: // SO_PRINT_WRAP Set print wordwrap
|
case 0xD2: // SO_PRINT_WRAP Set print wordwrap
|
||||||
//warning("decodeParseString: SO_PRINT_WRAP");
|
//warning("decodeParseString: SO_PRINT_WRAP");
|
||||||
|
|
|
@ -775,7 +775,7 @@ public:
|
||||||
SentenceTab _sentence[NUM_SENTENCE];
|
SentenceTab _sentence[NUM_SENTENCE];
|
||||||
StringTab _string[6];
|
StringTab _string[6];
|
||||||
int16 _talkDelay;
|
int16 _talkDelay;
|
||||||
void actorTalk();
|
void actorTalk(const byte *msg);
|
||||||
void stopTalk();
|
void stopTalk();
|
||||||
int talkingActor(); // Wrapper around VAR_TALK_ACTOR for V1 Maniac
|
int talkingActor(); // Wrapper around VAR_TALK_ACTOR for V1 Maniac
|
||||||
void talkingActor(int variable);
|
void talkingActor(int variable);
|
||||||
|
@ -1063,14 +1063,14 @@ protected:
|
||||||
void initCharset(int charset);
|
void initCharset(int charset);
|
||||||
|
|
||||||
void CHARSET_1();
|
void CHARSET_1();
|
||||||
void drawString(int a);
|
void drawString(int a, const byte *msg);
|
||||||
const byte *addMessageToStack(const byte *msg, byte *dstBuffer, int dstBufferSize);
|
const byte *addMessageToStack(const byte *msg, byte *dstBuffer, int dstBufferSize);
|
||||||
void addIntToStack(int var);
|
void addIntToStack(int var);
|
||||||
void addVerbToStack(int var);
|
void addVerbToStack(int var);
|
||||||
void addNameToStack(int var);
|
void addNameToStack(int var);
|
||||||
void addStringToStack(int var);
|
void addStringToStack(int var);
|
||||||
void unkMessage1();
|
void unkMessage1(const byte *msg);
|
||||||
void unkMessage2();
|
void unkMessage2(const byte *msg);
|
||||||
public:
|
public:
|
||||||
void clearMsgQueue(); // Used by Actor::putActor
|
void clearMsgQueue(); // Used by Actor::putActor
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -46,9 +46,9 @@ void ScummEngine::setStringVars(int slot) {
|
||||||
st->charset = st->t_charset;
|
st->charset = st->t_charset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine::unkMessage1() {
|
void ScummEngine::unkMessage1(const byte *msg) {
|
||||||
byte buffer[100];
|
byte buffer[100];
|
||||||
_messagePtr = addMessageToStack(_messagePtr, buffer, sizeof(buffer));
|
_messagePtr = addMessageToStack(msg, buffer, sizeof(buffer));
|
||||||
|
|
||||||
// if ((_gameId == GID_CMI) && _debugMode) { // In CMI, unkMessage1 is used for printDebug output
|
// if ((_gameId == GID_CMI) && _debugMode) { // In CMI, unkMessage1 is used for printDebug output
|
||||||
if ((buffer[0] != 0xFF) && _debugMode) {
|
if ((buffer[0] != 0xFF) && _debugMode) {
|
||||||
|
@ -71,13 +71,13 @@ void ScummEngine::unkMessage1() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine::unkMessage2() {
|
void ScummEngine::unkMessage2(const byte *msg) {
|
||||||
// Original COMI used different code at this point.
|
// Original COMI used different code at this point.
|
||||||
// Seemed to use blastText for the messages
|
// Seemed to use blastText for the messages
|
||||||
byte buf[100];
|
byte buf[100];
|
||||||
const byte *tmp;
|
const byte *tmp;
|
||||||
|
|
||||||
tmp = _messagePtr = addMessageToStack(_messagePtr, buf, sizeof(buf));
|
tmp = _messagePtr = addMessageToStack(msg, buf, sizeof(buf));
|
||||||
|
|
||||||
if (_string[3].color == 0)
|
if (_string[3].color == 0)
|
||||||
_string[3].color = 4;
|
_string[3].color = 4;
|
||||||
|
@ -339,14 +339,14 @@ void ScummEngine::CHARSET_1() {
|
||||||
_charset->_mask = _charset->_str;
|
_charset->_mask = _charset->_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine::drawString(int a) {
|
void ScummEngine::drawString(int a, const byte *msg) {
|
||||||
byte buf[256];
|
byte buf[256];
|
||||||
byte *space;
|
byte *space;
|
||||||
int i, c;
|
int i, c;
|
||||||
byte fontHeight = 0;
|
byte fontHeight = 0;
|
||||||
uint color;
|
uint color;
|
||||||
|
|
||||||
_messagePtr = addMessageToStack(_messagePtr, buf, sizeof(buf));
|
_messagePtr = addMessageToStack(msg, buf, sizeof(buf));
|
||||||
|
|
||||||
_charset->_top = _string[a].ypos + _screenTop;
|
_charset->_top = _string[a].ypos + _screenTop;
|
||||||
_charset->_startLeft = _charset->_left = _string[a].xpos;
|
_charset->_startLeft = _charset->_left = _string[a].xpos;
|
||||||
|
|
|
@ -228,18 +228,18 @@ void ScummEngine::redrawV2Inventory() {
|
||||||
_string[1].xpos = v2_mouseover_boxes[i].rect.left;
|
_string[1].xpos = v2_mouseover_boxes[i].rect.left;
|
||||||
|
|
||||||
_string[1].color = v2_mouseover_boxes[i].color;
|
_string[1].color = v2_mouseover_boxes[i].color;
|
||||||
_messagePtr = getObjOrActorName(obj);
|
|
||||||
assert(_messagePtr);
|
const byte *tmp = getObjOrActorName(obj);
|
||||||
|
assert(tmp);
|
||||||
|
|
||||||
// Prevent inventory entries from overflowing by truncating the text
|
// Prevent inventory entries from overflowing by truncating the text
|
||||||
// after 144/8 = 18 chars
|
// after 144/8 = 18 chars
|
||||||
byte msg[18 + 1];
|
byte msg[18 + 1];
|
||||||
msg[18] = 0;
|
msg[18] = 0;
|
||||||
strncpy((char *)msg, (const char *)_messagePtr, 18);
|
strncpy((char *)msg, (const char *)tmp, 18);
|
||||||
_messagePtr = msg;
|
|
||||||
|
|
||||||
// Draw it
|
// Draw it
|
||||||
drawString(1);
|
drawString(1, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,8 +248,7 @@ void ScummEngine::redrawV2Inventory() {
|
||||||
_string[1].xpos = v2_mouseover_boxes[kInventoryUpArrow].rect.left;
|
_string[1].xpos = v2_mouseover_boxes[kInventoryUpArrow].rect.left;
|
||||||
_string[1].ypos = v2_mouseover_boxes[kInventoryUpArrow].rect.top + vs->topline;
|
_string[1].ypos = v2_mouseover_boxes[kInventoryUpArrow].rect.top + vs->topline;
|
||||||
_string[1].color = v2_mouseover_boxes[kInventoryUpArrow].color;
|
_string[1].color = v2_mouseover_boxes[kInventoryUpArrow].color;
|
||||||
_messagePtr = (const byte *)" \1\2";
|
drawString(1, (const byte *)" \1\2");
|
||||||
drawString(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If necessary, draw "down" arrow
|
// If necessary, draw "down" arrow
|
||||||
|
@ -257,8 +256,7 @@ void ScummEngine::redrawV2Inventory() {
|
||||||
_string[1].xpos = v2_mouseover_boxes[kInventoryDownArrow].rect.left;
|
_string[1].xpos = v2_mouseover_boxes[kInventoryDownArrow].rect.left;
|
||||||
_string[1].ypos = v2_mouseover_boxes[kInventoryDownArrow].rect.top + vs->topline;
|
_string[1].ypos = v2_mouseover_boxes[kInventoryDownArrow].rect.top + vs->topline;
|
||||||
_string[1].color = v2_mouseover_boxes[kInventoryDownArrow].color;
|
_string[1].color = v2_mouseover_boxes[kInventoryDownArrow].color;
|
||||||
_messagePtr = (const byte *)" \3\4";
|
drawString(1, (const byte *)" \3\4");
|
||||||
drawString(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -397,19 +395,18 @@ void ScummEngine::drawVerb(int verb, int mode) {
|
||||||
verb += _inventoryOffset;
|
verb += _inventoryOffset;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_messagePtr = getResourceAddress(rtVerb, verb);
|
const byte *msg = getResourceAddress(rtVerb, verb);
|
||||||
if (!_messagePtr)
|
if (!msg)
|
||||||
return;
|
return;
|
||||||
assert(_messagePtr);
|
|
||||||
|
|
||||||
if ((_version == 8) && (_messagePtr[0] == '/')) {
|
if ((_version == 8) && (msg[0] == '/')) {
|
||||||
translateText(_messagePtr, _transText);
|
translateText(msg, _transText);
|
||||||
_messagePtr = _transText;
|
msg = _transText;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp = _charset->_center;
|
tmp = _charset->_center;
|
||||||
_charset->_center = 0;
|
_charset->_center = 0;
|
||||||
drawString(4);
|
drawString(4, msg);
|
||||||
_charset->_center = tmp;
|
_charset->_center = tmp;
|
||||||
|
|
||||||
vs->curRect.right = _charset->_str.right;
|
vs->curRect.right = _charset->_str.right;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue