author | truelight |
Tue, 06 Dec 2005 17:05:14 +0000 | |
changeset 2720 | 135d5c0aa96c |
parent 2718 | 4e8f9e89af80 |
child 2721 | 806d0f4ddf32 |
permissions | -rw-r--r-- |
2690
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
1 |
#ifndef AI_EVENT |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
2 |
#define AI_EVENT |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
3 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
4 |
/* Make the ai_event macro set correctly */ |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
5 |
#ifdef GPMI |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
6 |
# include <gpmi.h> |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
7 |
# include "ai.h" |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
8 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
9 |
/* This is how we call events (with safety-check) to GPMI */ |
2718
4e8f9e89af80
(svn r3263) -Fix: use () around 'variables' in macros, gives less crashes ;)
truelight
parents:
2715
diff
changeset
|
10 |
# define ai_event(player, event, ...) \ |
4e8f9e89af80
(svn r3263) -Fix: use () around 'variables' in macros, gives less crashes ;)
truelight
parents:
2715
diff
changeset
|
11 |
if ((player) < MAX_PLAYERS && _ai_player[(player)].module != NULL) \ |
4e8f9e89af80
(svn r3263) -Fix: use () around 'variables' in macros, gives less crashes ;)
truelight
parents:
2715
diff
changeset
|
12 |
gpmi_event(_ai_player[(player)].module, (event), ##__VA_ARGS__) |
2690
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
13 |
|
2718
4e8f9e89af80
(svn r3263) -Fix: use () around 'variables' in macros, gives less crashes ;)
truelight
parents:
2715
diff
changeset
|
14 |
#else /* GPMI */ |
2690
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
15 |
|
2720
135d5c0aa96c
(svn r3265) -Fix: partly reverted back r3263, because MSVC, who else, doesn't support variadic macros............
truelight
parents:
2718
diff
changeset
|
16 |
# ifdef DEF_EVENTS |
135d5c0aa96c
(svn r3265) -Fix: partly reverted back r3263, because MSVC, who else, doesn't support variadic macros............
truelight
parents:
2718
diff
changeset
|
17 |
void CDECL empty_function(PlayerID player, int event, ...) {} |
135d5c0aa96c
(svn r3265) -Fix: partly reverted back r3263, because MSVC, who else, doesn't support variadic macros............
truelight
parents:
2718
diff
changeset
|
18 |
# else |
135d5c0aa96c
(svn r3265) -Fix: partly reverted back r3263, because MSVC, who else, doesn't support variadic macros............
truelight
parents:
2718
diff
changeset
|
19 |
extern void CDECL empty_function(PlayerID player, int event, ...); |
135d5c0aa96c
(svn r3265) -Fix: partly reverted back r3263, because MSVC, who else, doesn't support variadic macros............
truelight
parents:
2718
diff
changeset
|
20 |
# endif |
135d5c0aa96c
(svn r3265) -Fix: partly reverted back r3263, because MSVC, who else, doesn't support variadic macros............
truelight
parents:
2718
diff
changeset
|
21 |
# define ai_event empty_function |
2690
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
22 |
#endif /* GPMI */ |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
23 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
24 |
/* To make our life a bit easier; you now only have to define new |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
25 |
* events here, and automaticly they work in OpenTTD without including |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
26 |
* the ottd_event package. Just because of some lovely macro-shit ;) */ |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
27 |
#ifdef DEF_EVENTS |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
28 |
# define DEF_EVENTS |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
29 |
# define INITIAL_SET = -1 |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
30 |
#else |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
31 |
# define DEF_EVENTS extern |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
32 |
# define INITIAL_SET |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
33 |
#endif /* DEF_EVENTS */ |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
34 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
35 |
/* ------------ All available events -------------- */ |
2715
0ad451d9264b
(svn r3260) -Add: add events for AIs to check if a command execution failed or succeeded
truelight
parents:
2709
diff
changeset
|
36 |
DEF_EVENTS int ottd_Event_CommandFailed INITIAL_SET; // (tile, unique_id) |
0ad451d9264b
(svn r3260) -Add: add events for AIs to check if a command execution failed or succeeded
truelight
parents:
2709
diff
changeset
|
37 |
DEF_EVENTS int ottd_Event_CommandSucceeded INITIAL_SET; // (tile, unique_id) |
0ad451d9264b
(svn r3260) -Add: add events for AIs to check if a command execution failed or succeeded
truelight
parents:
2709
diff
changeset
|
38 |
|
2690
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
39 |
DEF_EVENTS int ottd_Event_BuildStation INITIAL_SET; // (station_index, station_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
40 |
DEF_EVENTS int ottd_Event_BuildRoadStation INITIAL_SET; // (station_index, station_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
41 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
42 |
DEF_EVENTS int ottd_Event_BuildDepot INITIAL_SET; // (depot_index, depot_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
43 |
DEF_EVENTS int ottd_Event_BuildRoadDepot INITIAL_SET; // (depot_index, depot_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
44 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
45 |
DEF_EVENTS int ottd_Event_BuildVehicle INITIAL_SET; // (vehicle_index, depot_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
46 |
DEF_EVENTS int ottd_Event_BuildRoadVehicle INITIAL_SET; // (vehicle_index, depot_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
47 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
48 |
DEF_EVENTS int ottd_Event_VehicleEnterDepot INITIAL_SET; // (vehicle_index, depot_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
49 |
DEF_EVENTS int ottd_Event_RoadVehicleEnterDepot INITIAL_SET; // (vehicle_index, depot_tile) |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
50 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
51 |
DEF_EVENTS int ottd_Event_GiveOrder INITIAL_SET; // (vehicle_index) |
2709 | 52 |
|
53 |
DEF_EVENTS int ottd_Event_BuildRoad INITIAL_SET; // (road_tile, road_pieces) |
|
2690
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
54 |
/* ----------------- End of list ------------------ */ |
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
55 |
|
2f810b43cb7f
(svn r3232) -Add: implemented the event-system for AIs
truelight
parents:
diff
changeset
|
56 |
#endif /* AI_EVENT */ |