mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-03 18:14:26 +00:00
object_hidan_objects OK (#695)
* xml Signed-off-by: angie <angheloalf95@gmail.com> * add to spec and remove repetaed entries Signed-off-by: Angie <angheloalf95@gmail.com> * add some dlists Signed-off-by: Angie <angheloalf95@gmail.com> * add a few offsets Signed-off-by: Angie <angheloalf95@gmail.com> * fireballs textures Signed-off-by: Angie <angheloalf95@gmail.com> * add some unused dlists Signed-off-by: Angie <angheloalf95@gmail.com> * change the references in decompiled objects Signed-off-by: angie <angheloalf95@gmail.com> * change the references from non matching actors Signed-off-by: angie <angheloalf95@gmail.com> * add blob Signed-off-by: angie <angheloalf95@gmail.com> * changes requested by @Zelllll Signed-off-by: angie <angheloalf95@gmail.com> * why is this object so big? Signed-off-by: angie <angheloalf95@gmail.com> * rename a lot of stuff Signed-off-by: Angie <angheloalf95@gmail.com> * this object never ends Signed-off-by: angie <angheloalf95@gmail.com> * Some floats Signed-off-by: angie <angheloalf95@gmail.com> * stones blocks Signed-off-by: angie <angheloalf95@gmail.com> * rename fireball and stuff Signed-off-by: Angie <angheloalf95@gmail.com> * Stationary flame thrower Signed-off-by: Angie <angheloalf95@gmail.com> * SpinningFlamethrower Signed-off-by: Angie <angheloalf95@gmail.com> * Rename the lasts textures Signed-off-by: Angie <angheloalf95@gmail.com> * some random renamings Signed-off-by: Angie <angheloalf95@gmail.com> * run format Signed-off-by: Angie <angheloalf95@gmail.com> * Remove .gitkeep Signed-off-by: angie <angheloalf95@gmail.com>
This commit is contained in:
parent
6b9a44e5a0
commit
e48e565ffe
22 changed files with 239 additions and 188 deletions
|
@ -50,8 +50,8 @@ glabel BgHidanSekizou_Draw
|
|||
/* 010B0 8088DF70 17000009 */ bne $t8, $zero, .L8088DF98
|
||||
/* 010B4 8088DF74 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
|
||||
/* 010B8 8088DF78 8E6202C0 */ lw $v0, 0x02C0($s3) ## 000002C0
|
||||
/* 010BC 8088DF7C 3C090601 */ lui $t1, %hi(D_0600B0F8) ## $t1 = 06010000
|
||||
/* 010C0 8088DF80 2529B0F8 */ addiu $t1, $t1, %lo(D_0600B0F8) ## $t1 = 0600B0F8
|
||||
/* 010BC 8088DF7C 3C090601 */ lui $t1, %hi(gFireTempleStationaryFlamethrowerShortDL) ## $t1 = 06010000
|
||||
/* 010C0 8088DF80 2529B0F8 */ addiu $t1, $t1, %lo(gFireTempleStationaryFlamethrowerShortDL) ## $t1 = 0600B0F8
|
||||
/* 010C4 8088DF84 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
|
||||
/* 010C8 8088DF88 AE7902C0 */ sw $t9, 0x02C0($s3) ## 000002C0
|
||||
/* 010CC 8088DF8C AC490004 */ sw $t1, 0x0004($v0) ## 00000004
|
||||
|
@ -59,8 +59,8 @@ glabel BgHidanSekizou_Draw
|
|||
/* 010D4 8088DF94 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
|
||||
.L8088DF98:
|
||||
/* 010D8 8088DF98 8E6202C0 */ lw $v0, 0x02C0($s3) ## 000002C0
|
||||
/* 010DC 8088DF9C 3C0C0601 */ lui $t4, %hi(D_0600ABC8) ## $t4 = 06010000
|
||||
/* 010E0 8088DFA0 258CABC8 */ addiu $t4, $t4, %lo(D_0600ABC8) ## $t4 = 0600ABC8
|
||||
/* 010DC 8088DF9C 3C0C0601 */ lui $t4, %hi(gFireTempleStationaryFlamethrowerTallDL) ## $t4 = 06010000
|
||||
/* 010E0 8088DFA0 258CABC8 */ addiu $t4, $t4, %lo(gFireTempleStationaryFlamethrowerTallDL) ## $t4 = 0600ABC8
|
||||
/* 010E4 8088DFA4 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
|
||||
/* 010E8 8088DFA8 AE6A02C0 */ sw $t2, 0x02C0($s3) ## 000002C0
|
||||
/* 010EC 8088DFAC AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
|
||||
|
|
|
@ -59,8 +59,8 @@ glabel BgHidanSekizou_Init
|
|||
/* 0048C 8088D34C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
|
||||
/* 00490 8088D350 1612FFF3 */ bne $s0, $s2, .L8088D320
|
||||
/* 00494 8088D354 00000000 */ nop
|
||||
/* 00498 8088D358 3C040601 */ lui $a0, %hi(D_0600CC90) ## $a0 = 06010000
|
||||
/* 0049C 8088D35C 2484CC90 */ addiu $a0, $a0, %lo(D_0600CC90) ## $a0 = 0600CC90
|
||||
/* 00498 8088D358 3C040601 */ lui $a0, %hi(gFireTempleStationaryFlamethrowerCol) ## $a0 = 06010000
|
||||
/* 0049C 8088D35C 2484CC90 */ addiu $a0, $a0, %lo(gFireTempleStationaryFlamethrowerCol) ## $a0 = 0600CC90
|
||||
/* 004A0 8088D360 0C010620 */ jal CollisionHeader_GetVirtual
|
||||
|
||||
/* 004A4 8088D364 27A50040 */ addiu $a1, $sp, 0x0040 ## $a1 = FFFFFFF0
|
||||
|
|
|
@ -38,7 +38,7 @@ glabel func_8088D9F4
|
|||
/* 00B84 8088DA44 354A0024 */ ori $t2, $t2, 0x0024 ## $t2 = DB060024
|
||||
/* 00B88 8088DA48 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
|
||||
/* 00B8C 8088DA4C 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 00B90 8088DA50 3C048089 */ lui $a0, %hi(D_8088E27C) ## $a0 = 80890000
|
||||
/* 00B90 8088DA50 3C048089 */ lui $a0, %hi(sFireballsTexs) ## $a0 = 80890000
|
||||
/* 00B94 8088DA54 3C198016 */ lui $t9, %hi(gSegments)
|
||||
/* 00B98 8088DA58 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
|
||||
/* 00B9C 8088DA5C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
|
||||
|
@ -55,7 +55,7 @@ glabel func_8088D9F4
|
|||
/* 00BC8 8088DA88 87AB0062 */ lh $t3, 0x0062($sp)
|
||||
/* 00BCC 8088DA8C 000B6080 */ sll $t4, $t3, 2
|
||||
/* 00BD0 8088DA90 008C2021 */ addu $a0, $a0, $t4
|
||||
/* 00BD4 8088DA94 8C84E27C */ lw $a0, %lo(D_8088E27C)($a0)
|
||||
/* 00BD4 8088DA94 8C84E27C */ lw $a0, %lo(sFireballsTexs)($a0)
|
||||
/* 00BD8 8088DA98 3C0CFA00 */ lui $t4, 0xFA00 ## $t4 = FA000000
|
||||
/* 00BDC 8088DA9C 358C0001 */ ori $t4, $t4, 0x0001 ## $t4 = FA000001
|
||||
/* 00BE0 8088DAA0 00047100 */ sll $t6, $a0, 4
|
||||
|
@ -157,10 +157,10 @@ glabel func_8088D9F4
|
|||
/* 00D54 8088DC14 00402825 */ or $a1, $v0, $zero ## $a1 = 00000000
|
||||
/* 00D58 8088DC18 8FA8002C */ lw $t0, 0x002C($sp)
|
||||
/* 00D5C 8088DC1C 8FA30064 */ lw $v1, 0x0064($sp)
|
||||
/* 00D60 8088DC20 3C0A0601 */ lui $t2, %hi(D_0600DC30) ## $t2 = 06010000
|
||||
/* 00D60 8088DC20 3C0A0601 */ lui $t2, %hi(gFireTempleFireballDL) ## $t2 = 06010000
|
||||
/* 00D64 8088DC24 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
|
||||
/* 00D68 8088DC28 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
|
||||
/* 00D6C 8088DC2C 254ADC30 */ addiu $t2, $t2, %lo(D_0600DC30) ## $t2 = 0600DC30
|
||||
/* 00D6C 8088DC2C 254ADC30 */ addiu $t2, $t2, %lo(gFireTempleFireballDL) ## $t2 = 0600DC30
|
||||
/* 00D70 8088DC30 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
|
||||
/* 00D74 8088DC34 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
|
||||
/* 00D78 8088DC38 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
|
||||
|
|
89
assets/xml/objects/object_hidan_objects.xml
Normal file
89
assets/xml/objects/object_hidan_objects.xml
Normal file
|
@ -0,0 +1,89 @@
|
|||
<Root>
|
||||
<File Name="object_hidan_objects" Segment="6">
|
||||
<DList Name="gFireTempleHammerableTotemBodyDL" Offset="0xBBF0"/>
|
||||
<DList Name="gFireTempleHammerableTotemHeadDL" Offset="0xBDF0"/>
|
||||
<Collision Name="gFireTempleHammerableTotemCol" Offset="0xDA10"/>
|
||||
|
||||
<DList Name="gFireTempleHookshotElevatorDL" Offset="0xB630"/>
|
||||
<Collision Name="gFireTempleHookshotElevatorCol" Offset="0xE1E8"/>
|
||||
|
||||
<DList Name="gFireTempleBigFireWallDL" Offset="0xDB20"/>
|
||||
|
||||
<DList Name="gFireTempleStoneStep1DL" Offset="0xA668"/>
|
||||
<Collision Name="gFireTempleStoneStep1Col" Offset="0xDE44"/>
|
||||
<DList Name="gFireTempleStoneStep2DL" Offset="0xA548"/>
|
||||
<Collision Name="gFireTempleStoneStep2Col" Offset="0xDD1C"/>
|
||||
|
||||
<DList Name="gFireTempleMetalFenceWithSlantDL" Offset="0xC798"/>
|
||||
<Collision Name="gFireTempleMetalFenceWithSlantCol" Offset="0xE2CC"/>
|
||||
<DList Name="gFireTempleMetalFenceDL" Offset="0xBFA8"/>
|
||||
<Collision Name="gFireTempleMetalFenceCol" Offset="0xE380"/>
|
||||
<DList Name="gFireTempleMetalFence2DL" Offset="0xBB58"/>
|
||||
<Collision Name="gFireTempleMetalFence2Col" Offset="0xE430"/>
|
||||
|
||||
<DList Name="gFireTempleCrackedStoneFloorDL" Offset="0xB9C0"/>
|
||||
<Collision Name="gFireTempleCrackedStoneFloorCol" Offset="0xD800"/>
|
||||
<DList Name="gFireTempleBombableWallDL" Offset="0xC038"/>
|
||||
<Collision Name="gFireTempleBombableWallCol" Offset="0xD878"/>
|
||||
<DList Name="gFireTempleLargeBombableWallDL" Offset="0xB900"/>
|
||||
<Collision Name="gFireTempleLargeBombableWallCol" Offset="0xD8F8"/>
|
||||
|
||||
<DList Name="gFireTempleStoneBlock1DL" Offset="0xC100"/>
|
||||
<Collision Name="gFireTempleStoneBlock1Col" Offset="0xCB80"/>
|
||||
<DList Name="gFireTempleStoneBlock2DL" Offset="0xC1F0"/>
|
||||
<Collision Name="gFireTempleStoneBlock2Col" Offset="0xDF78"/>
|
||||
|
||||
<DList Name="gFireTempleBigVerticalFlameDL" Offset="0xCA10"/>
|
||||
|
||||
<Texture Name="gFireTempleBigVerticalFlame0Tex" OutName="big_vertical_flame_0" Format="ia8" Width="8" Height="240" Offset="0x12120"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame1Tex" OutName="big_vertical_flame_1" Format="ia8" Width="8" Height="240" Offset="0x128A0"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame2Tex" OutName="big_vertical_flame_2" Format="ia8" Width="8" Height="240" Offset="0x13020"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame3Tex" OutName="big_vertical_flame_3" Format="ia8" Width="8" Height="240" Offset="0x137A0"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame4Tex" OutName="big_vertical_flame_4" Format="ia8" Width="8" Height="240" Offset="0x13F20"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame5Tex" OutName="big_vertical_flame_5" Format="ia8" Width="8" Height="240" Offset="0x146A0"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame6Tex" OutName="big_vertical_flame_6" Format="ia8" Width="8" Height="240" Offset="0x14E20"/>
|
||||
<Texture Name="gFireTempleBigVerticalFlame7Tex" OutName="big_vertical_flame_7" Format="ia8" Width="8" Height="240" Offset="0x155A0"/>
|
||||
|
||||
<DList Name="gFireTempleFireballDL" Offset="0xDC30"/>
|
||||
<DList Name="gFireTempleFireballUpperHalfDL" Offset="0xDA80"/>
|
||||
|
||||
<Texture Name="gFireTempleFireball0Tex" OutName="fireball_0" Format="ia8" Width="32" Height="32" Offset="0x15D20"/>
|
||||
<Texture Name="gFireTempleFireball1Tex" OutName="fireball_1" Format="ia8" Width="32" Height="32" Offset="0x16120"/>
|
||||
<Texture Name="gFireTempleFireball2Tex" OutName="fireball_2" Format="ia8" Width="32" Height="32" Offset="0x16520"/>
|
||||
<Texture Name="gFireTempleFireball3Tex" OutName="fireball_3" Format="ia8" Width="32" Height="32" Offset="0x16920"/>
|
||||
<Texture Name="gFireTempleFireball4Tex" OutName="fireball_4" Format="ia8" Width="32" Height="32" Offset="0x16D20"/>
|
||||
<Texture Name="gFireTempleFireball5Tex" OutName="fireball_5" Format="ia8" Width="32" Height="32" Offset="0x17120"/>
|
||||
<Texture Name="gFireTempleFireball6Tex" OutName="fireball_6" Format="ia8" Width="32" Height="32" Offset="0x17520"/>
|
||||
<Texture Name="gFireTempleFireball7Tex" OutName="fireball_7" Format="ia8" Width="32" Height="32" Offset="0x17920"/>
|
||||
|
||||
<DList Name="gFireTempleSpinningFlamethrowerDL" Offset="0xAD00"/>
|
||||
<Collision Name="gFireTempleSpinningFlamethrowerCol" Offset="0xD5C0"/>
|
||||
|
||||
<DList Name="gFireTempleStationaryFlamethrowerTallDL" Offset="0xABC8"/>
|
||||
<DList Name="gFireTempleStationaryFlamethrowerShortDL" Offset="0xB0F8"/>
|
||||
<!-- I don't know if this collision corresponds to the tall or the short one -->
|
||||
<Collision Name="gFireTempleStationaryFlamethrowerCol" Offset="0xCC90"/>
|
||||
|
||||
<DList Name="gFireTempleStonePlatform1DL" Offset="0xC338"/>
|
||||
<Collision Name="gFireTempleStonePlatform1Col" Offset="0x120E8"/>
|
||||
<DList Name="gFireTempleStonePlatform2DL" Offset="0xC470"/>
|
||||
<Collision Name="gFireTempleStonePlatform2Col" Offset="0xFAE8"/>
|
||||
|
||||
<DList Name="gFireTempleFlareDancerPlatformDL" Offset="0xA7E0"/>
|
||||
<Collision Name="gFireTempleFlareDancerPlatformCol" Offset="0xE568"/>
|
||||
|
||||
<DList Name="gFireTempleTallestPillarAboveRoomBeforeBossDL" Offset="0xA240"/>
|
||||
<Collision Name="gFireTempleTallestPillarAboveRoomBeforeBossCol" Offset="0xD054"/>
|
||||
<DList Name="gFireTemplePillarInsertedInGroundDL" Offset="0xC838"/>
|
||||
<Collision Name="gFireTemplePillarInsertedInGroundCol" Offset="0xD188"/>
|
||||
|
||||
<DList Name="gFireTempleBombableDoorFrameDL" Offset="0xF890"/>
|
||||
<DList Name="gFireTempleBombableDoorDL1" Offset="0xF938"/>
|
||||
<DList Name="gFireTempleBombableDoorDL2" Offset="0xF998"/>
|
||||
<DList Name="gFireTempleDoorFrontDL" Offset="0x10CB0"/>
|
||||
<DList Name="gFireTempleDoorBackDL" Offset="0x11F20"/>
|
||||
|
||||
<!-- I don't know what could this be -->
|
||||
<Blob Name="gFireTempleBlob_00CCC0" Size="0x10E" Offset="0xCCC0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -24,6 +24,6 @@ glabel D_8088E268
|
|||
.word 0x01000028, 0x00F0FF00
|
||||
glabel D_8088E270
|
||||
.word 0xC8500064, 0xB0F80190, 0x30F405DC
|
||||
glabel D_8088E27C
|
||||
.word 0x06015D20, 0x06016120, 0x06016520, 0x06016920, 0x06016D20, 0x06017120, 0x06017520, 0x06017920, 0x00000000
|
||||
glabel sFireballsTexs
|
||||
.word gFireTempleFireball0Tex, gFireTempleFireball1Tex, gFireTempleFireball2Tex, gFireTempleFireball3Tex, gFireTempleFireball4Tex, gFireTempleFireball5Tex, gFireTempleFireball6Tex, gFireTempleFireball7Tex, 0x00000000
|
||||
|
||||
|
|
3
spec
3
spec
|
@ -3724,7 +3724,8 @@ endseg
|
|||
beginseg
|
||||
name "object_hidan_objects"
|
||||
romalign 0x1000
|
||||
include "build/baserom/object_hidan_objects.o"
|
||||
include "build/assets/objects/object_hidan_objects/object_hidan_objects.o"
|
||||
number 6
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_dalm.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -95,10 +96,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32_DIV1000(gravity, -200, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_0600BBF0[];
|
||||
extern Gfx D_0600BDF0[];
|
||||
extern CollisionHeader D_0600DA10;
|
||||
|
||||
void BgHidanDalm_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgHidanDalm* this = THIS;
|
||||
s32 pad;
|
||||
|
@ -106,7 +103,7 @@ void BgHidanDalm_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_0600DA10, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleHammerableTotemCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
Collider_InitTris(globalCtx, &this->collider);
|
||||
Collider_SetTris(globalCtx, &this->collider, thisx, &sTrisInit, this->colliderItems);
|
||||
|
@ -216,9 +213,9 @@ void BgHidanDalm_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
BgHidanDalm* this = THIS;
|
||||
|
||||
if (this->dyna.actor.params == 0) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_0600BBF0);
|
||||
Gfx_DrawDListOpa(globalCtx, gFireTempleHammerableTotemBodyDL);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(globalCtx, D_0600BDF0);
|
||||
Gfx_DrawDListOpa(globalCtx, gFireTempleHammerableTotemHeadDL);
|
||||
}
|
||||
|
||||
if (this->actionFunc == BgHidanDalm_Wait) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_firewall.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -22,8 +23,6 @@ void BgHidanFirewall_Erupt(BgHidanFirewall* this, GlobalContext* globalCtx);
|
|||
void BgHidanFirewall_Collide(BgHidanFirewall* this, GlobalContext* globalCtx);
|
||||
void BgHidanFirewall_ColliderFollowPlayer(BgHidanFirewall* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_0600DA80[];
|
||||
|
||||
const ActorInit Bg_Hidan_Firewall_InitVars = {
|
||||
ACTOR_BG_HIDAN_FIREWALL,
|
||||
ACTORCAT_BG,
|
||||
|
@ -58,10 +57,6 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
|
||||
static CollisionCheckInfoInit sColChkInfoInit = { 1, 80, 100, MASS_IMMOVABLE };
|
||||
|
||||
static UNK_PTR D_80886D04[] = {
|
||||
0x06015D20, 0x06016120, 0x06016520, 0x06016920, 0x06016D20, 0x06017120, 0x06017520, 0x06017920,
|
||||
};
|
||||
|
||||
void BgHidanFirewall_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgHidanFirewall* this = THIS;
|
||||
|
||||
|
@ -199,6 +194,11 @@ void BgHidanFirewall_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
}
|
||||
|
||||
static u64* sFireballTexs[] = {
|
||||
gFireTempleFireball0Tex, gFireTempleFireball1Tex, gFireTempleFireball2Tex, gFireTempleFireball3Tex,
|
||||
gFireTempleFireball4Tex, gFireTempleFireball5Tex, gFireTempleFireball6Tex, gFireTempleFireball7Tex,
|
||||
};
|
||||
|
||||
void BgHidanFirewall_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgHidanFirewall* this = THIS;
|
||||
|
||||
|
@ -206,12 +206,12 @@ void BgHidanFirewall_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x14);
|
||||
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80886D04[this->unk_150]));
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sFireballTexs[this->unk_150]));
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x01, 255, 255, 0, 150);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 255);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_firewall.c", 458),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_0600DA80);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFireTempleFireballUpperHalfDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_firewall.c", 463);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_fslift.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -19,9 +20,6 @@ void func_80886FCC(BgHidanFslift* this, GlobalContext* globalCtx);
|
|||
void func_8088706C(BgHidanFslift* this, GlobalContext* globalCtx);
|
||||
void func_808870D8(BgHidanFslift* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_0600B630[];
|
||||
extern CollisionHeader D_0600E1E8;
|
||||
|
||||
const ActorInit Bg_Hidan_Fslift_InitVars = {
|
||||
ACTOR_BG_HIDAN_FSLIFT,
|
||||
ACTORCAT_BG,
|
||||
|
@ -49,7 +47,7 @@ void BgHidanFslift_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
|
||||
CollisionHeader_GetVirtual(&D_0600E1E8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleHookshotElevatorCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
if (Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_OBJ_HSBLOCK,
|
||||
this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y + 40.0f,
|
||||
|
@ -143,5 +141,5 @@ void BgHidanFslift_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgHidanFslift_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_0600B630);
|
||||
Gfx_DrawDListOpa(globalCtx, gFireTempleHookshotElevatorDL);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
/*
|
||||
* File: z_bg_hidan_fwbig.c
|
||||
* Overlay: ovl_Bg_Hidan_Fwbig
|
||||
* Description: Large fire walls at Fire Temple (flame wall before bombable door and the one that chases the player in
|
||||
* the lava room)
|
||||
*/
|
||||
|
||||
#include "z_bg_hidan_fwbig.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -25,8 +33,6 @@ void BgHidanFwbig_WaitForTimer(BgHidanFwbig* this, GlobalContext* globalCtx);
|
|||
void BgHidanFwbig_WaitForPlayer(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
void BgHidanFwbig_Move(BgHidanFwbig* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_0600DB20[];
|
||||
|
||||
const ActorInit Bg_Hidan_Fwbig_InitVars = {
|
||||
ACTOR_BG_HIDAN_FWBIG,
|
||||
ACTORCAT_PROP,
|
||||
|
@ -247,6 +253,7 @@ void BgHidanFwbig_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
f32 height;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 630);
|
||||
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
|
||||
gSPSegment(POLY_XLU_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gEffUnknown4Tex));
|
||||
|
@ -266,7 +273,7 @@ void BgHidanFwbig_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 660),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_0600DB20);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFireTempleBigFireWallDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_fwbig.c", 664);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_hamstep.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -21,11 +22,6 @@ void func_808889B8(BgHidanHamstep* this, GlobalContext* globalCtx);
|
|||
void func_80888A58(BgHidanHamstep* this, GlobalContext* globalCtx);
|
||||
void BgHidanHamstep_DoNothing(BgHidanHamstep* this, GlobalContext* globalCtx);
|
||||
|
||||
extern Gfx D_0600A548[];
|
||||
extern Gfx D_0600A668[];
|
||||
extern CollisionHeader D_0600DE44;
|
||||
extern CollisionHeader D_0600DD1C;
|
||||
|
||||
static f32 sYPosOffsets[] = {
|
||||
-20.0f, -120.0f, -220.0f, -320.0f, -420.0f,
|
||||
};
|
||||
|
@ -158,9 +154,9 @@ void BgHidanHamstep_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if ((this->dyna.actor.params & 0xFF) == 0) {
|
||||
CollisionHeader_GetVirtual(&D_0600DE44, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleStoneStep1Col, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_0600DD1C, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleStoneStep2Col, &colHeader);
|
||||
}
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
@ -410,9 +406,9 @@ void BgHidanHamstep_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
||||
if ((thisx->params & 0xFF) == 0) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_0600A668);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gFireTempleStoneStep1DL);
|
||||
} else {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_0600A548);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gFireTempleStoneStep2DL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_hamstep.c", 796);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_hrock.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -19,9 +20,6 @@ void func_8088960C(BgHidanHrock* this, GlobalContext* globalCtx);
|
|||
void func_808896B8(BgHidanHrock* this, GlobalContext* globalCtx);
|
||||
void func_808894A4(BgHidanHrock* this, GlobalContext* globalCtx);
|
||||
|
||||
extern UNK_TYPE D_0600D054;
|
||||
extern UNK_TYPE D_0600D188;
|
||||
|
||||
const ActorInit Bg_Hidan_Hrock_InitVars = {
|
||||
ACTOR_BG_HIDAN_HROCK,
|
||||
ACTORCAT_BG,
|
||||
|
@ -136,9 +134,9 @@ void BgHidanHrock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (thisx->params == 0) {
|
||||
CollisionHeader_GetVirtual(&D_0600D054, &collisionHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleTallestPillarAboveRoomBeforeBossCol, &collisionHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_0600D188, &collisionHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTemplePillarInsertedInGroundCol, &collisionHeader);
|
||||
}
|
||||
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, collisionHeader);
|
||||
|
@ -233,7 +231,11 @@ void BgHidanHrock_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgHidanHrock_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
static Gfx* dlists[] = { 0x0600A240, 0x0600C838, 0x0600C838 };
|
||||
static Gfx* dlists[] = {
|
||||
gFireTempleTallestPillarAboveRoomBeforeBossDL,
|
||||
gFireTemplePillarInsertedInGroundDL,
|
||||
gFireTemplePillarInsertedInGroundDL,
|
||||
};
|
||||
|
||||
Gfx_DrawDListOpa(globalCtx, dlists[thisx->params]);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_kousi.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -40,14 +41,10 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern CollisionHeader D_0600E2CC;
|
||||
extern CollisionHeader D_0600E380;
|
||||
extern CollisionHeader D_0600E430;
|
||||
|
||||
static CollisionHeader* D_80889E70[] = {
|
||||
&D_0600E2CC,
|
||||
&D_0600E380,
|
||||
&D_0600E430,
|
||||
static CollisionHeader* sMetalFencesCollisions[] = {
|
||||
&gFireTempleMetalFenceWithSlantCol,
|
||||
&gFireTempleMetalFenceCol,
|
||||
&gFireTempleMetalFence2Col,
|
||||
};
|
||||
|
||||
static s16 D_80889E7C[] = {
|
||||
|
@ -57,10 +54,10 @@ static s16 D_80889E7C[] = {
|
|||
0x0000,
|
||||
};
|
||||
|
||||
static Gfx* D_80889E84[] = {
|
||||
0x0600C798,
|
||||
0x0600BFA8,
|
||||
0x0600BB58,
|
||||
static Gfx* sMetalFencesDLs[] = {
|
||||
gFireTempleMetalFenceWithSlantDL,
|
||||
gFireTempleMetalFenceDL,
|
||||
gFireTempleMetalFence2DL,
|
||||
};
|
||||
|
||||
void BgHidanKousi_SetupAction(BgHidanKousi* this, BgHidanKousiActionFunc actionFunc) {
|
||||
|
@ -82,7 +79,7 @@ void BgHidanKousi_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
osSyncPrintf("arg_data おかしい 【格子】\n");
|
||||
}
|
||||
|
||||
CollisionHeader_GetVirtual(D_80889E70[thisx->params & 0xFF], &colHeader);
|
||||
CollisionHeader_GetVirtual(sMetalFencesCollisions[thisx->params & 0xFF], &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
|
||||
thisx->world.rot.y = D_80889E7C[this->dyna.actor.params & 0xFF] + thisx->shape.rot.y;
|
||||
if (Flags_GetSwitch(globalCtx, (thisx->params >> 8) & 0xFF)) {
|
||||
|
@ -161,7 +158,7 @@ void BgHidanKousi_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_kousi.c", 354),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_80889E84[thisx->params & 0xFF]);
|
||||
gSPDisplayList(POLY_OPA_DISP++, sMetalFencesDLs[thisx->params & 0xFF]);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_kousi.c", 359);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_bg_hidan_kowarerukabe.h"
|
||||
#include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -35,7 +36,11 @@ const ActorInit Bg_Hidan_Kowarerukabe_InitVars = {
|
|||
(ActorFunc)BgHidanKowarerukabe_Draw,
|
||||
};
|
||||
|
||||
static Gfx* sBreakableWallDLists[] = { 0x0600B9C0, 0x0600C038, 0x0600B900 };
|
||||
static Gfx* sBreakableWallDLists[] = {
|
||||
gFireTempleCrackedStoneFloorDL,
|
||||
gFireTempleBombableWallDL,
|
||||
gFireTempleLargeBombableWallDL,
|
||||
};
|
||||
|
||||
static ColliderJntSphElementInit sJntSphElementsInit[1] = {
|
||||
{
|
||||
|
@ -65,7 +70,11 @@ static ColliderJntSphInit sJntSphInit = {
|
|||
};
|
||||
|
||||
void BgHidanKowarerukabe_InitDynaPoly(BgHidanKowarerukabe* this, GlobalContext* globalCtx) {
|
||||
static CollisionHeader* collisionHeaders[] = { 0x0600D800, 0x0600D878, 0x0600D8F8 };
|
||||
static CollisionHeader* collisionHeaders[] = {
|
||||
&gFireTempleCrackedStoneFloorCol,
|
||||
&gFireTempleBombableWallCol,
|
||||
&gFireTempleLargeBombableWallCol,
|
||||
};
|
||||
s32 pad;
|
||||
CollisionHeader* colHeader = NULL;
|
||||
s32 pad2;
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
/*
|
||||
* File: z_bg_hidan_rock.c
|
||||
* Overlay: ovl_Bg_Hidan_Rock
|
||||
* Description: Stone blocks (Fire Temple)
|
||||
*/
|
||||
|
||||
#include "z_bg_hidan_rock.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -22,12 +29,6 @@ void func_8088B990(BgHidanRock* this, GlobalContext* globalCtx);
|
|||
|
||||
void func_8088BC40(GlobalContext* globalCtx, BgHidanRock* this);
|
||||
|
||||
extern Gfx D_0600C100[];
|
||||
extern Gfx D_0600C1F0[];
|
||||
extern Gfx D_0600CA10[];
|
||||
extern CollisionHeader* D_0600CB80;
|
||||
extern CollisionHeader* D_0600DF78;
|
||||
|
||||
static Vec3f D_8088BF60 = { 3310.0f, 120.0f, 0.0f };
|
||||
|
||||
const ActorInit Bg_Hidan_Rock_InitVars = {
|
||||
|
@ -42,7 +43,7 @@ const ActorInit Bg_Hidan_Rock_InitVars = {
|
|||
(ActorFunc)BgHidanRock_Draw,
|
||||
};
|
||||
|
||||
static ColliderCylinderInit D_8088BF8C = {
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{
|
||||
COLTYPE_NONE,
|
||||
AT_ON | AT_TYPE_ENEMY,
|
||||
|
@ -81,7 +82,7 @@ void BgHidanRock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
thisx->params = ((thisx->params) >> 8) & 0xFF;
|
||||
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, thisx, &D_8088BF8C);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, thisx, &sCylinderInit);
|
||||
|
||||
if (this->type == 0) {
|
||||
if (Flags_GetSwitch(globalCtx, thisx->params)) {
|
||||
|
@ -93,9 +94,9 @@ void BgHidanRock_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
this->actionFunc = func_8088B268;
|
||||
}
|
||||
thisx->flags |= 0x30;
|
||||
CollisionHeader_GetVirtual(&D_0600CB80, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleStoneBlock1Col, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_0600DF78, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleStoneBlock2Col, &colHeader);
|
||||
this->collider.dim.pos.x = thisx->home.pos.x;
|
||||
this->collider.dim.pos.y = thisx->home.pos.y;
|
||||
this->collider.dim.pos.z = thisx->home.pos.z;
|
||||
|
@ -338,14 +339,18 @@ void BgHidanRock_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (this->unk_16C > 0.0f) {
|
||||
this->collider.dim.height = D_8088BF8C.dim.height * this->unk_16C;
|
||||
this->collider.dim.height = sCylinderInit.dim.height * this->unk_16C;
|
||||
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
|
||||
static u64* sVerticalFlamesTexs[] = {
|
||||
gFireTempleBigVerticalFlame0Tex, gFireTempleBigVerticalFlame1Tex, gFireTempleBigVerticalFlame2Tex,
|
||||
gFireTempleBigVerticalFlame3Tex, gFireTempleBigVerticalFlame4Tex, gFireTempleBigVerticalFlame5Tex,
|
||||
gFireTempleBigVerticalFlame6Tex, gFireTempleBigVerticalFlame7Tex,
|
||||
};
|
||||
|
||||
void func_8088BC40(GlobalContext* globalCtx, BgHidanRock* this) {
|
||||
static UNK_PTR D_8088BFC4[] = { 0x06012120, 0x060128A0, 0x06013020, 0x060137A0,
|
||||
0x06013F20, 0x060146A0, 0x06014E20, 0x060155A0 };
|
||||
s32 pad;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_rock.c", 808);
|
||||
|
@ -365,10 +370,10 @@ void func_8088BC40(GlobalContext* globalCtx, BgHidanRock* this) {
|
|||
Matrix_Translate(-10.5f, 0.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(6.0f, this->unk_16C, 6.0f, MTXMODE_APPLY);
|
||||
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8088BFC4[globalCtx->gameplayFrames & 7]));
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sVerticalFlamesTexs[globalCtx->gameplayFrames & 7]));
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_rock.c", 853),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, D_0600CA10);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFireTempleBigVerticalFlameDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_rock.c", 857);
|
||||
}
|
||||
|
@ -378,9 +383,9 @@ void BgHidanRock_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
|
||||
if (this->type == 0) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_0600C100);
|
||||
Gfx_DrawDListOpa(globalCtx, gFireTempleStoneBlock1DL);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(globalCtx, D_0600C1F0);
|
||||
Gfx_DrawDListOpa(globalCtx, gFireTempleStoneBlock2DL);
|
||||
}
|
||||
|
||||
if (this->unk_16C > 0.0f) {
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
/*
|
||||
* File: z_bg_hidan_rsekizou.c
|
||||
* Overlay: ovl_Bg_Hidan_Rsekizou
|
||||
* Description: Spinning Stone flamethrower
|
||||
*/
|
||||
|
||||
#include "z_bg_hidan_rsekizou.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -109,12 +116,10 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_F32(uncullZoneForward, 1500, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
static UNK_PTR D_8088CD74[] = { 0x06015D20, 0x06016120, 0x06016520, 0x06016920,
|
||||
0x06016D20, 0x06017120, 0x06017520, 0x06017920 };
|
||||
|
||||
extern CollisionHeader D_0600D5C0;
|
||||
extern Gfx D_0600AD00[]; // Display List
|
||||
extern Gfx D_0600DC30[]; // Display List
|
||||
static u64* sFireballsTexs[] = {
|
||||
gFireTempleFireball0Tex, gFireTempleFireball1Tex, gFireTempleFireball2Tex, gFireTempleFireball3Tex,
|
||||
gFireTempleFireball4Tex, gFireTempleFireball5Tex, gFireTempleFireball6Tex, gFireTempleFireball7Tex,
|
||||
};
|
||||
|
||||
void BgHidanRsekizou_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgHidanRsekizou* this = THIS;
|
||||
|
@ -125,7 +130,7 @@ void BgHidanRsekizou_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
colHeader = NULL;
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_UNK);
|
||||
CollisionHeader_GetVirtual(&D_0600D5C0, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleSpinningFlamethrowerCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
Collider_InitJntSph(globalCtx, &this->collider);
|
||||
Collider_SetJntSph(globalCtx, &this->collider, &this->dyna.actor, &sJntSphInit, this->colliderItems);
|
||||
|
@ -186,11 +191,11 @@ Gfx* BgHidanRsekizou_DrawFireball(GlobalContext* globalCtx, BgHidanRsekizou* thi
|
|||
f32 fVar6;
|
||||
f32 tmpf7;
|
||||
|
||||
temp = (((this->burnFrame + frame) % 8) * 7) * 0.14285715f;
|
||||
gSPSegment(displayList++, 0x09, SEGMENTED_TO_VIRTUAL(D_8088CD74[temp]));
|
||||
temp = (((this->burnFrame + frame) % 8) * 7) * (1.0f / 7.0f);
|
||||
gSPSegment(displayList++, 0x09, SEGMENTED_TO_VIRTUAL(sFireballsTexs[temp]));
|
||||
|
||||
frame++;
|
||||
fVar6 = (frame != 4) ? frame + ((3 - this->bendFrame) * 0.33333334f) : frame;
|
||||
fVar6 = (frame != 4) ? frame + ((3 - this->bendFrame) * (1.0f / 3.0f)) : frame;
|
||||
|
||||
gDPSetPrimColor(displayList++, 0, 1, 255, 255, 0, 150);
|
||||
gDPSetEnvColor(displayList++, 255, 0, 0, 255);
|
||||
|
@ -207,14 +212,14 @@ Gfx* BgHidanRsekizou_DrawFireball(GlobalContext* globalCtx, BgHidanRsekizou* thi
|
|||
tmpf7 = (((((0.7f * fVar6) + 0.5f) * 10.0f) * fVar6) + 20.0f);
|
||||
|
||||
mf->wx = (tmpf7 * sins) + this->dyna.actor.world.pos.x;
|
||||
mf->wy = (this->dyna.actor.world.pos.y + 30.0f) + (0.699999988079f * fVar6);
|
||||
mf->wy = (this->dyna.actor.world.pos.y + 30.0f) + ((7.0f / 10.0f) * fVar6);
|
||||
mf->wz = (tmpf7 * coss) + this->dyna.actor.world.pos.z;
|
||||
|
||||
gSPMatrix(displayList++,
|
||||
Matrix_MtxFToMtx(Matrix_CheckFloats(mf, "../z_bg_hidan_rsekizou.c", 543),
|
||||
Graph_Alloc(globalCtx->state.gfxCtx, sizeof(Mtx))),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(displayList++, D_0600DC30);
|
||||
gSPDisplayList(displayList++, gFireTempleFireballDL);
|
||||
|
||||
return displayList;
|
||||
}
|
||||
|
@ -231,7 +236,7 @@ void BgHidanRsekizou_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_rsekizou.c", 568),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_0600AD00);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gFireTempleSpinningFlamethrowerDL);
|
||||
Matrix_MtxFCopy(&mf, &gMtxFClear);
|
||||
|
||||
POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x14);
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
/*
|
||||
* File: z_bg_hidan_sekizou.c
|
||||
* Overlay: ovl_Bg_Hidan_Sekizou
|
||||
* Description: Stationary flame thrower statue
|
||||
*/
|
||||
|
||||
#include "z_bg_hidan_sekizou.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -9,11 +16,6 @@ void BgHidanSekizou_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void BgHidanSekizou_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgHidanSekizou_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern UNK_TYPE D_0600ABC8;
|
||||
extern UNK_TYPE D_0600B0F8;
|
||||
extern UNK_TYPE D_0600CC90;
|
||||
extern UNK_TYPE D_0600DC30;
|
||||
|
||||
/*
|
||||
const ActorInit Bg_Hidan_Sekizou_InitVars = {
|
||||
ACTOR_BG_HIDAN_SEKIZOU,
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
/*
|
||||
* File: z_bg_hidan_sima.c
|
||||
* Overlay: ovl_Bg_Hidan_Sima
|
||||
* Description: Stone platform (Fire Temple)
|
||||
*/
|
||||
|
||||
#include "z_bg_hidan_sima.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -16,12 +23,6 @@ void func_8088E760(BgHidanSima* this, GlobalContext* globalCtx);
|
|||
void func_8088E7A8(BgHidanSima* this, GlobalContext* globalCtx);
|
||||
void func_8088E90C(BgHidanSima* this);
|
||||
|
||||
extern Gfx D_0600C338[];
|
||||
extern Gfx D_0600C470[];
|
||||
extern Gfx D_0600DC30[];
|
||||
extern CollisionHeader D_0600FAE8;
|
||||
extern CollisionHeader D_060120E8;
|
||||
|
||||
const ActorInit Bg_Hidan_Sima_InitVars = {
|
||||
ACTOR_BG_HIDAN_SIMA,
|
||||
ACTORCAT_BG,
|
||||
|
@ -76,7 +77,10 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
u64* D_8088F1FC[] = { 0x06015D20, 0x06016120, 0x06016520, 0x06016920, 0x06016D20, 0x06017120, 0x06017520, 0x06017920 };
|
||||
static u64* sFireballsTexs[] = {
|
||||
gFireTempleFireball0Tex, gFireTempleFireball1Tex, gFireTempleFireball2Tex, gFireTempleFireball3Tex,
|
||||
gFireTempleFireball4Tex, gFireTempleFireball5Tex, gFireTempleFireball6Tex, gFireTempleFireball7Tex,
|
||||
};
|
||||
|
||||
void BgHidanSima_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgHidanSima* this = THIS;
|
||||
|
@ -87,9 +91,9 @@ void BgHidanSima_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
|
||||
if (this->dyna.actor.params == 0) {
|
||||
CollisionHeader_GetVirtual(&D_060120E8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleStonePlatform1Col, &colHeader);
|
||||
} else {
|
||||
CollisionHeader_GetVirtual(&D_0600FAE8, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleStonePlatform2Col, &colHeader);
|
||||
}
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
Collider_InitJntSph(globalCtx, &this->collider);
|
||||
|
@ -254,21 +258,21 @@ Gfx* func_8088EB54(GlobalContext* globalCtx, BgHidanSima* this, Gfx* gfx) {
|
|||
mtxF.yy += 0.4f;
|
||||
mtxF.zz += 0.4f;
|
||||
|
||||
gSPSegment(gfx++, 0x09, SEGMENTED_TO_VIRTUAL(D_8088F1FC[(this->timer + s3) % 7]));
|
||||
gSPSegment(gfx++, 0x09, SEGMENTED_TO_VIRTUAL(sFireballsTexs[(this->timer + s3) % 7]));
|
||||
gSPMatrix(gfx++,
|
||||
Matrix_MtxFToMtx(Matrix_CheckFloats(&mtxF, "../z_bg_hidan_sima.c", 611),
|
||||
Graph_Alloc(globalCtx->state.gfxCtx, sizeof(Mtx))),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gfx++, D_0600DC30);
|
||||
gSPDisplayList(gfx++, gFireTempleFireballDL);
|
||||
}
|
||||
mtxF.wx = this->dyna.actor.world.pos.x + (phi_s5 * 25 + 80) * sin;
|
||||
mtxF.wz = this->dyna.actor.world.pos.z + (phi_s5 * 25 + 80) * cos;
|
||||
gSPSegment(gfx++, 0x09, SEGMENTED_TO_VIRTUAL(D_8088F1FC[(this->timer + s3) % 7]));
|
||||
gSPSegment(gfx++, 0x09, SEGMENTED_TO_VIRTUAL(sFireballsTexs[(this->timer + s3) % 7]));
|
||||
gSPMatrix(gfx++,
|
||||
Matrix_MtxFToMtx(Matrix_CheckFloats(&mtxF, "../z_bg_hidan_sima.c", 624),
|
||||
Graph_Alloc(globalCtx->state.gfxCtx, sizeof(Mtx))),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gfx++, D_0600DC30);
|
||||
gSPDisplayList(gfx++, gFireTempleFireballDL);
|
||||
return gfx;
|
||||
}
|
||||
|
||||
|
@ -280,9 +284,9 @@ void BgHidanSima_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
|||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_sima.c", 645),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
if (this->dyna.actor.params == 0) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_0600C338);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gFireTempleStonePlatform1DL);
|
||||
} else {
|
||||
gSPDisplayList(POLY_OPA_DISP++, D_0600C470);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gFireTempleStonePlatform2DL);
|
||||
if (this->actionFunc == func_8088E7A8) {
|
||||
POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x14);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 1, 255, 255, 0, 150);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_bg_hidan_syoku.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -35,9 +36,6 @@ static InitChainEntry sInitChain[] = {
|
|||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
extern Gfx D_0600A7E0[];
|
||||
extern CollisionHeader* D_0600E568;
|
||||
|
||||
void BgHidanSyoku_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgHidanSyoku* this = THIS;
|
||||
|
@ -45,7 +43,7 @@ void BgHidanSyoku_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
DynaPolyActor_Init(&this->dyna, DPM_PLAYER);
|
||||
CollisionHeader_GetVirtual(&D_0600E568, &colHeader);
|
||||
CollisionHeader_GetVirtual(&gFireTempleFlareDancerPlatformCol, &colHeader);
|
||||
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
this->actionFunc = func_8088F4B8;
|
||||
this->dyna.actor.home.pos.y += 540.0f;
|
||||
|
@ -126,5 +124,5 @@ void BgHidanSyoku_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgHidanSyoku_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_0600A7E0);
|
||||
Gfx_DrawDListOpa(globalCtx, gFireTempleFlareDancerPlatformDL);
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "objects/object_demo_kekkai/object_demo_kekkai.h"
|
||||
#include "overlays/actors/ovl_Boss_Goma/z_boss_goma.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -91,8 +92,8 @@ static ShutterInfo D_80998134[] = {
|
|||
{ 0x06000100, 0x060001F0, 240, 14, 50, 15 },
|
||||
{ 0x060010C0, NULL, 130, 12, 50, 15 },
|
||||
{ gDoorMetalBarsDL, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ 0x06010CB0, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ 0x06011F20, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ gFireTempleDoorFrontDL, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ gFireTempleDoorBackDL, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ 0x060000C0, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ 0x06005D90, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
{ 0x06007000, gDungeonDoorDL, 130, 12, 20, 15 },
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_en_door.h"
|
||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||
#include "objects/object_hidan_objects/object_hidan_objects.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -67,8 +68,9 @@ static u8 sDoorAnimOpenFrames[] = { 25, 25, 25, 25 };
|
|||
static u8 sDoorAnimCloseFrames[] = { 60, 70, 60, 70 };
|
||||
|
||||
static Gfx* D_809FCEE4[5][2] = {
|
||||
{ gDoorLeftDL, gDoorRightDL }, { 0x0600F998, 0x0600F938 }, { 0x06004958, 0x06004A10 },
|
||||
{ 0x060013B8, 0x06001420 }, { 0x050047A0, 0x05004978 },
|
||||
{ gDoorLeftDL, gDoorRightDL }, { gFireTempleBombableDoorDL2, gFireTempleBombableDoorDL1 },
|
||||
{ 0x06004958, 0x06004A10 }, { 0x060013B8, 0x06001420 },
|
||||
{ 0x050047A0, 0x05004978 },
|
||||
};
|
||||
|
||||
void EnDoor_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
|
|
|
@ -128,11 +128,6 @@ D_05017A60 = 0x05017A60;
|
|||
// z_door_toki
|
||||
D_06007888 = 0x06007888;
|
||||
|
||||
// z_bg_hidan_kousi
|
||||
D_0600E2CC = 0x0600E2CC;
|
||||
D_0600E380 = 0x0600E380;
|
||||
D_0600E430 = 0x0600E430;
|
||||
|
||||
// z_bg_spot01_idomizu
|
||||
D_060007D0 = 0x060007D0;
|
||||
|
||||
|
@ -192,19 +187,6 @@ D_06005A20 = 0x06005A20;
|
|||
D_06000360 = 0x06000360;
|
||||
D_06000180 = 0x06000180;
|
||||
|
||||
// z_bg_hidan_dalm
|
||||
D_0600BBF0 = 0x0600BBF0;
|
||||
D_0600BDF0 = 0x0600BDF0;
|
||||
D_0600DA10 = 0x0600DA10;
|
||||
|
||||
// z_bg_hidan_fslift
|
||||
D_0600B630 = 0x0600B630;
|
||||
D_0600E1E8 = 0x0600E1E8;
|
||||
|
||||
// z_bg_hidan_syoku
|
||||
D_0600A7E0 = 0x0600A7E0;
|
||||
D_0600E568 = 0x0600E568;
|
||||
|
||||
// z_bg_jya_1flift
|
||||
D_060004A8 = 0x060004A8;
|
||||
D_060001F0 = 0x060001F0;
|
||||
|
@ -848,9 +830,6 @@ D_060012C0 = 0x060012C0;
|
|||
D_050095B0 = 0x050095B0;
|
||||
D_05009940 = 0x05009940;
|
||||
|
||||
// z_bg_hidan_firewall
|
||||
D_0600DA80 = 0x0600DA80;
|
||||
|
||||
// z_en_ani
|
||||
D_060000F0 = 0x060000F0;
|
||||
D_060067B8 = 0x060067B8;
|
||||
|
@ -1135,11 +1114,6 @@ D_06012160 = 0x06012160;
|
|||
D_05005290 = 0x05005290;
|
||||
D_05005380 = 0x05005380;
|
||||
|
||||
// z_en_bg_hidan_rsekizou
|
||||
D_0600AD00 = 0x0600AD00;
|
||||
D_0600D5C0 = 0x0600D5C0;
|
||||
D_0600DC30 = 0x0600DC30;
|
||||
|
||||
// z_en_geldb
|
||||
D_0600ADF8 = 0x0600ADF8;
|
||||
D_0600B6D4 = 0x0600B6D4;
|
||||
|
@ -1398,9 +1372,6 @@ D_06000B20 = 0x06000B20;
|
|||
D_06000BC0 = 0x06000BC0;
|
||||
D_06001580 = 0x06001580;
|
||||
|
||||
// z_Bg_Hidan_Fwbig
|
||||
D_0600DB20 = 0x0600DB20;
|
||||
|
||||
// z_bg_po_event
|
||||
D_06007860 = 0x06007860;
|
||||
D_060075A0 = 0x060075A0;
|
||||
|
@ -1530,39 +1501,6 @@ D_06005E30 = 0x06005E30;
|
|||
D_06006F70 = 0x06006F70;
|
||||
D_06000C2C = 0x06000C2C;
|
||||
|
||||
// z_bg_hidan_hamstep
|
||||
D_0600A548 = 0x0600A548;
|
||||
D_0600A668 = 0x0600A668;
|
||||
D_0600DE44 = 0x0600DE44;
|
||||
D_0600DD1C = 0x0600DD1C;
|
||||
|
||||
// z_bg_hidan_hrock
|
||||
D_0600D054 = 0x0600D054;
|
||||
D_0600D188 = 0x0600D188;
|
||||
|
||||
// z_bg_hidan_kowarerukabe
|
||||
D_05000530 = 0x05000530;
|
||||
|
||||
// z_bg_hidan_rock
|
||||
D_0600C100 = 0x0600C100;
|
||||
D_0600C1F0 = 0x0600C1F0;
|
||||
D_0600CA10 = 0x0600CA10;
|
||||
D_0600CB80 = 0x0600CB80;
|
||||
D_0600DF78 = 0x0600DF78;
|
||||
|
||||
// z_bg_hidan_sekizou
|
||||
D_0600ABC8 = 0x0600ABC8;
|
||||
D_0600B0F8 = 0x0600B0F8;
|
||||
D_0600CC90 = 0x0600CC90;
|
||||
D_0600DC30 = 0x0600DC30;
|
||||
|
||||
// z_bg_hidan_sima
|
||||
D_0600C338 = 0x0600C338;
|
||||
D_0600C470 = 0x0600C470;
|
||||
D_0600DC30 = 0x0600DC30;
|
||||
D_0600FAE8 = 0x0600FAE8;
|
||||
D_060120E8 = 0x060120E8;
|
||||
|
||||
// z_bg_ice_objects
|
||||
D_06000190 = 0x06000190;
|
||||
D_060003F0 = 0x060003F0;
|
||||
|
|
Loading…
Add table
Reference in a new issue