RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 2.118
diff -u -r2.118 script_v2.cpp
|
|
|
1292 | 1292 | |
1293 | 1293 | void Scumm_v2::o2_setObjectName() { |
1294 | 1294 | int obj = getVarOrDirectWord(0x80); |
1295 | | int size; |
| 1295 | int size = 0; |
1296 | 1296 | int a; |
1297 | 1297 | int i = 0; |
1298 | 1298 | byte *name = NULL; |
… |
… |
|
1303 | 1303 | a = fetchScriptByte(); |
1304 | 1304 | work[i++] = a; |
1305 | 1305 | } while (a); |
1306 | | work[i] = 0; |
1307 | 1306 | |
1308 | 1307 | if (obj < _numActors) |
1309 | 1308 | error("Can't set actor %d name with new-name-of", obj); |
… |
… |
|
1312 | 1311 | if (name == NULL) |
1313 | 1312 | return; // Silently abort |
1314 | 1313 | |
1315 | | byte *objptr; |
1316 | | byte offset = 0; |
| 1314 | while(name[size++]) |
| 1315 | ; |
1317 | 1316 | |
1318 | | objptr = getOBCDFromObject(obj); |
1319 | | offset = *(objptr + 14); |
1320 | | size = READ_LE_UINT16(objptr) - offset; |
1321 | | |
1322 | | if (i >= size) { |
| 1317 | if (i > size) { |
1323 | 1318 | warning("New name of object %d too long (old *%s* new *%s*)", obj, name, work); |
1324 | | i = size - 1; |
| 1319 | i = size; |
1325 | 1320 | } |
1326 | 1321 | |
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); |
1328 | 1329 | redrawV2Inventory(); |
1329 | 1330 | } |
1330 | 1331 | |