ObjTakarayaWall OK (#1448)

* Takaraya Wall OK

* Docs

* Object docs

* Small cleanup

* undefined syms removal

* EnTakaraya_SpawnWalls docs

* PR

* Small cleanup

* Adjust comment

* PR

* More PR

* PR

* > 1

* ObjTakarayaWall_CanCarvePath
This commit is contained in:
Derek Hensley
2023-10-29 09:33:07 -03:00
committed by GitHub
parent 2859cbbf5e
commit 23beee0717
8 changed files with 493 additions and 73 deletions
@@ -1,9 +1,10 @@
<Root>
<!-- Assets for the Treasure Chest Shop Walls -->
<File Name="object_takaraya_objects" Segment="6">
<Texture Name="object_takaraya_objects_TLUT_000000" OutName="tlut_000000" Format="rgba16" Width="4" Height="4" Offset="0x0" />
<Texture Name="object_takaraya_objects_Tex_000020" OutName="tex_000020" Format="rgba16" Width="32" Height="32" Offset="0x20" />
<Texture Name="object_takaraya_objects_Tex_000820" OutName="tex_000820" Format="ci4" Width="32" Height="32" Offset="0x820" />
<DList Name="object_takaraya_objects_DL_000B70" Offset="0xB70" />
<DList Name="object_takaraya_objects_DL_000D60" Offset="0xD60" />
<Texture Name="gTreasureChestShopWallWhiteTLUT" OutName="treasure_chest_shop_wall_white_tlut" Format="rgba16" Width="4" Height="4" Offset="0x0" />
<Texture Name="gTreasureChestShopWallBlackTex" OutName="treasure_chest_shop_wall_black" Format="rgba16" Width="32" Height="32" Offset="0x20" />
<Texture Name="gTreasureChestShopWallWhiteTex" OutName="treasure_chest_shop_wall_white" Format="ci4" Width="32" Height="32" Offset="0x820" />
<DList Name="gTreasureChestShopWallBlackDL" Offset="0xB70" />
<DList Name="gTreasureChestShopWallWhiteDL" Offset="0xD60" />
</File>
</Root>
+1 -3
View File
@@ -3289,9 +3289,7 @@ beginseg
name "ovl_Obj_Takaraya_Wall"
compress
include "build/src/overlays/actors/ovl_Obj_Takaraya_Wall/z_obj_takaraya_wall.o"
include "build/data/ovl_Obj_Takaraya_Wall/ovl_Obj_Takaraya_Wall.data.o"
include "build/data/ovl_Obj_Takaraya_Wall/ovl_Obj_Takaraya_Wall.bss.o"
include "build/data/ovl_Obj_Takaraya_Wall/ovl_Obj_Takaraya_Wall.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Takaraya_Wall/ovl_Obj_Takaraya_Wall_reloc.o"
endseg
beginseg
@@ -5,6 +5,7 @@
*/
#include "z_en_takaraya.h"
#include "overlays/actors/ovl_En_Box/z_en_box.h"
#define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10 | ACTOR_FLAG_20)
@@ -76,11 +77,11 @@ u16 D_80ADFB2C[PLAYER_FORM_MAX] = {
};
u8 D_80ADFB38[PLAYER_FORM_MAX][2] = {
{ 5, 5 }, // PLAYER_FORM_FIERCE_DEITY
{ 12, 5 }, // PLAYER_FORM_GORON
{ 4, 4 }, // PLAYER_FORM_ZORA
{ 42, 41 }, // PLAYER_FORM_DEKU
{ 5, 5 }, // PLAYER_FORM_HUMAN
{ GI_RUPEE_PURPLE, GI_RUPEE_PURPLE }, // PLAYER_FORM_FIERCE_DEITY
{ GI_HEART_PIECE, GI_RUPEE_PURPLE }, // PLAYER_FORM_GORON
{ GI_RUPEE_RED, GI_RUPEE_RED }, // PLAYER_FORM_ZORA
{ GI_DEKU_NUTS_10, GI_DEKU_NUTS_5 }, // PLAYER_FORM_DEKU
{ GI_RUPEE_PURPLE, GI_RUPEE_PURPLE }, // PLAYER_FORM_HUMAN
};
u16 D_80ADFB44[PLAYER_FORM_MAX] = {
@@ -190,16 +191,16 @@ void EnTakaraya_Wait(EnTakaraya* this, PlayState* play) {
}
void EnTakaraya_SpawnWalls(EnTakaraya* this, PlayState* play) {
u8 var_v1;
u8 getItemId;
if (Flags_GetSwitch(play, this->formSwitchFlag)) {
var_v1 = D_80ADFB38[GET_PLAYER_FORM][1];
getItemId = D_80ADFB38[GET_PLAYER_FORM][1];
} else {
var_v1 = D_80ADFB38[GET_PLAYER_FORM][0];
getItemId = D_80ADFB38[GET_PLAYER_FORM][0];
}
Actor_SpawnAsChildAndCutscene(&play->actorCtx, play, ACTOR_OBJ_TAKARAYA_WALL, 0.0f, 0.0f, 0.0f, 0, 0, 5,
((var_v1 << 5) + this->actor.params) + 0xB000, this->actor.csId, HALFDAYBIT_ALL,
NULL);
(ENBOX_TYPE_BIG_SWITCH_FLAG << 12) + (getItemId << 5) + this->actor.params,
this->actor.csId, HALFDAYBIT_ALL, NULL);
}
void EnTakaraya_SetupTalk(EnTakaraya* this) {
File diff suppressed because it is too large Load Diff
@@ -5,12 +5,15 @@
struct ObjTakarayaWall;
#define TAKARAYA_WALL_GET_SWTICH_FLAG(thisx) ((thisx)->shape.rot.z)
typedef void (*ObjTakarayaWallActionFunc)(struct ObjTakarayaWall*, PlayState*);
typedef struct ObjTakarayaWall {
/* 0x000 */ Actor actor;
/* 0x144 */ ObjTakarayaWallActionFunc actionFunc;
/* 0x148 */ char unk_148[0x98];
/* 0x148 */ ColliderCylinder columnCollider;
/* 0x194 */ ColliderCylinder rowCollider;
} ObjTakarayaWall; // size = 0x1E0
#endif // Z_OBJ_TAKARAYA_WALL_H
+5 -5
View File
@@ -12278,13 +12278,13 @@
0x80AD8BC0:("EnKame_Draw",),
0x80AD8CEC:("EnKame_SpikedSnapperOverrideLimbDraw",),
0x80AD8D64:("EnKame_DrawSpikedSnapper",),
0x80AD9240:("func_80AD9240",),
0x80AD92FC:("func_80AD92FC",),
0x80AD9358:("func_80AD9358",),
0x80AD9488:("func_80AD9488",),
0x80AD9240:("ObjTakarayaWall_PosToCell",),
0x80AD92FC:("ObjTakarayaWall_IsCellOpen",),
0x80AD9358:("ObjTakarayaWall_CanCarvePath",),
0x80AD9488:("ObjTakarayaWall_CarvePath",),
0x80AD97DC:("ObjTakarayaWall_Init",),
0x80AD9A6C:("ObjTakarayaWall_Destroy",),
0x80AD9B04:("func_80AD9B04",),
0x80AD9B04:("ObjTakarayaWall_Manage",),
0x80AD9F90:("ObjTakarayaWall_Update",),
0x80AD9FF8:("ObjTakarayaWall_Draw",),
0x80ADAAF0:("BgFuMizu_Init",),
+7 -12
View File
@@ -12970,18 +12970,13 @@
0x80ADA2A0:("D_80ADA2A0","UNK_TYPE1","",0x1),
0x80ADA2CC:("D_80ADA2CC","UNK_TYPE1","",0x1),
0x80ADA2D0:("D_80ADA2D0","f32","",0x4),
0x80ADA450:("D_80ADA450","UNK_TYPE4","",0x4),
0x80ADA458:("D_80ADA458","UNK_TYPE1","",0x1),
0x80ADA508:("D_80ADA508","UNK_TYPE4","",0x4),
0x80ADA50C:("D_80ADA50C","UNK_TYPE4","",0x4),
0x80ADA510:("D_80ADA510","UNK_TYPE1","",0x1),
0x80ADA930:("D_80ADA930","UNK_TYPE1","",0x1),
0x80ADA988:("D_80ADA988","f32","",0x4),
0x80ADA98C:("D_80ADA98C","UNK_TYPE4","",0x4),
0x80ADA9A4:("D_80ADA9A4","UNK_TYPE4","",0x4),
0x80ADAAC8:("D_80ADAAC8","f32","",0x4),
0x80ADAACC:("D_80ADAACC","f32","",0x4),
0x80ADAAE0:("D_80ADAAE0","f32","",0x4),
0x80ADA450:("sTakarayaWallPathStackDepth","UNK_TYPE4","",0x4),
0x80ADA458:("sTakarayaWallPathStack","UNK_TYPE1","",0x1),
0x80ADA508:("sTakarayaWallSuccessfulPathStackDepth","UNK_TYPE4","",0x4),
0x80ADA50C:("sTakarayaWallPathReachedFront","UNK_TYPE4","",0x4),
0x80ADA510:("sTakarayaWallAudioPositions","UNK_TYPE1","",0x1),
0x80ADA930:("sTakarayaWallStates","UNK_TYPE1","",0x1),
0x80ADA988:("sTakarayaWallHeights","f32","",0x160),
0x80ADAAE8:("D_80ADAAE8","UNK_TYPE1","",0x1),
0x80ADAD80:("Bg_Fu_Mizu_InitVars","UNK_TYPE1","",0x1),
0x80ADD910:("D_80ADD910","UNK_TYPE1","",0x1),
-14
View File
@@ -503,15 +503,6 @@ D_06006F38 = 0x06006F38;
D_06006FD8 = 0x06006FD8;
D_06009930 = 0x06009930;
// ovl_En_Takaraya
D_06000968 = 0x06000968;
D_06001384 = 0x06001384;
D_06008FC8 = 0x06008FC8;
D_06009890 = 0x06009890;
D_0600A280 = 0x0600A280;
D_0600AD98 = 0x0600AD98;
// ovl_En_Wdhand
D_060000F4 = 0x060000F4;
@@ -537,11 +528,6 @@ D_06000030 = 0x06000030;
D_06002068 = 0x06002068;
D_06002188 = 0x06002188;
// ovl_Obj_Takaraya_Wall
D_06000B70 = 0x06000B70;
D_06000D60 = 0x06000D60;
// segment 0x07
// segment 0x08