mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Many changes, PR and add-ons
This commit is contained in:
@@ -66,6 +66,7 @@
|
||||
#define EQUIP_SLOT_C_LEFT 1
|
||||
#define EQUIP_SLOT_C_DOWN 2
|
||||
#define EQUIP_SLOT_C_RIGHT 3
|
||||
#define EQUIP_SLOT_UNUSED 4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 priority; // Lower means higher priority. -1 means it ignores priority
|
||||
|
||||
+21
-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,
|
||||
@@ -44,7 +61,7 @@ typedef enum {
|
||||
/* 0x12 */ QUEST_BOMBERS_NOTEBOOK, // Obtained Bombers Notebook
|
||||
/* 0x13 */ QUEST_SKULL_TOKEN,
|
||||
/* 0x18 */ QUEST_SONG_LULLABY_INTRO = 0x18,
|
||||
/* 0x19 */ QUEST_PICTOBOX, // Photo taken from PictoBox
|
||||
/* 0x19 */ QUEST_PICTOGRAPH, // A photo from the pictograph is saved
|
||||
/* 0x1C */ QUEST_HEART_PIECE = 0x1C,
|
||||
/* 0x1E */ QUEST_HEART_CONTAINER = 0x1E
|
||||
} QuestItem;
|
||||
@@ -112,7 +129,7 @@ typedef enum {
|
||||
/* 0x07 */ ITEM_BOMBCHU,
|
||||
/* 0x08 */ ITEM_STICK,
|
||||
/* 0x09 */ ITEM_NUT,
|
||||
/* 0x0A */ ITEM_BEAN,
|
||||
/* 0x0A */ ITEM_MAGIC_BEANS,
|
||||
/* 0x0B */ ITEM_SLINGSHOT,
|
||||
/* 0x0C */ ITEM_POWDER_KEG,
|
||||
/* 0x0D */ ITEM_PICTO_BOX,
|
||||
|
||||
@@ -107,7 +107,7 @@ void* gItemIcons[] = {
|
||||
0x08007000, // ITEM_BOMBCHU
|
||||
0x08008000, // ITEM_STICK
|
||||
0x08009000, // ITEM_NUT
|
||||
0x0800A000, // ITEM_BEAN
|
||||
0x0800A000, // ITEM_MAGIC_BEANS
|
||||
0x0800B000, // ITEM_SLINGSHOT
|
||||
0x0800C000, // ITEM_POWDER_KEG
|
||||
0x0800D000, // ITEM_PICTO_BOX
|
||||
@@ -242,7 +242,7 @@ u8 gItemSlots[] = {
|
||||
SLOT_BOMBCHU, // ITEM_BOMBCHU
|
||||
SLOT_STICK, // ITEM_STICK
|
||||
SLOT_NUT, // ITEM_NUT
|
||||
SLOT_MAGIC_BEANS, // ITEM_BEAN
|
||||
SLOT_MAGIC_BEANS, // ITEM_MAGIC_BEANS
|
||||
SLOT_TRADE_KEY_MAMA, // ITEM_SLINGSHOT
|
||||
SLOT_POWDER_KEG, // ITEM_POWDER_KEG
|
||||
SLOT_PICTO_BOX, // ITEM_PICTO_BOX
|
||||
@@ -322,7 +322,7 @@ s16 gItemPrices[] = {
|
||||
0, // ITEM_BOMBCHU
|
||||
0, // ITEM_STICK
|
||||
0, // ITEM_NUT
|
||||
0, // ITEM_BEAN
|
||||
0, // ITEM_MAGIC_BEANS
|
||||
0, // ITEM_SLINGSHOT
|
||||
0, // ITEM_POWDER_KEG
|
||||
0, // ITEM_PICTO_BOX
|
||||
@@ -495,7 +495,7 @@ s32 Inventory_GetBtnBItem(GlobalContext* globalCtx) {
|
||||
* Only changes shield
|
||||
*/
|
||||
void Inventory_ChangeEquipment(s16 value) {
|
||||
SET_EQUIP_VALUE(EQUIP_SHIELD, value);
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SHIELD, value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -504,8 +504,8 @@ void Inventory_ChangeEquipment(s16 value) {
|
||||
u8 Inventory_DeleteEquipment(GlobalContext* globalCtx, s16 equipment) {
|
||||
Player* player = GET_PLAYER(globalCtx);
|
||||
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != 0) {
|
||||
SET_EQUIP_VALUE(EQUIP_SHIELD, 0);
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) != EQUIP_VALUE_SHIELD_NONE) {
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SHIELD, EQUIP_VALUE_SHIELD_NONE);
|
||||
Player_SetEquipmentData(globalCtx, player);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -35,8 +35,8 @@ void GameOver_Update(GlobalContext* globalCtx) {
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_GILDED &&
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) != ITEM_SWORD_DEITY) {
|
||||
|
||||
if (gSaveContext.buttonStatus[0] != BTN_ENABLED) {
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) = gSaveContext.buttonStatus[0];
|
||||
if (gSaveContext.buttonStatus[EQUIP_SLOT_B] != BTN_ENABLED) {
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) = gSaveContext.buttonStatus[EQUIP_SLOT_B];
|
||||
} else {
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) = ITEM_NONE;
|
||||
}
|
||||
@@ -51,11 +51,11 @@ void GameOver_Update(GlobalContext* globalCtx) {
|
||||
gSaveContext.eventInf[1] = 0;
|
||||
gSaveContext.eventInf[2] = 0;
|
||||
gSaveContext.eventInf[3] = 0;
|
||||
gSaveContext.buttonStatus[0] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[1] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[2] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[3] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[4] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_B] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_LEFT] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_DOWN] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_RIGHT] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_UNUSED] = BTN_ENABLED;
|
||||
gSaveContext.unk_3F1E = 0;
|
||||
gSaveContext.unk_3F20 = 0;
|
||||
gSaveContext.unk_3F22 = 0;
|
||||
|
||||
+74
-119
@@ -8,11 +8,9 @@ typedef struct {
|
||||
/* 0x03 */ u8 flags3;
|
||||
} RestrictionFlags;
|
||||
|
||||
// bss
|
||||
Input D_801F5850[4];
|
||||
|
||||
// data
|
||||
static RestrictionFlags sRestrictionFlags[] = {
|
||||
RestrictionFlags sRestrictionFlags[] = {
|
||||
{ SCENE_20SICHITAI2, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_UNSET_1, 0x00, 0x00, 0x00 },
|
||||
{ SCENE_UNSET_2, 0x00, 0x00, 0x00 },
|
||||
@@ -131,7 +129,7 @@ static RestrictionFlags sRestrictionFlags[] = {
|
||||
s16 D_801BF884 = 0; // pictoBox related
|
||||
s16 D_801BF888 = false; // pictoBox related
|
||||
|
||||
s16 sHBAScoreTier = 0;
|
||||
s16 sHBAScoreTier = 0; // Remnant of OoT, non-functional
|
||||
|
||||
u16 sMinigameScoreDigits[] = { 0, 0, 0, 0 };
|
||||
|
||||
@@ -195,63 +193,17 @@ Gfx D_801BF988[] = {
|
||||
};
|
||||
|
||||
s16 D_801BF9B0 = 0;
|
||||
|
||||
f32 D_801BF9B4[] = {
|
||||
100.0f,
|
||||
109.0f,
|
||||
};
|
||||
|
||||
s16 D_801BF9BC[] = {
|
||||
0x226,
|
||||
0x2A8,
|
||||
0x2A8,
|
||||
0x2A8,
|
||||
};
|
||||
|
||||
s16 D_801BF9C4[] = {
|
||||
0x9E,
|
||||
0x9B,
|
||||
};
|
||||
|
||||
s16 D_801BF9C8[] = {
|
||||
0x17,
|
||||
0x16,
|
||||
};
|
||||
|
||||
f32 D_801BF9CC[] = {
|
||||
-380.0f,
|
||||
-350.0f,
|
||||
};
|
||||
|
||||
s16 D_801BF9D4[] = {
|
||||
0xA7,
|
||||
0xE3,
|
||||
};
|
||||
|
||||
s16 D_801BF9D8[] = {
|
||||
0xF9,
|
||||
0x10F,
|
||||
};
|
||||
|
||||
s16 D_801BF9DC[] = {
|
||||
0x11,
|
||||
0x12,
|
||||
};
|
||||
|
||||
s16 D_801BF9E0[] = {
|
||||
0x22,
|
||||
0x12,
|
||||
};
|
||||
|
||||
s16 D_801BF9E4[] = {
|
||||
0x23F,
|
||||
0x26C,
|
||||
};
|
||||
|
||||
s16 D_801BF9E8[] = {
|
||||
0x26C,
|
||||
0x26C,
|
||||
};
|
||||
f32 D_801BF9B4[] = { 100.0f, 109.0f };
|
||||
s16 D_801BF9BC[] = { 0x226, 0x2A8, 0x2A8, 0x2A8 };
|
||||
s16 D_801BF9C4[] = { 0x9E, 0x9B };
|
||||
s16 D_801BF9C8[] = { 0x17, 0x16 };
|
||||
f32 D_801BF9CC[] = { -380.0f, -350.0f };
|
||||
s16 D_801BF9D4[] = { 0xA7, 0xE3 };
|
||||
s16 D_801BF9D8[] = { 0xF9, 0x10F };
|
||||
s16 D_801BF9DC[] = { 0x11, 0x12 };
|
||||
s16 D_801BF9E0[] = { 0x22, 0x12 };
|
||||
s16 D_801BF9E4[] = { 0x23F, 0x26C };
|
||||
s16 D_801BF9E8[] = { 0x26C, 0x26C };
|
||||
|
||||
s16 sFinalHoursClockDigitsRed = 0;
|
||||
s16 sFinalHoursClockFrameEnvRed = 0;
|
||||
@@ -279,22 +231,22 @@ s16 sFinalHoursClockColorTargetIndex = 0;
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010DE38.s")
|
||||
|
||||
s16 D_801BFA04[] = {
|
||||
0xFFF2, 0xFFF2, 0xFFE8, 0xFFF8, 0xFFF4, 0xFFF4, 0xFFF9, 0xFFF8, 0xFFF9, 0xFFF8, 0xFFF4, 0,
|
||||
-14, -14, -24, -8, -12, -12, -7, -8, -7, -8, -12, 0,
|
||||
};
|
||||
s16 D_801BFA1C[] = {
|
||||
0x1C, 0x1C, 0x30, 0x10, 0x18, 0x18, 0x10, 0x10, 0x10, 0x10, 0x18, 0,
|
||||
};
|
||||
s16 D_801BFA34[] = {
|
||||
0xE, 0xE, 0x8, 0x18, 0xFFAE, 0xFFAE, 0x3A, 0x3B, 0x3A, 0x3B, 0x20, 0,
|
||||
14, 14, 8, 24, -82, -82, 58, 59, 58, 59, 32, 0,
|
||||
};
|
||||
s16 D_801BFA4C[] = {
|
||||
0x1C, 0x1C, 0x10, 0x10, 0x18, 0x18, 0xB, 0xB, 0xB, 0xB, 0x20, 0,
|
||||
};
|
||||
s16 D_801BFA64[] = {
|
||||
0xFFC3, 0xFFD3, 0x001D, 0x0068, 0xFF8B, 0xFFD6, 0x0020, 0x0037,
|
||||
-61, -45, 29, 104, -117, -42, 32, 55,
|
||||
};
|
||||
s16 D_801BFA74[] = {
|
||||
0x0001, 0xFFBA, 0xFF9D, 0xFFBA, 0x0047, 0x0065, 0x0048, 0x0001,
|
||||
1, -70, -99, -70, 71, 101, 72, 1,
|
||||
};
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8010E028.s")
|
||||
|
||||
@@ -383,17 +335,17 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
return ITEM_NONE;
|
||||
|
||||
} else if ((item >= ITEM_SWORD_KOKIRI) && (item <= ITEM_SWORD_GILDED)) {
|
||||
SET_EQUIP_VALUE(EQUIP_SWORD, item - ITEM_SWORD_KOKIRI + 1);
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SWORD, item - ITEM_SWORD_KOKIRI + EQUIP_VALUE_SWORD_KOKIRI);
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = item;
|
||||
Interface_LoadItemIconImpl(globalCtx, 0);
|
||||
Interface_LoadItemIconImpl(globalCtx, EQUIP_SLOT_B);
|
||||
if (item == ITEM_SWORD_RAZOR) {
|
||||
gSaveContext.save.playerData.swordHealth = 100;
|
||||
}
|
||||
return ITEM_NONE;
|
||||
|
||||
} else if ((item >= ITEM_SHIELD_HERO) && (item <= ITEM_SHIELD_MIRROR)) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != (u16)(item - ITEM_SHIELD_HERO + 1)) {
|
||||
SET_EQUIP_VALUE(EQUIP_SHIELD, item - ITEM_SHIELD_HERO + 1);
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) != (u16)(item - ITEM_SHIELD_HERO + EQUIP_VALUE_SHIELD_HERO)) {
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SHIELD, item - ITEM_SHIELD_HERO + EQUIP_VALUE_SHIELD_HERO);
|
||||
Player_SetEquipmentData(globalCtx, player);
|
||||
return ITEM_NONE;
|
||||
}
|
||||
@@ -424,6 +376,7 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
AMMO(ITEM_BOW) = CUR_CAPACITY(UPG_QUIVER);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (item == ITEM_QUIVER_40) {
|
||||
Inventory_ChangeUpgrade(UPG_QUIVER, 2);
|
||||
INV_CONTENT(ITEM_BOW) = ITEM_BOW;
|
||||
@@ -512,6 +465,7 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
AMMO(ITEM_STICK) = CUR_CAPACITY(UPG_STICKS);
|
||||
}
|
||||
}
|
||||
|
||||
} else if ((item == ITEM_STICKS_5) || (item == ITEM_STICKS_10)) {
|
||||
if (INV_CONTENT(ITEM_STICK) != ITEM_STICK) {
|
||||
Inventory_ChangeUpgrade(UPG_STICKS, 1);
|
||||
@@ -613,14 +567,14 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
INV_CONTENT(ITEM_OCARINA) = 0;
|
||||
return ITEM_NONE;
|
||||
|
||||
} else if (item == ITEM_BEAN) {
|
||||
if (INV_CONTENT(ITEM_BEAN) == ITEM_NONE) {
|
||||
} else if (item == ITEM_MAGIC_BEANS) {
|
||||
if (INV_CONTENT(ITEM_MAGIC_BEANS) == ITEM_NONE) {
|
||||
INV_CONTENT(item) = item;
|
||||
AMMO(ITEM_BEAN) = 1;
|
||||
} else if (AMMO(ITEM_BEAN) < 20) {
|
||||
AMMO(ITEM_BEAN)++;
|
||||
AMMO(ITEM_MAGIC_BEANS) = 1;
|
||||
} else if (AMMO(ITEM_MAGIC_BEANS) < 20) {
|
||||
AMMO(ITEM_MAGIC_BEANS)++;
|
||||
} else {
|
||||
AMMO(ITEM_BEAN) = 20;
|
||||
AMMO(ITEM_MAGIC_BEANS) = 20;
|
||||
}
|
||||
return ITEM_NONE;
|
||||
|
||||
@@ -715,18 +669,18 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
func_8010EBA0(60, i);
|
||||
}
|
||||
|
||||
if ((slot + i) == C_SLOT_EQUIP(0, 1)) {
|
||||
if ((slot + i) == C_SLOT_EQUIP(0, EQUIP_SLOT_C_LEFT)) {
|
||||
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_LEFT) = item;
|
||||
Interface_LoadItemIconImpl(globalCtx, 1);
|
||||
gSaveContext.buttonStatus[1] = BTN_ENABLED;
|
||||
} else if ((slot + i) == C_SLOT_EQUIP(0, 2)) {
|
||||
Interface_LoadItemIconImpl(globalCtx, EQUIP_SLOT_C_LEFT);
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_LEFT] = BTN_ENABLED;
|
||||
} else if ((slot + i) == C_SLOT_EQUIP(0, EQUIP_SLOT_C_DOWN)) {
|
||||
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) = item;
|
||||
Interface_LoadItemIconImpl(globalCtx, 2);
|
||||
gSaveContext.buttonStatus[2] = BTN_ENABLED;
|
||||
} else if ((slot + i) == C_SLOT_EQUIP(0, 3)) {
|
||||
Interface_LoadItemIconImpl(globalCtx, EQUIP_SLOT_C_DOWN);
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_DOWN] = BTN_ENABLED;
|
||||
} else if ((slot + i) == C_SLOT_EQUIP(0, EQUIP_SLOT_C_RIGHT)) {
|
||||
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_RIGHT) = item;
|
||||
Interface_LoadItemIconImpl(globalCtx, 3);
|
||||
gSaveContext.buttonStatus[3] = BTN_ENABLED;
|
||||
Interface_LoadItemIconImpl(globalCtx, EQUIP_SLOT_C_RIGHT);
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_RIGHT] = BTN_ENABLED;
|
||||
}
|
||||
|
||||
gSaveContext.save.inventory.items[slot + i] = item;
|
||||
@@ -746,7 +700,7 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
temp = INV_CONTENT(item);
|
||||
INV_CONTENT(item) = item;
|
||||
if ((item >= ITEM_MOON_TEAR) && (item <= ITEM_PENDANT_MEMORIES) && (temp != ITEM_NONE)) {
|
||||
for (i = 1; i < 4; i++) {
|
||||
for (i = EQUIP_SLOT_C_LEFT; i <= EQUIP_SLOT_C_RIGHT; i++) {
|
||||
if (temp == GET_CUR_FORM_BTN_ITEM(i)) {
|
||||
SET_CUR_FORM_BTN_ITEM(i, item);
|
||||
Interface_LoadItemIconImpl(globalCtx, i);
|
||||
@@ -765,7 +719,7 @@ u8 Item_Give(GlobalContext* globalCtx, u8 item) {
|
||||
u8 Item_CheckObtainabilityImpl(u8 item) {
|
||||
s16 i;
|
||||
u8 slot;
|
||||
u8 temp;
|
||||
u8 bottleSlot;
|
||||
|
||||
slot = SLOT(item);
|
||||
if (item >= ITEM_STICKS_5) {
|
||||
@@ -837,7 +791,7 @@ u8 Item_CheckObtainabilityImpl(u8 item) {
|
||||
} else if ((item >= ITEM_BOMB_BAG_30) && (item <= ITEM_WALLET_GIANT)) {
|
||||
return ITEM_NONE;
|
||||
|
||||
} else if (item == ITEM_BEAN) {
|
||||
} else if (item == ITEM_MAGIC_BEANS) {
|
||||
return ITEM_NONE;
|
||||
|
||||
} else if (item == ITEM_POWDER_KEG) {
|
||||
@@ -877,7 +831,7 @@ u8 Item_CheckObtainabilityImpl(u8 item) {
|
||||
} else if (((item >= ITEM_POTION_RED) && (item <= ITEM_OBABA_DRINK)) || (item == ITEM_CHATEAU_2) ||
|
||||
(item == ITEM_MILK) || (item == ITEM_GOLD_DUST_2) || (item == ITEM_HYLIAN_LOACH_2) ||
|
||||
(item == ITEM_SEA_HORSE_CAUGHT)) {
|
||||
temp = SLOT(item);
|
||||
bottleSlot = SLOT(item);
|
||||
|
||||
if ((item != ITEM_MILK_BOTTLE) && (item != ITEM_MILK_HALF)) {
|
||||
if (item == ITEM_CHATEAU_2) {
|
||||
@@ -895,16 +849,16 @@ u8 Item_CheckObtainabilityImpl(u8 item) {
|
||||
} else if (item == ITEM_SEA_HORSE_CAUGHT) {
|
||||
item = ITEM_SEA_HORSE;
|
||||
}
|
||||
temp = SLOT(item);
|
||||
bottleSlot = SLOT(item);
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (gSaveContext.save.inventory.items[temp + i] == ITEM_BOTTLE) {
|
||||
if (gSaveContext.save.inventory.items[bottleSlot + i] == ITEM_BOTTLE) {
|
||||
return ITEM_NONE;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (gSaveContext.save.inventory.items[temp + i] == ITEM_NONE) {
|
||||
if (gSaveContext.save.inventory.items[bottleSlot + i] == ITEM_NONE) {
|
||||
return ITEM_NONE;
|
||||
}
|
||||
}
|
||||
@@ -925,7 +879,7 @@ void Inventory_DeleteItem(s16 item, s16 slot) {
|
||||
|
||||
gSaveContext.save.inventory.items[slot] = ITEM_NONE;
|
||||
|
||||
for (btn = 1; btn < 4; btn++) {
|
||||
for (btn = EQUIP_SLOT_C_LEFT; btn <= EQUIP_SLOT_C_RIGHT; btn++) {
|
||||
if (GET_CUR_FORM_BTN_ITEM(btn) == item) {
|
||||
SET_CUR_FORM_BTN_ITEM(btn, ITEM_NONE);
|
||||
SET_CUR_FORM_BTN_SLOT(btn, SLOT_NONE);
|
||||
@@ -936,7 +890,7 @@ void Inventory_DeleteItem(s16 item, s16 slot) {
|
||||
void Inventory_UnequipItem(s16 item) {
|
||||
s16 btn;
|
||||
|
||||
for (btn = 1; btn < 4; btn++) {
|
||||
for (btn = EQUIP_SLOT_C_LEFT; btn <= EQUIP_SLOT_C_RIGHT; btn++) {
|
||||
if (GET_CUR_FORM_BTN_ITEM(btn) == item) {
|
||||
SET_CUR_FORM_BTN_ITEM(btn, ITEM_NONE);
|
||||
SET_CUR_FORM_BTN_SLOT(btn, SLOT_NONE);
|
||||
@@ -951,7 +905,7 @@ s32 Inventory_ReplaceItem(GlobalContext* globalCtx, u8 oldItem, u8 newItem) {
|
||||
if (gSaveContext.save.inventory.items[i] == oldItem) {
|
||||
gSaveContext.save.inventory.items[i] = newItem;
|
||||
|
||||
for (i = 1; i < 4; i++) {
|
||||
for (i = EQUIP_SLOT_C_LEFT; i <= EQUIP_SLOT_C_RIGHT; i++) {
|
||||
if (GET_CUR_FORM_BTN_ITEM(i) == oldItem) {
|
||||
SET_CUR_FORM_BTN_ITEM(i, newItem);
|
||||
Interface_LoadItemIconImpl(globalCtx, i);
|
||||
@@ -975,19 +929,17 @@ void Inventory_UpdateDeitySwordEquip(GlobalContext* globalCtx) {
|
||||
? 1
|
||||
: gSaveContext.save.playerForm >> 1) == 0) {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = ITEM_SWORD_DEITY;
|
||||
} else {
|
||||
if (BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) == ITEM_SWORD_DEITY) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SWORD) == 0) {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = ITEM_NONE;
|
||||
} else {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) =
|
||||
GET_CUR_EQUIP_VALUE(EQUIP_SWORD) + ITEM_SWORD_KOKIRI - 1;
|
||||
}
|
||||
} else if (BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) == ITEM_SWORD_DEITY) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) == EQUIP_VALUE_SWORD_NONE) {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = ITEM_NONE;
|
||||
} else {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) =
|
||||
GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) - EQUIP_VALUE_SWORD_KOKIRI + ITEM_SWORD_KOKIRI;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (btn = 0; btn < 1; btn++) {
|
||||
for (btn = EQUIP_SLOT_B; btn <= EQUIP_SLOT_B; btn++) {
|
||||
if ((GET_CUR_FORM_BTN_ITEM(btn) != ITEM_NONE) && (GET_CUR_FORM_BTN_ITEM(btn) != ITEM_UNK_FD)) {
|
||||
Interface_LoadItemIconImpl(globalCtx, btn);
|
||||
}
|
||||
@@ -1037,7 +989,7 @@ s32 Inventory_ConsumeFairy(GlobalContext* globalCtx) {
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (gSaveContext.save.inventory.items[bottleSlot + i] == ITEM_FAIRY) {
|
||||
for (btn = 1; btn < 4; btn++) {
|
||||
for (btn = EQUIP_SLOT_C_LEFT; btn <= EQUIP_SLOT_C_RIGHT; btn++) {
|
||||
if (GET_CUR_FORM_BTN_ITEM(btn) == ITEM_FAIRY) {
|
||||
SET_CUR_FORM_BTN_ITEM(btn, ITEM_BOTTLE);
|
||||
Interface_LoadItemIconImpl(globalCtx, btn);
|
||||
@@ -1055,14 +1007,14 @@ s32 Inventory_ConsumeFairy(GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Only used to equip spring water when hot sprint water timer runs out
|
||||
* Only used to equip Spring Water when Hot Spring Water timer runs out.
|
||||
*/
|
||||
void Inventory_UpdateItem(GlobalContext* globalCtx, s16 slot, s16 item) {
|
||||
s16 btn;
|
||||
|
||||
gSaveContext.save.inventory.items[slot] = item;
|
||||
|
||||
for (btn = 1; btn < 4; btn++) {
|
||||
for (btn = EQUIP_SLOT_C_LEFT; btn <= EQUIP_SLOT_C_RIGHT; btn++) {
|
||||
if (GET_CUR_FORM_BTN_SLOT(btn) == slot) {
|
||||
SET_CUR_FORM_BTN_ITEM(btn, item);
|
||||
Interface_LoadItemIconImpl(globalCtx, btn);
|
||||
@@ -1086,6 +1038,9 @@ TexturePtr sDoActionTextures[] = {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80115844.s")
|
||||
|
||||
/**
|
||||
* Returns true if player still has health left. Otherwise, return false.
|
||||
*/
|
||||
s32 Health_ChangeBy(GlobalContext* globalCtx, s16 healthChange) {
|
||||
if (healthChange > 0) {
|
||||
play_sound(NA_SE_SY_HP_RECOVER);
|
||||
@@ -1161,8 +1116,8 @@ void Inventory_ChangeAmmo(s16 item, s16 ammoChange) {
|
||||
AMMO(ITEM_BOMB) = 0;
|
||||
}
|
||||
|
||||
} else if (item == ITEM_BEAN) {
|
||||
AMMO(ITEM_BEAN) += ammoChange;
|
||||
} else if (item == ITEM_MAGIC_BEANS) {
|
||||
AMMO(ITEM_MAGIC_BEANS) += ammoChange;
|
||||
|
||||
} else if (item == ITEM_POWDER_KEG) {
|
||||
AMMO(ITEM_POWDER_KEG) += ammoChange;
|
||||
@@ -1270,7 +1225,7 @@ TexturePtr D_801BFC14[] = {
|
||||
gFinalHoursClockDigit8Tex, gFinalHoursClockDigit9Tex, gFinalHoursClockColonTex,
|
||||
};
|
||||
s16 D_801BFC40[] = {
|
||||
0x007F, 0x0088, 0x0090, 0x0097, 0x00A0, 0x00A8, 0x00AF, 0x00B8,
|
||||
127, 136, 144, 151, 160, 168, 175, 184,
|
||||
};
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_80119610.s")
|
||||
|
||||
@@ -1285,26 +1240,26 @@ s16 D_801BFC60[][3] = {
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011B5C0.s")
|
||||
|
||||
s16 D_801BFC6C[] = {
|
||||
0x004E, 0x0036, 0x001D, 0x0005, 0xFFEE, 0xFFD6, 0xFFBD, 0xFFAB,
|
||||
78, 54, 29, 5, -18, -42, -67, -85,
|
||||
};
|
||||
s16 D_801BFC7C[] = {
|
||||
0x00B4, 0x00B4, 0x00B4, 0x00B4, 0xFF4C, 0xFF4C, 0xFF4C, 0xFF4C,
|
||||
180, 180, 180, 180, -180, -180, -180, -180,
|
||||
};
|
||||
s16 D_801BFC8C[2][3] = {
|
||||
{ 0xFF, 0xFF, 0xFF },
|
||||
{ 0xFF, 0xA5, 0x37 },
|
||||
{ 255, 255, 255 },
|
||||
{ 255, 165, 55 },
|
||||
};
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011B9E0.s")
|
||||
|
||||
s16 D_801BFC98[] = {
|
||||
0x004E, 0x0036, 0x001D, 0x0005, 0xFFEE, 0xFFD6, 0xFFBD, 0xFFAB,
|
||||
78, 54, 29, 5, -18, -42, -67, -85,
|
||||
};
|
||||
u16 D_801BFCA8[] = {
|
||||
0xC000, 0xE000, 0x0000, 0x2000, 0xA000, 0x8000, 0x6000, 0x4000,
|
||||
};
|
||||
s16 D_801BFCB8[2][3] = {
|
||||
{ 0xFF, 0xFF, 0xFF },
|
||||
{ 0xFF, 0xA5, 0x37 },
|
||||
{ 255, 255, 255 },
|
||||
{ 255, 165, 55 },
|
||||
};
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_parameter/func_8011BF70.s")
|
||||
|
||||
@@ -1320,10 +1275,10 @@ TexturePtr D_801BFCC4[] = {
|
||||
|
||||
s16 D_801BFCE4 = 0;
|
||||
s16 D_801BFCE8[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
s16 D_801BFCF8 = 0x63;
|
||||
s16 D_801BFCF8 = 99;
|
||||
s16 D_801BFCFC[] = {
|
||||
// timer digit width
|
||||
0x10, 0x19, 0x22, 0x2A, 0x33, 0x3C, 0x44, 0x4D,
|
||||
16, 25, 34, 42, 51, 60, 68, 77,
|
||||
};
|
||||
s16 D_801BFD0C[] = {
|
||||
// digit width
|
||||
@@ -1368,7 +1323,7 @@ Color_RGB16 D_801BFD6C[] = {
|
||||
{ 120, 170, 255 },
|
||||
};
|
||||
// grandma's story pictures
|
||||
s32 D_801BFD84[] = {
|
||||
TexturePtr D_801BFD84[] = {
|
||||
0x07000000,
|
||||
0x07012C00,
|
||||
};
|
||||
|
||||
+13
-13
@@ -149,9 +149,9 @@ s32 D_801C6798[] = {
|
||||
};
|
||||
|
||||
u8 D_801C67B0[24] = {
|
||||
ITEM_NONE, ITEM_BOW, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_BOMB, ITEM_BOMBCHU,
|
||||
ITEM_STICK, ITEM_NUT, ITEM_BEAN, ITEM_NONE, ITEM_POWDER_KEG, ITEM_PICTO_BOX, ITEM_NONE, ITEM_NONE,
|
||||
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
|
||||
ITEM_NONE, ITEM_BOW, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_BOMB, ITEM_BOMBCHU,
|
||||
ITEM_STICK, ITEM_NUT, ITEM_MAGIC_BEANS, ITEM_NONE, ITEM_POWDER_KEG, ITEM_PICTO_BOX, ITEM_NONE, ITEM_NONE,
|
||||
ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE,
|
||||
};
|
||||
|
||||
s32 D_801C67C8[] = { 0, 0x40, 0x80, 0xC0, 0x100, 0x180, 0x200, 0x280 };
|
||||
@@ -343,7 +343,7 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) {
|
||||
// Check for all bottled items
|
||||
if (gSaveContext.save.inventory.items[i] >= ITEM_POTION_RED) {
|
||||
if (gSaveContext.save.inventory.items[i] <= ITEM_OBABA_DRINK) {
|
||||
for (j = 1; j < 4; j++) {
|
||||
for (j = EQUIP_SLOT_C_LEFT; j <= EQUIP_SLOT_C_RIGHT; j++) {
|
||||
if (GET_CUR_FORM_BTN_ITEM(j) == gSaveContext.save.inventory.items[i]) {
|
||||
SET_CUR_FORM_BTN_ITEM(j, ITEM_BOTTLE);
|
||||
Interface_LoadItemIconImpl(globalCtx, j);
|
||||
@@ -354,26 +354,26 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) {
|
||||
}
|
||||
}
|
||||
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOBOX);
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOGRAPH);
|
||||
|
||||
if (gSaveContext.save.playerData.health < 0x30) {
|
||||
gSaveContext.save.playerData.health = 0x30;
|
||||
}
|
||||
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SWORD) < 3) {
|
||||
SET_EQUIP_VALUE(EQUIP_SWORD, 1);
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) <= EQUIP_VALUE_SWORD_RAZOR) {
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SWORD, EQUIP_VALUE_SWORD_KOKIRI);
|
||||
|
||||
if (CUR_FORM == 0) {
|
||||
if ((STOLEN_ITEM_1 >= ITEM_SWORD_GILDED) || (STOLEN_ITEM_2 >= ITEM_SWORD_GILDED)) {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = ITEM_SWORD_GILDED;
|
||||
SET_EQUIP_VALUE(EQUIP_SWORD, 3);
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SWORD, EQUIP_VALUE_SWORD_GILDED);
|
||||
} else {
|
||||
BUTTON_ITEM_EQUIP(CUR_FORM, EQUIP_SLOT_B) = ITEM_SWORD_KOKIRI;
|
||||
}
|
||||
} else {
|
||||
if ((STOLEN_ITEM_1 >= ITEM_SWORD_GILDED) || (STOLEN_ITEM_2 >= ITEM_SWORD_GILDED)) {
|
||||
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_B) = ITEM_SWORD_GILDED;
|
||||
SET_EQUIP_VALUE(EQUIP_SWORD, 3);
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SWORD, EQUIP_VALUE_SWORD_GILDED);
|
||||
} else {
|
||||
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_B) = ITEM_SWORD_KOKIRI;
|
||||
}
|
||||
@@ -411,7 +411,7 @@ void Sram_SaveEndOfCycle(GlobalContext* globalCtx) {
|
||||
Inventory_DeleteItem(ITEM_SLINGSHOT, SLOT_TRADE_KEY_MAMA);
|
||||
Inventory_DeleteItem(ITEM_LONGSHOT, SLOT_TRADE_COUPLE);
|
||||
|
||||
for (j = 1; j < 4; j++) {
|
||||
for (j = EQUIP_SLOT_C_LEFT; j <= EQUIP_SLOT_C_RIGHT; j++) {
|
||||
if (GET_CUR_FORM_BTN_ITEM(j) >= ITEM_MOON_TEAR && GET_CUR_FORM_BTN_ITEM(j) <= ITEM_PENDANT_MEMORIES) {
|
||||
SET_CUR_FORM_BTN_ITEM(j, ITEM_NONE);
|
||||
Interface_LoadItemIconImpl(globalCtx, j);
|
||||
@@ -717,7 +717,7 @@ Inventory sSaveDebugInventory = {
|
||||
ITEM_BOMBCHU,
|
||||
ITEM_STICK,
|
||||
ITEM_NUT,
|
||||
ITEM_BEAN,
|
||||
ITEM_MAGIC_BEANS,
|
||||
ITEM_ROOM_KEY,
|
||||
ITEM_POWDER_KEG,
|
||||
ITEM_PICTO_BOX,
|
||||
@@ -808,8 +808,8 @@ void Sram_InitDebugSave(void) {
|
||||
Lib_MemCpy(&gSaveContext.save.checksum, &sSaveDebugChecksum, sizeof(gSaveContext.save.checksum));
|
||||
|
||||
if (gSaveContext.save.playerForm != PLAYER_FORM_HUMAN) {
|
||||
BUTTON_ITEM_EQUIP(0, 2) = D_801C6A48[((void)0, gSaveContext.save.playerForm & 0xFF)];
|
||||
C_SLOT_EQUIP(0, 2) = D_801C6A50[((void)0, gSaveContext.save.playerForm & 0xFF)];
|
||||
BUTTON_ITEM_EQUIP(0, EQUIP_SLOT_C_DOWN) = D_801C6A48[((void)0, gSaveContext.save.playerForm & 0xFF)];
|
||||
C_SLOT_EQUIP(0, EQUIP_SLOT_C_DOWN) = D_801C6A50[((void)0, gSaveContext.save.playerForm & 0xFF)];
|
||||
}
|
||||
|
||||
gSaveContext.save.hasTatl = true;
|
||||
|
||||
@@ -296,7 +296,7 @@ s32 func_80BED140(GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
s32 func_80BED208(EnAkindonuts* this) {
|
||||
if ((u32)INV_CONTENT(ITEM_BEAN) != 10) {
|
||||
if ((u32)INV_CONTENT(ITEM_MAGIC_BEANS) != 10) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ s32 func_80BED208(EnAkindonuts* this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (AMMO(ITEM_BEAN) >= 20) {
|
||||
if (AMMO(ITEM_MAGIC_BEANS) >= 20) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@ s32 EnGirlA_CanBuyNuts(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyShieldHero(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != 0) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) != EQUIP_VALUE_SHIELD_NONE) {
|
||||
return CANBUY_RESULT_NO_ROOM;
|
||||
}
|
||||
if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
@@ -356,7 +356,7 @@ s32 EnGirlA_CanBuySword(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyShieldMirror(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) != 0) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) != EQUIP_VALUE_SHIELD_NONE) {
|
||||
return CANBUY_RESULT_NO_ROOM;
|
||||
}
|
||||
if (gSaveContext.save.playerData.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
|
||||
@@ -216,7 +216,7 @@ void func_80B26758(EnKendoJs* this, GlobalContext* globalCtx) {
|
||||
if (Message_ShouldAdvance(globalCtx) && (this->unk_288 == 0x2716)) {
|
||||
switch (globalCtx->msgCtx.choiceIndex) {
|
||||
case 0:
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SWORD) == EQUIP_SWORD) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) == EQUIP_VALUE_SWORD_NONE) {
|
||||
play_sound(NA_SE_SY_ERROR);
|
||||
Message_StartTextbox(globalCtx, 0x272C, &this->actor);
|
||||
this->unk_288 = 0x272C;
|
||||
@@ -234,7 +234,7 @@ void func_80B26758(EnKendoJs* this, GlobalContext* globalCtx) {
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_SWORD) == EQUIP_SWORD) {
|
||||
if (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) == EQUIP_VALUE_SWORD_NONE) {
|
||||
play_sound(NA_SE_SY_ERROR);
|
||||
Message_StartTextbox(globalCtx, 0x272C, &this->actor);
|
||||
this->unk_288 = 0x272C;
|
||||
|
||||
@@ -718,8 +718,8 @@ void func_80B41E18(EnKgy* this, GlobalContext* globalCtx) {
|
||||
func_80B41368(this, globalCtx, 0);
|
||||
this->actor.textId = 0xC43;
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) = ITEM_NONE;
|
||||
SET_EQUIP_VALUE(EQUIP_SWORD, 0);
|
||||
Interface_LoadItemIconImpl(globalCtx, 0);
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SWORD, EQUIP_VALUE_SWORD_NONE);
|
||||
Interface_LoadItemIconImpl(globalCtx, EQUIP_SLOT_B);
|
||||
func_80B40C74(globalCtx);
|
||||
break;
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ void EnMs_Talk(EnMs* this, GlobalContext* globalCtx) {
|
||||
if (gSaveContext.save.playerData.rupees < 10) {
|
||||
play_sound(NA_SE_SY_ERROR);
|
||||
func_80151938(globalCtx, 0x935); // "[...] You don't have enough Rupees."
|
||||
} else if (AMMO(ITEM_BEAN) >= 20) {
|
||||
} else if (AMMO(ITEM_MAGIC_BEANS) >= 20) {
|
||||
play_sound(NA_SE_SY_ERROR);
|
||||
func_80151938(globalCtx, 0x937); // "[...] You can't carry anymore."
|
||||
} else {
|
||||
|
||||
@@ -305,9 +305,9 @@ void func_808FA4F4(EnRr* this, GlobalContext* globalCtx) {
|
||||
this->unk_20C = 0x800;
|
||||
|
||||
if (((this->unk_1E2 == 0) && (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN)) &&
|
||||
(GET_CUR_EQUIP_VALUE(EQUIP_SHIELD) == 1)) {
|
||||
(GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) == EQUIP_VALUE_SHIELD_HERO)) {
|
||||
sp34 = true;
|
||||
this->unk_1E2 = Inventory_DeleteEquipment(globalCtx, 1);
|
||||
this->unk_1E2 = Inventory_DeleteEquipment(globalCtx, EQUIP_VALUE_SHIELD_HERO);
|
||||
} else {
|
||||
sp34 = false;
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ s32 func_80AE6704(EnShn* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
switch (this->unk_2C6) {
|
||||
case 0:
|
||||
if (!CHECK_QUEST_ITEM(QUEST_PICTOBOX)) {
|
||||
if (!CHECK_QUEST_ITEM(QUEST_PICTOGRAPH)) {
|
||||
this->unk_2C6 = 6;
|
||||
ret = 1;
|
||||
} else {
|
||||
@@ -250,7 +250,7 @@ s32 func_80AE6704(EnShn* thisx, GlobalContext* globalCtx) {
|
||||
if (func_8013A4C4(D_80AE7258[this->unk_2C6])) {
|
||||
this->unk_2C6 = 6;
|
||||
ret = 1;
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOBOX);
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOGRAPH);
|
||||
} else {
|
||||
this->unk_2C6++;
|
||||
}
|
||||
|
||||
@@ -980,7 +980,7 @@ void func_80BACA14(EnSuttari* this, GlobalContext* globalCtx) {
|
||||
this->unk3F2 = this->unk2DC.y;
|
||||
this->actionFunc = func_80BACBB0;
|
||||
}
|
||||
} else if ((player->transformation == PLAYER_FORM_HUMAN) && GET_CUR_EQUIP_VALUE(EQUIP_SWORD) != 0) {
|
||||
} else if ((player->transformation == PLAYER_FORM_HUMAN) && GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) != 0) {
|
||||
if (Actor_ProcessTalkRequest(&this->actor, &globalCtx->state)) {
|
||||
this->unk3F2 = this->unk2DC.y;
|
||||
func_80BAAB78(this, globalCtx);
|
||||
|
||||
@@ -200,7 +200,7 @@ static CollisionCheckInfoInit2 sColChkInfoInit = { 8, 0, 0, 0, MASS_HEAVY };
|
||||
|
||||
static EnTalkGibudRequestedItem sRequestedItemTable[] = {
|
||||
{ PLAYER_AP_BOTTLE_POTION_BLUE, ITEM_POTION_BLUE, 1, true },
|
||||
{ PLAYER_AP_MAGIC_BEANS, ITEM_BEAN, 5, false },
|
||||
{ PLAYER_AP_MAGIC_BEANS, ITEM_MAGIC_BEANS, 5, false },
|
||||
{ PLAYER_AP_BOTTLE_SPRING_WATER, ITEM_SPRING_WATER, 1, true },
|
||||
{ PLAYER_AP_BOTTLE_FISH, ITEM_FISH, 1, true },
|
||||
{ PLAYER_AP_BOTTLE_BUG, ITEM_BUG, 1, true },
|
||||
|
||||
@@ -223,7 +223,7 @@ s32 func_80C10B0C(EnThiefbird* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
if (gSaveContext.save.playerForm == PLAYER_FORM_HUMAN) {
|
||||
phi_a3 = GET_CUR_EQUIP_VALUE(EQUIP_SWORD);
|
||||
phi_a3 = GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD);
|
||||
if (INV_CONTENT(ITEM_SWORD_GREAT_FAIRY) == ITEM_SWORD_GREAT_FAIRY) {
|
||||
phi_a3 += 4;
|
||||
}
|
||||
@@ -260,7 +260,7 @@ s32 func_80C10B0C(EnThiefbird* this, GlobalContext* globalCtx) {
|
||||
itemId1 = ITEM_SWORD_GREAT_FAIRY;
|
||||
} else {
|
||||
CUR_FORM_EQUIP(EQUIP_SLOT_B) = ITEM_NONE;
|
||||
SET_EQUIP_VALUE(EQUIP_SWORD, 0);
|
||||
SET_EQUIP_VALUE(EQUIP_TYPE_SWORD, EQUIP_VALUE_SWORD_NONE);
|
||||
this->unk_3E8 = D_80C13680[phi_a3 - 1];
|
||||
}
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ void func_80AE04FC(EnTsn* this, GlobalContext* globalCtx) {
|
||||
func_801477B4(globalCtx);
|
||||
this->actionFunc = func_80AE0704;
|
||||
if (sp24 == 19) {
|
||||
if (CHECK_QUEST_ITEM(QUEST_PICTOBOX)) {
|
||||
if (CHECK_QUEST_ITEM(QUEST_PICTOGRAPH)) {
|
||||
if (func_8013A4C4(1 | 8)) {
|
||||
player->actor.textId = 0x107B;
|
||||
return;
|
||||
@@ -433,7 +433,7 @@ void func_80AE0704(EnTsn* this, GlobalContext* globalCtx) {
|
||||
this->actor.focus.pos = this->actor.world.pos;
|
||||
ActorCutscene_Stop(this->actor.cutscene);
|
||||
this->actor.flags &= ~ACTOR_FLAG_100;
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOBOX);
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOGRAPH);
|
||||
} else {
|
||||
func_80151938(globalCtx, 0x10A8);
|
||||
}
|
||||
|
||||
@@ -956,13 +956,13 @@ void func_80B985EC(EnZot* this, GlobalContext* globalCtx) {
|
||||
itemActionParam = func_80123810(globalCtx);
|
||||
if (itemActionParam > PLAYER_AP_NONE) {
|
||||
func_801477B4(globalCtx);
|
||||
if ((itemActionParam == PLAYER_AP_PICTO_BOX) && CHECK_QUEST_ITEM(QUEST_PICTOBOX) && func_8013A4C4(4)) {
|
||||
if ((itemActionParam == PLAYER_AP_PICTO_BOX) && CHECK_QUEST_ITEM(QUEST_PICTOGRAPH) && func_8013A4C4(4)) {
|
||||
if (func_8013A4C4(5) && func_8013A4C4(6)) {
|
||||
player->actor.textId = 0x12AE;
|
||||
} else {
|
||||
player->actor.textId = 0x12AC;
|
||||
}
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOBOX);
|
||||
REMOVE_QUEST_ITEM(QUEST_PICTOGRAPH);
|
||||
} else {
|
||||
player->actor.textId = 0x12AB;
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@ void Select_LoadGame(SelectContext* this, u32 entranceIndex, s32 opt) {
|
||||
Sram_InitDebugSave();
|
||||
}
|
||||
|
||||
gSaveContext.buttonStatus[0] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[1] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[2] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[3] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[4] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_B] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_LEFT] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_DOWN] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_C_RIGHT] = BTN_ENABLED;
|
||||
gSaveContext.buttonStatus[EQUIP_SLOT_UNUSED] = BTN_ENABLED;
|
||||
gSaveContext.unk_3F1E = 0;
|
||||
gSaveContext.unk_3F20 = 0;
|
||||
gSaveContext.unk_3F22 = 0;
|
||||
|
||||
Reference in New Issue
Block a user