void ScenarioMapLoader::Impl::decodeTerrain(Tile &oTile, CityPtr city ) { if (!oTile.isMasterTile() && oTile.getMasterTile()!=NULL) return; TerrainTile& terrain = oTile.getTerrain(); LandOverlayPtr overlay; // This is the overlay object, if any if( terrain.isRoad() ) // road { overlay = ConstructionManager::getInstance().create( B_ROAD ).as<LandOverlay>(); } else if (terrain.isBuilding()) { StringHelper::debug( 0xff, "Building at ( %d, %d ) with ID: %x", oTile.getI(), oTile.getJ(), terrain.getOriginalImgId() ); switch ( terrain.getOriginalImgId() ) { case 0xb0e: case 0xb0f: case 0xb0b: case 0xb0c: overlay = ConstructionManager::getInstance().create( B_NATIVE_HUT ).as<LandOverlay>(); break; case 0xb10: case 0xb0d: overlay = ConstructionManager::getInstance().create( B_NATIVE_CENTER ).as<LandOverlay>(); StringHelper::debug( 0xff, "creation of Native center at (%d,%d)", oTile.getI(), oTile.getJ() ); break; case 0xb11: case 0xb44: overlay = ConstructionManager::getInstance().create( B_NATIVE_FIELD ).as<LandOverlay>(); break; } } //terrain.setOverlay( overlay ); if( overlay != NULL ) { overlay->build( oTile.getIJ() ); city->getOverlayList().push_back(overlay); } }
void GameLoaderC3Map::Impl::decodeTerrain(Tile &oTile, CityPtr city ) { if (!oTile.isMasterTile() && oTile.getMasterTile()!=NULL) return; TileOverlayPtr overlay; // This is the overlay object, if any if( oTile.getFlag( Tile::tlRoad ) ) // road { overlay = TileOverlayFactory::getInstance().create( B_ROAD ).as<TileOverlay>(); } else if( oTile.getFlag( Tile::tlBuilding ) ) { StringHelper::debug( 0xff, "Building at ( %d, %d ) with ID: %x", oTile.getI(), oTile.getJ(), oTile.getOriginalImgId() ); switch ( oTile.getOriginalImgId() ) { case 0xb0e: case 0xb0f: case 0xb0b: case 0xb0c: overlay = TileOverlayFactory::getInstance().create( B_NATIVE_HUT ).as<TileOverlay>(); break; case 0xb10: case 0xb0d: overlay = TileOverlayFactory::getInstance().create( B_NATIVE_CENTER ).as<TileOverlay>(); StringHelper::debug( 0xff, "creation of Native center at (%d,%d)", oTile.getI(), oTile.getJ() ); break; case 0xb11: case 0xb44: overlay = TileOverlayFactory::getInstance().create( B_NATIVE_FIELD ).as<TileOverlay>(); break; } } //terrain.setOverlay( overlay ); if( overlay != NULL ) { overlay->build( city, oTile.getIJ() ); city->getOverlayList().push_back(overlay); } }