oldloader.c
author tron
Tue, 07 Jun 2005 18:13:49 +0000
changeset 1926 68d60188a22f
parent 1891 92a3b0aa0946
child 1962 51ee4f459268
permissions -rw-r--r--
(svn r2432) Use GetEngine() instead of DEREF_ENGINE() or even _engines[]
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     1
#include "stdafx.h"
1891
92a3b0aa0946 (svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents: 1537
diff changeset
     2
#include "openttd.h"
507
8aa8100b0b22 (svn r815) Include strings.h only in the files which need it.
tron
parents: 436
diff changeset
     3
#include "table/strings.h"
679
e959706a3e4d (svn r1117) Move map arrays and some related macros into their own files map.c and map.h
tron
parents: 577
diff changeset
     4
#include "map.h"
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     5
#include "town.h"
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     6
#include "industry.h"
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     7
#include "station.h"
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     8
#include "economy.h"
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     9
#include "player.h"
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    10
#include "engine.h"
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    11
#include "vehicle.h"
988
2482369a61ff (svn r1486) -Codechange: moved all 'signs' stuff to signs.c/h and prepared it for
truelight
parents: 974
diff changeset
    12
#include "signs.h"
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    13
#include "debug.h"
1313
bba6afb8a995 (svn r1817) -Codechange: Moved depot-functions to depot.c
truelight
parents: 1284
diff changeset
    14
#include "depot.h"
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    15
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    16
enum {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    17
	HEADER_SIZE = 49,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    18
	BUFFER_SIZE = 4096,
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    19
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    20
	OLD_MAP_SIZE = 256 * 256
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    21
};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    22
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    23
typedef struct LoadgameState {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    24
	FILE *file;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    25
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    26
	uint chunk_size;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    27
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    28
	bool decoding;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    29
	byte decode_char;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    30
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    31
	uint buffer_count;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    32
	uint buffer_cur;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    33
	byte buffer[BUFFER_SIZE];
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    34
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    35
	uint total_read;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    36
	bool failed;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    37
} LoadgameState;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    38
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    39
typedef bool OldChunkProc(LoadgameState *ls, int num);
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    40
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    41
typedef struct OldChunks {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    42
	uint32 type;         //! Type of field
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    43
	uint32 amount;       //! Amount of fields
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    44
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    45
	void *ptr;           //! Pointer where to save the data (may only be set if offset is 0)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    46
	uint offset;         //! Offset from basepointer (may only be set if ptr is NULL)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    47
	OldChunkProc *proc;  //! Pointer to function that is called with OC_CHUNK
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    48
} OldChunks;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    49
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    50
/* OldChunk-Type */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    51
enum {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    52
	OC_END       = 0,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    53
	OC_NULL      = 1 << 0,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    54
	OC_CHUNK     = 1 << 1,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    55
	OC_ASSERT    = 1 << 2,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    56
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    57
	OC_VAR_I8    = 1 << 9,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    58
	OC_VAR_U8    = 1 << 10,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    59
	OC_VAR_I16   = 1 << 11,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    60
	OC_VAR_U16   = 1 << 12,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    61
	OC_VAR_I32   = 1 << 13,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    62
	OC_VAR_U32   = 1 << 14,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    63
	OC_VAR_I64   = 1 << 15,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    64
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    65
	OC_FILE_I8   = 1 << 17,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    66
	OC_FILE_U8   = 1 << 18,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    67
	OC_FILE_I16  = 1 << 19,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    68
	OC_FILE_U16  = 1 << 20,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    69
	OC_FILE_I32  = 1 << 21,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    70
	OC_FILE_U32  = 1 << 22,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    71
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    72
	OC_INT8      = OC_VAR_I8   | OC_FILE_I8,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    73
	OC_UINT8     = OC_VAR_U8   | OC_FILE_U8,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    74
	OC_INT16     = OC_VAR_I16  | OC_FILE_I16,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    75
	OC_UINT16    = OC_VAR_U16  | OC_FILE_U16,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    76
	OC_INT32     = OC_VAR_I32  | OC_FILE_I32,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    77
	OC_UINT32    = OC_VAR_U32  | OC_FILE_U32,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    78
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    79
	OC_TILE      = OC_VAR_U32  | OC_FILE_U16
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    80
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    81
/* If it fails, check lines above.. */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    82
assert_compile(sizeof(TileIndex) == 4);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    83
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    84
static LoadgameState _ls;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    85
static uint32 _bump_assert_value;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    86
static bool   _read_ttdpatch_flags;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    87
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    88
/**
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    89
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    90
 * Reads a byte from a file (do not call yourself, use ReadByte())
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    91
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    92
 */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    93
static byte ReadByteFromFile(LoadgameState *ls)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    94
{
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    95
	/* To avoid slow reads, we read BUFFER_SIZE of bytes per time
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    96
	and just return a byte per time */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    97
	if (ls->buffer_cur >= ls->buffer_count) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    98
		/* Read some new bytes from the file */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
    99
		int count = fread(ls->buffer, 1, BUFFER_SIZE, ls->file);
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   100
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   101
		/* We tried to read, but there is nothing in the file anymore.. */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   102
		if (count == 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   103
			DEBUG(oldloader, 1)("[OldLoader] Read past end of file, loading failed");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   104
			ls->failed = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   105
		}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   106
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   107
		ls->buffer_count = count;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   108
		ls->buffer_cur   = 0;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   109
	}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   110
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   111
	return ls->buffer[ls->buffer_cur++];
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   112
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   113
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   114
/**
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   115
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   116
 * Reads a byte from the buffer and decompress if needed
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   117
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   118
 */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   119
static byte ReadByte(LoadgameState *ls)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   120
{
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   121
	/* Old savegames have a nice compression algorithm (RLE)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   122
	which means that we have a chunk, which starts with a length
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   123
	byte. If that byte is negative, we have to repeat the next byte
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   124
	that many times (+1). Else, we need to read that amount of bytes.
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   125
	Works pretty good if you have many zero's behind eachother */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   126
	int8 new_byte;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   127
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   128
	/* Check if we are reading a chunk */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   129
	if (ls->chunk_size != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   130
		ls->total_read++;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   131
		ls->chunk_size--;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   132
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   133
		/* If we are decoding, return the decode_char */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   134
		if (ls->decoding)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   135
			return ls->decode_char;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   136
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   137
		/* Else return byte from file */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   138
		return ReadByteFromFile(ls);
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   139
	}
193
0a7025304867 (svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents: 123
diff changeset
   140
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   141
	/* Read new chunk */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   142
	new_byte = ReadByteFromFile(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   143
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   144
	if (new_byte < 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   145
		/* Repeat next char for new_byte times */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   146
		ls->decoding    = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   147
		ls->decode_char = ReadByteFromFile(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   148
		ls->chunk_size  = -new_byte + 1;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   149
	} else {
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   150
		ls->decoding    = false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   151
		ls->chunk_size  = new_byte + 1;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   152
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   153
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   154
	/* Call this function again to return a byte */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   155
	return ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   156
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   157
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   158
/**
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   159
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   160
 * Loads a chunk from the old savegame
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   161
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   162
 */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   163
static bool LoadChunk(LoadgameState *ls, void *base, const OldChunks *chunks)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   164
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   165
	const OldChunks *chunk = chunks;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   166
	byte *ptr;
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   167
	byte *base_ptr = base;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   168
	uint i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   169
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   170
	while (chunk->type != OC_END) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   171
		ptr = chunk->ptr;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   172
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   173
		for (i = 0; i < chunk->amount; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   174
			if (ls->failed)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   175
				return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   176
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   177
			/* Handle simple types */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   178
			if ((chunk->type & 0xFF) != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   179
				switch (chunk->type & 0xFF) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   180
					case OC_NULL:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   181
						/* Just read the byte and forget about it */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   182
						ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   183
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   184
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   185
					case OC_CHUNK:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   186
						/* Call function, with 'i' as parameter to tell which item we
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   187
						are going to read */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   188
						if (!chunk->proc(ls, i))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   189
							return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   190
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   191
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   192
					case OC_ASSERT:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   193
						DEBUG(oldloader, 4)("[OldLoader] Assert point: %x / %x", ls->total_read, chunk->offset + _bump_assert_value);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   194
						if (ls->total_read != chunk->offset + _bump_assert_value)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   195
							ls->failed = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   196
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   197
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   198
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   199
				}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   200
			} else {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   201
				uint32 res = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   202
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   203
				/* Reading from the file: bit 16 to 23 have the FILE */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   204
				switch (((chunk->type >> 16) & 0xFF) << 16) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   205
					case OC_FILE_I8:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   206
						res = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   207
						res = (int8)res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   208
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   209
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   210
					case OC_FILE_U8:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   211
						res = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   212
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   213
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   214
					case OC_FILE_U16:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   215
						res =  ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   216
						res += ReadByte(ls) << 8;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   217
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   218
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   219
					case OC_FILE_I16:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   220
						res =  ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   221
						res += ReadByte(ls) << 8;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   222
						res = (int16)res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   223
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   224
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   225
					case OC_FILE_U32:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   226
						res =  ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   227
						res += ReadByte(ls) << 8;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   228
						res += ReadByte(ls) << 16;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   229
						res += ReadByte(ls) << 24;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   230
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   231
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   232
					case OC_FILE_I32:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   233
						res =  ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   234
						res += ReadByte(ls) << 8;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   235
						res += ReadByte(ls) << 16;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   236
						res += ReadByte(ls) << 24;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   237
						res = (int32)res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   238
						break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   239
				}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   240
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   241
				/* Sanity check */
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   242
				assert(base_ptr != NULL || chunk->ptr != NULL);
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   243
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   244
				/* Writing to the var: bit 8 till 15 have the VAR */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   245
				switch (((chunk->type >> 8) & 0xFF) << 8) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   246
					case OC_VAR_I8:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   247
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   248
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   249
							*(int8 *)ptr = res & 0xFF;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   250
							ptr++;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   251
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   252
							*(int8 *)(base_ptr + chunk->offset) = res & 0xFF;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   253
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   254
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   255
					case OC_VAR_U8:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   256
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   257
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   258
							*(uint8 *)ptr = res & 0xFF;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   259
							ptr++;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   260
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   261
							*(uint8 *)(base_ptr + chunk->offset) = res & 0xFF;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   262
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   263
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   264
					case OC_VAR_U16:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   265
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   266
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   267
							*(uint16 *)ptr = res & 0xFFFF;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   268
							ptr += 2;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   269
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   270
							*(uint16 *)(base_ptr + chunk->offset) = res & 0xFFFF;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   271
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   272
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   273
					case OC_VAR_I16:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   274
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   275
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   276
							*(int16 *)ptr = res & 0xFFFF;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   277
							ptr += 2;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   278
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   279
							*(int16 *)(base_ptr + chunk->offset) = res & 0xFFFF;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   280
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   281
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   282
					case OC_VAR_U32:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   283
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   284
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   285
							*(uint32 *)ptr = res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   286
							ptr += 4;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   287
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   288
							*(uint32 *)(base_ptr + chunk->offset) = res;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   289
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   290
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   291
					case OC_VAR_I32:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   292
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   293
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   294
							*(int32 *)ptr = res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   295
							ptr += 4;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   296
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   297
							*(int32 *)(base_ptr + chunk->offset) = res;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   298
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   299
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   300
					case OC_VAR_I64:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   301
						/* Write the data */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   302
						if (chunk->ptr != NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   303
							*(int64 *)ptr = res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   304
							ptr += 8;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   305
						} else
1325
80f83e8ae77b (svn r1829) -Fix: fixed some compiler warnings (tnx to Tron for the Makefile-flag)
truelight
parents: 1322
diff changeset
   306
							*(int64 *)(base_ptr + chunk->offset) = res;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   307
							break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   308
				}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   309
			}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   310
		}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   311
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   312
		chunk++;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   313
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   314
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   315
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   316
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   317
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   318
/**
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   319
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   320
 * Initialize some data before reading
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   321
 *
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   322
 */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   323
static void InitLoading(LoadgameState *ls)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   324
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   325
	ls->chunk_size   = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   326
	ls->total_read   = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   327
	ls->failed       = false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   328
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   329
	ls->decoding     = false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   330
	ls->decode_char  = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   331
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   332
	ls->buffer_cur   = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   333
	ls->buffer_count = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   334
	memset(ls->buffer, 0, BUFFER_SIZE);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   335
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   336
	_bump_assert_value = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   337
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   338
	_read_ttdpatch_flags = false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   339
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   340
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   341
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   342
/*
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   343
 * Begin -- Stuff to fix the savegames to be OpenTTD compatible
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   344
 */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   345
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   346
extern uint32 GetOldTownName(uint32 townnameparts, byte old_town_name_type);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   347
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   348
static void FixOldTowns(void)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   349
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   350
	Town *town;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   351
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   352
	/* Convert town-names if needed */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   353
	FOR_ALL_TOWNS(town) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   354
		if (town->xy == 0)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   355
			continue;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   356
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   357
		if (IS_INT_INSIDE(town->townnametype, 0x20C1, 0x20C3)) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   358
			town->townnametype = SPECSTR_TOWNNAME_ENGLISH + _opt.town_name;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   359
			town->townnameparts = GetOldTownName(town->townnameparts, _opt.town_name);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   360
		}
193
0a7025304867 (svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents: 123
diff changeset
   361
	}
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   362
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   363
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   364
static void FixOldStations(void)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   365
{
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   366
	Station *st;
919
b0d6c7642f99 (svn r1407) -Codechange: changed a lot around _stations, _vehicles, _towns and _industries
truelight
parents: 875
diff changeset
   367
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   368
	FOR_ALL_STATIONS(st) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   369
		/* Check if we need to swap width and height for the station */
1396
91c741902f03 (svn r1900) Simplify a piece of code in the oldloader
tron
parents: 1340
diff changeset
   370
		if (st->train_tile != 0 && _map5[st->train_tile] & 1) {
91c741902f03 (svn r1900) Simplify a piece of code in the oldloader
tron
parents: 1340
diff changeset
   371
			swap_byte(&st->trainst_w, &st->trainst_h);
4
cad62d5f9708 (svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents: 0
diff changeset
   372
		}
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   373
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   374
		/* Check if there is a bus or truck station, and convert to new format */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   375
		if (st->bus_tile_obsolete != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   376
			st->bus_stops = AllocateRoadStop();
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   377
			st->bus_stops->xy = st->bus_tile_obsolete;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   378
			st->bus_stops->used = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   379
			st->bus_stops->status = 3;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   380
			st->bus_stops->station = st->index;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   381
			st->bus_stops->next = NULL;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   382
			st->bus_stops->prev = NULL;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   383
			st->bus_stops->slot[0] = st->bus_stops->slot[1] = INVALID_SLOT;
1284
06a52178bf46 (svn r1788) -Add: Made RoadStops dynamic. You can now create up to 64k roadstops.
truelight
parents: 1283
diff changeset
   384
		}
06a52178bf46 (svn r1788) -Add: Made RoadStops dynamic. You can now create up to 64k roadstops.
truelight
parents: 1283
diff changeset
   385
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   386
		if (st->lorry_tile_obsolete != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   387
			st->truck_stops = AllocateRoadStop();
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   388
			st->truck_stops->xy = st->lorry_tile_obsolete;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   389
			st->truck_stops->used = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   390
			st->truck_stops->status = 3;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   391
			st->truck_stops->station = st->index;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   392
			st->truck_stops->next = NULL;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   393
			st->truck_stops->prev = NULL;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   394
			st->truck_stops->slot[0] = st->truck_stops->slot[1] = INVALID_SLOT;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   395
		}
1024
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   396
	}
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   397
}
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   398
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   399
static void FixOldVehicles(void)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   400
{
1024
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   401
	/* Check for shared orders, and link them correctly */
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   402
	{
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   403
		Vehicle *v;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   404
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   405
		FOR_ALL_VEHICLES(v) {
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   406
			Vehicle *u;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   407
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   408
			if (v->type == 0)
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   409
				continue;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   410
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   411
			FOR_ALL_VEHICLES_FROM(u, v->index + 1) {
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   412
				if (u->type == 0)
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   413
					continue;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   414
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   415
					/* If a vehicle has the same orders, add the link to eachother
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   416
				in both vehicles */
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   417
				if (v->orders == u->orders) {
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   418
					v->next_shared = u;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   419
					u->prev_shared = v;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   420
					break;
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   421
				}
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   422
			}
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   423
		}
9b06b01490a4 (svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.
truelight
parents: 988
diff changeset
   424
	}
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   425
1537
edd70cde5f84 (svn r2041) -Fix: not all vehicles did get a day_proc call (because of rounding errors)
truelight
parents: 1396
diff changeset
   426
	_vehicle_id_ctr_day = 0;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   427
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   428
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   429
/*
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   430
 * End -- Stuff to fix the savegames to be OpenTTD compatible
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   431
 */
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   432
193
0a7025304867 (svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents: 123
diff changeset
   433
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   434
/* Help:
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   435
 *  - OCL_SVAR: load 'type' to offset 'offset' in a struct of type 'base', which must also
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   436
 *       be given via base in LoadChunk() as real pointer
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   437
 *  - OCL_VAR: load 'type' to a global var
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   438
 *  - OCL_END: every struct must end with this
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   439
 *  - OCL_NULL: read 'amount' of bytes and send them to /dev/null or something
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   440
 *  - OCL_CHUNK: load an other proc to load a part of the savegame, 'amount' times
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   441
 *  - OCL_ASSERT: to check if we are really at the place we expect to be.. because old savegames are too binary to be sure ;)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   442
 */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   443
#define OCL_SVAR(type, base, offset)         { type,          1, NULL,    offsetof(base, offset), NULL }
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   444
#define OCL_VAR(type, amount, pointer)       { type,     amount, pointer, 0,                      NULL }
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   445
#define OCL_END()                                   { OC_END,        0, NULL,    0,                      NULL }
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   446
#define OCL_NULL(amount)                            { OC_NULL,  amount, NULL,    0,                      NULL }
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   447
#define OCL_CHUNK(amount, proc)                     { OC_CHUNK, amount, NULL,    0,                      proc }
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   448
#define OCL_ASSERT(size)                            { OC_ASSERT,     1, NULL, size,                      NULL }
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   449
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   450
/* The savegames has some hard-coded pointers, because it always enters the same
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   451
    piece of memory.. we don't.. so we need to remap ;)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   452
   Old Towns are 94 bytes big
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   453
   Old Orders are 2 bytes big */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   454
#define REMAP_TOWN_IDX(x) ((x) - (0x0459154 - 0x0458EF0)) / 94
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   455
#define REMAP_ORDER_IDX(x) ((x) - (0x045AB08 - 0x0458EF0)) / 2
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   456
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   457
extern TileIndex _animated_tile_list[256];
1328
e069d2db0e4c (svn r1832) Next byte -> char iteration: custom names
tron
parents: 1326
diff changeset
   458
extern char _name_array[512][32];
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   459
extern uint16 _custom_sprites_base;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   460
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   461
static byte   _old_vehicle_multipler;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   462
static uint8  _old_map3[OLD_MAP_SIZE * 2];
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   463
static bool   _new_ttdpatch_format;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   464
static uint32 _old_town_index;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   465
static uint16 _old_string_id;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   466
static uint16 _old_string_id_2;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   467
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   468
void ReadTTDPatchFlags(void)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   469
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   470
	int i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   471
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   472
	if (_read_ttdpatch_flags)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   473
		return;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   474
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   475
	_read_ttdpatch_flags = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   476
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   477
	/* TTDPatch misuses _old_map3 for flags.. read them! */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   478
	_old_vehicle_multipler = _old_map3[0];
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   479
	/* Somehow.... there was an error in some savegames, so 0 becomes 1
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   480
	and 1 becomes 2. The rest of the values are okay */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   481
	if (_old_vehicle_multipler < 2)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   482
		_old_vehicle_multipler++;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   483
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   484
	/* TTDPatch incraeses the Vehicle-part in the middle of the game,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   485
	so if the multipler is anything else but 1, the assert fails..
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   486
	bump the assert value so it doesn't!
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   487
	(1 multipler == 850 vehicles
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   488
	1 vehicle   == 128 bytes */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   489
	_bump_assert_value = (_old_vehicle_multipler - 1) * 850 * 128;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   490
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   491
	_new_ttdpatch_format   = false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   492
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
   493
	/* Check if we have a modern TTDPatch savegame (has extra data all around) */
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
   494
	if (memcmp(&_old_map3[0x1FFFA], "TTDp", 4) == 0)
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   495
		_new_ttdpatch_format = true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   496
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   497
	/* Clean the misused places */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   498
	for (i = 0; i < 17; i++)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   499
		_old_map3[i] = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   500
	for (i = 0x1FE00; i < 0x20000; i++)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   501
		_old_map3[i] = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   502
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   503
	if (_new_ttdpatch_format)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   504
		DEBUG(oldloader, 1)("[OldLoader] Found TTDPatch game");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   505
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   506
	DEBUG(oldloader, 1)("[OldLoader] Vehicle-multipler is set to %d (%d vehicles)", _old_vehicle_multipler, _old_vehicle_multipler * 850);
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   507
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   508
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   509
static const OldChunks town_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   510
	OCL_SVAR(   OC_TILE, Town, xy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   511
	OCL_SVAR( OC_FILE_U16 | OC_VAR_U32, Town, population ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   512
	OCL_SVAR( OC_UINT16, Town, townnametype ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   513
	OCL_SVAR( OC_UINT32, Town, townnameparts ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   514
	OCL_SVAR(  OC_UINT8, Town, grow_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   515
	OCL_NULL( 1 ),         // sort_index,        no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   516
	OCL_NULL( 4 ),         // sign-coordinates,  no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   517
	OCL_NULL( 2 ),         // namewidth,         no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   518
	OCL_SVAR( OC_UINT16, Town, flags12 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   519
	OCL_NULL( 10 ),        // radius,            no longer in use
988
2482369a61ff (svn r1486) -Codechange: moved all 'signs' stuff to signs.c/h and prepared it for
truelight
parents: 974
diff changeset
   520
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   521
	OCL_SVAR( OC_UINT16, Town, ratings[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   522
	OCL_SVAR( OC_UINT16, Town, ratings[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   523
	OCL_SVAR( OC_UINT16, Town, ratings[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   524
	OCL_SVAR( OC_UINT16, Town, ratings[3] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   525
	OCL_SVAR( OC_UINT16, Town, ratings[4] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   526
	OCL_SVAR( OC_UINT16, Town, ratings[5] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   527
	OCL_SVAR( OC_UINT16, Town, ratings[6] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   528
	OCL_SVAR( OC_UINT16, Town, ratings[7] ),
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   529
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   530
	/* XXX - This is pretty odd.. we read 32bit, but only write 8bit.. sure there is
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   531
	nothing changed?? */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   532
	OCL_SVAR( OC_FILE_U32 | OC_VAR_U8, Town, have_ratings ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   533
	OCL_SVAR( OC_FILE_U32 | OC_VAR_U8, Town, statues ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   534
	OCL_SVAR( OC_UINT16, Town, num_houses ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   535
	OCL_SVAR(  OC_UINT8, Town, time_until_rebuild ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   536
	OCL_SVAR(  OC_UINT8, Town, growth_rate ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   537
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   538
	OCL_SVAR( OC_UINT16, Town, new_max_pass ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   539
	OCL_SVAR( OC_UINT16, Town, new_max_mail ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   540
	OCL_SVAR( OC_UINT16, Town, new_act_pass ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   541
	OCL_SVAR( OC_UINT16, Town, new_act_mail ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   542
	OCL_SVAR( OC_UINT16, Town, max_pass ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   543
	OCL_SVAR( OC_UINT16, Town, max_mail ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   544
	OCL_SVAR( OC_UINT16, Town, act_pass ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   545
	OCL_SVAR( OC_UINT16, Town, act_mail ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   546
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   547
	OCL_SVAR(  OC_UINT8, Town, pct_pass_transported ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   548
	OCL_SVAR(  OC_UINT8, Town, pct_mail_transported ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   549
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   550
	OCL_SVAR( OC_UINT16, Town, new_act_food ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   551
	OCL_SVAR( OC_UINT16, Town, new_act_water ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   552
	OCL_SVAR( OC_UINT16, Town, act_food ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   553
	OCL_SVAR( OC_UINT16, Town, act_water ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   554
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   555
	OCL_SVAR(  OC_UINT8, Town, road_build_months ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   556
	OCL_SVAR(  OC_UINT8, Town, fund_buildings_months ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   557
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   558
	OCL_NULL( 8 ),         // some junk at the end of the record
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   559
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   560
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   561
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   562
static bool LoadOldTown(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   563
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   564
	if (!AddBlockIfNeeded(&_town_pool, num))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   565
		error("Towns: failed loading savegame: too many towns");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   566
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   567
	return LoadChunk(ls, GetTown(num), town_chunk);
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   568
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   569
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   570
static uint16 _old_order;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   571
static const OldChunks order_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   572
	OCL_VAR ( OC_UINT16,   1, &_old_order ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   573
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   574
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   575
static bool LoadOldOrder(LoadgameState *ls, int num)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   576
{
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   577
	if (!AddBlockIfNeeded(&_order_pool, num))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   578
		error("Orders: failed loading savegame: too many orders");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   579
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   580
	if (!LoadChunk(ls, NULL, order_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   581
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   582
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   583
	AssignOrder(GetOrder(num), UnpackOldOrder(_old_order));
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   584
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   585
	/* Relink the orders to eachother (in TTD(Patch) the orders for one
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   586
	vehicle are behind eachother, with OT_NOTHING as indication that
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   587
	it is the last order */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   588
	if (num > 0 && GetOrder(num)->type != OT_NOTHING)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   589
		GetOrder(num - 1)->next = GetOrder(num);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   590
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   591
	return true;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   592
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   593
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   594
static const OldChunks depot_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   595
	OCL_SVAR(   OC_TILE, Depot, xy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   596
	OCL_VAR ( OC_UINT32,   1, &_old_town_index ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   597
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   598
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   599
static bool LoadOldDepot(LoadgameState *ls, int num)
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   600
{
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   601
	if (!AddBlockIfNeeded(&_depot_pool, num))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   602
		error("Depots: failed loading savegame: too many depots");
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   603
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   604
	if (!LoadChunk(ls, GetDepot(num), depot_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   605
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   606
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   607
	if (GetDepot(num)->xy != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   608
		GetDepot(num)->town_index = REMAP_TOWN_IDX(_old_town_index);
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   609
	}
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   610
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   611
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   612
}
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   613
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   614
static int32 _old_price;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   615
static uint16 _old_price_frac;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   616
static const OldChunks price_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   617
	OCL_VAR (  OC_INT32,   1, &_old_price ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   618
	OCL_VAR ( OC_UINT16,   1, &_old_price_frac ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   619
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   620
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   621
static bool LoadOldPrice(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   622
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   623
	if (!LoadChunk(ls, NULL, price_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   624
		return false;
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   625
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   626
	/* We use a struct to store the prices, but they are ints in a row..
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   627
	so just access the struct as an array of int32's */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   628
	((int32*)&_price)[num] = _old_price;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   629
	_price_frac[num] = _old_price_frac;
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   630
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   631
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   632
}
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   633
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   634
static const OldChunks cargo_payment_rate_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   635
	OCL_VAR (  OC_INT32,   1, &_old_price ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   636
	OCL_VAR ( OC_UINT16,   1, &_old_price_frac ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   637
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   638
	OCL_NULL( 2 ),         // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   639
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   640
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   641
static bool LoadOldCargoPaymentRate(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   642
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   643
	if (!LoadChunk(ls, NULL, cargo_payment_rate_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   644
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   645
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   646
	_cargo_payment_rates[num] = -_old_price;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   647
	_cargo_payment_rates_frac[num] = _old_price_frac;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   648
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   649
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   650
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   651
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   652
static uint8 _old_platforms;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   653
static uint _current_station_id;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   654
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   655
static const OldChunks goods_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   656
	OCL_SVAR( OC_UINT16, GoodsEntry, waiting_acceptance ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   657
	OCL_SVAR(  OC_UINT8, GoodsEntry, days_since_pickup ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   658
	OCL_SVAR(  OC_UINT8, GoodsEntry, rating ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   659
	OCL_SVAR(  OC_FILE_U8 | OC_VAR_U16, GoodsEntry, enroute_from ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   660
	OCL_SVAR(  OC_UINT8, GoodsEntry, enroute_time ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   661
	OCL_SVAR(  OC_UINT8, GoodsEntry, last_speed ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   662
	OCL_SVAR(  OC_UINT8, GoodsEntry, last_age ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   663
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   664
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   665
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   666
static bool LoadOldGood(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   667
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   668
	Station *st = GetStation(_current_station_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   669
	return LoadChunk(ls, &st->goods[num], goods_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   670
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   671
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   672
static const OldChunks station_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   673
	OCL_SVAR(   OC_TILE, Station, xy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   674
	OCL_VAR ( OC_UINT32,   1, &_old_town_index ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   675
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   676
	OCL_SVAR(   OC_TILE, Station, bus_tile_obsolete ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   677
	OCL_SVAR(   OC_TILE, Station, lorry_tile_obsolete ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   678
	OCL_SVAR(   OC_TILE, Station, train_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   679
	OCL_SVAR(   OC_TILE, Station, airport_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   680
	OCL_SVAR(   OC_TILE, Station, dock_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   681
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   682
	OCL_VAR (  OC_UINT8,   1, &_old_platforms ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   683
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   684
	OCL_NULL( 1 ),         // sort-index, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   685
	OCL_NULL( 2 ),         // sign-width, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   686
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   687
	OCL_VAR ( OC_UINT16,   1, &_old_string_id ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   688
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   689
	OCL_NULL( 4 ),         // sign left/top, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   690
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   691
	OCL_SVAR( OC_UINT16, Station, had_vehicle_of_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   692
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   693
	OCL_CHUNK( 12, LoadOldGood ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   694
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   695
	OCL_SVAR(  OC_UINT8, Station, time_since_load ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   696
	OCL_SVAR(  OC_UINT8, Station, time_since_unload ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   697
	OCL_SVAR(  OC_UINT8, Station, delete_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   698
	OCL_SVAR(  OC_UINT8, Station, owner ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   699
	OCL_SVAR(  OC_UINT8, Station, facilities ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   700
	OCL_SVAR(  OC_UINT8, Station, airport_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   701
	OCL_NULL( 2 ),         // Bus/truck status, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   702
	OCL_SVAR(  OC_UINT8, Station, blocked_months_obsolete ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   703
	OCL_NULL( 1 ),         // Unknown
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   704
	OCL_SVAR( OC_FILE_U16 | OC_VAR_U32, Station, airport_flags ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   705
	OCL_SVAR( OC_UINT16, Station, last_vehicle ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   706
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   707
	OCL_NULL( 4 ),         // Junk at end of chunk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   708
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   709
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   710
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   711
static bool LoadOldStation(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   712
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   713
	Station *st;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   714
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   715
	if (!AddBlockIfNeeded(&_station_pool, num))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   716
		error("Stations: failed loading savegame: too many stations");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   717
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   718
	st = GetStation(num);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   719
	_current_station_id = num;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   720
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   721
	if (!LoadChunk(ls, st, station_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   722
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   723
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   724
	if (st->xy != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   725
		if (st->train_tile) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   726
			/* Calculate the trainst_w and trainst_h */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   727
			int w = (_old_platforms >> 3) & 0x7;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   728
			int h = (_old_platforms & 0x7);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   729
			st->trainst_w = w;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   730
			st->trainst_h = h;
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   731
		}
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   732
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   733
		st->town    = GetTown(REMAP_TOWN_IDX(_old_town_index));
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   734
		st->string_id = RemapOldStringID(_old_string_id);
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   735
	}
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   736
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   737
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   738
}
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   739
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   740
static const OldChunks industry_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   741
	OCL_SVAR(   OC_TILE, Industry, xy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   742
	OCL_VAR ( OC_UINT32,   1, &_old_town_index ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   743
	OCL_SVAR(  OC_UINT8, Industry, width ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   744
	OCL_SVAR(  OC_UINT8, Industry, height ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   745
	OCL_SVAR(  OC_UINT8, Industry, produced_cargo[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   746
	OCL_SVAR(  OC_UINT8, Industry, produced_cargo[1] ),
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   747
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   748
	OCL_SVAR( OC_UINT16, Industry, cargo_waiting[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   749
	OCL_SVAR( OC_UINT16, Industry, cargo_waiting[1] ),
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   750
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   751
	OCL_SVAR(  OC_UINT8, Industry, production_rate[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   752
	OCL_SVAR(  OC_UINT8, Industry, production_rate[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   753
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   754
	OCL_SVAR(  OC_UINT8, Industry, accepts_cargo[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   755
	OCL_SVAR(  OC_UINT8, Industry, accepts_cargo[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   756
	OCL_SVAR(  OC_UINT8, Industry, accepts_cargo[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   757
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   758
	OCL_SVAR(  OC_UINT8, Industry, prod_level ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   759
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   760
	OCL_SVAR( OC_UINT16, Industry, last_mo_production[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   761
	OCL_SVAR( OC_UINT16, Industry, last_mo_production[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   762
	OCL_SVAR( OC_UINT16, Industry, last_mo_transported[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   763
	OCL_SVAR( OC_UINT16, Industry, last_mo_transported[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   764
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   765
	OCL_SVAR(  OC_UINT8, Industry, pct_transported[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   766
	OCL_SVAR(  OC_UINT8, Industry, pct_transported[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   767
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   768
	OCL_SVAR( OC_UINT16, Industry, total_production[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   769
	OCL_SVAR( OC_UINT16, Industry, total_production[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   770
	OCL_SVAR( OC_UINT16, Industry, total_transported[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   771
	OCL_SVAR( OC_UINT16, Industry, total_transported[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   772
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   773
	OCL_SVAR(  OC_UINT8, Industry, type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   774
	OCL_SVAR(  OC_UINT8, Industry, owner ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   775
	OCL_SVAR(  OC_UINT8, Industry, color_map ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   776
	OCL_SVAR(  OC_UINT8, Industry, last_prod_year ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   777
	OCL_SVAR( OC_UINT16, Industry, counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   778
	OCL_SVAR(  OC_UINT8, Industry, was_cargo_delivered ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   779
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   780
	OCL_NULL( 9 ), // Random junk at the end of this chunk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   781
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   782
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   783
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   784
static bool LoadOldIndustry(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   785
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   786
	Industry *i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   787
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   788
	if (!AddBlockIfNeeded(&_industry_pool, num))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   789
		error("Industries: failed loading savegame: too many industries");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   790
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   791
	i = GetIndustry(num);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   792
	if (!LoadChunk(ls, i, industry_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   793
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   794
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   795
	if (i->xy != 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   796
		i->town = GetTown(REMAP_TOWN_IDX(_old_town_index));
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   797
	}
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   798
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   799
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   800
}
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   801
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   802
static uint _current_player_id;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   803
static uint16 _old_inaugurated_year;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   804
static int32 _old_yearly;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   805
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   806
static const OldChunks player_yearly_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   807
	OCL_VAR(  OC_INT32,   1, &_old_yearly ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   808
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   809
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   810
static bool OldPlayerYearly(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   811
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   812
	int i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   813
	Player *p = DEREF_PLAYER(_current_player_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   814
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   815
	for (i = 0; i < 13; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   816
		if (!LoadChunk(ls, NULL, player_yearly_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   817
			return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   818
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   819
		p->yearly_expenses[num][i] = _old_yearly;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   820
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   821
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   822
	return true;
436
6d8fb39a154f (svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents: 410
diff changeset
   823
}
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   824
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   825
static const OldChunks player_economy_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   826
	OCL_SVAR( OC_INT32, PlayerEconomyEntry, income ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   827
	OCL_SVAR( OC_INT32, PlayerEconomyEntry, expenses ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   828
	OCL_SVAR( OC_INT32, PlayerEconomyEntry, delivered_cargo ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   829
	OCL_SVAR( OC_INT32, PlayerEconomyEntry, performance_history ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   830
	OCL_SVAR( OC_FILE_I32 | OC_VAR_I64, PlayerEconomyEntry, company_value ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   831
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   832
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   833
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   834
static bool OldPlayerEconomy(LoadgameState *ls, int num)
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   835
{
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   836
	int i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   837
	Player *p = DEREF_PLAYER(_current_player_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   838
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   839
	if (!LoadChunk(ls, &p->cur_economy, player_economy_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   840
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   841
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   842
	/* Don't ask, but the number in TTD(Patch) are inversed to OpenTTD */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   843
	p->cur_economy.income   = -p->cur_economy.income;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   844
	p->cur_economy.expenses = -p->cur_economy.expenses;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   845
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   846
	for (i = 0; i < 24; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   847
		if (!LoadChunk(ls, &p->old_economy[i], player_economy_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   848
			return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   849
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   850
		p->old_economy[i].income   = -p->old_economy[i].income;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   851
		p->old_economy[i].expenses = -p->old_economy[i].expenses;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   852
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   853
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   854
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   855
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   856
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   857
static const OldChunks player_ai_build_rec_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   858
	OCL_SVAR(   OC_TILE, AiBuildRec, spec_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   859
	OCL_SVAR(   OC_TILE, AiBuildRec, use_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   860
	OCL_SVAR(  OC_UINT8, AiBuildRec, rand_rng ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   861
	OCL_SVAR(  OC_UINT8, AiBuildRec, cur_building_rule ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   862
	OCL_SVAR(  OC_UINT8, AiBuildRec, unk6 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   863
	OCL_SVAR(  OC_UINT8, AiBuildRec, unk7 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   864
	OCL_SVAR(  OC_UINT8, AiBuildRec, buildcmd_a ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   865
	OCL_SVAR(  OC_UINT8, AiBuildRec, buildcmd_b ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   866
	OCL_SVAR(  OC_UINT8, AiBuildRec, direction ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   867
	OCL_SVAR(  OC_UINT8, AiBuildRec, cargo ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   868
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   869
	OCL_NULL( 8 ),  // Junk...
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   870
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   871
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   872
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   873
static bool OldLoadAIBuildRec(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   874
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   875
	Player *p = DEREF_PLAYER(_current_player_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   876
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   877
	switch (num) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   878
		case 0: return LoadChunk(ls, &p->ai.src, player_ai_build_rec_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   879
		case 1: return LoadChunk(ls, &p->ai.dst, player_ai_build_rec_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   880
		case 2: return LoadChunk(ls, &p->ai.mid1, player_ai_build_rec_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   881
		case 3: return LoadChunk(ls, &p->ai.mid2, player_ai_build_rec_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   882
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   883
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   884
	return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   885
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   886
static const OldChunks player_ai_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   887
	OCL_SVAR(  OC_UINT8, PlayerAI, state ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   888
	OCL_NULL( 1 ),         // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   889
	OCL_SVAR(  OC_UINT8, PlayerAI, state_mode ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   890
	OCL_SVAR( OC_UINT16, PlayerAI, state_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   891
	OCL_SVAR( OC_UINT16, PlayerAI, timeout_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   892
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   893
	OCL_CHUNK( 4, OldLoadAIBuildRec ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   894
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   895
	OCL_NULL( 20 ),        // More junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   896
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   897
	OCL_SVAR(  OC_UINT8, PlayerAI, cargo_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   898
	OCL_SVAR(  OC_UINT8, PlayerAI, num_wagons ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   899
	OCL_SVAR(  OC_UINT8, PlayerAI, build_kind ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   900
	OCL_SVAR(  OC_UINT8, PlayerAI, num_build_rec ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   901
	OCL_SVAR(  OC_UINT8, PlayerAI, num_loco_to_build ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   902
	OCL_SVAR(  OC_UINT8, PlayerAI, num_want_fullload ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   903
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   904
	OCL_NULL( 14 ),        // Oh no more junk :|
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   905
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   906
	OCL_NULL( 2 ),         // Loco-id, not used
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   907
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   908
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   909
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   910
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   911
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[3] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   912
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[4] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   913
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[5] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   914
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[6] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   915
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[7] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   916
	OCL_SVAR( OC_UINT16, PlayerAI, wagon_list[8] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   917
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   918
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   919
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   920
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[3] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   921
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[4] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   922
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[5] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   923
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[6] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   924
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[7] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   925
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[8] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   926
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[9] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   927
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[10] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   928
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[11] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   929
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[12] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   930
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[13] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   931
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[14] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   932
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[15] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   933
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[16] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   934
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[17] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   935
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[18] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   936
	OCL_SVAR(  OC_UINT8, PlayerAI, order_list_blocks[19] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   937
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   938
	OCL_SVAR( OC_UINT16, PlayerAI, start_tile_a ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   939
	OCL_SVAR( OC_UINT16, PlayerAI, start_tile_b ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   940
	OCL_SVAR( OC_UINT16, PlayerAI, cur_tile_a ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   941
	OCL_SVAR( OC_UINT16, PlayerAI, cur_tile_b ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   942
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   943
	OCL_SVAR(  OC_UINT8, PlayerAI, start_dir_a ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   944
	OCL_SVAR(  OC_UINT8, PlayerAI, start_dir_b ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   945
	OCL_SVAR(  OC_UINT8, PlayerAI, cur_dir_a ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   946
	OCL_SVAR(  OC_UINT8, PlayerAI, cur_dir_b ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   947
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   948
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_tile_count ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   949
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   950
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   951
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   952
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   953
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   954
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   955
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   956
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[3] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   957
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[3] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   958
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[4] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   959
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[4] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   960
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[5] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   961
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[5] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   962
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[6] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   963
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[6] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   964
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[7] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   965
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[7] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   966
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[8] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   967
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[8] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   968
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[9] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   969
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[9] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   970
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[10] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   971
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[10] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   972
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[11] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   973
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[11] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   974
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[12] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   975
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[12] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   976
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[13] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   977
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[13] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   978
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[14] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   979
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[14] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   980
	OCL_SVAR(   OC_TILE, PlayerAI, banned_tiles[15] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   981
	OCL_SVAR(  OC_UINT8, PlayerAI, banned_val[15] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   982
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   983
	OCL_SVAR(  OC_UINT8, PlayerAI, railtype_to_use ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   984
	OCL_SVAR(  OC_UINT8, PlayerAI, route_type_mask ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   985
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   986
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   987
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   988
static bool OldPlayerAI(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   989
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   990
	Player *p = DEREF_PLAYER(_current_player_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   991
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   992
	return LoadChunk(ls, &p->ai, player_ai_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   993
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   994
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   995
static const OldChunks player_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   996
	OCL_VAR ( OC_UINT16,   1, &_old_string_id ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   997
	OCL_SVAR( OC_UINT32, Player, name_2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   998
	OCL_SVAR( OC_UINT32, Player, face ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
   999
	OCL_VAR ( OC_UINT16,   1, &_old_string_id_2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1000
	OCL_SVAR( OC_UINT32, Player, president_name_2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1001
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1002
	OCL_SVAR(  OC_INT32, Player, player_money ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1003
	OCL_SVAR(  OC_INT32, Player, current_loan ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1004
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1005
	OCL_SVAR(  OC_UINT8, Player, player_color ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1006
	OCL_SVAR(  OC_UINT8, Player, player_money_fraction ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1007
	OCL_SVAR(  OC_UINT8, Player, quarters_of_bankrupcy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1008
	OCL_SVAR(  OC_UINT8, Player, bankrupt_asked ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1009
	OCL_SVAR( OC_UINT32, Player, bankrupt_value ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1010
	OCL_SVAR( OC_UINT16, Player, bankrupt_timeout ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1011
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1012
	OCL_SVAR( OC_FILE_U32 | OC_VAR_U16, Player, cargo_types ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1013
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1014
	OCL_CHUNK( 3, OldPlayerYearly ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1015
	OCL_CHUNK( 1, OldPlayerEconomy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1016
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1017
	OCL_VAR ( OC_UINT16,   1,    &_old_inaugurated_year ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1018
	OCL_SVAR(   OC_TILE, Player, last_build_coordinate ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1019
	OCL_SVAR(  OC_UINT8, Player, num_valid_stat_ent ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1020
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1021
	OCL_CHUNK( 1, OldPlayerAI ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1022
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1023
	OCL_SVAR(  OC_UINT8, Player, block_preview ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1024
	OCL_SVAR(  OC_UINT8, Player, ai.tick ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1025
	OCL_SVAR(  OC_UINT8, Player, max_railtype ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1026
	OCL_SVAR(   OC_TILE, Player, location_of_house ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1027
	OCL_SVAR(  OC_UINT8, Player, share_owners[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1028
	OCL_SVAR(  OC_UINT8, Player, share_owners[1] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1029
	OCL_SVAR(  OC_UINT8, Player, share_owners[2] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1030
	OCL_SVAR(  OC_UINT8, Player, share_owners[3] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1031
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1032
	OCL_NULL( 8 ), // junk at end of chunk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1033
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1034
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1035
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1036
static bool LoadOldPlayer(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1037
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1038
	Player *p = DEREF_PLAYER(num);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1039
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1040
	_current_player_id = num;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1041
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1042
	if (!LoadChunk(ls, p, player_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1043
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1044
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1045
	p->name_1 = RemapOldStringID(_old_string_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1046
	p->president_name_1 = RemapOldStringID(_old_string_id_2);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1047
	p->money64 = p->player_money;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1048
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1049
	if (num == 0) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1050
		/* If the first player has no name, make sure we call it UNNAMED */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1051
		if (p->name_1 == 0)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1052
			p->name_1 = STR_SV_UNNAMED;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1053
	} else {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1054
		/* Beside some multiplayer maps (1 on 1), which we don't official support,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1055
		all other players are an AI.. mark them as such */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1056
		p->is_ai = 1;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1057
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1058
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1059
	/* Sometimes it is better to not ask.. in old scenarios, the money
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1060
	was always 893288 pounds. In the newer versions this is correct,
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1061
	but correct for those oldies
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1062
	Ps: this also means that if you had exact 893288 pounds, you will go back
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1063
	to 10000.. this is a very VERY small chance ;) */
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1064
	if (p->player_money == 893288)
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1065
		p->money64 = p->player_money = p->current_loan = 100000;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1066
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1067
	_player_colors[num] = p->player_color;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1068
	p->inaugurated_year = _old_inaugurated_year - MAX_YEAR_BEGIN_REAL;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1069
	if (p->location_of_house == 0xFFFF)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1070
		p->location_of_house = 0;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1071
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1072
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1073
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1074
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1075
static uint32 _old_order_ptr;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1076
static uint16 _old_next_ptr;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1077
static uint32 _current_vehicle_id;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1078
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1079
static const OldChunks vehicle_train_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1080
	OCL_SVAR(  OC_UINT8, VehicleRail, track ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1081
	OCL_SVAR(  OC_UINT8, VehicleRail, force_proceed ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1082
	OCL_SVAR( OC_UINT16, VehicleRail, crash_anim_pos ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1083
	OCL_SVAR(  OC_UINT8, VehicleRail, railtype ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1084
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1085
	OCL_NULL( 5 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1086
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1087
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1088
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1089
static const OldChunks vehicle_road_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1090
	OCL_SVAR(  OC_UINT8, VehicleRoad, state ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1091
	OCL_SVAR(  OC_UINT8, VehicleRoad, frame ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1092
	OCL_SVAR( OC_UINT16, VehicleRoad, unk2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1093
	OCL_SVAR(  OC_UINT8, VehicleRoad, overtaking ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1094
	OCL_SVAR(  OC_UINT8, VehicleRoad, overtaking_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1095
	OCL_SVAR( OC_UINT16, VehicleRoad, crashed_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1096
	OCL_SVAR(  OC_UINT8, VehicleRoad, reverse_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1097
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1098
	OCL_NULL( 1 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1099
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1100
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1101
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1102
static const OldChunks vehicle_ship_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1103
	OCL_SVAR(  OC_UINT8, VehicleShip, state ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1104
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1105
	OCL_NULL( 9 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1106
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1107
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1108
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1109
static const OldChunks vehicle_air_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1110
	OCL_SVAR(  OC_UINT8, VehicleAir, pos ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1111
	OCL_SVAR(  OC_FILE_U8 | OC_VAR_U16, VehicleAir, targetairport ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1112
	OCL_SVAR( OC_UINT16, VehicleAir, crashed_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1113
	OCL_SVAR(  OC_UINT8, VehicleAir, state ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1114
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1115
	OCL_NULL( 5 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1116
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1117
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1118
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1119
static const OldChunks vehicle_special_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1120
	OCL_SVAR( OC_UINT16, VehicleSpecial, unk0 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1121
	OCL_SVAR(  OC_UINT8, VehicleSpecial, unk2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1122
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1123
	OCL_NULL( 7 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1124
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1125
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1126
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1127
static const OldChunks vehicle_disaster_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1128
	OCL_SVAR( OC_UINT16, VehicleDisaster, image_override ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1129
	OCL_SVAR( OC_UINT16, VehicleDisaster, unk2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1130
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1131
	OCL_NULL( 6 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1132
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1133
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1134
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1135
static const OldChunks vehicle_empty_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1136
	OCL_NULL( 10 ), // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1137
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1138
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1139
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1140
static bool LoadOldVehicleUnion(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1141
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1142
	Vehicle *v = GetVehicle(_current_vehicle_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1143
	uint temp = ls->total_read;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1144
	bool res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1145
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1146
	switch (v->type) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1147
		case VEH_Train:    res = LoadChunk(ls, &v->u.rail,     vehicle_train_chunk);    break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1148
		case VEH_Road:     res = LoadChunk(ls, &v->u.road,     vehicle_road_chunk);     break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1149
		case VEH_Ship:     res = LoadChunk(ls, &v->u.ship,     vehicle_ship_chunk);     break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1150
		case VEH_Aircraft: res = LoadChunk(ls, &v->u.air,      vehicle_air_chunk);      break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1151
		case VEH_Special:  res = LoadChunk(ls, &v->u.special,  vehicle_special_chunk);  break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1152
		case VEH_Disaster: res = LoadChunk(ls, &v->u.disaster, vehicle_disaster_chunk); break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1153
		default:           res = LoadChunk(ls, NULL,           vehicle_empty_chunk);    break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1154
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1155
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1156
	/* This chunk size should always be 10 bytes */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1157
	if (ls->total_read - temp != 10) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1158
		DEBUG(oldloader, 4)("[OldLoader] Assert failed in Vehicle");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1159
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1160
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1161
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1162
	return res;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1163
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1164
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1165
static const OldChunks vehicle_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1166
	OCL_SVAR(  OC_UINT8, Vehicle, type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1167
	OCL_SVAR(  OC_UINT8, Vehicle, subtype ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1168
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1169
	OCL_NULL( 2 ),         // Hash, calculated automatically
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1170
	OCL_NULL( 2 ),         // Index, calculated automatically
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1171
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1172
	OCL_VAR ( OC_UINT32,   1, &_old_order_ptr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1173
	OCL_VAR ( OC_UINT16,   1, &_old_order ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1174
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1175
	OCL_SVAR(  OC_UINT8, Vehicle, num_orders ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1176
	OCL_SVAR(  OC_UINT8, Vehicle, cur_order_index ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1177
	OCL_SVAR(   OC_TILE, Vehicle, dest_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1178
	OCL_SVAR( OC_UINT16, Vehicle, load_unload_time_rem ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1179
	OCL_SVAR( OC_UINT16, Vehicle, date_of_last_service ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1180
	OCL_SVAR( OC_UINT16, Vehicle, service_interval ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1181
	OCL_SVAR( OC_FILE_U8 | OC_VAR_U16, Vehicle, last_station_visited ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1182
	OCL_SVAR(  OC_UINT8, Vehicle, tick_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1183
	OCL_SVAR( OC_UINT16, Vehicle, max_speed ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1184
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1185
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, Vehicle, x_pos ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1186
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, Vehicle, y_pos ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1187
	OCL_SVAR(  OC_UINT8, Vehicle, z_pos ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1188
	OCL_SVAR(  OC_UINT8, Vehicle, direction ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1189
	OCL_SVAR(   OC_INT8, Vehicle, x_offs ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1190
	OCL_SVAR(   OC_INT8, Vehicle, y_offs ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1191
	OCL_SVAR(  OC_UINT8, Vehicle, sprite_width ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1192
	OCL_SVAR(  OC_UINT8, Vehicle, sprite_height ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1193
	OCL_SVAR(  OC_UINT8, Vehicle, z_height ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1194
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1195
	OCL_SVAR(  OC_UINT8, Vehicle, owner ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1196
	OCL_SVAR(   OC_TILE, Vehicle, tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1197
	OCL_SVAR( OC_UINT16, Vehicle, cur_image ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1198
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1199
	OCL_NULL( 8 ),        // Vehicle sprite box, calculated automatically
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1200
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1201
	OCL_SVAR( OC_FILE_U16 | OC_VAR_U8, Vehicle, vehstatus ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1202
	OCL_SVAR( OC_UINT16, Vehicle, cur_speed ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1203
	OCL_SVAR(  OC_UINT8, Vehicle, subspeed ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1204
	OCL_SVAR(  OC_UINT8, Vehicle, acceleration ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1205
	OCL_SVAR(  OC_UINT8, Vehicle, progress ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1206
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1207
	OCL_SVAR(  OC_UINT8, Vehicle, cargo_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1208
	OCL_SVAR( OC_UINT16, Vehicle, cargo_cap ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1209
	OCL_SVAR( OC_UINT16, Vehicle, cargo_count ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1210
	OCL_SVAR( OC_FILE_U8 | OC_VAR_U16, Vehicle, cargo_source ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1211
	OCL_SVAR(  OC_UINT8, Vehicle, cargo_days ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1212
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1213
	OCL_SVAR( OC_UINT16, Vehicle, age ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1214
	OCL_SVAR( OC_UINT16, Vehicle, max_age ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1215
	OCL_SVAR(  OC_UINT8, Vehicle, build_year ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1216
	OCL_SVAR( OC_FILE_U8 | OC_VAR_U16, Vehicle, unitnumber ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1217
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1218
	OCL_SVAR( OC_UINT16, Vehicle, engine_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1219
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1220
	OCL_SVAR(  OC_UINT8, Vehicle, spritenum ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1221
	OCL_SVAR(  OC_UINT8, Vehicle, day_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1222
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1223
	OCL_SVAR(  OC_UINT8, Vehicle, breakdowns_since_last_service ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1224
	OCL_SVAR(  OC_UINT8, Vehicle, breakdown_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1225
	OCL_SVAR(  OC_UINT8, Vehicle, breakdown_delay ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1226
	OCL_SVAR(  OC_UINT8, Vehicle, breakdown_chance ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1227
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1228
	OCL_SVAR( OC_UINT16, Vehicle, reliability ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1229
	OCL_SVAR( OC_UINT16, Vehicle, reliability_spd_dec ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1230
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1231
	OCL_SVAR(  OC_INT32, Vehicle, profit_this_year ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1232
	OCL_SVAR(  OC_INT32, Vehicle, profit_last_year ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1233
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1234
	OCL_VAR ( OC_UINT16,   1, &_old_next_ptr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1235
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1236
	OCL_SVAR( OC_UINT32, Vehicle, value ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1237
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1238
	OCL_VAR ( OC_UINT16,   1, &_old_string_id ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1239
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1240
	OCL_CHUNK( 1, LoadOldVehicleUnion ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1241
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1242
	OCL_NULL( 20 ), // Junk at end of struct (TTDPatch has some data in it)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1243
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1244
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1245
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1246
static bool LoadOldVehicle(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1247
{
959
b031d88c76f3 (svn r1451) Fix some of the signed/unsigned comparison warnings
tron
parents: 923
diff changeset
  1248
	uint i;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1249
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1250
	/* Read the TTDPatch flags, because we need some info from it */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1251
	ReadTTDPatchFlags();
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1252
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1253
	for (i = 0; i < _old_vehicle_multipler; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1254
		Vehicle *v;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1255
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1256
		_current_vehicle_id = num * _old_vehicle_multipler + i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1257
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1258
		if (!AddBlockIfNeeded(&_vehicle_pool, _current_vehicle_id))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1259
			error("Vehicles: failed loading savegame: too many vehicles");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1260
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1261
		v = GetVehicle(_current_vehicle_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1262
		if (!LoadChunk(ls, v, vehicle_chunk))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1263
			return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1264
1340
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1265
		/* This should be consistent, else we have a big problem... */
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1266
		if (v->index != _current_vehicle_id) {
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1267
			DEBUG(oldloader, 0)("[OldLoader] -- Loading failed - vehicle-array is invalid");
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1268
			return false;
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1269
		}
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1270
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1271
		if (_old_order_ptr != 0 && _old_order_ptr != 0xFFFFFFFF) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1272
			v->orders = GetOrder(REMAP_ORDER_IDX(_old_order_ptr));
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1273
		}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1274
		AssignOrder(&v->current_order, UnpackOldOrder(_old_order));
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1275
		/* TTDPatch maps sprites from 0x2000 up. */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1276
		if (v->cur_image >= 0x2000)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1277
			v->cur_image -= 0x2000 - _custom_sprites_base;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1278
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1279
		/* For some reason we need to correct for this */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1280
		switch (v->spritenum) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1281
			case 0xfd: break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1282
			case 0xff: v->spritenum = 0xfe; break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1283
			default:   v->spritenum >>= 1; break;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1284
		}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1285
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1286
		if (_old_next_ptr != 0xFFFF)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1287
			v->next = GetVehicle(_old_next_ptr);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1288
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1289
		v->string_id = RemapOldStringID(_old_string_id);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1290
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1291
		/* Vehicle-subtype is different in TTD(Patch) */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1292
		if (v->type == VEH_Special)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1293
			v->subtype = v->subtype >> 1;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1294
	}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1295
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1296
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1297
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1298
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1299
static const OldChunks sign_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1300
	OCL_SVAR( OC_UINT16, SignStruct, str ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1301
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32,SignStruct, x ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1302
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32,SignStruct, y ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1303
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I8, SignStruct, z ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1304
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1305
	OCL_NULL( 6 ),         // Width of sign, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1306
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1307
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1308
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1309
static bool LoadOldSign(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1310
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1311
	if (!AddBlockIfNeeded(&_sign_pool, num))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1312
		error("Signs: failed loading savegame: too many signs");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1313
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1314
	return LoadChunk(ls, GetSign(num), sign_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1315
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1316
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1317
static const OldChunks engine_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1318
	OCL_SVAR( OC_UINT16, Engine, player_avail ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1319
	OCL_SVAR( OC_UINT16, Engine, intro_date ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1320
	OCL_SVAR( OC_UINT16, Engine, age ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1321
	OCL_SVAR( OC_UINT16, Engine, reliability ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1322
	OCL_SVAR( OC_UINT16, Engine, reliability_spd_dec ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1323
	OCL_SVAR( OC_UINT16, Engine, reliability_start ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1324
	OCL_SVAR( OC_UINT16, Engine, reliability_max ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1325
	OCL_SVAR( OC_UINT16, Engine, reliability_final ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1326
	OCL_SVAR( OC_UINT16, Engine, duration_phase_1 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1327
	OCL_SVAR( OC_UINT16, Engine, duration_phase_2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1328
	OCL_SVAR( OC_UINT16, Engine, duration_phase_3 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1329
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1330
	OCL_SVAR(  OC_UINT8, Engine, lifelength ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1331
	OCL_SVAR(  OC_UINT8, Engine, flags ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1332
	OCL_SVAR(  OC_UINT8, Engine, preview_player ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1333
	OCL_SVAR(  OC_UINT8, Engine, preview_wait ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1334
	OCL_SVAR(  OC_UINT8, Engine, railtype ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1335
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1336
	OCL_NULL( 1 ),         // Junk
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1337
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1338
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1339
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1340
static bool LoadOldEngine(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1341
{
1926
68d60188a22f (svn r2432) Use GetEngine() instead of DEREF_ENGINE() or even _engines[]
tron
parents: 1891
diff changeset
  1342
	if (!LoadChunk(ls, GetEngine(num), engine_chunk))
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1343
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1344
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1345
	/* Make sure wagons are marked as do-not-age */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1346
	if ((num >= 27 && num < 54) || (num >= 57 && num < 84) || (num >= 89 && num < 116))
1926
68d60188a22f (svn r2432) Use GetEngine() instead of DEREF_ENGINE() or even _engines[]
tron
parents: 1891
diff changeset
  1347
		GetEngine(num)->age = 0xFFFF;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1348
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1349
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1350
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1351
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1352
static const OldChunks subsidy_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1353
	OCL_SVAR(  OC_UINT8, Subsidy, cargo_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1354
	OCL_SVAR(  OC_UINT8, Subsidy, age ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1355
	OCL_SVAR(  OC_FILE_U8 | OC_VAR_U16, Subsidy, from ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1356
	OCL_SVAR(  OC_FILE_U8 | OC_VAR_U16, Subsidy, to ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1357
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1358
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1359
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1360
static bool LoadOldSubsidy(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1361
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1362
	return LoadChunk(ls, &_subsidies[num], subsidy_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1363
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1364
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1365
static const OldChunks game_difficulty_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1366
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, max_no_competitors ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1367
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, competitor_start_time ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1368
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, number_towns ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1369
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, number_industries ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1370
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, max_loan ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1371
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, initial_interest ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1372
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, vehicle_costs ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1373
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, competitor_speed ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1374
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, competitor_intelligence ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1375
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, vehicle_breakdowns ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1376
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, subsidy_multiplier ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1377
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, construction_cost ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1378
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, terrain_type ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1379
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, quantity_sea_lakes ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1380
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, economy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1381
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, line_reverse_mode ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1382
	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, disasters ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1383
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1384
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1385
static bool LoadOldGameDifficulty(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1386
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1387
	return LoadChunk(ls, &_opt.diff, game_difficulty_chunk);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1388
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1389
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1390
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1391
static bool LoadOldMapPart1(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1392
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1393
	uint i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1394
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1395
	for (i = 0; i < OLD_MAP_SIZE; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1396
		_map_owner[i] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1397
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1398
	for (i = 0; i < OLD_MAP_SIZE; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1399
		_map2[i] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1400
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1401
	for (i = 0; i < OLD_MAP_SIZE; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1402
		_old_map3[i * 2] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1403
		_old_map3[i * 2 + 1] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1404
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1405
	for (i = 0; i < OLD_MAP_SIZE / 4; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1406
		_map_extra_bits[i] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1407
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1408
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1409
	return !ls->failed;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1410
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1411
static bool LoadOldMapPart2(LoadgameState *ls, int num)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1412
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1413
	uint i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1414
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1415
	for (i = 0; i < OLD_MAP_SIZE; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1416
		_map_type_and_height[i] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1417
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1418
	for (i = 0; i < OLD_MAP_SIZE; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1419
		_map5[i] = ReadByte(ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1420
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1421
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1422
	return !ls->failed;
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1423
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1424
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1425
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1426
static uint32 _old_cur_town_ctr;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1427
static const OldChunks main_chunk[] = {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1428
	OCL_ASSERT( 0 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1429
	OCL_VAR ( OC_UINT16,   1, &_date ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1430
	OCL_VAR ( OC_UINT16,   1, &_date_fract ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1431
	OCL_NULL( 600 ),            // TextEffects
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1432
	OCL_VAR ( OC_UINT32,   2, &_random_seeds[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1433
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1434
	OCL_ASSERT( 0x264 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1435
	OCL_CHUNK(  70, LoadOldTown ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1436
	OCL_ASSERT( 0x1C18 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1437
	OCL_CHUNK(5000, LoadOldOrder ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1438
	OCL_ASSERT( 0x4328 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1439
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1440
	OCL_VAR (   OC_TILE, 256, &_animated_tile_list[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1441
	OCL_NULL( 4 ),              // old end-of-order-list-pointer, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1442
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1443
	OCL_CHUNK( 255, LoadOldDepot ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1444
	OCL_ASSERT( 0x4B26 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1445
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1446
	OCL_VAR ( OC_UINT32,   1, &_old_cur_town_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1447
	OCL_NULL( 2 ),              // timer_counter, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1448
	OCL_NULL( 2 ),              // land_code,     no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1449
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1450
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U8, 1, &_age_cargo_skip_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1451
	OCL_VAR ( OC_UINT16,   1, &_tick_counter ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1452
	OCL_VAR (   OC_TILE,   1, &_cur_tileloop_tile ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1453
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1454
	OCL_CHUNK( 49, LoadOldPrice ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1455
	OCL_CHUNK( 12, LoadOldCargoPaymentRate ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1456
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1457
	OCL_ASSERT( 0x4CBA ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1458
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1459
	OCL_CHUNK( 1, LoadOldMapPart1 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1460
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1461
	OCL_ASSERT( 0x48CBA ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1462
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1463
	OCL_CHUNK(250, LoadOldStation ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1464
	OCL_CHUNK( 90, LoadOldIndustry ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1465
	OCL_CHUNK(  8, LoadOldPlayer ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1466
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1467
	OCL_ASSERT( 0x547F2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1468
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1469
	OCL_CHUNK( 850, LoadOldVehicle ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1470
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1471
	OCL_ASSERT( 0x6F0F2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1472
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1473
	OCL_VAR (  OC_UINT8, 32 * 500, &_name_array[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1474
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1475
	OCL_NULL( 0x2000 ),            // Old hash-table, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1476
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1477
	OCL_CHUNK( 40, LoadOldSign ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1478
	OCL_CHUNK(256, LoadOldEngine ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1479
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1480
	OCL_VAR ( OC_UINT16,    1, &_vehicle_id_ctr_day ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1481
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1482
	OCL_CHUNK(  8, LoadOldSubsidy ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1483
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1484
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U32,   1, &_next_competitor_start ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1485
	OCL_VAR ( OC_FILE_I16 | OC_VAR_I32,   1, &_saved_scrollpos_x ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1486
	OCL_VAR ( OC_FILE_I16 | OC_VAR_I32,   1, &_saved_scrollpos_y ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1487
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U8,    1, &_saved_scrollpos_zoom ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1488
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1489
	OCL_VAR ( OC_UINT32,    1, &_economy.max_loan ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1490
	OCL_VAR ( OC_UINT32,    1, &_economy.max_loan_unround ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1491
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U32,    1, &_economy.fluct ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1492
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1493
	OCL_VAR ( OC_UINT16,    1, &_disaster_delay ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1494
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1495
	OCL_NULL( 144 ),             // cargo-stuff, calculated in InitializeLandscapeVariables
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1496
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1497
	OCL_VAR ( OC_UINT16,  256, &_engine_name_strings[0] ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1498
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1499
	OCL_NULL( 144 ),             // AI cargo-stuff, calculated in InitializeLandscapeVariables
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1500
	OCL_NULL( 2 ),               // Company indexes of players, no longer in use
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1501
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1502
	OCL_VAR ( OC_FILE_U8 | OC_VAR_U16,    1, &_station_tick_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1503
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1504
	OCL_VAR (  OC_UINT8,    1, &_opt.currency ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1505
	OCL_VAR (  OC_UINT8,    1, &_opt.kilometers ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1506
	OCL_VAR ( OC_FILE_U8 | OC_VAR_U32,    1, &_cur_player_tick_index ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1507
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1508
	OCL_NULL( 2 ),               // Date stuff, calculated automatically
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1509
	OCL_NULL( 8 ),               // Player colors, calculated automatically
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1510
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1511
	OCL_VAR (  OC_UINT8,    1, &_economy.infl_amount ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1512
	OCL_VAR (  OC_UINT8,    1, &_economy.infl_amount_pr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1513
	OCL_VAR (  OC_UINT8,    1, &_economy.interest_rate ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1514
	OCL_VAR (  OC_UINT8,    1, &_avail_aircraft ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1515
	OCL_VAR (  OC_UINT8,    1, &_opt.road_side ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1516
	OCL_VAR (  OC_UINT8,    1, &_opt.town_name ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1517
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1518
	OCL_CHUNK( 1, LoadOldGameDifficulty ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1519
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1520
	OCL_ASSERT( 0x77130 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1521
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1522
	OCL_VAR (  OC_UINT8,    1, &_opt.diff_level ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1523
	OCL_VAR (  OC_UINT8,    1, &_opt.landscape ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1524
	OCL_VAR (  OC_UINT8,    1, &_trees_tick_ctr ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1525
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1526
	OCL_NULL( 1 ),               // Custom vehicle types yes/no, no longer used
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1527
	OCL_VAR (  OC_UINT8,    1, &_opt.snow_line ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1528
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1529
	OCL_NULL( 32 ),              // new_industry_randtable, no longer used (because of new design)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1530
	OCL_NULL( 36 ),              // cargo-stuff, calculated in InitializeLandscapeVariables
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1531
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1532
	OCL_ASSERT( 0x77179 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1533
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1534
	OCL_CHUNK( 1, LoadOldMapPart2 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1535
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1536
	OCL_ASSERT( 0x97179 ),
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1537
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1538
	/* Below any (if available) extra chunks from TTDPatch can follow */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1539
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1540
	OCL_END()
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1541
};
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1542
static bool LoadOldMain(LoadgameState *ls)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1543
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1544
	int i;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1545
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1546
	/* The first 49 is the name of the game + checksum, skip it */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1547
	fseek(ls->file, HEADER_SIZE, SEEK_SET);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1548
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1549
	DEBUG(oldloader, 4)("[OldLoader] Going to read main chunk..");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1550
	/* Load the biggest chunk */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1551
	if (!LoadChunk(&_ls, NULL, main_chunk)) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1552
		DEBUG(oldloader, 0)("[OldLoader] Loading failed!");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1553
		return false;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1554
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1555
	DEBUG(oldloader, 4)("[OldLoader] Done. Converting stuff..");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1556
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1557
	/* Fix some general stuff */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1558
	_opt.landscape = _opt.landscape & 0xF;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1559
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1560
	/* Remap some pointers */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1561
	_cur_town_ctr      = REMAP_TOWN_IDX(_old_cur_town_ctr);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1562
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1563
	/* _old_map3 is changed in _map3_lo and _map3_hi */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1564
	for (i = 0; i < OLD_MAP_SIZE; i++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1565
		_map3_lo[i] = _old_map3[i * 2];
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1566
		_map3_hi[i] = _old_map3[i * 2 + 1];
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1567
	}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1568
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1569
	for (i = 0; i < OLD_MAP_SIZE; i ++) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1570
		/* We save presignals different from TTDPatch, convert them */
1035
0a170deb6e33 (svn r1536) Move GET_TILEHEIGHT, GET_TILETYPE and IS_TILETYPE to map.h, turn them into inline functions and add some asserts
tron
parents: 1024
diff changeset
  1571
		if (IsTileType(i, MP_RAILWAY) && (_map5[i] & 0xC0) == 0x40) {
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1572
			/* This byte is always zero in TTD for this type of tile */
193
0a7025304867 (svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents: 123
diff changeset
  1573
			if (_map3_hi[i]) {
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1574
				/* Convert the presignals to our own format */
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1575
				_map3_hi[i] = (_map3_hi[i] >> 1) & 7;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1576
			}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1577
		}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1578
	}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1579
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1580
	/* Fix the game to be compatible with OpenTTD */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1581
	FixOldTowns();
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1582
	FixOldStations();
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1583
	FixOldVehicles();
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1584
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1585
	AddTypeToEngines();
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1586
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1587
	/* We have a new difficulty setting */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1588
	_opt.diff.town_council_tolerance = clamp(_opt.diff_level, 0, 2);
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1589
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1590
	DEBUG(oldloader, 4)("[OldLoader] Done!");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1591
	DEBUG(oldloader, 1)("[OldLoader] TTD(Patch) savegame successfully converted");
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1592
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1593
	return true;
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1594
}
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1595
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1596
bool LoadOldSaveGame(const char *file)
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1597
{
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1598
	DEBUG(oldloader, 4)("[OldLoader] Trying to load an TTD(Patch) savegame");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1599
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1600
	InitLoading(&_ls);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1601
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1602
	/* Open file */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1603
	_ls.file = fopen(file, "rb");
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1604
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1605
	if (_ls.file == NULL) {
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1606
		DEBUG(oldloader, 0)("[OldLoader] Could not open file %s", file);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1607
		return false;
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1608
	}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1609
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1610
	/* Load the main chunk */
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1611
	if (!LoadOldMain(&_ls))
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1612
		return false;
193
0a7025304867 (svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents: 123
diff changeset
  1613
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1614
	fclose(_ls.file);
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1615
1340
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1616
	_pause = 2;
50d99579ddd0 (svn r1844) -Fix: small protection in oldloader.c, and put the savegame on pause by default
truelight
parents: 1328
diff changeset
  1617
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1618
	return true;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1619
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1620
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1621
void GetOldSaveGameName(char *title, const char *file)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1622
{
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1623
	FILE *f;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1624
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1625
	f = fopen(file, "rb");
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1626
	title[0] = 0;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1627
	title[48] = 0;
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1628
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1629
	if (f == NULL)
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1630
		return;
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1631
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1632
	if (fread(title, 1, 48, f) != 48)
1326
f37b6aa28829 (svn r1830) -Codechange: small stuff to make the file more beautiful (tnx Tron)
truelight
parents: 1325
diff changeset
  1633
		title[0] = '\0';
1322
8697b73baa64 (svn r1826) -Feature: a brand new OldLoader so OpenTTD is TTD(Patch) compatible
truelight
parents: 1314
diff changeset
  1634
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1635
	fclose(f);
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1636
}
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1637
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1638
void GetOldScenarioGameName(char *title, const char *file)
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1639
{
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1640
	GetOldSaveGameName(title, file);
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
  1641
}