00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <landscapedef/LandscapeMusic.h>
00022 #include <math.h>
00023
00024 LandscapeMusicType::LandscapeMusicType()
00025 {
00026 }
00027
00028 LandscapeMusicType::~LandscapeMusicType()
00029 {
00030 }
00031
00032 bool LandscapeMusicType::readXML(XMLNode *node)
00033 {
00034
00035 std::string state;
00036 while (node->getNamedChild("playstate", state, false))
00037 {
00038 PlayState playstate;
00039 if (0 == strcmp(state.c_str(), "loading")) playstate = StateLoading;
00040 else if (0 == strcmp(state.c_str(), "buying")) playstate = StateBuying;
00041 else if (0 == strcmp(state.c_str(), "playing")) playstate = StatePlaying;
00042 else if (0 == strcmp(state.c_str(), "shot")) playstate = StateShot;
00043 else if (0 == strcmp(state.c_str(), "score")) playstate = StateScore;
00044 else if (0 == strcmp(state.c_str(), "wait")) playstate = StateWait;
00045 else return node->returnError("Unknown playstate type");
00046 playstates.push_back(playstate);
00047 }
00048 if (playstates.empty()) return node->returnError("No playstats defined");
00049
00050
00051 if (!node->getNamedChild("file", file)) return false;
00052 if (!S3D::checkDataFile(file.c_str())) return false;
00053
00054
00055 if (!node->getNamedChild("gain", gain)) return false;
00056 return node->failChildren();
00057 }