Pr2: object documented

This commit is contained in:
isghj 2025-11-15 15:58:13 -08:00
parent 090a5c82f6
commit bd651437f1
3 changed files with 31 additions and 26 deletions

View File

@ -31,6 +31,7 @@
<Texture Name="object_pr_Tex_0033A8" OutName="tex_0033A8" Format="rgba16" Width="16" Height="16" Offset="0x33A8" />
<Texture Name="object_pr_Tex_0035A8" OutName="tex_0035A8" Format="rgba16" Width="16" Height="16" Offset="0x35A8" />
<Texture Name="object_pr_Tex_0037A8" OutName="tex_0037A8" Format="rgba16" Width="8" Height="8" Offset="0x37A8" />
<Limb Name="object_pr_Standardlimb_003828" Type="Standard" EnumName="OBJECT_PR_1_LIMB_01" Offset="0x3828" />
<Limb Name="object_pr_Standardlimb_003834" Type="Standard" EnumName="OBJECT_PR_1_LIMB_02" Offset="0x3834" />
<Limb Name="object_pr_Standardlimb_003840" Type="Standard" EnumName="OBJECT_PR_1_LIMB_03" Offset="0x3840" />
@ -41,22 +42,26 @@
<Limb Name="object_pr_Standardlimb_00387C" Type="Standard" EnumName="OBJECT_PR_1_LIMB_08" Offset="0x387C" />
<Limb Name="object_pr_Standardlimb_003888" Type="Standard" EnumName="OBJECT_PR_1_LIMB_09" Offset="0x3888" />
<Skeleton Name="object_pr_Skel_0038B8" Type="Flex" LimbType="Standard" LimbNone="OBJECT_PR_1_LIMB_NONE" LimbMax="OBJECT_PR_1_LIMB_MAX" EnumName="ObjectPr1Limb" Offset="0x38B8" />
<Animation Name="object_pr_Anim_003904" Offset="0x3904" /> <!-- Original name might be "prz_dead" -->
<DList Name="object_pr_DL_003AB0" Offset="0x3AB0" />
<DList Name="object_pr_DL_003B50" Offset="0x3B50" />
<DList Name="object_pr_DL_003C08" Offset="0x3C08" />
<DList Name="object_pr_DL_003D10" Offset="0x3D10" />
<Texture Name="object_pr_Tex_003DA8" OutName="tex_003DA8" Format="rgba16" Width="8" Height="16" Offset="0x3DA8" />
<Texture Name="object_pr_Tex_003EA8" OutName="tex_003EA8" Format="rgba16" Width="8" Height="16" Offset="0x3EA8" />
<Texture Name="object_pr_Tex_003FA8" OutName="tex_003FA8" Format="rgba16" Width="8" Height="8" Offset="0x3FA8" />
<Texture Name="object_pr_Tex_004028" OutName="tex_004028" Format="rgba16" Width="8" Height="16" Offset="0x4028" />
<Texture Name="object_pr_Tex_004128" OutName="tex_004128" Format="rgba16" Width="4" Height="4" Offset="0x4128" />
<Limb Name="object_pr_Standardlimb_004148" Type="Standard" EnumName="OBJECT_PR_2_LIMB_01" Offset="0x4148" />
<Limb Name="object_pr_Standardlimb_004154" Type="Standard" EnumName="OBJECT_PR_2_LIMB_02" Offset="0x4154" />
<Limb Name="object_pr_Standardlimb_004160" Type="Standard" EnumName="OBJECT_PR_2_LIMB_03" Offset="0x4160" />
<Limb Name="object_pr_Standardlimb_00416C" Type="Standard" EnumName="OBJECT_PR_2_LIMB_04" Offset="0x416C" />
<Skeleton Name="object_pr_Skel_004188" Type="Flex" LimbType="Standard" LimbNone="OBJECT_PR_2_LIMB_NONE" LimbMax="OBJECT_PR_2_LIMB_MAX" EnumName="ObjectPr2Limb" Offset="0x4188" />
<Animation Name="object_pr_Anim_004274" Offset="0x4274" /> <!-- Original name is "prz_gattuku" -->
<Animation Name="object_pr_Anim_004340" Offset="0x4340" /> <!-- Original name is "prz_swim" -->
<Animation Name="gSkullFishDieAnim" Offset="0x3904" /> <!-- Original name might be "prz_dead" -->
<DList Name="gSkullFishBodyDL" Offset="0x3AB0" />
<DList Name="gSkullFishTailDL" Offset="0x3B50" />
<DList Name="gSkullFishSkullDL" Offset="0x3C08" />
<DList Name="gSkullFishJawDL" Offset="0x3D10" />
<Texture Name="gSkullFishBodyRibTex" OutName="body_rib" Format="rgba16" Width="8" Height="16" Offset="0x3DA8" />
<Texture Name="gSkullFishTailTex" OutName="tail" Format="rgba16" Width="8" Height="16" Offset="0x3EA8" />
<Texture Name="gSkullFishEyeSocketTex" OutName="eye_socket" Format="rgba16" Width="8" Height="8" Offset="0x3FA8" />
<Texture Name="gSkullFishJawTex" OutName="jaw" Format="rgba16" Width="8" Height="16" Offset="0x4028" />
<Texture Name="gSkullFishGlowingEyesTex" OutName="glowing_eyes" Format="rgba16" Width="4" Height="4" Offset="0x4128" />
<Limb Name="gSkullFishBodyLimb" Type="Standard" EnumName="OBJECT_PR_2_LIMB_01" Offset="0x4148" />
<Limb Name="gSkullFishSkullLimb" Type="Standard" EnumName="OBJECT_PR_2_LIMB_02" Offset="0x4154" />
<Limb Name="gSkullFishJawLimb" Type="Standard" EnumName="OBJECT_PR_2_LIMB_03" Offset="0x4160" />
<Limb Name="gSkullFishTailLimb" Type="Standard" EnumName="OBJECT_PR_2_LIMB_04" Offset="0x416C" />
<Skeleton Name="gSkullFishSkel" Type="Flex" LimbType="Standard" LimbNone="OBJECT_PR_2_LIMB_NONE" LimbMax="OBJECT_PR_2_LIMB_MAX" EnumName="ObjectPr2Limb" Offset="0x4188" />
<!-- Pr2 (Small skullfish) animations -->
<Animation Name="gSkullFishAttackAnim" Offset="0x4274" /> <!-- Original name is "prz_gattuku" -->
<Animation Name="gSkullFishSwimAnim" Offset="0x4340" /> <!-- Original name is "prz_swim" -->
</File>
</Root>

