[Object] Bigpo object documentation (+ some gameplay_keep) (#525)

* Bigpo: object documentation starts and already issues

* Bigpo: almost all named

* Bigpo: done with object except ubused blobs

* Bigpo: added flame docs to gameplay_keep and minor cleaning, format pass

* Bigpo: forgot to remove sym and replace everywhere, with formater pass

* Bigpo: forgot about actorfixer

* Bigpo: disasm cant find asset xml values, have to put this undefined sym back for now

* Bigpo: warnings

* Bigpo: remove extern for gameplay_keep display list reference from aqua

* EnBigpo: suggested fixes to header calls and function name

Co-authored-by: Isghj8 <isghj8@gmail.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
This commit is contained in:
Isghj 2021-12-26 19:08:36 -08:00 committed by GitHub
parent fdcf1d3fd3
commit af7525e2d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 82 additions and 96 deletions

View File

@ -1324,11 +1324,11 @@
<DList Name="gameplay_keep_DL_07D260" Offset="0x7D260" /> <DList Name="gameplay_keep_DL_07D260" Offset="0x7D260" />
<DList Name="gameplay_keep_DL_07D348" Offset="0x7D348" /> <DList Name="gameplay_keep_DL_07D348" Offset="0x7D348" />
<Texture Name="gameplay_keep_Tex_07D350" OutName="tex_07D350" Format="i8" Width="16" Height="32" Offset="0x7D350" /> <Texture Name="gameplay_keep_Tex_07D350" OutName="tex_07D350" Format="i8" Width="16" Height="32" Offset="0x7D350" />
<DList Name="gameplay_keep_DL_07D590" Offset="0x7D590" /> <DList Name="gGameplayKeepDrawFlameDL" Offset="0x7D590" />
<DList Name="gameplay_keep_DL_07D650" Offset="0x7D650" /> <DList Name="gameplay_keep_DL_07D650" Offset="0x7D650" />
<Texture Name="gameplay_keep_Tex_07D710" OutName="tex_07D710" Format="i4" Width="32" Height="64" Offset="0x7D710" /> <Texture Name="gGameplayKeepFlameRippleTex" OutName="gameplay_keep_flame_ripple" Format="i4" Width="32" Height="64" Offset="0x7D710" />
<Texture Name="gameplay_keep_Tex_07DB10" OutName="tex_07DB10" Format="i4" Width="32" Height="64" Offset="0x7DB10" /> <Texture Name="gameplay_keep_Tex_07DB10" OutName="tex_07DB10" Format="i4" Width="32" Height="64" Offset="0x7DB10" />
<Texture Name="gameplay_keep_Tex_07DF10" OutName="tex_07DF10" Format="i8" Width="32" Height="64" Offset="0x7DF10" /> <Texture Name="gGameplayKeepFlameOutlineTex" OutName="gameplay_keep_flame_outline" Format="i8" Width="32" Height="64" Offset="0x7DF10" />
<DList Name="gameplay_keep_DL_07E8C0" Offset="0x7E8C0" /> <DList Name="gameplay_keep_DL_07E8C0" Offset="0x7E8C0" />
<Texture Name="gameplay_keep_Tex_07EA08" OutName="tex_07EA08" Format="i8" Width="32" Height="64" Offset="0x7EA08" /> <Texture Name="gameplay_keep_Tex_07EA08" OutName="tex_07EA08" Format="i8" Width="32" Height="64" Offset="0x7EA08" />
<TextureAnimation Name="gameplay_keep_Matanimheader_07F218" Offset="0x7F218" /> <TextureAnimation Name="gameplay_keep_Matanimheader_07F218" Offset="0x7F218" />

View File

@ -1,46 +1,46 @@
<Root> <Root>
<File Name="object_bigpo" Segment="6"> <File Name="object_bigpo" Segment="6">
<Animation Name="object_bigpo_Anim_000158" Offset="0x158" /> <Animation Name="gBigpoSwingLampAttackAnim" Offset="0x158" />
<Animation Name="object_bigpo_Anim_000454" Offset="0x454" /> <Animation Name="gBigpoShockAnim" Offset="0x454" />
<Animation Name="object_bigpo_Anim_000608" Offset="0x608" /> <Animation Name="gBigpoBackpeddleAnim" Offset="0x608" />
<Animation Name="object_bigpo_Anim_000924" Offset="0x924" /> <Animation Name="gBigpoFloatAnim" Offset="0x924" />
<Animation Name="object_bigpo_Anim_000F9C" Offset="0xF9C" /> <Animation Name="gBigpoAwakenSpawnAnim" Offset="0xF9C" />
<Animation Name="object_bigpo_Anim_001360" Offset="0x1360" /> <Animation Name="gBigpoAwakenStretchAnim" Offset="0x1360" />
<Texture Name="object_bigpo_Tex_001370" OutName="tex_001370" Format="i8" Width="32" Height="64" Offset="0x1370" /> <Texture Name="gBigpoSoulFace" OutName="bigpo_soul_face" Format="i8" Width="32" Height="64" Offset="0x1370" />
<DList Name="object_bigpo_DL_001BB0" Offset="0x1BB0" /> <DList Name="gBigpoDrawSoulDL" Offset="0x1BB0" />
<Texture Name="object_bigpo_Tex_001C70" OutName="tex_001C70" Format="rgba16" Width="16" Height="16" Offset="0x1C70" /> <Texture Name="gBigpoNecklaceSkullHalfTex" OutName="bigpo_skull_necklace" Format="rgba16" Width="16" Height="16" Offset="0x1C70" />
<Texture Name="object_bigpo_Tex_001E70" OutName="tex_001E70" Format="rgba16" Width="16" Height="16" Offset="0x1E70" /> <Texture Name="gBigpoLanternGlassTex" OutName="bigpo_lantern_glass" Format="rgba16" Width="16" Height="16" Offset="0x1E70" />
<Texture Name="object_bigpo_Tex_002070" OutName="tex_002070" Format="rgba16" Width="32" Height="32" Offset="0x2070" /> <Texture Name="gBigpoTornRobeTex" OutName="bigpo_torn_robe" Format="rgba16" Width="32" Height="32" Offset="0x2070" />
<Texture Name="object_bigpo_Tex_002870" OutName="tex_002870" Format="rgba16" Width="16" Height="16" Offset="0x2870" /> <Texture Name="gBigpoArmSectionTex" OutName="bigpo_arm_section" Format="rgba16" Width="16" Height="16" Offset="0x2870" />
<Texture Name="object_bigpo_Tex_002A70" OutName="tex_002A70" Format="rgba16" Width="8" Height="8" Offset="0x2A70" /> <Texture Name="gBigpoHoodEdge" OutName="bigpo_hood_edge" Format="rgba16" Width="8" Height="8" Offset="0x2A70" />
<Texture Name="object_bigpo_Tex_002AF0" OutName="tex_002AF0" Format="rgba16" Width="16" Height="8" Offset="0x2AF0" /> <Texture Name="gBigpoNecklaceBeadsTex" OutName="bigpo_necklace_beads" Format="rgba16" Width="16" Height="8" Offset="0x2AF0" />
<Texture Name="object_bigpo_Tex_002BF0" OutName="tex_002BF0" Format="rgba16" Width="16" Height="16" Offset="0x2BF0" /> <Texture Name="gBigpoShawlTex" OutName="bigpo_shawl" Format="rgba16" Width="16" Height="16" Offset="0x2BF0" />
<Texture Name="object_bigpo_Tex_002DF0" OutName="tex_002DF0" Format="rgba16" Width="16" Height="16" Offset="0x2DF0" /> <Texture Name="gBigpoGlowingEyeTex" OutName="bigpo_glowing_eye" Format="rgba16" Width="16" Height="16" Offset="0x2DF0" />
<!-- <Blob Name="object_bigpo_Blob_003200" Size="0x350" Offset="0x3200" /> --> <!-- <Blob Name="object_bigpo_Blob_003200" Size="0x350" Offset="0x3200" /> -->
<!-- <Blob Name="object_bigpo_Blob_003790" Size="0x370" Offset="0x3790" /> --> <!-- <Blob Name="object_bigpo_Blob_003790" Size="0x370" Offset="0x3790" /> -->
<DList Name="object_bigpo_DL_0041A0" Offset="0x41A0" /> <DList Name="gBigpoDrawLanternFallingDL" Offset="0x41A0" />
<DList Name="object_bigpo_DL_0042C8" Offset="0x42C8" /> <DList Name="gBigpoDrawLanternMainDL" Offset="0x42C8" />
<DList Name="object_bigpo_DL_0043F8" Offset="0x43F8" /> <DList Name="gBigpoDrawLanternPurpleTopDL" Offset="0x43F8" />
<DList Name="object_bigpo_DL_004488" Offset="0x4488" /> <DList Name="gBigpoDrawHandDL" Offset="0x4488" />
<DList Name="object_bigpo_DL_004538" Offset="0x4538" /> <DList Name="gBigpoDrawSmallArmDL" Offset="0x4538" />
<DList Name="object_bigpo_DL_0045D8" Offset="0x45D8" /> <DList Name="gBigpoDrawBigArmDL" Offset="0x45D8" />
<DList Name="object_bigpo_DL_004680" Offset="0x4680" /> <DList Name="gBigpoDrawArmAndGrowthDL" Offset="0x4680" />
<DList Name="object_bigpo_DL_004768" Offset="0x4768" /> <DList Name="gBigpoDrawMediumArmDL" Offset="0x4768" />
<DList Name="object_bigpo_DL_004808" Offset="0x4808" /> <DList Name="gBigpoDrawNecklaceHoodShawlDL" Offset="0x4808" />
<DList Name="object_bigpo_DL_004AE8" Offset="0x4AE8" /> <DList Name="gBigpoDrawFaceDL" Offset="0x4AE8" />
<DList Name="object_bigpo_DL_004BD8" Offset="0x4BD8" /> <DList Name="gBigpoDrawLowerRobeDL" Offset="0x4BD8" />
<Texture Name="object_bigpo_Tex_004C98" OutName="tex_004C98" Format="rgba16" Width="16" Height="16" Offset="0x4C98" /> <Texture Name="gBigpoCrispyPiecesTex" OutName="bigpo_crispy_pieces" Format="rgba16" Width="16" Height="16" Offset="0x4C98" />
<Texture Name="object_bigpo_Tex_004E98" OutName="tex_004E98" Format="rgba16" Width="8" Height="8" Offset="0x4E98" /> <Texture Name="gBigpoCrispyEyesTex" OutName="bigpo_crispy_eyes" Format="rgba16" Width="8" Height="8" Offset="0x4E98" />
<DList Name="object_bigpo_DL_0058B8" Offset="0x58B8" /> <DList Name="gBigpoDrawCrispyBodyDL" Offset="0x58B8" />
<Limb Name="object_bigpo_Standardlimb_005B88" Type="Standard" Offset="0x5B88" /> <Limb Name="gBigpoFaceLimb" Type="Standard" Offset="0x5B88" />
<Limb Name="object_bigpo_Standardlimb_005B94" Type="Standard" Offset="0x5B94" /> <Limb Name="gBigpoLeftArmUpperLimb" Type="Standard" Offset="0x5B94" />
<Limb Name="object_bigpo_Standardlimb_005BA0" Type="Standard" Offset="0x5BA0" /> <Limb Name="gBigpoLeftForarmLimb" Type="Standard" Offset="0x5BA0" />
<Limb Name="object_bigpo_Standardlimb_005BAC" Type="Standard" Offset="0x5BAC" /> <Limb Name="gBigpoRightArmUpperLimb" Type="Standard" Offset="0x5BAC" />
<Limb Name="object_bigpo_Standardlimb_005BB8" Type="Standard" Offset="0x5BB8" /> <Limb Name="gBigpoRightForarmLimb" Type="Standard" Offset="0x5BB8" />
<Limb Name="object_bigpo_Standardlimb_005BC4" Type="Standard" Offset="0x5BC4" /> <Limb Name="gBigpoRightHandLimb" Type="Standard" Offset="0x5BC4" />
<Limb Name="object_bigpo_Standardlimb_005BD0" Type="Standard" Offset="0x5BD0" /> <Limb Name="gBigpoLanternLimb" Type="Standard" Offset="0x5BD0" />
<Limb Name="object_bigpo_Standardlimb_005BDC" Type="Standard" Offset="0x5BDC" /> <Limb Name="gBigpoHatAndCloakLimb" Type="Standard" Offset="0x5BDC" />
<Limb Name="object_bigpo_Standardlimb_005BE8" Type="Standard" Offset="0x5BE8" /> <Limb Name="gBigpoLowerRobe" Type="Standard" Offset="0x5BE8" />
<Skeleton Name="object_bigpo_Skel_005C18" Type="Normal" LimbType="Standard" Offset="0x5C18" /> <Skeleton Name="gBigpoSkeleton" Type="Normal" LimbType="Standard" Offset="0x5C18" />
</File> </File>
</Root> </Root>

View File

@ -3991,7 +3991,7 @@ extern UNK_TYPE D_04079B10;
extern Gfx D_0407AB10[]; // sun (sparkles when small) displaylist extern Gfx D_0407AB10[]; // sun (sparkles when small) displaylist
extern Gfx D_0407AB58[]; extern Gfx D_0407AB58[];
extern UNK_TYPE D_0407AFB0; extern UNK_TYPE D_0407AFB0;
extern Gfx D_0407D590[]; extern Gfx gGameplayKeepDrawFlameDL[];
extern UNK_TYPE D_0407D650; extern UNK_TYPE D_0407D650;
extern UNK_TYPE D_0407F218; extern UNK_TYPE D_0407F218;
extern UNK_TYPE D_040815D0; extern UNK_TYPE D_040815D0;

View File

@ -1,5 +1,6 @@
#include "global.h" #include "global.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#include "objects/gameplay_keep/gameplay_keep.h"
typedef enum { typedef enum {
FIRE_STATE_0, FIRE_STATE_0,
@ -162,7 +163,7 @@ void FireObj_Draw(GlobalContext* globalCtx, FireObj* fire) {
Matrix_Scale(fire->xScale, fire->yScale, 1.0f, MTXMODE_APPLY); Matrix_Scale(fire->xScale, fire->yScale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0407D590); gSPDisplayList(POLY_XLU_DISP++, gGameplayKeepDrawFlameDL);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
} }

View File

@ -5,6 +5,8 @@
*/ */
#include "z_en_bigpo.h" #include "z_en_bigpo.h"
#include "objects/object_bigpo/object_bigpo.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00001215 #define FLAGS 0x00001215
@ -32,6 +34,7 @@ void EnBigpo_SpawnCutsceneStage6(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_SpawnCutsceneStage7(EnBigpo* this); void EnBigpo_SpawnCutsceneStage7(EnBigpo* this);
void EnBigpo_SpawnCutsceneStage8(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_SpawnCutsceneStage8(EnBigpo* this, GlobalContext* globalCtx);
s32 EnBigpo_ApplyDamage(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_LowerCutsceneSubCamera(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_LowerCutsceneSubCamera(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_WellWaitForProximity(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_WellWaitForProximity(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_WaitCutsceneQueue(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_WaitCutsceneQueue(EnBigpo* this, GlobalContext* globalCtx);
@ -48,7 +51,6 @@ void EnBigpo_SpinAttack(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_SetupSpinDown(EnBigpo* this); void EnBigpo_SetupSpinDown(EnBigpo* this);
void EnBigpo_SpinningDown(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_SpinningDown(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_CheckHealth(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_CheckHealth(EnBigpo* this, GlobalContext* globalCtx);
s32 EnBigpo_ApplyDamage(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_SetupDeath(EnBigpo* this); void EnBigpo_SetupDeath(EnBigpo* this);
void EnBigpo_BurnAwayDeath(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_BurnAwayDeath(EnBigpo* this, GlobalContext* globalCtx);
void EnBigpo_SetupLanternDrop(EnBigpo* this, GlobalContext* globalCtx); void EnBigpo_SetupLanternDrop(EnBigpo* this, GlobalContext* globalCtx);
@ -80,17 +82,6 @@ void EnBigpo_DrawLantern(Actor* thisx, GlobalContext* globalCtx);
void EnBigpo_DrawCircleFlames(Actor* thisx, GlobalContext* globalCtx); void EnBigpo_DrawCircleFlames(Actor* thisx, GlobalContext* globalCtx);
void EnBigpo_RevealedFire(Actor* thisx, GlobalContext* globalCtx); void EnBigpo_RevealedFire(Actor* thisx, GlobalContext* globalCtx);
extern AnimationHeader D_06001360;
extern SkeletonHeader D_06005C18;
extern AnimationHeader D_06000924;
extern AnimationHeader D_06000924;
extern AnimationHeader D_06000454;
extern Gfx D_060041A0;
extern Gfx D_06001BB0;
extern Gfx D_060058B8;
extern Gfx D_060042C8;
extern Gfx D_060043F8;
extern const ActorInit En_Bigpo_InitVars; extern const ActorInit En_Bigpo_InitVars;
const ActorInit En_Bigpo_InitVars = { const ActorInit En_Bigpo_InitVars = {
@ -203,7 +194,7 @@ void EnBigpo_Init(Actor* thisx, GlobalContext* globalCtx2) {
return; return;
} }
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06005C18, &D_06000924, this->jointTable, this->morphTable, SkelAnime_Init(globalCtx, &this->skelAnime, &gBigpoSkeleton, &gBigpoFloatAnim, this->jointTable, this->morphTable,
ENBIGPO_LIMBCOUNT); ENBIGPO_LIMBCOUNT);
Collider_InitAndSetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); Collider_InitAndSetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo(&thisx->colChkInfo, &sDamageTable, &sColChkInfoInit); CollisionCheck_SetInfo(&thisx->colChkInfo, &sDamageTable, &sColChkInfoInit);
@ -244,7 +235,7 @@ void EnBigpo_Destroy(Actor* thisx, GlobalContext* globalCtx) {
if ((this->actor.params != ENBIGPO_POSSIBLEFIRE) && (this->actor.params != ENBIGPO_CHOSENFIRE) && if ((this->actor.params != ENBIGPO_POSSIBLEFIRE) && (this->actor.params != ENBIGPO_CHOSENFIRE) &&
(this->actor.params != ENBIGPO_REVEALEDFIRE) && (this->actor.params != ENBIGPO_UNK5)) { (this->actor.params != ENBIGPO_REVEALEDFIRE) && (this->actor.params != ENBIGPO_UNK5)) {
// if NOT a fire type, *ENBIGPO_REGULAR and ENBIGPO_SUMMONED combat types only) // if NOT a fire type, *ENBIGPO_REGULAR and ENBIGPO_SUMMONED (combat types only)
if (1) {} if (1) {}
globalCtx2 = globalCtx; globalCtx2 = globalCtx;
for (fireCount = 0; fireCount < ARRAY_COUNT(this->fires); fireCount++) { for (fireCount = 0; fireCount < ARRAY_COUNT(this->fires); fireCount++) {
@ -254,7 +245,7 @@ void EnBigpo_Destroy(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
void func_80B61914(EnBigpo* this) { void EnBigpo_RotateSpawnCutsceneFires(EnBigpo* this) {
EnBigpoFireEffect* firePtr; EnBigpoFireEffect* firePtr;
s32 i; s32 i;
@ -275,7 +266,9 @@ void EnBigpo_UpdateSpin(EnBigpo* this) {
} }
} }
// Lowers the position/eye of the camera during the Big Poe spawn cutscene /*
* Lowers the position/eye of the camera during the Big Poe spawn cutscene
*/
void EnBigpo_LowerCutsceneSubCamera(EnBigpo* this, GlobalContext* globalContext) { void EnBigpo_LowerCutsceneSubCamera(EnBigpo* this, GlobalContext* globalContext) {
Camera* subCam; Camera* subCam;
@ -330,7 +323,7 @@ void EnBigpo_SpawnCutsceneStage1(EnBigpo* this, GlobalContext* globalCtx) {
this->actor.draw = EnBigpo_DrawCircleFlames; this->actor.draw = EnBigpo_DrawCircleFlames;
this->actor.shape.rot.y = BINANG_ROT180(this->actor.yawTowardsPlayer); this->actor.shape.rot.y = BINANG_ROT180(this->actor.yawTowardsPlayer);
func_80B61914(this); EnBigpo_RotateSpawnCutsceneFires(this);
for (i = 0; i < ARRAY_COUNT(this->fires); i++) { for (i = 0; i < ARRAY_COUNT(this->fires); i++) {
this->fires[i].pos.y = this->actor.world.pos.y; this->fires[i].pos.y = this->actor.world.pos.y;
@ -383,7 +376,7 @@ void EnBigpo_SpawnCutsceneStage4(EnBigpo* this, GlobalContext* globalCtx) {
this->actor.velocity.y += 0.25f; this->actor.velocity.y += 0.25f;
} }
this->actor.shape.rot.y += this->rotVelocity; this->actor.shape.rot.y += this->rotVelocity;
func_80B61914(this); EnBigpo_RotateSpawnCutsceneFires(this);
if (1) {} if (1) {}
for (i = 0; i < ARRAY_COUNT(this->fires); i++) { for (i = 0; i < ARRAY_COUNT(this->fires); i++) {
@ -402,7 +395,7 @@ void EnBigpo_SpawnCutsceneStage4(EnBigpo* this, GlobalContext* globalCtx) {
* big poe starts to visibly appear * big poe starts to visibly appear
*/ */
void EnBigpo_SpawnCutsceneStage5(EnBigpo* this) { void EnBigpo_SpawnCutsceneStage5(EnBigpo* this) {
Animation_PlayLoop(&this->skelAnime, &D_06001360); Animation_PlayLoop(&this->skelAnime, &gBigpoAwakenStretchAnim);
this->actor.draw = EnBigpo_DrawMainBigpo; this->actor.draw = EnBigpo_DrawMainBigpo;
Actor_SetScale(&this->actor, 0.014f); Actor_SetScale(&this->actor, 0.014f);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_STALKIDS_APPEAR); Audio_PlayActorSound2(&this->actor, NA_SE_EN_STALKIDS_APPEAR);
@ -420,7 +413,7 @@ void EnBigpo_SpawnCutsceneStage6(EnBigpo* this, GlobalContext* globalCtx) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
this->actor.shape.rot.y += this->rotVelocity; this->actor.shape.rot.y += this->rotVelocity;
alphaPlus = this->mainColor.a + 10; // decrease transparency alphaPlus = this->mainColor.a + 10; // decrease transparency
func_80B61914(this); EnBigpo_RotateSpawnCutsceneFires(this);
if (alphaPlus >= 90) { if (alphaPlus >= 90) {
this->rotVelocity -= 0x80; this->rotVelocity -= 0x80;
this->actor.velocity.y -= 0.25f; this->actor.velocity.y -= 0.25f;
@ -516,7 +509,7 @@ void EnBigpo_SetupWarpIn(EnBigpo* this, GlobalContext* globalCtx) {
s16 randomYaw = (Rand_Next() >> 0x14) + this->actor.yawTowardsPlayer; s16 randomYaw = (Rand_Next() >> 0x14) + this->actor.yawTowardsPlayer;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_STALKIDS_APPEAR); Audio_PlayActorSound2(&this->actor, NA_SE_EN_STALKIDS_APPEAR);
Animation_PlayLoop(&this->skelAnime, &D_06001360); Animation_PlayLoop(&this->skelAnime, &gBigpoAwakenStretchAnim);
this->rotVelocity = 0x2000; this->rotVelocity = 0x2000;
this->actor.world.pos.x = (Math_SinS(randomYaw) * distance) + player->actor.world.pos.x; this->actor.world.pos.x = (Math_SinS(randomYaw) * distance) + player->actor.world.pos.x;
this->actor.world.pos.z = (Math_CosS(randomYaw) * distance) + player->actor.world.pos.z; this->actor.world.pos.z = (Math_CosS(randomYaw) * distance) + player->actor.world.pos.z;
@ -543,7 +536,7 @@ void EnBigpo_WarpingIn(EnBigpo* this, GlobalContext* globalCtx) {
} }
void EnBigpo_SetupIdleFlying(EnBigpo* this) { void EnBigpo_SetupIdleFlying(EnBigpo* this) {
Animation_MorphToLoop(&this->skelAnime, &D_06000924, -5.0f); Animation_MorphToLoop(&this->skelAnime, &gBigpoFloatAnim, -5.0f);
// if poe missed attack, idle 4 seconds, otherwise its reappearing: attack immediately // if poe missed attack, idle 4 seconds, otherwise its reappearing: attack immediately
this->idleTimer = (this->actionFunc == EnBigpo_SpinningDown) ? 80 : 0; this->idleTimer = (this->actionFunc == EnBigpo_SpinningDown) ? 80 : 0;
this->hoverHeightCycleTimer = 40; this->hoverHeightCycleTimer = 40;
@ -654,7 +647,7 @@ void EnBigpo_SpinningDown(EnBigpo* this, GlobalContext* globalCtx) {
* called by EnBigpo_ApplyDamage * called by EnBigpo_ApplyDamage
*/ */
void EnBigpo_HitStun(EnBigpo* this) { void EnBigpo_HitStun(EnBigpo* this) {
Animation_MorphToPlayOnce(&this->skelAnime, &D_06000454, -6.0f); Animation_MorphToPlayOnce(&this->skelAnime, &gBigpoShockAnim, -6.0f);
func_800BCB70(&this->actor, 0x4000, 0xFF, 0, 0x10); func_800BCB70(&this->actor, 0x4000, 0xFF, 0, 0x10);
this->collider.base.acFlags &= ~AC_ON; this->collider.base.acFlags &= ~AC_ON;
func_800BE504(&this->actor, &this->collider); func_800BE504(&this->actor, &this->collider);
@ -764,7 +757,8 @@ void EnBigpo_LanternFalling(EnBigpo* this, GlobalContext* globalCtx) {
Actor_SetSwitchFlag(globalCtx, this->switchFlags); Actor_SetSwitchFlag(globalCtx, this->switchFlags);
} }
EffectSsHahen_SpawnBurst(globalCtx, &this->actor.world.pos, 6.0f, 0, 1, 1, 15, OBJECT_BIGPO, 10, &D_060041A0); EffectSsHahen_SpawnBurst(globalCtx, &this->actor.world.pos, 6.0f, 0, 1, 1, 15, OBJECT_BIGPO, 10,
gBigpoDrawLanternFallingDL);
EnBigpo_SpawnScoopSoul(this); EnBigpo_SpawnScoopSoul(this);
} }
} }
@ -1252,7 +1246,7 @@ void EnBigpo_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
if ((this->actionFunc == EnBigpo_BurnAwayDeath) && (this->idleTimer >= 2) && (limbIndex == 8)) { if ((this->actionFunc == EnBigpo_BurnAwayDeath) && (this->idleTimer >= 2) && (limbIndex == 8)) {
gSPMatrix((*gfx)++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix((*gfx)++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList((*gfx)++, &D_060058B8); gSPDisplayList((*gfx)++, &gBigpoDrawCrispyBodyDL);
} }
if (limbIndex == 7) { if (limbIndex == 7) {
@ -1305,7 +1299,7 @@ void EnBigpo_DrawMainBigpo(Actor* thisx, GlobalContext* globalCtx) {
// fully visible OR fully transparent // fully visible OR fully transparent
dispHead = POLY_OPA_DISP; dispHead = POLY_OPA_DISP;
gSPDisplayList(dispHead, &sSetupDL[6 * 0x19]); gSPDisplayList(dispHead, &sSetupDL[6 * 0x19]);
gSPSegment(&dispHead[1], 0x0C, &D_801AEFA0); gSPSegment(&dispHead[1], 0x0C, &D_801AEFA0); // empty display list for no transparency
gSPSegment(&dispHead[2], 0x08, gSPSegment(&dispHead[2], 0x08,
Gfx_EnvColor(globalCtx->state.gfxCtx, this->mainColor.r, this->mainColor.g, this->mainColor.b, Gfx_EnvColor(globalCtx->state.gfxCtx, this->mainColor.r, this->mainColor.g, this->mainColor.b,
this->mainColor.a)); this->mainColor.a));
@ -1315,7 +1309,7 @@ void EnBigpo_DrawMainBigpo(Actor* thisx, GlobalContext* globalCtx) {
} else { } else {
dispHead = POLY_XLU_DISP; dispHead = POLY_XLU_DISP;
gSPDisplayList(dispHead, &sSetupDL[6 * 0x19]); gSPDisplayList(dispHead, &sSetupDL[6 * 0x19]);
gSPSegment(&dispHead[1], 0x0C, &D_801AEF88); gSPSegment(&dispHead[1], 0x0C, &D_801AEF88); // transparency display list
gSPSegment(&dispHead[2], 0x08, gSPSegment(&dispHead[2], 0x08,
Gfx_EnvColor(globalCtx->state.gfxCtx, this->mainColor.r, this->mainColor.g, this->mainColor.b, Gfx_EnvColor(globalCtx->state.gfxCtx, this->mainColor.r, this->mainColor.g, this->mainColor.b,
this->mainColor.a)); this->mainColor.a));
@ -1360,7 +1354,7 @@ void EnBigpo_DrawScoopSoul(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, &D_06001BB0); gSPDisplayList(POLY_XLU_DISP++, &gBigpoDrawSoulDL);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }
@ -1412,9 +1406,9 @@ void EnBigpo_DrawLantern(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(&dispHead[3], Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(&dispHead[3], Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(&dispHead[4], &D_060042C8); gSPDisplayList(&dispHead[4], &gBigpoDrawLanternMainDL);
gSPDisplayList(&dispHead[5], &D_060043F8); gSPDisplayList(&dispHead[5], &gBigpoDrawLanternPurpleTopDL);
// fully transparent OR fully invisible // fully transparent OR fully invisible
if ((this->mainColor.a == 255) || (this->mainColor.a == 0)) { if ((this->mainColor.a == 255) || (this->mainColor.a == 0)) {
@ -1461,7 +1455,7 @@ void EnBigpo_DrawCircleFlames(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, &D_0407D590); // flame displaylist gSPDisplayList(POLY_XLU_DISP++, &gGameplayKeepDrawFlameDL);
} }
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
@ -1488,7 +1482,7 @@ void EnBigpo_RevealedFire(Actor* thisx, GlobalContext* globalCtx) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, &D_0407D590); // flame displaylist gSPDisplayList(POLY_XLU_DISP++, &gGameplayKeepDrawFlameDL);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -6,6 +6,7 @@
#include "z_en_dno.h" #include "z_en_dno.h"
#include "overlays/actors/ovl_Bg_Crace_Movebg/z_bg_crace_movebg.h" #include "overlays/actors/ovl_Bg_Crace_Movebg/z_bg_crace_movebg.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000039 #define FLAGS 0x00000039
@ -1015,7 +1016,7 @@ void EnDno_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 0x20, 0x40, 1, 0, -frames * 20, 0x20, 0x80)); Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 0x20, 0x40, 1, 0, -frames * 20, 0x20, 0x80));
gDPSetPrimColor(&gfxXlu[2], 0x80, 0x80, 255, 255, 0, 255); gDPSetPrimColor(&gfxXlu[2], 0x80, 0x80, 255, 255, 0, 255);
gDPSetEnvColor(&gfxXlu[3], 255, 0, 0, 0); gDPSetEnvColor(&gfxXlu[3], 255, 0, 0, 0);
gSPDisplayList(&gfxXlu[4], D_0407D590); gSPDisplayList(&gfxXlu[4], gGameplayKeepDrawFlameDL);
POLY_XLU_DISP = gfxXlu + 5; POLY_XLU_DISP = gfxXlu + 5;

View File

@ -5,6 +5,7 @@
*/ */
#include "z_en_po_sisters.h" #include "z_en_po_sisters.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00005015 #define FLAGS 0x00005015
@ -1189,7 +1190,7 @@ void EnPoSisters_Draw(Actor* thisx, GlobalContext* globalCtx) {
Matrix_Scale(phi_f20, phi_f20, phi_f20, MTXMODE_APPLY); Matrix_Scale(phi_f20, phi_f20, phi_f20, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0407D590); gSPDisplayList(POLY_XLU_DISP++, gGameplayKeepDrawFlameDL);
} }
func_800BE680(globalCtx, &this->actor, this->unk_28C, ARRAY_COUNT(this->unk_28C), func_800BE680(globalCtx, &this->actor, this->unk_28C, ARRAY_COUNT(this->unk_28C),

View File

@ -5,6 +5,7 @@
*/ */
#include "z_obj_aqua.h" #include "z_obj_aqua.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#define FLAGS 0x00000010 #define FLAGS 0x00000010
@ -66,8 +67,6 @@ Vec3f D_80ACC308 = { 1.0f / 1000.0f, 7.0f / 10000.0f, 1.0f / 1000.0f };
Vec3f D_80ACC314 = { 8.6f / 1000.0f, 8.0f / 10000.0f, 8.6f / 1000.0f }; Vec3f D_80ACC314 = { 8.6f / 1000.0f, 8.0f / 10000.0f, 8.6f / 1000.0f };
Vec3f D_80ACC320 = { 1.0f / 100.0f, 2.6f / 1000.0f, 1.0f / 100.0f }; Vec3f D_80ACC320 = { 1.0f / 100.0f, 2.6f / 1000.0f, 1.0f / 100.0f };
extern Gfx D_0407D590[];
void func_80ACB6A0(ObjAqua* this, GlobalContext* globalCtx) { void func_80ACB6A0(ObjAqua* this, GlobalContext* globalCtx) {
s32 pad; s32 pad;
Vec3f sp58; Vec3f sp58;
@ -292,6 +291,6 @@ void ObjAqua_Draw(Actor* thisx, GlobalContext* globalCtx) {
} }
Matrix_RotateY(yaw, MTXMODE_APPLY); Matrix_RotateY(yaw, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0407D590); gSPDisplayList(POLY_XLU_DISP++, gGameplayKeepDrawFlameDL);
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -5,6 +5,7 @@
*/ */
#include "z_obj_syokudai.h" #include "z_obj_syokudai.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #include "overlays/actors/ovl_En_Arrow/z_en_arrow.h"
#define FLAGS 0x00000410 #define FLAGS 0x00000410
@ -314,7 +315,7 @@ void ObjSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) {
Matrix_RotateY(BINANG_ROT180(func_800DFCDC(GET_ACTIVE_CAM(globalCtx)) - thisx->shape.rot.y), MTXMODE_APPLY); Matrix_RotateY(BINANG_ROT180(func_800DFCDC(GET_ACTIVE_CAM(globalCtx)) - thisx->shape.rot.y), MTXMODE_APPLY);
Matrix_Scale(flameScale, flameScale, flameScale, MTXMODE_APPLY); Matrix_Scale(flameScale, flameScale, flameScale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0407D590); gSPDisplayList(POLY_XLU_DISP++, gGameplayKeepDrawFlameDL);
} }
CLOSE_DISPS(globalCtx->state.gfxCtx); CLOSE_DISPS(globalCtx->state.gfxCtx);
} }

View File

@ -304,6 +304,7 @@ animdict = {
"func_800A81F0": "EffectBlure_AddVertex", "func_800A81F0": "EffectBlure_AddVertex",
"func_800A8514": "EffectBlure_AddSpace", "func_800A8514": "EffectBlure_AddSpace",
"Effect_GetParams": "Effect_GetByIndex", "Effect_GetParams": "Effect_GetByIndex",
"D_0407D590": "gGameplayKeepDrawFlameDL"
"skelanime.unk03": "skelanime.taper", "skelanime.unk03": "skelanime.taper",

View File

@ -14161,7 +14161,7 @@
0x80B610B8:("ObjDora_Draw",), 0x80B610B8:("ObjDora_Draw",),
0x80B615E0:("EnBigpo_Init",), 0x80B615E0:("EnBigpo_Init",),
0x80B6186C:("EnBigpo_Destroy",), 0x80B6186C:("EnBigpo_Destroy",),
0x80B61914:("func_80B61914",), 0x80B61914:("EnBigpo_RotateSpawnCutsceneFires",),
0x80B619B4:("func_80B619B4",), 0x80B619B4:("func_80B619B4",),
0x80B619FC:("func_80B619FC",), 0x80B619FC:("func_80B619FC",),
0x80B61AC8:("EnBigPo_InitWellBigPo",), 0x80B61AC8:("EnBigPo_InitWellBigPo",),

View File

@ -1667,18 +1667,6 @@ D_06004210 = 0x06004210;
D_06007C70 = 0x06007C70; D_06007C70 = 0x06007C70;
D_0600823C = 0x0600823C; D_0600823C = 0x0600823C;
// ovl_En_Bigpo
D_06000454 = 0x06000454;
D_06000924 = 0x06000924;
D_06001360 = 0x06001360;
D_06001BB0 = 0x06001BB0;
D_060041A0 = 0x060041A0;
D_060042C8 = 0x060042C8;
D_060043F8 = 0x060043F8;
D_060058B8 = 0x060058B8;
D_06005C18 = 0x06005C18;
// ovl_En_Bigslime // ovl_En_Bigslime
D_060010F4 = 0x060010F4; D_060010F4 = 0x060010F4;