mirror of
https://github.com/zeldaret/oot.git
synced 2024-09-21 04:24:43 +00:00
Match some entity actors H-N (#1827)
This commit is contained in:
parent
33d8044e45
commit
93295a842b
@ -17,7 +17,7 @@
|
|||||||
void EnHeishi2_Init(Actor* thisx, PlayState* play);
|
void EnHeishi2_Init(Actor* thisx, PlayState* play);
|
||||||
void EnHeishi2_Destroy(Actor* thisx, PlayState* play);
|
void EnHeishi2_Destroy(Actor* thisx, PlayState* play);
|
||||||
void EnHeishi2_Update(Actor* thisx, PlayState* play);
|
void EnHeishi2_Update(Actor* thisx, PlayState* play);
|
||||||
void EnHeishi2_Draw(Actor* thisx, PlayState* play);
|
void EnHeishi2_Draw(Actor* thisx, PlayState* play2);
|
||||||
|
|
||||||
void EnHeishi2_DrawKingGuard(Actor* thisx, PlayState* play);
|
void EnHeishi2_DrawKingGuard(Actor* thisx, PlayState* play);
|
||||||
void EnHeishi2_DoNothing1(EnHeishi2* this, PlayState* play);
|
void EnHeishi2_DoNothing1(EnHeishi2* this, PlayState* play);
|
||||||
@ -389,7 +389,6 @@ void func_80A5399C(EnHeishi2* this, PlayState* play) {
|
|||||||
|
|
||||||
void func_80A53AD4(EnHeishi2* this, PlayState* play) {
|
void func_80A53AD4(EnHeishi2* this, PlayState* play) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
s32 exchangeItemId;
|
|
||||||
s16 yawDiffTemp;
|
s16 yawDiffTemp;
|
||||||
s16 yawDiff;
|
s16 yawDiff;
|
||||||
|
|
||||||
@ -400,8 +399,10 @@ void func_80A53AD4(EnHeishi2* this, PlayState* play) {
|
|||||||
this->actor.textId = 0x200E;
|
this->actor.textId = 0x200E;
|
||||||
}
|
}
|
||||||
this->unk_300 = TEXT_STATE_DONE;
|
this->unk_300 = TEXT_STATE_DONE;
|
||||||
|
|
||||||
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
||||||
exchangeItemId = func_8002F368(play);
|
s32 exchangeItemId = func_8002F368(play);
|
||||||
|
|
||||||
if (exchangeItemId == EXCH_ITEM_ZELDAS_LETTER) {
|
if (exchangeItemId == EXCH_ITEM_ZELDAS_LETTER) {
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
|
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
|
||||||
player->actor.textId = 0x2010;
|
player->actor.textId = 0x2010;
|
||||||
@ -410,12 +411,14 @@ void func_80A53AD4(EnHeishi2* this, PlayState* play) {
|
|||||||
} else if (exchangeItemId != EXCH_ITEM_NONE) {
|
} else if (exchangeItemId != EXCH_ITEM_NONE) {
|
||||||
player->actor.textId = 0x200F;
|
player->actor.textId = 0x200F;
|
||||||
}
|
}
|
||||||
} else {
|
return;
|
||||||
yawDiffTemp = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
|
}
|
||||||
yawDiff = ABS(yawDiffTemp);
|
|
||||||
if (!(120.0f < this->actor.xzDistToPlayer) && (yawDiff < 0x4300)) {
|
yawDiffTemp = this->actor.yawTowardsPlayer - this->actor.shape.rot.y;
|
||||||
Actor_OfferTalkExchangeEquiCylinder(&this->actor, play, 100.0f, EXCH_ITEM_ZELDAS_LETTER);
|
yawDiff = ABS(yawDiffTemp);
|
||||||
}
|
|
||||||
|
if (!(120.0f < this->actor.xzDistToPlayer) && (yawDiff < 0x4300)) {
|
||||||
|
Actor_OfferTalkExchangeEquiCylinder(&this->actor, play, 100.0f, EXCH_ITEM_ZELDAS_LETTER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -834,9 +837,9 @@ void EnHeishi2_DrawKingGuard(Actor* thisx, PlayState* play) {
|
|||||||
CLOSE_DISPS(play->state.gfxCtx, "../z_en_heishi2.c", 1777);
|
CLOSE_DISPS(play->state.gfxCtx, "../z_en_heishi2.c", 1777);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHeishi2_Draw(Actor* thisx, PlayState* play) {
|
void EnHeishi2_Draw(Actor* thisx, PlayState* play2) {
|
||||||
|
PlayState* play = (PlayState*)play2;
|
||||||
EnHeishi2* this = (EnHeishi2*)thisx;
|
EnHeishi2* this = (EnHeishi2*)thisx;
|
||||||
Mtx* mtx;
|
|
||||||
s32 linkChildObjectSlot;
|
s32 linkChildObjectSlot;
|
||||||
|
|
||||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_heishi2.c", 1792);
|
OPEN_DISPS(play->state.gfxCtx, "../z_en_heishi2.c", 1792);
|
||||||
@ -848,6 +851,8 @@ void EnHeishi2_Draw(Actor* thisx, PlayState* play) {
|
|||||||
if ((this->type == 5) && GET_INFTABLE(INFTABLE_77)) {
|
if ((this->type == 5) && GET_INFTABLE(INFTABLE_77)) {
|
||||||
linkChildObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_LINK_CHILD);
|
linkChildObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_LINK_CHILD);
|
||||||
if (linkChildObjectSlot >= 0) {
|
if (linkChildObjectSlot >= 0) {
|
||||||
|
Mtx* mtx;
|
||||||
|
|
||||||
Matrix_Put(&this->mtxf_330);
|
Matrix_Put(&this->mtxf_330);
|
||||||
Matrix_Translate(-570.0f, 0.0f, 0.0f, MTXMODE_APPLY);
|
Matrix_Translate(-570.0f, 0.0f, 0.0f, MTXMODE_APPLY);
|
||||||
Matrix_RotateZ(DEG_TO_RAD(70), MTXMODE_APPLY);
|
Matrix_RotateZ(DEG_TO_RAD(70), MTXMODE_APPLY);
|
||||||
|
@ -211,6 +211,8 @@ void func_80A56614(EnHeishi4* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_80A5673C(EnHeishi4* this, PlayState* play) {
|
void func_80A5673C(EnHeishi4* this, PlayState* play) {
|
||||||
|
f32 frames;
|
||||||
|
|
||||||
if (GET_EVENTCHKINF(EVENTCHKINF_45)) {
|
if (GET_EVENTCHKINF(EVENTCHKINF_45)) {
|
||||||
PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ マスターソード祝入手! ☆☆☆☆☆ \n" VT_RST);
|
PRINTF(VT_FGCOL(YELLOW) " ☆☆☆☆☆ マスターソード祝入手! ☆☆☆☆☆ \n" VT_RST);
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
@ -219,7 +221,7 @@ void func_80A5673C(EnHeishi4* this, PlayState* play) {
|
|||||||
this->unk_284 = 0;
|
this->unk_284 = 0;
|
||||||
if (GET_EVENTCHKINF(EVENTCHKINF_80)) {
|
if (GET_EVENTCHKINF(EVENTCHKINF_80)) {
|
||||||
if (!GET_INFTABLE(INFTABLE_6C)) {
|
if (!GET_INFTABLE(INFTABLE_6C)) {
|
||||||
f32 frames = Animation_GetLastFrame(&gEnHeishiDyingGuardAnim_00C444);
|
frames = Animation_GetLastFrame(&gEnHeishiDyingGuardAnim_00C444);
|
||||||
Animation_Change(&this->skelAnime, &gEnHeishiDyingGuardAnim_00C444, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP,
|
Animation_Change(&this->skelAnime, &gEnHeishiDyingGuardAnim_00C444, 1.0f, 0.0f, (s16)frames, ANIMMODE_LOOP,
|
||||||
-10.0f);
|
-10.0f);
|
||||||
this->actor.textId = 0x7007;
|
this->actor.textId = 0x7007;
|
||||||
|
@ -136,12 +136,14 @@ s32 EnHorseGameCheck_UpdateIngoRace(EnHorseGameCheckBase* base, PlayState* play)
|
|||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
s32 i;
|
s32 i;
|
||||||
EnHorse* ingoHorse;
|
EnHorse* ingoHorse;
|
||||||
EnHorse* horse;
|
Player* player2 = player;
|
||||||
|
|
||||||
if ((this->startTimer > 50) && !(this->startFlags & INGORACE_SET_TIMER)) {
|
if ((this->startTimer > 50) && !(this->startFlags & INGORACE_SET_TIMER)) {
|
||||||
this->startFlags |= INGORACE_SET_TIMER;
|
this->startFlags |= INGORACE_SET_TIMER;
|
||||||
Interface_SetTimer(0);
|
Interface_SetTimer(0);
|
||||||
} else if ((this->startTimer > 80) && (player->rideActor != NULL) && !(this->startFlags & INGORACE_PLAYER_MOVE)) {
|
} else if ((this->startTimer > 80) && (player->rideActor != NULL) && !(this->startFlags & INGORACE_PLAYER_MOVE)) {
|
||||||
|
EnHorse* horse;
|
||||||
|
|
||||||
this->startFlags |= INGORACE_PLAYER_MOVE;
|
this->startFlags |= INGORACE_PLAYER_MOVE;
|
||||||
horse = (EnHorse*)player->rideActor;
|
horse = (EnHorse*)player->rideActor;
|
||||||
horse->inRace = 1;
|
horse->inRace = 1;
|
||||||
@ -175,8 +177,6 @@ s32 EnHorseGameCheck_UpdateIngoRace(EnHorseGameCheckBase* base, PlayState* play)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this->result == INGORACE_NO_RESULT) {
|
if (this->result == INGORACE_NO_RESULT) {
|
||||||
Player* player2 = player;
|
|
||||||
|
|
||||||
if ((player2->rideActor != NULL) && (this->playerCheck[2] == 1) && AT_FINISH_LINE(player2->rideActor)) {
|
if ((player2->rideActor != NULL) && (this->playerCheck[2] == 1) && AT_FINISH_LINE(player2->rideActor)) {
|
||||||
this->playerFinish++;
|
this->playerFinish++;
|
||||||
if (this->playerFinish > 0) {
|
if (this->playerFinish > 0) {
|
||||||
@ -319,6 +319,8 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, PlayState* play
|
|||||||
s32 i;
|
s32 i;
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
EnHorse* horse;
|
EnHorse* horse;
|
||||||
|
Player* player2 = player;
|
||||||
|
f32 dist;
|
||||||
|
|
||||||
if (!(this->raceFlags & MALONRACE_PLAYER_ON_MARK) && AT_FINISH_LINE(player->rideActor)) {
|
if (!(this->raceFlags & MALONRACE_PLAYER_ON_MARK) && AT_FINISH_LINE(player->rideActor)) {
|
||||||
this->raceFlags |= MALONRACE_PLAYER_ON_MARK;
|
this->raceFlags |= MALONRACE_PLAYER_ON_MARK;
|
||||||
@ -330,10 +332,12 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, PlayState* play
|
|||||||
this->raceFlags |= MALONRACE_SET_TIMER;
|
this->raceFlags |= MALONRACE_SET_TIMER;
|
||||||
Interface_SetTimer(0);
|
Interface_SetTimer(0);
|
||||||
} else if ((this->startTimer > 80) && (player->rideActor != NULL) && !(this->raceFlags & MALONRACE_PLAYER_MOVE)) {
|
} else if ((this->startTimer > 80) && (player->rideActor != NULL) && !(this->raceFlags & MALONRACE_PLAYER_MOVE)) {
|
||||||
this->raceFlags |= MALONRACE_PLAYER_MOVE;
|
EnHorse* rideHorse;
|
||||||
horse = (EnHorse*)player->rideActor;
|
|
||||||
|
|
||||||
horse->inRace = 1;
|
this->raceFlags |= MALONRACE_PLAYER_MOVE;
|
||||||
|
rideHorse = (EnHorse*)player->rideActor;
|
||||||
|
|
||||||
|
rideHorse->inRace = 1;
|
||||||
} else if ((this->startTimer > 81) && !(this->raceFlags & MALONRACE_START_SFX)) {
|
} else if ((this->startTimer > 81) && !(this->raceFlags & MALONRACE_START_SFX)) {
|
||||||
this->raceFlags |= MALONRACE_START_SFX;
|
this->raceFlags |= MALONRACE_START_SFX;
|
||||||
Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
|
||||||
@ -342,9 +346,6 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, PlayState* play
|
|||||||
|
|
||||||
this->startTimer++;
|
this->startTimer++;
|
||||||
if (this->result == MALONRACE_NO_RESULT) {
|
if (this->result == MALONRACE_NO_RESULT) {
|
||||||
Player* player2 = player;
|
|
||||||
f32 dist;
|
|
||||||
|
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
if ((this->lapCount == 0) && (i >= 8)) {
|
if ((this->lapCount == 0) && (i >= 8)) {
|
||||||
break;
|
break;
|
||||||
|
@ -344,8 +344,6 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) {
|
|||||||
f32 distFromLink;
|
f32 distFromLink;
|
||||||
s32 animationEnded;
|
s32 animationEnded;
|
||||||
s32 newAnimationIdx;
|
s32 newAnimationIdx;
|
||||||
f32 distFromHome;
|
|
||||||
f32 distLinkFromHome;
|
|
||||||
|
|
||||||
func_80A69F5C(this, play);
|
func_80A69F5C(this, play);
|
||||||
player = GET_PLAYER(play);
|
player = GET_PLAYER(play);
|
||||||
@ -369,8 +367,9 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) {
|
|||||||
animationEnded = SkelAnime_Update(&this->skin.skelAnime);
|
animationEnded = SkelAnime_Update(&this->skin.skelAnime);
|
||||||
if (animationEnded || (this->animationIdx == 1) || (this->animationIdx == 0)) {
|
if (animationEnded || (this->animationIdx == 1) || (this->animationIdx == 0)) {
|
||||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALKED_TO_CHILD_MALON_AT_RANCH)) {
|
if (GET_EVENTCHKINF(EVENTCHKINF_TALKED_TO_CHILD_MALON_AT_RANCH)) {
|
||||||
distFromHome = Math3D_Vec3f_DistXYZ(&this->actor.world.pos, &this->actor.home.pos);
|
f32 distFromHome = Math3D_Vec3f_DistXYZ(&this->actor.world.pos, &this->actor.home.pos);
|
||||||
distLinkFromHome = Math3D_Vec3f_DistXYZ(&player->actor.world.pos, &this->actor.home.pos);
|
f32 distLinkFromHome = Math3D_Vec3f_DistXYZ(&player->actor.world.pos, &this->actor.home.pos);
|
||||||
|
|
||||||
if (distLinkFromHome > 250.0f) {
|
if (distLinkFromHome > 250.0f) {
|
||||||
if (distFromHome >= 300.0f) {
|
if (distFromHome >= 300.0f) {
|
||||||
newAnimationIdx = 4;
|
newAnimationIdx = 4;
|
||||||
|
@ -31,7 +31,7 @@ typedef enum {
|
|||||||
void EnHorseNormal_Init(Actor* thisx, PlayState* play);
|
void EnHorseNormal_Init(Actor* thisx, PlayState* play);
|
||||||
void EnHorseNormal_Destroy(Actor* thisx, PlayState* play);
|
void EnHorseNormal_Destroy(Actor* thisx, PlayState* play);
|
||||||
void EnHorseNormal_Update(Actor* thisx, PlayState* play);
|
void EnHorseNormal_Update(Actor* thisx, PlayState* play);
|
||||||
void EnHorseNormal_Draw(Actor* thisx, PlayState* play);
|
void EnHorseNormal_Draw(Actor* thisx, PlayState* play2);
|
||||||
|
|
||||||
void func_80A6B91C(EnHorseNormal* this, PlayState* play);
|
void func_80A6B91C(EnHorseNormal* this, PlayState* play);
|
||||||
void func_80A6BC48(EnHorseNormal* this);
|
void func_80A6BC48(EnHorseNormal* this);
|
||||||
@ -333,10 +333,10 @@ void EnHorseNormal_CycleAnimations(EnHorseNormal* this, PlayState* play) {
|
|||||||
void func_80A6BC48(EnHorseNormal* this) {
|
void func_80A6BC48(EnHorseNormal* this) {
|
||||||
this->action = HORSE_WANDER;
|
this->action = HORSE_WANDER;
|
||||||
this->animationIdx = 0;
|
this->animationIdx = 0;
|
||||||
this->unk_21C = 0;
|
|
||||||
this->unk_21E = 0;
|
|
||||||
this->actor.speed = 0.0f;
|
this->actor.speed = 0.0f;
|
||||||
this->unk_218 = 0.0f;
|
this->unk_218 = 0.0f;
|
||||||
|
this->unk_21C = 0;
|
||||||
|
this->unk_21E = 0;
|
||||||
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
|
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
|
||||||
Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f);
|
Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f);
|
||||||
}
|
}
|
||||||
@ -484,10 +484,10 @@ void EnHorseNormal_Wander(EnHorseNormal* this, PlayState* play) {
|
|||||||
void func_80A6C4CC(EnHorseNormal* this) {
|
void func_80A6C4CC(EnHorseNormal* this) {
|
||||||
this->action = HORSE_WAIT;
|
this->action = HORSE_WAIT;
|
||||||
this->animationIdx = 0;
|
this->animationIdx = 0;
|
||||||
this->unk_21C = 0;
|
|
||||||
this->unk_21E = 0;
|
|
||||||
this->actor.speed = 0.0f;
|
this->actor.speed = 0.0f;
|
||||||
this->unk_218 = 0.0f;
|
this->unk_218 = 0.0f;
|
||||||
|
this->unk_21C = 0;
|
||||||
|
this->unk_21E = 0;
|
||||||
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
|
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
|
||||||
Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f);
|
Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f);
|
||||||
}
|
}
|
||||||
@ -516,11 +516,11 @@ void EnHorseNormal_Wait(EnHorseNormal* this, PlayState* play) {
|
|||||||
void func_80A6C6B0(EnHorseNormal* this) {
|
void func_80A6C6B0(EnHorseNormal* this) {
|
||||||
this->action = HORSE_WAIT_CLONE;
|
this->action = HORSE_WAIT_CLONE;
|
||||||
this->animationIdx = 0;
|
this->animationIdx = 0;
|
||||||
|
this->actor.speed = 0.0f;
|
||||||
|
this->unk_218 = 0.0f;
|
||||||
this->unk_21C = 0;
|
this->unk_21C = 0;
|
||||||
this->unk_21E = 0;
|
this->unk_21E = 0;
|
||||||
this->actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
|
this->actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5;
|
||||||
this->actor.speed = 0.0f;
|
|
||||||
this->unk_218 = 0.0f;
|
|
||||||
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
|
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
|
||||||
Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f);
|
Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f);
|
||||||
}
|
}
|
||||||
@ -648,9 +648,9 @@ void func_80A6CC88(PlayState* play, EnHorseNormal* this, Vec3f* arg2) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
|
void EnHorseNormal_Draw(Actor* thisx, PlayState* play2) {
|
||||||
EnHorseNormal* this = (EnHorseNormal*)thisx;
|
EnHorseNormal* this = (EnHorseNormal*)thisx;
|
||||||
Mtx* mtx2;
|
PlayState* play = (PlayState*)play2;
|
||||||
|
|
||||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_horse_normal.c", 2224);
|
OPEN_DISPS(play->state.gfxCtx, "../z_en_horse_normal.c", 2224);
|
||||||
|
|
||||||
@ -662,7 +662,7 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
|
|||||||
|
|
||||||
if (this->action == HORSE_WAIT_CLONE) {
|
if (this->action == HORSE_WAIT_CLONE) {
|
||||||
MtxF skinMtx;
|
MtxF skinMtx;
|
||||||
Mtx* mtx1;
|
Mtx* mtx;
|
||||||
Vec3f clonePos = { 0.0f, 0.0f, 0.0f };
|
Vec3f clonePos = { 0.0f, 0.0f, 0.0f };
|
||||||
s16 cloneRotY;
|
s16 cloneRotY;
|
||||||
f32 distFromGround = this->actor.world.pos.y - this->actor.floorHeight;
|
f32 distFromGround = this->actor.world.pos.y - this->actor.floorHeight;
|
||||||
@ -702,12 +702,12 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
|
|||||||
this->actor.shape.rot.x, cloneRotY, this->actor.shape.rot.z, clonePos.x,
|
this->actor.shape.rot.x, cloneRotY, this->actor.shape.rot.z, clonePos.x,
|
||||||
(this->actor.shape.yOffset * this->actor.scale.y) + clonePos.y,
|
(this->actor.shape.yOffset * this->actor.scale.y) + clonePos.y,
|
||||||
clonePos.z);
|
clonePos.z);
|
||||||
mtx1 = SkinMatrix_MtxFToNewMtx(play->state.gfxCtx, &skinMtx);
|
mtx = SkinMatrix_MtxFToNewMtx(play->state.gfxCtx, &skinMtx);
|
||||||
if (mtx1 == NULL) {
|
if (mtx == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
gSPMatrix(POLY_OPA_DISP++, mtx1, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
func_800A63CC(&this->actor, play, &this->skin, NULL, NULL, true, 0,
|
func_800A63CC(&this->actor, play, &this->skin, NULL, NULL, true, 0,
|
||||||
SKIN_DRAW_FLAG_CUSTOM_TRANSFORMS | SKIN_DRAW_FLAG_CUSTOM_MATRIX);
|
SKIN_DRAW_FLAG_CUSTOM_TRANSFORMS | SKIN_DRAW_FLAG_CUSTOM_MATRIX);
|
||||||
this->cloneCollider.dim.pos.x = clonePos.x;
|
this->cloneCollider.dim.pos.x = clonePos.x;
|
||||||
@ -720,9 +720,9 @@ void EnHorseNormal_Draw(Actor* thisx, PlayState* play) {
|
|||||||
temp_f0_4 = (1.0f - (distFromGround * 0.01f)) * this->actor.shape.shadowScale;
|
temp_f0_4 = (1.0f - (distFromGround * 0.01f)) * this->actor.shape.shadowScale;
|
||||||
Matrix_Scale(this->actor.scale.x * temp_f0_4, 1.0f, this->actor.scale.z * temp_f0_4, MTXMODE_APPLY);
|
Matrix_Scale(this->actor.scale.x * temp_f0_4, 1.0f, this->actor.scale.z * temp_f0_4, MTXMODE_APPLY);
|
||||||
Matrix_RotateY(BINANG_TO_RAD(cloneRotY), MTXMODE_APPLY);
|
Matrix_RotateY(BINANG_TO_RAD(cloneRotY), MTXMODE_APPLY);
|
||||||
mtx2 = MATRIX_NEW(play->state.gfxCtx, "../z_en_horse_normal.c", 2329);
|
mtx = MATRIX_NEW(play->state.gfxCtx, "../z_en_horse_normal.c", 2329);
|
||||||
if (mtx2 != NULL) {
|
if (mtx != NULL) {
|
||||||
gSPMatrix(POLY_XLU_DISP++, mtx2, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
gSPMatrix(POLY_XLU_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||||
gSPDisplayList(POLY_XLU_DISP++, gHorseShadowDL);
|
gSPDisplayList(POLY_XLU_DISP++, gHorseShadowDL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1106,8 +1106,6 @@ s32 EnHy_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
|
|||||||
u8 i;
|
u8 i;
|
||||||
void* ptr;
|
void* ptr;
|
||||||
|
|
||||||
if (1) {}
|
|
||||||
|
|
||||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_hy.c", 2170);
|
OPEN_DISPS(play->state.gfxCtx, "../z_en_hy.c", 2170);
|
||||||
|
|
||||||
if (limbIndex == 15) {
|
if (limbIndex == 15) {
|
||||||
@ -1143,6 +1141,8 @@ s32 EnHy_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
|
|||||||
rot->z += Math_CosS(this->unk_23C[limbIndex]) * 200.0f;
|
rot->z += Math_CosS(this->unk_23C[limbIndex]) * 200.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (1) {}
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx, "../z_en_hy.c", 2228);
|
CLOSE_DISPS(play->state.gfxCtx, "../z_en_hy.c", 2228);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -356,9 +356,13 @@ void EnIceHono_Update(Actor* thisx, PlayState* play) {
|
|||||||
sin156 = Math_SinS(this->unk_156);
|
sin156 = Math_SinS(this->unk_156);
|
||||||
sin154 = Math_SinS(this->unk_154);
|
sin154 = Math_SinS(this->unk_154);
|
||||||
intensity = (Rand_ZeroOne() * 0.05f) + ((sin154 * 0.125f) + (sin156 * 0.1f)) + 0.425f;
|
intensity = (Rand_ZeroOne() * 0.05f) + ((sin154 * 0.125f) + (sin156 * 0.1f)) + 0.425f;
|
||||||
|
|
||||||
|
#if OOT_DEBUG
|
||||||
if ((intensity > 0.7f) || (intensity < 0.2f)) {
|
if ((intensity > 0.7f) || (intensity < 0.2f)) {
|
||||||
PRINTF("ありえない値(ratio = %f)\n", intensity); // "impossible value(ratio = %f)"
|
PRINTF("ありえない値(ratio = %f)\n", intensity); // "impossible value(ratio = %f)"
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
Lights_PointNoGlowSetInfo(&this->lightInfo, this->actor.world.pos.x, (s16)this->actor.world.pos.y + 10,
|
Lights_PointNoGlowSetInfo(&this->lightInfo, this->actor.world.pos.x, (s16)this->actor.world.pos.y + 10,
|
||||||
this->actor.world.pos.z, (s32)(155.0f * intensity), (s32)(210.0f * intensity),
|
this->actor.world.pos.z, (s32)(155.0f * intensity), (s32)(210.0f * intensity),
|
||||||
(s32)(255.0f * intensity), 1400);
|
(s32)(255.0f * intensity), 1400);
|
||||||
|
@ -708,18 +708,13 @@ void EnIk_Die(EnIk* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnIk_UpdateDamage(EnIk* this, PlayState* play) {
|
void EnIk_UpdateDamage(EnIk* this, PlayState* play) {
|
||||||
f32 frames;
|
|
||||||
s16 pad;
|
|
||||||
u8 prevHealth;
|
|
||||||
s32 damageEffect;
|
|
||||||
Vec3f sparksPos;
|
|
||||||
|
|
||||||
if ((this->unk_2F8 == 3) || (this->unk_2F8 == 2)) {
|
if ((this->unk_2F8 == 3) || (this->unk_2F8 == 2)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->shieldCollider.base.acFlags & AC_BOUNCED) {
|
if (this->shieldCollider.base.acFlags & AC_BOUNCED) {
|
||||||
frames = Animation_GetLastFrame(&gIronKnuckleBlockAnim) - 2.0f;
|
f32 frames = Animation_GetLastFrame(&gIronKnuckleBlockAnim) - 2.0f;
|
||||||
|
|
||||||
if (this->skelAnime.curFrame < frames) {
|
if (this->skelAnime.curFrame < frames) {
|
||||||
this->skelAnime.curFrame = frames;
|
this->skelAnime.curFrame = frames;
|
||||||
@ -728,7 +723,11 @@ void EnIk_UpdateDamage(EnIk* this, PlayState* play) {
|
|||||||
this->shieldCollider.base.acFlags &= ~AC_BOUNCED;
|
this->shieldCollider.base.acFlags &= ~AC_BOUNCED;
|
||||||
this->bodyCollider.base.acFlags &= ~AC_HIT;
|
this->bodyCollider.base.acFlags &= ~AC_HIT;
|
||||||
} else if (this->bodyCollider.base.acFlags & AC_HIT) {
|
} else if (this->bodyCollider.base.acFlags & AC_HIT) {
|
||||||
sparksPos = this->actor.world.pos;
|
s16 pad;
|
||||||
|
u8 prevHealth;
|
||||||
|
s32 damageEffect;
|
||||||
|
Vec3f sparksPos = this->actor.world.pos;
|
||||||
|
|
||||||
sparksPos.y += 50.0f;
|
sparksPos.y += 50.0f;
|
||||||
|
|
||||||
Actor_SetDropFlag(&this->actor, &this->bodyCollider.elem, true);
|
Actor_SetDropFlag(&this->actor, &this->bodyCollider.elem, true);
|
||||||
|
@ -88,8 +88,8 @@ void func_80A89A6C(EnJsjutan* this, PlayState* play) {
|
|||||||
Vtx* phi_s0_2;
|
Vtx* phi_s0_2;
|
||||||
Vec3f sp108;
|
Vec3f sp108;
|
||||||
Vec3f spFC;
|
Vec3f spFC;
|
||||||
Actor* actorProfessor;
|
f32 rotX;
|
||||||
Actor* actorBeanGuy;
|
f32 rotZ;
|
||||||
f32 dxVtx;
|
f32 dxVtx;
|
||||||
f32 dyVtx;
|
f32 dyVtx;
|
||||||
f32 dzVtx;
|
f32 dzVtx;
|
||||||
@ -148,6 +148,9 @@ void func_80A89A6C(EnJsjutan* this, PlayState* play) {
|
|||||||
|
|
||||||
// Credits scene. The magic carpet man is friends with the bean guy and the lakeside professor.
|
// Credits scene. The magic carpet man is friends with the bean guy and the lakeside professor.
|
||||||
if ((gSaveContext.save.entranceIndex == ENTR_LON_LON_RANCH_0) && (gSaveContext.sceneLayer == 8)) {
|
if ((gSaveContext.save.entranceIndex == ENTR_LON_LON_RANCH_0) && (gSaveContext.sceneLayer == 8)) {
|
||||||
|
Actor* actorProfessor;
|
||||||
|
Actor* actorBeanGuy;
|
||||||
|
|
||||||
isInCreditsScene = true;
|
isInCreditsScene = true;
|
||||||
|
|
||||||
actorProfessor = play->actorCtx.actorLists[ACTORCAT_NPC].head;
|
actorProfessor = play->actorCtx.actorLists[ACTORCAT_NPC].head;
|
||||||
@ -320,10 +323,6 @@ void func_80A89A6C(EnJsjutan* this, PlayState* play) {
|
|||||||
|
|
||||||
// Fancy math to smooth each part of the wave considering its neighborhood.
|
// Fancy math to smooth each part of the wave considering its neighborhood.
|
||||||
for (i = 0; i < ARRAY_COUNT(sCarpetOddVtx); i++, carpetVtx++) {
|
for (i = 0; i < ARRAY_COUNT(sCarpetOddVtx); i++, carpetVtx++) {
|
||||||
f32 rotX;
|
|
||||||
f32 rotZ;
|
|
||||||
s32 pad;
|
|
||||||
|
|
||||||
// Carpet size is 12x12.
|
// Carpet size is 12x12.
|
||||||
if ((i % 12) == 11) { // Last column.
|
if ((i % 12) == 11) { // Last column.
|
||||||
j = i - 1;
|
j = i - 1;
|
||||||
|
@ -194,10 +194,14 @@ static u16 sCutFlags[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void EnKanban_SetFloorRot(EnKanban* this) {
|
void EnKanban_SetFloorRot(EnKanban* this) {
|
||||||
|
f32 nx;
|
||||||
|
f32 ny;
|
||||||
|
f32 nz;
|
||||||
|
|
||||||
if (this->actor.floorPoly != NULL) {
|
if (this->actor.floorPoly != NULL) {
|
||||||
f32 nx = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.x);
|
nx = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.x);
|
||||||
f32 ny = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.y);
|
ny = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.y);
|
||||||
f32 nz = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.z);
|
nz = COLPOLY_GET_NORMAL(this->actor.floorPoly->normal.z);
|
||||||
|
|
||||||
this->floorRot.x = -Math_FAtan2F(-nz * ny, 1.0f);
|
this->floorRot.x = -Math_FAtan2F(-nz * ny, 1.0f);
|
||||||
this->floorRot.z = Math_FAtan2F(-nx * ny, 1.0f);
|
this->floorRot.z = Math_FAtan2F(-nx * ny, 1.0f);
|
||||||
@ -437,7 +441,6 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) {
|
|||||||
f32 tempY;
|
f32 tempY;
|
||||||
f32 tempZ;
|
f32 tempZ;
|
||||||
f32 tempYDistToWater;
|
f32 tempYDistToWater;
|
||||||
u8 onGround;
|
|
||||||
|
|
||||||
Actor_MoveXZGravity(&this->actor);
|
Actor_MoveXZGravity(&this->actor);
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 30.0f, 50.0f,
|
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 30.0f, 50.0f,
|
||||||
@ -460,107 +463,112 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) {
|
|||||||
this->actor.yDistToWater = tempYDistToWater;
|
this->actor.yDistToWater = tempYDistToWater;
|
||||||
|
|
||||||
PRINTF(VT_RST);
|
PRINTF(VT_RST);
|
||||||
onGround = (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND);
|
|
||||||
if (this->spinXFlag) {
|
if (1) {
|
||||||
this->spinRot.x += this->spinVel.x;
|
u8 onGround = (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND);
|
||||||
this->spinVel.x -= 0x800;
|
|
||||||
if ((this->spinRot.x <= 0) && onGround) {
|
if (this->spinXFlag) {
|
||||||
this->spinRot.x = 0;
|
this->spinRot.x += this->spinVel.x;
|
||||||
this->spinVel.x = 0;
|
this->spinVel.x -= 0x800;
|
||||||
|
if ((this->spinRot.x <= 0) && onGround) {
|
||||||
|
this->spinRot.x = 0;
|
||||||
|
this->spinVel.x = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this->spinRot.x -= this->spinVel.x;
|
||||||
|
this->spinVel.x -= 0x800;
|
||||||
|
if ((this->spinRot.x >= 0) && onGround) {
|
||||||
|
this->spinRot.x = 0;
|
||||||
|
this->spinVel.x = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
if (this->spinVel.x < -0xC00) {
|
||||||
this->spinRot.x -= this->spinVel.x;
|
this->spinVel.x = -0xC00;
|
||||||
this->spinVel.x -= 0x800;
|
|
||||||
if ((this->spinRot.x >= 0) && onGround) {
|
|
||||||
this->spinRot.x = 0;
|
|
||||||
this->spinVel.x = 0;
|
|
||||||
}
|
}
|
||||||
}
|
if (this->spinZFlag) {
|
||||||
if (this->spinVel.x < -0xC00) {
|
this->spinRot.z += this->spinVel.z;
|
||||||
this->spinVel.x = -0xC00;
|
this->spinVel.z -= 0x800;
|
||||||
}
|
if ((this->spinRot.z <= 0) && onGround) {
|
||||||
if (this->spinZFlag) {
|
this->spinRot.z = 0;
|
||||||
this->spinRot.z += this->spinVel.z;
|
this->spinVel.z = 0;
|
||||||
this->spinVel.z -= 0x800;
|
}
|
||||||
if ((this->spinRot.z <= 0) && onGround) {
|
} else {
|
||||||
this->spinRot.z = 0;
|
this->spinRot.z -= this->spinVel.z;
|
||||||
this->spinVel.z = 0;
|
this->spinVel.z -= 0x800;
|
||||||
|
if ((this->spinRot.z >= 0) && onGround) {
|
||||||
|
this->spinRot.z = 0;
|
||||||
|
this->spinVel.z = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
if (this->spinVel.z < -0xC00) {
|
||||||
this->spinRot.z -= this->spinVel.z;
|
this->spinVel.z = -0xC00;
|
||||||
this->spinVel.z -= 0x800;
|
}
|
||||||
if ((this->spinRot.z >= 0) && onGround) {
|
if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) {
|
||||||
this->spinRot.z = 0;
|
this->actor.speed *= -0.5f;
|
||||||
this->spinVel.z = 0;
|
Actor_PlaySfx(&this->actor, NA_SE_EV_WOODPLATE_BOUND);
|
||||||
|
}
|
||||||
|
if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) {
|
||||||
|
this->actionState = ENKANBAN_WATER;
|
||||||
|
Actor_PlaySfx(&this->actor, NA_SE_EV_BOMB_DROP_WATER);
|
||||||
|
this->bounceX = this->bounceZ = 0;
|
||||||
|
this->actor.world.pos.y += this->actor.yDistToWater;
|
||||||
|
EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 0, (this->partCount * 20) + 300);
|
||||||
|
EffectSsGRipple_Spawn(play, &this->actor.world.pos, 150, 650, 0);
|
||||||
|
EffectSsGRipple_Spawn(play, &this->actor.world.pos, 300, 800, 5);
|
||||||
|
this->actor.velocity.y = 0.0f;
|
||||||
|
this->actor.gravity = 0.0f;
|
||||||
|
PRINTF(" WAT Y = %f\n", this->actor.yDistToWater);
|
||||||
|
PRINTF(" POS Y = %f\n", this->actor.world.pos.y);
|
||||||
|
PRINTF(" GROUND Y = %f\n", this->actor.floorHeight);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (onGround) {
|
||||||
|
if (this->bounceCount <= 0) {
|
||||||
|
this->bounceCount++;
|
||||||
|
this->actor.velocity.y *= -0.3f;
|
||||||
|
this->actor.world.rot.y += (s16)Rand_CenteredFloat(16384.0f);
|
||||||
|
} else {
|
||||||
|
this->actor.velocity.y = 0.0f;
|
||||||
|
}
|
||||||
|
this->actor.speed *= 0.7f;
|
||||||
|
if ((this->spinRot.x == 0) && (this->bounceX != 0)) {
|
||||||
|
this->spinVel.x = this->bounceX * 0x200;
|
||||||
|
if (this->bounceX != 0) {
|
||||||
|
this->bounceX -= 5;
|
||||||
|
if (this->bounceX <= 0) {
|
||||||
|
this->bounceX = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Rand_ZeroOne() < 0.5f) {
|
||||||
|
this->spinXFlag = true;
|
||||||
|
} else {
|
||||||
|
this->spinXFlag = false;
|
||||||
|
}
|
||||||
|
bounced = true;
|
||||||
|
}
|
||||||
|
if ((this->spinRot.z == 0) && (this->bounceZ != 0)) {
|
||||||
|
this->spinVel.z = this->bounceZ * 0x200;
|
||||||
|
if (this->bounceZ != 0) {
|
||||||
|
this->bounceZ -= 5;
|
||||||
|
if (this->bounceZ <= 0) {
|
||||||
|
this->bounceZ = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Rand_ZeroOne() < 0.5f) {
|
||||||
|
this->spinZFlag = true;
|
||||||
|
} else {
|
||||||
|
this->spinZFlag = false;
|
||||||
|
}
|
||||||
|
bounced = true;
|
||||||
|
}
|
||||||
|
Math_ApproachS(&this->actor.shape.rot.x, this->direction * 0x4000, 1, 0x2000);
|
||||||
|
} else {
|
||||||
|
this->actor.shape.rot.y += this->spinVel.y;
|
||||||
|
this->actor.shape.rot.x += this->direction * 0x7D0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (this->spinVel.z < -0xC00) {
|
|
||||||
this->spinVel.z = -0xC00;
|
|
||||||
}
|
|
||||||
if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) {
|
|
||||||
this->actor.speed *= -0.5f;
|
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EV_WOODPLATE_BOUND);
|
|
||||||
}
|
|
||||||
if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) {
|
|
||||||
this->actionState = ENKANBAN_WATER;
|
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EV_BOMB_DROP_WATER);
|
|
||||||
this->bounceX = this->bounceZ = 0;
|
|
||||||
this->actor.world.pos.y += this->actor.yDistToWater;
|
|
||||||
EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 0, (this->partCount * 20) + 300);
|
|
||||||
EffectSsGRipple_Spawn(play, &this->actor.world.pos, 150, 650, 0);
|
|
||||||
EffectSsGRipple_Spawn(play, &this->actor.world.pos, 300, 800, 5);
|
|
||||||
this->actor.velocity.y = 0.0f;
|
|
||||||
this->actor.gravity = 0.0f;
|
|
||||||
PRINTF(" WAT Y = %f\n", this->actor.yDistToWater);
|
|
||||||
PRINTF(" POS Y = %f\n", this->actor.world.pos.y);
|
|
||||||
PRINTF(" GROUND Y = %f\n", this->actor.floorHeight);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (onGround) {
|
|
||||||
if (this->bounceCount <= 0) {
|
|
||||||
this->bounceCount++;
|
|
||||||
this->actor.velocity.y *= -0.3f;
|
|
||||||
this->actor.world.rot.y += (s16)Rand_CenteredFloat(16384.0f);
|
|
||||||
} else {
|
|
||||||
this->actor.velocity.y = 0.0f;
|
|
||||||
}
|
|
||||||
this->actor.speed *= 0.7f;
|
|
||||||
if ((this->spinRot.x == 0) && (this->bounceX != 0)) {
|
|
||||||
this->spinVel.x = this->bounceX * 0x200;
|
|
||||||
if (this->bounceX != 0) {
|
|
||||||
this->bounceX -= 5;
|
|
||||||
if (this->bounceX <= 0) {
|
|
||||||
this->bounceX = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Rand_ZeroOne() < 0.5f) {
|
|
||||||
this->spinXFlag = true;
|
|
||||||
} else {
|
|
||||||
this->spinXFlag = false;
|
|
||||||
}
|
|
||||||
bounced = true;
|
|
||||||
}
|
|
||||||
if ((this->spinRot.z == 0) && (this->bounceZ != 0)) {
|
|
||||||
this->spinVel.z = this->bounceZ * 0x200;
|
|
||||||
if (this->bounceZ != 0) {
|
|
||||||
this->bounceZ -= 5;
|
|
||||||
if (this->bounceZ <= 0) {
|
|
||||||
this->bounceZ = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Rand_ZeroOne() < 0.5f) {
|
|
||||||
this->spinZFlag = true;
|
|
||||||
} else {
|
|
||||||
this->spinZFlag = false;
|
|
||||||
}
|
|
||||||
bounced = true;
|
|
||||||
}
|
|
||||||
Math_ApproachS(&this->actor.shape.rot.x, this->direction * 0x4000, 1, 0x2000);
|
|
||||||
} else {
|
|
||||||
this->actor.shape.rot.y += this->spinVel.y;
|
|
||||||
this->actor.shape.rot.x += this->direction * 0x7D0;
|
|
||||||
}
|
|
||||||
if (bounced) {
|
if (bounced) {
|
||||||
s16 dustCount;
|
s16 dustCount;
|
||||||
s16 j;
|
s16 j;
|
||||||
|
@ -47,13 +47,6 @@ static ColliderCylinderInit D_80AA0420 = {
|
|||||||
static u32 D_80AA044C[] = { DMG_SPIN_MASTER, DMG_SPIN_KOKIRI, DMG_SPIN_GIANT };
|
static u32 D_80AA044C[] = { DMG_SPIN_MASTER, DMG_SPIN_KOKIRI, DMG_SPIN_GIANT };
|
||||||
static u32 D_80AA0458[] = { DMG_JUMP_MASTER, DMG_JUMP_KOKIRI, DMG_JUMP_GIANT };
|
static u32 D_80AA0458[] = { DMG_JUMP_MASTER, DMG_JUMP_KOKIRI, DMG_JUMP_GIANT };
|
||||||
|
|
||||||
static u16 sSfxIds[] = {
|
|
||||||
NA_SE_IT_ROLLING_CUT_LV2,
|
|
||||||
NA_SE_IT_ROLLING_CUT_LV1,
|
|
||||||
NA_SE_IT_ROLLING_CUT_LV2,
|
|
||||||
NA_SE_IT_ROLLING_CUT_LV1,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Setup action
|
// Setup action
|
||||||
void func_80A9EFE0(EnMThunder* this, EnMThunderActionFunc actionFunc) {
|
void func_80A9EFE0(EnMThunder* this, EnMThunderActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
@ -207,8 +200,19 @@ void func_80A9F408(EnMThunder* this, PlayState* play) {
|
|||||||
|
|
||||||
func_80A9EFE0(this, func_80A9F9B4);
|
func_80A9EFE0(this, func_80A9F9B4);
|
||||||
this->unk_1C4 = 8;
|
this->unk_1C4 = 8;
|
||||||
Audio_PlaySfxGeneral(sSfxIds[this->unk_1C6], &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
|
|
||||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
{
|
||||||
|
static u16 sSfxIds[] = {
|
||||||
|
NA_SE_IT_ROLLING_CUT_LV2,
|
||||||
|
NA_SE_IT_ROLLING_CUT_LV1,
|
||||||
|
NA_SE_IT_ROLLING_CUT_LV2,
|
||||||
|
NA_SE_IT_ROLLING_CUT_LV1,
|
||||||
|
};
|
||||||
|
|
||||||
|
Audio_PlaySfxGeneral(sSfxIds[this->unk_1C6], &player->actor.projectedPos, 4,
|
||||||
|
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||||
|
}
|
||||||
|
|
||||||
this->unk_1AC = 1.0f;
|
this->unk_1AC = 1.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -264,8 +264,8 @@ void func_80AA204C(EnMa2* this, PlayState* play) {
|
|||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
|
||||||
if (player->stateFlags2 & PLAYER_STATE2_24) {
|
if (player->stateFlags2 & PLAYER_STATE2_24) {
|
||||||
player->unk_6A8 = &this->actor;
|
|
||||||
player->stateFlags2 |= PLAYER_STATE2_25;
|
player->stateFlags2 |= PLAYER_STATE2_25;
|
||||||
|
player->unk_6A8 = &this->actor;
|
||||||
Message_StartOcarina(play, OCARINA_ACTION_CHECK_EPONA);
|
Message_StartOcarina(play, OCARINA_ACTION_CHECK_EPONA);
|
||||||
this->actionFunc = func_80AA20E4;
|
this->actionFunc = func_80AA20E4;
|
||||||
} else if (this->actor.xzDistToPlayer < 30.0f + this->collider.dim.radius) {
|
} else if (this->actor.xzDistToPlayer < 30.0f + this->collider.dim.radius) {
|
||||||
|
@ -1052,13 +1052,13 @@ void EnMb_ClubDamaged(EnMb* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnMb_ClubDamagedWhileKneeling(EnMb* this, PlayState* play) {
|
void EnMb_ClubDamagedWhileKneeling(EnMb* this, PlayState* play) {
|
||||||
s32 pad;
|
|
||||||
|
|
||||||
if (SkelAnime_Update(&this->skelAnime)) {
|
if (SkelAnime_Update(&this->skelAnime)) {
|
||||||
if (this->timer3 != 0) {
|
if (this->timer3 != 0) {
|
||||||
this->timer3--;
|
this->timer3--;
|
||||||
if (this->timer3 == 0) {
|
if (this->timer3 == 0) {
|
||||||
if (this->timer1 == 0) {
|
if (this->timer1 == 0) {
|
||||||
|
s32 pad;
|
||||||
|
|
||||||
Animation_Change(&this->skelAnime, &gEnMbClubStandUpAnim, 3.0f, 0.0f,
|
Animation_Change(&this->skelAnime, &gEnMbClubStandUpAnim, 3.0f, 0.0f,
|
||||||
Animation_GetLastFrame(&gEnMbClubStandUpAnim), ANIMMODE_ONCE_INTERP, 0.0f);
|
Animation_GetLastFrame(&gEnMbClubStandUpAnim), ANIMMODE_ONCE_INTERP, 0.0f);
|
||||||
this->timer1 = 1;
|
this->timer1 = 1;
|
||||||
|
@ -512,8 +512,6 @@ void EnMm_Draw(Actor* thisx, PlayState* play) {
|
|||||||
s32 pad;
|
s32 pad;
|
||||||
EnMm* this = (EnMm*)thisx;
|
EnMm* this = (EnMm*)thisx;
|
||||||
|
|
||||||
if (0) {}
|
|
||||||
|
|
||||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_mm.c", 1065);
|
OPEN_DISPS(play->state.gfxCtx, "../z_en_mm.c", 1065);
|
||||||
|
|
||||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
@ -560,6 +558,8 @@ void EnMm_Draw(Actor* thisx, PlayState* play) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (1) {}
|
||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx, "../z_en_mm.c", 1141);
|
CLOSE_DISPS(play->state.gfxCtx, "../z_en_mm.c", 1141);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,6 +193,7 @@ void EnNb_UpdateEyes(EnNb* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if OOT_DEBUG
|
||||||
void func_80AB11EC(EnNb* this) {
|
void func_80AB11EC(EnNb* this) {
|
||||||
this->action = NB_ACTION_7;
|
this->action = NB_ACTION_7;
|
||||||
this->drawMode = NB_DRAW_NOTHING;
|
this->drawMode = NB_DRAW_NOTHING;
|
||||||
@ -220,6 +221,7 @@ void func_80AB1210(EnNb* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void func_80AB1284(EnNb* this, PlayState* play) {
|
void func_80AB1284(EnNb* this, PlayState* play) {
|
||||||
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, UPDBGCHECKINFO_FLAG_2);
|
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, UPDBGCHECKINFO_FLAG_2);
|
||||||
@ -530,7 +532,9 @@ void EnNb_SetupLightOrb(EnNb* this, PlayState* play) {
|
|||||||
|
|
||||||
void EnNb_Hide(EnNb* this, PlayState* play) {
|
void EnNb_Hide(EnNb* this, PlayState* play) {
|
||||||
EnNb_SetupHide(this, play);
|
EnNb_SetupHide(this, play);
|
||||||
|
#if OOT_DEBUG
|
||||||
func_80AB1210(this, play);
|
func_80AB1210(this, play);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_Fade(EnNb* this, PlayState* play) {
|
void EnNb_Fade(EnNb* this, PlayState* play) {
|
||||||
@ -538,7 +542,9 @@ void EnNb_Fade(EnNb* this, PlayState* play) {
|
|||||||
EnNb_UpdateSkelAnime(this);
|
EnNb_UpdateSkelAnime(this);
|
||||||
EnNb_UpdateEyes(this);
|
EnNb_UpdateEyes(this);
|
||||||
EnNb_CheckToFade(this, play);
|
EnNb_CheckToFade(this, play);
|
||||||
|
#if OOT_DEBUG
|
||||||
func_80AB1210(this, play);
|
func_80AB1210(this, play);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_CreateLightOrb(EnNb* this, PlayState* play) {
|
void EnNb_CreateLightOrb(EnNb* this, PlayState* play) {
|
||||||
@ -546,7 +552,9 @@ void EnNb_CreateLightOrb(EnNb* this, PlayState* play) {
|
|||||||
EnNb_UpdateSkelAnime(this);
|
EnNb_UpdateSkelAnime(this);
|
||||||
EnNb_UpdateEyes(this);
|
EnNb_UpdateEyes(this);
|
||||||
EnNb_SetupLightOrb(this, play);
|
EnNb_SetupLightOrb(this, play);
|
||||||
|
#if OOT_DEBUG
|
||||||
func_80AB1210(this, play);
|
func_80AB1210(this, play);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_DrawTransparency(EnNb* this, PlayState* play) {
|
void EnNb_DrawTransparency(EnNb* this, PlayState* play) {
|
||||||
@ -1121,6 +1129,8 @@ void EnNb_CrawlspaceSpawnCheck(EnNb* this, PlayState* play) {
|
|||||||
this->action = NB_CROUCH_CRAWLSPACE;
|
this->action = NB_CROUCH_CRAWLSPACE;
|
||||||
this->drawMode = NB_DRAW_DEFAULT;
|
this->drawMode = NB_DRAW_DEFAULT;
|
||||||
} else {
|
} else {
|
||||||
|
s32 pad;
|
||||||
|
|
||||||
EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, 0.0f, 0);
|
EnNb_SetCurrentAnim(this, &gNabooruStandingHandsOnHipsAnim, 0, 0.0f, 0);
|
||||||
this->headTurnFlag = 1;
|
this->headTurnFlag = 1;
|
||||||
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3;
|
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3;
|
||||||
@ -1210,6 +1220,8 @@ void EnNb_SetupIdleCrawlspace(EnNb* this, s32 animFinished) {
|
|||||||
|
|
||||||
void func_80AB3838(EnNb* this, PlayState* play) {
|
void func_80AB3838(EnNb* this, PlayState* play) {
|
||||||
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
||||||
|
s32 pad;
|
||||||
|
|
||||||
this->action = NB_IN_DIALOG;
|
this->action = NB_IN_DIALOG;
|
||||||
} else {
|
} else {
|
||||||
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3;
|
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3;
|
||||||
@ -1302,6 +1314,8 @@ void func_80AB3A7C(EnNb* this, PlayState* play, s32 animFinished) {
|
|||||||
|
|
||||||
void func_80AB3B04(EnNb* this, PlayState* play) {
|
void func_80AB3B04(EnNb* this, PlayState* play) {
|
||||||
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
||||||
|
s32 pad;
|
||||||
|
|
||||||
this->action = NB_ACTION_30;
|
this->action = NB_ACTION_30;
|
||||||
} else {
|
} else {
|
||||||
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3;
|
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_3;
|
||||||
@ -1472,6 +1486,8 @@ s32 EnNb_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
|
|||||||
|
|
||||||
if (this->headTurnFlag != 0) {
|
if (this->headTurnFlag != 0) {
|
||||||
if (limbIndex == NB_LIMB_TORSO) {
|
if (limbIndex == NB_LIMB_TORSO) {
|
||||||
|
s32 pad;
|
||||||
|
|
||||||
rot->x += interactInfo->torsoRot.y;
|
rot->x += interactInfo->torsoRot.y;
|
||||||
rot->y -= interactInfo->torsoRot.x;
|
rot->y -= interactInfo->torsoRot.x;
|
||||||
ret = false;
|
ret = false;
|
||||||
|
@ -11,7 +11,7 @@ void EnNiwLady_Destroy(Actor* thisx, PlayState* play);
|
|||||||
void EnNiwLady_Update(Actor* thisx, PlayState* play);
|
void EnNiwLady_Update(Actor* thisx, PlayState* play);
|
||||||
|
|
||||||
void func_80AB9F24(EnNiwLady* this, PlayState* play);
|
void func_80AB9F24(EnNiwLady* this, PlayState* play);
|
||||||
void EnNiwLady_Draw(Actor* thisx, PlayState* play);
|
void EnNiwLady_Draw(Actor* thisx, PlayState* play2);
|
||||||
void func_80ABA21C(EnNiwLady* this, PlayState* play);
|
void func_80ABA21C(EnNiwLady* this, PlayState* play);
|
||||||
void func_80ABAD38(EnNiwLady* this, PlayState* play);
|
void func_80ABAD38(EnNiwLady* this, PlayState* play);
|
||||||
void func_80ABA778(EnNiwLady* this, PlayState* play);
|
void func_80ABA778(EnNiwLady* this, PlayState* play);
|
||||||
@ -199,6 +199,7 @@ void func_80ABA21C(EnNiwLady* this, PlayState* play) {
|
|||||||
|
|
||||||
void func_80ABA244(EnNiwLady* this, PlayState* play) {
|
void func_80ABA244(EnNiwLady* this, PlayState* play) {
|
||||||
EnNiw* currentCucco;
|
EnNiw* currentCucco;
|
||||||
|
s32 pad[2];
|
||||||
s32 phi_s1;
|
s32 phi_s1;
|
||||||
|
|
||||||
this->cuccosInPen = 0;
|
this->cuccosInPen = 0;
|
||||||
@ -223,7 +224,7 @@ void func_80ABA244(EnNiwLady* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
currentCucco = (EnNiw*)currentCucco->actor.next;
|
currentCucco = (EnNiw*)currentCucco->actor.next;
|
||||||
}
|
}
|
||||||
if (BREG(7) != 0) {
|
if (OOT_DEBUG && BREG(7) != 0) {
|
||||||
this->cuccosInPen = BREG(7) - 1;
|
this->cuccosInPen = BREG(7) - 1;
|
||||||
}
|
}
|
||||||
phi_s1 = this->cuccosInPen;
|
phi_s1 = this->cuccosInPen;
|
||||||
@ -358,13 +359,13 @@ void func_80ABA778(EnNiwLady* this, PlayState* play) {
|
|||||||
|
|
||||||
void func_80ABA878(EnNiwLady* this, PlayState* play) {
|
void func_80ABA878(EnNiwLady* this, PlayState* play) {
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
s8 playerExchangeItemId;
|
|
||||||
|
|
||||||
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) || (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE)) {
|
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) || (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE)) {
|
||||||
this->unk_26E = 11;
|
this->unk_26E = 11;
|
||||||
}
|
}
|
||||||
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
if (Actor_TalkOfferAccepted(&this->actor, play)) {
|
||||||
playerExchangeItemId = func_8002F368(play);
|
s8 playerExchangeItemId = func_8002F368(play);
|
||||||
|
|
||||||
if ((playerExchangeItemId == EXCH_ITEM_POCKET_CUCCO) && GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) {
|
if ((playerExchangeItemId == EXCH_ITEM_POCKET_CUCCO) && GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) {
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR);
|
Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR);
|
||||||
player->actor.textId = sTradeItemTextIds[5];
|
player->actor.textId = sTradeItemTextIds[5];
|
||||||
@ -379,9 +380,10 @@ void func_80ABA878(EnNiwLady* this, PlayState* play) {
|
|||||||
this->unk_26E = this->unk_27A + 21;
|
this->unk_26E = this->unk_27A + 21;
|
||||||
this->actionFunc = !this->unk_273 ? func_80ABA778 : func_80ABA9B8;
|
this->actionFunc = !this->unk_273 ? func_80ABA778 : func_80ABA9B8;
|
||||||
}
|
}
|
||||||
} else {
|
return;
|
||||||
Actor_OfferTalkExchangeEquiCylinder(&this->actor, play, 50.0f, EXCH_ITEM_POCKET_CUCCO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Actor_OfferTalkExchangeEquiCylinder(&this->actor, play, 50.0f, EXCH_ITEM_POCKET_CUCCO);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80ABA9B8(EnNiwLady* this, PlayState* play) {
|
void func_80ABA9B8(EnNiwLady* this, PlayState* play) {
|
||||||
@ -573,10 +575,10 @@ s32 EnNiwLady_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnNiwLady_Draw(Actor* thisx, PlayState* play) {
|
void EnNiwLady_Draw(Actor* thisx, PlayState* play2) {
|
||||||
static void* sEyeTextures[] = { gCuccoLadyEyeOpenTex, gCuccoLadyEyeHalfTex, gCuccoLadyEyeClosedTex };
|
static void* sEyeTextures[] = { gCuccoLadyEyeOpenTex, gCuccoLadyEyeHalfTex, gCuccoLadyEyeClosedTex };
|
||||||
EnNiwLady* this = (EnNiwLady*)thisx;
|
EnNiwLady* this = (EnNiwLady*)thisx;
|
||||||
s32 pad;
|
PlayState* play = (PlayState*)play2;
|
||||||
|
|
||||||
OPEN_DISPS(play->state.gfxCtx, "../z_en_niw_lady.c", 1347);
|
OPEN_DISPS(play->state.gfxCtx, "../z_en_niw_lady.c", 1347);
|
||||||
if (this->unk_27E != 0) {
|
if (this->unk_27E != 0) {
|
||||||
|
@ -139,8 +139,8 @@ void EnNy_Init(Actor* thisx, PlayState* play) {
|
|||||||
PRINTF("ダミーニュウ イニシャル[ %d ] !!\n", this->actor.params);
|
PRINTF("ダミーニュウ イニシャル[ %d ] !!\n", this->actor.params);
|
||||||
PRINTF("En_Ny_actor_move2[ %x ] !!\n", EnNy_UpdateUnused);
|
PRINTF("En_Ny_actor_move2[ %x ] !!\n", EnNy_UpdateUnused);
|
||||||
this->actor.colChkInfo.mass = 0xFF;
|
this->actor.colChkInfo.mass = 0xFF;
|
||||||
this->collider.base.colType = COLTYPE_METAL;
|
|
||||||
this->actor.update = EnNy_UpdateUnused;
|
this->actor.update = EnNy_UpdateUnused;
|
||||||
|
this->collider.base.colType = COLTYPE_METAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,7 +368,6 @@ void EnNy_Update(Actor* thisx, PlayState* play) {
|
|||||||
EnNy* this = (EnNy*)thisx;
|
EnNy* this = (EnNy*)thisx;
|
||||||
f32 temp_f20;
|
f32 temp_f20;
|
||||||
f32 temp_f22;
|
f32 temp_f22;
|
||||||
s32 i;
|
|
||||||
|
|
||||||
this->timer++;
|
this->timer++;
|
||||||
temp_f20 = this->unk_1E0 - 0.25f;
|
temp_f20 = this->unk_1E0 - 0.25f;
|
||||||
@ -391,6 +390,8 @@ void EnNy_Update(Actor* thisx, PlayState* play) {
|
|||||||
this->unk_1F0 = temp_f22;
|
this->unk_1F0 = temp_f22;
|
||||||
this->actor.world.pos.y += temp_f22;
|
this->actor.world.pos.y += temp_f22;
|
||||||
if (EnNy_CollisionCheck(this, play) != 0) {
|
if (EnNy_CollisionCheck(this, play) != 0) {
|
||||||
|
s32 i;
|
||||||
|
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
this->unk_1F8[i].x = (Rand_CenteredFloat(20.0f) + this->actor.world.pos.x);
|
this->unk_1F8[i].x = (Rand_CenteredFloat(20.0f) + this->actor.world.pos.x);
|
||||||
this->unk_1F8[i].y = (Rand_CenteredFloat(20.0f) + this->actor.world.pos.y);
|
this->unk_1F8[i].y = (Rand_CenteredFloat(20.0f) + this->actor.world.pos.y);
|
||||||
|
Loading…
Reference in New Issue
Block a user