mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Merge remote-tracking branch 'upstream/master' into Majora
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
#ifndef ALLOCA_H
|
||||
#define ALLOCA_H
|
||||
|
||||
void* alloca(u32);
|
||||
#define alloca __builtin_alloca
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef BGM_H
|
||||
#define BGM_H
|
||||
|
||||
#define NA_BGM_STOP 0x100000FF
|
||||
|
||||
#endif
|
||||
+30
-30
@@ -139,22 +139,22 @@ void StackCheck_Cleanup(StackEntry* entry);
|
||||
StackStatus StackCheck_GetState(StackEntry* entry);
|
||||
u32 StackCheck_CheckAll(void);
|
||||
u32 StackCheck_Check(StackEntry* entry);
|
||||
// void GfxPrint_InitDlist(void);
|
||||
// void GfxPrint_SetColor(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
|
||||
// void GfxPrint_SetPosPx(void);
|
||||
// void GfxPrint_SetPos(void);
|
||||
void GfxPrint_InitDlist(GfxPrint*);
|
||||
void GfxPrint_SetColor(GfxPrint*, u32, u32, u32, u32);
|
||||
void GfxPrint_SetPosPx(GfxPrint*, s32, s32);
|
||||
void GfxPrint_SetPos(GfxPrint*, s32, s32);
|
||||
void GfxPrint_SetBasePosPx(GfxPrint* this, s32 param_2, s32 param_3);
|
||||
void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c);
|
||||
void GfxPrint_PrintChar(GfxPrint* this, u8 c);
|
||||
// void GfxPrint_PrintStringWithSize(void);
|
||||
// void GfxPrint_PrintString(void);
|
||||
// void GfxPrint_Callback(void);
|
||||
// void GfxPrint_Init(void);
|
||||
// void GfxPrint_Destroy(void);
|
||||
// void GfxPrint_Open(void);
|
||||
// void GfxPrint_Close(void);
|
||||
// void GfxPrint_VPrintf(void);
|
||||
// void GfxPrint_Printf(void);
|
||||
void GfxPrint_PrintStringWithSize(GfxPrint*, const void*, size_t, size_t);
|
||||
void GfxPrint_PrintString(GfxPrint*, const char*);
|
||||
GfxPrint* GfxPrint_Callback(GfxPrint*, const char*, size_t);
|
||||
void GfxPrint_Init(GfxPrint*);
|
||||
void GfxPrint_Destroy(GfxPrint*);
|
||||
void GfxPrint_Open(GfxPrint*, Gfx*);
|
||||
Gfx* GfxPrint_Close(GfxPrint*);
|
||||
void GfxPrint_VPrintf(GfxPrint*, const char*, va_list);
|
||||
void GfxPrint_Printf(GfxPrint*, const char*, ...);
|
||||
// void MtxConv_F2L(void);
|
||||
// void MtxConv_L2F(void);
|
||||
void __assert(const char* file, u32 lineNum);
|
||||
@@ -807,8 +807,8 @@ s32 func_800B863C(Actor* actor, GlobalContext* globalCtx);
|
||||
u32 func_800B867C(Actor* actor, GlobalContext* globalCtx);
|
||||
UNK_TYPE4 func_800B86C8(Actor* actor1, GlobalContext* globalCtx, Actor* actor2);
|
||||
s32 func_800B8708(GlobalContext* globalCtx);
|
||||
// void func_800B8718(void);
|
||||
// void func_800B874C(void);
|
||||
s32 func_800B8718(Actor* actor, GlobalContext* globalCtx);
|
||||
void func_800B874C(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3);
|
||||
// void func_800B8804(void);
|
||||
// void func_800B882C(void);
|
||||
// void func_800B886C(void);
|
||||
@@ -887,13 +887,13 @@ Actor* func_800BC444(GlobalContext* globalCtx, Actor* actor, f32 arg2);
|
||||
// void func_800BC4EC(void);
|
||||
// void func_800BC5B8(void);
|
||||
s32 func_800BC5EC(GlobalContext* globalCtx, Actor* actor);
|
||||
void func_800BC620(Vec3f* arg0, Vec3f* arg1, UNK_TYPE arg2, GlobalContext* globalCtx);
|
||||
void func_800BC620(Vec3f* arg0, Vec3f* arg1, u8 arg2, GlobalContext* globalCtx);
|
||||
// void func_800BC770(void);
|
||||
// void func_800BC7D8(void);
|
||||
// void func_800BC848(void);
|
||||
// void func_800BC8B8(void);
|
||||
// void func_800BCB50(void);
|
||||
void func_800BCB70(Actor* actor, s16 arg1, s16 arg2, s16 arg3, s16 arg4);
|
||||
void func_800BCB70(Actor* actor, u16 arg1, u16 arg2, s16 arg3, s16 arg4);
|
||||
void func_800BCBF4(Vec3f* uParm1, GlobalContext* globalCtx);
|
||||
void func_800BCC68(Vec3f* param_1, GlobalContext* globalCtx);
|
||||
UNK_RET func_800BCCDC(Vec3s* points, u8 pathcount, Vec3f* pos1, Vec3f* pos2, UNK_TYPE parm5);
|
||||
@@ -1762,13 +1762,13 @@ void func_800F9824(GlobalContext* globalCtx, EnvironmentContext* envCtx, View* v
|
||||
// void func_800FA39C(void);
|
||||
// void func_800FA3C4(void);
|
||||
// void func_800FA9FC(void);
|
||||
// void func_800FAAB4(void);
|
||||
void func_800FAAB4(GlobalContext* globalCtx, u8 arg1);
|
||||
// void func_800FAC20(void);
|
||||
// void func_800FAF74(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5);
|
||||
// void func_800FB010(void);
|
||||
void func_800FB320(GlobalContext* globalCtx, u8 param_2);
|
||||
// void func_800FB388(void);
|
||||
// void func_800FB758(void);
|
||||
void func_800FB758(GlobalContext* globalCtx);
|
||||
// void func_800FB9B4(void);
|
||||
// void func_800FBCBC(void);
|
||||
// void func_800FBDEC(void);
|
||||
@@ -1814,7 +1814,7 @@ void func_800FE658(f32 arg0);
|
||||
// void func_800FEA50(void);
|
||||
void func_800FEAB0(void);
|
||||
// void func_800FEAC0(void);
|
||||
// void func_800FEAF4(void);
|
||||
void func_800FEAF4(EnvironmentContext* envCtx);
|
||||
void* Lib_MemCpy(void* dest, void* src, size_t size);
|
||||
void* Lib_MemSet(void* buffer, s32 value, size_t size);
|
||||
f32 Math_CosS(s16 angle);
|
||||
@@ -2127,7 +2127,7 @@ void func_8010E9F0(s16 arg0, s16 arg1);
|
||||
// void func_8010EB50(void);
|
||||
// void func_8010EBA0(void);
|
||||
// void func_8010EC54(void);
|
||||
// void func_8010EE74(void);
|
||||
void func_8010EE74(GlobalContext* globalCtx, s32 day);
|
||||
void Interface_ChangeAlpha(u16 param_1);
|
||||
// void func_8010EF9C(void);
|
||||
// void func_8010F0D4(void);
|
||||
@@ -2142,7 +2142,7 @@ void func_80112B40(GlobalContext* globalCtx, s32 arg1);
|
||||
u32 Item_Give(GlobalContext* globalCtx, u8 param_2);
|
||||
// void func_801143CC(void);
|
||||
UNK_TYPE func_80114978(UNK_TYPE arg0);
|
||||
// void func_801149A0(void);
|
||||
void func_801149A0(s32 arg0, s16 arg1);
|
||||
// void func_80114A9C(void);
|
||||
// void func_80114B84(void);
|
||||
// void func_80114CA0(void);
|
||||
@@ -2820,8 +2820,8 @@ void Sram_IncrementDay(void);
|
||||
u32 Sram_CalcChecksum(u8* data, u32 length);
|
||||
// void func_80144628(void);
|
||||
// void Sram_GenerateRandomSaveFields(void);
|
||||
// void func_80144890(void);
|
||||
// void func_80144968(void);
|
||||
void func_80144890(void);
|
||||
void Sram_InitDebugSave(void);
|
||||
// void func_80144A94(void);
|
||||
// void func_80144E78(void);
|
||||
// void func_8014546C(void);
|
||||
@@ -2879,7 +2879,7 @@ void func_80150D08(GlobalContext* globalCtx, u32 uParm2);
|
||||
// void func_801514B0(void);
|
||||
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_80151A68(GlobalContext* globalCtx, u16 textId);
|
||||
void func_80151BB4(GlobalContext* globalCtx, u32 uParm2);
|
||||
// void func_80151C9C(void);
|
||||
// void func_80151DA4(void);
|
||||
@@ -3058,7 +3058,7 @@ void func_80169EFC(GlobalContext* globalCtx);
|
||||
s32 FrameAdvance_IsEnabled(GlobalContext* globalCtx);
|
||||
// UNK_TYPE4 func_8016A02C(s32 param_1, s32 param_2, s16* param_3);
|
||||
// void func_8016A0AC(void);
|
||||
// void func_8016A168(void);
|
||||
s32 func_8016A168(void);
|
||||
// void func_8016A178(void);
|
||||
// void func_8016A268(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE1 param_6);
|
||||
void Play_Init(GameState* gameState);
|
||||
@@ -3792,7 +3792,7 @@ void func_8019AEC0(UNK_PTR param_1, UNK_PTR param_2);
|
||||
// void func_8019B38C(void);
|
||||
// void func_8019B3D0(void);
|
||||
// void func_8019B4B8(void);
|
||||
// void func_8019B544(void);
|
||||
void func_8019B544(u16 arg0);
|
||||
// void func_8019B568(void);
|
||||
// void func_8019B5AC(void);
|
||||
// void func_8019B5EC(void);
|
||||
@@ -3804,7 +3804,7 @@ void func_8019AEC0(UNK_PTR param_1, UNK_PTR param_2);
|
||||
// void func_8019C1D0(void);
|
||||
// void func_8019C268(void);
|
||||
// void func_8019C2E4(void);
|
||||
// void func_8019C300(void);
|
||||
void func_8019C300(s32 arg0);
|
||||
// void func_8019C398(void);
|
||||
// void func_8019C5A0(void);
|
||||
// void func_8019C8D8(void);
|
||||
@@ -3871,7 +3871,7 @@ void func_8019FE74(f32* arg0, f32 arg1, UNK_TYPE arg2);
|
||||
// void func_8019FF9C(void);
|
||||
// void func_801A0048(void);
|
||||
// void func_801A00EC(void);
|
||||
// void func_801A0124(void);
|
||||
void func_801A0124(Vec3f* pos, u8 arg1);
|
||||
// void func_801A0184(void);
|
||||
// void func_801A01C4(void);
|
||||
void func_801A0204(UNK_TYPE);
|
||||
@@ -4014,7 +4014,7 @@ void func_801A7794(u32 param_1, u32 param_2, u32 param_3);
|
||||
// void func_801A7B10(void);
|
||||
// void func_801A7D04(void);
|
||||
// void func_801A7D84(void);
|
||||
void func_801A89A8(s32 arg0);
|
||||
void Audio_QueueSeqCmd(u32 arg0);
|
||||
// void func_801A89D0(void);
|
||||
s32 func_801A8A50(s32 param1);
|
||||
// void func_801A8ABC(void);
|
||||
|
||||
@@ -26,6 +26,17 @@
|
||||
(curState)->nextGameStateInit = (GameStateFunc)newInit; \
|
||||
(curState)->nextGameStateSize = sizeof(newStruct)
|
||||
|
||||
#define SET_FULLSCREEN_VIEWPORT(view) \
|
||||
{ \
|
||||
Viewport viewport; \
|
||||
viewport.bottomY = SCREEN_HEIGHT; \
|
||||
viewport.rightX = SCREEN_WIDTH; \
|
||||
viewport.topY = 0; \
|
||||
viewport.leftX = 0; \
|
||||
View_SetViewport(view, &viewport); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
#define PLAYER ((Player*)globalCtx->actorCtx.actorList[ACTORCAT_PLAYER].first)
|
||||
|
||||
#define FIRST_ENEMY ((Actor*)globalCtx->actorCtx.actorList[ACTORCAT_ENEMY].first)
|
||||
@@ -38,6 +49,7 @@
|
||||
#define CURRENT_DAY (((void)0, gSaveContext.day) % 5)
|
||||
|
||||
#define CLOCK_TIME(hr, min) ((s32)(((hr) * 60 + (min)) * 0x10000 / (24 * 60)))
|
||||
#define CLOCK_TIME_MINUTE (CLOCK_TIME(0, 1))
|
||||
|
||||
#define SLOT(item) gItemSlots[item]
|
||||
#define AMMO(item) gSaveContext.inventory.ammo[SLOT(item)]
|
||||
@@ -56,6 +68,7 @@
|
||||
#define TAKE_EQUIPPED_ITEM(equip) (gSaveContext.equips.equipment = ((((void)0, gSaveContext.equips.equipment) & (gEquipNegMasks[equip])) | (u16)(0 << gEquipShifts[equip])))
|
||||
#define CUR_FORM_EQUIP(button) (gSaveContext.equips.buttonItems[gSaveContext.playerForm == PLAYER_FORM_HUMAN ? 0 : gSaveContext.playerForm][button])
|
||||
#define CHECK_QUEST_ITEM(item) (((void)0, gSaveContext.inventory.questItems) & gBitFlags[item])
|
||||
#define REMOVE_QUEST_ITEM(item) (gSaveContext.inventory.questItems = (((void)0, gSaveContext.inventory.questItems) & (-1 - gBitFlags[item])))
|
||||
|
||||
#define CAPACITY(upg, value) gUpgradeCapacities[upg][value]
|
||||
#define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg) - 4)
|
||||
|
||||
+12
-6
@@ -910,7 +910,7 @@ extern UNK_TYPE1 D_801BA550;
|
||||
// extern UNK_TYPE1 D_801BB100;
|
||||
// extern UNK_TYPE2 D_801BB124;
|
||||
// extern UNK_TYPE2 D_801BB128;
|
||||
// extern UNK_TYPE1 D_801BB12C;
|
||||
extern u8 D_801BB12C;
|
||||
// extern UNK_TYPE1 D_801BB130;
|
||||
extern cutscene_update_func sCsStateHandlers1[5];
|
||||
extern cutscene_update_func sCsStateHandlers2[5];
|
||||
@@ -949,7 +949,7 @@ extern GameStateOverlay daytelopGameStateInfo;
|
||||
// extern UNK_TYPE2 D_801BDA74;
|
||||
// extern UNK_TYPE2 D_801BDA78;
|
||||
// extern UNK_TYPE2 D_801BDA7C;
|
||||
// extern UNK_TYPE4 D_801BDA9C;
|
||||
extern s32 D_801BDA9C;
|
||||
extern UNK_TYPE4 D_801BDAA0;
|
||||
// extern UNK_TYPE4 D_801BDAA4;
|
||||
// extern UNK_TYPE2 D_801BDAA8;
|
||||
@@ -977,7 +977,7 @@ extern u8 kanfontOrdering[92];
|
||||
// extern UNK_TYPE1 D_801BDBA0;
|
||||
// extern UNK_TYPE1 D_801BDBA4;
|
||||
// extern UNK_TYPE1 D_801BDBA8;
|
||||
// extern UNK_TYPE1 D_801BDBB0;
|
||||
extern u8 D_801BDBB0;
|
||||
// extern UNK_TYPE1 D_801BDBB4;
|
||||
// extern UNK_TYPE1 D_801BDBB8;
|
||||
// extern UNK_TYPE1 D_801BDBBC;
|
||||
@@ -3310,7 +3310,7 @@ extern s16 D_801F4E4C;
|
||||
extern f32 D_801F4E70;
|
||||
// extern UNK_TYPE1 D_801F4E74;
|
||||
// extern UNK_TYPE1 D_801F4E78;
|
||||
// extern UNK_TYPE1 D_801F4E7A;
|
||||
extern s16 D_801F4E7A;
|
||||
// extern UNK_TYPE1 D_801F4E80;
|
||||
// extern UNK_TYPE1 D_801F4EE0;
|
||||
// extern UNK_TYPE1 D_801F4EE8;
|
||||
@@ -3952,8 +3952,14 @@ extern UNK_TYPE D_0400E3D8;
|
||||
extern UNK_TYPE D_0400E408;
|
||||
extern UNK_TYPE D_0400E410;
|
||||
extern UNK_TYPE D_0400E418;
|
||||
extern UNK_TYPE D_0400EB7C;
|
||||
extern UNK_TYPE D_040117A8;
|
||||
extern CollisionHeader D_0400E710; // Pink Deku Flower collision
|
||||
extern AnimationHeader D_0400EB7C; // Deku Flower intense flutter animation
|
||||
extern Gfx D_0400ED80; // Pink Deku Flower display list
|
||||
extern SkeletonHeader D_04011518; // Pink Deku Flower skeleton
|
||||
extern AnimationHeader D_040117A8; // Deku Flower small flutter animation
|
||||
extern CollisionHeader D_040118D8; // Gold Deku Flower collision
|
||||
extern Gfx D_04011BD0; // Gold Deku Flower display list
|
||||
extern SkeletonHeader D_040127E8; // Gold Deku Flower skeleton
|
||||
extern UNK_TYPE D_04012860;
|
||||
extern UNK_TYPE D_040128BC;
|
||||
extern UNK_TYPE D_04015FA0;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "xstdio.h"
|
||||
#include "unk.h"
|
||||
|
||||
#include "bgm.h"
|
||||
#include "sfx.h"
|
||||
#include "color.h"
|
||||
#include "ichain.h"
|
||||
|
||||
+2
-1
@@ -20,7 +20,8 @@ typedef enum {
|
||||
} UpgradeType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x01 */ ITEM_BOW = 0x01,
|
||||
/* 0x00 */ ITEM_OCARINA,
|
||||
/* 0x01 */ ITEM_BOW,
|
||||
/* 0x06 */ ITEM_BOMB = 0x06,
|
||||
/* 0x07 */ ITEM_BOMBCHU,
|
||||
/* 0x08 */ ITEM_STICK,
|
||||
|
||||
+1
-3
@@ -93,9 +93,7 @@ typedef enum LightType {
|
||||
/* 0x02 */ LIGHT_POINT_GLOW
|
||||
} LightType;
|
||||
|
||||
typedef struct GlobalContext GlobalContext;
|
||||
|
||||
typedef void (*LightsBindFunc)(Lights* lights, LightParams* params, Vec3f* vec);
|
||||
typedef void (*LightsPosBindFunc)(Lights* lights, LightParams* params, GlobalContext* globalCtx);
|
||||
typedef void (*LightsPosBindFunc)(Lights* lights, LightParams* params, struct GlobalContext* globalCtx);
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -176,7 +176,7 @@ typedef struct Player {
|
||||
/* 0x386 */ u16 unk_386;
|
||||
/* 0x388 */ Actor* unk_388;
|
||||
/* 0x38C */ s16 unk_38C;
|
||||
/* 0x390 */ Actor* unk_390;
|
||||
/* 0x390 */ Actor* rideActor;
|
||||
/* 0x394 */ u8 unk_394;
|
||||
/* 0x395 */ u8 unk_395;
|
||||
/* 0x396 */ u8 unk_396;
|
||||
|
||||
@@ -704,16 +704,14 @@ beginseg
|
||||
name "ovl_select"
|
||||
compress
|
||||
include "build/src/overlays/gamestates/ovl_select/z_select.o"
|
||||
include "build/data/ovl_select/ovl_select.data.o"
|
||||
include "build/data/ovl_select/ovl_select.reloc.o"
|
||||
include "build/src/overlays/gamestates/ovl_select/ovl_select_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
name "ovl_opening"
|
||||
compress
|
||||
include "build/src/overlays/gamestates/ovl_opening/z_opening.o"
|
||||
include "build/data/ovl_opening/ovl_opening.data.o"
|
||||
include "build/data/ovl_opening/ovl_opening.reloc.o"
|
||||
include "build/src/overlays/gamestates/ovl_opening/ovl_opening_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -1182,8 +1180,7 @@ beginseg
|
||||
name "ovl_En_Rd"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Rd/z_en_rd.o"
|
||||
include "build/data/ovl_En_Rd/ovl_En_Rd.data.o"
|
||||
include "build/data/ovl_En_Rd/ovl_En_Rd.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Rd/ovl_En_Rd_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -2916,9 +2913,11 @@ beginseg
|
||||
name "ovl_En_Test4"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Test4/z_en_test4.o"
|
||||
include "build/data/ovl_En_Test4/ovl_En_Test4.data.o"
|
||||
include "build/data/ovl_En_Test4/ovl_En_Test4.bss.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_En_Test4/ovl_En_Test4_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_En_Test4/ovl_En_Test4.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -3207,8 +3206,7 @@ beginseg
|
||||
name "ovl_Obj_Etcetera"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Obj_Etcetera/z_obj_etcetera.o"
|
||||
include "build/data/ovl_Obj_Etcetera/ovl_Obj_Etcetera.data.o"
|
||||
include "build/data/ovl_Obj_Etcetera/ovl_Obj_Etcetera.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Obj_Etcetera/ovl_Obj_Etcetera_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -4486,8 +4484,7 @@ beginseg
|
||||
name "ovl_En_Zot"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Zot/z_en_zot.o"
|
||||
include "build/data/ovl_En_Zot/ovl_En_Zot.data.o"
|
||||
include "build/data/ovl_En_Zot/ovl_En_Zot.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Zot/ovl_En_Zot_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -5311,9 +5308,7 @@ beginseg
|
||||
name "ovl_En_Thiefbird"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Thiefbird/z_en_thiefbird.o"
|
||||
include "build/data/ovl_En_Thiefbird/ovl_En_Thiefbird.data.o"
|
||||
include "build/data/ovl_En_Thiefbird/ovl_En_Thiefbird.bss.o"
|
||||
include "build/data/ovl_En_Thiefbird/ovl_En_Thiefbird.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Thiefbird/ovl_En_Thiefbird_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -5523,8 +5518,7 @@ beginseg
|
||||
name "ovl_En_Ending_Hero6"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Ending_Hero6/z_en_ending_hero6.o"
|
||||
include "build/data/ovl_En_Ending_Hero6/ovl_En_Ending_Hero6.data.o"
|
||||
include "build/data/ovl_En_Ending_Hero6/ovl_En_Ending_Hero6.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Ending_Hero6/ovl_En_Ending_Hero6_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A7D84.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A89A8.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/Audio_QueueSeqCmd.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A89D0.s")
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sram_NES/func_80144890.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sram_NES/func_80144968.s")
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sram_NES/Sram_InitDebugSave.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/code/z_sram_NES/func_80144A94.s")
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@ void EnBji01_DialogueHandler(EnBji01* this, GlobalContext* globalCtx) {
|
||||
|
||||
void func_809CD634(EnBji01* this, GlobalContext* globalCtx) {
|
||||
func_801A5BD0(0x6F);
|
||||
func_801A89A8(0xE0000101);
|
||||
Audio_QueueSeqCmd(0xE0000101);
|
||||
globalCtx->nextEntranceIndex = 0x54A0; /* Termina Field from telescope */
|
||||
gSaveContext.respawn[0].entranceIndex = globalCtx->nextEntranceIndex;
|
||||
func_80169EFC(globalCtx); /* Load new entrance? */
|
||||
@@ -363,7 +363,7 @@ void EnBji01_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
case 0x4C20: /* Observatory from Termina Field telescope */
|
||||
this->actor.flags |= 0x10000;
|
||||
func_801A5BD0(0);
|
||||
func_801A89A8(0xE0000100);
|
||||
Audio_QueueSeqCmd(0xE0000100);
|
||||
this->actor.params = ENBJI01_PARAMS_LOOKED_THROUGH_TELESCOPE;
|
||||
func_809CCE98(this, globalCtx);
|
||||
break;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* File: z_en_ending_hero6.c
|
||||
* Overlay: ovl_En_Ending_Hero6
|
||||
* Description:
|
||||
*/
|
||||
|
||||
#include "z_en_ending_hero6.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
@@ -9,9 +15,40 @@ void EnEndingHero6_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnEndingHero6_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnEndingHero6_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
void func_80C23E18(EnEndingHero6* this, GlobalContext* globalCtx);
|
||||
void EnEndingHero6_InitSkelAnime(EnEndingHero6* this, s32 npcIndex);
|
||||
void EnEndingHero6_SetupIdle(EnEndingHero6* this);
|
||||
void EnEndingHero6_Idle(EnEndingHero6* this, GlobalContext* globalCtx);
|
||||
|
||||
extern FlexSkeletonHeader D_0600B0CC; // object_dt
|
||||
extern FlexSkeletonHeader D_06007908; // object_bai
|
||||
extern FlexSkeletonHeader D_06007150; // object_toryo
|
||||
extern FlexSkeletonHeader D_0600D640; // object_sdn
|
||||
extern FlexSkeletonHeader D_0600A850; // object_daiku
|
||||
|
||||
extern AnimationHeader D_06000BE0; // object_dt
|
||||
extern AnimationHeader D_060011C0; // object_bai
|
||||
extern AnimationHeader D_06000E50; // object_toryo
|
||||
extern AnimationHeader D_06002A84; // object_sdn
|
||||
extern AnimationHeader D_06002FA0; // object_daiku
|
||||
|
||||
// object_daiku
|
||||
extern Gfx D_060070C0[];
|
||||
extern Gfx D_06006FB0[];
|
||||
extern Gfx D_06006E80[];
|
||||
extern Gfx D_06006D70[];
|
||||
extern Gfx D_0600A390_dl[];
|
||||
|
||||
// object_dt
|
||||
extern TexturePtr D_06007350;
|
||||
extern TexturePtr D_06009590;
|
||||
extern TexturePtr D_06009F90;
|
||||
extern TexturePtr D_0600A790;
|
||||
extern TexturePtr D_0600AB90;
|
||||
|
||||
extern TexturePtr D_06007750;
|
||||
extern TexturePtr D_0600A390_tex;
|
||||
extern TexturePtr D_0600A490;
|
||||
|
||||
#if 0
|
||||
const ActorInit En_Ending_Hero6_InitVars = {
|
||||
ACTOR_EN_ENDING_HERO6,
|
||||
ACTORCAT_NPC,
|
||||
@@ -24,20 +61,131 @@ const ActorInit En_Ending_Hero6_InitVars = {
|
||||
(ActorFunc)EnEndingHero6_Draw,
|
||||
};
|
||||
|
||||
#endif
|
||||
static FlexSkeletonHeader* sSkeletons[] = { &D_0600B0CC, &D_06007908, &D_06007150, &D_0600D640, &D_0600A850,
|
||||
&D_0600A850, &D_0600A850, &D_0600A850, &D_0600A850 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/EnEndingHero6_Init.s")
|
||||
static AnimationHeader* sAnimations[] = { &D_06000BE0, &D_060011C0, &D_06000E50, &D_06002A84, &D_06002FA0,
|
||||
&D_06002FA0, &D_06002FA0, &D_06002FA0, &D_06002FA0 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/EnEndingHero6_Destroy.s")
|
||||
static s32 sLimbCounts[] = { 15, 20, 17, 17, 17, 17, 17, 17, 17 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/func_80C23D60.s")
|
||||
void EnEndingHero6_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnEndingHero6* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/func_80C23DDC.s")
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
this->actor.targetMode = 6;
|
||||
this->actor.gravity = -3.0f;
|
||||
SkelAnime_InitSV(globalCtx, &this->skelAnime, sSkeletons[this->npcIndex], sAnimations[this->npcIndex],
|
||||
this->jointTable, this->morphTable, sLimbCounts[this->npcIndex]);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, func_800B3FC0, 25.0f);
|
||||
EnEndingHero6_SetupIdle(this);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/func_80C23E18.s")
|
||||
void EnEndingHero6_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/EnEndingHero6_Update.s")
|
||||
void EnEndingHero6_InitSkelAnime(EnEndingHero6* this, s32 npcIndex) {
|
||||
this->animIndex = npcIndex;
|
||||
this->frameCount = SkelAnime_GetFrameCount(&sAnimations[npcIndex]->common);
|
||||
SkelAnime_ChangeAnim(&this->skelAnime, sAnimations[this->animIndex], 1.0f, 0.f, this->frameCount, 0, 0.0f);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/func_80C23F14.s")
|
||||
void EnEndingHero6_SetupIdle(EnEndingHero6* this) {
|
||||
EnEndingHero6_InitSkelAnime(this, this->npcIndex);
|
||||
this->isIdle = 1;
|
||||
this->actionFunc = EnEndingHero6_Idle;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Ending_Hero6/EnEndingHero6_Draw.s")
|
||||
void EnEndingHero6_Idle(EnEndingHero6* this, GlobalContext* globalCtx) {
|
||||
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
}
|
||||
|
||||
void EnEndingHero6_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnEndingHero6* this = THIS;
|
||||
|
||||
if (this->timer != 0) {
|
||||
this->timer--;
|
||||
}
|
||||
|
||||
this->actor.shape.rot.y = this->actor.world.rot.y;
|
||||
|
||||
if (this->blinkTimer == 0) {
|
||||
this->eyeState++;
|
||||
if (this->eyeState >= 3) {
|
||||
this->eyeState = 0;
|
||||
this->blinkTimer = (s16)Rand_ZeroFloat(60.0f) + 20;
|
||||
}
|
||||
}
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
Actor_SetVelocityAndMoveYRotationAndGravity(&this->actor);
|
||||
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 20.0f, 20.0f, 50.0f, 0x1D);
|
||||
}
|
||||
|
||||
void EnEndingHero6_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
|
||||
static Gfx* D_80C2426C[] = { D_060070C0, D_06006FB0, D_06006E80, D_06006D70, D_0600A390_dl };
|
||||
EnEndingHero6* this = THIS;
|
||||
s32 index;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
|
||||
if (this->npcIndex >= 4 && limbIndex == 15) {
|
||||
index = this->npcIndex - 4;
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_80C2426C[index]);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
|
||||
void EnEndingHero6_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static TexturePtr D_80C24280[] = { &D_06007350, &D_06009590, &D_06009F90, &D_0600A790, &D_0600AB90 };
|
||||
static TexturePtr D_80C24294[] = { &D_06007750, &D_0600A390_tex, &D_0600A490 };
|
||||
s32 pad;
|
||||
EnEndingHero6* this = THIS;
|
||||
s32 index = 0;
|
||||
|
||||
if (this->isIdle == 1) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx);
|
||||
|
||||
func_8012C28C(globalCtx->state.gfxCtx);
|
||||
func_8012C2DC(globalCtx->state.gfxCtx);
|
||||
|
||||
if (this->objectIndex >= 0 && Object_IsLoaded(&globalCtx->objectCtx, this->objectIndex)) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x06, globalCtx->objectCtx.status[this->objectIndex].segment);
|
||||
|
||||
switch (this->npcIndex) {
|
||||
case 4:
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 170, 10, 70, 255);
|
||||
break;
|
||||
case 5:
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 170, 200, 255, 255);
|
||||
break;
|
||||
case 6:
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 0, 230, 70, 255);
|
||||
break;
|
||||
case 7:
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 200, 0, 150, 255);
|
||||
break;
|
||||
case 8:
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, 245, 155, 0, 255);
|
||||
break;
|
||||
}
|
||||
|
||||
if (this->npcIndex == 0) {
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80C24280[this->eyeState]));
|
||||
|
||||
if (this->eyeState < 3) {
|
||||
index = this->eyeState;
|
||||
}
|
||||
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80C24294[index]));
|
||||
}
|
||||
|
||||
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl,
|
||||
this->skelAnime.dListCount, NULL, EnEndingHero6_PostLimbDraw, &this->actor);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,18 @@ typedef void (*EnEndingHero6ActionFunc)(struct EnEndingHero6*, GlobalContext*);
|
||||
|
||||
typedef struct EnEndingHero6 {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_144[0x134];
|
||||
/* 0x0144 */ SkelAnime skelAnime;
|
||||
/* 0x0188 */ Vec3s jointTable[20];
|
||||
/* 0x0200 */ Vec3s morphTable[20];
|
||||
/* 0x0278 */ EnEndingHero6ActionFunc actionFunc;
|
||||
/* 0x027C */ char unk_27C[0x18];
|
||||
/* 0x027C */ s32 animIndex;
|
||||
/* 0x0280 */ s32 npcIndex;
|
||||
/* 0x0284 */ s8 objectIndex;
|
||||
/* 0x0286 */ s16 timer;
|
||||
/* 0x0288 */ s16 blinkTimer;
|
||||
/* 0x028A */ s16 eyeState;
|
||||
/* 0x028C */ f32 frameCount;
|
||||
/* 0x0290 */ s16 isIdle;
|
||||
} EnEndingHero6; // size = 0x294
|
||||
|
||||
extern const ActorInit En_Ending_Hero6_InitVars;
|
||||
|
||||
@@ -76,7 +76,7 @@ const ActorInit En_Fsn_InitVars = {
|
||||
(ActorFunc)EnFsn_Draw,
|
||||
};
|
||||
|
||||
ActorAnimationEntryS sAnimations[] = {
|
||||
static ActorAnimationEntryS sAnimations[] = {
|
||||
{ &D_06012C34, 1.0f, 0, -1, 0, 0 }, { &D_060131FC, 1.0f, 0, -1, 0, 0 }, { &D_0600C58C, 1.0f, 0, -1, 2, 0 },
|
||||
{ &D_0600C58C, -1.0f, 0, -1, 2, 0 }, { &D_0600E3EC, 1.0f, 0, -1, 2, 0 }, { &D_0600F00C, 1.0f, 0, -1, 0, 0 },
|
||||
{ &D_0600CB3C, 1.0f, 0, -1, 2, 0 }, { &D_0600D354, 1.0f, 0, -1, 0, 0 }, { &D_060138B0, 1.0f, 0, -1, 2, 0 },
|
||||
|
||||
@@ -7,7 +7,9 @@ struct EnHorse;
|
||||
|
||||
typedef struct EnHorse {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ char unk_144[0x450];
|
||||
/* 0x144 */ char unk_144[0x00C];
|
||||
/* 0x150 */ s32 unk_150;
|
||||
/* 0x154 */ char unk_154[0x440];
|
||||
} EnHorse; // size = 0x594
|
||||
|
||||
extern const ActorInit En_Horse_InitVars;
|
||||
|
||||
@@ -1699,7 +1699,7 @@ void func_80B4627C(EnInvadepoh* this, GlobalContext* globalCtx) {
|
||||
} else {
|
||||
func_80B454BC(this, globalCtx);
|
||||
func_80B452EC(this, globalCtx);
|
||||
func_801A89A8(0x800D);
|
||||
Audio_QueueSeqCmd(0x800D);
|
||||
func_80B46F88(this);
|
||||
}
|
||||
} else if (D_80B4E940 == 3) {
|
||||
@@ -1987,7 +1987,7 @@ void func_80B46EE8(EnInvadepoh* this, GlobalContext* globalCtx) {
|
||||
this->actionTimer--;
|
||||
if (this->actionTimer <= 0) {
|
||||
ActorCutscene_Stop(D_80B50404[0]);
|
||||
func_801A89A8(0x800D);
|
||||
Audio_QueueSeqCmd(0x800D);
|
||||
func_80B46F88(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -750,8 +750,8 @@ void EnMa4_HorsebackGameWait(EnMa4* this, GlobalContext* globalCtx) {
|
||||
void EnMa4_SetupHorsebackGameEnd(EnMa4* this, GlobalContext* globalCtx) {
|
||||
gSaveContext.weekEventReg[0x8] &= (u8)~0x01;
|
||||
this->actionFunc = EnMa4_HorsebackGameEnd;
|
||||
func_801A89A8(0x100000FF);
|
||||
func_801A89A8(0x8041);
|
||||
Audio_QueueSeqCmd(NA_BGM_STOP);
|
||||
Audio_QueueSeqCmd(0x8041);
|
||||
}
|
||||
|
||||
void EnMa4_HorsebackGameEnd(EnMa4* this, GlobalContext* globalCtx) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user