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