/** * @brief Save callback for savegames in xml * @param[out] p XML Node structure, where we write the information to * @sa INS_LoadXML * @sa SAV_GameSaveXML */ qboolean INS_SaveXML (xmlNode_t *p) { xmlNode_t *n; installation_t *inst; n = XML_AddNode(p, SAVE_INSTALLATION_INSTALLATIONS); Com_RegisterConstList(saveInstallationConstants); INS_Foreach(inst) { xmlNode_t *s, *ss; s = XML_AddNode(n, SAVE_INSTALLATION_INSTALLATION); XML_AddString(s, SAVE_INSTALLATION_TEMPLATEID, inst->installationTemplate->id); XML_AddInt(s, SAVE_INSTALLATION_IDX, inst->idx); XML_AddString(s, SAVE_INSTALLATION_NAME, inst->name); XML_AddPos3(s, SAVE_INSTALLATION_POS, inst->pos); XML_AddString(s, SAVE_INSTALLATION_STATUS, Com_GetConstVariable(SAVE_INSTALLATIONSTATUS_NAMESPACE, inst->installationStatus)); XML_AddInt(s, SAVE_INSTALLATION_DAMAGE, inst->installationDamage); XML_AddFloat(s, SAVE_INSTALLATION_ALIENINTEREST, inst->alienInterest); XML_AddInt(s, SAVE_INSTALLATION_BUILDSTART, inst->buildStart); ss = XML_AddNode(s, SAVE_INSTALLATION_BATTERIES); XML_AddIntValue(ss, SAVE_INSTALLATION_NUM, inst->numBatteries); B_SaveBaseSlotsXML(inst->batteries, inst->numBatteries, ss); } Com_UnregisterConstList(saveInstallationConstants); return qtrue; }
/** * @brief Save callback for savegames in XML Format * @param[out] parent XML Node structure, where we write the information to */ qboolean STATS_SaveXML (xmlNode_t *parent) { xmlNode_t * stats; stats = XML_AddNode(parent, SAVE_STATS_STATS); XML_AddIntValue(stats, SAVE_STATS_MISSIONS, ccs.campaignStats.missions); XML_AddIntValue(stats, SAVE_STATS_MISSIONSWON, ccs.campaignStats.missionsWon); XML_AddIntValue(stats, SAVE_STATS_MISSIONSLOST, ccs.campaignStats.missionsLost); XML_AddIntValue(stats, SAVE_STATS_BASESBUILT, ccs.campaignStats.basesBuilt); XML_AddIntValue(stats, SAVE_STATS_BASESATTACKED, ccs.campaignStats.basesAttacked); XML_AddIntValue(stats, SAVE_STATS_INSTALLATIONSBUILT, ccs.campaignStats.installationsBuilt); XML_AddIntValue(stats, SAVE_STATS_INTERCEPTIONS, ccs.campaignStats.interceptions); XML_AddIntValue(stats, SAVE_STATS_SOLDIERSLOST, ccs.campaignStats.soldiersLost); XML_AddIntValue(stats, SAVE_STATS_SOLDIERSNEW, ccs.campaignStats.soldiersNew); XML_AddIntValue(stats, SAVE_STATS_KILLEDALIENS, ccs.campaignStats.killedAliens); XML_AddIntValue(stats, SAVE_STATS_RESCUEDCIVILIANS, ccs.campaignStats.rescuedCivilians); XML_AddIntValue(stats, SAVE_STATS_RESEARCHEDTECHNOLOGIES, ccs.campaignStats.researchedTechnologies); XML_AddIntValue(stats, SAVE_STATS_MONEYINTERCEPTIONS, ccs.campaignStats.moneyInterceptions); XML_AddIntValue(stats, SAVE_STATS_MONEYBASES, ccs.campaignStats.moneyBases); XML_AddIntValue(stats, SAVE_STATS_MONEYRESEARCH, ccs.campaignStats.moneyResearch); XML_AddIntValue(stats, SAVE_STATS_MONEYWEAPONS, ccs.campaignStats.moneyWeapons); XML_AddIntValue(stats, SAVE_STATS_UFOSDETECTED, ccs.campaignStats.ufosDetected); XML_AddIntValue(stats, SAVE_STATS_ALIENBASESBUILT, ccs.campaignStats.alienBasesBuilt); XML_AddIntValue(stats, SAVE_STATS_UFOSSTORED, ccs.campaignStats.ufosStored); XML_AddIntValue(stats, SAVE_STATS_AIRCRAFTHAD, ccs.campaignStats.aircraftHad); return qtrue; }