Ticket #8231: setobjectname.patch

File setobjectname.patch, 1.2 KB (added by SF/madm00se, 18 years ago)

patch for o2_setObjectName

  • script_v2.cpp

    RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
    retrieving revision 2.118
    diff -u -r2.118 script_v2.cpp
     
    12921292
    12931293void Scumm_v2::o2_setObjectName() {
    12941294        int obj = getVarOrDirectWord(0x80);
    1295         int size;
     1295        int size = 0;
    12961296        int a;
    12971297        int i = 0;
    12981298        byte *name = NULL;
     
    13031303                a = fetchScriptByte();
    13041304                work[i++] = a;
    13051305        } while (a);
    1306         work[i] = 0;
    13071306
    13081307        if (obj < _numActors)
    13091308                error("Can't set actor %d name with new-name-of", obj);
     
    13121311        if (name == NULL)
    13131312                return; // Silently abort
    13141313
    1315         byte *objptr;
    1316         byte offset = 0;
     1314  while(name[size++])
     1315    ;
    13171316
    1318         objptr = getOBCDFromObject(obj);
    1319         offset = *(objptr + 14);
    1320         size = READ_LE_UINT16(objptr) - offset;
    1321 
    1322         if (i >= size) {
     1317        if (i > size) {
    13231318                warning("New name of object %d too long (old *%s* new *%s*)", obj, name, work);
    1324                 i = size - 1;
     1319                i = size;
    13251320        }
    13261321
    1327         memcpy(name, work, i + 1);
     1322  while (i < size) {
     1323    work[i-1] = '@';
     1324    i++;
     1325  }
     1326  work[i-1] = 0;
     1327
     1328        memcpy(name, work, i);
    13281329        redrawV2Inventory();
    13291330}
    13301331