Ykkrosh
549150fe38
Terrain: added terrain-editing code to CTerrain, for better encapsulation or something. Console: simplified screen resizing. Game/etc: removed some unnecessary header file inclusions. This was SVN commit r2459.
37 lines
813 B
C++
37 lines
813 B
C++
#ifndef MESSAGEPASSER_H__
|
|
#define MESSAGEPASSER_H__
|
|
|
|
namespace AtlasMessage
|
|
{
|
|
|
|
template <typename T> class MessagePasser
|
|
{
|
|
public:
|
|
virtual void Add(T*)=0;
|
|
virtual T* Retrieve()=0;
|
|
|
|
virtual void Query(T&)=0;
|
|
virtual void QueryDone()=0;
|
|
};
|
|
|
|
struct mCommand;
|
|
struct mInput;
|
|
extern MessagePasser<mCommand>* g_MessagePasser_Command;
|
|
extern MessagePasser<mInput>* g_MessagePasser_Input;
|
|
|
|
#define ADD_COMMAND(type) AtlasMessage::g_MessagePasser_Command->Add(new AtlasMessage::m##type)
|
|
#define ADD_INPUT(type) AtlasMessage::g_MessagePasser_Input -> Add(new AtlasMessage::m##type)
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
|
atlas->game command ("initialise now", "render now")
|
|
atlas->game->atlas query ("what is at position (x,y)?")
|
|
game->atlas notification ("game ended") ??
|
|
|
|
*/
|
|
|
|
#endif // MESSAGEPASSER_H__
|