Fix restarting game in Elvira 1

svn-id: r24645
This commit is contained in:
Travis Howell 2006-11-06 23:58:15 +00:00
parent c9cb98291d
commit fe33cd84d6

View file

@ -625,11 +625,11 @@ bool AGOSEngine::loadGame_e1(const char *filename) {
for (num = _itemArrayInited - 1; num; num--) {
Item *item = _itemArrayPtr[item_index++], *parent_item;
uint16 parent = f->readUint32BE();
if (parent == 0xFFFF)
uint32 parent = f->readUint32BE();
if (parent == 0xFFFFFFFF)
parent_item = 0;
else
parent_item = derefItem(parent);
parent_item = derefItem(parent + 1);
setItemParent(item, parent_item);
@ -657,11 +657,11 @@ bool AGOSEngine::loadGame_e1(const char *filename) {
u->userFlags[i] = f->readUint16BE();
}
uint16 val = f->readUint32BE();
if (val == 0xFFFF)
uint32 val = f->readUint32BE();
if (val == 0xFFFFFFFF)
u->userItems[0] = 0;
else
u->userItems[0] = val;
u->userItems[0] = val + 1;
}
}
@ -722,7 +722,7 @@ bool AGOSEngine::saveGame_e1(const char *filename) {
if (item->parent == 0)
f->writeUint32BE(0xFFFFFFFF);
else
f->writeUint32BE(item->parent);
f->writeUint32BE(item->parent - 1);
f->writeUint16BE(item->state);
f->writeUint16BE(item->classFlags);
@ -751,7 +751,7 @@ bool AGOSEngine::saveGame_e1(const char *filename) {
if (u->userItems[0] == 0)
f->writeUint32BE(0xFFFFFFFF);
else
f->writeUint32BE(u->userItems[0]);
f->writeUint32BE(u->userItems[0] - 1);
}
}