[Fix] Mission timers should save and load properly now.
This commit is contained in:
parent
6ad8d75d2d
commit
4af334e5e4
@ -681,11 +681,27 @@ int missions_saveActive(xmlTextWriterPtr writer) {
|
||||
if(player_missions[i].sys_marker != NULL)
|
||||
xmlw_elem(writer, "marked", player_missions[i].sys_marker);
|
||||
|
||||
/* Cargo. */
|
||||
xmlw_startElem(writer, "cargos");
|
||||
for(j = 0; j < player_missions[i].ncargo; j++)
|
||||
xmlw_elem(writer, "cargo", "%u", player_missions[i].cargo[j]);
|
||||
xmlw_endElem(writer); /* Cargo. */
|
||||
|
||||
/* Timers. */
|
||||
xmlw_startElem(writer, "timers");
|
||||
for(j = 0; j < MISSION_TIMER_MAX; j++) {
|
||||
if(player_missions[i].timer[j] > 0.) {
|
||||
xmlw_startElem(writer, "timer");
|
||||
|
||||
xmlw_attr(writer, "id", "%d", j);
|
||||
xmlw_attr(writer, "func", "%s", player_missions[i].tfunc[j]);
|
||||
xmlw_str(writer, "%f", player_missions[i].timer[j]);
|
||||
|
||||
xmlw_endElem(writer); /* "timers". */
|
||||
}
|
||||
}
|
||||
xmlw_endElem(writer); /* "timers". */
|
||||
|
||||
/* Write lua magic. */
|
||||
xmlw_startElem(writer, "lua");
|
||||
|
||||
@ -719,7 +735,7 @@ int missions_loadActive(xmlNodePtr parent) {
|
||||
|
||||
static int missions_parseActive(xmlNodePtr parent) {
|
||||
Mission* misn;
|
||||
int m;
|
||||
int m, i;
|
||||
char* buf;
|
||||
|
||||
xmlNodePtr node, cur, nest;
|
||||
@ -747,6 +763,7 @@ static int missions_parseActive(xmlNodePtr parent) {
|
||||
xmlr_strd(cur, "reward", misn->reward);
|
||||
xmlr_strd(cur, "marker", misn->sys_marker);
|
||||
|
||||
/* Cargo. */
|
||||
if(xml_isNode(cur, "cargos")) {
|
||||
nest = cur->xmlChildrenNode;
|
||||
do {
|
||||
@ -755,6 +772,23 @@ static int missions_parseActive(xmlNodePtr parent) {
|
||||
} while(xml_nextNode(nest));
|
||||
}
|
||||
|
||||
/* Timers. */
|
||||
if(xml_isNode(cur, "timers")) {
|
||||
nest = cur->xmlChildrenNode;
|
||||
do {
|
||||
if(xml_isNode(nest, "timer")) {
|
||||
xmlr_attr(nest, "id", buf);
|
||||
i = atoi(buf);
|
||||
free(buf);
|
||||
xmlr_attr(nest, "func", buf);
|
||||
|
||||
/* Set the timer. */
|
||||
misn->timer[i] = xml_getFloat(nest);
|
||||
misn->tfunc[i] = buf;
|
||||
}
|
||||
} while(xml_nextNode(nest));
|
||||
}
|
||||
|
||||
if(xml_isNode(cur, "lua"))
|
||||
/* Start the unpersist routine. */
|
||||
mission_unpersistData(misn->L, cur);
|
||||
|
Loading…
Reference in New Issue
Block a user