1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-05-10 19:13:42 +00:00

[PAL N64] Match changes that first appear in NTSC 1.2 (#2201)

This commit is contained in:
cadmic 2024-09-16 07:51:02 -07:00 committed by GitHub
parent dbbeb656f8
commit 2740bb020e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 50 additions and 5 deletions

View file

@ -1,4 +1,5 @@
#include "z_boss_ganon2.h"
#include "versions.h"
#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h"
#include "overlays/actors/ovl_Demo_Gj/z_demo_gj.h"
#include "overlays/actors/ovl_En_Zl3/z_en_zl3.h"
@ -1405,7 +1406,12 @@ void func_80900890(BossGanon2* this, PlayState* play) {
f32 temp_f2 = -200.0f - player->actor.world.pos.x;
f32 temp_f12 = -200.0f - player->actor.world.pos.z;
if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 784.0f) {
#if OOT_VERSION < NTSC_1_2
if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 800.0f)
#else
if (sqrtf(SQ(temp_f2) + SQ(temp_f12)) <= 784.0f)
#endif
{
Animation_MorphToPlayOnce(&this->skelAnime, &gGanonGetUpAnim, 0.0f);
this->unk_194 = Animation_GetLastFrame(&gGanonGetUpAnim);
this->unk_1AC = 2;

View file

@ -5,6 +5,7 @@
*/
#include "z_boss_sst.h"
#include "versions.h"
#include "assets/objects/object_sst/object_sst.h"
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.h"
@ -51,7 +52,7 @@ typedef enum BossSstEffectMode {
void BossSst_Init(Actor* thisx, PlayState* play2);
void BossSst_Destroy(Actor* thisx, PlayState* play);
void BossSst_UpdateHand(Actor* thisx, PlayState* play);
void BossSst_UpdateHead(Actor* thisx, PlayState* play);
void BossSst_UpdateHead(Actor* thisx, PlayState* play2);
void BossSst_DrawHand(Actor* thisx, PlayState* play);
void BossSst_DrawHead(Actor* thisx, PlayState* play);
void BossSst_UpdateEffects(Actor* thisx, PlayState* play);
@ -2606,10 +2607,16 @@ void BossSst_UpdateHand(Actor* thisx, PlayState* play) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderJntSph.base);
}
#if OOT_VERSION < NTSC_1_2
if (this->colliderJntSph.base.acFlags & AC_ON) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base);
}
#else
if ((sHead->actionFunc != BossSst_HeadLurk) && (sHead->actionFunc != BossSst_HeadIntro) &&
(this->colliderJntSph.base.acFlags & AC_ON)) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base);
}
#endif
if (this->colliderJntSph.base.ocFlags1 & OC1_ON) {
CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderJntSph.base);
@ -2638,8 +2645,8 @@ void BossSst_UpdateHand(Actor* thisx, PlayState* play) {
BossSst_UpdateEffects(&this->actor, play);
}
void BossSst_UpdateHead(Actor* thisx, PlayState* play) {
s32 pad;
void BossSst_UpdateHead(Actor* thisx, PlayState* play2) {
PlayState* play = (PlayState*)play2;
BossSst* this = (BossSst*)thisx;
Actor_WorldToActorCoords(&this->actor, &sHandOffsets[RIGHT], &sHands[RIGHT]->actor.world.pos);
@ -2662,12 +2669,19 @@ void BossSst_UpdateHead(Actor* thisx, PlayState* play) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->colliderJntSph.base);
}
#if OOT_VERSION < NTSC_1_2
if (this->colliderCyl.base.acFlags & AC_ON) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderCyl.base);
}
CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base);
#else
if ((this->actionFunc != BossSst_HeadLurk) && (this->actionFunc != BossSst_HeadIntro)) {
if (this->colliderCyl.base.acFlags & AC_ON) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderCyl.base);
}
CollisionCheck_SetAC(play, &play->colChkCtx, &this->colliderJntSph.base);
}
#endif
if (this->colliderJntSph.base.ocFlags1 & OC1_ON) {
CollisionCheck_SetOC(play, &play->colChkCtx, &this->colliderJntSph.base);

View file

@ -6,6 +6,7 @@
#include "z_en_mb.h"
#include "assets/objects/object_mb/object_mb.h"
#include "versions.h"
/*
* This actor can have three behaviors:
@ -943,6 +944,13 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) {
if (endCharge) {
if (hasHitPlayer || (player->stateFlags2 & PLAYER_STATE2_7)) {
#if OOT_VERSION < NTSC_1_2
player->stateFlags2 &= ~PLAYER_STATE2_7;
this->attackCollider.base.atFlags &= ~AT_HIT;
player->actor.parent = NULL;
player->av2.actionVar2 = 200;
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
#else
this->attackCollider.base.atFlags &= ~AT_HIT;
if (player->stateFlags2 & PLAYER_STATE2_7) {
player->stateFlags2 &= ~PLAYER_STATE2_7;
@ -950,6 +958,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) {
player->av2.actionVar2 = 200;
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
}
#endif
}
this->attack = ENMB_ATTACK_NONE;
this->actor.speed = -10.0f;
@ -1012,6 +1021,13 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) {
if (endCharge) {
if (hasHitPlayer || (player->stateFlags2 & PLAYER_STATE2_7)) {
#if OOT_VERSION < NTSC_1_2
this->attackCollider.base.atFlags &= ~AT_HIT;
player->stateFlags2 &= ~PLAYER_STATE2_7;
player->actor.parent = NULL;
player->av2.actionVar2 = 200;
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
#else
this->attackCollider.base.atFlags &= ~AT_HIT;
if (player->stateFlags2 & PLAYER_STATE2_7) {
player->stateFlags2 &= ~PLAYER_STATE2_7;
@ -1019,6 +1035,7 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) {
player->av2.actionVar2 = 200;
func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f);
}
#endif
this->attack = ENMB_ATTACK_NONE;
this->actor.speed = -10.0f;
EnMb_SetupSpearPatrolEndCharge(this);

View file

@ -6,6 +6,7 @@
#include "z_en_torch2.h"
#include "assets/objects/object_torch2/object_torch2.h"
#include "versions.h"
#define FLAGS (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_4 | ACTOR_FLAG_5)
@ -492,7 +493,12 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
this->actor.world.pos.y = sSpawnPoint.y + 40.0f;
this->actor.world.pos.x = (Math_SinS(player->actor.shape.rot.y) * -120.0f) + player->actor.world.pos.x;
this->actor.world.pos.z = (Math_CosS(player->actor.shape.rot.y) * -120.0f) + player->actor.world.pos.z;
if (Actor_WorldDistXYZToPoint(&this->actor, &sSpawnPoint) > 800.0f) {
#if OOT_VERSION < NTSC_1_2
if (Actor_WorldDistXYZToPoint(&this->actor, &sSpawnPoint) > 1000.0f)
#else
if (Actor_WorldDistXYZToPoint(&this->actor, &sSpawnPoint) > 800.0f)
#endif
{
f32 sp50 = Rand_ZeroOne() * 20.0f;
s16 sp4E = Rand_CenteredFloat(4000.0f);
@ -506,7 +512,9 @@ void EnTorch2_Update(Actor* thisx, PlayState* play2) {
} else {
this->actor.world.pos.y = this->actor.floorHeight;
}
#if OOT_VERSION >= NTSC_1_2
Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos);
#endif
play->func_11D54(this, play);
sActionState = ENTORCH2_ATTACK;
sStickTilt = 0.0f;