Door_Shutter (#623)

* Door_Shutter

* PR

* Fix macro

* PR

Co-authored-by: angie <angheloalf95@gmail.com>
This commit is contained in:
Maide
2022-02-19 23:05:22 +00:00
committed by GitHub
co-authored by angie
parent fc270e338e
commit b949669131
9 changed files with 690 additions and 50 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<DList Name="object_bdoor_DL_0000C0" Offset="0xC0" />
<DList Name="object_bdoor_DL_000400" Offset="0x400" />
<DList Name="object_bdoor_DL_000530" Offset="0x530" />
<!-- <Blob Name="object_bdoor_Blob_0005C0" Size="0x1000" Offset="0x5C0" /> -->
<Texture Name="object_bdoor_Tex_0005C0" OutName="tex_0005C0" Format="rgba16" Width="32" Height="64" Offset="0x5C0" />
<DList Name="object_bdoor_DL_001790" Offset="0x1790" />
<DList Name="object_bdoor_DL_001850" Offset="0x1850" />
<Texture Name="object_bdoor_Tex_001910" OutName="tex_001910" Format="rgba16" Width="32" Height="64" Offset="0x1910" />
+4 -4
View File
@@ -1155,7 +1155,7 @@ void func_800DFD04(Camera* camera, s32 arg1, s32 arg2, s32 arg3);
// UNK_TYPE4 func_800DFF44(void);
s16 Camera_SetFlags(Camera* iParm1, s16 flags);
s16 Camera_ClearFlags(Camera* camera, s16 flags);
// void func_800DFFAC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6, UNK_TYPE2 param_7);
s32 func_800DFFAC(Camera* camera, Actor* doorActor, s16 bgCamDataId, f32 arg3, s16 timer1, s16 timer2, s16 timer3);
// UNK_TYPE4 func_800E007C(Camera* param_1, Camera* param_2);
// UNK_TYPE4 func_800E01AC(void);
// void func_800E01B8(void);
@@ -2008,7 +2008,7 @@ f32 Path_OrientAndGetDistSq(Actor* actor, Path* path, s16 waypoint, s16* yaw);
void Path_CopyLastPoint(Path* path, Vec3f* dest);
void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx);
s32 FrameAdvance_Update(FrameAdvanceContext* frameAdvCtx, Input* input);
// void func_801226E0(void);
void func_801226E0(GlobalContext* globalCtx, s8 arg1);
void func_80122744(GlobalContext* globalCtx, UNK_PTR arg1, u32 arg2, Vec3s* arg3);
s32 func_80122760(GlobalContext* globalCtx, UNK_PTR arg1, f32 arg2);
void func_80122868(GlobalContext* globalCtx, Player* player);
@@ -2020,12 +2020,12 @@ void func_801229A0(GlobalContext* globalCtx, Player* player);
// void func_80122D44(void);
// void func_80122ED8(void);
// void func_80122EEC(void);
void func_80122F28(Player* player, GlobalContext* globalCtx, Actor* actor);
void func_80122F28(Player* player);
s32 func_80122F9C(GlobalContext* globalCtx);
s32 func_80122FCC(GlobalContext* globalCtx);
void func_8012300C(GlobalContext* globalCtx, s32 arg1);
void func_8012301C(s32 iParm1, GlobalContext* globalCtx);
void func_80123140(GlobalContext* globalCtx, Player* param_2);
void func_80123140(GlobalContext* globalCtx, Player* player);
u32 func_80123358(GlobalContext* globalCtx, Player* player);
s32 Player_InCsMode(GameState* gameState);
// void func_80123420(void);
+2
View File
@@ -74,6 +74,8 @@
#define CUR_FORM_EQUIP(button) (gSaveContext.equips.buttonItems[CUR_FORM][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 CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.inventory.dungeonKeys[(void)0, dungeonIndex])
#define CAPACITY(upg, value) gUpgradeCapacities[upg][value]
#define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg))
+1 -2
View File
@@ -929,8 +929,7 @@ beginseg
name "ovl_Door_Shutter"
compress
include "build/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.o"
include "build/data/ovl_Door_Shutter/ovl_Door_Shutter.data.o"
include "build/data/ovl_Door_Shutter/ovl_Door_Shutter.reloc.o"
include "build/src/overlays/actors/ovl_Door_Shutter/ovl_Door_Shutter_reloc.o"
endseg
beginseg
+2 -7
View File
@@ -75,12 +75,10 @@ void Room_Init(GlobalContext* globalCtx, RoomContext* roomCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/code/z_room/Room_AllocateAndLoad.s")
#ifdef NON_MATCHING
s32 Room_StartRoomTransition(GlobalContext* globalCtx, RoomContext* roomCtx, s32 index) {
size_t size;
// XXX: this should use a branch-likely
if (roomCtx->unk31 == 0) {
s32 size;
roomCtx->prevRoom = roomCtx->currRoom;
roomCtx->currRoom.num = index;
roomCtx->currRoom.segment = NULL;
@@ -101,9 +99,6 @@ s32 Room_StartRoomTransition(GlobalContext* globalCtx, RoomContext* roomCtx, s32
return 0;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_room/Room_StartRoomTransition.s")
#endif
s32 Room_HandleLoadCallbacks(GlobalContext* globalCtx, RoomContext* roomCtx) {
if (roomCtx->unk31 == 1) {
File diff suppressed because it is too large Load Diff
@@ -7,9 +7,24 @@ struct DoorShutter;
typedef void (*DoorShutterActionFunc)(struct DoorShutter*, GlobalContext*);
#define DOORSHUTTER_GET_1F(thisx) ((thisx)->params & 0x1F)
#define DOORSHUTTER_GET_7F(thisx) ((thisx)->params & 0x7F)
#define DOORSHUTTER_GET_380(thisx) (((thisx)->params >> 7) & 7)
#define DOORSHUTTER_GET_FC00(thisx) (((u16)(thisx)->params >> 0xA))
typedef struct DoorShutter {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0x28];
/* 0x0144 */ UNK_TYPE1 unk144[0x18];
/* 0x015C */ s16 unk_15C;
/* 0x015E */ s16 unk_15E;
/* 0x0160 */ s16 unk_160;
/* 0x0162 */ u8 doorType;
/* 0x0163 */ u8 unk_163;
/* 0x0164 */ u8 unk_164;
/* 0x0165 */ s8 requiredObjBankIndex;
/* 0x0166 */ s8 unk_166;
/* 0x0167 */ s8 unk_167;
/* 0x0168 */ f32 unk_168;
/* 0x016C */ DoorShutterActionFunc actionFunc;
} DoorShutter; // size = 0x170
@@ -286,7 +286,7 @@ void DoorSpiral_Wait(DoorSpiral* this, GlobalContext* globalCtx) {
transition = GET_TRANSITION_ID_PARAM(this);
player->doorNext = ((u16)globalCtx->doorCtx.transitionActorList[transition].params) >> 10;
func_80122F28(player, globalCtx, &this->actor);
func_80122F28(player);
}
}
+4 -4
View File
@@ -5642,12 +5642,12 @@
0x808A03E8:("func_808A03E8",),
0x808A0458:("EnBubble_Update",),
0x808A04D4:("EnBubble_Draw",),
0x808A08F0:("func_808A08F0",),
0x808A08F0:("DoorShutter_SetupAction",),
0x808A0900:("func_808A0900",),
0x808A0974:("func_808A0974",),
0x808A0974:("DoorShutter_SetupDoor",),
0x808A0B10:("DoorShutter_Init",),
0x808A0CD0:("DoorShutter_Destroy",),
0x808A0D0C:("func_808A0D0C",),
0x808A0D0C:("DoorShutter_SetupType",),
0x808A0D90:("func_808A0D90",),
0x808A0E28:("func_808A0E28",),
0x808A0F88:("func_808A0F88",),
@@ -5666,7 +5666,7 @@
0x808A1C50:("func_808A1C50",),
0x808A1CC4:("DoorShutter_Update",),
0x808A1D68:("func_808A1D68",),
0x808A1E14:("func_808A1E14",),
0x808A1E14:("DoorShutter_Draw",),
0x808A24D0:("EnBoom_SetupAction",),
0x808A24DC:("func_808A24DC",),
0x808A2700:("EnBoom_Init",),