YAPOG  0.0.1
Yet Another Pokemon Online Game
World.cpp
Go to the documentation of this file.
2 
3 #include "World/World.hpp"
4 #include "World/Map/Map.hpp"
5 
6 namespace yse
7 {
9  : yap::World ()
10  , maps_ ()
11  , packetHandler_ ()
12  {
13  }
14 
16  {
17  }
18 
20  void World::LoadMap (const yap::ID& id)
21  {
23  "Map",
24  yap::ID (id));
25 
26  map->SetWorldID (yap::ID (id));
27 
28  AddMap (map);
29  }
31  {
34 
36  for (yap::ID::ValueType it = 1; it <= 4; ++it)
37  {
39  "Map",
40  yap::ID (it));
41 
42  map->SetWorldID (yap::ID (it));
43 
44  AddMap (map);
45  }
46 
47  LoadMap (yap::ID (16));
48  }
49 
51  {
52  return packetHandler_.HandlePacket (packet);
53  }
54 
56  {
57  bool success = true;
58 
59  for (auto& it : maps_)
60  if (!it.second->SendPacket (packet))
61  success = false;
62 
63  return success;
64  }
65 
67  {
68  packetHandler_.AddRelay (relay);
69  }
70 
72  {
74  }
75 
77  {
78  packetHandler_.SetParent (parent);
79  }
80 
81  void World::AddMap (Map* map)
82  {
83  map->AddRelay (this);
84 
85  maps_.Add (map->GetWorldID (), map);
86  }
87 
88  void World::RemoveMap (const yap::ID& worldID)
89  {
90  GetMap (worldID).RemoveRelay (this);
91 
92  maps_.Remove (worldID);
93  }
94 
95  Map& World::GetMap (const yap::ID& worldID)
96  {
97  return *maps_[worldID];
98  }
99 
101  {
103 
104  for (auto& it : maps_)
105  it.second->Update (dt);
106  }
107 } // namespace yse