[Add] Missions save code. Global save functions.

This commit is contained in:
Allanis 2013-05-08 19:45:38 +01:00
parent e5620f86eb
commit bb48d5ac23
3 changed files with 72 additions and 0 deletions

View File

@ -401,3 +401,34 @@ void missions_cleanup(void) {
mission_cleanup(&player_missions[i]);
}
int missions_save(xmlTextWriterPtr writer) {
int i, j;
xmlw_startElem(writer, "missions");
for(i = 0; i < MISSION_MAX; i++) {
if(player_missions[i].id != 0) {
xmlw_startElem(writer, "mission");
xmlw_elem(writer, "data", player_missions[i].data->name);
xmlw_elem(writer, "id", "%u", player_missions[i].id);
xmlw_elem(writer, "title", player_missions[i].title);
xmlw_elem(writer, "desc", player_missions[i].desc);
xmlw_elem(writer, "reward", player_missions[i].reward);
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.
// TODO: Save lua data.
xmlw_endElem(writer); // Mission.
}
}
xmlw_endElem(writer); // Missions.
return 0;
}

37
src/save.c Normal file
View File

@ -0,0 +1,37 @@
#include "lephisto.h"
#include "log.h"
#include "xml.h"
#include "save.h"
// Externs.
extern int player_save(xmlTextWriterPtr writer);
extern int missions_save(xmlTextWriterPtr writer);
int save_all(void) {
char* file;
xmlDocPtr doc;
xmlTextWriterPtr writer;
writer = xmlNewTextWriterDoc(&doc, 0);
if(writer == NULL) {
ERR("testXmlwriterDoc: Error creating the xml writer.");
return -1;
}
xmlw_start(writer);
// The data itself.
player_save(writer);
missions_save(writer);
xmlw_done(writer);
file = "test.xml";
xmlFreeTextWriter(writer);
xmlSaveFileEnc(file, doc, "UTF-8");
xmlFreeDoc(doc);
return 0;
}

4
src/save.h Normal file
View File

@ -0,0 +1,4 @@
#pragma once
int save_all(void);