diff --git a/include/collision_check.h b/include/collision_check.h index c897da6863..0d2a621039 100644 --- a/include/collision_check.h +++ b/include/collision_check.h @@ -80,9 +80,17 @@ typedef struct ColliderInitToActor { /* 0x07 */ u8 shape; } ColliderInitToActor; // size = 0x08 +typedef enum HitSpecialEffect { + HIT_SPECIAL_EFFECT_0, // None + HIT_SPECIAL_EFFECT_1, // Fire + HIT_SPECIAL_EFFECT_2, // Ice + HIT_SPECIAL_EFFECT_3, + HIT_SPECIAL_EFFECT_4 +} HitSpecialEffect; + typedef struct ColliderElementDamageInfoAT { /* 0x00 */ u32 dmgFlags; // Damage types dealt by this collider element as AT. - /* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.) + /* 0x04 */ u8 hitSpecialEffect; // The hit special effect applied to any actor attacked by this AT collider. /* 0x05 */ u8 damage; // Damage } ColliderElementDamageInfoAT; // size = 0x08 @@ -471,7 +479,7 @@ typedef struct CollisionCheckInfo { /* 0x18 */ u8 damage; // Amount to decrement health by /* 0x19 */ u8 damageReaction; // Stores what reaction should occur after being hit /* 0x1A */ u8 atHitBacklash; // Stores the hit backlash type received from attacking an AC collider - /* 0x1B */ u8 acHitEffect; // Stores what effect should occur when AC is touched by an AT + /* 0x1B */ u8 acHitSpecialEffect; // Stores the hit special effect received from being attacked by an AT collider } CollisionCheckInfo; // size = 0x1C DamageTable* DamageTable_Get(s32 index); diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 1e02acdc8c..7501925080 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -35,8 +35,8 @@ #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_bdoor/object_bdoor.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:0" \ - "ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" CollisionPoly* sCurCeilingPoly; s32 sCurCeilingBgId; diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 9e71fa6287..656bb04b5b 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -14,7 +14,7 @@ #include "player.h" #include "skin_matrix.h" -#pragma increment_block_number "ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144" +#pragma increment_block_number "ntsc-1.0:136 ntsc-1.1:136 ntsc-1.2:136" u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList); void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector); diff --git a/src/code/z_camera.c b/src/code/z_camera.c index dde42b7922..00d2735f1e 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -3661,7 +3661,7 @@ s32 Camera_KeepOn3(Camera* camera) { } #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:76 ntsc-1.1:76 ntsc-1.2:76 pal-1.0:76 pal-1.1:76" + "ique-cn:128 ntsc-1.0:73 ntsc-1.1:73 ntsc-1.2:73 pal-1.0:73 pal-1.1:73" s32 Camera_KeepOn4(Camera* camera) { static Vec3f sAtTarget; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 771368e357..98ea5c09a9 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -172,7 +172,7 @@ s32 Collider_DestroyElementDamageInfoAT(PlayState* play, ColliderElementDamageIn s32 Collider_SetElementDamageInfoAT(PlayState* play, ColliderElementDamageInfoAT* dest, ColliderElementDamageInfoAT* src) { dest->dmgFlags = src->dmgFlags; - dest->effect = src->effect; + dest->hitSpecialEffect = src->hitSpecialEffect; dest->damage = src->damage; return true; } @@ -1735,7 +1735,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement* acElem->acHitElem = atElem; acElem->acElemFlags |= ACELEM_HIT; if (acCol->actor != NULL) { - acCol->actor->colChkInfo.acHitEffect = atElem->atDmgInfo.effect; + acCol->actor->colChkInfo.acHitSpecialEffect = atElem->atDmgInfo.hitSpecialEffect; } acElem->acDmgInfo.hitPos.x = hitPos->x; acElem->acDmgInfo.hitPos.y = hitPos->y; @@ -3016,7 +3016,7 @@ void CollisionCheck_ResetDamage(CollisionCheckInfo* info) { info->damage = 0; info->damageReaction = 0; info->atHitBacklash = HIT_BACKLASH_0; - info->acHitEffect = 0; + info->acHitSpecialEffect = HIT_SPECIAL_EFFECT_0; info->displacement.x = info->displacement.y = info->displacement.z = 0.0f; } diff --git a/src/code/z_message.c b/src/code/z_message.c index 09647912cb..08d4c7181d 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -26,7 +26,7 @@ #include "assets/textures/parameter_static/parameter_static.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:16" \ +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:16" \ "ntsc-1.1:16 ntsc-1.2:16 pal-1.0:0 pal-1.1:0" #if !PLATFORM_IQUE diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 1709031cfe..1eb2b08ab6 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -29,7 +29,8 @@ #include "assets/textures/do_action_static/do_action_static.h" #include "assets/textures/icon_item_static/icon_item_static.h" -#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.0:128 ntsc-1.1:128" \ + "ntsc-1.2:128" typedef struct RestrictionFlags { /* 0x00 */ u8 sceneId; diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 631faf93b8..186f93ee10 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -31,7 +31,7 @@ #include "assets/objects/object_geff/object_geff.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \ +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \ "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS \ diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index 4a992ea49c..ec5ee705bf 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -39,7 +39,7 @@ #include "assets/objects/object_mo/object_mo.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "pal-1.0:128 pal-1.1:128" + "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index e592fd6be7..964f9edc66 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -492,7 +492,7 @@ void BossTw_Init(Actor* thisx, PlayState* play2) { if (this->actor.params == TW_FIRE_BLAST || this->actor.params == TW_FIRE_BLAST_GROUND) { this->actionFunc = BossTw_BlastFire; - this->collider.elem.atDmgInfo.effect = 1; + this->collider.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1; } else if (this->actor.params == TW_ICE_BLAST || this->actor.params == TW_ICE_BLAST_GROUND) { this->actionFunc = BossTw_BlastIce; } else if (this->actor.params >= TW_DEATHBALL_KOTAKE) { diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 0c055c9be9..f792e59002 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -369,7 +369,7 @@ void EnBb_Init(Actor* thisx, PlayState* play) { thisx->naviEnemyId = NAVI_ENEMY_RED_BUBBLE; thisx->colChkInfo.damageTable = &sDamageTableRed; this->flameEnvColor.r = 255; - this->collider.elements[0].base.atDmgInfo.effect = 1; + this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1; EnBb_SetupRed(play, this); break; case ENBB_WHITE: diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c index 30de9c5bbb..7cb0eece74 100644 --- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c +++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c @@ -110,7 +110,7 @@ u32 func_809CBCBC(EnBubble* this) { ColliderElement* elem = &this->colliderJntSph.elements[0].base; elem->atDmgInfo.dmgFlags = DMG_EXPLOSIVE; - elem->atDmgInfo.effect = 0; + elem->atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_0; elem->atDmgInfo.damage = 4; elem->atElemFlags = ATELEM_ON; this->actor.velocity.y = 0.0f; diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index 7f6b4ae99e..2aa76f7e57 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -786,7 +786,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) { func_8002836C(play, &thisx->world.pos, &velocity, &accel, &sp50, &sp4C, 0x3C, 0, 0x14); } if (this->unk_248 <= 0.4f) { - this->collider1.elem.atDmgInfo.effect = 0; + this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_0; if (((play->gameplayFrames & 1) == 0) && (this->unk_220 < 5) && (this->unk_23C == 0)) { accel.y = -0.1f; velocity.x = Rand_CenteredFloat(4.0f); @@ -806,7 +806,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) { 20.0f - (this->unk_248 * 40.0f)); } } else { - this->collider1.elem.atDmgInfo.effect = 1; + this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1; } this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y); diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index e3df3a19f1..486e5af3a3 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -134,7 +134,7 @@ static InitChainEntry sInitChain[] = { void EnFirefly_Extinguish(EnFirefly* this) { this->actor.params += 2; - this->collider.elements[0].base.atDmgInfo.effect = 0; // None + this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_0; this->auraType = KEESE_AURA_NONE; this->onFire = false; this->actor.naviEnemyId = NAVI_ENEMY_KEESE; @@ -146,7 +146,7 @@ void EnFirefly_Ignite(EnFirefly* this) { } else { this->actor.params -= 2; } - this->collider.elements[0].base.atDmgInfo.effect = 1; // Fire + this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_1; this->auraType = KEESE_AURA_FIRE; this->onFire = true; this->actor.naviEnemyId = NAVI_ENEMY_FIRE_KEESE; @@ -190,10 +190,10 @@ void EnFirefly_Init(Actor* thisx, PlayState* play) { } if (this->actor.params == KEESE_ICE_FLY) { - this->collider.elements[0].base.atDmgInfo.effect = 2; // Ice + this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_2; this->actor.naviEnemyId = NAVI_ENEMY_ICE_KEESE; } else { - this->collider.elements[0].base.atDmgInfo.effect = 0; // Nothing + this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_0; this->actor.naviEnemyId = NAVI_ENEMY_KEESE; } diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 1cb43e2481..258e270949 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -151,7 +151,7 @@ void EnReeba_Init(Actor* thisx, PlayState* play) { PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ リーバぼす登場 ☆☆☆☆☆ %f\n", "☆☆☆☆☆ Reeba boss appears ☆☆☆☆☆ %f\n") VT_RST, this->scale); this->actor.colChkInfo.health = 20; - this->collider.elem.atDmgInfo.effect = 4; + this->collider.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_4; this->collider.elem.atDmgInfo.damage = 16; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY); } diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c index 3f10462ead..9d54250bcd 100644 --- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c +++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c @@ -25,6 +25,8 @@ #include "assets/objects/object_torch2/object_torch2.h" +#pragma increment_block_number "ique-cn:128" + #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ ACTOR_FLAG_DRAW_CULLING_DISABLED) diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 9f94310a35..ce05c2858e 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -37,8 +37,8 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:128" \ - "ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \ + "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 5ca29489ce..6ddb51cdca 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -4798,7 +4798,7 @@ void func_8083821C(Player* this) { } void func_80838280(Player* this) { - if (this->actor.colChkInfo.acHitEffect == 1) { + if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_1) { func_8083821C(this); } Player_PlayVoiceSfx(this, NA_SE_VO_LI_FALL_L); @@ -4915,7 +4915,7 @@ s32 func_808382DC(Player* this, PlayState* play) { } } - if (sp64 && (this->shieldQuad.elem.acHitElem->atDmgInfo.effect == 1)) { + if (sp64 && (this->shieldQuad.elem.acHitElem->atDmgInfo.hitSpecialEffect == HIT_SPECIAL_EFFECT_1)) { func_8083819C(this, play); } @@ -4938,11 +4938,11 @@ s32 func_808382DC(Player* this, PlayState* play) { if (this->stateFlags1 & PLAYER_STATE1_27) { sp4C = PLAYER_HIT_RESPONSE_NONE; - } else if (this->actor.colChkInfo.acHitEffect == 2) { + } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_2) { sp4C = PLAYER_HIT_RESPONSE_ICE_TRAP; - } else if (this->actor.colChkInfo.acHitEffect == 3) { + } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_3) { sp4C = PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK; - } else if (this->actor.colChkInfo.acHitEffect == 4) { + } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_4) { sp4C = PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE; } else { func_80838280(this);