Exemplo n.º 1
0
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
        }

    }

}