diff options
Diffstat (limited to 'player.h')
-rw-r--r-- | player.h | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -192,12 +192,18 @@ int64 CalculateCompanyValue(Player *p); void InvalidatePlayerWindows(Player *p); void AiDoGameLoop(Player *p); void UpdatePlayerMoney32(Player *p); -#define DEREF_PLAYER(i) (&_players[i]) #define FOR_ALL_PLAYERS(p) for(p=_players; p != endof(_players); p++) #define MAX_PLAYERS 8 VARDEF Player _players[MAX_PLAYERS]; +#define DEREF_PLAYER(i) (GetPlayer(i)) +static inline Player* GetPlayer(uint i) +{ + assert(i < lengthof(_players)); + return &_players[i]; +} + #define IS_HUMAN_PLAYER(p) (!DEREF_PLAYER((byte)(p))->is_ai) #define IS_INTERACTIVE_PLAYER(p) (((byte)p) == _local_player) |