199 void InvalidatePlayerWindows(Player *p); |
199 void InvalidatePlayerWindows(Player *p); |
200 void AiDoGameLoop(Player *p); |
200 void AiDoGameLoop(Player *p); |
201 void UpdatePlayerMoney32(Player *p); |
201 void UpdatePlayerMoney32(Player *p); |
202 #define FOR_ALL_PLAYERS(p) for(p=_players; p != endof(_players); p++) |
202 #define FOR_ALL_PLAYERS(p) for(p=_players; p != endof(_players); p++) |
203 |
203 |
204 extern PlayerID _current_player; |
204 VARDEF PlayerID _local_player; |
|
205 VARDEF PlayerID _current_player; |
205 |
206 |
206 #define MAX_PLAYERS 8 |
207 #define MAX_PLAYERS 8 |
207 VARDEF Player _players[MAX_PLAYERS]; |
208 VARDEF Player _players[MAX_PLAYERS]; |
208 // NOSAVE: can be determined from player structs |
209 // NOSAVE: can be determined from player structs |
209 VARDEF byte _player_colors[MAX_PLAYERS]; |
210 VARDEF byte _player_colors[MAX_PLAYERS]; |
210 |
211 |
211 static inline Player* GetPlayer(uint i) |
212 static inline Player* GetPlayer(uint i) |
212 { |
213 { |
213 assert(i < lengthof(_players)); |
214 assert(i < lengthof(_players)); |
214 return &_players[i]; |
215 return &_players[i]; |
|
216 } |
|
217 |
|
218 static inline bool IsLocalPlayer(void) |
|
219 { |
|
220 return _local_player == _current_player; |
215 } |
221 } |
216 |
222 |
217 /** Returns the number of rail types the player can build |
223 /** Returns the number of rail types the player can build |
218 * @param *p Player in question |
224 * @param *p Player in question |
219 */ |
225 */ |