View File

@ -103,9 +103,9 @@ typedef enum EnPr2Animation {
} EnPr2Animation;
static AnimationHeader* sAnimations[ENPR2_ANIM_MAX] = {
&object_pr_Anim_004340, // PR2_ANIM_GENTLE_SWIM
&object_pr_Anim_004274, // PR2_ANIM_FAST_SWIM
&object_pr_Anim_003904, // PR2_ANIM_FLINCH
&gSkullFishSwimAnim, // PR2_ANIM_GENTLE_SWIM
&gSkullFishAttackAnim, // PR2_ANIM_FAST_SWIM
&gSkullFishDieAnim, // PR2_ANIM_FLINCH
};
static u8 sAnimationModes[ENPR2_ANIM_MAX] = {
@ -128,7 +128,7 @@ void EnPr2_Init(Actor* thisx, PlayState* play) {
this->actor.colChkInfo.health = 1;
this->actor.colChkInfo.damageTable = &sDamageTable;
SkelAnime_InitFlex(play, &this->skelAnime, &object_pr_Skel_004188, &object_pr_Anim_004340, this->jointTable,
SkelAnime_InitFlex(play, &this->skelAnime, &gSkullFishSkel, &gSkullFishSwimAnim, this->jointTable,
this->morphTable, OBJECT_PR_2_LIMB_MAX);
this->type = ENPR2_GET_TYPE(&this->actor);
this->actor.colChkInfo.mass = 10;
@ -550,8 +550,8 @@ void EnPr2_SetupDie(EnPr2* this) {
if (this->type < PR2_TYPE_BROKEN) {
EnPr2_ChangeAnim(this, PR2_ANIM_FLINCH);
} else {
this->animEndFrame = Animation_GetLastFrame(&object_pr_Anim_003904);
Animation_Change(&this->skelAnime, &object_pr_Anim_003904, 1.0f, this->animEndFrame, this->animEndFrame,
this->animEndFrame = Animation_GetLastFrame(&gSkullFishDieAnim);
Animation_Change(&this->skelAnime, &gSkullFishDieAnim, 1.0f, this->animEndFrame, this->animEndFrame,
ANIMMODE_ONCE, 0.0f);
this->timer = Rand_S16Offset(20, 30);
this->targetZRot = 0x4000;

View File

@ -111,7 +111,7 @@ void EnPrz_Init(Actor* thisx, PlayState* play) {
this->actor.colChkInfo.damageTable = &sDamageTable;
this->actor.colChkInfo.health = 1;
SkelAnime_InitFlex(play, &this->skelAnime, &object_pr_Skel_004188, &object_pr_Anim_004340, this->jointTable,
SkelAnime_InitFlex(play, &this->skelAnime, &gSkullFishSkel, &gSkullFishSwimAnim, this->jointTable,
this->morphTable, OBJECT_PR_2_LIMB_MAX);
this->unk_1E6 = ENPRZ_GET(&this->actor);
@ -139,8 +139,8 @@ typedef enum EnPrzAnimation {
} EnPrzAnimation;
static AnimationHeader* sAnimations[ENPRZ_ANIM_MAX] = {
&object_pr_Anim_004340, // ENPRZ_ANIM_0
&object_pr_Anim_004274, // ENPRZ_ANIM_1
&gSkullFishSwimAnim, // ENPRZ_ANIM_0
&gSkullFishAttackAnim, // ENPRZ_ANIM_1
};
static u8 sAnimationModes[ENPRZ_ANIM_MAX] = {