diff options
Diffstat (limited to 'src/player_func.h')
-rw-r--r-- | src/player_func.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/player_func.h b/src/player_func.h new file mode 100644 index 000000000..2017e2cc6 --- /dev/null +++ b/src/player_func.h @@ -0,0 +1,53 @@ +/* $Id$ */ + +/** @file player_func.h Functions related to players. */ + +#ifndef PLAYER_FUNC_H +#define PLAYER_FUNC_H + +#include "core/math_func.hpp" +#include "player_type.h" +#include "tile_type.h" + +void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player); +void GetNameOfOwner(Owner owner, TileIndex tile); +void SetLocalPlayer(PlayerID new_player); + +extern PlayerByte _local_player; +extern PlayerByte _current_player; +/* NOSAVE: can be determined from player structs */ +extern byte _player_colors[MAX_PLAYERS]; +extern PlayerFace _player_face; ///< for player face storage in openttd.cfg + +bool IsHumanPlayer(PlayerID pi); + +static inline bool IsLocalPlayer() +{ + return _local_player == _current_player; +} + +static inline bool IsValidPlayer(PlayerID pi) +{ + return IsInsideBS(pi, PLAYER_FIRST, MAX_PLAYERS); +} + +static inline bool IsInteractivePlayer(PlayerID pi) +{ + return pi == _local_player; +} + + + +struct HighScore { + char company[100]; + StringID title; ///< NO_SAVE, has troubles with changing string-numbers. + uint16 score; ///< do NOT change type, will break hs.dat +}; + +extern HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5 +void SaveToHighScore(); +void LoadFromHighScore(); +int8 SaveHighScoreValue(const Player *p); +int8 SaveHighScoreValueNetwork(); + +#endif /* PLAYER_FUNC_H */ |