2004-07-27 23:00:53 +02:00
|
|
|
#ifndef _Player_H
|
|
|
|
#define _Player_H
|
|
|
|
|
2004-08-16 17:19:17 +02:00
|
|
|
#include "CStr.h"
|
2005-01-19 23:32:25 +01:00
|
|
|
#include "scripting/SynchedJSObject.h"
|
2005-01-18 11:48:51 +01:00
|
|
|
#include "scripting/ScriptableObject.h"
|
|
|
|
#include "scripting/ScriptCustomTypes.h"
|
2004-08-16 17:19:17 +02:00
|
|
|
|
|
|
|
class CNetMessage;
|
2006-06-09 20:32:00 +02:00
|
|
|
class HEntity;
|
2004-08-16 17:19:17 +02:00
|
|
|
|
2005-01-18 11:48:51 +01:00
|
|
|
typedef SColour SPlayerColour;
|
|
|
|
|
2005-01-19 23:32:25 +01:00
|
|
|
class CPlayer : public CSynchedJSObject<CPlayer>
|
2004-07-27 23:00:53 +02:00
|
|
|
{
|
2005-01-18 11:48:51 +01:00
|
|
|
public:
|
2005-01-19 23:32:25 +01:00
|
|
|
typedef void (UpdateCallback)(CStrW name, CStrW value, CPlayer *player, void *userdata);
|
2005-01-18 11:48:51 +01:00
|
|
|
|
2005-01-19 23:32:25 +01:00
|
|
|
private:
|
2004-08-16 17:19:17 +02:00
|
|
|
CStrW m_Name;
|
2006-06-10 01:07:11 +02:00
|
|
|
CStrW m_Civilization; // Note: this must be the un-internationalized name of the civ
|
2005-01-23 23:21:37 +01:00
|
|
|
PS_uint m_PlayerID;
|
2005-11-06 01:07:01 +01:00
|
|
|
PS_uint m_LOSToken;
|
2005-01-18 11:48:51 +01:00
|
|
|
SPlayerColour m_Colour;
|
|
|
|
|
2005-01-19 23:32:25 +01:00
|
|
|
UpdateCallback *m_UpdateCB;
|
|
|
|
void *m_UpdateCBData;
|
|
|
|
|
|
|
|
virtual void Update(CStrW name, ISynchedJSProperty *prop);
|
|
|
|
|
2004-08-16 17:19:17 +02:00
|
|
|
public:
|
2005-01-18 11:48:51 +01:00
|
|
|
CPlayer( uint playerID );
|
2005-02-27 23:11:26 +01:00
|
|
|
~CPlayer();
|
2004-08-16 17:19:17 +02:00
|
|
|
|
|
|
|
bool ValidateCommand(CNetMessage *pMsg);
|
|
|
|
|
2005-01-23 23:21:37 +01:00
|
|
|
inline PS_uint GetPlayerID() const
|
2005-01-19 23:32:25 +01:00
|
|
|
{ return m_PlayerID; }
|
2005-02-21 18:13:31 +01:00
|
|
|
inline void SetPlayerID(PS_uint id)
|
|
|
|
{ m_PlayerID=id; }
|
2005-11-06 01:07:01 +01:00
|
|
|
|
|
|
|
inline PS_uint GetLOSToken() const
|
|
|
|
{ return m_LOSToken; }
|
2005-01-19 23:32:25 +01:00
|
|
|
|
2004-08-16 17:19:17 +02:00
|
|
|
inline const CStrW &GetName() const
|
|
|
|
{ return m_Name; }
|
2005-01-19 23:32:25 +01:00
|
|
|
inline void SetName(const CStrW &name)
|
|
|
|
{ m_Name = name; }
|
|
|
|
|
|
|
|
inline const SPlayerColour &GetColour() const
|
|
|
|
{ return m_Colour; }
|
|
|
|
inline void SetColour(const SPlayerColour &colour)
|
|
|
|
{ m_Colour = colour; }
|
|
|
|
|
|
|
|
inline void SetUpdateCallback(UpdateCallback *cb, void *userdata)
|
|
|
|
{
|
|
|
|
m_UpdateCB=cb;
|
|
|
|
m_UpdateCBData=userdata;
|
|
|
|
}
|
2005-01-29 17:51:13 +01:00
|
|
|
void SetValue(CStrW name, CStrW value);
|
|
|
|
|
2005-01-18 11:48:51 +01:00
|
|
|
// Caller frees...
|
|
|
|
std::vector<HEntity>* GetControlledEntities();
|
|
|
|
|
2005-02-21 18:13:31 +01:00
|
|
|
// JS Interface Functions
|
|
|
|
jsval JSI_ToString( JSContext* context, uintN argc, jsval* argv );
|
2005-10-24 04:32:44 +02:00
|
|
|
jsval JSI_GetControlledEntities( JSContext* context );
|
2005-02-21 18:13:31 +01:00
|
|
|
jsval JSI_SetColour(JSContext *context, uintN argc, jsval *argv);
|
2006-03-03 21:57:45 +01:00
|
|
|
jsval JSI_GetColour(JSContext *context, uintN argc, jsval *argv);
|
2005-01-18 11:48:51 +01:00
|
|
|
|
|
|
|
static void ScriptingInit();
|
2004-07-27 23:00:53 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|