1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
4 // This file is part of Scorched3D.
6 // Scorched3D is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
11 // Scorched3D is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Scorched3D; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ////////////////////////////////////////////////////////////////////////////////
21 #include <landscapedef/LandscapeMusic.h>
24 LandscapeMusicType::LandscapeMusicType()
28 LandscapeMusicType::~LandscapeMusicType()
32 bool LandscapeMusicType::readXML(XMLNode
*node
)
36 while (node
->getNamedChild("playstate", state
, false))
39 if (0 == strcmp(state
.c_str(), "loading")) playstate
= StateLoading
;
40 else if (0 == strcmp(state
.c_str(), "buying")) playstate
= StateBuying
;
41 else if (0 == strcmp(state
.c_str(), "playing")) playstate
= StatePlaying
;
42 else if (0 == strcmp(state
.c_str(), "shot")) playstate
= StateShot
;
43 else if (0 == strcmp(state
.c_str(), "score")) playstate
= StateScore
;
44 else if (0 == strcmp(state
.c_str(), "wait")) playstate
= StateWait
;
45 else return node
->returnError("Unknown playstate type");
46 playstates
.push_back(playstate
);
48 if (playstates
.empty()) return node
->returnError("No playstats defined");
51 if (!node
->getNamedChild("file", file
)) return false;
52 if (!S3D::checkDataFile(file
.c_str())) return false;
55 if (!node
->getNamedChild("gain", gain
)) return false;
56 return node
->failChildren();