[Scummvm-cvs-logs] CVS: scummvm/scumm script_v2.cpp,1.11,1.12 scumm.h,1.20,1.21 scummvm.cpp,1.22,1.23 string.cpp,1.14,1.15
Pawe? Ko?odziejski
aquadran at users.sourceforge.net
Tue Sep 17 08:34:05 CEST 2002
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.6,1.7 scumm.h,1.19,1.20 scummvm.cpp,1.21,1.22
- Next message: [Scummvm-cvs-logs] CVS: scummvm/gui gui.cpp,1.9,1.10 newgui.cpp,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory usw-pr-cvs1:/tmp/cvs-serv30581
Modified Files:
script_v2.cpp scumm.h scummvm.cpp string.cpp
Log Message:
added support for nonenglish the dig(dialogs, descriptions, warnings), not gui yet
Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- script_v2.cpp 15 Sep 2002 20:16:25 -0000 1.11
+++ script_v2.cpp 17 Sep 2002 15:33:31 -0000 1.12
@@ -2534,17 +2534,19 @@
_actorToPrintStrFor = pop();
_messagePtr = _scriptPointer;
- if (_scriptPointer[0] == '/') {
- char *pointer = strtok((char *)_scriptPointer, "/");
- int bunsize = strlen(pointer) + 2;
+ if ((_gameId == GID_DIG) && (_messagePtr[0] == '/')) {
+ _scriptPointer += strlen((char*)_scriptPointer) + 1;
+ translateText((char*)_messagePtr, (char*)&transText);
+ char *pointer = strtok((char *)_messagePtr, "/");
_sound->playBundleSound(pointer);
- _scriptPointer += bunsize;
- _messagePtr = _scriptPointer;
+ _messagePtr = (byte*)&transText;
+ setStringVars(0);
+ actorTalk();
+ } else {
+ setStringVars(0);
+ actorTalk();
+ _scriptPointer = _messagePtr;
}
-
- setStringVars(0);
- actorTalk();
- _scriptPointer = _messagePtr;
}
void Scumm::o6_talkEgo()
@@ -2552,17 +2554,19 @@
_actorToPrintStrFor = (unsigned char)_vars[VAR_EGO];
_messagePtr = _scriptPointer;
- if (_scriptPointer[0] == '/') {
- char *pointer = strtok((char *)_scriptPointer, "/");
- int bunsize = strlen(pointer) + 2;
+ if ((_gameId == GID_DIG) && (_messagePtr[0] == '/')) {
+ _scriptPointer += strlen((char*)_scriptPointer) + 1;
+ translateText((char*)_messagePtr, (char*)&transText);
+ char *pointer = strtok((char *)_messagePtr, "/");
_sound->playBundleSound(pointer);
- _scriptPointer += bunsize;
- _messagePtr = _scriptPointer;
+ _messagePtr = (byte*)&transText;
+ setStringVars(0);
+ actorTalk();
+ } else {
+ setStringVars(0);
+ actorTalk();
+ _scriptPointer = _messagePtr;
}
-
- setStringVars(0);
- actorTalk();
- _scriptPointer = _messagePtr;
}
void Scumm::o6_dim()
@@ -2743,16 +2747,17 @@
break;
case 16:
if (_gameId == GID_DIG) {
- _msgPtrToAdd = charset._buffer;
+ byte buf[200];
+ _msgPtrToAdd = buf;
+ setStringVars(0);
addMessageToStack(getStringAddressVar(VAR_STRING2DRAW));
- i = 0;
- while (charset._buffer[i] != 0) {
- if (charset._buffer[i] == '/') {
- charset._bufPos = i + 1;
- }
- i++;
+ if (strncmp("/SYSTEM.007/ /", (char*)&buf, 14) == 0) {
+ translateText((char*)&buf + 13, (char*)&charset._buffer);
+ description();
+ } else if (strncmp("/SYSTEM.007/ ", (char*)&buf, 13) == 0) {
+ strcpy((char*)&charset._buffer, (char*)&buf + 13);
+ description();
}
- description();
}
break;
case 17:
@@ -3076,30 +3081,43 @@
case 75:{
_messagePtr = _scriptPointer;
- if (_scriptPointer[0] == '/') {
- char *pointer = strtok((char *)_scriptPointer, "/");
- int bunsize = strlen(pointer) + 2;
- _sound->playBundleSound(pointer);
- _scriptPointer += bunsize;
- _messagePtr = _scriptPointer;
- }
-
- switch (m) {
- case 0:
- actorTalk();
- break;
- case 1:
- drawString(1);
- break;
- case 2:
- unkMessage1();
- break;
- case 3:
- unkMessage2();
- break;
+ if ((_messagePtr[0] == '/') && (_gameId == GID_DIG)) {
+ translateText((char*)_messagePtr, (char*)&transText);
+ _messagePtr = (byte*)&transText;
+ _scriptPointer += strlen((char*)_scriptPointer) + 1;
+ switch (m) {
+ case 0:
+ actorTalk();
+ break;
+ case 1:
+ drawString(1);
+ break;
+ case 2:
+ unkMessage1();
+ break;
+ case 3:
+ unkMessage2();
+ break;
+ }
+ return;
+ } else {
+ switch (m) {
+ case 0:
+ actorTalk();
+ break;
+ case 1:
+ drawString(1);
+ break;
+ case 2:
+ unkMessage1();
+ break;
+ case 3:
+ unkMessage2();
+ break;
+ }
+ _scriptPointer = _messagePtr;
+ return;
}
- _scriptPointer = _messagePtr;
- return;
}
case 0xFE:
setStringVars(m);
Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- scumm.h 17 Sep 2002 12:52:53 -0000 1.20
+++ scumm.h 17 Sep 2002 15:33:31 -0000 1.21
@@ -933,6 +933,7 @@
char *_languageBuffer;
void loadLanguageBundle();
void translateText(char * text, char * trans_buff);
+ char transText[200];
bool checkFixedDisk();
int _cdrom;
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- scummvm.cpp 17 Sep 2002 12:52:53 -0000 1.22
+++ scummvm.cpp 17 Sep 2002 15:33:31 -0000 1.23
@@ -150,6 +150,7 @@
_saveLoadFlag = 2;
_saveLoadCompatible = false;
}
+ loadLanguageBundle();
}
Scumm::~Scumm ()
@@ -300,7 +301,6 @@
#endif
_timer->installProcedure(&autosave, 5 * 60 * 1000);
- loadLanguageBundle();
}
Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/string.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- string.cpp 17 Sep 2002 09:18:47 -0000 1.14
+++ string.cpp 17 Sep 2002 15:33:31 -0000 1.15
@@ -474,7 +474,8 @@
int c;
byte *buffer;
- buffer = charset._buffer + charset._bufPos;
+ buffer = charset._buffer;
+ charset._bufPos = 0;
string[0].ypos = camera._cur.y + 88;
string[0].xpos = (_realWidth / 2) - (charset.getStringWidth(0, buffer, 0) >> 1);
if (string[0].xpos < 0)
@@ -1096,7 +1097,7 @@
}
void Scumm::translateText(char * text, char * trans_buff) {
- if ((_existLanguageFile == true) && (text[0] == '/')) {
+ if ((_existLanguageFile == true) && (text[0] == '/') && (text[1] != ' ')) {
char name[20], tmp[20], tmp2[20], num_s[20];
int32 num, l, j, k, r, pos;
char enc;
@@ -1176,10 +1177,14 @@
}
if (text[0] == '/') {
- char *pointer = strtok((char*)text, "/");
- int offset = strlen(pointer) + 2;
- strcpy (trans_buff, text + offset);
+ char *pointer = strchr((char*)text + 1, '/');
+ if (pointer != NULL)
+ strcpy(trans_buff, pointer + 1);
+ else
+ strcpy(trans_buff, "");
+
+ return;
}
- strcpy (trans_buff, text);
+ strcpy(trans_buff, text);
}
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.6,1.7 scumm.h,1.19,1.20 scummvm.cpp,1.21,1.22
- Next message: [Scummvm-cvs-logs] CVS: scummvm/gui gui.cpp,1.9,1.10 newgui.cpp,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list