diff options
author | truelight <truelight@openttd.org> | 2005-09-02 19:10:45 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2005-09-02 19:10:45 +0000 |
commit | d05f504c01fb88eb8b88d28b5fd5da664e31cd95 (patch) | |
tree | d01e499f40fb0d5d315c7530b74c76569fae0840 /ai_shared.c | |
parent | a181446829c3de933ccccffcc652c0c7b19f9968 (diff) | |
download | openttd-d05f504c01fb88eb8b88d28b5fd5da664e31cd95.tar.xz |
(svn r2907) -Codechange: splitted the AIs to their own directory. AINew becomes 'trolly', AIOld becomes 'default', both in their own dir in the 'ai' dir. More AIs to come.
Diffstat (limited to 'ai_shared.c')
-rw-r--r-- | ai_shared.c | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/ai_shared.c b/ai_shared.c deleted file mode 100644 index 8ce9df284..000000000 --- a/ai_shared.c +++ /dev/null @@ -1,124 +0,0 @@ -/* $Id$ */ - -#include "stdafx.h" -#include "openttd.h" -#include "debug.h" -#include "map.h" -#include "ai_new.h" -#include "vehicle.h" - -int AiNew_GetRailDirection(TileIndex tile_a, TileIndex tile_b, TileIndex tile_c) -{ - // 0 = vert - // 1 = horz - // 2 = dig up-left - // 3 = dig down-right - // 4 = dig down-left - // 5 = dig up-right - - int x1, x2, x3; - int y1, y2, y3; - - x1 = TileX(tile_a); - x2 = TileX(tile_b); - x3 = TileX(tile_c); - - y1 = TileY(tile_a); - y2 = TileY(tile_b); - y3 = TileY(tile_c); - - if (y1 == y2 && y2 == y3) return 0; - if (x1 == x2 && x2 == x3) return 1; - if (y2 > y1) { - if (x2 > x3) return 2; - else return 4; - } - if (x2 > x1) { - if (y2 > y3) return 2; - else return 5; - } - if (y1 > y2) { - if (x2 > x3) return 5; - else return 3; - } - if (x1 > x2) { - if (y2 > y3) return 4; - else return 3; - } - - return 0; -} - -int AiNew_GetRoadDirection(TileIndex tile_a, TileIndex tile_b, TileIndex tile_c) -{ - int x1, x2, x3; - int y1, y2, y3; - int r; - - x1 = TileX(tile_a); - x2 = TileX(tile_b); - x3 = TileX(tile_c); - - y1 = TileY(tile_a); - y2 = TileY(tile_b); - y3 = TileY(tile_c); - - r = 0; - - if (x1 < x2) r += 8; - if (y1 < y2) r += 1; - if (x1 > x2) r += 2; - if (y1 > y2) r += 4; - - if (x2 < x3) r += 2; - if (y2 < y3) r += 4; - if (x2 > x3) r += 8; - if (y2 > y3) r += 1; - - return r; -} - -// Get's the direction between 2 tiles seen from tile_a -int AiNew_GetDirection(TileIndex tile_a, TileIndex tile_b) -{ - if (TileY(tile_a) < TileY(tile_b)) return 1; - if (TileY(tile_a) > TileY(tile_b)) return 3; - if (TileX(tile_a) < TileX(tile_b)) return 2; - return 0; -} - -// This functions looks up if this vehicle is special for this AI -// and returns his flag -uint AiNew_GetSpecialVehicleFlag(Player *p, Vehicle *v) { - int i; - for (i=0;i<AI_MAX_SPECIAL_VEHICLES;i++) { - if (p->ainew.special_vehicles[i].veh_id == v->index) { - return p->ainew.special_vehicles[i].flag; - } - } - - // Not found :( - return 0; -} - -bool AiNew_SetSpecialVehicleFlag(Player *p, Vehicle *v, uint flag) { - int i, new_id = -1; - for (i=0;i<AI_MAX_SPECIAL_VEHICLES;i++) { - if (p->ainew.special_vehicles[i].veh_id == v->index) { - p->ainew.special_vehicles[i].flag |= flag; - return true; - } - if (new_id == -1 && p->ainew.special_vehicles[i].veh_id == 0 && - p->ainew.special_vehicles[i].flag == 0) - new_id = i; - } - - // Out of special_vehicle spots :s - if (new_id == -1) { - DEBUG(ai, 1)("special_vehicles list is too small :("); - return false; - } - p->ainew.special_vehicles[new_id].veh_id = v->index; - p->ainew.special_vehicles[new_id].flag = flag; - return true; -} |