mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-26 10:54:27 +00:00
object_anubice OK (#696)
* xml Signed-off-by: Anghelo <angheloalf95@gmail.com> * add all the object to xml Signed-off-by: Angie <angheloalf95@gmail.com> * add object to srccode Signed-off-by: Angie <angheloalf95@gmail.com> * A bit of naming Signed-off-by: angie <angheloalf95@gmail.com> * final rename Signed-off-by: angie <angheloalf95@gmail.com> * add unused particle Signed-off-by: angie <angheloalf95@gmail.com> * rename unused particle dls Signed-off-by: angie <angheloalf95@gmail.com> * delete gitkeep Signed-off-by: angie <angheloalf95@gmail.com> * run format.sh Signed-off-by: angie <angheloalf95@gmail.com>
This commit is contained in:
parent
7f55e088e5
commit
7b68e8b771
5 changed files with 38 additions and 36 deletions
20
assets/xml/objects/object_anubice.xml
Normal file
20
assets/xml/objects/object_anubice.xml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="object_anubice" Segment="6">
|
||||||
|
<Skeleton Name="gAnubiceSkel" Type="Normal" LimbType="Standard" Offset="0x3990"/>
|
||||||
|
|
||||||
|
<Animation Name="gAnubiceFallDownAnim" Offset="0x348"/>
|
||||||
|
<Animation Name="gAnubiceAttackingAnim" Offset="0x78C"/>
|
||||||
|
<Animation Name="gAnubiceIdleAnim" Offset="0xF74"/>
|
||||||
|
<DList Name="gAnubiceEyesDL" Offset="0x3468"/>
|
||||||
|
<DList Name="gAnubiceFireAttackDL" Offset="0x3510"/>
|
||||||
|
|
||||||
|
<!-- The following are unused -->
|
||||||
|
<Animation Name="gAnubiceLaughingAnim" Offset="0x144"/>
|
||||||
|
<Animation Name="gAnubiceStandUpAnim" Offset="0x930"/>
|
||||||
|
<DList Name="gAnubiceUnusedParticleTextureDL" Offset="0x3610"/>
|
||||||
|
<DList Name="gAnubiceUnusedParticleGeometryDL" Offset="0x3688"/>
|
||||||
|
<!-- I think those might be for taking damage or something -->
|
||||||
|
<Animation Name="gAnubiceAnim_000A48" Offset="0xA48"/>
|
||||||
|
<Animation Name="gAnubiceAnim_000BAC" Offset="0xBAC"/>
|
||||||
|
</File>
|
||||||
|
</Root>
|
3
spec
3
spec
|
@ -4688,7 +4688,8 @@ endseg
|
||||||
beginseg
|
beginseg
|
||||||
name "object_anubice"
|
name "object_anubice"
|
||||||
romalign 0x1000
|
romalign 0x1000
|
||||||
include "build/baserom/object_anubice.o"
|
include "build/assets/objects/object_anubice/object_anubice.o"
|
||||||
|
number 6
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_anubice.h"
|
#include "z_en_anubice.h"
|
||||||
|
#include "objects/object_anubice/object_anubice.h"
|
||||||
#include "overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.h"
|
#include "overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.h"
|
||||||
#include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h"
|
#include "overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.h"
|
||||||
#include "vt.h"
|
#include "vt.h"
|
||||||
|
@ -26,12 +27,6 @@ void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx);
|
||||||
void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx);
|
void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx);
|
||||||
void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx);
|
void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx);
|
||||||
|
|
||||||
extern AnimationHeader D_06000348;
|
|
||||||
extern AnimationHeader D_0600078C;
|
|
||||||
extern AnimationHeader D_06000F74;
|
|
||||||
extern Gfx D_06003468[];
|
|
||||||
extern SkeletonHeader D_06003990;
|
|
||||||
|
|
||||||
const ActorInit En_Anubice_InitVars = {
|
const ActorInit En_Anubice_InitVars = {
|
||||||
ACTOR_EN_ANUBICE,
|
ACTOR_EN_ANUBICE,
|
||||||
ACTORCAT_ENEMY,
|
ACTORCAT_ENEMY,
|
||||||
|
@ -99,10 +94,6 @@ static DamageTable sDamageTable[] = {
|
||||||
/* Unknown 2 */ DMG_ENTRY(0, 0x0),
|
/* Unknown 2 */ DMG_ENTRY(0, 0x0),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec3f D_809B231C = { 0.0f, 0.0f, 0.0f };
|
|
||||||
Vec3f D_809B2328 = { 0.0f, 0.0f, 0.0f };
|
|
||||||
Vec3f D_809B2334 = { 0.0f, 0.0f, 0.0f };
|
|
||||||
|
|
||||||
void EnAnubice_Hover(EnAnubice* this, GlobalContext* globalCtx) {
|
void EnAnubice_Hover(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
Player* player = PLAYER;
|
Player* player = PLAYER;
|
||||||
|
|
||||||
|
@ -133,7 +124,8 @@ void EnAnubice_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
EnAnubice* this = THIS;
|
EnAnubice* this = THIS;
|
||||||
|
|
||||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f);
|
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f);
|
||||||
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06003990, &D_06000F74, this->jointTable, this->morphTable, 16);
|
SkelAnime_Init(globalCtx, &this->skelAnime, &gAnubiceSkel, &gAnubiceIdleAnim, this->jointTable, this->morphTable,
|
||||||
|
16);
|
||||||
|
|
||||||
osSyncPrintf("\n\n");
|
osSyncPrintf("\n\n");
|
||||||
// ☆☆☆☆☆ Anubis occurence ☆☆☆☆☆
|
// ☆☆☆☆☆ Anubis occurence ☆☆☆☆☆
|
||||||
|
@ -203,9 +195,9 @@ void EnAnubice_FindFlameCircles(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx) {
|
void EnAnubice_SetupIdle(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
f32 lastFrame = Animation_GetLastFrame(&D_06000F74);
|
f32 lastFrame = Animation_GetLastFrame(&gAnubiceIdleAnim);
|
||||||
|
|
||||||
Animation_Change(&this->skelAnime, &D_06000F74, 1.0f, 0.0f, (s16)lastFrame, 0, -10.0f);
|
Animation_Change(&this->skelAnime, &gAnubiceIdleAnim, 1.0f, 0.0f, (s16)lastFrame, 0, -10.0f);
|
||||||
|
|
||||||
this->actionFunc = EnAnubice_Idle;
|
this->actionFunc = EnAnubice_Idle;
|
||||||
this->actor.velocity.x = this->actor.velocity.z = this->actor.gravity = 0.0f;
|
this->actor.velocity.x = this->actor.velocity.z = this->actor.gravity = 0.0f;
|
||||||
|
@ -267,10 +259,10 @@ void EnAnubice_GoToHome(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx) {
|
void EnAnubis_SetupShootFireball(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
f32 lastFrame = Animation_GetLastFrame(&D_0600078C);
|
f32 lastFrame = Animation_GetLastFrame(&gAnubiceAttackingAnim);
|
||||||
|
|
||||||
this->animLastFrame = lastFrame;
|
this->animLastFrame = lastFrame;
|
||||||
Animation_Change(&this->skelAnime, &D_0600078C, 1.0f, 0.0f, lastFrame, 2, -10.0f);
|
Animation_Change(&this->skelAnime, &gAnubiceAttackingAnim, 1.0f, 0.0f, lastFrame, 2, -10.0f);
|
||||||
this->actionFunc = EnAnubis_ShootFireball;
|
this->actionFunc = EnAnubis_ShootFireball;
|
||||||
this->actor.velocity.x = this->actor.velocity.z = 0.0f;
|
this->actor.velocity.x = this->actor.velocity.z = 0.0f;
|
||||||
}
|
}
|
||||||
|
@ -297,10 +289,10 @@ void EnAnubis_ShootFireball(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) {
|
void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
f32 lastFrame = Animation_GetLastFrame(&D_06000348);
|
f32 lastFrame = Animation_GetLastFrame(&gAnubiceFallDownAnim);
|
||||||
|
|
||||||
this->animLastFrame = lastFrame;
|
this->animLastFrame = lastFrame;
|
||||||
Animation_Change(&this->skelAnime, &D_06000348, 1.0f, 0.0f, lastFrame, 2, -20.0f);
|
Animation_Change(&this->skelAnime, &gAnubiceFallDownAnim, 1.0f, 0.0f, lastFrame, 2, -20.0f);
|
||||||
|
|
||||||
this->unk_256 = false;
|
this->unk_256 = false;
|
||||||
this->unk_258 = 0;
|
this->unk_258 = 0;
|
||||||
|
@ -319,8 +311,8 @@ void EnAnubice_SetupDie(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx) {
|
void EnAnubice_Die(EnAnubice* this, GlobalContext* globalCtx) {
|
||||||
f32 curFrame;
|
f32 curFrame;
|
||||||
f32 phi_f2;
|
f32 phi_f2;
|
||||||
Vec3f sp4C = D_809B231C;
|
Vec3f sp4C = { 0.0f, 0.0f, 0.0f };
|
||||||
Vec3f fireEffectPos = D_809B2328;
|
Vec3f fireEffectPos = { 0.0f, 0.0f, 0.0f };
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
|
||||||
SkelAnime_Update(&this->skelAnime);
|
SkelAnime_Update(&this->skelAnime);
|
||||||
|
@ -477,15 +469,15 @@ s32 EnAnubis_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLi
|
||||||
|
|
||||||
void EnAnubis_PostLimbDraw(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
void EnAnubis_PostLimbDraw(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
||||||
EnAnubice* this = THIS;
|
EnAnubice* this = THIS;
|
||||||
Vec3f sp38 = D_809B2334;
|
Vec3f pos = { 0.0f, 0.0f, 0.0f };
|
||||||
|
|
||||||
if (limbIndex == 13) {
|
if (limbIndex == 13) {
|
||||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 853);
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 853);
|
||||||
|
|
||||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice.c", 856),
|
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice.c", 856),
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
gSPDisplayList(POLY_XLU_DISP++, D_06003468);
|
gSPDisplayList(POLY_XLU_DISP++, gAnubiceEyesDL);
|
||||||
Matrix_MultVec3f(&sp38, &this->fireballPos);
|
Matrix_MultVec3f(&pos, &this->fireballPos);
|
||||||
|
|
||||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 868);
|
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_anubice.c", 868);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#include "z_en_anubice_fire.h"
|
#include "z_en_anubice_fire.h"
|
||||||
#include "objects/gameplay_keep/gameplay_keep.h"
|
#include "objects/gameplay_keep/gameplay_keep.h"
|
||||||
|
#include "objects/object_anubice/object_anubice.h"
|
||||||
|
|
||||||
#define FLAGS 0x00000010
|
#define FLAGS 0x00000010
|
||||||
|
|
||||||
|
@ -20,8 +21,6 @@ void func_809B26EC(EnAnubiceFire* this, GlobalContext* globalCtx);
|
||||||
void func_809B27D8(EnAnubiceFire* this, GlobalContext* globalCtx);
|
void func_809B27D8(EnAnubiceFire* this, GlobalContext* globalCtx);
|
||||||
void func_809B2B48(EnAnubiceFire* this, GlobalContext* globalCtx);
|
void func_809B2B48(EnAnubiceFire* this, GlobalContext* globalCtx);
|
||||||
|
|
||||||
extern Gfx D_06003510[];
|
|
||||||
|
|
||||||
const ActorInit En_Anubice_Fire_InitVars = {
|
const ActorInit En_Anubice_Fire_InitVars = {
|
||||||
ACTOR_EN_ANUBICE_FIRE,
|
ACTOR_EN_ANUBICE_FIRE,
|
||||||
ACTORCAT_ENEMY,
|
ACTORCAT_ENEMY,
|
||||||
|
@ -245,7 +244,7 @@ void EnAnubiceFire_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice_fire.c", 546),
|
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_anubice_fire.c", 546),
|
||||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
|
|
||||||
gSPDisplayList(POLY_XLU_DISP++, D_06003510);
|
gSPDisplayList(POLY_XLU_DISP++, gAnubiceFireAttackDL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->scale < 0.1f) {
|
if (this->scale < 0.1f) {
|
||||||
|
|
|
@ -2017,16 +2017,6 @@ D_0600033C = 0x0600033C;
|
||||||
D_06005948 = 0x06005948;
|
D_06005948 = 0x06005948;
|
||||||
D_06005B3C = 0x06005B3C;
|
D_06005B3C = 0x06005B3C;
|
||||||
|
|
||||||
// z_en_anubice
|
|
||||||
D_06000348 = 0x06000348;
|
|
||||||
D_0600078C = 0x0600078C;
|
|
||||||
D_06000F74 = 0x06000F74;
|
|
||||||
D_06003468 = 0x06003468;
|
|
||||||
D_06003990 = 0x06003990;
|
|
||||||
|
|
||||||
// z_en_anubice_fire
|
|
||||||
D_06003510 = 0x06003510;
|
|
||||||
|
|
||||||
// z_en_ba
|
// z_en_ba
|
||||||
D_06000890 = 0x06000890;
|
D_06000890 = 0x06000890;
|
||||||
D_06001D80 = 0x06001D80;
|
D_06001D80 = 0x06001D80;
|
||||||
|
|
Loading…
Add table
Reference in a new issue