Show entity.h syntax highlighted
/***************************************************************************
entity.h - description
-------------------
begin : Thu Nov 14 2002
copyright : (C) 2002 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 ENTITY_H_INCLUDED
#define ENTITY_H_INCLUDED
#include <string>
/**
* An entity is something in the world, some non-maptile world object.
* Rock, tree, peep, etc. This namespace has some common constants for
* entities.
*/
namespace Entity {
/**
* Net messages.
*/
namespace Message {
/**
* The first int32 of a CREATE packet must be the identifier for the type
* of entity. The rest is the same as for FULL_UPDATE.
* \see FULL_UPDATE
*/
extern const int CREATE;
/**
* Reserved for complete update message for an entity.
*/
extern const int FULL_UPDATE;
/**
* Instantly kill and remove an entity from the world. An int enum reason
* follows.
*/
extern const int DESTROY;
/**
* The next integer that can be used by derived class's message type.
* This is the number after those reserved for primitive entity messages.
* You can use this number and any higher numbers for your own derived
* messages. This is a function to make sure no order-of-static-construction
* issues arise.
*/
int getNext();
}
/**
* Reasons for destruction.
*/
namespace Destroy {
/**
* No reason given for destruction. The gods are mysterious...
*/
extern const int NO_REASON;
/**
* The player, and all his/her entities are being removed.
*/
extern const int PLAYER_REMOVE;
/**
* Entity is being removed since something with a "NONE" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_NONE;
/**
* Entity is being removed since something with a "TREE" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_TREE;
/**
* Entity is being removed since something with a "TOWN" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_TOWN;
/**
* Entity is being removed since something with a "SWAMP" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_SWAMP;
/**
* Entity is being removed since something with a "ROCK" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_ROCK;
/**
* Entity is being removed since something with a "QUAKE" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_QUAKE;
/**
* Entity is being removed since something with a "MAX" occupation
* priority needs this spot.
* \see EntityServer
*/
extern const int REOCCUPY_MAX;
/**
* The next integer that can be used by derived class's destroy reason.
* This is the number after those reserved for primitive entity reasons.
* You can use this number and any higher numbers for your own derived
* reasons. This is a function to make sure no order-of-static-construction
* issues arise.
*/
int getNext();
}
/**
* Reasons for creation.
*/
namespace Create {
/**
* No reason given for creation. The gods are mysterious...
* This can be used pretty freely as a default creation reason.
* Moreso than Destroy::NO_REASON, at least.
*/
extern const int NO_REASON;
/**
* The player has just arrived and is receiving the gamestate.
*/
extern const int PLAYER_START;
/**
* The player has requested via an Admin message that it be introduced
* to this entity.
*/
extern const int PLAYER_REQUEST;
/**
* The next integer that can be used by derived class's create reason.
* This is the number after those reserved for primitive entity reasons.
* You can use this number and any higher numbers for your own derived
* reasons. This is a function to make sure no order-of-static-construction
* issues arise.
*/
int getNext();
}
}
#endif /* ndef ENTITY_H_INCLUDED */
See more files for this project here