diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-11-14 13:18:14 +0100 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-11-14 13:18:14 +0100 |
commit | 196c1c0bffa8bb594ff0a7442748030f47cc9c58 (patch) | |
tree | b60b3e3eff38907e2d8a94ce6aa7e63cd1a741c8 /src/game-server/state.h | |
parent | 23a94e7b154726599b9112b91ebedb32af9ff22c (diff) | |
download | manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.tar.gz manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.tar.bz2 manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.tar.xz manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.zip |
Renamed .hpp files into .h for consistency.
Also added an header to the autoattack.{h,cpp} files.
Big but trivial fix.
Diffstat (limited to 'src/game-server/state.h')
-rw-r--r-- | src/game-server/state.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/game-server/state.h b/src/game-server/state.h new file mode 100644 index 00000000..f58ab038 --- /dev/null +++ b/src/game-server/state.h @@ -0,0 +1,108 @@ +/* + * The Mana Server + * Copyright (C) 2004-2010 The Mana World Development Team + * + * This file is part of The Mana Server. + * + * The Mana Server 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 + * any later version. + * + * The Mana Server is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana Server. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef SERVER_STATE_H +#define SERVER_STATE_H + +#include <string> + +class MapComposite; +class Thing; +class Actor; +class Character; + +namespace GameState +{ + /** + * Updates game state (contains core server logic). + */ + void update(int worldTime); + + /** + * Inserts an thing in the game world. + * @return false if the insertion failed and the thing is in limbo. + * @note No update may be in progress. + */ + bool insert(Thing *) +# ifdef __GNUC__ + __attribute__((warn_unused_result)) +# endif + ; + + /** + * Inserts a thing in the game world. Deletes the thing if the insertion + * failed. + * @return false if the insertion failed. + * @note No update may be in progress. Invalid for characters. + */ + bool insertSafe(Thing *); + + /** + * Removes a thing from the game world. + * @note No update may be in progress. + * @note The thing is not destroyed by this call. + */ + void remove(Thing *); + + /** + * Warps a character between places of the game world. + * @note No update may be in progress. + * @note The character is destroyed, if needed. + */ + void warp(Character *, MapComposite *, int x, int y); + + /** + * Enqueues an insert event. + * @note The event will be executed at end of update. + */ + void enqueueInsert(Actor *); + + /** + * Enqueues a remove event. + * @note The event will be executed at end of update. + * @note The thing will be destroyed at that time. + */ + void enqueueRemove(Actor *); + + /** + * Enqueues a warp event. + * @note The event will be executed at end of update. + */ + void enqueueWarp(Character *, MapComposite *, int x, int y); + + /** + * Says something to an actor. + * @note passing NULL as source generates a message from "Server:" + */ + void sayTo(Actor *destination, Actor *source, const std::string &text); + + /** + * Says something to everything around an actor. + */ + void sayAround(Actor *, const std::string &text); + + /** + * Says something to every player on the server. + */ + void sayToAll(const std::string &text); + +} + +#endif |