1 #include "MapObjectFactory.h"
2 #include "GameEngine.h"
5 #include "StaticMapObject.h"
6 #include "NonPlayerCharacter.h"
7 #include "MapObjectType.h"
8 #include "DatabaseColumnMap.h"
10 int MapObjectFactory::processRow(void *mapObjectType
, int columnCount
, char **columnValue
, char **columnName
)
12 MapObjectType
*type
= static_cast<MapObjectType
*>(mapObjectType
);
16 case MAP_OBJECT_TYPE_CONTAINER
: { MapObjectFactory::createContainer(columnValue
); break; }
17 case MAP_OBJECT_TYPE_NON_PLAYER_CHARACTER
: { MapObjectFactory::createNonPlayerCharacter(columnValue
); break; }
18 case MAP_OBJECT_TYPE_STATIC_MAP_OBJECT
: { MapObjectFactory::createStaticMapObject(columnValue
); break; }
19 case MAP_OBJECT_TYPE_TILE
: { MapObjectFactory::createTile(columnValue
); break; }
20 default: { /* TODO: Error case... add logging */ break; }
26 void MapObjectFactory::createTile(char **columnValue
)
31 // TODO: Switch on tile type
32 // TODO: Create approprate tile subclass
36 // Get reference to GameEngine
37 GameEngine
*gameEngine
= GameEngine::getInstance();
39 // Add tile to gameEngine
40 gameEngine
->addMapObject((MapObject
*)tile
);
45 void MapObjectFactory::createContainer(char **columnValue
)
47 Container
*container
= new Container();
49 // TODO: Add all columnValue data to Container object
51 // Get reference to GameEngine
52 GameEngine
*gameEngine
= GameEngine::getInstance();
54 // Add container to gameEngine
55 gameEngine
->addMapObject((MapObject
*)container
);
58 void MapObjectFactory::createNonPlayerCharacter(char **columnValue
)
60 NonPlayerCharacter
*npc
= new NonPlayerCharacter();
62 // TODO: Add all columnValue data to NonPlayerCharacter object
64 // Get reference to GameEngine
65 GameEngine
*gameEngine
= GameEngine::getInstance();
67 // Add container to gameEngine
68 gameEngine
->addMapObject((MapObject
*)npc
);
71 void MapObjectFactory::createStaticMapObject(char **columnValue
)
73 StaticMapObject
*staticMapObject
= new StaticMapObject();
75 // TODO: Add all columnValue data to NonPlayerCharacter object
77 // Get reference to GameEngine
78 GameEngine
*gameEngine
= GameEngine::getInstance();
80 // Add container to gameEngine
81 gameEngine
->addMapObject((MapObject
*)staticMapObject
);