mirror of
https://github.com/zeldaret/oot.git
synced 2025-05-10 11:03:46 +00:00
[ntsc-1.0/1.1] Match actor changes introduced in NTSC 1.1 (#2251)
* [ntsc-1.0/1.1] Match actor changes introduced in NTSC 1.1 * SPHERE_DAMAGE -> FLARE_DANCER_BODY_DMG * Fix Actor_SetPlayerKnockbackLargeNoDamage merge
This commit is contained in:
parent
ed77e143b6
commit
37e72d7d95
17 changed files with 189 additions and 31 deletions
|
@ -7,11 +7,16 @@
|
||||||
#include "z_bg_dy_yoseizo.h"
|
#include "z_bg_dy_yoseizo.h"
|
||||||
#include "assets/objects/object_dy_obj/object_dy_obj.h"
|
#include "assets/objects/object_dy_obj/object_dy_obj.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
|
#include "overlays/actors/ovl_Demo_Effect/z_demo_effect.h"
|
||||||
#include "assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.h"
|
#include "assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.h"
|
||||||
#include "assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.h"
|
#include "assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.h"
|
||||||
|
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5)
|
||||||
|
#else
|
||||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25)
|
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_25)
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef enum BgDyYoseizoRewardType {
|
typedef enum BgDyYoseizoRewardType {
|
||||||
/* 0 */ FAIRY_UPGRADE_MAGIC,
|
/* 0 */ FAIRY_UPGRADE_MAGIC,
|
||||||
|
@ -85,13 +90,30 @@ void BgDyYoseizo_Init(Actor* thisx, PlayState* play2) {
|
||||||
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 大妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, play->spawn);
|
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 大妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, play->spawn);
|
||||||
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairySittingTransitionAnim,
|
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairySittingTransitionAnim,
|
||||||
this->jointTable, this->morphTable, 28);
|
this->jointTable, this->morphTable, 28);
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if (!gSaveContext.save.info.playerData.isMagicAcquired && (this->fountainType != FAIRY_UPGRADE_MAGIC)) {
|
||||||
|
Actor_Kill(&this->actor);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
// "Stone/Jewel Fairy Fountain"
|
// "Stone/Jewel Fairy Fountain"
|
||||||
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 石妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, play->spawn);
|
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ 石妖精の泉 ☆☆☆☆☆ %d\n" VT_RST, play->spawn);
|
||||||
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairyLayingDownTransitionAnim,
|
SkelAnime_InitFlex(play, &this->skelAnime, &gGreatFairySkel, &gGreatFairyLayingDownTransitionAnim,
|
||||||
this->jointTable, this->morphTable, 28);
|
this->jointTable, this->morphTable, 28);
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if (!gSaveContext.save.info.playerData.isMagicAcquired) {
|
||||||
|
Actor_Kill(&this->actor);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
this->actionFunc = BgDyYoseizo_ChooseType;
|
||||||
|
#else
|
||||||
this->actionFunc = BgDyYoseizo_CheckMagicAcquired;
|
this->actionFunc = BgDyYoseizo_CheckMagicAcquired;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgDyYoseizo_Destroy(Actor* thisx, PlayState* play) {
|
void BgDyYoseizo_Destroy(Actor* thisx, PlayState* play) {
|
||||||
|
@ -177,6 +199,7 @@ void BgDyYoseizo_Bob(BgDyYoseizo* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
|
void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
|
||||||
if (Flags_GetSwitch(play, 0x38)) {
|
if (Flags_GetSwitch(play, 0x38)) {
|
||||||
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
|
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
|
||||||
|
@ -195,10 +218,22 @@ void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
|
||||||
this->actionFunc = BgDyYoseizo_ChooseType;
|
this->actionFunc = BgDyYoseizo_ChooseType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
|
void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) {
|
||||||
s32 givingReward;
|
s32 givingReward;
|
||||||
|
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if (!Flags_GetSwitch(play, 0x38)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (play->msgCtx.ocarinaMode != OCARINA_MODE_04) {
|
||||||
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
// "Mode"
|
// "Mode"
|
||||||
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n" VT_RST, play->msgCtx.ocarinaMode);
|
PRINTF(VT_FGCOL(YELLOW) "☆☆☆☆☆ もうど ☆☆☆☆☆ %d\n" VT_RST, play->msgCtx.ocarinaMode);
|
||||||
|
@ -315,12 +350,16 @@ void BgDyYoseizo_SetupSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_VO_FR_LAUGH_0);
|
Actor_PlaySfx(&this->actor, NA_SE_VO_FR_LAUGH_0);
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
|
#endif
|
||||||
this->actionFunc = BgDyYoseizo_SpinGrow_NoReward;
|
this->actionFunc = BgDyYoseizo_SpinGrow_NoReward;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgDyYoseizo_SpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
void BgDyYoseizo_SpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
|
#endif
|
||||||
Math_ApproachF(&this->actor.world.pos.y, this->grownHeight, this->heightFraction, 100.0f);
|
Math_ApproachF(&this->actor.world.pos.y, this->grownHeight, this->heightFraction, 100.0f);
|
||||||
Math_ApproachF(&this->scale, 0.035f, this->scaleFraction, 0.005f);
|
Math_ApproachF(&this->scale, 0.035f, this->scaleFraction, 0.005f);
|
||||||
Math_ApproachF(&this->heightFraction, 0.8f, 0.1f, 0.02f);
|
Math_ApproachF(&this->heightFraction, 0.8f, 0.1f, 0.02f);
|
||||||
|
@ -346,7 +385,9 @@ void BgDyYoseizo_SpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
void BgDyYoseizo_CompleteSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
void BgDyYoseizo_CompleteSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
f32 curFrame = this->skelAnime.curFrame;
|
f32 curFrame = this->skelAnime.curFrame;
|
||||||
|
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((this->frameCount * 1273.0f) <= this->bobTimer) {
|
if ((this->frameCount * 1273.0f) <= this->bobTimer) {
|
||||||
this->bobTimer = 0.0f;
|
this->bobTimer = 0.0f;
|
||||||
|
@ -360,7 +401,9 @@ void BgDyYoseizo_CompleteSpinGrow_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
|
if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) {
|
||||||
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
|
this->frameCount = Animation_GetLastFrame(&gGreatFairySittingAnim);
|
||||||
|
@ -380,7 +423,9 @@ void BgDyYoseizo_SetupGreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
void BgDyYoseizo_GreetPlayer_NoReward(BgDyYoseizo* this, PlayState* play) {
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_1);
|
||||||
|
#endif
|
||||||
this->bobTimer = this->skelAnime.curFrame * 1273.0f;
|
this->bobTimer = this->skelAnime.curFrame * 1273.0f;
|
||||||
|
|
||||||
if ((this->frameCount * 1273.0f) <= this->bobTimer) {
|
if ((this->frameCount * 1273.0f) <= this->bobTimer) {
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "z_door_shutter.h"
|
#include "z_door_shutter.h"
|
||||||
#include "overlays/actors/ovl_Boss_Goma/z_boss_goma.h"
|
#include "overlays/actors/ovl_Boss_Goma/z_boss_goma.h"
|
||||||
#include "quake.h"
|
#include "quake.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
#include "assets/objects/object_gnd/object_gnd.h"
|
#include "assets/objects/object_gnd/object_gnd.h"
|
||||||
#include "assets/objects/object_goma/object_goma.h"
|
#include "assets/objects/object_goma/object_goma.h"
|
||||||
|
@ -228,11 +229,19 @@ static DoorShutterGfxInfo sGfxInfo[] = {
|
||||||
{ gDTDungeonDoor1DL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_DEKU_TREE_1
|
{ gDTDungeonDoor1DL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_DEKU_TREE_1
|
||||||
{ gDTDungeonDoor2DL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_DEKU_TREE_2
|
{ gDTDungeonDoor2DL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_DEKU_TREE_2
|
||||||
{ gDodongoDoorDL, gDodongoBarsDL, 240, 14, 70, 15 }, // DOORSHUTTER_GFX_DODONGOS_CAVERN
|
{ gDodongoDoorDL, gDodongoBarsDL, 240, 14, 70, 15 }, // DOORSHUTTER_GFX_DODONGOS_CAVERN
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
{ gJabuDoorSection1DL, gJabuWebDoorDL, 0, 110, 70, 15 }, // DOORSHUTTER_GFX_JABU_JABU
|
||||||
|
{ gPhantomGanonBarsDL, NULL, 130, 12, 70, 15 }, // DOORSHUTTER_GFX_PHANTOM_GANON_BARS
|
||||||
|
{ gGohmaDoorDL, NULL, 130, 12, 70, 15 }, // DOORSHUTTER_GFX_GOHMA_BLOCK
|
||||||
|
{ gSpiritDoorDL, gJyaDoorMetalBarsDL, 240, 14, 50, 15 }, // DOORSHUTTER_GFX_SPIRIT_TEMPLE
|
||||||
|
{ gBossDoorDL, NULL, 130, 12, 70, 15 }, // DOORSHUTTER_GFX_BOSS_DOOR
|
||||||
|
#else
|
||||||
{ gJabuDoorSection1DL, gJabuWebDoorDL, 0, 110, 50, 15 }, // DOORSHUTTER_GFX_JABU_JABU
|
{ gJabuDoorSection1DL, gJabuWebDoorDL, 0, 110, 50, 15 }, // DOORSHUTTER_GFX_JABU_JABU
|
||||||
{ gPhantomGanonBarsDL, NULL, 130, 12, 50, 15 }, // DOORSHUTTER_GFX_PHANTOM_GANON_BARS
|
{ gPhantomGanonBarsDL, NULL, 130, 12, 50, 15 }, // DOORSHUTTER_GFX_PHANTOM_GANON_BARS
|
||||||
{ gGohmaDoorDL, NULL, 130, 12, 50, 15 }, // DOORSHUTTER_GFX_GOHMA_BLOCK
|
{ gGohmaDoorDL, NULL, 130, 12, 50, 15 }, // DOORSHUTTER_GFX_GOHMA_BLOCK
|
||||||
{ gSpiritDoorDL, gJyaDoorMetalBarsDL, 240, 14, 50, 15 }, // DOORSHUTTER_GFX_SPIRIT_TEMPLE
|
{ gSpiritDoorDL, gJyaDoorMetalBarsDL, 240, 14, 50, 15 }, // DOORSHUTTER_GFX_SPIRIT_TEMPLE
|
||||||
{ gBossDoorDL, NULL, 130, 12, 50, 15 }, // DOORSHUTTER_GFX_BOSS_DOOR
|
{ gBossDoorDL, NULL, 130, 12, 50, 15 }, // DOORSHUTTER_GFX_BOSS_DOOR
|
||||||
|
#endif
|
||||||
{ gDungeonDoorDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_GENERIC
|
{ gDungeonDoorDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_GENERIC
|
||||||
{ gFireTempleDoorFrontDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_FIRE_TEMPLE_1
|
{ gFireTempleDoorFrontDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_FIRE_TEMPLE_1
|
||||||
{ gFireTempleDoorBackDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_FIRE_TEMPLE_2
|
{ gFireTempleDoorBackDL, gDoorMetalBarsDL, 130, 12, 20, 15 }, // DOORSHUTTER_GFX_FIRE_TEMPLE_2
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_attack_niw.h"
|
#include "z_en_attack_niw.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/object_niw/object_niw.h"
|
#include "assets/objects/object_niw/object_niw.h"
|
||||||
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
|
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
|
||||||
|
|
||||||
|
@ -359,7 +360,13 @@ void EnAttackNiw_Update(Actor* thisx, PlayState* play) {
|
||||||
if (this->actor.xyzDistToPlayerSq < SQ(tmpf1)) {
|
if (this->actor.xyzDistToPlayerSq < SQ(tmpf1)) {
|
||||||
cucco = (EnNiw*)this->actor.parent;
|
cucco = (EnNiw*)this->actor.parent;
|
||||||
if ((this->actor.parent->update != NULL) && (this->actor.parent != NULL) && (cucco != NULL) &&
|
if ((this->actor.parent->update != NULL) && (this->actor.parent != NULL) && (cucco != NULL) &&
|
||||||
(cucco->timer9 == 0) && (player->invincibilityTimer == 0)) {
|
(cucco->timer9 == 0) &&
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
!(player->stateFlags1 & PLAYER_STATE1_26)
|
||||||
|
#else
|
||||||
|
(player->invincibilityTimer == 0)
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
Actor_SetPlayerKnockbackLarge(play, &this->actor, 2.0f, this->actor.world.rot.y, 0.0f, 0x10);
|
Actor_SetPlayerKnockbackLarge(play, &this->actor, 2.0f, this->actor.world.rot.y, 0.0f, 0x10);
|
||||||
cucco->timer9 = 0x46;
|
cucco->timer9 = 0x46;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_bili.h"
|
#include "z_en_bili.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/object_bl/object_bl.h"
|
#include "assets/objects/object_bl/object_bl.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14)
|
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_IGNORE_QUAKE | ACTOR_FLAG_14)
|
||||||
|
@ -536,7 +537,12 @@ void EnBili_Frozen(EnBili* this, PlayState* play) {
|
||||||
this->actor.gravity = -1.0f;
|
this->actor.gravity = -1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->actor.floorHeight == BGCHECK_Y_MIN)) {
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) || (this->actor.floorHeight == BGCHECK_Y_MIN))
|
||||||
|
#else
|
||||||
|
if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->actor.floorHeight == BGCHECK_Y_MIN))
|
||||||
|
#endif
|
||||||
|
{
|
||||||
this->actor.colorFilterTimer = 0;
|
this->actor.colorFilterTimer = 0;
|
||||||
EnBili_SetupDie(this);
|
EnBili_SetupDie(this);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -243,13 +243,20 @@ void EnDha_Wait(EnDha* this, PlayState* play) {
|
||||||
this->handAngle.y -= this->actor.shape.rot.y + this->limbAngleY;
|
this->handAngle.y -= this->actor.shape.rot.y + this->limbAngleY;
|
||||||
this->handAngle.x -= this->actor.shape.rot.x + this->limbAngleX[0] + this->limbAngleX[1];
|
this->handAngle.x -= this->actor.shape.rot.x + this->limbAngleX[0] + this->limbAngleX[1];
|
||||||
} else {
|
} else {
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
// Empty
|
||||||
|
#elif OOT_VERSION < PAL_1_0
|
||||||
if ((player->stateFlags2 & PLAYER_STATE2_7) && (&this->actor == player->actor.parent)) {
|
if ((player->stateFlags2 & PLAYER_STATE2_7) && (&this->actor == player->actor.parent)) {
|
||||||
player->stateFlags2 &= ~PLAYER_STATE2_7;
|
player->stateFlags2 &= ~PLAYER_STATE2_7;
|
||||||
player->actor.parent = NULL;
|
player->actor.parent = NULL;
|
||||||
#if OOT_VERSION >= PAL_1_0
|
|
||||||
player->av2.actionVar2 = 200;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if ((player->stateFlags2 & PLAYER_STATE2_7) && (&this->actor == player->actor.parent)) {
|
||||||
|
player->stateFlags2 &= ~PLAYER_STATE2_7;
|
||||||
|
player->actor.parent = NULL;
|
||||||
|
player->av2.actionVar2 = 200;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (this->actor.home.rot.z != 0) {
|
if (this->actor.home.rot.z != 0) {
|
||||||
Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_HAND_AT);
|
Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_HAND_AT);
|
||||||
|
|
|
@ -339,8 +339,12 @@ s32 EnDoor_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
|
||||||
rot->z += this->actor.world.rot.y;
|
rot->z += this->actor.world.rot.y;
|
||||||
if ((play->roomCtx.prevRoom.num >= 0) || (transitionEntry->sides[0].room == transitionEntry->sides[1].room)) {
|
if ((play->roomCtx.prevRoom.num >= 0) || (transitionEntry->sides[0].room == transitionEntry->sides[1].room)) {
|
||||||
// Draw the side of the door that is visible to the camera
|
// Draw the side of the door that is visible to the camera
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
s16 rotDiff = this->actor.shape.rot.y + rot->z - Math_Vec3f_Yaw(&play->view.eye, &this->actor.world.pos);
|
||||||
|
#else
|
||||||
s16 rotDiff = this->actor.shape.rot.y + this->skelAnime.jointTable[3].z + rot->z -
|
s16 rotDiff = this->actor.shape.rot.y + this->skelAnime.jointTable[3].z + rot->z -
|
||||||
Math_Vec3f_Yaw(&play->view.eye, &this->actor.world.pos);
|
Math_Vec3f_Yaw(&play->view.eye, &this->actor.world.pos);
|
||||||
|
#endif
|
||||||
|
|
||||||
*dList = (ABS(rotDiff) < 0x4000) ? doorDLists[0] : doorDLists[1];
|
*dList = (ABS(rotDiff) < 0x4000) ? doorDLists[0] : doorDLists[1];
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_fd.h"
|
#include "z_en_fd.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
#include "assets/objects/gameplay_keep/gameplay_keep.h"
|
||||||
#include "assets/objects/object_fw/object_fw.h"
|
#include "assets/objects/object_fw/object_fw.h"
|
||||||
|
|
||||||
|
@ -39,11 +40,17 @@ ActorProfile En_Fd_Profile = {
|
||||||
/**/ EnFd_Draw,
|
/**/ EnFd_Draw,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
#define FLARE_DANCER_BODY_DMG 0x00
|
||||||
|
#else
|
||||||
|
#define FLARE_DANCER_BODY_DMG 0x04
|
||||||
|
#endif
|
||||||
|
|
||||||
static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040088, 0x00, 0x00 },
|
{ 0x00040088, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON | ACELEM_HOOKABLE,
|
ACELEM_ON | ACELEM_HOOKABLE,
|
||||||
|
@ -54,7 +61,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -65,7 +72,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -76,7 +83,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -87,7 +94,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -98,7 +105,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -109,7 +116,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -120,7 +127,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -131,7 +138,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -142,7 +149,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -153,7 +160,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
@ -164,7 +171,7 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ELEM_MATERIAL_UNK0,
|
ELEM_MATERIAL_UNK0,
|
||||||
{ 0xFFCFFFFF, 0x01, 0x04 },
|
{ 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
|
||||||
{ 0x00040008, 0x00, 0x00 },
|
{ 0x00040008, 0x00, 0x00 },
|
||||||
ATELEM_ON | ATELEM_SFX_NORMAL,
|
ATELEM_ON | ATELEM_SFX_NORMAL,
|
||||||
ACELEM_ON,
|
ACELEM_ON,
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_firefly.h"
|
#include "z_en_firefly.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/object_firefly/object_firefly.h"
|
#include "assets/objects/object_firefly/object_firefly.h"
|
||||||
#include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h"
|
#include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h"
|
||||||
|
|
||||||
|
@ -553,7 +554,12 @@ void EnFirefly_Stunned(EnFirefly* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnFirefly_FrozenFall(EnFirefly* this, PlayState* play) {
|
void EnFirefly_FrozenFall(EnFirefly* this, PlayState* play) {
|
||||||
if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->actor.floorHeight == BGCHECK_Y_MIN)) {
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) || (this->actor.floorHeight == BGCHECK_Y_MIN))
|
||||||
|
#else
|
||||||
|
if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->actor.floorHeight == BGCHECK_Y_MIN))
|
||||||
|
#endif
|
||||||
|
{
|
||||||
this->actor.colorFilterTimer = 0;
|
this->actor.colorFilterTimer = 0;
|
||||||
EnFirefly_SetupDie(this);
|
EnFirefly_SetupDie(this);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_hy.h"
|
#include "z_en_hy.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/object_aob/object_aob.h"
|
#include "assets/objects/object_aob/object_aob.h"
|
||||||
#include "assets/objects/object_ahg/object_ahg.h"
|
#include "assets/objects/object_ahg/object_ahg.h"
|
||||||
#include "assets/objects/object_bob/object_bob.h"
|
#include "assets/objects/object_bob/object_bob.h"
|
||||||
|
@ -505,7 +506,11 @@ u16 EnHy_GetTextId(PlayState* play, Actor* thisx) {
|
||||||
} else if (play->sceneId == SCENE_KAKARIKO_VILLAGE) {
|
} else if (play->sceneId == SCENE_KAKARIKO_VILLAGE) {
|
||||||
return CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) ? 0x507C : 0x507B;
|
return CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) ? 0x507C : 0x507B;
|
||||||
} else {
|
} else {
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
return GET_EVENTCHKINF(EVENTCHKINF_80) ? 0x7046 : (GET_INFTABLE(INFTABLE_CB) ? 0x7019 : 0x7018);
|
||||||
|
#else
|
||||||
return GET_EVENTCHKINF(EVENTCHKINF_80) ? 0x7046 : (GET_INFTABLE(INFTABLE_CD) ? 0x7019 : 0x7018);
|
return GET_EVENTCHKINF(EVENTCHKINF_80) ? 0x7046 : (GET_INFTABLE(INFTABLE_CD) ? 0x7019 : 0x7018);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
case ENHY_TYPE_CNE_11:
|
case ENHY_TYPE_CNE_11:
|
||||||
return GET_INFTABLE(INFTABLE_MALON_SPAWNED_AT_HYRULE_CASTLE) ? (GET_INFTABLE(INFTABLE_CC) ? 0x7014 : 0x70A4)
|
return GET_INFTABLE(INFTABLE_MALON_SPAWNED_AT_HYRULE_CASTLE) ? (GET_INFTABLE(INFTABLE_CC) ? 0x7014 : 0x70A4)
|
||||||
|
@ -633,7 +638,11 @@ s16 EnHy_UpdateTalkState(PlayState* play, Actor* thisx) {
|
||||||
SET_INFTABLE(INFTABLE_CA);
|
SET_INFTABLE(INFTABLE_CA);
|
||||||
break;
|
break;
|
||||||
case 0x7018:
|
case 0x7018:
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
SET_INFTABLE(INFTABLE_CB);
|
||||||
|
#else
|
||||||
SET_INFTABLE(INFTABLE_CD);
|
SET_INFTABLE(INFTABLE_CD);
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case 0x70A4:
|
case 0x70A4:
|
||||||
SET_INFTABLE(INFTABLE_CC);
|
SET_INFTABLE(INFTABLE_CC);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include "assets/objects/object_km1/object_km1.h"
|
#include "assets/objects/object_km1/object_km1.h"
|
||||||
#include "assets/objects/object_kw1/object_kw1.h"
|
#include "assets/objects/object_kw1/object_kw1.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4)
|
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4)
|
||||||
|
|
||||||
|
@ -585,7 +586,11 @@ s16 EnKo_UpdateTalkState(PlayState* play, Actor* thisx) {
|
||||||
Message_ContinueTextbox(play, this->actor.textId);
|
Message_ContinueTextbox(play, this->actor.textId);
|
||||||
break;
|
break;
|
||||||
case 0x10B7:
|
case 0x10B7:
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
SET_INFTABLE(INFTABLE_B6);
|
||||||
|
#else
|
||||||
SET_INFTABLE(INFTABLE_BC);
|
SET_INFTABLE(INFTABLE_BC);
|
||||||
|
#endif
|
||||||
FALLTHROUGH;
|
FALLTHROUGH;
|
||||||
case 0x10B8:
|
case 0x10B8:
|
||||||
this->actor.textId = (play->msgCtx.choiceIndex == 0) ? 0x10BA : 0x10B9;
|
this->actor.textId = (play->msgCtx.choiceIndex == 0) ? 0x10BA : 0x10B9;
|
||||||
|
@ -976,7 +981,11 @@ void func_80A9877C(EnKo* this, PlayState* play) {
|
||||||
this->actor.textId = INV_CONTENT(ITEM_TRADE_ADULT) > ITEM_ODD_POTION ? 0x10B9 : 0x10DF;
|
this->actor.textId = INV_CONTENT(ITEM_TRADE_ADULT) > ITEM_ODD_POTION ? 0x10B9 : 0x10DF;
|
||||||
|
|
||||||
if (func_8002F368(play) == EXCH_ITEM_ODD_POTION) {
|
if (func_8002F368(play) == EXCH_ITEM_ODD_POTION) {
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
this->actor.textId = GET_INFTABLE(INFTABLE_B6) ? 0x10B8 : 0x10B7;
|
||||||
|
#else
|
||||||
this->actor.textId = GET_INFTABLE(INFTABLE_BC) ? 0x10B8 : 0x10B7;
|
this->actor.textId = GET_INFTABLE(INFTABLE_BC) ? 0x10B8 : 0x10B7;
|
||||||
|
#endif
|
||||||
this->unk_210 = 0;
|
this->unk_210 = 0;
|
||||||
}
|
}
|
||||||
player->actor.textId = this->actor.textId;
|
player->actor.textId = this->actor.textId;
|
||||||
|
|
|
@ -1325,19 +1325,30 @@ void EnMb_SetupSpearDead(EnMb* this) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnMb_SpearDead(EnMb* this, PlayState* play) {
|
void EnMb_SpearDead(EnMb* this, PlayState* play) {
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
Player* player = GET_PLAYER(play);
|
Player* player = GET_PLAYER(play);
|
||||||
|
#endif
|
||||||
|
|
||||||
Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f);
|
Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f);
|
||||||
|
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
// Empty
|
||||||
|
#elif OOT_VERSION < PAL_1_0
|
||||||
if ((player->stateFlags2 & PLAYER_STATE2_7) && player->actor.parent == &this->actor) {
|
if ((player->stateFlags2 & PLAYER_STATE2_7) && player->actor.parent == &this->actor) {
|
||||||
player->stateFlags2 &= ~PLAYER_STATE2_7;
|
player->stateFlags2 &= ~PLAYER_STATE2_7;
|
||||||
player->actor.parent = NULL;
|
player->actor.parent = NULL;
|
||||||
#if OOT_VERSION >= PAL_1_0
|
|
||||||
player->av2.actionVar2 = 200;
|
|
||||||
#endif
|
|
||||||
Actor_SetPlayerKnockbackLargeNoDamage(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
Actor_SetPlayerKnockbackLargeNoDamage(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||||
this->attack = ENMB_ATTACK_NONE;
|
this->attack = ENMB_ATTACK_NONE;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if ((player->stateFlags2 & PLAYER_STATE2_7) && player->actor.parent == &this->actor) {
|
||||||
|
player->stateFlags2 &= ~PLAYER_STATE2_7;
|
||||||
|
player->actor.parent = NULL;
|
||||||
|
player->av2.actionVar2 = 200;
|
||||||
|
Actor_SetPlayerKnockbackLargeNoDamage(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
|
||||||
|
this->attack = ENMB_ATTACK_NONE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (SkelAnime_Update(&this->skelAnime)) {
|
if (SkelAnime_Update(&this->skelAnime)) {
|
||||||
if (this->timer1 > 0) {
|
if (this->timer1 > 0) {
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "assets/objects/object_niw/object_niw.h"
|
#include "assets/objects/object_niw/object_niw.h"
|
||||||
#include "overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.h"
|
#include "overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_23)
|
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_23)
|
||||||
|
|
||||||
|
@ -1055,7 +1056,12 @@ void EnNiw_Update(Actor* thisx, PlayState* play) {
|
||||||
|
|
||||||
dist = 20.0f;
|
dist = 20.0f;
|
||||||
|
|
||||||
if (this->unk_2A8 != 0 && thisx->xyzDistToPlayerSq < SQ(dist) && player->invincibilityTimer == 0) {
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if (this->unk_2A8 != 0 && thisx->xyzDistToPlayerSq < SQ(dist) && !(player->stateFlags1 & PLAYER_STATE1_26))
|
||||||
|
#else
|
||||||
|
if (this->unk_2A8 != 0 && thisx->xyzDistToPlayerSq < SQ(dist) && player->invincibilityTimer == 0)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
Actor_SetPlayerKnockbackLarge(play, &this->actor, 2.0f, thisx->world.rot.y, 0.0f, 0x10);
|
Actor_SetPlayerKnockbackLarge(play, &this->actor, 2.0f, thisx->world.rot.y, 0.0f, 0x10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "assets/objects/object_os_anime/object_os_anime.h"
|
#include "assets/objects/object_os_anime/object_os_anime.h"
|
||||||
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
|
#include "overlays/actors/ovl_En_Niw/z_en_niw.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4)
|
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_4)
|
||||||
|
|
||||||
|
@ -259,6 +260,7 @@ void func_80ABA244(EnNiwLady* this, PlayState* play) {
|
||||||
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ this->message_end_code ☆☆ %d\n" VT_RST, this->unk_262);
|
PRINTF(VT_FGCOL(GREEN) "☆☆☆☆☆ this->message_end_code ☆☆ %d\n" VT_RST, this->unk_262);
|
||||||
PRINTF("\n\n");
|
PRINTF("\n\n");
|
||||||
if (MaskReaction_GetTextId(play, MASK_REACTION_SET_CUCCO_LADY) == 0) {
|
if (MaskReaction_GetTextId(play, MASK_REACTION_SET_CUCCO_LADY) == 0) {
|
||||||
|
#if OOT_VERSION >= NTSC_1_1
|
||||||
if (this->actor.textId == 0x503C) {
|
if (this->actor.textId == 0x503C) {
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_ERROR);
|
Sfx_PlaySfxCentered(NA_SE_SY_ERROR);
|
||||||
this->unk_26C = 2;
|
this->unk_26C = 2;
|
||||||
|
@ -266,6 +268,7 @@ void func_80ABA244(EnNiwLady* this, PlayState* play) {
|
||||||
this->actionFunc = func_80ABA654;
|
this->actionFunc = func_80ABA654;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
this->unk_26E = phi_s1 + 1;
|
this->unk_26E = phi_s1 + 1;
|
||||||
if (phi_s1 == 7) {
|
if (phi_s1 == 7) {
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR);
|
Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR);
|
||||||
|
@ -286,6 +289,13 @@ void func_80ABA244(EnNiwLady* this, PlayState* play) {
|
||||||
if (this->unk_26A != this->cuccosInPen) {
|
if (this->unk_26A != this->cuccosInPen) {
|
||||||
if (this->cuccosInPen < this->unk_26A) {
|
if (this->cuccosInPen < this->unk_26A) {
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_ERROR);
|
Sfx_PlaySfxCentered(NA_SE_SY_ERROR);
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
if (phi_s1 == 9) {
|
||||||
|
this->unk_26C = 2;
|
||||||
|
this->unk_262 = TEXT_STATE_EVENT;
|
||||||
|
this->actionFunc = func_80ABA654;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
} else if (phi_s1 + 1 < 9) {
|
} else if (phi_s1 + 1 < 9) {
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR);
|
Sfx_PlaySfxCentered(NA_SE_SY_TRE_BOX_APPEAR);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.h"
|
#include "assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.h"
|
||||||
#include "assets/scenes/overworld/spot02/spot02_scene.h"
|
#include "assets/scenes/overworld/spot02/spot02_scene.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_25)
|
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_25)
|
||||||
|
|
||||||
|
@ -152,10 +153,14 @@ void func_80ABF0CC(EnOkarinaTag* this, PlayState* play) {
|
||||||
if (play->sceneId == SCENE_WATER_TEMPLE) {
|
if (play->sceneId == SCENE_WATER_TEMPLE) {
|
||||||
play->msgCtx.msgMode = MSGMODE_PAUSED;
|
play->msgCtx.msgMode = MSGMODE_PAUSED;
|
||||||
}
|
}
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
|
||||||
|
#else
|
||||||
if ((play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) &&
|
if ((play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) &&
|
||||||
(play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS)) {
|
(play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS)) {
|
||||||
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
|
play->msgCtx.ocarinaMode = OCARINA_MODE_04;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
|
Sfx_PlaySfxCentered(NA_SE_SY_CORRECT_CHIME);
|
||||||
this->actionFunc = func_80ABEF2C;
|
this->actionFunc = func_80ABEF2C;
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "z_en_rr.h"
|
#include "z_en_rr.h"
|
||||||
#include "assets/objects/object_rr/object_rr.h"
|
#include "assets/objects/object_rr/object_rr.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10)
|
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10)
|
||||||
|
|
||||||
|
@ -480,11 +481,16 @@ void EnRr_CollisionCheck(EnRr* this, PlayState* play) {
|
||||||
if (this->actor.colChkInfo.health == 0) {
|
if (this->actor.colChkInfo.health == 0) {
|
||||||
this->dropType = RR_DROP_RANDOM_RUPEE;
|
this->dropType = RR_DROP_RANDOM_RUPEE;
|
||||||
}
|
}
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
this->effectTimer = 20;
|
||||||
|
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU, 80);
|
||||||
|
#else
|
||||||
if (this->actor.colorFilterTimer == 0) {
|
if (this->actor.colorFilterTimer == 0) {
|
||||||
this->effectTimer = 20;
|
this->effectTimer = 20;
|
||||||
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU,
|
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU,
|
||||||
80);
|
80);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
EnRr_SetupStunned(this);
|
EnRr_SetupStunned(this);
|
||||||
return;
|
return;
|
||||||
case RR_DMG_LIGHT_MAGIC: // Unused light magic
|
case RR_DMG_LIGHT_MAGIC: // Unused light magic
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#include "z_en_takara_man.h"
|
#include "z_en_takara_man.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/object_ts/object_ts.h"
|
#include "assets/objects/object_ts/object_ts.h"
|
||||||
|
|
||||||
#define FLAGS \
|
#define FLAGS \
|
||||||
|
@ -161,7 +162,11 @@ void func_80B17A6C(EnTakaraMan* this, PlayState* play) {
|
||||||
if (Actor_HasParent(&this->actor, play)) {
|
if (Actor_HasParent(&this->actor, play)) {
|
||||||
this->actionFunc = func_80B17AC4;
|
this->actionFunc = func_80B17AC4;
|
||||||
} else {
|
} else {
|
||||||
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
Actor_OfferGetItem(&this->actor, play, GI_SMALL_KEY, 2000.0f, 1000.0f);
|
||||||
|
#else
|
||||||
Actor_OfferGetItem(&this->actor, play, GI_DOOR_KEY, 2000.0f, 1000.0f);
|
Actor_OfferGetItem(&this->actor, play, GI_DOOR_KEY, 2000.0f, 1000.0f);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "z_en_tp.h"
|
#include "z_en_tp.h"
|
||||||
|
#include "versions.h"
|
||||||
#include "assets/objects/object_tp/object_tp.h"
|
#include "assets/objects/object_tp/object_tp.h"
|
||||||
|
|
||||||
#define FLAGS 0
|
#define FLAGS 0
|
||||||
|
@ -319,7 +320,12 @@ void EnTp_Die(EnTp* this, PlayState* play) {
|
||||||
255, 1, 9, 1);
|
255, 1, 9, 1);
|
||||||
Item_DropCollectibleRandom(play, &this->actor, &this->actor.world.pos, 0x50);
|
Item_DropCollectibleRandom(play, &this->actor, &this->actor.world.pos, 0x50);
|
||||||
} else {
|
} else {
|
||||||
for (i = 0; i < 1; i++) {
|
#if OOT_VERSION < NTSC_1_1
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
#else
|
||||||
|
for (i = 0; i < 1; i++)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
now =
|
now =
|
||||||
(EnTp*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_TP, this->actor.world.pos.x,
|
(EnTp*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_TP, this->actor.world.pos.x,
|
||||||
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, TAILPASARAN_FRAGMENT);
|
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, TAILPASARAN_FRAGMENT);
|
||||||
|
|
Loading…
Add table
Reference in a new issue