diff options
author | Stijn Buys <ingar@osirion.org> | 2008-10-18 17:58:45 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-10-18 17:58:45 +0000 |
commit | 35613f0860a2d8cb643ca8de006de08503e48e53 (patch) | |
tree | 8a5436de643e818e68a82df2e5cb2df2145f5062 /src/game/example/example.h | |
parent | db287e4a5133125bb6f25ba21ea97c47b19ac67f (diff) |
example module
Diffstat (limited to 'src/game/example/example.h')
-rw-r--r-- | src/game/example/example.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/game/example/example.h b/src/game/example/example.h new file mode 100644 index 0000000..ba8aa72 --- /dev/null +++ b/src/game/example/example.h @@ -0,0 +1,65 @@ +/* + intro/example.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_EXAMPLE_H__ +#define __INCLUDED_EXAMPLE_H__ + +// import core functionality +#include "core/core.h" + +// console functions +#include "sys/sys.h" + +/// example game module +/** This is the osirion Project example module. It describes + * how to create custom modules and how to use the engine functionality. + */ +namespace example +{ + +/// example game module +/** Every game module derives from core::Module and has to implement a + * number of virtual functions + */ +class Example : public core::Module +{ +public: + /// constructor, called on module load + /** Modules are loaded at the start of the program, + * the constructor is only called once. + */ + Example(); + + /// desctructor, called on module unload + ~Example(); + + /// called once every server frame + /** @param elapsed time elapsed since the precious server frame, in seconds + */ + void frame(float elapsed); + + /// called when a player connects + void player_connect(core::Player *player); + + /// called when a player disconnects + void player_disconnect(core::Player *player); + +protected: + /// called when the game starts + void init(); + + /// called when the game is shut down + void shutdown(); + + +private: + core::Zone *zone; +}; + +} + +#endif // __INCLUDED_EXAMPLE_H__ + |