Document object_warp1 (blue warp, warp crystal, boss warp) (#1075)

* Document object_warp1 (blue warp, warp crystal, boss warp)

* Fix description for actor
This commit is contained in:
Tom Overton 2022-09-24 11:45:46 -07:00 committed by GitHub
parent 8fa3a58b35
commit a390da9b56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 90 additions and 71 deletions

View File

@ -1,59 +1,79 @@
<Root>
<!-- Assets for the warp portal, warp crystal, the boss warp platform, and related effects. -->
<File Name="object_warp1" Segment="6">
<DList Name="object_warp1_DL_0001A0" Offset="0x1A0" />
<Texture Name="object_warp1_Tex_0002C0" OutName="tex_0002C0" Format="i8" Width="64" Height="64" Offset="0x2C0" />
<Animation Name="object_warp1_Anim_001374" Offset="0x1374" />
<DList Name="object_warp1_DL_001750" Offset="0x1750" />
<DList Name="object_warp1_DL_001828" Offset="0x1828" />
<DList Name="object_warp1_DL_0018B0" Offset="0x18B0" />
<DList Name="object_warp1_DL_001938" Offset="0x1938" />
<DList Name="object_warp1_DL_0019C0" Offset="0x19C0" />
<DList Name="object_warp1_DL_001A48" Offset="0x1A48" />
<DList Name="object_warp1_DL_001AD0" Offset="0x1AD0" />
<Texture Name="object_warp1_Tex_001B58" OutName="tex_001B58" Format="i8" Width="64" Height="64" Offset="0x1B58" />
<Limb Name="object_warp1_Standardlimb_002B58" Type="Standard" EnumName="OBJECT_WARP1_LIMB_01" Offset="0x2B58" />
<Limb Name="object_warp1_Standardlimb_002B64" Type="Standard" EnumName="OBJECT_WARP1_LIMB_02" Offset="0x2B64" />
<Limb Name="object_warp1_Standardlimb_002B70" Type="Standard" EnumName="OBJECT_WARP1_LIMB_03" Offset="0x2B70" />
<Limb Name="object_warp1_Standardlimb_002B7C" Type="Standard" EnumName="OBJECT_WARP1_LIMB_04" Offset="0x2B7C" />
<Limb Name="object_warp1_Standardlimb_002B88" Type="Standard" EnumName="OBJECT_WARP1_LIMB_05" Offset="0x2B88" />
<Limb Name="object_warp1_Standardlimb_002B94" Type="Standard" EnumName="OBJECT_WARP1_LIMB_06" Offset="0x2B94" />
<Limb Name="object_warp1_Standardlimb_002BA0" Type="Standard" EnumName="OBJECT_WARP1_LIMB_07" Offset="0x2BA0" />
<Limb Name="object_warp1_Standardlimb_002BAC" Type="Standard" EnumName="OBJECT_WARP1_LIMB_08" Offset="0x2BAC" />
<Limb Name="object_warp1_Standardlimb_002BB8" Type="Standard" EnumName="OBJECT_WARP1_LIMB_09" Offset="0x2BB8" />
<Limb Name="object_warp1_Standardlimb_002BC4" Type="Standard" EnumName="OBJECT_WARP1_LIMB_0A" Offset="0x2BC4" />
<Limb Name="object_warp1_Standardlimb_002BD0" Type="Standard" EnumName="OBJECT_WARP1_LIMB_0B" Offset="0x2BD0" />
<Limb Name="object_warp1_Standardlimb_002BDC" Type="Standard" EnumName="OBJECT_WARP1_LIMB_0C" Offset="0x2BDC" />
<Limb Name="object_warp1_Standardlimb_002BE8" Type="Standard" EnumName="OBJECT_WARP1_LIMB_0D" Offset="0x2BE8" />
<Limb Name="object_warp1_Standardlimb_002BF4" Type="Standard" EnumName="OBJECT_WARP1_LIMB_0E" Offset="0x2BF4" />
<Limb Name="object_warp1_Standardlimb_002C00" Type="Standard" EnumName="OBJECT_WARP1_LIMB_0F" Offset="0x2C00" />
<Limb Name="object_warp1_Standardlimb_002C0C" Type="Standard" EnumName="OBJECT_WARP1_LIMB_10" Offset="0x2C0C" />
<Limb Name="object_warp1_Standardlimb_002C18" Type="Standard" EnumName="OBJECT_WARP1_LIMB_11" Offset="0x2C18" />
<Limb Name="object_warp1_Standardlimb_002C24" Type="Standard" EnumName="OBJECT_WARP1_LIMB_12" Offset="0x2C24" />
<Limb Name="object_warp1_Standardlimb_002C30" Type="Standard" EnumName="OBJECT_WARP1_LIMB_13" Offset="0x2C30" />
<Limb Name="object_warp1_Standardlimb_002C3C" Type="Standard" EnumName="OBJECT_WARP1_LIMB_14" Offset="0x2C3C" />
<Limb Name="object_warp1_Standardlimb_002C48" Type="Standard" EnumName="OBJECT_WARP1_LIMB_15" Offset="0x2C48" />
<Skeleton Name="object_warp1_Skel_002CA8" Type="Normal" LimbType="Standard" LimbNone="OBJECT_WARP1_LIMB_NONE" LimbMax="OBJECT_WARP1_LIMB_MAX" EnumName="ObjectWarp1Limb" Offset="0x2CA8" />
<DList Name="object_warp1_DL_003230" Offset="0x3230" />
<DList Name="object_warp1_DL_0034C8" Offset="0x34C8" />
<Texture Name="object_warp1_Tex_0034D0" OutName="tex_0034D0" Format="i8" Width="32" Height="64" Offset="0x34D0" />
<Texture Name="object_warp1_Tex_003CD0" OutName="tex_003CD0" Format="i8" Width="32" Height="64" Offset="0x3CD0" />
<TextureAnimation Name="object_warp1_Matanimheader_0044D8" Offset="0x44D8" />
<DList Name="object_warp1_DL_004690" Offset="0x4690" />
<DList Name="object_warp1_DL_0047C8" Offset="0x47C8" />
<Texture Name="object_warp1_Tex_0047D0" OutName="tex_0047D0" Format="i4" Width="64" Height="64" Offset="0x47D0" />
<Texture Name="object_warp1_Tex_004FD0" OutName="tex_004FD0" Format="i4" Width="64" Height="64" Offset="0x4FD0" />
<TextureAnimation Name="object_warp1_Matanimheader_0057D8" Offset="0x57D8" />
<DList Name="object_warp1_DL_0058C0" Offset="0x58C0" />
<DList Name="object_warp1_DL_0058C8" Offset="0x58C8" />
<Texture Name="object_warp1_Tex_005A30" OutName="tex_005A30" Format="i4" Width="64" Height="64" Offset="0x5A30" />
<Texture Name="object_warp1_Tex_006230" OutName="tex_006230" Format="i4" Width="64" Height="64" Offset="0x6230" />
<Texture Name="object_warp1_Tex_006A30" OutName="tex_006A30" Format="i8" Width="32" Height="64" Offset="0x6A30" />
<TextureAnimation Name="object_warp1_Matanimheader_007238" Offset="0x7238" />
<DList Name="object_warp1_DL_0076C0" Offset="0x76C0" />
<Texture Name="object_warp1_TLUT_0078A0" OutName="tlut_0078A0" Format="rgba16" Width="4" Height="4" Offset="0x78A0" />
<Texture Name="object_warp1_TLUT_0078C0" OutName="tlut_0078C0" Format="rgba16" Width="4" Height="4" Offset="0x78C0" />
<Texture Name="object_warp1_Tex_0078E0" OutName="tex_0078E0" Format="ci4" Width="64" Height="64" Offset="0x78E0" />
<Texture Name="object_warp1_Tex_0080E0" OutName="tex_0080E0" Format="ci4" Width="64" Height="64" Offset="0x80E0" />
<Collision Name="object_warp1_Colheader_008BD4" Offset="0x8BD4" />
<!-- Assets for the portal that the player can walk into to warp out of boss rooms. Often called a "blue warp". -->
<DList Name="gWarpPortalDL" Offset="0x1A0" /> <!-- Original name is "warp_2_modelT" -->
<Texture Name="gWarpPortalTex" OutName="warp_portal" Format="i8" Width="64" Height="64" Offset="0x2C0" />
<!-- Warp Crystal Animation -->
<Animation Name="gWarpCrystalAnim" Offset="0x1374" /> <!-- Original name is "crystal_anim" -->
<!-- Warp Crystal Limb DisplayLists -->
<DList Name="gWarpCrystalBottomDL" Offset="0x1750" />
<DList Name="gWarpCrystalTopSegment1DL" Offset="0x1828" />
<DList Name="gWarpCrystalTopSegment2DL" Offset="0x18B0" />
<DList Name="gWarpCrystalTopSegment3DL" Offset="0x1938" />
<DList Name="gWarpCrystalTopSegment4DL" Offset="0x19C0" />
<DList Name="gWarpCrystalTopSegment5DL" Offset="0x1A48" />
<DList Name="gWarpCrystalTopSegment6DL" Offset="0x1AD0" />
<!-- Warp Crystal Limb Texture -->
<Texture Name="gWarpCrystalTex" OutName="warp_crystal" Format="i8" Width="64" Height="64" Offset="0x1B58" />
<!-- Warp Crystal Limbs -->
<Limb Name="gWarpCrystalRootLimb" Type="Standard" EnumName="WARP_CRYSTAL_LIMB_ROOT" Offset="0x2B58" />
<Limb Name="gWarpCrystalWrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_LIMB_WRAPPER" Offset="0x2B64" />
<Limb Name="gWarpCrystalBottomLimb" Type="Standard" EnumName="WARP_CRYSTAL_LIMB_BOTTOM" Offset="0x2B70" />
<Limb Name="gWarpCrystalTopSegment1RootLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_1_ROOT" Offset="0x2B7C" />
<Limb Name="gWarpCrystalTopSegment1WrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_1_WRAPPER" Offset="0x2B88" />
<Limb Name="gWarpCrystalTopSegment1Limb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_1" Offset="0x2B94" />
<Limb Name="gWarpCrystalTopSegment2RootLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_2_ROOT" Offset="0x2BA0" />
<Limb Name="gWarpCrystalTopSegment2WrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_2_WRAPPER" Offset="0x2BAC" />
<Limb Name="gWarpCrystalTopSegment2Limb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_2" Offset="0x2BB8" />
<Limb Name="gWarpCrystalTopSegment3RootLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_3_ROOT" Offset="0x2BC4" />
<Limb Name="gWarpCrystalTopSegment3WrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_3_WRAPPER" Offset="0x2BD0" />
<Limb Name="gWarpCrystalTopSegment3Limb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_3" Offset="0x2BDC" />
<Limb Name="gWarpCrystalTopSegment4RootLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_4_ROOT" Offset="0x2BE8" />
<Limb Name="gWarpCrystalTopSegment4WrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_4_WRAPPER" Offset="0x2BF4" />
<Limb Name="gWarpCrystalTopSegment4Limb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_4" Offset="0x2C00" />
<Limb Name="gWarpCrystalTopSegment5RootLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_5_ROOT" Offset="0x2C0C" />
<Limb Name="gWarpCrystalTopSegment5WrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_5_WRAPPER" Offset="0x2C18" />
<Limb Name="gWarpCrystalTopSegment5Limb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_5" Offset="0x2C24" />
<Limb Name="gWarpCrystalTopSegment6RootLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_6_ROOT" Offset="0x2C30" />
<Limb Name="gWarpCrystalTopSegment6WrapperLimb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_6_WRAPPER" Offset="0x2C3C" />
<Limb Name="gWarpCrystalTopSegment6Limb" Type="Standard" EnumName="WARP_CRYSTAL_TOP_SEGMENT_6" Offset="0x2C48" />
<!-- Warp Crystal Skeleton -->
<Skeleton Name="gWarpCrystalSkel" Type="Normal" LimbType="Standard" LimbNone="WARP_CRYSTAL_LIMB_NONE" LimbMax="WARP_CRYSTAL_LIMB_MAX" EnumName="WarpCrystalLimb" Offset="0x2CA8" />
<!-- Assets for the beam that falls from the sky to activate a boss warp. -->
<DList Name="gWarpBossWarpActivationBeamDL" Offset="0x3230" /> <!-- Original name is "boss_warp1_modelT" -->
<DList Name="gWarpBossWarpActivationBeamEmptyDL" Offset="0x34C8" />
<Texture Name="gWarpBossWarpActivationBeamTex" OutName="warp_boss_warp_activation_beam" Format="i8" Width="32" Height="64" Offset="0x34D0" />
<Texture Name="gWarpBossWarpActivationBeamMaskTex" OutName="warp_boss_warp_activation_beam_mask" Format="i8" Width="32" Height="64" Offset="0x3CD0" />
<TextureAnimation Name="gWarpBossWarpActivationBeamTexAnim" Offset="0x44D8" />
<!-- Assets for the light shafts that rise upwards from an activated boss warp. -->
<DList Name="gWarpBossWarpLightShaftsDL" Offset="0x4690" /> <!-- Original name is "boss_warp2_modelT" -->
<DList Name="gWarpBossWarpLightShaftsEmptyDL" Offset="0x47C8" />
<Texture Name="gWarpBossWarpLightShaftsTex" OutName="warp_boss_warp_light_shafts" Format="i4" Width="64" Height="64" Offset="0x47D0" />
<Texture Name="gWarpBossWarpLightShaftsMaskTex" OutName="warp_boss_warp_light_shafts_mask" Format="i4" Width="64" Height="64" Offset="0x4FD0" />
<TextureAnimation Name="gWarpBossWarpLightShaftsTexAnim" Offset="0x57D8" />
<!-- Assets for the glow that covers the top of an activated boss warp platform. -->
<DList Name="gWarpBossWarpGlowEmptyDL" Offset="0x58C0" />
<DList Name="gWarpBossWarpGlowDL" Offset="0x58C8" /> <!-- Original name is "boss_warp3_model" -->
<Texture Name="gWarpBossWarpGlowBottomMaskTex" OutName="warp_boss_warp_glow_bottom_mask" Format="i4" Width="64" Height="64" Offset="0x5A30" />
<Texture Name="gWarpBossWarpGlowTopMaskTex" OutName="warp_boss_warp_glow_top_mask" Format="i4" Width="64" Height="64" Offset="0x6230" />
<Texture Name="gWarpBossWarpGlowTex" OutName="warp_boss_warp_glow" Format="i8" Width="32" Height="64" Offset="0x6A30" />
<TextureAnimation Name="gWarpBossWarpGlowTexAnim" Offset="0x7238" />
<!-- Assets for the Majora's Mask-shaped boss warp platform. -->
<DList Name="gWarpBossWarpPlatformDL" Offset="0x76C0" /> <!-- Original name is "m2_BossWarp_model" -->
<Texture Name="gWarpBossWarpPlatformBottomTLUT" OutName="warp_boss_warp_platform_bottom_tlut" Format="rgba16" Width="4" Height="4" Offset="0x78A0" />
<Texture Name="gWarpBossWarpPlatformTopTLUT" OutName="warp_boss_warp_platform_top_tlut" Format="rgba16" Width="4" Height="4" Offset="0x78C0" />
<Texture Name="gWarpBossWarpPlatformBottomTex" OutName="warp_boss_warp_platform_bottom" Format="ci4" Width="64" Height="64" Offset="0x78E0" />
<Texture Name="gWarpBossWarpPlatformTopTex" OutName="warp_boss_warp_platform_top" Format="ci4" Width="64" Height="64" Offset="0x80E0" />
<Collision Name="gWarpBossWarpPlatformCol" Offset="0x8BD4" />
</File>
</Root>

View File

@ -1,7 +1,7 @@
/*
* File: z_door_warp1.c
* Overlay: ovl_Door_Warp1
* Description: Blue Warp
* Description: Blue warp portal and crystal, and the Majora's Mask-shaped boss warp platform
*/
#include "z_door_warp1.h"
@ -152,7 +152,7 @@ void DoorWarp1_Init(Actor* thisx, PlayState* play) {
case ENDOORWARP1_FF_5:
this->unk_1D3 = 1;
DynaPolyActor_Init(&this->dyna, 0);
DynaPolyActor_LoadMesh(play, &this->dyna, &object_warp1_Colheader_008BD4);
DynaPolyActor_LoadMesh(play, &this->dyna, &gWarpBossWarpPlatformCol);
func_808B8C48(this, play);
break;
@ -210,8 +210,8 @@ void func_808B8924(DoorWarp1* this, PlayState* play) {
}
void func_808B8A7C(DoorWarp1* this, PlayState* play) {
SkelAnime_Init(play, &this->skelAnime, &object_warp1_Skel_002CA8, &object_warp1_Anim_001374, NULL, NULL, 0);
Animation_ChangeImpl(&this->skelAnime, &object_warp1_Anim_001374, 1.0f, 1.0f, 1.0f, 2, 40.0f, 1);
SkelAnime_Init(play, &this->skelAnime, &gWarpCrystalSkel, &gWarpCrystalAnim, NULL, NULL, 0);
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, 1.0f, 1.0f, 2, 40.0f, 1);
this->unk_1C4 = 0;
this->unk_1C6 = -140;
this->unk_1C8 = -80;
@ -622,9 +622,8 @@ void func_808B9FD0(DoorWarp1* this, PlayState* play) {
ActorCutscene_Start(play->playerActorCsIds[9], NULL);
AudioSfx_PlaySfx(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
Animation_ChangeImpl(&this->skelAnime, &object_warp1_Anim_001374, 1.0f,
Animation_GetLastFrame(&object_warp1_Anim_001374.common),
Animation_GetLastFrame(&object_warp1_Anim_001374.common), 2, 40.0f, 1);
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, Animation_GetLastFrame(&gWarpCrystalAnim),
Animation_GetLastFrame(&gWarpCrystalAnim), 2, 40.0f, 1);
this->unk_1CA = 50;
D_808BC004 = player2->actor.world.pos.y;
DoorWarp1_SetupAction(this, func_808BA550);
@ -992,7 +991,7 @@ void func_808BAE9C(DoorWarp1* this, PlayState* play) {
MTXMODE_APPLY);
gSPSegment(POLY_XLU_DISP++, 0x09, Matrix_NewMtx(play->state.gfxCtx));
gSPDisplayList(POLY_XLU_DISP++, object_warp1_DL_0001A0);
gSPDisplayList(POLY_XLU_DISP++, gWarpPortalDL);
Matrix_Pop();
@ -1010,14 +1009,14 @@ void func_808BAE9C(DoorWarp1* this, PlayState* play) {
MTXMODE_APPLY);
gSPSegment(POLY_XLU_DISP++, 0x09, Matrix_NewMtx(play->state.gfxCtx));
gSPDisplayList(POLY_XLU_DISP++, object_warp1_DL_0001A0);
gSPDisplayList(POLY_XLU_DISP++, gWarpPortalDL);
}
CLOSE_DISPS(play->state.gfxCtx);
}
void func_808BB4C4(DoorWarp1* this, PlayState* play) {
Gfx_DrawDListOpa(play, object_warp1_DL_0076C0);
Gfx_DrawDListOpa(play, gWarpBossWarpPlatformDL);
}
void func_808BB4F4(DoorWarp1* this, PlayState* play2) {
@ -1035,8 +1034,8 @@ void func_808BB4F4(DoorWarp1* this, PlayState* play2) {
Matrix_Translate(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y + this->unk_1A4,
this->dyna.actor.world.pos.z, MTXMODE_NEW);
Matrix_Scale(4.0f, this->unk_1AC, 4.0f, MTXMODE_APPLY);
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_warp1_Matanimheader_0044D8));
Gfx_DrawDListXlu(play, object_warp1_DL_003230);
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gWarpBossWarpActivationBeamTexAnim));
Gfx_DrawDListXlu(play, gWarpBossWarpActivationBeamDL);
return;
}
@ -1054,7 +1053,7 @@ void func_808BB4F4(DoorWarp1* this, PlayState* play2) {
MTXMODE_NEW);
Matrix_RotateYS(this->dyna.actor.world.rot.y, MTXMODE_APPLY);
Matrix_Scale(1.0f, this->unk_1A8, 1.0f, MTXMODE_APPLY);
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_warp1_Matanimheader_0057D8));
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gWarpBossWarpLightShaftsTexAnim));
OPEN_DISPS(play->state.gfxCtx);
@ -1063,13 +1062,13 @@ void func_808BB4F4(DoorWarp1* this, PlayState* play2) {
gDPSetEnvColor(POLY_XLU_DISP++, sp64[sp60].r, sp64[sp60].g, sp64[sp60].b, 255);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, object_warp1_DL_004690);
gSPDisplayList(POLY_XLU_DISP++, gWarpBossWarpLightShaftsDL);
CLOSE_DISPS(play->state.gfxCtx);
OPEN_DISPS(play->state.gfxCtx);
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(object_warp1_Matanimheader_007238));
AnimatedMat_Draw(play, Lib_SegmentedToVirtual(gWarpBossWarpGlowTexAnim));
Matrix_Translate(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z,
MTXMODE_NEW);
Matrix_RotateYS(this->dyna.actor.world.rot.y, MTXMODE_APPLY);
@ -1080,7 +1079,7 @@ void func_808BB4F4(DoorWarp1* this, PlayState* play2) {
gDPSetEnvColor(POLY_XLU_DISP++, sp64[sp60].r, sp64[sp60].g, sp64[sp60].b, 255);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, this->unk_203);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, object_warp1_DL_0058C8);
gSPDisplayList(POLY_XLU_DISP++, gWarpBossWarpGlowDL);
CLOSE_DISPS(play->state.gfxCtx);
}