mirror of https://github.com/zeldaret/tp.git
1034 lines
28 KiB
C++
1034 lines
28 KiB
C++
#ifndef D_SAVE_D_SAVE_H
|
|
#define D_SAVE_D_SAVE_H
|
|
|
|
#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/printf.h"
|
|
#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h"
|
|
#include "SSystem/SComponent/c_xyz.h"
|
|
#include "dolphin/types.h"
|
|
|
|
#define DEFAULT_SELECT_ITEM_INDEX 0
|
|
#define MAX_SELECT_ITEM 4
|
|
#define MAX_EQUIPMENT 6
|
|
#define MAX_EVENTS 256
|
|
#define MAX_ITEM_SLOTS 24
|
|
#define LIGHT_DROP_STAGE 4
|
|
#define LETTER_INFO_BIT 64
|
|
#define BOMB_BAG_MAX 3
|
|
#define BOTTLE_MAX 4
|
|
#define TBOX_MAX 64
|
|
#define DSV_MEMBIT_ENUM_MAX 8
|
|
#define ITEM_MAX_DAN 128
|
|
#define SWITCH_ZONE_MAX 0x20
|
|
#define SWITCH_ONE_ZONE_MAX 0x10
|
|
#define ITEM_ZONE_MAX 0x20
|
|
#define ITEM_ONE_ZONE_MAX 0x10
|
|
|
|
enum Wallets {
|
|
/* 0x0 */ WALLET,
|
|
/* 0x1 */ BIG_WALLET,
|
|
/* 0x2 */ GIANT_WALLET
|
|
};
|
|
|
|
enum ItemSlots {
|
|
/* 0x00 */ SLOT_0,
|
|
/* 0x01 */ SLOT_1,
|
|
/* 0x02 */ SLOT_2,
|
|
/* 0x03 */ SLOT_3,
|
|
/* 0x04 */ SLOT_4,
|
|
/* 0x05 */ SLOT_5,
|
|
/* 0x06 */ SLOT_6,
|
|
/* 0x07 */ SLOT_7,
|
|
/* 0x08 */ SLOT_8,
|
|
/* 0x09 */ SLOT_9,
|
|
/* 0x0A */ SLOT_10,
|
|
/* 0x0B */ SLOT_11,
|
|
/* 0x0C */ SLOT_12,
|
|
/* 0x0D */ SLOT_13,
|
|
/* 0x0E */ SLOT_14,
|
|
/* 0x0F */ SLOT_15,
|
|
/* 0x10 */ SLOT_16,
|
|
/* 0x11 */ SLOT_17,
|
|
/* 0x12 */ SLOT_18,
|
|
/* 0x13 */ SLOT_19,
|
|
/* 0x14 */ SLOT_20,
|
|
/* 0x15 */ SLOT_21,
|
|
/* 0x16 */ SLOT_22,
|
|
/* 0x17 */ SLOT_23
|
|
};
|
|
|
|
enum ItemTable {
|
|
/* 0x00 */ HEART,
|
|
/* 0x01 */ GREEN_RUPEE,
|
|
/* 0x02 */ BLUE_RUPEE,
|
|
/* 0x03 */ YELLOW_RUPEE,
|
|
/* 0x04 */ RED_RUPEE,
|
|
/* 0x05 */ PURPLE_RUPEE,
|
|
/* 0x06 */ ORANGE_RUPEE,
|
|
/* 0x07 */ SILVER_RUPEE,
|
|
/* 0x08 */ S_MAGIC,
|
|
/* 0x09 */ L_MAGIC,
|
|
/* 0x0A */ BOMB_5,
|
|
/* 0x0B */ BOMB_10,
|
|
/* 0x0C */ BOMB_20,
|
|
/* 0x0D */ BOMB_30,
|
|
/* 0x0E */ ARROW_10,
|
|
/* 0x0F */ ARROW_20,
|
|
/* 0x10 */ ARROW_30,
|
|
/* 0x11 */ ARROW_1,
|
|
/* 0x12 */ PACHINKO_SHOT,
|
|
/* 0x13 */ noentry1,
|
|
/* 0x14 */ noentry2,
|
|
/* 0x15 */ noentry3,
|
|
/* 0x16 */ WATER_BOMB_5,
|
|
/* 0x17 */ WATER_BOMB_10,
|
|
/* 0x18 */ WATER_BOMB_20,
|
|
/* 0x19 */ WATER_BOMB_30,
|
|
/* 0x1A */ BOMB_INSECT_5,
|
|
/* 0x1B */ BOMB_INSECT_10,
|
|
/* 0x1C */ BOMB_INSECT_20,
|
|
/* 0x1D */ BOMB_INSECT_30,
|
|
/* 0x1E */ RECOVERY_FAILY,
|
|
/* 0x1F */ TRIPLE_HEART,
|
|
/* 0x20 */ SMALL_KEY,
|
|
/* 0x21 */ KAKERA_HEART,
|
|
/* 0x22 */ UTAWA_HEART,
|
|
/* 0x23 */ MAP,
|
|
/* 0x24 */ COMPUS,
|
|
/* 0x25 */ DUNGEON_EXIT,
|
|
/* 0x26 */ BOSS_KEY,
|
|
/* 0x27 */ DUNGEON_BACK,
|
|
/* 0x28 */ SWORD,
|
|
/* 0x29 */ MASTER_SWORD,
|
|
/* 0x2A */ WOOD_SHIELD,
|
|
/* 0x2B */ SHIELD,
|
|
/* 0x2C */ HYLIA_SHIELD,
|
|
/* 0x2D */ TKS_LETTER,
|
|
/* 0x2E */ WEARS_CASUAL,
|
|
/* 0x2F */ WEAR_KOKIRI,
|
|
/* 0x30 */ ARMOR,
|
|
/* 0x31 */ WEAR_ZORA,
|
|
/* 0x32 */ MAGIC_LV1,
|
|
/* 0x33 */ DUNGEON_EXIT_2,
|
|
/* 0x34 */ WALLET_LV1,
|
|
/* 0x35 */ WALLET_LV2,
|
|
/* 0x36 */ WALLET_LV3,
|
|
/* 0x37 */ noentry4,
|
|
/* 0x38 */ noentry5,
|
|
/* 0x39 */ noentry6,
|
|
/* 0x3A */ noentry7,
|
|
/* 0x3B */ noentry8,
|
|
/* 0x3C */ noentry9,
|
|
/* 0x3D */ ZORAS_JEWEL,
|
|
/* 0x3E */ HAWK_EYE,
|
|
/* 0x3F */ WOOD_STICK,
|
|
/* 0x40 */ BOOMERANG,
|
|
/* 0x41 */ SPINNER,
|
|
/* 0x42 */ IRONBALL,
|
|
/* 0x43 */ BOW,
|
|
/* 0x44 */ HOOKSHOT,
|
|
/* 0x45 */ HVY_BOOTS,
|
|
/* 0x46 */ COPY_ROD,
|
|
/* 0x47 */ W_HOOKSHOT,
|
|
/* 0x48 */ KANTERA,
|
|
/* 0x49 */ LIGHT_SWORD,
|
|
/* 0x4A */ FISHING_ROD_1,
|
|
/* 0x4B */ PACHINKO,
|
|
/* 0x4C */ COPY_ROD_2,
|
|
/* 0x4D */ noentry10,
|
|
/* 0x4E */ noentry11,
|
|
/* 0x4F */ BOMB_BAG_LV2,
|
|
/* 0x50 */ BOMB_BAG_LV1,
|
|
/* 0x51 */ BOMB_IN_BAG,
|
|
/* 0x52 */ noentry12,
|
|
/* 0x53 */ LIGHT_ARROW,
|
|
/* 0x54 */ ARROW_LV1,
|
|
/* 0x55 */ ARROW_LV2,
|
|
/* 0x56 */ ARROW_LV3,
|
|
/* 0x57 */ noentry13,
|
|
/* 0x58 */ LURE_ROD,
|
|
/* 0x59 */ BOMB_ARROW,
|
|
/* 0x5A */ HAWK_ARROW,
|
|
/* 0x5B */ BEE_ROD,
|
|
/* 0x5C */ JEWEL_ROD,
|
|
/* 0x5D */ WORM_ROD,
|
|
/* 0x5E */ JEWEL_BEE_ROD,
|
|
/* 0x5F */ JEWEL_WORM_ROD,
|
|
/* 0x60 */ EMPTY_BOTTLE,
|
|
/* 0x61 */ RED_BOTTLE,
|
|
/* 0x62 */ GREEN_BOTTLE,
|
|
/* 0x63 */ BLUE_BOTTLE,
|
|
/* 0x64 */ MILK_BOTTLE,
|
|
/* 0x65 */ HALF_MILK_BOTTLE,
|
|
/* 0x66 */ OIL_BOTTLE,
|
|
/* 0x67 */ WATER_BOTTLE,
|
|
/* 0x68 */ OIL_BOTTLE_2,
|
|
/* 0x69 */ RED_BOTTLE_2,
|
|
/* 0x6A */ UGLY_SOUP,
|
|
/* 0x6B */ HOT_SPRING,
|
|
/* 0x6C */ FAIRY,
|
|
/* 0x6D */ HOT_SPRING_2,
|
|
/* 0x6E */ OIL2,
|
|
/* 0x6F */ OIL,
|
|
/* 0x70 */ NORMAL_BOMB,
|
|
/* 0x71 */ WATER_BOMB,
|
|
/* 0x72 */ POKE_BOMB,
|
|
/* 0x73 */ FAIRY_DROP,
|
|
/* 0x74 */ WORM,
|
|
/* 0x75 */ DROP_BOTTLE,
|
|
/* 0x76 */ BEE_CHILD,
|
|
/* 0x77 */ CHUCHU_RARE,
|
|
/* 0x78 */ CHUCHU_RED,
|
|
/* 0x79 */ CHUCHU_BLUE,
|
|
/* 0x7A */ CHUCHU_GREEN,
|
|
/* 0x7B */ CHUCHU_YELLOW,
|
|
/* 0x7C */ CHUCHU_PURPLE,
|
|
/* 0x7D */ LV1_SOUP,
|
|
/* 0x7E */ LV2_SOUP,
|
|
/* 0x7F */ LV3_SOUP,
|
|
/* 0x80 */ LETTER,
|
|
/* 0x81 */ BILL,
|
|
/* 0x82 */ WOOD_STATUE,
|
|
/* 0x83 */ IRIAS_PENDANT,
|
|
/* 0x84 */ HORSE_FLUTE,
|
|
/* 0x85 */ noentry14,
|
|
/* 0x86 */ noentry15,
|
|
/* 0x87 */ noentry16,
|
|
/* 0x88 */ noentry17,
|
|
/* 0x89 */ noentry18,
|
|
/* 0x8A */ noentry19,
|
|
/* 0x8B */ noentry20,
|
|
/* 0x8C */ noentry21,
|
|
/* 0x8D */ noentry22,
|
|
/* 0x8E */ noentry23,
|
|
/* 0x8F */ noentry24,
|
|
/* 0x90 */ RAFRELS_MEMO,
|
|
/* 0x91 */ ASHS_SCRIBBLING,
|
|
/* 0x92 */ noentry25,
|
|
/* 0x93 */ noentry26,
|
|
/* 0x94 */ noentry27,
|
|
/* 0x95 */ noentry28,
|
|
/* 0x96 */ noentry29,
|
|
/* 0x97 */ noentry30,
|
|
/* 0x98 */ noentry31,
|
|
/* 0x99 */ noentry32,
|
|
/* 0x9A */ noentry33,
|
|
/* 0x9B */ noentry34,
|
|
/* 0x9C */ CHUCHU_YELLOW2,
|
|
/* 0x9D */ OIL_BOTTLE3,
|
|
/* 0x9E */ SHOP_BEE_CHILD,
|
|
/* 0x9F */ CHUCHU_BLACK,
|
|
/* 0xA0 */ LIGHT_DROP,
|
|
/* 0xA1 */ DROP_CONTAINER,
|
|
/* 0xA2 */ DROP_CONTAINER02,
|
|
/* 0xA3 */ DROP_CONTAINER03,
|
|
/* 0xA4 */ FILLED_CONTAINER,
|
|
/* 0xA5 */ MIRROR_PIECE_2,
|
|
/* 0xA6 */ MIRROR_PIECE_3,
|
|
/* 0xA7 */ MIRROR_PIECE_4,
|
|
/* 0xA8 */ noentry35,
|
|
/* 0xA9 */ noentry36,
|
|
/* 0xAA */ noentry37,
|
|
/* 0xAB */ noentry38,
|
|
/* 0xAC */ noentry39,
|
|
/* 0xAD */ noentry40,
|
|
/* 0xAE */ noentry41,
|
|
/* 0xAF */ noentry42,
|
|
/* 0xB0 */ SMELL_YELIA_POUCH,
|
|
/* 0xB1 */ SMELL_PUMPKIN,
|
|
/* 0xB2 */ SMELL_POH,
|
|
/* 0xB3 */ SMELL_FISH,
|
|
/* 0xB4 */ SMELL_CHILDREN,
|
|
/* 0xB5 */ SMELL_MEDICINE,
|
|
/* 0xB6 */ noentry43,
|
|
/* 0xB7 */ noentry44,
|
|
/* 0xB8 */ noentry45,
|
|
/* 0xB9 */ noentry46,
|
|
/* 0xBA */ noentry47,
|
|
/* 0xBB */ noentry48,
|
|
/* 0xBC */ noentry49,
|
|
/* 0xBD */ noentry50,
|
|
/* 0xBE */ noentry51,
|
|
/* 0xBF */ noentry52,
|
|
/* 0xC0 */ M_BEETLE,
|
|
/* 0xC1 */ F_BEETLE,
|
|
/* 0xC2 */ M_BUTTERFLY,
|
|
/* 0xC3 */ F_BUTTERFLY,
|
|
/* 0xC4 */ M_STAG_BEETLE,
|
|
/* 0xC5 */ F_STAG_BEETLE,
|
|
/* 0xC6 */ M_GRASSHOPPER,
|
|
/* 0xC7 */ F_GRASSHOPPER,
|
|
/* 0xC8 */ M_NANAFUSHI,
|
|
/* 0xC9 */ F_NANAFUSHI,
|
|
/* 0xCA */ M_DANGOMUSHI,
|
|
/* 0xCB */ F_DANGOMUSHI,
|
|
/* 0xCC */ M_MANTIS,
|
|
/* 0xCD */ F_MANTIS,
|
|
/* 0xCE */ M_LADYBUG,
|
|
/* 0xCF */ F_LADYBUG,
|
|
/* 0xD0 */ M_SNAIL,
|
|
/* 0xD1 */ F_SNAIL,
|
|
/* 0xD2 */ M_DRAGONFLY,
|
|
/* 0xD3 */ F_DRAGONFLY,
|
|
/* 0xD4 */ M_ANT,
|
|
/* 0xD5 */ F_ANT,
|
|
/* 0xD6 */ M_MAYFLY,
|
|
/* 0xD7 */ F_MAYFLY,
|
|
/* 0xD8 */ noentry53,
|
|
/* 0xD9 */ noentry54,
|
|
/* 0xDA */ noentry55,
|
|
/* 0xDB */ noentry56,
|
|
/* 0xDC */ noentry57,
|
|
/* 0xDD */ noentry58,
|
|
/* 0xDE */ noentry59,
|
|
/* 0xDF */ noentry60,
|
|
/* 0xE0 */ POU_SPIRIT,
|
|
/* 0xE1 */ noentry61,
|
|
/* 0xE2 */ noentry62,
|
|
/* 0xE3 */ noentry63,
|
|
/* 0xE4 */ noentry64,
|
|
/* 0xE5 */ noentry65,
|
|
/* 0xE6 */ noentry66,
|
|
/* 0xE7 */ noentry67,
|
|
/* 0xE8 */ noentry68,
|
|
/* 0xE9 */ ANCIENT_DOCUMENT,
|
|
/* 0xEA */ AIR_LETTER,
|
|
/* 0xEB */ ANCIENT_DOCUMENT2,
|
|
/* 0xEC */ LV7_DUNGEON_EXIT,
|
|
/* 0xED */ LINKS_SAVINGS,
|
|
/* 0xEE */ SMALL_KEY2,
|
|
/* 0xEF */ POU_FIRE1,
|
|
/* 0xF0 */ POU_FIRE2,
|
|
/* 0xF1 */ POU_FIRE3,
|
|
/* 0xF2 */ POU_FIRE4,
|
|
/* 0xF3 */ BOSSRIDER_KEY,
|
|
/* 0xF4 */ TOMATO_PUREE,
|
|
/* 0xF5 */ TASTE,
|
|
/* 0xF6 */ LV5_BOSS_KEY,
|
|
/* 0xF7 */ SURFBOARD,
|
|
/* 0xF8 */ KANTERA2,
|
|
/* 0xF9 */ L2_KEY_PIECES1,
|
|
/* 0xFA */ L2_KEY_PIECES2,
|
|
/* 0xFB */ L2_KEY_PIECES3,
|
|
/* 0xFC */ KEY_OF_CARAVAN,
|
|
/* 0xFD */ LV2_BOSS_KEY,
|
|
/* 0xFE */ KEY_OF_FILONE,
|
|
/* 0xFF */ NO_ITEM
|
|
};
|
|
|
|
enum CollectItem {
|
|
/* 0x0 */ COLLECT_CLOTHING,
|
|
/* 0x1 */ COLLECT_SWORD,
|
|
/* 0x2 */ COLLECT_SHIELD,
|
|
/* 0x3 */ COLLECT_SMELL,
|
|
/* 0x4 */ B_BUTTON_ITEM
|
|
};
|
|
|
|
enum Swords {
|
|
/* 0x0 */ COLLECT_ORDON_SWORD,
|
|
/* 0x1 */ COLLECT_MASTER_SWORD,
|
|
/* 0x2 */ COLLECT_WOODEN_SWORD,
|
|
/* 0x3 */ COLLECT_LIGHT_SWORD
|
|
};
|
|
|
|
enum Shields {
|
|
/* 0x0 */ COLLECT_WOODEN_SHIELD,
|
|
/* 0x1 */ COLLECT_ORDON_SHIELD,
|
|
/* 0x2 */ COLLECT_HYLIAN_SHIELD
|
|
};
|
|
|
|
enum Clothes {
|
|
/* 0x0 */ KOKIRI_CLOTHES_FLAG
|
|
};
|
|
|
|
enum LightDropStages {
|
|
/* 0x0 */ FARON_VESSEL,
|
|
/* 0x1 */ ELDIN_VESSEL,
|
|
/* 0x2 */ LANAYRU_VESSEL
|
|
};
|
|
|
|
enum ItemMax {
|
|
/* 0x0 */ ARROW_MAX,
|
|
/* 0x1 */ NORMAL_BOMB_MAX,
|
|
/* 0x2 */ WATER_BOMB_MAX,
|
|
/* 0x6 */ POKE_BOMB_MAX = 6
|
|
};
|
|
|
|
class dSv_player_status_a_c {
|
|
public:
|
|
void init();
|
|
void setSelectItemIndex(signed int, u8);
|
|
u8 getSelectItemIndex(signed int) const;
|
|
void setMixItemIndex(signed int, u8);
|
|
u8 getMixItemIndex(signed int) const;
|
|
u16 getRupeeMax() const;
|
|
int isMagicFlag(u8) const;
|
|
|
|
u16& getMaxLife() { return mMaxLife; }
|
|
u16& getLife() { return mLife; }
|
|
u16& getRupee() { return mRupee; }
|
|
u16& getOil() { return mOil; }
|
|
u8 getSelectEquip(int item) const { return mSelectEquip[item]; }
|
|
void setOil(u16 oil) { mOil = oil; }
|
|
void setMaxOil(u16 max) { mMaxOil = max; }
|
|
void setWalletSize(u8 size) { mWalletSize = size; }
|
|
void setMagic(u8 magic) { mMagic = magic; }
|
|
void setMaxMagic(u8 max) { mMaxMagic = max; }
|
|
void setRupee(u16 rupees) { mRupee = rupees; }
|
|
void setLife(u16 life) { mLife = life; }
|
|
void setMaxLife(u8 max) { mMaxLife = max; }
|
|
void setSelectEquip(int item_index, u8 item) { mSelectEquip[item_index] = item; }
|
|
|
|
private:
|
|
/* 0x00 */ u16 mMaxLife;
|
|
/* 0x02 */ u16 mLife;
|
|
/* 0x04 */ u16 mRupee;
|
|
/* 0x06 */ u16 mMaxOil;
|
|
/* 0x08 */ u16 mOil;
|
|
/* 0x0A */ u8 unk10;
|
|
/* 0x0B */ u8 mSelectItem[MAX_SELECT_ITEM]; // For GC: first 2 are X & Y, others unused; For
|
|
// Wii (in order): Left, Right, Down, B
|
|
/* 0x0F */ u8 mMixItem[MAX_SELECT_ITEM]; // Combo items; For GC: first 2 are X & Y, others
|
|
// unused; For Wii (in order): Left, Right, Down, B
|
|
/* 0x13 */ u8 mSelectEquip[MAX_EQUIPMENT];
|
|
/* 0x19 */ u8 mWalletSize;
|
|
/* 0x1A */ u8 mMaxMagic;
|
|
/* 0x1B */ u8 mMagic;
|
|
/* 0x1C */ u8 mMagicFlag;
|
|
/* 0x1D */ u8 unk29;
|
|
/* 0x1E */ u8 mTransformStatus;
|
|
/* 0x1F */ u8 unk31[3];
|
|
}; // Size: 0x28
|
|
|
|
class dSv_player_status_b_c {
|
|
public:
|
|
void init();
|
|
void onDarkClearLV(int);
|
|
BOOL isDarkClearLV(int) const;
|
|
void onTransformLV(int);
|
|
BOOL isTransformLV(int) const;
|
|
|
|
void setDateIpl(s64 time) { mDateIpl = time; }
|
|
|
|
private:
|
|
/* 0x00 */ s64 mDateIpl;
|
|
/* 0x08 */ u8 mTransformLevelFlag;
|
|
/* 0x09 */ u8 mDarkClearLevelFlag;
|
|
/* 0x0A */ u8 unk10;
|
|
/* 0x0B */ u8 unk11;
|
|
/* 0x0C */ float mTime;
|
|
/* 0x10 */ u16 mDate;
|
|
/* 0x12 */ u8 unk18[3];
|
|
}; // Size: 0x18
|
|
|
|
class dSv_horse_place_c {
|
|
public:
|
|
void init();
|
|
void set(const char*, const cXyz&, s16, s8);
|
|
|
|
private:
|
|
/* 0x00 */ cXyz mPos;
|
|
/* 0x0C */ u16 mAngleY;
|
|
/* 0x0E */ char mName[8];
|
|
/* 0x16 */ u8 mSpawnId;
|
|
/* 0x17 */ u8 mRoomNo;
|
|
}; // Size: 0x18
|
|
|
|
class dSv_player_return_place_c {
|
|
public:
|
|
void init();
|
|
void set(const char*, s8, u8);
|
|
u8 getRoomNo() { return mRoomNo; }
|
|
u8 getPlayerStatus() { return mPlayerStatus; }
|
|
char* getName() { return mName; }
|
|
|
|
private:
|
|
/* 0x00 */ char mName[8];
|
|
/* 0x08 */ u8 mPlayerStatus;
|
|
/* 0x09 */ s8 mRoomNo;
|
|
/* 0x0A */ u8 unk10;
|
|
/* 0x0B */ u8 unk11;
|
|
}; // Size: 0xC
|
|
|
|
class dSv_player_field_last_stay_info_c {
|
|
public:
|
|
void init();
|
|
BOOL isRegionBit(int unk) const;
|
|
void onRegionBit(int unk);
|
|
void set(const char*, const cXyz&, s16, s8, u8);
|
|
|
|
private:
|
|
/* 0x00 */ cXyz mPos;
|
|
/* 0x0C */ s16 mAngleY;
|
|
/* 0x0E */ char mName[8];
|
|
/* 0x16 */ u8 mLastSpawnId;
|
|
/* 0x17 */ u8 mRegionNo;
|
|
/* 0x18 */ bool mFieldDataExistFlag;
|
|
/* 0x19 */ u8 mRegion;
|
|
/* 0x1A */ u8 unk26[2];
|
|
}; // Size: 0x1C
|
|
|
|
class dSv_player_last_mark_info_c {
|
|
public:
|
|
void init();
|
|
void setWarpItemData(const char*, const cXyz&, s16, s8, u8, u8);
|
|
|
|
const char* getName() { return mName; }
|
|
cXyz getPos() { return mPos; }
|
|
s16 getAngleY() { return mAngleY; }
|
|
s8 getRoomNo() { return mRoomNo; }
|
|
char getWarpAcceptStage() { return mWarpAcceptStage; }
|
|
void resetWarpAcceptStage() { mWarpAcceptStage = -1; }
|
|
|
|
private:
|
|
/* 0x00 */ cXyz mPos;
|
|
/* 0x0C */ s16 mAngleY;
|
|
/* 0x0E */ char mName[8];
|
|
/* 0x16 */ u8 mSpawnId;
|
|
/* 0x17 */ s8 mRoomNo;
|
|
/* 0x18 */ char mWarpAcceptStage;
|
|
/* 0x19 */ u8 unk25[3];
|
|
}; // Size: 0x1C
|
|
|
|
class dSv_player_item_c {
|
|
public:
|
|
void init();
|
|
void setItem(int, u8);
|
|
u8 getItem(int, bool) const;
|
|
void setLineUpItem();
|
|
u8 getLineUpItem(int) const;
|
|
void setBottleItemIn(u8, u8);
|
|
void setEmptyBottleItemIn(u8);
|
|
void setEmptyBottle();
|
|
void setEmptyBottle(u8);
|
|
void setEquipBottleItemIn(u8, u8);
|
|
void setEquipBottleItemEmpty(u8);
|
|
u8 checkBottle(u8);
|
|
int checkInsectBottle();
|
|
u8 checkEmptyBottle();
|
|
void setBombBagItemIn(u8, u8, bool);
|
|
void setBombBagItemIn(u8, u8, u8, bool);
|
|
void setEmptyBombBagItemIn(u8, bool);
|
|
void setEmptyBombBagItemIn(u8, u8, bool);
|
|
void setEmptyBombBag();
|
|
void setEmptyBombBag(u8, u8);
|
|
u8 checkBombBag(u8);
|
|
void setWarashibeItem(u8);
|
|
void setRodTypeLevelUp();
|
|
void setBaitItem(u8);
|
|
|
|
private:
|
|
/* 0x00 */ u8 mItems[24];
|
|
/* 0x18 */ u8 mItemSlots[24];
|
|
}; // Size: 0x30
|
|
|
|
class dSv_player_get_item_c {
|
|
public:
|
|
void init();
|
|
void onFirstBit(u8);
|
|
void offFirstBit(u8);
|
|
int isFirstBit(u8) const;
|
|
|
|
private:
|
|
/* 0x0 */ u32 mItemFlags[8];
|
|
}; // Size: 0x20
|
|
|
|
class dSv_player_item_record_c {
|
|
public:
|
|
void init();
|
|
void setBombNum(u8, u8);
|
|
u8 getBombNum(u8) const;
|
|
void setBottleNum(u8, u8);
|
|
u8 addBottleNum(u8, s16);
|
|
u8 getBottleNum(u8) const;
|
|
|
|
u8 getArrowNum() const { return mArrowNum; }
|
|
void setArrowNum(u8 amount) { mArrowNum = amount; }
|
|
u8 getPachinkoNum() const { return mPachinkoNum; }
|
|
void setPachinkoNum(u8 num) { mPachinkoNum = num; }
|
|
|
|
private:
|
|
/* 0x0 */ u8 mArrowNum;
|
|
/* 0x1 */ u8 mBombNum[3];
|
|
/* 0x4 */ u8 mBottleNum[4];
|
|
/* 0x8 */ u8 mPachinkoNum;
|
|
/* 0x9 */ u8 unk5[3];
|
|
}; // Size: 0xC
|
|
|
|
class dSv_player_item_max_c {
|
|
public:
|
|
void init();
|
|
void setBombNum(u8, u8);
|
|
u8 getBombNum(u8) const;
|
|
|
|
void setArrowNum(u8 max) { mItemMax[ARROW_MAX] = max; }
|
|
u8 getArrowNum() { return mItemMax[ARROW_MAX]; }
|
|
|
|
private:
|
|
/* 0x0 */ u8 mItemMax[8];
|
|
}; // Size: 0x8
|
|
|
|
class dSv_player_collect_c {
|
|
public:
|
|
void init();
|
|
void setCollect(int, u8);
|
|
BOOL isCollect(int, u8) const;
|
|
void onCollectCrystal(u8);
|
|
BOOL isCollectCrystal(u8) const;
|
|
void onCollectMirror(u8);
|
|
BOOL isCollectMirror(u8) const;
|
|
|
|
u8 getPohNum() { return mPohNum; }
|
|
|
|
private:
|
|
/* 0x0 */ u8 mItem[8];
|
|
/* 0x8 */ u8 unk8;
|
|
/* 0x9 */ u8 mCrystal;
|
|
/* 0xA */ u8 mMirror;
|
|
/* 0xB */ u8 unk11;
|
|
/* 0xC */ u8 mPohNum;
|
|
/* 0xD */ u8 padding[3];
|
|
}; // Size: 0x10
|
|
|
|
class dSv_player_wolf_c {
|
|
public:
|
|
void init();
|
|
|
|
private:
|
|
/* 0x0 */ u8 unk0[3];
|
|
/* 0x3 */ u8 unk3;
|
|
}; // Size: 0x4
|
|
|
|
class dSv_light_drop_c {
|
|
public:
|
|
void init();
|
|
void setLightDropNum(u8, u8);
|
|
u8 getLightDropNum(u8) const;
|
|
void onLightDropGetFlag(u8);
|
|
BOOL isLightDropGetFlag(u8) const;
|
|
|
|
private:
|
|
/* 0x0 */ u8 mLightDropNum[4];
|
|
/* 0x4 */ u8 mLightDropGetFlag;
|
|
/* 0x5 */ u8 unk5[3];
|
|
}; // Size: 0x8
|
|
|
|
class dSv_letter_info_c {
|
|
public:
|
|
void init();
|
|
void onLetterGetFlag(int);
|
|
BOOL isLetterGetFlag(int) const;
|
|
void onLetterReadFlag(int);
|
|
int isLetterReadFlag(int) const;
|
|
|
|
private:
|
|
/* 0x00 */ u32 mLetterGetFlags[2];
|
|
/* 0x08 */ u32 mLetterReadFlags[2];
|
|
/* 0x10 */ u8 mGetNumber[64];
|
|
}; // Size: 0x50
|
|
|
|
class dSv_fishing_info_c {
|
|
public:
|
|
void init();
|
|
void addFishCount(u8);
|
|
|
|
private:
|
|
/* 0x00 */ u16 mFishCount[16];
|
|
/* 0x20 */ u8 mMaxSize[16];
|
|
}; // Size: 0x34
|
|
|
|
class dSv_player_info_c {
|
|
public:
|
|
void init();
|
|
char* getLinkName() { return (char*)mPlayerName; }
|
|
void setPlayerName(const char* name) { strcpy((char*)mPlayerName, name); }
|
|
void setHorseName(const char* name) { strcpy((char*)mHorseName, name); }
|
|
void setTotalTime(s64 time) { mTotalTime = time; }
|
|
|
|
private:
|
|
/* 0x00 */ u32 unk0;
|
|
/* 0x04 */ u32 unk4;
|
|
/* 0x08 */ u64 mTotalTime;
|
|
/* 0x10 */ u16 unk16;
|
|
/* 0x12 */ u16 mDeathCount;
|
|
/* 0x14 */ u8 mPlayerName[16];
|
|
/* 0x24 */ u8 unk36;
|
|
/* 0x25 */ u8 mHorseName[16];
|
|
/* 0x35 */ u8 unk53;
|
|
/* 0x36 */ u8 mClearCount;
|
|
/* 0x37 */ u8 unk55[5];
|
|
}; // Size: 0x40
|
|
|
|
class dSv_player_config_c {
|
|
public:
|
|
void init();
|
|
u32 checkVibration() const;
|
|
u8 getSound();
|
|
void setSound(u8);
|
|
u8 getVibration();
|
|
void setVibration(u8);
|
|
inline u8 getAttentionType(void) { return mAttentionType; }
|
|
inline void setAttentionType(u8 i_mAttentionType) { mAttentionType = i_mAttentionType; }
|
|
inline u16 getCalibrateDist(void) { return mCalibrateDist; }
|
|
inline void setCalibrateDist(u16 i_mCalibrateDist) { mCalibrateDist = i_mCalibrateDist; }
|
|
inline u8 getCalValue(void) { return mCalValue; }
|
|
inline void setCalValue(u8 i_mCalValue) { mCalValue = i_mCalValue; }
|
|
inline bool getShortCut(void) { return mShortCut; }
|
|
inline void setShortCut(bool i_mShortCut) { mShortCut = i_mShortCut; }
|
|
inline u8 getCameraControl(void) { return mCameraControl; }
|
|
inline void setCameraControl(u8 i_mCameraControl) { mCameraControl = i_mCameraControl; }
|
|
inline bool getPointer(void) { return mPointer; }
|
|
inline void setPointer(bool i_mPointer) { mPointer = i_mPointer; }
|
|
|
|
private:
|
|
/* 0x0 */ u8 unk0;
|
|
/* 0x1 */ u8 mSoundMode;
|
|
/* 0x2 */ u8 mAttentionType; // Lock-On Type; 0 : hold, 1 : switch
|
|
/* 0x3 */ u8 mVibration; // Rumble status
|
|
/* 0x4 */ u8 unk4;
|
|
/* 0x5 */ u8 unk5;
|
|
/* 0x6 */ u16 mCalibrateDist; // Wii pointer horizontal calibration. Default is 0x015E
|
|
/* 0x8 */ u8 mCalValue; // Wii pointer vertical calibration. Default is 0x00
|
|
/* 0x9 */ bool mShortCut; // Wii icon shortcut enabled/disabled.
|
|
/* 0xA */ u8 mCameraControl; // 0 : normal, 1 : inverted
|
|
/* 0xB */ bool mPointer; // Wii pointer enabled/disabled.
|
|
}; // Size: 0xC
|
|
|
|
class dSv_player_c {
|
|
public:
|
|
void init();
|
|
dSv_player_info_c& getPlayerInfo() { return mPlayerInfo; }
|
|
dSv_player_status_a_c& getPlayerStatusA() { return mPlayerStatusA; }
|
|
dSv_player_status_b_c& getPlayerStatusB() { return mPlayerStatusB; }
|
|
dSv_player_item_c& getItem() { return mItem; }
|
|
dSv_player_collect_c& getCollect() { return mCollect; }
|
|
dSv_player_item_record_c& getItemRecord() { return mItemRecord; }
|
|
dSv_player_item_max_c& getItemMax() { return mItemMax; }
|
|
dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return mPlayerLastMarkInfo; }
|
|
dSv_player_return_place_c& getPlayerReturnPlace() { return mPlayerReturnPlace; }
|
|
dSv_light_drop_c& getLightDrop() { return mLightDrop; }
|
|
dSv_player_get_item_c& getGetItem() { return mGetItem; }
|
|
dSv_player_config_c& getConfig() { return mConfig; }
|
|
dSv_letter_info_c& getLetterInfo() { return mLetterInfo; }
|
|
|
|
private:
|
|
/* 0x000 */ dSv_player_status_a_c mPlayerStatusA;
|
|
/* 0x028 */ dSv_player_status_b_c mPlayerStatusB;
|
|
/* 0x040 */ dSv_horse_place_c mHorsePlace;
|
|
/* 0x058 */ dSv_player_return_place_c mPlayerReturnPlace;
|
|
/* 0x064 */ dSv_player_field_last_stay_info_c mPlayerFieldLastStayInfo;
|
|
/* 0x080 */ dSv_player_last_mark_info_c mPlayerLastMarkInfo;
|
|
/* 0x09C */ dSv_player_item_c mItem;
|
|
/* 0x0CC */ dSv_player_get_item_c mGetItem;
|
|
/* 0x0EC */ dSv_player_item_record_c mItemRecord;
|
|
/* 0x0F8 */ dSv_player_item_max_c mItemMax;
|
|
/* 0x100 */ dSv_player_collect_c mCollect;
|
|
/* 0x110 */ dSv_player_wolf_c mWolf;
|
|
/* 0x114 */ dSv_light_drop_c mLightDrop;
|
|
/* 0x11C */ dSv_letter_info_c mLetterInfo;
|
|
/* 0x16C */ dSv_fishing_info_c mFishingInfo;
|
|
/* 0x1A0 */ dSv_player_info_c mPlayerInfo;
|
|
/* 0x1E0 */ dSv_player_config_c mConfig;
|
|
}; // Size: 0x1EC
|
|
|
|
class dSv_memBit_c {
|
|
public:
|
|
enum {
|
|
/* 0x0 */ MAP,
|
|
/* 0x1 */ COMPASS,
|
|
/* 0x2 */ BOSS_KEY,
|
|
/* 0x3 */ STAGE_BOSS_ENEMY,
|
|
/* 0x4 */ STAGE_LIFE,
|
|
/* 0x5 */ STAGE_BOSS_DEMO,
|
|
/* 0x6 */ OOCCOO_NOTE,
|
|
/* 0x7 */ STAGE_BOSS_ENEMY_2
|
|
};
|
|
|
|
void init();
|
|
void onTbox(int);
|
|
void offTbox(int);
|
|
BOOL isTbox(int) const;
|
|
void onSwitch(int);
|
|
void offSwitch(int);
|
|
BOOL isSwitch(int) const;
|
|
BOOL revSwitch(int);
|
|
void onItem(int);
|
|
BOOL isItem(int) const;
|
|
void onDungeonItem(int);
|
|
s32 isDungeonItem(int) const;
|
|
|
|
u8 getKeyNum() { return mKeyNum; }
|
|
void setKeyNum(u8 keyNum) { mKeyNum = keyNum; }
|
|
void onDungeonItemMap() { onDungeonItem(MAP); }
|
|
s32 isDungeonItemMap() const { return isDungeonItem(MAP); }
|
|
void onDungeonItemCompass() { onDungeonItem(COMPASS); }
|
|
void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE); }
|
|
void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); }
|
|
s32 isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY); }
|
|
void onStageBossEnemy() {
|
|
onDungeonItem(STAGE_BOSS_ENEMY);
|
|
onDungeonItem(OOCCOO_NOTE);
|
|
}
|
|
s32 isDungeonItemWarp() const { return isDungeonItem(OOCCOO_NOTE); }
|
|
void onStageLife() { onDungeonItem(STAGE_LIFE); }
|
|
|
|
private:
|
|
/* 0x00 */ u32 mTbox[2];
|
|
/* 0x08 */ u32 mSwitch[4];
|
|
/* 0x18 */ u32 mItem[1];
|
|
/* 0x1C */ u8 mKeyNum;
|
|
/* 0x1D */ u8 mDungeonItem;
|
|
}; // Size: 0x20
|
|
|
|
class dSv_event_c {
|
|
public:
|
|
void init();
|
|
void onEventBit(u16);
|
|
void offEventBit(u16);
|
|
int isEventBit(u16) const;
|
|
void setEventReg(u16, u8);
|
|
u8 getEventReg(u16) const;
|
|
|
|
private:
|
|
/* 0x0 */ u8 mEvent[256];
|
|
}; // Size: 0x100
|
|
|
|
class dSv_MiniGame_c {
|
|
public:
|
|
void init();
|
|
|
|
private:
|
|
/* 0x00 */ u8 unk0;
|
|
/* 0x01 */ u8 unk1[3];
|
|
/* 0x04 */ u32 mStarTime;
|
|
/* 0x08 */ u32 mBalloonScore;
|
|
/* 0x0C */ u32 mRaceGameTime;
|
|
/* 0x10 */ u32 unk16;
|
|
/* 0x14 */ u32 unk20;
|
|
}; // Size: 0x18
|
|
|
|
class dSv_memory_c {
|
|
public:
|
|
dSv_memory_c() { this->init(); }
|
|
void init();
|
|
dSv_memBit_c& getBit() { return mBit; }
|
|
const dSv_memBit_c& getBit() const { return mBit; }
|
|
|
|
private:
|
|
/* 0x0 */ dSv_memBit_c mBit;
|
|
}; // Size: 0x20
|
|
|
|
STATIC_ASSERT(sizeof(dSv_memory_c) == 0x20);
|
|
|
|
class dSv_memory2_c {
|
|
public:
|
|
dSv_memory2_c() { this->init(); }
|
|
void init();
|
|
void onVisitedRoom(int);
|
|
void offVisitedRoom(int);
|
|
BOOL isVisitedRoom(int);
|
|
|
|
private:
|
|
/* 0x0 */ u32 mVisitedRoom[2];
|
|
}; // Size: 0x8
|
|
|
|
STATIC_ASSERT(sizeof(dSv_memory2_c) == 8);
|
|
|
|
class dSv_danBit_c {
|
|
public:
|
|
bool init(s8);
|
|
void onSwitch(int);
|
|
void offSwitch(int);
|
|
BOOL isSwitch(int) const;
|
|
BOOL revSwitch(int);
|
|
void onItem(int);
|
|
BOOL isItem(int) const;
|
|
|
|
private:
|
|
/* 0x00 */ s8 mStageNo;
|
|
/* 0x01 */ u8 unk1;
|
|
/* 0x02 */ u8 unk2[2];
|
|
/* 0x04 */ u32 mSwitch[2];
|
|
/* 0x0C */ u32 mItem[4];
|
|
/* 0x1C */ s16 unk28[16];
|
|
}; // Size: 0x3C
|
|
|
|
class dSv_zoneBit_c {
|
|
public:
|
|
void init();
|
|
void clearRoomSwitch();
|
|
void clearRoomItem();
|
|
void onSwitch(int);
|
|
void offSwitch(int);
|
|
BOOL isSwitch(int) const;
|
|
BOOL revSwitch(int);
|
|
void onOneSwitch(int);
|
|
void offOneSwitch(int);
|
|
BOOL isOneSwitch(int) const;
|
|
BOOL revOneSwitch(int);
|
|
void onItem(int);
|
|
BOOL isItem(int) const;
|
|
void onOneItem(int);
|
|
BOOL isOneItem(int) const;
|
|
|
|
private:
|
|
/* 0x00 */ u16 mSwitch[2];
|
|
/* 0x04 */ u16 mRoomSwitch;
|
|
/* 0x06 */ u16 mItem[2];
|
|
/* 0x0A */ u16 mRoomItem;
|
|
/* 0x0C */ u16 unk12;
|
|
}; // Size: 0xE
|
|
|
|
class dSv_zoneActor_c {
|
|
public:
|
|
void init();
|
|
void on(int);
|
|
void off(int);
|
|
BOOL is(int) const;
|
|
|
|
static const int ACTOR_MAX = 0xFFFF;
|
|
|
|
private:
|
|
/* 0x00 */ u32 mActorFlags[4];
|
|
}; // Size: 0x10
|
|
|
|
class dSv_zone_c {
|
|
public:
|
|
dSv_zone_c(void) { mRoomNo = -1; } // the assembly for this is in d_com_inf_game.s
|
|
void init(int);
|
|
dSv_zoneBit_c& getZoneBit() { return mBit; }
|
|
const dSv_zoneBit_c& getBit() const { return mBit; }
|
|
dSv_zoneActor_c& getActor() { return mActor; }
|
|
const dSv_zoneActor_c& getActor() const { return mActor; }
|
|
|
|
s8& getRoomNo() { return mRoomNo; }
|
|
|
|
private:
|
|
/* 0x00 */ s8 mRoomNo;
|
|
/* 0x01 */ u8 unk1;
|
|
/* 0x02 */ dSv_zoneBit_c mBit;
|
|
/* 0x10 */ dSv_zoneActor_c mActor;
|
|
}; // Size: 0x20
|
|
|
|
STATIC_ASSERT(sizeof(dSv_zone_c) == 0x20);
|
|
|
|
class dSv_restart_c {
|
|
public:
|
|
void setRoom(const cXyz&, s16, s8);
|
|
|
|
private:
|
|
/* 0x00 */ s8 mRoomNo;
|
|
/* 0x01 */ u8 field_0x01[3];
|
|
/* 0x04 */ s16 mStartPoint;
|
|
/* 0x06 */ s16 mRoomAngleY;
|
|
/* 0x08 */ cXyz mRoomPos;
|
|
/* 0x14 */ u32 mRoomParam;
|
|
/* 0x18 */ f32 mLastSpeedF;
|
|
/* 0x1C */ u32 mLastMode;
|
|
/* 0x20 */ s16 mLastAngleY;
|
|
}; // Size: 0x24
|
|
|
|
class dSv_turnRestart_c {
|
|
public:
|
|
class dSv_turnRestart_camera_c {
|
|
/* 0x00 */ cXyz mCameraCtr;
|
|
/* 0x0C */ cXyz mCameraEye;
|
|
/* 0x18 */ cXyz mCameraUp;
|
|
}; // Size: 0x24
|
|
|
|
void set(const cXyz&, s16, s8, u32);
|
|
|
|
private:
|
|
/* 0x00 */ cXyz mPosition;
|
|
/* 0x0C */ u32 mParam;
|
|
/* 0x10 */ s16 mAngleY;
|
|
/* 0x12 */ s8 unk18;
|
|
/* 0x14 */ dSv_turnRestart_camera_c mCamera;
|
|
/* 0x38 */ f32 mCameraFvy;
|
|
}; // Size: 0x3C
|
|
|
|
class dSv_reserve_c {
|
|
public:
|
|
private:
|
|
u8 unk[80];
|
|
};
|
|
|
|
class dSv_save_c {
|
|
public:
|
|
void init();
|
|
dSv_memory2_c* getSave2(int);
|
|
|
|
dSv_player_c& getPlayer() { return mPlayer; }
|
|
dSv_event_c& getEvent() { return mEvent; }
|
|
dSv_memory_c& getSave(int i_stageNo) { return mSave[i_stageNo]; }
|
|
void putSave(int i_stageNo, dSv_memory_c mem) { mSave[i_stageNo] = mem; }
|
|
|
|
static const int STAGE_MAX = 32;
|
|
static const int STAGE2_MAX = 64;
|
|
|
|
// private:
|
|
/* 0x000 */ dSv_player_c mPlayer;
|
|
/* 0x1F0 */ dSv_memory_c mSave[STAGE_MAX];
|
|
/* 0x5F0 */ dSv_memory2_c mSave2[STAGE2_MAX];
|
|
/* 0x7F0 */ dSv_event_c mEvent;
|
|
/* 0x8F0 */ dSv_reserve_c reserve;
|
|
/* 0x940 */ dSv_MiniGame_c mMiniGame;
|
|
}; // Size: 0x958
|
|
|
|
class dSv_info_c {
|
|
public:
|
|
void init();
|
|
void getSave(int);
|
|
void putSave(int);
|
|
void initZone();
|
|
u32 createZone(int);
|
|
void onSwitch(int, int);
|
|
void offSwitch(int, int);
|
|
BOOL isSwitch(int, int) const;
|
|
BOOL revSwitch(int, int);
|
|
void onItem(int, int);
|
|
BOOL isItem(int, int) const;
|
|
void onActor(int, int);
|
|
void offActor(int, int);
|
|
BOOL isActor(int, int) const;
|
|
int memory_to_card(char*, int);
|
|
int card_to_memory(char*, int);
|
|
void initdata_to_card(char*, int);
|
|
|
|
dSv_save_c& getSavedata() { return mSavedata; }
|
|
dSv_memory_c& getMemory() { return mMemory; }
|
|
dSv_zone_c* getZones() { return mZone; }
|
|
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
|
|
dSv_event_c& getTmp() { return mTmp; }
|
|
s64 getStartTime() { return mStartTime; }
|
|
s64 getSaveTotalTime() { return mSaveTotalTime; }
|
|
void initDan(s8 param_0) { mDan.init(param_0); }
|
|
|
|
private:
|
|
/* 0x000 */ dSv_save_c mSavedata;
|
|
/* 0x958 */ dSv_memory_c mMemory;
|
|
/* 0x978 */ dSv_danBit_c mDan;
|
|
/* 0x9B4 */ dSv_zone_c mZone[32];
|
|
/* 0xDB4 */ dSv_restart_c mRestart;
|
|
/* 0xDD8 */ dSv_event_c mTmp;
|
|
/* 0xED8 */ dSv_turnRestart_c mTurnRestart;
|
|
/* 0xF14 */ u8 field_0xf14[4];
|
|
/* 0xF18 */ u8 mDataNum;
|
|
/* 0xF19 */ u8 mNewFile;
|
|
/* 0xF1A */ u8 mNoFile;
|
|
/* 0xF1B */ u8 field_0xf1b[13];
|
|
/* 0xF28 */ s64 mStartTime;
|
|
/* 0xF30 */ s64 mSaveTotalTime;
|
|
}; // Size: 0xF38
|
|
|
|
class dSv_event_flag_c {
|
|
public:
|
|
static u16 saveBitLabels[822];
|
|
};
|
|
|
|
class dSv_event_tmp_flag_c {
|
|
public:
|
|
static u16 const tempBitLabels[185];
|
|
};
|
|
|
|
#endif /* D_SAVE_D_SAVE_H */
|