* En_Dno

* NBS

* PR

* PR
This commit is contained in:
Maide
2021-08-08 19:05:52 +01:00
committed by GitHub
parent 1789cee1c9
commit a35f091505
12 changed files with 1061 additions and 70 deletions
@@ -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
+47 -4
View File
@@ -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;
+4 -4
View File
@@ -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 {
+4 -4
View File
@@ -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);
}
}