tron@2186: /* $Id$ */ tron@2186: rubidium@8750: /** @file player_func.h Functions related to players. */ truelight@0: rubidium@8750: #ifndef PLAYER_FUNC_H rubidium@8750: #define PLAYER_FUNC_H truelight@145: rubidium@8750: #include "core/math_func.hpp" rubidium@8750: #include "player_type.h" rubidium@8750: #include "tile_type.h" rubidium@8760: #include "strings_type.h" tron@4428: Darkvater@2436: void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player); Darkvater@4849: void GetNameOfOwner(Owner owner, TileIndex tile); rubidium@5564: void SetLocalPlayer(PlayerID new_player); truelight@0: rubidium@8750: extern PlayerByte _local_player; rubidium@8750: extern PlayerByte _current_player; rubidium@8750: /* NOSAVE: can be determined from player structs */ rubidium@8750: extern byte _player_colors[MAX_PLAYERS]; rubidium@8750: extern PlayerFace _player_face; ///< for player face storage in openttd.cfg Darkvater@4824: rubidium@8750: bool IsHumanPlayer(PlayerID pi); Darkvater@2425: rubidium@6573: static inline bool IsLocalPlayer() Darkvater@2425: { Darkvater@2425: return _local_player == _current_player; tron@1767: } tron@1767: Darkvater@4850: static inline bool IsValidPlayer(PlayerID pi) Darkvater@4850: { skidd13@8450: return IsInsideBS(pi, PLAYER_FIRST, MAX_PLAYERS); Darkvater@4850: } Darkvater@4850: Darkvater@4845: static inline bool IsInteractivePlayer(PlayerID pi) Darkvater@4845: { Darkvater@4845: return pi == _local_player; Darkvater@4845: } Darkvater@4845: rubidium@8750: maedhros@6001: rubidium@6574: struct HighScore { darkvater@983: char company[100]; belugas@6678: StringID title; ///< NO_SAVE, has troubles with changing string-numbers. belugas@6678: uint16 score; ///< do NOT change type, will break hs.dat rubidium@6574: }; darkvater@983: rubidium@8750: extern HighScore _highscore_table[5][5]; // 4 difficulty-settings (+ network); top 5 rubidium@6573: void SaveToHighScore(); rubidium@6573: void LoadFromHighScore(); darkvater@998: int8 SaveHighScoreValue(const Player *p); rubidium@6573: int8 SaveHighScoreValueNetwork(); darkvater@983: rubidium@8750: #endif /* PLAYER_FUNC_H */