From 7faee73f141518b216cb317209216997b48aa537 Mon Sep 17 00:00:00 2001 From: fgenesis Date: Sun, 23 Jun 2013 04:43:24 +0200 Subject: [PATCH] Android save compat: Support "ch" (current health) value, and make maxHealth float. --- Aquaria/Continuity.cpp | 21 +++++++++++++++++---- Aquaria/DSQ.h | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Aquaria/Continuity.cpp b/Aquaria/Continuity.cpp index a3c0e90..71d0a6d 100644 --- a/Aquaria/Continuity.cpp +++ b/Aquaria/Continuity.cpp @@ -2518,7 +2518,7 @@ void Continuity::saveFile(int slot, Vector position, unsigned char *scrShotData, startData.SetAttribute("scene", dsq->game->sceneName); startData.SetAttribute("exp", dsq->continuity.exp); startData.SetAttribute("h", dsq->continuity.maxHealth); - // ANDROID TODO: "ch" field + startData.SetAttribute("ch", dsq->continuity.health); startData.SetAttribute("naijaModel", dsq->continuity.naijaModel); startData.SetAttribute("costume", dsq->continuity.costume); startData.SetAttribute("form", dsq->continuity.form); @@ -3054,11 +3054,9 @@ void Continuity::loadFile(int slot) } } - // TODO ANDROID: "ch" field - if (startData->Attribute("h")) { - int read = atoi(startData->Attribute("h")); + float read = strtof(startData->Attribute("h"), NULL); maxHealth = read; health = read; std::ostringstream os; @@ -3071,6 +3069,21 @@ void Continuity::loadFile(int slot) dsq->game->avatar->health = maxHealth; } } + + if (startData->Attribute("ch")) + { + float h = strtof(startData->Attribute("ch"), NULL); + health = h; + std::ostringstream os; + os << "CurHealth read as: " << health; + debugLog(os.str()); + + if (dsq->game->avatar) + { + dsq->game->avatar->health = h; + } + } + if (startData->Attribute("seconds")) { std::istringstream is(startData->Attribute("seconds")); diff --git a/Aquaria/DSQ.h b/Aquaria/DSQ.h index b4a6461..555b04d 100644 --- a/Aquaria/DSQ.h +++ b/Aquaria/DSQ.h @@ -951,7 +951,7 @@ public: std::string getSaveFileName(int slot, const std::string &pfix); - int maxHealth; + float maxHealth; float health; bool hudVisible; unsigned int exp;