aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Bacca2002-03-18 01:15:41 +0000
committerNicolas Bacca2002-03-18 01:15:41 +0000
commit8a671e56b5fc57bb1f76a4393e6b93fdebd04f65 (patch)
treec35b535eb99da6ea0b8c84927f0d6fad739e5448
parent49c49ffdc1fb3aad7389444f8917103a9f251999 (diff)
downloadscummvm-rg350-8a671e56b5fc57bb1f76a4393e6b93fdebd04f65.tar.gz
scummvm-rg350-8a671e56b5fc57bb1f76a4393e6b93fdebd04f65.tar.bz2
scummvm-rg350-8a671e56b5fc57bb1f76a4393e6b93fdebd04f65.zip
setObjectName fix for Indy4 french
svn-id: r3779
-rw-r--r--script_v1.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/script_v1.cpp b/script_v1.cpp
index c993667884..670a5e33af 100644
--- a/script_v1.cpp
+++ b/script_v1.cpp
@@ -1946,6 +1946,7 @@ void Scumm::o5_setObjectName() {
int a;
int i;
byte *name;
+ unsigned char work[255];
if (obj < NUM_ACTORS)
error("Can't set actor %d name with new-name-of", obj);
@@ -1958,19 +1959,25 @@ void Scumm::o5_setObjectName() {
i = 0;
while ((a = fetchScriptByte()) != 0) {
- name[i++] = a;
+ work[i++] = a;
if (a==0xFF) {
- name[i++] = fetchScriptByte();
- name[i++] = fetchScriptByte();
- name[i++] = fetchScriptByte();
+ work[i++] = fetchScriptByte();
+ work[i++] = fetchScriptByte();
+ work[i++] = fetchScriptByte();
}
- if (i >= size)
- error("New name of object %d too long", obj);
}
- name[i] = 0;
+ if (i >= size) {
+ work[i] = 0;
+ warning("New name of object %d too long (old *%s* new *%s*)",
+ obj, name, work);
+ i = size - 1;
+ }
+
+ work[i] = 0;
+ strcpy((char*)name, (char*)work);
runHook(0);
}