00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <landscapedef/LandscapeTexDefn.h>
00022 #include <landscapedef/LandscapeDefinitions.h>
00023
00024 LandscapeTexDefn::LandscapeTexDefn()
00025 {
00026 }
00027
00028 LandscapeTexDefn::~LandscapeTexDefn()
00029 {
00030 }
00031
00032 bool LandscapeTexDefn::readXML(LandscapeDefinitions *definitions, XMLNode *node)
00033 {
00034 if (!readXML("events", "event", definitions, node)) return false;
00035 if (!readXML("placements", "placement", definitions, node)) return false;
00036 if (!readXML("ambientsounds", "ambientsound", definitions, node)) return false;
00037 if (!readXML("includes", "include", definitions, node)) return false;
00038 if (!readXML("boids", "boid", definitions, node)) return false;
00039 if (!readXML("shipgroups", "shipgroup", definitions, node)) return false;
00040 return true;
00041 }
00042
00043 bool LandscapeTexDefn::readXML(const char *names, const char *name,
00044 LandscapeDefinitions *definitions, XMLNode *node)
00045 {
00046 {
00047 XMLNode *includesNode;
00048 if (node->getNamedChild(names, includesNode, false))
00049 {
00050 std::string include;
00051 while (includesNode->getNamedChild(name, include, false))
00052 {
00053 LandscapeInclude *landscapeInclude =
00054 definitions->getInclude(include.c_str(), true);
00055 if (!landscapeInclude) return false;
00056 includes.push_back(landscapeInclude);
00057 }
00058 if (!includesNode->failChildren()) return false;
00059 }
00060 }
00061 return true;
00062 }