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