mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-21 13:39:09 +00:00
(svn r10056) -Revert (r10049): removing SLE_WRITEBYTE didn't work as expected :(. Somehow SlIterateArray and SlObject depend on eachother and adding a some arbitrary data before the SlObject makes it go crazy.
This commit is contained in:
@@ -744,6 +744,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld)
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
break;
|
||||
case SL_WRITEBYTE: return 1; // a byte is logically of size 1
|
||||
case SL_INCLUDE: return SlCalcObjLength(object, _sl.includes[sld->version_from]);
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
@@ -781,6 +782,19 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld)
|
||||
}
|
||||
break;
|
||||
|
||||
/* SL_WRITEBYTE translates a value of a variable to another one upon
|
||||
* saving or loading.
|
||||
* XXX - variable renaming abuse
|
||||
* game_value: the value of the variable ingame is abused by sld->version_from
|
||||
* file_value: the value of the variable in the savegame is abused by sld->version_to */
|
||||
case SL_WRITEBYTE:
|
||||
if (_sl.save) {
|
||||
SlWriteByte(sld->version_to);
|
||||
} else {
|
||||
*(byte*)ptr = sld->version_from;
|
||||
}
|
||||
break;
|
||||
|
||||
/* SL_INCLUDE loads common code for a type
|
||||
* XXX - variable renaming abuse
|
||||
* include_index: common code to include from _desc_includes[], abused by sld->version_from */
|
||||
|
Reference in New Issue
Block a user