src/ai/default/default.h
author rubidium
Sat, 12 Jan 2008 14:10:35 +0000
changeset 8254 1496654ca5e7
parent 8236 8a5dd0b42e47
child 9111 48ce04029fe4
permissions -rw-r--r--
(svn r11818) -Codechange: split player.h into smaller pieces.
2447
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
     1
/* $Id$ */
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
     2
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
     3
#ifndef DEFAULT_H
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
     4
#define DEFAULT_H
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
     5
8236
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8229
diff changeset
     6
#include "../../direction_type.h"
8254
1496654ca5e7 (svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents: 8236
diff changeset
     7
#include "../../vehicle_type.h"
1496654ca5e7 (svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents: 8236
diff changeset
     8
#include "../../rail_type.h"
8236
8a5dd0b42e47 (svn r11800) -Codechange: move some functions to a more logical location + some type safety.
rubidium
parents: 8229
diff changeset
     9
2447
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
    10
void AiDoGameLoop(Player*);
8229
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    11
void SaveLoad_AI(PlayerID id);
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    12
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    13
struct AiBuildRec {
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    14
	TileIndex spec_tile;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    15
	TileIndex use_tile;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    16
	byte rand_rng;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    17
	byte cur_building_rule;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    18
	byte unk6;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    19
	byte unk7;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    20
	byte buildcmd_a;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    21
	byte buildcmd_b;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    22
	byte direction;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    23
	CargoID cargo;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    24
};
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    25
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    26
struct PlayerAI {
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    27
	byte state;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    28
	byte tick;            ///< Used to determine how often to move
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    29
	uint32 state_counter; ///< Can hold tile index!
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    30
	uint16 timeout_counter;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    31
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    32
	byte state_mode;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    33
	byte banned_tile_count;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    34
	RailTypeByte railtype_to_use;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    35
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    36
	CargoID cargo_type;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    37
	byte num_wagons;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    38
	byte build_kind;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    39
	byte num_build_rec;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    40
	byte num_loco_to_build;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    41
	byte num_want_fullload;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    42
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    43
	byte route_type_mask;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    44
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    45
	TileIndex start_tile_a;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    46
	TileIndex cur_tile_a;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    47
	DiagDirectionByte cur_dir_a;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    48
	DiagDirectionByte start_dir_a;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    49
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    50
	TileIndex start_tile_b;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    51
	TileIndex cur_tile_b;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    52
	DiagDirectionByte cur_dir_b;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    53
	DiagDirectionByte start_dir_b;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    54
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    55
	Vehicle *cur_veh; ///< only used by some states
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    56
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    57
	AiBuildRec src, dst, mid1, mid2;
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    58
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    59
	VehicleID wagon_list[9];
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    60
	byte order_list_blocks[20];
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    61
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    62
	TileIndex banned_tiles[16];
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    63
	byte banned_val[16];
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    64
};
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    65
00e7467ceeee (svn r11792) -Codechange: move some (virtually) globally included AI related structs to a place where they are only included a few times.
rubidium
parents: 5475
diff changeset
    66
extern PlayerAI _players_ai[MAX_PLAYERS];
2447
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
    67
071e4afe707c (svn r2973) Move a function declaration somewhere where it belongs
tron
parents:
diff changeset
    68
#endif