summaryrefslogtreecommitdiff
path: root/src/state.cpp
diff options
context:
space:
mode:
authorYohann Ferreira <bertram@cegetel.net>2006-01-08 22:52:59 +0000
committerYohann Ferreira <bertram@cegetel.net>2006-01-08 22:52:59 +0000
commitf7db7a051da79d8deef8b79419ce6772dce16725 (patch)
tree27ff5c5f33ea73d4e52e32ebbc583fa92ba50c87 /src/state.cpp
parentac150f3543caf86fd071c73f53373b4ea243fa24 (diff)
downloadmanaserv-f7db7a051da79d8deef8b79419ce6772dce16725.tar.gz
manaserv-f7db7a051da79d8deef8b79419ce6772dce16725.tar.bz2
manaserv-f7db7a051da79d8deef8b79419ce6772dce16725.tar.xz
manaserv-f7db7a051da79d8deef8b79419ce6772dce16725.zip
Added customization of created character. (That makes previously created db invalid.) Made list of map indexed by map id, instead of map name. This will prevent unsyncing of player's current map when changing a map name. Remember you have now to add a map filename into db before being able to load it. (Default map id is 1, not ZERO, as zero is the not found return value.
Diffstat (limited to 'src/state.cpp')
-rw-r--r--src/state.cpp54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/state.cpp b/src/state.cpp
index 3177131d..1fbbb189 100644
--- a/src/state.cpp
+++ b/src/state.cpp
@@ -34,7 +34,7 @@ State::State() throw() {
}
State::~State() throw() {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
delete i->second.map;
@@ -44,7 +44,7 @@ State::~State() throw() {
void State::update(ConnectionHandler &connectionHandler)
{
// update game state (update AI, etc.)
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (Beings::iterator b = i->second.beings.begin();
@@ -56,7 +56,7 @@ void State::update(ConnectionHandler &connectionHandler)
// notify clients about changes in the game world (only on their maps)
// NOTE: Should only send differences in the game state.
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
//
@@ -82,20 +82,20 @@ void State::update(ConnectionHandler &connectionHandler)
}
}
-void State::addBeing(BeingPtr beingPtr, const std::string &map) {
+void State::addBeing(BeingPtr beingPtr, const unsigned int mapId) {
if (!beingExists(beingPtr)) {
- if (!mapExists(map))
- if (!loadMap(map))
+ if (!mapExists(mapId))
+ if (!loadMap(mapId))
return;
// WARNING: We should pass a copy there.
// Otherwise, remove being will erase one character
// from the account object.
- maps[map].beings.push_back(beingPtr);
+ maps[mapId].beings.push_back(beingPtr);
}
}
void State::removeBeing(BeingPtr beingPtr) {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (Beings::iterator b = i->second.beings.begin();
@@ -109,15 +109,15 @@ void State::removeBeing(BeingPtr beingPtr) {
}
}
-bool State::mapExists(const std::string &map) {
- std::map<std::string, MapComposite>::iterator i = maps.find(map);
+bool State::mapExists(const unsigned int mapId) {
+ std::map<unsigned int, MapComposite>::iterator i = maps.find(mapId);
if (i == maps.end())
return false;
return true;
}
bool State::beingExists(BeingPtr beingPtr) {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (Beings::iterator b = i->second.beings.begin();
@@ -130,31 +130,31 @@ bool State::beingExists(BeingPtr beingPtr) {
return false;
}
-bool State::loadMap(const std::string &map) {
+bool State::loadMap(const unsigned int mapId) {
// load map (FAILS)
Map *tmp = NULL; //MapReader::readMap("maps/" + map);
//if (!tmp)
// return false;
- maps[map] = MapComposite();
- maps[map].map = tmp;
+ maps[mapId] = MapComposite();
+ maps[mapId].map = tmp;
// will need to load extra map related resources here also
-
+
return true; // We let true for testing on beings
}
-void State::addObject(Object *object, const std::string &map) {
+void State::addObject(Object *object, const unsigned int mapId) {
if (!objectExists(object)) {
- if (!mapExists(map))
- if (!loadMap(map))
+ if (!mapExists(mapId))
+ if (!loadMap(mapId))
return;
- maps[map].objects.push_back(object);
+ maps[mapId].objects.push_back(object);
}
}
void State::removeObject(Object *object) {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (std::vector<Object*>::iterator b = i->second.objects.begin();
@@ -169,7 +169,7 @@ void State::removeObject(Object *object) {
}
bool State::objectExists(const Object *object) {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (std::vector<Object*>::iterator b = i->second.objects.begin();
@@ -182,8 +182,8 @@ bool State::objectExists(const Object *object) {
return false;
}
-const std::string State::findPlayer(BeingPtr beingPtr) {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+const unsigned int State::findPlayer(BeingPtr beingPtr) {
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (Beings::iterator b = i->second.beings.begin();
@@ -193,11 +193,11 @@ const std::string State::findPlayer(BeingPtr beingPtr) {
return i->first;
}
}
- return "";
+ return 0;
}
-const std::string State::findObject(Object *object) {
- for (std::map<std::string, MapComposite>::iterator i = maps.begin();
+const unsigned int State::findObject(Object *object) {
+ for (std::map<unsigned int, MapComposite>::iterator i = maps.begin();
i != maps.end();
i++) {
for (std::vector<Object*>::iterator b = i->second.objects.begin();
@@ -207,7 +207,7 @@ const std::string State::findObject(Object *object) {
return i->first;
}
}
- return "";
+ return 0;
}
} // namespace tmwserv