YAPOG
0.0.1
Yet Another Pokemon Online Game
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
DynamicWorldObjectReader.cpp
Go to the documentation of this file.
1
#include "
YAPOG/Game/World/Map/DynamicWorldObjectReader.hpp
"
2
#include "
YAPOG/Game/World/Map/DynamicWorldObject.hpp
"
3
#include "
YAPOG/Game/World/Map/Physics/ForceToVelocityPhysicsCore.hpp
"
4
#include "
YAPOG/System/IO/Xml/XmlReader.hpp
"
5
#include "
YAPOG/System/IO/Xml/XmlReaderCollection.hpp
"
6
#include "
YAPOG/Game/World/Map/Physics/BoundingBox.hpp
"
7
#include "
YAPOG/Game/World/Map/Physics/BoundingBoxReader.hpp
"
8
9
namespace
yap
10
{
11
const
String
DynamicWorldObjectReader::DEFAULT_XML_MAX_VELOCITY_NODE_NAME
=
12
"maxVelocity"
;
13
14
DynamicWorldObjectReader::DynamicWorldObjectReader
(
15
DynamicWorldObject
& dynamicWorldObject,
16
const
String
& xmlRootNodeName)
17
:
WorldObjectReader
(dynamicWorldObject, xmlRootNodeName)
18
, dynamicWorldObject_ (dynamicWorldObject)
19
{
20
}
21
22
DynamicWorldObjectReader::~DynamicWorldObjectReader
()
23
{
24
}
25
26
void
DynamicWorldObjectReader::Visit
(
XmlReader
& visitable)
27
{
28
WorldObjectReader::Visit
(visitable);
29
30
auto
reader = visitable.
ChangeRoot
(
xmlRootNodeName_
);
31
32
if
(reader->NodeExists (
DEFAULT_XML_MAX_VELOCITY_NODE_NAME
))
33
dynamicWorldObject_
.
SetMaxVelocity
(
34
reader->ReadVector2 (
35
DEFAULT_XML_MAX_VELOCITY_NODE_NAME
));
36
else
37
dynamicWorldObject_
.
SetMaxVelocity
(
38
DynamicWorldObject::DEFAULT_MAX_VELOCITY
);
39
40
PhysicsCore
* physicsCore =
new
ForceToVelocityPhysicsCore
();
41
physicsCore->
SetVelocityBounds
(
42
Vector2
(),
43
dynamicWorldObject_
.
GetMaxVelocity
());
44
45
dynamicWorldObject_
.
SetPhysicsCore
(physicsCore);
46
47
if
(!reader->NodeExists (
"events"
))
48
return
;
49
50
auto
boundingBoxesReader = reader->ChangeRoot (
"events"
);
51
52
XmlReaderCollection
boundingBoxReaders;
53
boundingBoxesReader->ReadNodes (
"entry"
, boundingBoxReaders);
54
for
(
auto
& xmlBoundingBoxReader : boundingBoxReaders)
55
{
56
BoundingBox
* boundingBox =
new
BoundingBox
();
57
BoundingBoxReader
boundingBoxReader (*boundingBox,
"BoundingBox"
);
58
xmlBoundingBoxReader->Accept (boundingBoxReader);
59
60
dynamicWorldObject_
.
AddTriggerBoundingBox
(boundingBox);
61
}
62
}
63
}
// namespace yap
YAPOG
src
YAPOG
Game
World
Map
DynamicWorldObjectReader.cpp
Generated on Mon Sep 17 2012 22:24:25 for YAPOG by
1.8.1.1