athena/include/ALTTPQuest.hpp

687 lines
14 KiB
C++
Raw Normal View History

// This file is part of libZelda.
//
// libZelda 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.
//
// libZelda 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 libZelda. If not, see <http://www.gnu.org/licenses/>
#ifndef __ALTTP_QUEST_HPP__
#define __ALTTP_QUEST_HPP__
#include "Types.hpp"
#include <string>
#include <vector>
#include "ALTTPStructs.hpp"
#include "ALTTPEnums.hpp"
2013-07-21 03:57:20 +00:00
namespace zelda
{
/*! \class ALTTPQuest
* \brief A Link to the Past Quest container class
*
* Contains all relevant data for an A Link to the Past
* Quest entry.
*/
class ALTTPQuest
{
public:
2013-07-21 03:57:20 +00:00
/*!
* \brief ALTTPQuest
*/
ALTTPQuest();
~ALTTPQuest();
2013-07-21 03:57:20 +00:00
/*!
* \brief setRoomFlags
* \param flags
*/
void setRoomFlags(std::vector<ALTTPRoomFlags*> flags);
2013-07-21 03:57:20 +00:00
/*!
* \brief setRoomFlags
* \param rf
* \param id
*/
void setRoomFlags(ALTTPRoomFlags* rf, Uint32 id);
2013-07-21 03:57:20 +00:00
/*!
* \brief roomFlags
* \return
*/
std::vector<ALTTPRoomFlags*> roomFlags();
2013-07-21 03:57:20 +00:00
/*!
* \brief roomFlags
* \param id
* \return
*/
ALTTPRoomFlags* roomFlags(Uint32 id);
2013-07-21 03:57:20 +00:00
/*!
* \brief setOverworldEvents
* \param events
*/
void setOverworldEvents(std::vector<ALTTPOverworldEvent*> events);
2013-07-21 03:57:20 +00:00
/*!
* \brief setOverworldEvents
* \param ow
* \param id
*/
void setOverworldEvents(ALTTPOverworldEvent* ow, Uint32 id);
2013-07-21 03:57:20 +00:00
/*!
* \brief overworldEvents
* \return
*/
std::vector<ALTTPOverworldEvent*> overworldEvents() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief overworldEvent
* \param id
* \return
*/
ALTTPOverworldEvent* overworldEvent(Uint32 id) const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setInventory
* \param inv
*/
void setInventory(ALTTPInventory* inv);
2013-07-21 03:57:20 +00:00
/*!
* \brief inventory
* \return
*/
ALTTPInventory* inventory() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setRupeeMax
* \param val
*/
void setRupeeMax(Uint16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief rupeeMax
* \return
*/
Uint16 rupeeMax() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setRupeeCurrent
* \param val
*/
void setRupeeCurrent(Uint16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief rupeeCurrent
* \return
*/
Uint16 rupeeCurrent() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setCompasses
* \param flags
*/
void setCompasses(ALTTPDungeonItemFlags flags);
2013-07-21 03:57:20 +00:00
/*!
* \brief compasses
* \return
*/
ALTTPDungeonItemFlags compasses() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setBigKeys
* \param flags
*/
void setBigKeys(ALTTPDungeonItemFlags flags);
2013-07-21 03:57:20 +00:00
/*!
* \brief bigKeys
* \return
*/
ALTTPDungeonItemFlags bigKeys() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setDungeonMaps
* \param flags
*/
void setDungeonMaps(ALTTPDungeonItemFlags flags);
2013-07-21 03:57:20 +00:00
/*!
* \brief dungeonMaps
* \return
*/
ALTTPDungeonItemFlags dungeonMaps() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setWishingPond
* \param val
*/
void setWishingPond(Uint16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief wishingPond
* \return
*/
Uint16 wishingPond() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setHealthMax
* \param val
*/
void setHealthMax(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief healthMax
* \return
*/
Uint8 healthMax() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setHealth
* \param val
*/
void setHealth(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief health
* \return
*/
Uint8 health() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setMagicPower
* \param val
*/
void setMagicPower(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief magicPower
* \return
*/
Uint8 magicPower() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setKeys
* \param val
*/
void setKeys(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief keys
* \return
*/
Uint8 keys() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setBombUpgrades
* \param val
*/
void setBombUpgrades(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief bombUpgrades
* \return
*/
Uint8 bombUpgrades() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setArrowUpgrades
* \param val
*/
void setArrowUpgrades(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief arrowUpgrades
* \return
*/
Uint8 arrowUpgrades() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setHealthFiller
* \param val
*/
void setHealthFiller(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief healthFiller
* \return
*/
Uint8 healthFiller() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setMagicFiller
* \param val
*/
void setMagicFiller(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief magicFiller
* \return
*/
Uint8 magicFiller() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setPendants
* \param val
*/
void setPendants(ALTTPPendants val);
2013-07-21 03:57:20 +00:00
/*!
* \brief pendants
* \return
*/
ALTTPPendants pendants() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setBombFiller
* \param val
*/
void setBombFiller(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief bombFiller
* \return
*/
Uint8 bombFiller() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setArrowFiller
* \param val
*/
void setArrowFiller(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief arrowFiller
* \return
*/
Uint8 arrowFiller() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setArrows
* \param val
*/
void setArrows(Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief arrows
* \return
*/
Uint8 arrows() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setAbilityFlags
* \param val
*/
void setAbilityFlags(ALTTPAbilities val);
2013-07-21 03:57:20 +00:00
/*!
* \brief abilityFlags
* \return
*/
ALTTPAbilities abilityFlags() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setCrystals
* \param val
*/
void setCrystals(ALTTPCrystals val);\
/*!
* \brief crystals
* \return
*/
ALTTPCrystals crystals() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setMagicUsage
* \param val
*/
void setMagicUsage(ALTTPMagicUsage val);
2013-07-21 03:57:20 +00:00
/*!
* \brief magicUsage
* \return
*/
ALTTPMagicUsage magicUsage() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setDungeonKeys
* \param val
*/
void setDungeonKeys(std::vector<Uint8> val);
2013-07-21 03:57:20 +00:00
/*!
* \brief setDungeonKeys
* \param id
* \param val
*/
void setDungeonKeys(Uint32 id, Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief dungeonKeys
* \param id
* \return
*/
Uint8 dungeonKeys(Uint32 id) const;
2013-07-21 03:57:20 +00:00
/*!
* \brief dungeonCount
* \return
*/
Uint32 dungeonCount() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setProgressIndicator
* \param val
*/
void setProgressIndicator(ALTTPProgressIndicator val);
2013-07-21 03:57:20 +00:00
/*!
* \brief progressIndicator
* \return
*/
ALTTPProgressIndicator progressIndicator() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setProgressFlags1
* \param val
*/
void setProgressFlags1(ALTTPProgressFlags1 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief progressFlags1
* \return
*/
ALTTPProgressFlags1 progressFlags1() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setMapIcon
* \param val
*/
void setMapIcon(ALTTPMapIcon val);
2013-07-21 03:57:20 +00:00
/*!
* \brief mapIcon
* \return
*/
ALTTPMapIcon mapIcon() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setStartLocation
* \param val
*/
void setStartLocation(ALTTPStartLocation val);
2013-07-21 03:57:20 +00:00
/*!
* \brief startLocation
* \return
*/
ALTTPStartLocation startLocation() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setProgressFlags2
* \param val
*/
void setProgressFlags2(ALTTPProgressFlags2 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief progressFlags2
* \return
*/
ALTTPProgressFlags2 progressFlags2() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setLightDarkWorldIndicator
* \param val
*/
void setLightDarkWorldIndicator(ALTTPLightDarkWorldIndicator val);
2013-07-21 03:57:20 +00:00
/*!
* \brief lightDarkWorldIndicator
* \return
*/
ALTTPLightDarkWorldIndicator lightDarkWorldIndicator() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setTagAlong
* \param val
*/
void setTagAlong(ALTTPTagAlong val);
2013-07-21 03:57:20 +00:00
/*!
* \brief tagAlong
* \return
*/
ALTTPTagAlong tagAlong() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setOldManFlags
* \param flags
*/
void setOldManFlags(std::vector<Uint8> flags);
2013-07-21 03:57:20 +00:00
/*!
* \brief setOldManFlag
* \param id
* \param val
*/
void setOldManFlag(Uint32 id, Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief oldManFlag
* \param id
* \return
*/
Uint8 oldManFlag(Uint32 id);
2013-07-21 03:57:20 +00:00
/*!
* \brief oldManFlagCount
* \return
*/
Uint32 oldManFlagCount() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setBombFlag
* \param flag
*/
void setBombFlag(Uint8 flag);
2013-07-21 03:57:20 +00:00
/*!
* \brief bombFlag
* \return
*/
Uint8 bombFlag() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setUnknown1
* \param flags
*/
void setUnknown1(std::vector<Uint8> flags);
2013-07-21 03:57:20 +00:00
/*!
* \brief setUnknown1
* \param id
* \param val
*/
void setUnknown1(Uint32 id, Uint8 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief unknown1
* \param id
* \return
*/
Uint8 unknown1(Uint32 id);
2013-07-21 03:57:20 +00:00
/*!
* \brief unknown1Count
* \return
*/
Uint32 unknown1Count() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setPlayerName
* \param playerName
*/
void setPlayerName(std::vector<Uint16> playerName);
2013-07-21 03:57:20 +00:00
/*!
* \brief setPlayerName
* \param playerName
*/
void setPlayerName(const std::string& playerName);
2013-07-21 03:57:20 +00:00
/*!
* \brief playerName
* \return
*/
std::vector<Uint16> playerName() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief playerNameToString
* \return
*/
std::string playerNameToString() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setValid
* \param val
*/
void setValid(bool val);
2013-07-21 03:57:20 +00:00
/*!
* \brief valid
* \return
*/
bool valid();
2013-07-21 03:57:20 +00:00
/*!
* \brief setDungeonDeathTotals
* \param val
*/
void setDungeonDeathTotals(std::vector<Uint16> val);
2013-07-21 03:57:20 +00:00
/*!
* \brief setDungeonDeathTotal
* \param id
* \param val
*/
void setDungeonDeathTotal(Uint32 id, Uint16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief dungeonDeathTotal
* \param id
* \return
*/
Uint16 dungeonDeathTotal(Uint32 id) const;
2013-07-21 03:57:20 +00:00
/*!
* \brief dungeonDeathTotalCount
* \return
*/
Uint16 dungeonDeathTotalCount() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setUnknown2
* \param val
*/
void setUnknown2(Uint16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief unknown2
* \return
*/
Uint16 unknown2() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setDeathSaveCount
* \param val
*/
void setDeathSaveCount(Uint16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief deathSaveCount
* \return
*/
Uint16 deathSaveCount() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setPostGameDeathCounter
* \param val
*/
void setPostGameDeathCounter(Int16 val);
2013-07-21 03:57:20 +00:00
/*!
* \brief postGameDeathCounter
* \return
*/
Int16 postGameDeathCounter() const;
2013-07-21 03:57:20 +00:00
/*!
* \brief setChecksum
* \param checksum
*/
void setChecksum(Uint16 checksum);
2013-07-21 03:57:20 +00:00
/*!
* \brief checksum
* \return
*/
Uint16 checksum() const;
private:
std::vector<ALTTPRoomFlags*> m_roomFlags;
std::vector<ALTTPOverworldEvent*> m_overworldEvents;
ALTTPInventory* m_inventory;
Uint16 m_rupeeMax;
Uint16 m_rupeeCurrent;
ALTTPDungeonItemFlags m_compasses;
ALTTPDungeonItemFlags m_bigKeys;
ALTTPDungeonItemFlags m_dungeonMaps;
Uint16 m_wishingPond;
Uint8 m_healthMax;
Uint8 m_health;
Uint8 m_magicPower;
Uint8 m_keys;
Uint8 m_bombUpgrades;
Uint8 m_arrowUpgrades;
Uint8 m_heartFiller;
Uint8 m_magicFiller;
ALTTPPendants m_pendants;
Uint8 m_bombFiller;
Uint8 m_arrowFiller;
Uint8 m_arrows;
ALTTPAbilities m_abilityFlags;
ALTTPCrystals m_crystals;
ALTTPMagicUsage m_magicUsage;
std::vector<Uint8> m_dungeonKeys;
ALTTPProgressIndicator m_progressIndicator;
ALTTPProgressFlags1 m_progressFlags1;
ALTTPMapIcon m_mapIcon;
ALTTPStartLocation m_startLocation;
ALTTPProgressFlags2 m_progressFlags2;
ALTTPLightDarkWorldIndicator m_lightDarkWorldIndicator;
ALTTPTagAlong m_tagAlong;
std::vector<Uint8> m_oldManFlags;
Uint8 m_bombFlag;
std::vector<Uint8> m_unknown1;
std::vector<Uint16> m_playerName;
Uint16 m_valid;
std::vector<Uint16> m_dungeonDeathTotals;
Uint16 m_unknown2;
Uint16 m_deathSaveCount;
Int16 m_postGameDeathCounter;
Uint16 m_checksum;
};
2013-07-21 03:57:20 +00:00
} // zelda
#endif // __ALTTP_QUEST_HPP__