YAPOG  0.0.1
Yet Another Pokemon Online Game
CollidableAreaCell.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_COLLIDABLEAREACELL_HPP
2 # define YAPOG_COLLIDABLEAREACELL_HPP
3 
4 # include "YAPOG/Macros.hpp"
5 # include "YAPOG/Collection/Map.hpp"
9 
10 namespace yap
11 {
12  struct ICollidable;
13 
14  class WorldObject;
15  class DynamicWorldObject;
16  class MapEventQueue;
17 
19  {
21 
22  public:
23 
25 
26  void AddPhysicsCollidable (
27  ICollidable* collidable,
28  const MapCollidableInfo::PtrType& mapCollidableInfo);
29  void RemovePhysicsCollidable (ICollidable* collidable);
30 
31  void AddEventCollidable (
32  ICollidable* collidable,
33  const MapEventInfo::PtrType& mapEventInfo);
34  void RemoveEventCollidable (ICollidable* collidable);
35 
36 
37  bool CollidesWith (
38  const ICollidable& collidable,
39  const Vector2& offset,
40  const WorldObject& parent) const;
41 
42  void GetEventsCollidingWith (
43  const ICollidable& collidable,
44  MapEventQueue& events,
45  DynamicWorldObject& parent) const;
46 
47  void Clear ();
48 
49  private:
50 
52  ICollidable*,
54 
56  ICollidable*,
58  };
59 } // namespace yap
60 
61 #endif // YAPOG_COLLIDABLEAREACELL_HPP