summaryrefslogtreecommitdiff
path: root/src/beingmanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/beingmanager.h')
-rw-r--r--src/beingmanager.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/beingmanager.h b/src/beingmanager.h
new file mode 100644
index 00000000..e50e804c
--- /dev/null
+++ b/src/beingmanager.h
@@ -0,0 +1,88 @@
+/*
+ * the mana world
+ * copyright 2004 the mana world development team
+ *
+ * this file is part of the mana world.
+ *
+ * the mana world 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 world 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 world; if not, write to the free software
+ * foundation, inc., 59 temple place, suite 330, boston, ma 02111-1307 usa
+ *
+ * $id: being.cpp,v 1.98 2005/12/25 01:28:03 b_lindeijer exp $
+ */
+
+#ifndef _TMW_BEINGMANAGER_H
+#define _TMW_BEINGMANAGER_H
+
+#include "being.h"
+
+class LocalPlayer;
+class Map;
+class Network;
+
+typedef std::list<Being*> Beings;
+
+class BeingManager
+{
+ public:
+ BeingManager(Network *network);
+
+ /**
+ * Sets the map on which beings are created
+ */
+ void setMap(Map *map);
+
+ /**
+ * Sets the current player
+ */
+ void setPlayer(LocalPlayer *player);
+
+ /**
+ * Create a being and add it to the list of beings
+ */
+ Being* createBeing(Uint32 id, Uint16 job);
+
+ /**
+ * Remove a Being
+ */
+ void destroyBeing(Being *being);
+
+ /**
+ * Return a specific id Being
+ */
+ Being* findBeing(Uint32 id);
+
+ /**
+ * Return a being at specific coordinates
+ */
+ Being* findBeing(Uint16 x, Uint16 y, Being::Type type = Being::UNKNOWN);
+
+ /**
+ * Returns the whole list of beings
+ */
+ Beings* getAll();
+
+ /**
+ * Destroys all beings except the local player
+ */
+ void clear();
+
+ protected:
+ Beings mBeings;
+ Map *mMap;
+ Network *mNetwork;
+};
+
+extern BeingManager *beingManager;
+
+#endif