src/player_func.h
author smatz
Sun, 15 Jun 2008 13:52:51 +0000
changeset 10966 3de9939c8a91
parent 8760 ce0891c412ce
child 11161 7d0fac8f14cd
permissions -rw-r--r--
(svn r13520) -Fix (r13375): pointer has to be valid before it can be loaded to (SLE_STR)
/* $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"
#include "strings_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 */