mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
z_parameter: Items & Import Data (#799)
* Import Data * More functions * cleanup * Add Enum * Many changes, PR and add-ons * Fix bss * Better data * Extra space * DoubleDefense is boolean * Missed a macro * More enums missed * macro -> enum * More item cleanup... * missing/wrong quest items * Next PR Review * Revert Interface_AddMagic to Parameter_AddMagic * Remove QUEST_HEART_CONTAINER * Fix bss * Move Color_RGB16 up + fix incorrect numbers * Add texture pointers * Add comment * EQUIP_SLOT_A * rm redundant comment * Fix merge * PR Suggestions * fix bss
This commit is contained in:
@@ -19,6 +19,12 @@ typedef struct {
|
||||
/* 0x3 */ u8 a;
|
||||
} Color_RGBA8; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 r;
|
||||
/* 0x2 */ s16 g;
|
||||
/* 0x4 */ s16 b;
|
||||
} Color_RGB16; // size = 0x6
|
||||
|
||||
// only use when necessary for alignment purposes
|
||||
typedef union {
|
||||
struct {
|
||||
|
||||
+17
-18
@@ -1881,31 +1881,30 @@ void Interface_ChangeAlpha(u16 param_1);
|
||||
// void func_80111CB4(void);
|
||||
// void func_801129E4(void);
|
||||
void func_80112AFC(PlayState* play);
|
||||
void func_80112B40(PlayState* play, u8 arg1);
|
||||
// void func_80112BE4(void);
|
||||
void Interface_LoadItemIconImpl(PlayState* play, u8 btn);
|
||||
void Interface_LoadItemIcon(PlayState* play, u8 btn);
|
||||
// void func_80112C0C(void);
|
||||
u32 Item_Give(PlayState* play, u8 param_2);
|
||||
// void func_801143CC(void);
|
||||
UNK_TYPE func_80114978(UNK_TYPE arg0);
|
||||
void func_801149A0(s32 itemId, s16 slotId);
|
||||
// void func_80114A9C(void);
|
||||
// void func_80114B84(void);
|
||||
// void func_80114CA0(void);
|
||||
s32 Interface_HasEmptyBottle(void);
|
||||
s32 Interface_HasItemInBottle(u8 itemId);
|
||||
void func_80114FD0(PlayState* play, u8 itemId, u8 heldItemButton);
|
||||
// void func_80115130(void);
|
||||
// void func_801152B8(void);
|
||||
u8 Item_Give(PlayState* play, u8 item);
|
||||
u8 Item_CheckObtainability(u8 item);
|
||||
void Inventory_DeleteItem(s16 item, s16 slot);
|
||||
void Inventory_UnequipItem(s16 item);
|
||||
s32 Inventory_ReplaceItem(PlayState* play, u8 oldItem, u8 newItem);
|
||||
void Inventory_UpdateDeitySwordEquip(PlayState* play) ;
|
||||
s32 Inventory_HasEmptyBottle(void);
|
||||
s32 Inventory_HasItemInBottle(u8 item);
|
||||
void Inventory_UpdateBottleItem(PlayState* play, u8 item, u8 btn);
|
||||
s32 Inventory_ConsumeFairy(PlayState* play);
|
||||
void Inventory_UpdateItem(PlayState* play, s16 slot, s16 item);
|
||||
// void func_801153C8(void);
|
||||
// void func_80115428(void);
|
||||
void func_8011552C(PlayState* play, s16 arg1);
|
||||
// void func_801155B4(void);
|
||||
// void func_80115764(void);
|
||||
void func_80115844(PlayState* play, s16 param_2);
|
||||
s32 func_80115908(PlayState* play, u8 param_2);
|
||||
void func_801159c0(s16 param_1);
|
||||
void func_801159EC(s16 arg0);
|
||||
void func_80115A14(s16 arg0, s16 arg1);
|
||||
s32 Health_ChangeBy(PlayState* play, s16 healthChange);
|
||||
void Health_GiveHearts(s16 hearts);
|
||||
void Rupees_ChangeBy(s16 rupeeChange);
|
||||
void Inventory_ChangeAmmo(s16 item, s16 ammoChange);
|
||||
void Parameter_AddMagic(PlayState* play, s16 arg1);
|
||||
void func_80115D5C(GameState* gamestate);
|
||||
// void func_80115DB4(void);
|
||||
|
||||
+19
-8
@@ -80,21 +80,32 @@
|
||||
|
||||
#define C_SLOT_EQUIP(form, button) (gSaveContext.save.equips.cButtonSlots[form][button])
|
||||
#define CHECK_QUEST_ITEM(item) (GET_SAVE_INVENTORY_QUEST_ITEMS & gBitFlags[item])
|
||||
#define SET_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS | gBitFlags[item]))
|
||||
#define REMOVE_QUEST_ITEM(item) (gSaveContext.save.inventory.questItems = (GET_SAVE_INVENTORY_QUEST_ITEMS & (-1 - gBitFlags[item])))
|
||||
|
||||
#define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
|
||||
#define SET_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.inventory.dungeonItems[(void)0, dungeonIndex] |= (u8)gBitFlags[item])
|
||||
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.save.inventory.dungeonKeys[(void)0, dungeonIndex])
|
||||
|
||||
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn)))
|
||||
#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == EQUIP_SLOT_B ? C_SLOT_EQUIP(CUR_FORM, btn) : C_SLOT_EQUIP(0, btn)))
|
||||
|
||||
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
|
||||
do { \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
BUTTON_ITEM_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define SET_CUR_FORM_BTN_ITEM(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
BUTTON_ITEM_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define SET_CUR_FORM_BTN_SLOT(btn, item) \
|
||||
if ((btn) == EQUIP_SLOT_B) { \
|
||||
C_SLOT_EQUIP(CUR_FORM, (btn)) = (item); \
|
||||
} else { \
|
||||
C_SLOT_EQUIP(0, (btn)) = (item); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define STOLEN_ITEM_NONE (0)
|
||||
|
||||
|
||||
+8
-5
@@ -68,10 +68,13 @@
|
||||
#define Z_PRIORITY_DMAMGR 17
|
||||
#define Z_PRIORITY_IRQMGR 18
|
||||
|
||||
#define EQUIP_SLOT_B 0
|
||||
#define EQUIP_SLOT_C_LEFT 1
|
||||
#define EQUIP_SLOT_C_DOWN 2
|
||||
#define EQUIP_SLOT_C_RIGHT 3
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_SLOT_B,
|
||||
/* 1 */ EQUIP_SLOT_C_LEFT,
|
||||
/* 2 */ EQUIP_SLOT_C_DOWN,
|
||||
/* 3 */ EQUIP_SLOT_C_RIGHT,
|
||||
/* 4 */ EQUIP_SLOT_A
|
||||
} EquipSlot;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 priority; // Lower means higher priority. -1 means it ignores priority
|
||||
@@ -500,7 +503,7 @@ typedef struct {
|
||||
/* 0x258 */ s16 unk_258;
|
||||
/* 0x25A */ s16 unk_25A;
|
||||
/* 0x25C */ u16 unk_25C;
|
||||
/* 0x25E */ u16 unk_25E[5]; // ItemId
|
||||
/* 0x25E */ u16 cursorItem[5];
|
||||
/* 0x268 */ u16 unk_268[5];
|
||||
/* 0x272 */ u16 equipTargetItem;
|
||||
/* 0x274 */ u16 equipTargetSlot;
|
||||
|
||||
+26
-4
@@ -7,10 +7,27 @@
|
||||
// TODO fill out these enums
|
||||
|
||||
typedef enum {
|
||||
/* 0x0 */ EQUIP_SWORD,
|
||||
/* 0x1 */ EQUIP_SHIELD
|
||||
/* 0x0 */ EQUIP_TYPE_SWORD,
|
||||
/* 0x1 */ EQUIP_TYPE_SHIELD,
|
||||
/* 0x2 */ EQUIP_TYPE_MAX
|
||||
} EquipmentType;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_VALUE_SWORD_NONE,
|
||||
/* 1 */ EQUIP_VALUE_SWORD_KOKIRI,
|
||||
/* 2 */ EQUIP_VALUE_SWORD_RAZOR,
|
||||
/* 3 */ EQUIP_VALUE_SWORD_GILDED,
|
||||
/* 4 */ EQUIP_VALUE_SWORD_DIETY,
|
||||
/* 5 */ EQUIP_VALUE_SWORD_MAX,
|
||||
} EquipValueSword;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_VALUE_SHIELD_NONE,
|
||||
/* 1 */ EQUIP_VALUE_SHIELD_HERO,
|
||||
/* 2 */ EQUIP_VALUE_SHIELD_MIRROR,
|
||||
/* 3 */ EQUIP_VALUE_SHIELD_MAX
|
||||
} EquipValueShield;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ UPG_QUIVER,
|
||||
/* 0x01 */ UPG_BOMB_BAG,
|
||||
@@ -41,9 +58,11 @@ typedef enum {
|
||||
/* 0x0F */ QUEST_SONG_SOARING,
|
||||
/* 0x10 */ QUEST_SONG_STORMS,
|
||||
/* 0x11 */ QUEST_SONG_SUN,
|
||||
/* 0x12 */ QUEST_BOMBERS_NOTEBOOK,
|
||||
/* 0x12 */ QUEST_BOMBERS_NOTEBOOK, // Obtained Bombers Notebook
|
||||
/* 0x13 */ QUEST_SKULL_TOKEN,
|
||||
/* 0x18 */ QUEST_SONG_LULLABY_INTRO = 0x18,
|
||||
/* 0x19 */ QUEST_UNK_19 // Related to PictoBox
|
||||
/* 0x19 */ QUEST_PICTOGRAPH, // A photo from the pictograph box is saved
|
||||
/* 0x1C */ QUEST_HEART_PIECE_COUNT = 0x1C
|
||||
} QuestItem;
|
||||
|
||||
typedef enum {
|
||||
@@ -268,6 +287,9 @@ typedef enum {
|
||||
/* 0xFF */ ITEM_NONE = 0xFF
|
||||
} ItemID;
|
||||
|
||||
#define BOTTLE_FIRST 0
|
||||
#define BOTTLE_MAX 6
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ GI_NONE,
|
||||
/* 0x01 */ GI_RUPEE_GREEN,
|
||||
|
||||
Reference in New Issue
Block a user