[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.347,1.348 intern.h,2.468,2.469 scumm.cpp,1.471,1.472 scumm.h,1.608,1.609 string.cpp,1.281,1.282
Max Horn
fingolfin at users.sourceforge.net
Thu Apr 28 15:20:42 CEST 2005
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm util.cpp,2.8,2.9 util.h,2.8,2.9
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.439,2.440 gfx.h,1.116,1.117 intern.h,2.469,2.470 object.cpp,1.235,1.236 room.cpp,1.10,1.11 scumm.cpp,1.472,1.473 scumm.h,1.609,1.610 string.cpp,1.282,1.283
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22053
Modified Files:
actor.cpp intern.h scumm.cpp scumm.h string.cpp
Log Message:
Moved bundle based localization code to ScummEngine_v7
Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.347
retrieving revision 1.348
diff -u -d -r1.347 -r1.348
--- actor.cpp 28 Apr 2005 00:44:49 -0000 1.347
+++ actor.cpp 28 Apr 2005 22:17:21 -0000 1.348
@@ -1301,14 +1301,18 @@
return result;
}
+void ScummEngine_v7::actorTalk(const byte *msg) {
+ ScummEngine::actorTalk(msg);
+
+ // Play associated speech, if any
+ playSpeech((byte *)_lastStringTag);
+}
+
void ScummEngine::actorTalk(const byte *msg) {
Actor *a;
addMessageToStack(msg, _charsetBuffer, sizeof(_charsetBuffer));
- // Play associated speech, if any
- playSpeech((byte *)_lastStringTag);
-
// FIXME: Workaround for bugs #770039 and #770049
if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
if (!*_charsetBuffer)
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.468
retrieving revision 2.469
diff -u -d -r2.468 -r2.469
--- intern.h 28 Apr 2005 01:04:24 -0000 2.468
+++ intern.h 28 Apr 2005 22:17:22 -0000 2.469
@@ -1254,7 +1254,14 @@
class ScummEngine_v7 : public ScummEngine_v6 {
public:
- ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v6(detector, syst, gs, md5sum) {}
+ ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]);
+ ~ScummEngine_v7();
+
+ bool _existLanguageFile;
+ char *_languageBuffer;
+ LangIndexNode *_languageIndex;
+ int _languageIndexSize;
+ char _lastStringTag[12+1];
protected:
virtual void setupScummVars();
@@ -1272,6 +1279,11 @@
virtual void panCameraTo(int x, int y);
virtual int getObjectIdFromOBIM(const byte *obim);
+
+ virtual void actorTalk(const byte *msg);
+ virtual void translateText(const byte *text, byte *trans_buff);
+ virtual void loadLanguageBundle();
+ void playSpeech(const byte *ptr);
};
class ScummEngine_v8 : public ScummEngine_v7 {
Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.471
retrieving revision 1.472
diff -u -d -r1.471 -r1.472
--- scumm.cpp 28 Apr 2005 01:31:28 -0000 1.471
+++ scumm.cpp 28 Apr 2005 22:17:22 -0000 1.472
@@ -904,9 +904,6 @@
_NES_lastTalkingActor = 0;
_NES_talkColor = 0;
_keepText = false;
- _existLanguageFile = false;
- _languageBuffer = NULL;
- _languageIndex = NULL;
_costumeLoader = NULL;
_costumeRenderer = NULL;
_2byteFontPtr = 0;
@@ -1189,7 +1186,6 @@
delete _fileHandle;
delete _sound;
- free(_languageBuffer);
delete _costumeLoader;
delete _costumeRenderer;
@@ -1214,8 +1210,6 @@
free(_classData);
free(_arraySlot);
- free(_languageIndex);
-
free(_compositeBuf);
free(_herculesBuf);
@@ -1304,6 +1298,18 @@
_heSBNGId = 0;
}
+ScummEngine_v7::ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16])
+ : ScummEngine_v6(detector, syst, gs, md5sum) {
+ _existLanguageFile = false;
+ _languageBuffer = NULL;
+ _languageIndex = NULL;
+}
+
+ScummEngine_v7::~ScummEngine_v7() {
+ free(_languageBuffer);
+ free(_languageIndex);
+}
+
ScummEngine_v8::ScummEngine_v8(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16])
: ScummEngine_v7(detector, syst, gs, md5sum) {
_objectIDMap = 0;
Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.608
retrieving revision 1.609
diff -u -d -r1.608 -r1.609
--- scumm.h 28 Apr 2005 01:04:41 -0000 1.608
+++ scumm.h 28 Apr 2005 22:17:23 -0000 1.609
@@ -851,7 +851,7 @@
int _NES_lastTalkingActor;
int _NES_talkColor;
- void actorTalk(const byte *msg);
+ virtual void actorTalk(const byte *msg);
void stopTalk();
int getTalkingActor(); // Wrapper around VAR_TALK_ACTOR for V1 Maniac
void setTalkingActor(int variable);
@@ -1164,19 +1164,13 @@
int addNameToStack(byte *dst, int dstSize, int var);
int addStringToStack(byte *dst, int dstSize, int var);
-public:
- Common::Language _language;
-protected:
- bool _existLanguageFile;
- char *_languageBuffer;
- LangIndexNode *_languageIndex;
- int _languageIndexSize;
- char _lastStringTag[12+1];
+ virtual void loadLanguageBundle() {}
- void loadLanguageBundle();
- void playSpeech(const byte *ptr);
public:
- void translateText(const byte *text, byte *trans_buff); // Used by class ScummDialog
+ Common::Language _language; // Accessed by a hack in NutRenderer::loadFont
+
+ // Used by class ScummDialog:
+ virtual void translateText(const byte *text, byte *trans_buff);
// Somewhat hackish stuff for 2 byte support (Chinese/Japanese/Korean)
bool _useCJKMode;
Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/string.cpp,v
retrieving revision 1.281
retrieving revision 1.282
diff -u -d -r1.281 -r1.282
--- string.cpp 27 Apr 2005 05:05:10 -0000 1.281
+++ string.cpp 28 Apr 2005 22:17:23 -0000 1.282
@@ -29,6 +29,7 @@
#include "scumm/charset.h"
#include "scumm/dialogs.h"
#include "scumm/imuse_digi/dimuse.h"
+#include "scumm/intern.h"
#include "scumm/verbs.h"
#include "scumm/sound.h"
#include "scumm/util.h"
@@ -827,7 +828,7 @@
}
// Create an index of the language file.
-void ScummEngine::loadLanguageBundle() {
+void ScummEngine_v7::loadLanguageBundle() {
ScummFile file;
int32 size;
@@ -956,7 +957,7 @@
qsort(_languageIndex, _languageIndexSize, sizeof(LangIndexNode), indexCompare);
}
-void ScummEngine::playSpeech(const byte *ptr) {
+void ScummEngine_v7::playSpeech(const byte *ptr) {
if ((_gameId == GID_DIG || _gameId == GID_CMI) && ptr[0]) {
char pointer[20];
strcpy(pointer, (const char *)ptr);
@@ -973,6 +974,11 @@
}
void ScummEngine::translateText(const byte *text, byte *trans_buff) {
+ // Default: just copy the string
+ memcpy(trans_buff, text, resStrLen(text) + 1);
+}
+
+void ScummEngine_v7::translateText(const byte *text, byte *trans_buff) {
LangIndexNode target;
LangIndexNode *found = NULL;
int i;
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm util.cpp,2.8,2.9 util.h,2.8,2.9
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.439,2.440 gfx.h,1.116,1.117 intern.h,2.469,2.470 object.cpp,1.235,1.236 room.cpp,1.10,1.11 scumm.cpp,1.472,1.473 scumm.h,1.609,1.610 string.cpp,1.282,1.283
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list