// 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 #ifndef ALTTP_STRUCTS_HPP #define ALTTP_STRUCTS_HPP #ifndef __DOXYGEN_IGNORE__ #include #include "Athena/Types.hpp" namespace Athena { struct ALTTPRoomFlags { bool Chest1: 1; bool Chest2: 1; bool Chest3: 1; bool Chest4: 1; bool Quadrant1: 1; bool Quadrant2: 1; bool Quadrant3: 1; bool Quadrant4: 1; bool Door1: 1; bool Door2: 1; bool Door3: 1; bool Door4: 1; bool BossBattleWon: 1; bool Key: 1; bool KeyOrChest: 1; bool ChestOrTile: 1; }; struct ALTTPOverworldEvent { bool Unused1: 1; bool HeartPiece: 1; bool Overlay: 1; bool Unused2: 1; bool Unused3: 1; bool Unused4: 1; bool Set: 1; bool Unused5: 1; }; struct ALTTPInventory { char Bow; char Boomerang; bool Hookshot; char Bombs; // Bomb count char Magic; bool FireRod; bool IceRod; bool Bombos; bool Ether; bool Quake; bool Torch; bool Hammer; char Flute; bool BugNet; bool Book; bool Bottles; bool Somaria; bool Byrna; bool MagicCape; char MagicMirror; char Gloves; char Boots; bool Flippers; bool MoonPearl; char Unused; //? char Sword; char Shield; char Armor; char BottleTypes[4]; }; /*! \struct ALTTPLightDarkWorldIndicator */ struct ALTTPLightDarkWorldIndicator { bool Unused1: 1; bool Unused2: 1; bool Unused3: 1; bool Unused4: 1; bool Unused5: 1; bool Unused6: 1; bool IsDarkWorld: 1; bool Unused7: 1; }; struct ALTTPDungeonItemFlags { union { struct { bool Unused1: 1; bool Unused2: 1; bool GanonsTower: 1; bool TurtleRock: 1; bool GargoylesDomain: 1; bool TowerOfHera: 1; bool IcePalace: 1; bool SkullWoods: 1; }; atUint8 flags1; }; union { struct { bool MiseryMire: 1; bool DarkPalace: 1; bool SwampPalace: 1; bool HyruleCastle2: 1; // unused in orignal game bool DesertPalace: 1; bool EasternPalace: 1; bool HyruleCastle: 1; // unused exist in original game bool SewerPassage: 1; // unused exist in original game }; atUint8 flags2; }; }; struct ALTTPPendants { bool Courage: 1; bool Wisdom: 1; bool Power: 1; bool Unused1: 1; bool Unused2: 1; bool Unused3: 1; bool Unused4: 1; bool Unused5: 1; }; struct ALTTPAbilities { bool Nothing: 1; //? bool Swim: 1; bool Dash: 1; bool Pull: 1; bool Unknown1: 1; //--- bool Talk: 1; bool Read: 1; bool Unknown2: 1; //--- }; struct ALTTPCrystals { bool MiseryMire: 1; bool DarkPalace: 1; bool IcePalace: 1; bool TurtleRock: 1; bool SwampPalace: 1; bool GargoyleDomain: 1; bool SkullWoods: 1; }; struct ALTTPMagicUsage { bool Normal: 1; bool Half: 1; bool Quarter: 1; bool Unused1: 1; bool Unused2: 1; bool Unused3: 1; bool Unused4: 1; bool Unused5: 1; }; struct ALTTPProgressFlags1 { bool UncleSecretPassage: 1; bool DyingPriest: 1; //? bool ZeldaSanctuary: 1; //? bool Unused1: 1; bool UncleLeftHouse: 1; bool BookOfMudora: 1; //? Math says it's a guess need to investigate bool DwarfPartner: 1; //? bool Unused2: 1; }; struct ALTTPProgressFlags2 { bool BottleFromBum: 1; bool BottleFromSalesMen: 1; bool Unused1: 1; //? bool FluteBoy: 1; bool ThiefsChest: 1; bool SavedSmithPartner: 1; bool Unused2: 1; //? bool SmithsHaveSword: 1; }; } #endif // __DOXYGEN_IGNORE__ #endif // ALTTP_STRUCTS_HPP