mirror of https://github.com/zeldaret/mm.git
parent
1789cee1c9
commit
a35f091505
|
@ -2725,17 +2725,17 @@ Actor* func_ActorCategoryIterateById(GlobalContext* globalCtx, struct Actor* act
|
|||
void func_8013D9C8(GlobalContext* globalCtx, s16* arg1, s16* arg2, UNK_TYPE arg3);
|
||||
u8 func_8013DB90(GlobalContext* globalCtx, UNK_PTR arg1, f32 arg2);
|
||||
// void func_8013DC40(void);
|
||||
// void func_8013DCE0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9, UNK_TYPE1 param_10);
|
||||
// void func_8013DE04(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_8013DF3C(void);
|
||||
void func_8013DCE0(GlobalContext* globalCtx, Vec3f* param_2, Actor* actor, EnDno_ActorUnkStruct* param_4, Path* param_5, s32 param_6, s32 param_7, s32 param_8, s32 param_9, s32 param_10);
|
||||
void func_8013DE04(GlobalContext* globalCtx, EnDno_ActorUnkStruct* arg1, EnDno_ActorUnkFunc arg2, EnDno_ActorUnkFunc arg3, EnDno_ActorUnkFunc arg4, EnDno_ActorUnkFunc arg5);
|
||||
s32 func_8013DF3C(GlobalContext* globalCtx, EnDno_ActorUnkStruct* arg1);
|
||||
// void func_8013E054(void);
|
||||
// void func_8013E07C(void);
|
||||
// void func_8013E0A4(void);
|
||||
s32 func_8013E0A4(GlobalContext* globalCtx, EnDno_ActorUnkStruct* arg1);
|
||||
void func_8013E1C8(SkelAnime* skelAnime, struct_80B8E1A8 animations[], s32 animationIndex, s32* actorAnimationIndex);
|
||||
s32 func_8013E2D4(Actor* actor, s16 arg1, s32 arg2, s32 arg3);
|
||||
s32 func_8013E3B8(Actor* actor, s16 cutscenes[], s32 cutsceneArrayLen);
|
||||
// void func_8013E4B0(void);
|
||||
// void func_8013E5CC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
s32 func_8013E5CC(Vec3f* param_1, Vec3s* param_2, Vec3f* param_3, Vec3f* param_4, Vec3f* param_5, Vec3f* param_6);
|
||||
// void func_8013E640(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_8013E748(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_8013E7C0(void);
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#define ALL_EQUIP_VALUE(equip) ((gSaveContext.inventory.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_EQUIP_VALUE(equip) ((gSaveContext.equips.equipment & gEquipMasks[equip]) >> gEquipShifts[equip])
|
||||
#define CUR_UPG_VALUE(upg) ((gSaveContext.inventory.upgrades & gUpgradeMasks[upg]) >> gUpgradeShifts[upg])
|
||||
#define CHECK_QUEST_ITEM(item) (((void)0, gSaveContext.inventory.questItems) & gBitFlags[item])
|
||||
|
||||
#define CAPACITY(upg, value) gUpgradeCapacities[upg][value]
|
||||
#define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg) - 4)
|
||||
|
|
|
@ -4063,7 +4063,7 @@ extern Gfx D_04077480[];
|
|||
extern UNK_TYPE D_04079B10;
|
||||
extern UNK_TYPE D_0407AB10;
|
||||
extern UNK_TYPE D_0407AFB0;
|
||||
extern UNK_TYPE D_0407D590;
|
||||
extern Gfx D_0407D590[];
|
||||
extern UNK_TYPE D_0407D650;
|
||||
extern UNK_TYPE D_0407F218;
|
||||
extern UNK_TYPE D_040815D0;
|
||||
|
|
|
@ -76,6 +76,31 @@ typedef struct {
|
|||
/* 0x3A */ s16 unk3A;
|
||||
} ActorEnTest20C; // size = 0x3C
|
||||
|
||||
struct EnDno_ActorUnkStruct;
|
||||
typedef s32 (*EnDno_ActorUnkFunc)(struct GlobalContext*, struct EnDno_ActorUnkStruct*);
|
||||
|
||||
typedef struct EnDno_ActorUnkStruct {
|
||||
/* 0x00 */ Vec3f unk_00;
|
||||
/* 0x0C */ UNK_TYPE1 unk_0C[0x4];
|
||||
/* 0x10 */ s16 unk_10;
|
||||
/* 0x12 */ UNK_TYPE1 unk_12[0xA];
|
||||
/* 0x1C */ u8 unk_1C;
|
||||
/* 0x1D */ u8 unk_1D;
|
||||
/* 0x20 */ Vec3f unk_20;
|
||||
/* 0x2C */ Vec3f unk_2C;
|
||||
/* 0x38 */ UNK_TYPE1 unk_38[0x10];
|
||||
/* 0x48 */ struct Actor* unk_48;
|
||||
/* 0x4C */ f32 unk_4C;
|
||||
/* 0x50 */ f32 unk_50;
|
||||
/* 0x54 */ s16 unk_54;
|
||||
/* 0x56 */ s16 unk_56;
|
||||
/* 0x58 */ s32 unk_58;
|
||||
/* 0x5C */ EnDno_ActorUnkFunc unk_5C;
|
||||
/* 0x60 */ EnDno_ActorUnkFunc unk_60;
|
||||
/* 0x64 */ EnDno_ActorUnkFunc unk_64;
|
||||
/* 0x68 */ EnDno_ActorUnkFunc unk_68;
|
||||
} EnDno_ActorUnkStruct; // size >= 0x6C
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 id;
|
||||
/* 0x02 */ u8 type;
|
||||
|
|
|
@ -37,6 +37,7 @@ typedef enum {
|
|||
/* 0x3B */ ITEM_MASK_GARO,
|
||||
/* 0x3C */ ITEM_MASK_ROMANIS,
|
||||
/* 0x46 */ ITEM_MASK_BREMEN = 0x46,
|
||||
/* 0x48 */ ITEM_MASK_SCENTS = 0x48,
|
||||
/* 0x4D */ ITEM_SWORD_KOKIRI = 0x4D,
|
||||
/* 0x4E */ ITEM_SWORD_RAZOR,
|
||||
/* 0x4F */ ITEM_SWORD_GILDED,
|
||||
|
|
3
spec
3
spec
|
@ -3206,8 +3206,7 @@ beginseg
|
|||
name "ovl_En_Dno"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Dno/z_en_dno.o"
|
||||
include "build/data/ovl_En_Dno/ovl_En_Dno.data.o"
|
||||
include "build/data/ovl_En_Dno/ovl_En_Dno.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Dno/ovl_En_Dno_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -11,7 +11,9 @@ typedef struct BgCraceMovebg {
|
|||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_144[0x18];
|
||||
/* 0x015C */ BgCraceMovebgActionFunc actionFunc;
|
||||
/* 0x0160 */ char unk_160[0x34];
|
||||
/* 0x0160 */ char unk_160[0x10];
|
||||
/* 0x0170 */ s32 unk_170;
|
||||
/* 0x0174 */ char unk_174[0x20];
|
||||
} BgCraceMovebg; // size = 0x194
|
||||
|
||||
extern const ActorInit Bg_Crace_Movebg_InitVars;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,12 +5,55 @@
|
|||
|
||||
struct EnDno;
|
||||
|
||||
typedef void (*EnDnoActionFunc)(struct EnDno* this, GlobalContext* globalCtx);
|
||||
typedef void (*EnDnoActionFunc)(struct EnDno*, GlobalContext*);
|
||||
|
||||
#define ENDNO_GET_F(thisx) (u32)((thisx)->params & 0xF)
|
||||
#define ENDNO_GET_7F(thisx) ((thisx)->params & 0x7F)
|
||||
#define ENDNO_GET_7F0(thisx) (((thisx)->params >> 4) & 0x7F)
|
||||
#define ENDNO_GET_3F80(thisx) (((thisx)->params >> 7) & 0x7F)
|
||||
#define ENDNO_GET_C000(thisx) (((thisx)->params >> 0xE) & 0x3)
|
||||
|
||||
enum {
|
||||
/* 0x0 */ ENDNO_GET_F_0,
|
||||
/* 0x1 */ ENDNO_GET_F_1,
|
||||
};
|
||||
|
||||
enum {
|
||||
/* 0x0 */ ENDNO_GET_C000_0,
|
||||
/* 0x1 */ ENDNO_GET_C000_1,
|
||||
};
|
||||
|
||||
typedef struct EnDno {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ EnDnoActionFunc actionFunc;
|
||||
/* 0x0148 */ char unk_144[0x324];
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ EnDnoActionFunc actionFunc;
|
||||
/* 0x148 */ SkelAnime skelAnime;
|
||||
/* 0x18C */ ColliderCylinder collider;
|
||||
/* 0x1D8 */ Vec3s jointTable[28];
|
||||
/* 0x280 */ Vec3s morphTable[28];
|
||||
/* 0x328 */ s32 unk_328;
|
||||
/* 0x32C */ s32 unk_32C;
|
||||
/* 0x330 */ UNK_TYPE1 unk_330[0x4];
|
||||
/* 0x334 */ Vec3f unk_334;
|
||||
/* 0x340 */ EnDno_ActorUnkStruct unk_340;
|
||||
/* 0x3AC */ s16 unk_3AC;
|
||||
/* 0x3AE */ s16 unk_3AE;
|
||||
/* 0x3B0 */ u16 unk_3B0;
|
||||
/* 0x3B2 */ UNK_TYPE1 unk_3B2[0xC];
|
||||
/* 0x3BE */ s16 unk_3BE;
|
||||
/* 0x3C0 */ f32 unk_3C0;
|
||||
/* 0x3C4 */ UNK_TYPE1 unk_3C4[0x78];
|
||||
/* 0x43C */ LightNode* lightNode;
|
||||
/* 0x440 */ LightInfo lightInfo;
|
||||
/* 0x44E */ u8 unk_44E;
|
||||
/* 0x44F */ UNK_TYPE1 unk_44F[0x3];
|
||||
/* 0x452 */ s16 unk_452;
|
||||
/* 0x454 */ f32 unk_454;
|
||||
/* 0x458 */ s32 unk_458;
|
||||
/* 0x45C */ s16 unk_45C;
|
||||
/* 0x460 */ Actor* unk_460;
|
||||
/* 0x464 */ u16 unk_464;
|
||||
/* 0x466 */ s16 unk_466;
|
||||
/* 0x468 */ u8 unk_468;
|
||||
} EnDno; // size = 0x46C
|
||||
|
||||
extern const ActorInit En_Dno_InitVars;
|
||||
|
|
|
@ -1003,7 +1003,7 @@ void EnFsn_GiveItem(EnFsn* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void EnFsn_SetupResumeInteraction(EnFsn* this, GlobalContext* globalCtx) {
|
||||
if (((void)0, gSaveContext.inventory.questItems) & gBitFlags[18]) {
|
||||
if (CHECK_QUEST_ITEM(18)) {
|
||||
if (globalCtx->msgCtx.unk120B1 == 0) {
|
||||
EnFsn_HandleSetupResumeInteraction(this, globalCtx);
|
||||
}
|
||||
|
@ -1183,7 +1183,7 @@ void EnFsn_SetupEndInteraction(EnFsn* this, GlobalContext* globalCtx) {
|
|||
u8 talkState = func_80152498(&globalCtx->msgCtx);
|
||||
|
||||
if ((talkState == 5 || talkState == 6) && func_80147624(globalCtx)) {
|
||||
if (((void)0, gSaveContext.inventory.questItems) & gBitFlags[18]) {
|
||||
if (CHECK_QUEST_ITEM(18)) {
|
||||
if (globalCtx->msgCtx.unk120B1 == 0) {
|
||||
EnFsn_EndInteraction(this, globalCtx);
|
||||
} else {
|
||||
|
@ -1255,7 +1255,7 @@ void EnFsn_AskCanBuyMore(EnFsn* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
} else if ((talkState == 5 || talkState == 6) && func_80147624(globalCtx)) {
|
||||
if (((void)0, gSaveContext.inventory.questItems) & gBitFlags[18]) {
|
||||
if (CHECK_QUEST_ITEM(18)) {
|
||||
if (globalCtx->msgCtx.unk120B1 == 0) {
|
||||
EnFsn_EndInteraction(this, globalCtx);
|
||||
} else {
|
||||
|
@ -1302,7 +1302,7 @@ void EnFsn_AskCanBuyAterRunningOutOfItems(EnFsn* this, GlobalContext* globalCtx)
|
|||
}
|
||||
}
|
||||
} else if ((talkState == 5 || talkState == 6) && func_80147624(globalCtx)) {
|
||||
if (((void)0, gSaveContext.inventory.questItems) & gBitFlags[18]) {
|
||||
if (CHECK_QUEST_ITEM(18)) {
|
||||
if (globalCtx->msgCtx.unk120B1 == 0) {
|
||||
EnFsn_EndInteraction(this, globalCtx);
|
||||
} else {
|
||||
|
|
|
@ -439,7 +439,7 @@ void EnMa4_HandlePlayerChoice(EnMa4* this, GlobalContext* globalCtx) {
|
|||
func_8019F208();
|
||||
func_801518B0(globalCtx, 0x334E, &this->actor);
|
||||
this->textId = 0x334E;
|
||||
if ((aux = gSaveContext.inventory.questItems) & gBitFlags[0xE]) {
|
||||
if (CHECK_QUEST_ITEM(14)) {
|
||||
func_80151BB4(globalCtx, 0x1C);
|
||||
}
|
||||
func_80151BB4(globalCtx, 5);
|
||||
|
@ -611,7 +611,7 @@ void EnMa4_ChooseNextDialogue(EnMa4* this, GlobalContext* globalCtx) {
|
|||
EnMa4_SetFaceExpression(this, 0, 0);
|
||||
|
||||
// Check if player has Epona's song
|
||||
if ((aux = gSaveContext.inventory.questItems) & gBitFlags[0xE]) {
|
||||
if (CHECK_QUEST_ITEM(14)) {
|
||||
func_801518B0(globalCtx, 0x334C, &this->actor);
|
||||
this->textId = 0x334C;
|
||||
} else {
|
||||
|
@ -624,7 +624,7 @@ void EnMa4_ChooseNextDialogue(EnMa4* this, GlobalContext* globalCtx) {
|
|||
|
||||
case 0x3358:
|
||||
if ((gSaveContext.playerForm != PLAYER_FORM_HUMAN) ||
|
||||
!((aux = gSaveContext.inventory.questItems) & gBitFlags[0xE])) {
|
||||
!(CHECK_QUEST_ITEM(14))) {
|
||||
func_801518B0(globalCtx, 0x335C, &this->actor);
|
||||
this->textId = 0x335C;
|
||||
func_80151BB4(globalCtx, 5);
|
||||
|
@ -664,7 +664,7 @@ void EnMa4_DialogueHandler(EnMa4* this, GlobalContext* globalCtx) {
|
|||
case 6: // End conversation
|
||||
if (func_80147624(globalCtx) != 0) {
|
||||
if ((globalCtx->msgCtx.unk120B1 == 0) ||
|
||||
(((temp_v0 = gSaveContext.inventory.questItems) & gBitFlags[0x12]) == 0)) {
|
||||
!CHECK_QUEST_ITEM(18)) {
|
||||
EnMa4_SetupWait(this);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1833,6 +1833,26 @@ D_06002848 = 0x06002848;
|
|||
|
||||
D_06007CA4 = 0x06007CA4;
|
||||
D_0600E1F8 = 0x0600E1F8;
|
||||
D_801C20C0 = 0x801C20C0;
|
||||
D_06000470 = 0x06000470;
|
||||
D_060008F0 = 0x060008F0;
|
||||
D_06000F6C = 0x06000F6C;
|
||||
D_06001A50 = 0x06001A50;
|
||||
D_06002530 = 0x06002530;
|
||||
D_06003320 = 0x06003320;
|
||||
D_060036D0 = 0x060036D0;
|
||||
D_060041CC = 0x060041CC;
|
||||
D_06004DD8 = 0x06004DD8;
|
||||
D_06005F98 = 0x06005F98;
|
||||
D_06006488 = 0x06006488;
|
||||
D_060073E4 = 0x060073E4;
|
||||
D_060077A8 = 0x060077A8;
|
||||
D_06008324 = 0x06008324;
|
||||
D_06008AE4 = 0x06008AE4;
|
||||
D_06009100 = 0x06009100;
|
||||
D_060051E4 = 0x060051E4;
|
||||
D_06005E20 = 0x06005E20;
|
||||
D_06006F84 = 0x06006F84;
|
||||
|
||||
// ovl_En_Dnp
|
||||
|
||||
|
|
Loading…
Reference in New Issue