1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +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:
Anghelo Carvajal 2021-03-18 04:23:59 -03:00 committed by GitHub
parent 6b9a44e5a0
commit e48e565ffe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 239 additions and 188 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View 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>

View File

@ -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
View File

@ -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

View File

@ -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) {

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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]);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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) {

View File

@ -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);

View File

@ -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,

View File

@ -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);

View File

@ -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);
}

View File

@ -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 },

View File

@ -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) {

View File

@ -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;