# oldloader.h File Reference

Declarations of strctures and function used in loader of old savegames. More...

`#include "saveload.h"`
`#include "../tile_type.h"`

Go to the source code of this file.

## Data Structures
struct | LoadgameState
struct | OldChunks
## Defines
#define | OCL_SVAR(type, base, offset) { type, 1, NULL, (uint)cpp_offsetof(base, offset), NULL }
#define | OCL_VAR(type, amount, pointer) { type, amount, pointer, 0, NULL }
#define | OCL_END() { OC_END, 0, NULL, 0, NULL }
#define | OCL_CNULL(type, amount) { OC_NULL | type, amount, NULL, 0, NULL }
#define | OCL_CCHUNK(type, amount, proc) { OC_CHUNK | type, amount, NULL, 0, proc }
#define | OCL_ASSERT(type, size) { OC_ASSERT | type, 1, NULL, size, NULL }
#define | OCL_NULL(amount) OCL_CNULL((OldChunkType)0, amount)
#define | OCL_CHUNK(amount, proc) OCL_CCHUNK((OldChunkType)0, amount, proc)
## Typedefs
typedef bool | OldChunkProc (LoadgameState *ls, int num)
## Enumerations
enum | OldChunkType { OC_SIMPLE = 0, OC_NULL = 1, OC_CHUNK = 2, OC_ASSERT = 3, OC_TTD = 1 << 4, OC_TTO = 1 << 5, OC_VAR_I8 = 1 << 8, OC_VAR_U8 = 2 << 8, OC_VAR_I16 = 3 << 8, OC_VAR_U16 = 4 << 8, OC_VAR_I32 = 5 << 8, OC_VAR_U32 = 6 << 8, OC_VAR_I64 = 7 << 8, OC_VAR_U64 = 8 << 8, OC_FILE_I8 = 1 << 16, OC_FILE_U8 = 2 << 16, OC_FILE_I16 = 3 << 16, OC_FILE_U16 = 4 << 16, OC_FILE_I32 = 5 << 16, OC_FILE_U32 = 6 << 16, OC_INT8 = OC_VAR_I8 | OC_FILE_I8, OC_UINT8 = OC_VAR_U8 | OC_FILE_U8, OC_INT16 = OC_VAR_I16 | OC_FILE_I16, OC_UINT16 = OC_VAR_U16 | OC_FILE_U16, OC_INT32 = OC_VAR_I32 | OC_FILE_I32, OC_UINT32 = OC_VAR_U32 | OC_FILE_U32, OC_TILE = OC_VAR_U32 | OC_FILE_U16, OC_DEREFERENCE_POINTER = 1 << 31, OC_END = 0 }
## Functions
| assert_compile (sizeof(TileIndex)==4)
byte | ReadByte (LoadgameState *ls)
| Reads a byte from the buffer and decompress if needed.
bool | LoadChunk (LoadgameState *ls, void *base, const OldChunks *chunks)
| Loads a chunk from the old savegame.
bool | LoadTTDMain (LoadgameState *ls)
bool | LoadTTOMain (LoadgameState *ls)
static uint16 | ReadUint16 (LoadgameState *ls)
static uint32 | ReadUint32 (LoadgameState *ls)
## Variables
static const uint | BUFFER_SIZE = 4096
static const uint | OLD_MAP_SIZE = 256 * 256
uint | _bump_assert_value

## Detailed Description

Declarations of strctures and function used in loader of old savegames.

Definition in file oldloader.h.

## Enumeration Type Documentation

enum OldChunkType

Enumerator:

  OC_TTD | chunk is valid ONLY for TTD savegames
  OC_TTO | -//- TTO (default is neither of these)
  OC_DEREFERENCE_POINTER | Dereference the pointer once before writing to it, so we do not have to use big static arrays.
  OC_END | End of the whole chunk, all 32 bits set to zero.

Definition at line 37 of file oldloader.h.

## Function Documentation

bool LoadChunk | ( | LoadgameState * | ls,
|  | void * | base,
|  | const OldChunks * | chunks |
| ) |  |  |

Loads a chunk from the old savegame.

Definition at line 109 of file oldloader.cpp.

References _savegame_type, DEBUG, GB(), OC_DEREFERENCE_POINTER, OC_END, OC_TTD, OC_TTO, ReadByte(), SGT_TTO, and OldChunks::type.

Referenced by LoadOldVehicle().

byte ReadByte | ( | LoadgameState * | ls | ) |

Reads a byte from the buffer and decompress if needed.

Definition at line 75 of file oldloader.cpp.

References ReadByte(), and ReadByteFromFile().

Referenced by LoadChunk(), LoadOldVehicle(), and ReadByte().