void xmlLoader::loadCommands(ofPtr<game> gm, ofxXmlSettings &XML, int stage, int pty) { int numCmds = XML.getNumTags("COMMAND"); for(int cmd = 0; cmd < numCmds; cmd++) { if(XML.pushTag("COMMAND", cmd)) { command t_cmd; int numTargets = XML.getNumTags("TARGET"); for(int tgt = 0; tgt < numTargets; tgt++) { t_cmd.targets.push_back(XML.getValue("TARGET", "",tgt)); } int numZTargets = XML.getNumTags("Z_TARGET"); for(int tgt = 0; tgt < numZTargets; tgt++) { t_cmd.zTargets.push_back(XML.getValue("Z_TARGET", "",tgt)); } int numSTargets = XML.getNumTags("S_TARGET"); for(int tgt = 0; tgt < numSTargets; tgt++) { t_cmd.sTargets.push_back(XML.getValue("S_TARGET", "",tgt)); } t_cmd.stage = stage; t_cmd.priority = pty; if(XML.tagExists("REPEAT"))t_cmd.isRepeatable = XML.getValue("REPEAT", true); t_cmd.isSchedulable = XML.getValue("SCHED", false); if(XML.tagExists("SCHED_TYPE"))t_cmd.schedType = XML.getValue("SCHED_TYPE", "none"); if(XML.tagExists("INTERVAL_SECS"))t_cmd.interval_secs = XML.getValue("INTERVAL_SECS", 0.0); if(XML.tagExists("TOT_EXECS"))t_cmd.totExecs = XML.getValue("TOT_EXECS", 1); parseActions(t_cmd, XML); gm->addCommand(t_cmd); XML.popTag(); // COMMAND } } }