mirror of
https://github.com/HarbourMasters/2ship2harkinian.git
synced 2024-11-23 22:19:53 +00:00
Ovl_En_Fsn Ok and Documented (#204)
* First decomp pass: Matched everything w/ data * Minor cleanup of func_80AE2F78 * Documented * Format * Some cleanup and PR suggestions * Format * Add the word player to a few functions to specify it is the player trying to buy * Add controller macros * Move common shopkeeper defines * name unk274 and add note to unk27A * Remove macros and just use flag defines * Convert Controller Macros to take globalCtx * Fix merge conflicts
This commit is contained in:
parent
b5c931e432
commit
594a3ceaff
@ -824,7 +824,7 @@ s32 func_800B8708(GlobalContext* globalCtx);
|
||||
// void func_800B8804(void);
|
||||
// void func_800B882C(void);
|
||||
// void func_800B886C(void);
|
||||
void func_800B8898(GlobalContext* globalCtx, Actor* actor, UNK_PTR param_3, UNK_PTR param_4);
|
||||
void func_800B8898(GlobalContext* globalCtx, Actor* actor, s16* arg2, s16* arg3);
|
||||
s32 func_800B8934(GlobalContext* globalCtx, Actor* actor);
|
||||
u32 Actor_HasParent(Actor* actor, GlobalContext* globalCtx);
|
||||
UNK_TYPE4 func_800B8A1C(Actor* actor, GlobalContext* globalCtx, s32 iParm3, f32 fParm4, f32 param_5);
|
||||
@ -2164,7 +2164,7 @@ UNK_TYPE func_80114E90(void);
|
||||
// void func_801152B8(void);
|
||||
// void func_801153C8(void);
|
||||
// void func_80115428(void);
|
||||
// void func_8011552C(void);
|
||||
void func_8011552C(GlobalContext* globalCtx, s16 arg1);
|
||||
// void func_801155B4(void);
|
||||
// void func_80115764(void);
|
||||
void func_80115844(GlobalContext* globalCtx, s16 param_2);
|
||||
@ -2238,14 +2238,14 @@ u32 func_801233E4(GlobalContext* globalCtx);
|
||||
// void func_801234D4(void);
|
||||
s32 func_80123590(GlobalContext* globalCtx, Actor* actor);
|
||||
// void func_8012364C(void);
|
||||
// void func_80123810(void);
|
||||
s32 func_80123810(GlobalContext* globalCtx);
|
||||
// void func_80123960(void);
|
||||
// void func_801239AC(void);
|
||||
// void func_80123AA4(void);
|
||||
// void func_80123BD4(void);
|
||||
// void func_80123C58(void);
|
||||
// void func_80123C90(void);
|
||||
// void func_80123D50(void);
|
||||
void func_80123D50(GlobalContext* globalCtx, Player* player, UNK_TYPE arg2, UNK_TYPE arg3);
|
||||
void func_80123DA4(Player* player);
|
||||
// void func_80123DC0(void);
|
||||
// void func_80123E90(void);
|
||||
@ -2706,7 +2706,7 @@ void func_8013AED4(u16* param_1, u16 param_2, u16 param_3);
|
||||
// void func_8013B878(void);
|
||||
// void func_8013BB34(void);
|
||||
// void func_8013BB7C(void);
|
||||
UNK_TYPE func_8013BC6C(SkelAnime* skelAnime, UNK_PTR arg1, s32 arg2);
|
||||
UNK_TYPE func_8013BC6C(SkelAnime* skelAnime, ActorAnimationEntryS* arg1, s32 arg2);
|
||||
// void func_8013BD40(void);
|
||||
// void func_8013BEDC(void);
|
||||
// void func_8013C068(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
@ -2888,7 +2888,7 @@ void func_8014ADBC(GlobalContext* globalCtx, UNK_PTR puParm2);
|
||||
// void func_80150A84(void);
|
||||
void func_80150D08(GlobalContext* globalCtx, u32 uParm2);
|
||||
// void func_801514B0(void);
|
||||
void func_801518B0(GlobalContext* globalCtx, u32 uParm2, Actor* uParm3);
|
||||
void func_801518B0(GlobalContext* globalCtx, u16 textId, Actor* Actor);
|
||||
void func_80151938(GlobalContext* globalCtx, u16 textId);
|
||||
void func_80151A68(GlobalContext* globalCtx, u16 param_2);
|
||||
void func_80151BB4(GlobalContext* globalCtx, u32 uParm2);
|
||||
@ -2896,7 +2896,7 @@ void func_80151BB4(GlobalContext* globalCtx, u32 uParm2);
|
||||
// void func_80151DA4(void);
|
||||
void func_80152434(GlobalContext* globalCtx, u16 arg2);
|
||||
// void func_80152464(void);
|
||||
s32 func_80152498(MessageContext* msgCtx);
|
||||
u8 func_80152498(MessageContext* msgCtx);
|
||||
// void func_8015268C(void);
|
||||
// void func_80152C64(void);
|
||||
// void func_80152CAC(void);
|
||||
|
@ -52,6 +52,11 @@
|
||||
#define CAPACITY(upg, value) gUpgradeCapacities[upg][value]
|
||||
#define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg) - 4)
|
||||
|
||||
#define CONTROLLER1(globalCtx) (&(globalCtx)->state.input[0])
|
||||
#define CONTROLLER2(globalCtx) (&(globalCtx)->state.input[1])
|
||||
#define CONTROLLER3(globalCtx) (&(globalCtx)->state.input[2])
|
||||
#define CONTROLLER4(globalCtx) (&(globalCtx)->state.input[3])
|
||||
|
||||
#define CHECK_BTN_ALL(state, combo) (~((state) | ~(combo)) == 0)
|
||||
#define CHECK_BTN_ANY(state, combo) (((state) & (combo)) != 0)
|
||||
|
||||
|
@ -1403,7 +1403,7 @@ extern u32 gGsFlagsMask[];
|
||||
extern u32 gGsFlagsShift[];
|
||||
extern void* gItemIcons[];
|
||||
extern u8 gItemSlots[];
|
||||
extern u16 gItemPrices[];
|
||||
extern s16 gItemPrices[];
|
||||
extern u16 gScenesPerRegion[11][27];
|
||||
extern u32 D_801C2410[];
|
||||
extern s16 gLinkFormObjectIndexes[8];
|
||||
|
@ -949,7 +949,8 @@ typedef struct {
|
||||
/* 0x11F10 */ s32 unk11F10;
|
||||
/* 0x11F14 */ UNK_TYPE1 pad11F14[0xE];
|
||||
/* 0x11F22 */ u8 unk11F22;
|
||||
/* 0x11F23 */ UNK_TYPE1 pad11F23[0xFE];
|
||||
/* 0x11F23 */ UNK_TYPE1 pad11F23[0xFD];
|
||||
/* 0x12020 */ u8 unk12020;
|
||||
/* 0x12021 */ u8 choiceIndex;
|
||||
/* 0x12022 */ UNK_TYPE1 unk12022;
|
||||
/* 0x12023 */ s8 unk12023;
|
||||
|
@ -31,7 +31,8 @@ typedef enum {
|
||||
/* 0x15 */ ITEM_POTION_BLUE,
|
||||
/* 0x16 */ ITEM_FAIRY,
|
||||
/* 0x38 */ ITEM_MASK_ALL_NIGHT = 0x38,
|
||||
/* 0x3B */ ITEM_MASK_GARO = 0x3B,
|
||||
/* 0x3A */ ITEM_MASK_KEATON = 0x3A,
|
||||
/* 0x3B */ ITEM_MASK_GARO,
|
||||
/* 0x46 */ ITEM_MASK_BREMEN = 0x46,
|
||||
/* 0x4D */ ITEM_SWORD_KOKIRI = 0x4D,
|
||||
/* 0x4E */ ITEM_SWORD_RAZOR,
|
||||
@ -68,6 +69,13 @@ typedef enum {
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ GI_NONE,
|
||||
/* 0x01 */ GI_RUPEE_GREEN,
|
||||
/* 0x02 */ GI_RUPEE_BLUE,
|
||||
/* 0x03 */ GI_RUPEE_10,
|
||||
/* 0x04 */ GI_RUPEE_RED,
|
||||
/* 0x05 */ GI_RUPEE_PURPLE,
|
||||
/* 0x06 */ GI_RUPEE_SILVER,
|
||||
/* 0x07 */ GI_RUPEE_GOLD,
|
||||
/* 0x0C */ GI_HEART_PIECE = 0x0C,
|
||||
/* 0x0D */ GI_HEART_CONTAINER,
|
||||
/* 0x16 */ GI_BOMBS_10 = 0x16,
|
||||
@ -92,12 +100,14 @@ typedef enum {
|
||||
/* 0x5E */ GI_FAIRY,
|
||||
/* 0x60 */ GI_MILK_BOTTLE = 0x60,
|
||||
/* 0x7E */ GI_MASK_ALL_NIGHT = 0x7E,
|
||||
/* 0x80 */ GI_MASK_KEATON = 0x80,
|
||||
/* 0x8C */ GI_MASK_BREMEN = 0x8C,
|
||||
/* 0x9B */ GI_SWORD_GREAT_FAIRY = 0x9B,
|
||||
/* 0x9C */ GI_SWORD_KOKIRI,
|
||||
/* 0x9D */ GI_SWORD_RAZOR,
|
||||
/* 0x9E */ GI_SWORD_GILDED,
|
||||
/* 0x9F */ GI_SHIELD_HERO_2, // Code that treats this as hero's shield is unused, so take with a grain of salt
|
||||
/* 0xA1 */ GI_LETTER_TO_MAMA = 0xA1,
|
||||
/* 0xA9 */ GI_BOTTLE = 0xA9
|
||||
} GetItemID;
|
||||
|
||||
|
@ -6119,9 +6119,9 @@ SECTIONS
|
||||
ovl_En_Fsn : AT(RomLocation)
|
||||
{
|
||||
build/src/overlays/actors/ovl_En_Fsn/z_en_fsn.o(.text)
|
||||
build/asm/overlays/ovl_En_Fsn_data.o(.data)
|
||||
build/src/overlays/actors/ovl_En_Fsn/z_en_fsn.o(.data)
|
||||
build/src/overlays/actors/ovl_En_Fsn/z_en_fsn.o(.rodata)
|
||||
build/asm/overlays/ovl_En_Fsn_rodata.o(.rodata)
|
||||
build/src/overlays/actors/ovl_En_Fsn/z_en_fsn_overlay.o(.ovl)
|
||||
}
|
||||
SegmentEnd = .;
|
||||
SegmentSize = SegmentEnd - SegmentStart;
|
||||
|
@ -43,6 +43,9 @@ D_0408EBE0 = 0x0408EBE0;
|
||||
D_0408EFE0 = 0x0408EFE0;
|
||||
D_0408F3E0 = 0x0408F3E0;
|
||||
D_0408F7E0 = 0x0408F7E0;
|
||||
D_0401F740 = 0x0401F740;
|
||||
D_0401F7C0 = 0x0401F7C0;
|
||||
D_0401F8C0 = 0x0401F8C0;
|
||||
|
||||
|
||||
/* gameplay_dangeon_keep (segment 05) */
|
||||
@ -288,6 +291,26 @@ D_060018B8 = 0x060018B8;
|
||||
D_0600017C = 0x0600017C;
|
||||
D_06001678 = 0x06001678;
|
||||
|
||||
/* z_en_fsn */
|
||||
D_06012C34 = 0x06012C34;
|
||||
D_06013320 = 0x06013320;
|
||||
D_060131FC = 0x060131FC;
|
||||
D_0600C58C = 0x0600C58C;
|
||||
D_0600E3EC = 0x0600E3EC;
|
||||
D_0600F00C = 0x0600F00C;
|
||||
D_0600CB3C = 0x0600CB3C;
|
||||
D_0600D354 = 0x0600D354;
|
||||
D_060138B0 = 0x060138B0;
|
||||
D_0601430C = 0x0601430C;
|
||||
D_0600B9D8 = 0x0600B9D8;
|
||||
D_0600C26C = 0x0600C26C;
|
||||
D_0600DE34 = 0x0600DE34;
|
||||
D_06005BC0 = 0x06005BC0;
|
||||
D_06006D40 = 0x06006D40;
|
||||
D_06007140 = 0x06007140;
|
||||
D_0600F180 = 0x0600F180;
|
||||
D_0600F218 = 0x0600F218;
|
||||
|
||||
/* z_en_ginko_man */
|
||||
object_ginko_skeleton = 0x0600C240;
|
||||
object_ginko_limb15_dlist = 0x0600B1D8;
|
||||
|
@ -37,19 +37,19 @@ s32 func_800E8FA4(Actor* actor, Vec3f* param_2, Vec3s* param_3, Vec3s* param_4)
|
||||
targetYaw = Math_Vec3f_Yaw(&actor->focus.pos, param_2) - actor->world.rot.y;
|
||||
|
||||
Math_SmoothStepToS(¶m_3->x, targetPitch, 6, 2000, 1);
|
||||
param_3->x = (param_3->x < -6000) ? -6000 : ((6000 < param_3->x) ? 6000 : param_3->x);
|
||||
param_3->x = CLAMP(param_3->x, -6000, 6000);
|
||||
|
||||
yawDiffFromTarget = Math_SmoothStepToS(¶m_3->y, targetYaw, 6, 2000, 1);
|
||||
param_3->y = (param_3->y < -8000) ? -8000 : ((8000 < param_3->y) ? 8000 : param_3->y);
|
||||
param_3->y = CLAMP(param_3->y, -8000, 8000);
|
||||
|
||||
if (yawDiffFromTarget != 0) {
|
||||
if ((param_3->y < 0 ? -param_3->y : param_3->y) < 8000) {
|
||||
if (ABS_ALT(param_3->y) < 8000) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Math_SmoothStepToS(¶m_4->y, targetYaw - param_3->y, 4, 2000, 1);
|
||||
param_4->y = (param_4->y < -12000) ? -12000 : ((12000 < param_4->y) ? 12000 : param_4->y);
|
||||
param_4->y = CLAMP(param_4->y, -12000, 12000);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -58,14 +58,15 @@ s32 func_800E9138(GlobalContext* globalCtx, Actor* actor, Vec3s* param_3, Vec3s*
|
||||
Player* player = PLAYER;
|
||||
s16 sVar3;
|
||||
Vec3f local_14;
|
||||
s16 sVar3A;
|
||||
|
||||
actor->focus.pos = actor->world.pos;
|
||||
actor->focus.pos.y += param_5;
|
||||
|
||||
if (((globalCtx->csCtx).state == 0) && (D_801D0D50 == 0)) {
|
||||
sVar3 = actor->yawTowardsPlayer - actor->shape.rot.y;
|
||||
// TODO is this shifting because of a missing cast?
|
||||
if (0x42ff < (sVar3 < 0 ? ((-sVar3 << 0x10) >> 0x10) : ((sVar3 << 0x10) >> 0x10))) {
|
||||
sVar3A = ABS_ALT(sVar3);
|
||||
if (sVar3A >= 0x4300) {
|
||||
func_800E8F08(param_3, param_4);
|
||||
return 0;
|
||||
}
|
||||
@ -86,13 +87,14 @@ s32 func_800E9250(GlobalContext* globalCtx, Actor* actor, Vec3s* param_3, Vec3s*
|
||||
Player* player = PLAYER;
|
||||
s16 sVar3;
|
||||
Vec3f local_14;
|
||||
s16 sVar3A;
|
||||
|
||||
actor->focus.pos = param_5;
|
||||
|
||||
if (((globalCtx->csCtx).state == 0) && (D_801D0D50 == 0)) {
|
||||
sVar3 = actor->yawTowardsPlayer - actor->shape.rot.y;
|
||||
// TODO is this shifting because of a missing cast?
|
||||
if (0x42ff < (sVar3 < 0 ? ((-sVar3 << 0x10) >> 0x10) : ((sVar3 << 0x10) >> 0x10))) {
|
||||
sVar3A = ABS_ALT(sVar3);
|
||||
if (sVar3A >= 0x4300) {
|
||||
func_800E8F08(param_3, param_4);
|
||||
return 0;
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ u8 gItemSlots[] = {
|
||||
0x1C, 0x2B, 0x21, 0x2A, 0x2D, 0x1B, 0x1F, 0x1A, 0x22, 0x2E, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
u16 gItemPrices[] = {
|
||||
s16 gItemPrices[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 0, 20,
|
||||
5, 20, 20, 50, 50, 200, 20, 20, 20, 200, 5, 0, 200, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
|
@ -262,7 +262,7 @@ void ArmsHook_Shoot(ArmsHook* this, GlobalContext* globalCtx) {
|
||||
func_8019F1C0(&this->actor.projectedPos, NA_SE_IT_HOOKSHOT_REFLECT);
|
||||
}
|
||||
} else {
|
||||
if (CHECK_BTN_ANY(globalCtx->state.input[0].press.button,
|
||||
if (CHECK_BTN_ANY(CONTROLLER1(globalCtx)->press.button,
|
||||
BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CLEFT | BTN_CRIGHT | BTN_CDOWN)) {
|
||||
s32 pad;
|
||||
this->timer = 1;
|
||||
|
@ -27,19 +27,19 @@ const ActorInit Dm_Nb_InitVars = {
|
||||
(ActorFunc)DmNb_Draw,
|
||||
};
|
||||
|
||||
extern UNK_TYPE D_06000990;
|
||||
extern AnimationHeader D_06000990;
|
||||
|
||||
extern FlexSkeletonHeader D_06008C40;
|
||||
|
||||
// Probably the same struct as ActorAnimationEntryS, need more info from func_8013BC6C
|
||||
static UNK_TYPE D_80C1E200[] = { &D_06000990, 0x3F800000, 0x0000FFFF, 0x00000000 };
|
||||
static ActorAnimationEntryS D_80C1E200[] = { &D_06000990, 1.0f, 0, -1, 0, 0};
|
||||
|
||||
s32 func_80C1DED0(DmNb* this, s32 arg1) {
|
||||
s32 ret = 0;
|
||||
|
||||
if (arg1 != this->unk1F0) {
|
||||
this->unk1F0 = arg1;
|
||||
ret = func_8013BC6C(&this->skelAnime, &D_80C1E200, arg1);
|
||||
ret = func_8013BC6C(&this->skelAnime, D_80C1E200, arg1);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,12 +2,74 @@
|
||||
#define Z_EN_FSN_H
|
||||
|
||||
#include <global.h>
|
||||
#include "overlays/actors/ovl_En_GirlA/z_en_girla.h"
|
||||
|
||||
#define ENFSN_IS_BACKROOM(thisx) ((thisx)->params & 1)
|
||||
#define ENFSN_IS_SHOP(thisx) (!((thisx)->params & 1))
|
||||
|
||||
#define ENFSN_OFFER_FINAL_PRICE (1 << 6)
|
||||
#define ENFSN_HAGGLE (1 << 7)
|
||||
#define ENFSN_ANGRY (1 << 8)
|
||||
#define ENFSN_CALM_DOWN (1 << 9)
|
||||
|
||||
struct EnFsn;
|
||||
|
||||
typedef void (*EnFsnActionFunc)(struct EnFsn*, GlobalContext*);
|
||||
|
||||
typedef struct EnFsn {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ char unk_144[0x30C];
|
||||
/* 0x144 */ UNK_TYPE1 pad144[0x4C];
|
||||
/* 0x190 */ SkelAnime skelAnime;
|
||||
/* 0x1D4 */ EnFsnActionFunc actionFunc;
|
||||
/* 0x1D8 */ EnFsnActionFunc tmpActionFunc; // Used to return to correct browsing function
|
||||
/* 0x1DC */ ColliderCylinder collider;
|
||||
/* 0x228 */ s16 limbRotYTable[19];
|
||||
/* 0x24E */ s16 limbRotZTable[19];
|
||||
/* 0x274 */ Vec3s headRot;
|
||||
/* 0x27A */ Vec3s unk27A; // Set but never used
|
||||
/* 0x280 */ Vec3s limbDrawTable[19];
|
||||
/* 0x2F2 */ Vec3s transitionDrawTable[19];
|
||||
/* 0x364 */ s16 eyeTextureIdx;
|
||||
/* 0x366 */ s16 blinkTimer;
|
||||
/* 0x368 */ s16 cutsceneState;
|
||||
/* 0x36A */ s16 cutscene;
|
||||
/* 0x36C */ s16 lookToShopkeeperCutscene;
|
||||
/* 0x36E */ s16 lookToShelfCutscene;
|
||||
/* 0x370 */ s16 lookToShopkeeperFromShelfCutscene;
|
||||
/* 0x372 */ s16 lookToShopkeeperBuyingCutscene;
|
||||
/* 0x374 */ s16 price;
|
||||
/* 0x376 */ u16 textId;
|
||||
/* 0x378 */ u8 isSelling;
|
||||
/* 0x379 */ u8 cursorIdx;
|
||||
/* 0x37C */ s32 getItemId;
|
||||
/* 0x380 */ s16 stolenItem1;
|
||||
/* 0x382 */ s16 stolenItem2;
|
||||
/* 0x384 */ s16 itemIds[3];
|
||||
/* 0x38A */ s16 totalSellingItems;
|
||||
/* 0x38C */ s16 numSellingItems;
|
||||
/* 0x390 */ EnGirlA* items[3];
|
||||
/* 0x39C */ s16 delayTimer;
|
||||
/* 0x3A0 */ s32 stickAccumX;
|
||||
/* 0x3A4 */ s32 stickAccumY;
|
||||
/* 0x3A8 */ f32 cursorX;
|
||||
/* 0x3AC */ f32 cursorY;
|
||||
/* 0x3B0 */ f32 cursorZ;
|
||||
/* 0x3B4 */ s32 cursorColorR;
|
||||
/* 0x3B8 */ s32 cursorColorG;
|
||||
/* 0x3BC */ s32 cursorColorB;
|
||||
/* 0x3C0 */ s32 cursorColorA;
|
||||
/* 0x3C4 */ f32 cursorAnimTween;
|
||||
/* 0x3C8 */ u8 cursorAnimState;
|
||||
/* 0x3C9 */ u8 drawCursor;
|
||||
/* 0x3CC */ StickDirectionPrompt stickLeftPrompt;
|
||||
/* 0x404 */ StickDirectionPrompt stickRightPrompt;
|
||||
/* 0x43C */ f32 arrowAnimTween;
|
||||
/* 0x440 */ f32 stickAnimTween;
|
||||
/* 0x444 */ u8 arrowAnimState;
|
||||
/* 0x445 */ u8 stickAnimState;
|
||||
/* 0x448 */ f32 shopItemSelectedTween;
|
||||
/* 0x44C */ s16 animationIdx;
|
||||
/* 0x44E */ u16 flags;
|
||||
} EnFsn; // size = 0x450
|
||||
|
||||
extern const ActorInit En_Fsn_InitVars;
|
||||
|
@ -191,7 +191,7 @@ s32 EnGirlA_CanBuyPotionRed(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyPotionGreen(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -201,36 +201,36 @@ s32 EnGirlA_CanBuyPotionGreen(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyPotionBlue(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (!(gSaveContext.weekEventReg[53] & 8)) {
|
||||
return CANBUY_RESULT_CANT_GET_NOW;
|
||||
return CANBUY_RESULT_CANNOT_GET_NOW;
|
||||
}
|
||||
if (!func_80114E90()) {
|
||||
return CANBUY_RESULT_NEED_EMPTY_BOTTLE;
|
||||
}
|
||||
if (!(gSaveContext.weekEventReg[53] & 0x10)) {
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyArrows(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (CUR_UPG_VALUE_VOID(UPG_QUIVER) == 0) {
|
||||
return CANBUY_RESULT_NO_ROOM_2;
|
||||
return CANBUY_RESULT_CANNOT_GET_NOW_2;
|
||||
}
|
||||
if (AMMO(ITEM_BOW) >= CUR_CAPACITY(UPG_QUIVER)) {
|
||||
return CANBUY_RESULT_NO_ROOM_3;
|
||||
return CANBUY_RESULT_NO_ROOM_2;
|
||||
}
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyNuts(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -241,9 +241,9 @@ s32 EnGirlA_CanBuyNuts(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
if (func_80114978(ITEM_NUT) == ITEM_NONE) {
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyShieldHero(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -253,7 +253,7 @@ s32 EnGirlA_CanBuyShieldHero(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyStick(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -264,26 +264,26 @@ s32 EnGirlA_CanBuyStick(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
if (func_80114978(ITEM_STICK) == ITEM_NONE) {
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyMaskAllNight(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyBombBagCuriosityShop(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (CUR_UPG_VALUE_VOID(UPG_BOMB_BAG) >= 2) {
|
||||
return CANBUY_RESULT_CANT_GET_NOW;
|
||||
return CANBUY_RESULT_CANNOT_GET_NOW;
|
||||
}
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyBombBag20BombShop(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -296,7 +296,7 @@ s32 EnGirlA_CanBuyBombBag20BombShop(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyBombBag30BombShop(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -309,12 +309,12 @@ s32 EnGirlA_CanBuyBombBag30BombShop(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyBombchus(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (CUR_UPG_VALUE_VOID(UPG_BOMB_BAG) == 0) {
|
||||
return CANBUY_RESULT_CANT_GET_NOW;
|
||||
return CANBUY_RESULT_CANNOT_GET_NOW;
|
||||
}
|
||||
if (AMMO(ITEM_BOMBCHU) >= CUR_CAPACITY(UPG_BOMB_BAG)) {
|
||||
return CANBUY_RESULT_NO_ROOM;
|
||||
@ -323,14 +323,14 @@ s32 EnGirlA_CanBuyBombchus(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
if (func_80114978(ITEM_BOMBCHU) == ITEM_NONE) {
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyBombs(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (CUR_UPG_VALUE_VOID(UPG_BOMB_BAG) == 0) {
|
||||
return CANBUY_RESULT_CANT_GET_NOW;
|
||||
return CANBUY_RESULT_CANNOT_GET_NOW;
|
||||
}
|
||||
if (AMMO(ITEM_BOMB) >= CUR_CAPACITY(UPG_BOMB_BAG)) {
|
||||
return CANBUY_RESULT_NO_ROOM;
|
||||
@ -338,21 +338,21 @@ s32 EnGirlA_CanBuyBombs(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyBottle(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuySword(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyShieldMirror(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -362,7 +362,7 @@ s32 EnGirlA_CanBuyShieldMirror(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS_FANFARE;
|
||||
return CANBUY_RESULT_SUCCESS_1;
|
||||
}
|
||||
|
||||
s32 EnGirlA_CanBuyFairy(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
@ -372,7 +372,7 @@ s32 EnGirlA_CanBuyFairy(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
if (gSaveContext.rupees < globalCtx->msgCtx.unk1206C) {
|
||||
return CANBUY_RESULT_NEED_RUPEES;
|
||||
}
|
||||
return CANBUY_RESULT_SUCCESS;
|
||||
return CANBUY_RESULT_SUCCESS_2;
|
||||
}
|
||||
|
||||
void EnGirlA_BuyBottleItem(GlobalContext* globalCtx, EnGirlA* this) {
|
||||
|
@ -48,18 +48,87 @@ typedef struct EnGirlA {
|
||||
} EnGirlA; // size = 0x1CC
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ CANBUY_RESULT_SUCCESS_FANFARE,
|
||||
/* 1 */ CANBUY_RESULT_SUCCESS,
|
||||
/* 0 */ CANBUY_RESULT_SUCCESS_1,
|
||||
/* 1 */ CANBUY_RESULT_SUCCESS_2,
|
||||
/* 2 */ CANBUY_RESULT_NO_ROOM,
|
||||
/* 3 */ CANBUY_RESULT_NEED_EMPTY_BOTTLE,
|
||||
/* 4 */ CANBUY_RESULT_NEED_RUPEES,
|
||||
/* 5 */ CANBUY_RESULT_CANT_GET_NOW,
|
||||
/* 6 */ CANBUY_RESULT_NO_ROOM_2,
|
||||
/* 7 */ CANBUY_RESULT_NO_ROOM_3,
|
||||
/* 5 */ CANBUY_RESULT_CANNOT_GET_NOW,
|
||||
/* 6 */ CANBUY_RESULT_CANNOT_GET_NOW_2,
|
||||
/* 7 */ CANBUY_RESULT_NO_ROOM_2,
|
||||
/* 8 */ CANBUY_RESULT_ALREADY_HAVE,
|
||||
/* 9 */ CANBUY_RESULT_HAVE_BETTER
|
||||
} EnGirlACanBuyResult;
|
||||
|
||||
typedef enum {
|
||||
/* 00 */ SI_POTION_RED_1,
|
||||
/* 01 */ SI_POTION_GREEN_1,
|
||||
/* 02 */ SI_POTION_BLUE,
|
||||
/* 03 */ SI_FAIRY_1,
|
||||
/* 04 */ SI_ARROWS_LARGE_1,
|
||||
/* 05 */ SI_POTION_GREEN_2,
|
||||
/* 06 */ SI_SHIELD_HERO_1,
|
||||
/* 07 */ SI_STICK_1,
|
||||
/* 08 */ SI_ARROWS_MEDIUM_1,
|
||||
/* 09 */ SI_NUTS_1,
|
||||
/* 10 */ SI_POTION_RED_2,
|
||||
/* 11 */ SI_FAIRY_2,
|
||||
/* 12 */ SI_ARROWS_MEDIUM_2,
|
||||
/* 13 */ SI_ARROWS_LARGE_2,
|
||||
/* 14 */ SI_POTION_GREEN_3,
|
||||
/* 15 */ SI_NUTS_2,
|
||||
/* 16 */ SI_STICK_2,
|
||||
/* 17 */ SI_SHIELD_HERO_2,
|
||||
/* 18 */ SI_POTION_RED_3,
|
||||
/* 19 */ SI_MASK_ALL_NIGHT,
|
||||
/* 20 */ SI_BOMB_BAG_20_1,
|
||||
/* 21 */ SI_BOMB_BAG_30_1,
|
||||
/* 22 */ SI_BOMB_BAG_40,
|
||||
/* 23 */ SI_BOMB_BAG_20_2,
|
||||
/* 24 */ SI_BOMB_BAG_30_2,
|
||||
/* 25 */ SI_BOMBCHU,
|
||||
/* 26 */ SI_BOMB_1,
|
||||
/* 27 */ SI_SHIELD_HERO_3,
|
||||
/* 28 */ SI_ARROWS_SMALL_1,
|
||||
/* 29 */ SI_POTION_RED_4,
|
||||
/* 30 */ SI_BOMB_2,
|
||||
/* 31 */ SI_ARROWS_SMALL_2,
|
||||
/* 32 */ SI_POTION_RED_5,
|
||||
/* 33 */ SI_BOMB_3,
|
||||
/* 34 */ SI_ARROWS_SMALL_3,
|
||||
/* 35 */ SI_POTION_RED_6,
|
||||
/* 36 */ SI_BOTTLE,
|
||||
/* 37 */ SI_SWORD_GREAT_FAIRY,
|
||||
/* 38 */ SI_SWORD_KOKIRI,
|
||||
/* 39 */ SI_SWORD_RAZOR,
|
||||
/* 40 */ SI_SWORD_GILDED,
|
||||
/* 41 */ SI_SHIELD_HERO_4,
|
||||
/* 42 */ SI_SHIELD_MIRROR,
|
||||
} EnGirlAShopItemId;
|
||||
|
||||
extern const ActorInit En_GirlA_InitVars;
|
||||
|
||||
/*
|
||||
* Shopkeeper Common Defines
|
||||
*/
|
||||
#define CURSOR_INVALID 0xFF
|
||||
#define COL_CHAN_MIX(c1, c2, m) (c1 - (s32)(c2 * m)) & 0xFF
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 stickColorR;
|
||||
/* 0x04 */ u32 stickColorG;
|
||||
/* 0x08 */ u32 stickColorB;
|
||||
/* 0x0C */ u32 stickColorA;
|
||||
/* 0x10 */ f32 stickTexX;
|
||||
/* 0x14 */ f32 stickTexY;
|
||||
/* 0x18 */ u32 arrowColorR;
|
||||
/* 0x1C */ u32 arrowColorG;
|
||||
/* 0x20 */ u32 arrowColorB;
|
||||
/* 0x24 */ u32 arrowColorA;
|
||||
/* 0x28 */ f32 arrowTexX;
|
||||
/* 0x2C */ f32 arrowTexY;
|
||||
/* 0x30 */ f32 texZ; // Used for both stickTexZ and arrowTexZ
|
||||
/* 0x34 */ s32 isEnabled;
|
||||
} StickDirectionPrompt; // size = 0x38
|
||||
|
||||
#endif // Z_EN_GIRLA_H
|
||||
|
@ -1400,7 +1400,7 @@ s32 func_80B45550(EnInvadepoh* this, GlobalContext* globalCtx, f32 range, s32 ar
|
||||
|
||||
void EnInvadepoh_SetTextID(EnInvadepoh* this, GlobalContext* globalCtx, u16 arg2) {
|
||||
this->textId = arg2;
|
||||
func_801518B0(globalCtx, arg2 & 0xFFFF, &this->actor);
|
||||
func_801518B0(globalCtx, arg2, &this->actor);
|
||||
}
|
||||
|
||||
void func_80B45648(EnInvadepoh* this) {
|
||||
|
@ -465,7 +465,7 @@ s32 func_80BA4204(EnToto* this, GlobalContext* globalCtx) {
|
||||
if (DECR(this->unk2B1) == 0) {
|
||||
if (!ENTOTO_WEEK_EVENT_FLAGS) {
|
||||
temp_v1_2 = &D_80BA50DC[gSaveContext.playerForm - 1];
|
||||
func_801518B0(globalCtx, (this->text->unk0 == 6 ? temp_v1_2->unk0 : temp_v1_2->unk4) & 0xFFFF, NULL);
|
||||
func_801518B0(globalCtx, (this->text->unk0 == 6 ? temp_v1_2->unk0 : temp_v1_2->unk4), NULL);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -97,16 +97,15 @@ void func_80B3C39C(ObjGhaka* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_80B3C4E0(ObjGhaka* this, GlobalContext* globalCtx) {
|
||||
s32 temp_v0 = func_80152498(&globalCtx->msgCtx);
|
||||
s32 talkState = func_80152498(&globalCtx->msgCtx);
|
||||
|
||||
if (temp_v0 == 5) {
|
||||
if (talkState == 5) {
|
||||
if (func_80147624(globalCtx)) {
|
||||
globalCtx->msgCtx.unk11F22 = 0x43;
|
||||
globalCtx->msgCtx.unk12023 = 4;
|
||||
func_80B3C260(this);
|
||||
}
|
||||
// Could be fake, but helps match
|
||||
} else if ((temp_v0 & 0xFFFFFFFF) == 4) {
|
||||
} else if (talkState == 4) {
|
||||
if (func_80147624(globalCtx)) {
|
||||
switch (globalCtx->msgCtx.choiceIndex) {
|
||||
case 0:
|
||||
|
@ -12409,68 +12409,68 @@
|
||||
0x80AE1874:("func_80AE1874",),
|
||||
0x80AE18B4:("func_80AE18B4",),
|
||||
0x80AE19B8:("EnDs2n_Draw",),
|
||||
0x80AE1B70:("func_80AE1B70",),
|
||||
0x80AE1BF0:("func_80AE1BF0",),
|
||||
0x80AE1C54:("func_80AE1C54",),
|
||||
0x80AE1E58:("func_80AE1E58",),
|
||||
0x80AE1EF4:("func_80AE1EF4",),
|
||||
0x80AE1F5C:("func_80AE1F5C",),
|
||||
0x80AE2028:("func_80AE2028",),
|
||||
0x80AE2074:("func_80AE2074",),
|
||||
0x80AE21C8:("func_80AE21C8",),
|
||||
0x80AE2234:("func_80AE2234",),
|
||||
0x80AE2298:("func_80AE2298",),
|
||||
0x80AE2340:("func_80AE2340",),
|
||||
0x80AE2438:("func_80AE2438",),
|
||||
0x80AE2524:("func_80AE2524",),
|
||||
0x80AE25D4:("func_80AE25D4",),
|
||||
0x80AE2670:("func_80AE2670",),
|
||||
0x80AE26D4:("func_80AE26D4",),
|
||||
0x80AE2760:("func_80AE2760",),
|
||||
0x80AE28B0:("func_80AE28B0",),
|
||||
0x80AE2974:("func_80AE2974",),
|
||||
0x80AE2A98:("func_80AE2A98",),
|
||||
0x80AE2B44:("func_80AE2B44",),
|
||||
0x80AE2BE0:("func_80AE2BE0",),
|
||||
0x80AE2C6C:("func_80AE2C6C",),
|
||||
0x80AE2CFC:("func_80AE2CFC",),
|
||||
0x80AE2DC8:("func_80AE2DC8",),
|
||||
0x80AE2F78:("func_80AE2F78",),
|
||||
0x80AE30F8:("func_80AE30F8",),
|
||||
0x80AE32D4:("func_80AE32D4",),
|
||||
0x80AE3474:("func_80AE3474",),
|
||||
0x80AE352C:("func_80AE352C",),
|
||||
0x80AE3644:("func_80AE3644",),
|
||||
0x80AE3880:("func_80AE3880",),
|
||||
0x80AE38E0:("func_80AE38E0",),
|
||||
0x80AE3A68:("func_80AE3A68",),
|
||||
0x80AE3BC4:("func_80AE3BC4",),
|
||||
0x80AE3CF0:("func_80AE3CF0",),
|
||||
0x80AE3D50:("func_80AE3D50",),
|
||||
0x80AE3E4C:("func_80AE3E4C",),
|
||||
0x80AE3F40:("func_80AE3F40",),
|
||||
0x80AE4028:("func_80AE4028",),
|
||||
0x80AE4120:("func_80AE4120",),
|
||||
0x80AE41FC:("func_80AE41FC",),
|
||||
0x80AE4424:("func_80AE4424",),
|
||||
0x80AE44DC:("func_80AE44DC",),
|
||||
0x80AE45C4:("func_80AE45C4",),
|
||||
0x80AE4638:("func_80AE4638",),
|
||||
0x80AE4828:("func_80AE4828",),
|
||||
0x80AE4A1C:("func_80AE4A1C",),
|
||||
0x80AE4B20:("func_80AE4B20",),
|
||||
0x80AE4B70:("func_80AE4B70",),
|
||||
0x80AE4BF4:("func_80AE4BF4",),
|
||||
0x80AE4CD8:("func_80AE4CD8",),
|
||||
0x80AE4D28:("func_80AE4D28",),
|
||||
0x80AE1B70:("EnFsn_TestItemSelected",),
|
||||
0x80AE1BF0:("EnFsn_GetWelcome",),
|
||||
0x80AE1C54:("EnFsn_HandleConversationBackroom",),
|
||||
0x80AE1E58:("EnFsn_HandleSetupResumeInteraction",),
|
||||
0x80AE1EF4:("EnFsn_UpdateCollider",),
|
||||
0x80AE1F5C:("EnFsn_HandleLookToShopkeeperBuyingCutscene",),
|
||||
0x80AE2028:("EnFsn_SetCursorIndexFromNeutral",),
|
||||
0x80AE2074:("EnFsn_CursorLeftRight",),
|
||||
0x80AE21C8:("EnFsn_GetThirdDayItemId",),
|
||||
0x80AE2234:("EnFsn_GetStolenItemId",),
|
||||
0x80AE2298:("EnFsn_HasItemsToSell",),
|
||||
0x80AE2340:("EnFsn_GetShopItemIds",),
|
||||
0x80AE2438:("EnFsn_SpawnShopItems",),
|
||||
0x80AE2524:("EnFsn_EndInteraction",),
|
||||
0x80AE25D4:("EnFsn_TestEndInteraction",),
|
||||
0x80AE2670:("EnFsn_TestCancelOption",),
|
||||
0x80AE26D4:("EnFsn_UpdateCursorPos",),
|
||||
0x80AE2760:("EnFsn_FacingShopkeeperDialogResult",),
|
||||
0x80AE28B0:("EnFsn_HasPlayerSelectedItem",),
|
||||
0x80AE2974:("EnFsn_UpdateJoystickInputState",),
|
||||
0x80AE2A98:("EnFsn_PositionSelectedItem",),
|
||||
0x80AE2B44:("EnFsn_TakeItemOffShelf",),
|
||||
0x80AE2BE0:("EnFsn_ReturnItemToShelf",),
|
||||
0x80AE2C6C:("EnFsn_UpdateItemSelectedProperty",),
|
||||
0x80AE2CFC:("EnFsn_UpdateCursorAnim",),
|
||||
0x80AE2DC8:("EnFsn_UpdateStickDirectionPromptAnim",),
|
||||
0x80AE2F78:("EnFsn_InitShop",),
|
||||
0x80AE30F8:("EnFsn_Idle",),
|
||||
0x80AE32D4:("EnFsn_Haggle",),
|
||||
0x80AE3474:("EnFsn_BeginInteraction",),
|
||||
0x80AE352C:("EnFsn_StartBuying",),
|
||||
0x80AE3644:("EnFsn_AskBuyOrSell",),
|
||||
0x80AE3880:("EnFsn_SetupDeterminePrice",),
|
||||
0x80AE38E0:("EnFsn_DeterminePrice",),
|
||||
0x80AE3A68:("EnFsn_MakeOffer",),
|
||||
0x80AE3BC4:("EnFsn_GiveItem",),
|
||||
0x80AE3CF0:("EnFsn_SetupResumeInteraction",),
|
||||
0x80AE3D50:("EnFsn_ResumeInteraction",),
|
||||
0x80AE3E4C:("EnFsn_ResumeShoppingInteraction",),
|
||||
0x80AE3F40:("EnFsn_LookToShelf",),
|
||||
0x80AE4028:("EnFsn_BrowseShelf",),
|
||||
0x80AE4120:("EnFsn_LookToShopkeeperFromShelf",),
|
||||
0x80AE41FC:("EnFsn_HandleCanPlayerBuyItem",),
|
||||
0x80AE4424:("EnFsn_SetupEndInteraction",),
|
||||
0x80AE44DC:("EnFsn_SelectItem",),
|
||||
0x80AE45C4:("EnFsn_PlayerCannotBuy",),
|
||||
0x80AE4638:("EnFsn_AskCanBuyMore",),
|
||||
0x80AE4828:("EnFsn_AskCanBuyAterRunningOutOfItems",),
|
||||
0x80AE4A1C:("EnFsn_FaceShopkeeperSelling",),
|
||||
0x80AE4B20:("EnFsn_SetupEndInteractionImmediately",),
|
||||
0x80AE4B70:("EnFsn_IdleBackroom",),
|
||||
0x80AE4BF4:("EnFsn_ConverseBackroom",),
|
||||
0x80AE4CD8:("EnFsn_GetCutscenes",),
|
||||
0x80AE4D28:("EnFsn_Blink",),
|
||||
0x80AE4DB0:("EnFsn_Init",),
|
||||
0x80AE4F10:("EnFsn_Destroy",),
|
||||
0x80AE4F3C:("EnFsn_Update",),
|
||||
0x80AE502C:("func_80AE502C",),
|
||||
0x80AE52A4:("func_80AE52A4",),
|
||||
0x80AE5440:("func_80AE5440",),
|
||||
0x80AE57E8:("func_80AE57E8",),
|
||||
0x80AE5910:("func_80AE5910",),
|
||||
0x80AE502C:("EnFsn_DrawCursor",),
|
||||
0x80AE52A4:("EnFsn_DrawTextRec",),
|
||||
0x80AE5440:("EnFsn_DrawStickDirectionPrompts",),
|
||||
0x80AE57E8:("EnFsn_OverrideLimbDraw",),
|
||||
0x80AE5910:("EnFsn_PostLimbDraw",),
|
||||
0x80AE5990:("EnFsn_Draw",),
|
||||
0x80AE6130:("func_80AE6130",),
|
||||
0x80AE615C:("func_80AE615C",),
|
||||
|
@ -14679,11 +14679,11 @@
|
||||
0x80AE1B14:("enDs2nOverlayRelocations","u32","[20]",0x50),
|
||||
0x80AE1B6C:("enDs2nOverlayInfoOffset","u32","",0x4),
|
||||
0x80AE5B00:("En_Fsn_InitVars","UNK_TYPE1","",0x1),
|
||||
0x80AE5B20:("D_80AE5B20","UNK_TYPE1","",0x1),
|
||||
0x80AE5B20:("sAnimations","UNK_TYPE1","",0x1),
|
||||
0x80AE5BF0:("D_80AE5BF0","UNK_TYPE1","",0x1),
|
||||
0x80AE5C1C:("D_80AE5C1C","UNK_TYPE4","",0x4),
|
||||
0x80AE5C1C:("sShopItemPositions","UNK_TYPE4","",0x4),
|
||||
0x80AE5C40:("D_80AE5C40","UNK_TYPE4","",0x4),
|
||||
0x80AE5C4C:("D_80AE5C4C","UNK_TYPE1","",0x1),
|
||||
0x80AE5C4C:("sEyeTextures","UNK_TYPE1","",0x1),
|
||||
0x80AE5C60:("jtbl_D_80AE5C60","UNK_PTR","",0x4),
|
||||
0x80AE5CC4:("jtbl_D_80AE5CC4","UNK_PTR","",0x4),
|
||||
0x80AE5D0C:("D_80AE5D0C","f32","",0x4),
|
||||
|
Loading…
Reference in New Issue
Block a user