Show entityclient.h syntax highlighted
/***************************************************************************
entityclient.h
-------------------
begin : Wed May 12 2004
copyright : (C) 2004 by Brendon Higgins
email : freepop-devel@lists.sourceforge.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef ENTITYCLIENT_H_INCLUDED
#define ENTITYCLIENT_H_INCLUDED
#include <identity.h>
#include <paintable.h>
#include <ClanLib/network.h>
class Rotation;
class WorldClient;
class WorldPos;
/**
* An entity, client edition. This has the common network code.
*/
class EntityClient: public Paintable {
public:
/**
* Constructor.
*/
EntityClient(const Identity& ident);
/**
* Destructor.
*/
virtual ~EntityClient();
/**
* Get the entitys position.
*/
virtual WorldPos getPos() const = 0;
/**
* Predicts what the entity will do, and changes its state accordingly.
* The only one who knows for sure what will happen is the server, the
* client just guesses. Defaults to doing nothing.
* \param w The world.
* \param d The delay since the last predict (ms).
*/
virtual void predict(const WorldClient* w, unsigned int d);
/**
* Get an identifier to this Entity.
*/
const Identity& getIdentity() const;
/**
* Receive complete status information.
*/
virtual void onFullUpdate(WorldClient* w, CL_NetPacket& p) = 0;
/**
* Do something with a destroy message based on the reason given.
* The default is to do nothing. This can be used to set up some kind of
* "dying animation".
*/
virtual void onDestroy(WorldClient* w, int r);
/**
* Receive a message of some sort. Defaults to a no-op.
*/
virtual void onMessage(WorldClient* w, int m, CL_NetPacket& p);
virtual int drawSortIndex(const WorldClient* w) const;
private:
/**
* A unique identifier for this entity.
*/
Identity id;
};
#endif /* ndef ENTITYCLIENT_H_INCLUDED */
See more files for this project here