1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-20 05:51:18 +00:00

Gerudo objects (#757)

* object_ge1

* more stuff named

* object_gla OK, symbols added to C

* eff fire fix in gameplay_keep

* object_nb OK, fixed gameplay_keep

* replaced symbols in EnNb, limb enums

* Change EnGeldB limb enums to hex

* Use enum in header too

* Add descriptions to EnGe2 and EnNb, rearrange xml

* Reorder xml

* review changes
This commit is contained in:
EllipticEllipsis 2021-04-10 17:25:03 +01:00 committed by GitHub
parent c04806fc66
commit 8d2a2a8e46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 466 additions and 160 deletions

View file

@ -1,6 +1,12 @@
/*
* File: z_en_ge2.c
* Overlay: ovl_En_Ge2
* Description: Purple-clothed Gerudo
*/
#include "z_en_ge2.h"
#include "vt.h"
#include "objects/object_gla/object_gla.h"
#define FLAGS 0x00000019
@ -90,13 +96,9 @@ static EnGe2ActionFunc sActionFuncs[] = {
};
static AnimationHeader* sAnimations[] = {
0x06009ED4, // Walking, spear on shoulder
0x060098AC, // Standing, looking left and right
0x060098AC,
0x060011F4, // Falling to ground
0x060098AC,
0x06008D60, // Runnng, spear in attack position
0x060098AC, 0x060098AC, 0x060098AC,
&gGerudoPurpleWalkingAnim, &gGerudoPurpleLookingAboutAnim, &gGerudoPurpleLookingAboutAnim,
&gGerudoPurpleFallingToGroundAnim, &gGerudoPurpleLookingAboutAnim, &gGerudoPurpleChargingAnim,
&gGerudoPurpleLookingAboutAnim, &gGerudoPurpleLookingAboutAnim, &gGerudoPurpleLookingAboutAnim,
};
static u8 sAnimModes[] = {
@ -104,9 +106,6 @@ static u8 sAnimModes[] = {
ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_LOOP, ANIMMODE_ONCE,
};
extern FlexSkeletonHeader D_06008968;
extern AnimationHeader D_06009ED4;
void EnGe2_ChangeAction(EnGe2* this, s32 i) {
this->actionFunc = sActionFuncs[i];
Animation_Change(&this->skelAnime, sAnimations[i], 1.0f, 0.0f, Animation_GetLastFrame(sAnimations[i]),
@ -119,8 +118,8 @@ void EnGe2_Init(Actor* thisx, GlobalContext* globalCtx) {
EnGe2* this = THIS;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &D_06008968, NULL, this->jointTable, this->morphTable, 22);
Animation_PlayLoop(&this->skelAnime, &D_06009ED4);
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGerudoPurpleSkel, NULL, this->jointTable, this->morphTable, 22);
Animation_PlayLoop(&this->skelAnime, &gGerudoPurpleWalkingAnim);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
@ -644,9 +643,9 @@ void EnGe2_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
}
static u64* sEyeTextures[] = {
0x06004F78, // Half-open
0x06005578, // Quarter-open
0x06005BF8, // Closed
gGerudoPurpleEyeOpenTex,
gGerudoPurpleEyeHalfTex,
gGerudoPurpleEyeClosedTex,
};
void EnGe2_Draw(Actor* thisx, GlobalContext* globalCtx) {