2014-11-29 03:32:37 +00:00
|
|
|
|
#if !defined(ATHENA_NO_SAVES) && !defined(ATHENA_NO_ZQUEST)
|
2015-05-19 03:24:56 +00:00
|
|
|
|
// This file is part of libAthena.
|
|
|
|
|
//
|
|
|
|
|
// libAthena is free software: you can redistribute it and/or modify
|
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
// (at your option) any later version.
|
|
|
|
|
//
|
|
|
|
|
// libAthena is distributed in the hope that it will be useful,
|
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
|
//
|
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
|
|
|
// along with libAthena. If not, see <http://www.gnu.org/licenses/>
|
2014-04-20 09:14:15 +00:00
|
|
|
|
|
|
|
|
|
#ifndef SKYWARDSWORDQUEST_HPP
|
|
|
|
|
#define SKYWARDSWORDQUEST_HPP
|
|
|
|
|
|
|
|
|
|
#include "Athena/Global.hpp"
|
2014-09-29 03:33:36 +00:00
|
|
|
|
#include "Athena/ZQuestFile.hpp"
|
2014-04-20 09:14:15 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
namespace Athena
|
|
|
|
|
{
|
2014-04-20 09:14:15 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
// TODO: Handle game specific data
|
|
|
|
|
class SkywardSwordQuest : public ZQuestFile
|
2014-11-29 03:32:37 +00:00
|
|
|
|
{
|
2015-05-19 03:24:56 +00:00
|
|
|
|
public:
|
|
|
|
|
enum AmmoType
|
|
|
|
|
{
|
|
|
|
|
Arrows,
|
|
|
|
|
Bombs,
|
|
|
|
|
Seeds
|
|
|
|
|
};
|
2014-11-29 03:32:37 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
SkywardSwordQuest(atUint8* data, atUint32 len);
|
2014-04-20 09:14:15 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
void setPlayerName(const std::string& name);
|
|
|
|
|
std::string playerName() const;
|
2014-11-29 03:32:37 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
void setRupeeCount(atUint16 value);
|
|
|
|
|
atUint16 rupeeCount();
|
|
|
|
|
void setAmmoCount(AmmoType type, atUint32 count);
|
|
|
|
|
atUint32 ammoCount(AmmoType type);
|
|
|
|
|
void setMaxHP(atUint16 val);
|
|
|
|
|
atUint16 maxHP();
|
|
|
|
|
float maxHearts();
|
|
|
|
|
void setSpawnHP(atUint16 val);
|
|
|
|
|
atUint16 spawnHP();
|
|
|
|
|
float spawnHearts();
|
|
|
|
|
void setCurrentHP(atUint16 val);
|
|
|
|
|
atUint16 currentHP();
|
|
|
|
|
float currentHearts();
|
|
|
|
|
std::string currentLocation();
|
|
|
|
|
std::string currentArea();
|
|
|
|
|
std::string currentLocationCopy();
|
2014-11-29 03:32:37 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
void setSkipData(const atUint8* data);
|
|
|
|
|
atUint8* skipData() const;
|
2014-04-20 09:14:15 +00:00
|
|
|
|
|
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
atUint32 slotChecksum();
|
|
|
|
|
atUint32 skipChecksum();
|
|
|
|
|
void fixChecksums();
|
2014-11-29 03:32:37 +00:00
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
void setNew(bool isNew);
|
|
|
|
|
bool isNew() const;
|
|
|
|
|
private:
|
|
|
|
|
atUint8* m_skipData;
|
|
|
|
|
};
|
2014-04-20 09:14:15 +00:00
|
|
|
|
|
|
|
|
|
|
2015-05-19 03:24:56 +00:00
|
|
|
|
} // zelda
|
2014-04-20 09:14:15 +00:00
|
|
|
|
#endif // SSQUEST_HPP
|
2014-06-18 04:51:18 +00:00
|
|
|
|
#endif // ATHENA_NO_SAVES
|