summaryrefslogtreecommitdiff
path: root/ContentLoader.cpp
diff options
context:
space:
mode:
authorJapa2011-02-25 04:04:22 +0000
committerJapa2011-02-25 04:04:22 +0000
commita09db4ce3b65f033257ed8b2c819358d7e7f9e28 (patch)
tree61831f82c8efec825291b3d3e1dbe71c5bfa90e1 /ContentLoader.cpp
parent82e9e689d9b205286b5088d2407a3a014e7aeb99 (diff)
downloadstonesense-a09db4ce3b65f033257ed8b2c819358d7e7f9e28.tar.gz
stonesense-a09db4ce3b65f033257ed8b2c819358d7e7f9e28.tar.bz2
stonesense-a09db4ce3b65f033257ed8b2c819358d7e7f9e28.tar.xz
Got custom workshops to, well... work.
Diffstat (limited to 'ContentLoader.cpp')
-rw-r--r--ContentLoader.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/ContentLoader.cpp b/ContentLoader.cpp
index 32c0629..17c3872 100644
--- a/ContentLoader.cpp
+++ b/ContentLoader.cpp
@@ -17,6 +17,7 @@ ContentLoader::~ContentLoader(void)
{
//flush content on exit
flushBuildingConfig(&buildingConfigs);
+ flushBuildingConfig(&customBuildingConfigs);
flushTerrainConfig(terrainFloorConfigs);
flushTerrainConfig(terrainBlockConfigs);
flushCreatureConfig();
@@ -48,6 +49,7 @@ bool ContentLoader::Load( DFHack::Context& DF){
al_flip_display();*/
//flush old config
flushBuildingConfig(&buildingConfigs);
+ flushBuildingConfig(&customBuildingConfigs);
flushTerrainConfig(terrainFloorConfigs);
flushTerrainConfig(terrainBlockConfigs);
flushColorConfig(colorConfigs);
@@ -170,6 +172,13 @@ bool ContentLoader::Load( DFHack::Context& DF){
{
WriteErr("DFhack exeption: %s\n", e.what());
}
+ if(Bld)
+ {
+ unsigned int bla;
+ Bld->Start(bla);
+ Bld->ReadCustomWorkshopTypes(custom_workshop_types);
+ Bld->Finish();
+ }
try
{
contentLoader.MemInfo = DF.getMemoryInfo();
@@ -236,6 +245,7 @@ bool ContentLoader::Load( DFHack::Context& DF){
bool ContentLoader::reload_configs()
{
flushBuildingConfig(&buildingConfigs);
+ flushBuildingConfig(&customBuildingConfigs);
flushTerrainConfig(terrainFloorConfigs);
flushTerrainConfig(terrainBlockConfigs);
flushColorConfig(colorConfigs);
@@ -373,6 +383,8 @@ bool ContentLoader::parseContentXMLFile( char* filepath ){
string elementType = elemRoot->Value();
if( elementType.compare( "building" ) == 0 )
runningResult &= parseBuildingContent( elemRoot );
+ else if( elementType.compare( "custom_workshop" ) == 0 )
+ runningResult &= parseCustomBuildingContent( elemRoot );
else if( elementType.compare( "creatures" ) == 0 )
runningResult &= parseCreatureContent( elemRoot );
else if( elementType.compare( "floors" ) == 0 )
@@ -403,6 +415,10 @@ bool ContentLoader::parseBuildingContent(TiXmlElement* elemRoot ){
return addSingleBuildingConfig( elemRoot, &buildingConfigs );
}
+bool ContentLoader::parseCustomBuildingContent(TiXmlElement* elemRoot ){
+ return addSingleCustomBuildingConfig( elemRoot, &customBuildingConfigs );
+}
+
bool ContentLoader::parseCreatureContent(TiXmlElement* elemRoot ){
return addCreaturesConfig( elemRoot, creatureConfigs );
}