From 8a671e56b5fc57bb1f76a4393e6b93fdebd04f65 Mon Sep 17 00:00:00 2001 From: Nicolas Bacca Date: Mon, 18 Mar 2002 01:15:41 +0000 Subject: [PATCH] setObjectName fix for Indy4 french svn-id: r3779 --- script_v1.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/script_v1.cpp b/script_v1.cpp index c9936678842..670a5e33af3 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); }