[Igarden-commit] Garden/source/LayoutDB Layout.h, 1.18.2.3, 1.18.2.4 Layout.cpp, 1.27.2.5, 1.27.2.6
Status: Beta
Brought to you by:
jlbedell
|
From: Jeffrey B. <jlb...@us...> - 2006-12-13 13:47:17
|
Update of /cvsroot/igarden/Garden/source/LayoutDB In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv678 Modified Files: Tag: Release_branch_v1 Layout.h Layout.cpp Log Message: Fully implement planting regions for choosing the quick pick list Index: Layout.h =================================================================== RCS file: /cvsroot/igarden/Garden/source/LayoutDB/Layout.h,v retrieving revision 1.18.2.3 retrieving revision 1.18.2.4 diff -C2 -d -r1.18.2.3 -r1.18.2.4 *** Layout.h 7 Dec 2006 01:23:03 -0000 1.18.2.3 --- Layout.h 13 Dec 2006 13:47:15 -0000 1.18.2.4 *************** *** 104,107 **** --- 104,108 ---- void ParseXML( ClientDocument * doc, XGXMLObject *obj ); void LoadInitialPalettes(materialArray_t *allMaterials); + void LoadQoickPickPalettes(String ®ionStr); void Draw(PlanView* view); void LoadOldFileFormat(); *************** *** 174,177 **** --- 175,179 ---- XGDynArray<PaletteGroup*> _paletteGroups; XGDynArray<LayerSet*> _layerSets; + String _region; bool _translateToGL; bool _fixBeta1Layers; Index: Layout.cpp =================================================================== RCS file: /cvsroot/igarden/Garden/source/LayoutDB/Layout.cpp,v retrieving revision 1.27.2.5 retrieving revision 1.27.2.6 diff -C2 -d -r1.27.2.5 -r1.27.2.6 *** Layout.cpp 7 Dec 2006 01:23:03 -0000 1.27.2.5 --- Layout.cpp 13 Dec 2006 13:47:15 -0000 1.27.2.6 *************** *** 539,554 **** { long n, numMaterials; - XGFileSpecifier spec; - XGDirectory dir; - XGFile inFile; - ErrorCode ec; - long bytesRead; - char buf[128]; - XGXMLDOMParser parser; - XGXMLObject *parseTree; - XGXMLData *data; XGUUID uid, nilID; materialID_t id; MaterialCollection *palette; PRECONDITION(NumPalettes(kRegenAllPlantsGroup) == 1); --- 539,546 ---- { long n, numMaterials; XGUUID uid, nilID; materialID_t id; MaterialCollection *palette; + String initialRegion(""); PRECONDITION(NumPalettes(kRegenAllPlantsGroup) == 1); *************** *** 566,595 **** } ! MyAssert(dir.FindLocation(XGDirectory::kApplicationFolder)); ! dir.ChangeDirectory(NULL); ! MyAssert(dir.ChangeDirectory("Resources")); ! spec.SetFile(dir, "palettes.xml"); ! ec = inFile.Open(&spec, false); ! if(ec != KYAAFNoError) ! return; ! bytesRead = inFile.Read(sizeof(buf), buf); ! if(strncmp(buf, "<?xml version=\"1.0\"?>", 21) == 0) { ! buf[sizeof(buf)-1] = '\0'; ! if(strstr(buf, "<iGardenPalette>") != NULL) { ! inFile.SetFilePos(21); ! parseTree = parser.RunDOMParser(&inFile); ! if(parseTree != NULL) { ! data = dynamic_cast<XGXMLData*>(parseTree); ! if(strcmp(data->GetTag(), "iGardenPalette") == 0) { ! ParseOnePaletteEntry(data->GetChild(), NULL, kUserDefaultGroup); } ! ! delete data; } } --- 558,615 ---- } ! LoadQoickPickPalettes(initialRegion); ! } ! void Layout::LoadQoickPickPalettes(String ®ionStr) ! { ! XGDirectory dir; ! XGXMLDOMParser parser; ! XGFileSpecifier spec; ! XGFile inFile; ! ErrorCode ec; ! long bytesRead; ! char buf[128]; ! XGXMLObject *parseTree; ! XGXMLData *data; ! if(_region.empty() || regionStr != _region) { ! _region = regionStr; ! ! MyAssert(dir.FindLocation(XGDirectory::kApplicationFolder)); ! dir.ChangeDirectory(NULL); ! MyAssert(dir.ChangeDirectory("Resources")); ! spec.SetFile(dir, "palettes.xml"); ! ! ec = inFile.Open(&spec, false); ! if(ec != KYAAFNoError) ! return; ! ! _paletteGroups[kBackgroundGroup]->_palettes.DeleteAll(); ! _paletteGroups[kCommonPlantGroup]->_palettes.DeleteAll(); ! _paletteGroups[kCommonHardscapeGroup]->_palettes.DeleteAll(); ! _paletteGroups[kUserDefaultGroup]->_palettes.DeleteAll(); ! bytesRead = inFile.Read(sizeof(buf), buf); ! if(strncmp(buf, "<?xml version=\"1.0\"?>", 21) == 0) { ! buf[sizeof(buf)-1] = '\0'; ! if(strstr(buf, "<iGardenPalette>") != NULL) { ! inFile.SetFilePos(21); ! parseTree = parser.RunDOMParser(&inFile); ! if(parseTree != NULL) { ! data = dynamic_cast<XGXMLData*>(parseTree); ! if(strcmp(data->GetTag(), "iGardenPalette") == 0) ! { ! ParseOnePaletteEntry(data->GetChild(), NULL, kUserDefaultGroup); ! } ! ! delete data; } ! } ! else ! { ! inFile.Close(); } } *************** *** 599,606 **** } } - else - { - inFile.Close(); - } } --- 619,622 ---- *************** *** 650,653 **** --- 666,670 ---- XGXMLData *data; MaterialCollection *palette; + PersistentTags *prefs; while(subTree != NULL) *************** *** 656,670 **** if(strcmp(data->GetTag(), "Palette") == 0) { ! palette = new MaterialCollection(this); ! palette->ParseXML(subTree); ! // printf("Adding palette '%s' to group %ld of region %s\n", palette->GetName().c_str(), group, region != NULL ? region : ""); ! AddPalette(group, palette); } else if(strcmp(data->GetTag(), "Region") == 0) { region = data->GetArgValue("name"); // printf("Entering region %s\n", region ? region : ""); if(strcmp(region, "any") == 0) ParseOnePaletteEntry(data->GetChild(), region, group); } else if(strcmp(data->GetTag(), "PaletteGroup") == 0) --- 673,709 ---- if(strcmp(data->GetTag(), "Palette") == 0) { ! long i, numGroups; ! String curPaletteName; ! ! palette = NULL; ! MaterialCollection::GetNameFromXML(subTree, curPaletteName); ! ! numGroups = _paletteGroups[group]->_palettes.Length(); ! for(i = 0; i < numGroups && palette == NULL; i++) ! { ! if(_paletteGroups[group]->_palettes[i]->GetName() == curPaletteName) ! { ! palette = _paletteGroups[group]->_palettes[i]; ! palette->ParseXML(subTree); ! } ! } ! ! if(palette == NULL) ! { ! palette = new MaterialCollection(this); ! palette->ParseXML(subTree); ! AddPalette(group, palette); ! } ! palette->SortByName(kUsePreferencesSetting); } else if(strcmp(data->GetTag(), "Region") == 0) { region = data->GetArgValue("name"); + String regionObj(region); // printf("Entering region %s\n", region ? region : ""); if(strcmp(region, "any") == 0) ParseOnePaletteEntry(data->GetChild(), region, group); + else if(regionObj == _region) + ParseOnePaletteEntry(data->GetChild(), region, group); } else if(strcmp(data->GetTag(), "PaletteGroup") == 0) |