(no commit message)
[asgard.git] / MapObjectFactory.cpp
blob62433b42342574a7a06e0b7121127db032f57f8f
1 #include "MapObjectFactory.h"
2 #include "GameEngine.h"
3 #include "Tile.h"
4 #include "Container.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);
14 switch(*type)
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; }
23 return true;
26 void MapObjectFactory::createTile(char **columnValue)
28 // Create new tile
29 Tile *tile;
31 // TODO: Switch on tile type
32 // TODO: Create approprate tile subclass
34 if(tile != NULL)
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);