diff options
author | Nicolas Bacca | 2002-03-18 01:15:41 +0000 |
---|---|---|
committer | Nicolas Bacca | 2002-03-18 01:15:41 +0000 |
commit | 8a671e56b5fc57bb1f76a4393e6b93fdebd04f65 (patch) | |
tree | c35b535eb99da6ea0b8c84927f0d6fad739e5448 | |
parent | 49c49ffdc1fb3aad7389444f8917103a9f251999 (diff) | |
download | scummvm-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.cpp | 21 |
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); } |