default.h
00001
00002
00003 #ifndef DEFAULT_H
00004 #define DEFAULT_H
00005
00006 #include "../../direction_type.h"
00007 #include "../../vehicle_type.h"
00008 #include "../../rail_type.h"
00009
00010 void AiDoGameLoop(Player*);
00011 void SaveLoad_AI(PlayerID id);
00012
00013 struct AiBuildRec {
00014 TileIndex spec_tile;
00015 TileIndex use_tile;
00016 byte rand_rng;
00017 byte cur_building_rule;
00018 byte unk6;
00019 byte unk7;
00020 byte buildcmd_a;
00021 byte buildcmd_b;
00022 byte direction;
00023 CargoID cargo;
00024 };
00025
00026 struct PlayerAI {
00027 byte state;
00028 byte tick;
00029 uint32 state_counter;
00030 uint16 timeout_counter;
00031
00032 byte state_mode;
00033 byte banned_tile_count;
00034 RailTypeByte railtype_to_use;
00035
00036 CargoID cargo_type;
00037 byte num_wagons;
00038 byte build_kind;
00039 byte num_build_rec;
00040 byte num_loco_to_build;
00041 byte num_want_fullload;
00042
00043 byte route_type_mask;
00044
00045 TileIndex start_tile_a;
00046 TileIndex cur_tile_a;
00047 DiagDirectionByte cur_dir_a;
00048 DiagDirectionByte start_dir_a;
00049
00050 TileIndex start_tile_b;
00051 TileIndex cur_tile_b;
00052 DiagDirectionByte cur_dir_b;
00053 DiagDirectionByte start_dir_b;
00054
00055 Vehicle *cur_veh;
00056
00057 AiBuildRec src, dst, mid1, mid2;
00058
00059 VehicleID wagon_list[9];
00060 byte order_list_blocks[20];
00061
00062 TileIndex banned_tiles[16];
00063 byte banned_val[16];
00064 };
00065
00066 extern PlayerAI _players_ai[MAX_PLAYERS];
00067
00068 #endif