DMGEFF -> DMGREAC

This commit is contained in:
Dragorn421 2025-05-28 10:21:15 +02:00
parent 8b322955a1
commit f09e06d42a
No known key found for this signature in database
GPG Key ID: 381AEBAF3D429335
14 changed files with 629 additions and 629 deletions

View File

@ -128,47 +128,47 @@ static ColliderQuadInit sQuadInit = {
};
typedef enum ArmosDamageEffect {
/* 0 */ AM_DMGEFF_NONE, // used by anything that can't kill the armos
/* 1 */ AM_DMGEFF_NUT,
/* 6 */ AM_DMGEFF_STUN = 6, // doesn't include deku nuts
/* 13 */ AM_DMGEFF_ICE = 13,
/* 14 */ AM_DMGEFF_MAGIC_FIRE_LIGHT,
/* 15 */ AM_DMGEFF_KILL // any damage source that can kill the armos (and isn't a special case)
/* 0 */ AM_DMGREAC_NONE, // used by anything that can't kill the armos
/* 1 */ AM_DMGREAC_NUT,
/* 6 */ AM_DMGREAC_STUN = 6, // doesn't include deku nuts
/* 13 */ AM_DMGREAC_ICE = 13,
/* 14 */ AM_DMGREAC_MAGIC_FIRE_LIGHT,
/* 15 */ AM_DMGREAC_KILL // any damage source that can kill the armos (and isn't a special case)
} ArmosDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, AM_DMGEFF_NUT),
/* Deku stick */ DMG_ENTRY(2, AM_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(1, AM_DMGEFF_NONE),
/* Explosive */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Boomerang */ DMG_ENTRY(0, AM_DMGEFF_STUN),
/* Normal arrow */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Hammer swing */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Hookshot */ DMG_ENTRY(0, AM_DMGEFF_STUN),
/* Kokiri sword */ DMG_ENTRY(1, AM_DMGEFF_NONE),
/* Master sword */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Giant's Knife */ DMG_ENTRY(4, AM_DMGEFF_KILL),
/* Fire arrow */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Ice arrow */ DMG_ENTRY(4, AM_DMGEFF_ICE),
/* Light arrow */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Unk arrow 1 */ DMG_ENTRY(2, AM_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, AM_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, AM_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(0, AM_DMGEFF_MAGIC_FIRE_LIGHT),
/* Ice magic */ DMG_ENTRY(3, AM_DMGEFF_ICE),
/* Light magic */ DMG_ENTRY(0, AM_DMGEFF_MAGIC_FIRE_LIGHT),
/* Shield */ DMG_ENTRY(0, AM_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, AM_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, AM_DMGEFF_NONE),
/* Giant spin */ DMG_ENTRY(4, AM_DMGEFF_KILL),
/* Master spin */ DMG_ENTRY(2, AM_DMGEFF_KILL),
/* Kokiri jump */ DMG_ENTRY(2, AM_DMGEFF_NONE),
/* Giant jump */ DMG_ENTRY(8, AM_DMGEFF_KILL),
/* Master jump */ DMG_ENTRY(4, AM_DMGEFF_KILL),
/* Unknown 1 */ DMG_ENTRY(0, AM_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, AM_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, AM_DMGEFF_KILL),
/* Unknown 2 */ DMG_ENTRY(0, AM_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, AM_DMGREAC_NUT),
/* Deku stick */ DMG_ENTRY(2, AM_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(1, AM_DMGREAC_NONE),
/* Explosive */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Boomerang */ DMG_ENTRY(0, AM_DMGREAC_STUN),
/* Normal arrow */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Hammer swing */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Hookshot */ DMG_ENTRY(0, AM_DMGREAC_STUN),
/* Kokiri sword */ DMG_ENTRY(1, AM_DMGREAC_NONE),
/* Master sword */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Giant's Knife */ DMG_ENTRY(4, AM_DMGREAC_KILL),
/* Fire arrow */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Ice arrow */ DMG_ENTRY(4, AM_DMGREAC_ICE),
/* Light arrow */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Unk arrow 1 */ DMG_ENTRY(2, AM_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, AM_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, AM_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(0, AM_DMGREAC_MAGIC_FIRE_LIGHT),
/* Ice magic */ DMG_ENTRY(3, AM_DMGREAC_ICE),
/* Light magic */ DMG_ENTRY(0, AM_DMGREAC_MAGIC_FIRE_LIGHT),
/* Shield */ DMG_ENTRY(0, AM_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, AM_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, AM_DMGREAC_NONE),
/* Giant spin */ DMG_ENTRY(4, AM_DMGREAC_KILL),
/* Master spin */ DMG_ENTRY(2, AM_DMGREAC_KILL),
/* Kokiri jump */ DMG_ENTRY(2, AM_DMGREAC_NONE),
/* Giant jump */ DMG_ENTRY(8, AM_DMGREAC_KILL),
/* Master jump */ DMG_ENTRY(4, AM_DMGREAC_KILL),
/* Unknown 1 */ DMG_ENTRY(0, AM_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, AM_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, AM_DMGREAC_KILL),
/* Unknown 2 */ DMG_ENTRY(0, AM_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -735,7 +735,7 @@ void EnAm_SetupStunned(EnAm* this, PlayState* play) {
Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 100);
if (this->damageReaction == AM_DMGEFF_ICE) {
if (this->damageReaction == AM_DMGREAC_ICE) {
this->iceTimer = 48;
}
@ -810,27 +810,27 @@ void EnAm_UpdateDamage(EnAm* this, PlayState* play) {
} else if ((this->hurtCollider.base.acFlags & AC_HIT) && (this->behavior >= AM_BEHAVIOR_5)) {
this->hurtCollider.base.acFlags &= ~AC_HIT;
if (this->dyna.actor.colChkInfo.damageReaction != AM_DMGEFF_MAGIC_FIRE_LIGHT) {
if (this->dyna.actor.colChkInfo.damageReaction != AM_DMGREAC_MAGIC_FIRE_LIGHT) {
this->unk_264 = 0;
this->damageReaction = this->dyna.actor.colChkInfo.damageReaction;
Actor_SetDropFlag(&this->dyna.actor, &this->hurtCollider.elem, false);
if ((this->dyna.actor.colChkInfo.damageReaction == AM_DMGEFF_NUT) ||
(this->dyna.actor.colChkInfo.damageReaction == AM_DMGEFF_STUN) ||
(this->dyna.actor.colChkInfo.damageReaction == AM_DMGEFF_ICE)) {
if ((this->dyna.actor.colChkInfo.damageReaction == AM_DMGREAC_NUT) ||
(this->dyna.actor.colChkInfo.damageReaction == AM_DMGREAC_STUN) ||
(this->dyna.actor.colChkInfo.damageReaction == AM_DMGREAC_ICE)) {
if (this->behavior != AM_BEHAVIOR_STUNNED) {
EnAm_SetupStunned(this, play);
if (this->dyna.actor.colChkInfo.damage != 0) {
this->dyna.actor.colChkInfo.health = 0;
}
} else if (this->dyna.actor.colChkInfo.damageReaction == AM_DMGEFF_STUN) {
} else if (this->dyna.actor.colChkInfo.damageReaction == AM_DMGREAC_STUN) {
Vec3f sparkPos = this->dyna.actor.world.pos;
sparkPos.y += 50.0f;
CollisionCheck_SpawnShieldParticlesMetal(play, &sparkPos);
}
} else if ((this->dyna.actor.colChkInfo.damageReaction == AM_DMGEFF_KILL) ||
} else if ((this->dyna.actor.colChkInfo.damageReaction == AM_DMGREAC_KILL) ||
(this->behavior == AM_BEHAVIOR_STUNNED)) {
this->dyna.actor.colChkInfo.health = 0;
@ -857,7 +857,7 @@ void EnAm_Update(Actor* thisx, PlayState* play) {
EnAm_UpdateDamage(this, play);
}
if (this->dyna.actor.colChkInfo.damageReaction != AM_DMGEFF_MAGIC_FIRE_LIGHT) {
if (this->dyna.actor.colChkInfo.damageReaction != AM_DMGREAC_MAGIC_FIRE_LIGHT) {
if (this->attackTimer != 0) {
this->attackTimer--;
}

View File

@ -74,44 +74,44 @@ static ColliderCylinderInit sCylinderInit = {
};
typedef enum AnubiceDamageEffect {
/* 0x0 */ ANUBICE_DMGEFF_NONE,
/* 0x2 */ ANUBICE_DMGEFF_FIRE = 2,
/* 0xF */ ANUBICE_DMGEFF_0xF = 0xF // Treated the same as ANUBICE_DMGEFF_NONE in code
/* 0x0 */ ANUBICE_DMGREAC_NONE,
/* 0x2 */ ANUBICE_DMGREAC_FIRE = 2,
/* 0xF */ ANUBICE_DMGREAC_0xF = 0xF // Treated the same as ANUBICE_DMGREAC_NONE in code
} AnubiceDamageEffect;
static DamageTable sDamageTable[] = {
/* Deku nut */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Deku stick */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Slingshot */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Explosive */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Boomerang */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Normal arrow */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Hammer swing */ DMG_ENTRY(1, ANUBICE_DMGEFF_0xF),
/* Hookshot */ DMG_ENTRY(2, ANUBICE_DMGEFF_0xF),
/* Kokiri sword */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Master sword */ DMG_ENTRY(2, ANUBICE_DMGEFF_0xF),
/* Giant's Knife */ DMG_ENTRY(6, ANUBICE_DMGEFF_0xF),
/* Fire arrow */ DMG_ENTRY(2, ANUBICE_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Light arrow */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Unk arrow 1 */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Unk arrow 2 */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Unk arrow 3 */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Fire magic */ DMG_ENTRY(3, ANUBICE_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Light magic */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Giant spin */ DMG_ENTRY(6, ANUBICE_DMGEFF_0xF),
/* Master spin */ DMG_ENTRY(2, ANUBICE_DMGEFF_0xF),
/* Kokiri jump */ DMG_ENTRY(0, ANUBICE_DMGEFF_0xF),
/* Giant jump */ DMG_ENTRY(12, ANUBICE_DMGEFF_0xF),
/* Master jump */ DMG_ENTRY(4, ANUBICE_DMGEFF_0xF),
/* Unknown 1 */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, ANUBICE_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Deku stick */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Slingshot */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Explosive */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Boomerang */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Normal arrow */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Hammer swing */ DMG_ENTRY(1, ANUBICE_DMGREAC_0xF),
/* Hookshot */ DMG_ENTRY(2, ANUBICE_DMGREAC_0xF),
/* Kokiri sword */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Master sword */ DMG_ENTRY(2, ANUBICE_DMGREAC_0xF),
/* Giant's Knife */ DMG_ENTRY(6, ANUBICE_DMGREAC_0xF),
/* Fire arrow */ DMG_ENTRY(2, ANUBICE_DMGREAC_FIRE),
/* Ice arrow */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Light arrow */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Unk arrow 1 */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Unk arrow 2 */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Unk arrow 3 */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Fire magic */ DMG_ENTRY(3, ANUBICE_DMGREAC_FIRE),
/* Ice magic */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Light magic */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Giant spin */ DMG_ENTRY(6, ANUBICE_DMGREAC_0xF),
/* Master spin */ DMG_ENTRY(2, ANUBICE_DMGREAC_0xF),
/* Kokiri jump */ DMG_ENTRY(0, ANUBICE_DMGREAC_0xF),
/* Giant jump */ DMG_ENTRY(12, ANUBICE_DMGREAC_0xF),
/* Master jump */ DMG_ENTRY(4, ANUBICE_DMGREAC_0xF),
/* Unknown 1 */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, ANUBICE_DMGREAC_NONE),
};
void EnAnubice_Hover(EnAnubice* this, PlayState* play) {
@ -399,7 +399,7 @@ void EnAnubice_Update(Actor* thisx, PlayState* play) {
if (this->collider.base.acFlags & AC_HIT) {
this->collider.base.acFlags &= ~AC_HIT;
if (this->actor.colChkInfo.damageReaction == ANUBICE_DMGEFF_FIRE) {
if (this->actor.colChkInfo.damageReaction == ANUBICE_DMGREAC_FIRE) {
Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP);
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
Enemy_StartFinishingBlow(play, &this->actor);

View File

@ -41,7 +41,7 @@ typedef struct EnAnubice {
/* 0x025C */ s16 knockbackTimer;
/* 0x025E */ s16 isMirroringPlayer;
/* 0x0260 */ s16 isPlayerOutOfRange;
/* 0x0262 */ s16 isKnockedback; // Hit by an attack without ANUBICE_DMGEFF_FIRE
/* 0x0262 */ s16 isKnockedback; // Hit by an attack without ANUBICE_DMGREAC_FIRE
/* 0x0264 */ s16 hasSearchedForFlameCircles;
/* 0x0268 */ f32 hoverVelocityTimer;
/* 0x026C */ f32 animLastFrame;

View File

@ -79,47 +79,47 @@ static ColliderCylinderInit sCylinderInit = {
static CollisionCheckInfoInit2 sColChkInfoInit = { 1, 9, 28, -20, 30 };
typedef enum BiriDamageEffect {
/* 0x0 */ BIRI_DMGEFF_NONE,
/* 0x1 */ BIRI_DMGEFF_DEKUNUT,
/* 0x2 */ BIRI_DMGEFF_FIRE,
/* 0x3 */ BIRI_DMGEFF_ICE,
/* 0xE */ BIRI_DMGEFF_SLINGSHOT = 0xE,
/* 0xF */ BIRI_DMGEFF_SWORD
/* 0x0 */ BIRI_DMGREAC_NONE,
/* 0x1 */ BIRI_DMGREAC_DEKUNUT,
/* 0x2 */ BIRI_DMGREAC_FIRE,
/* 0x3 */ BIRI_DMGREAC_ICE,
/* 0xE */ BIRI_DMGREAC_SLINGSHOT = 0xE,
/* 0xF */ BIRI_DMGREAC_SWORD
} BiriDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, BIRI_DMGEFF_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(0, BIRI_DMGEFF_SLINGSHOT),
/* Explosive */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(1, BIRI_DMGEFF_NONE),
/* Normal arrow */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Kokiri sword */ DMG_ENTRY(1, BIRI_DMGEFF_SWORD),
/* Master sword */ DMG_ENTRY(2, BIRI_DMGEFF_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, BIRI_DMGEFF_SWORD),
/* Fire arrow */ DMG_ENTRY(4, BIRI_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(4, BIRI_DMGEFF_ICE),
/* Light arrow */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, BIRI_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(4, BIRI_DMGEFF_ICE),
/* Light magic */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, BIRI_DMGEFF_NONE),
/* Giant spin */ DMG_ENTRY(4, BIRI_DMGEFF_NONE),
/* Master spin */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Kokiri jump */ DMG_ENTRY(2, BIRI_DMGEFF_NONE),
/* Giant jump */ DMG_ENTRY(8, BIRI_DMGEFF_NONE),
/* Master jump */ DMG_ENTRY(4, BIRI_DMGEFF_NONE),
/* Unknown 1 */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, BIRI_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, BIRI_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, BIRI_DMGREAC_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(0, BIRI_DMGREAC_SLINGSHOT),
/* Explosive */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(1, BIRI_DMGREAC_NONE),
/* Normal arrow */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Hookshot */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Kokiri sword */ DMG_ENTRY(1, BIRI_DMGREAC_SWORD),
/* Master sword */ DMG_ENTRY(2, BIRI_DMGREAC_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, BIRI_DMGREAC_SWORD),
/* Fire arrow */ DMG_ENTRY(4, BIRI_DMGREAC_FIRE),
/* Ice arrow */ DMG_ENTRY(4, BIRI_DMGREAC_ICE),
/* Light arrow */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(4, BIRI_DMGREAC_FIRE),
/* Ice magic */ DMG_ENTRY(4, BIRI_DMGREAC_ICE),
/* Light magic */ DMG_ENTRY(0, BIRI_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, BIRI_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, BIRI_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, BIRI_DMGREAC_NONE),
/* Giant spin */ DMG_ENTRY(4, BIRI_DMGREAC_NONE),
/* Master spin */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Kokiri jump */ DMG_ENTRY(2, BIRI_DMGREAC_NONE),
/* Giant jump */ DMG_ENTRY(8, BIRI_DMGREAC_NONE),
/* Master jump */ DMG_ENTRY(4, BIRI_DMGREAC_NONE),
/* Unknown 1 */ DMG_ENTRY(0, BIRI_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, BIRI_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, BIRI_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, BIRI_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -581,11 +581,11 @@ void EnBili_UpdateDamage(EnBili* this, PlayState* play) {
damageReaction = this->actor.colChkInfo.damageReaction;
if (damageReaction == BIRI_DMGEFF_DEKUNUT) {
if (damageReaction == BIRI_DMGREAC_DEKUNUT) {
if (this->actionFunc != EnBili_Stunned) {
EnBili_SetupStunned(this);
}
} else if (damageReaction == BIRI_DMGEFF_SWORD) {
} else if (damageReaction == BIRI_DMGREAC_SWORD) {
if (this->actionFunc != EnBili_Stunned) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_XLU, 10);
@ -596,12 +596,12 @@ void EnBili_UpdateDamage(EnBili* this, PlayState* play) {
} else {
EnBili_SetupBurnt(this);
}
} else if (damageReaction == BIRI_DMGEFF_FIRE) {
} else if (damageReaction == BIRI_DMGREAC_FIRE) {
EnBili_SetupBurnt(this);
this->timer = 2;
} else if (damageReaction == BIRI_DMGEFF_ICE) {
} else if (damageReaction == BIRI_DMGREAC_ICE) {
EnBili_SetupFrozen(this, play);
} else if (damageReaction == BIRI_DMGEFF_SLINGSHOT) {
} else if (damageReaction == BIRI_DMGREAC_SLINGSHOT) {
EnBili_SetupRecoil(this);
} else {
EnBili_SetupBurnt(this);

View File

@ -151,83 +151,83 @@ static ColliderJntSphInit sJntSphInit = {
static CollisionCheckInfoInit sColChkInfoInit = { 2, 25, 25, MASS_IMMOVABLE };
typedef enum DekuBabaDamageEffect {
/* 0x0 */ DEKUBABA_DMGEFF_NONE,
/* 0x1 */ DEKUBABA_DMGEFF_DEKUNUT,
/* 0x2 */ DEKUBABA_DMGEFF_FIRE,
/* 0xE */ DEKUBABA_DMGEFF_BOOMERANG = 14,
/* 0xF */ DEKUBABA_DMGEFF_SWORD
/* 0x0 */ DEKUBABA_DMGREAC_NONE,
/* 0x1 */ DEKUBABA_DMGREAC_DEKUNUT,
/* 0x2 */ DEKUBABA_DMGREAC_FIRE,
/* 0xE */ DEKUBABA_DMGREAC_BOOMERANG = 14,
/* 0xF */ DEKUBABA_DMGREAC_SWORD
} DekuBabaDamageEffect;
static DamageTable sDekuBabaDamageTable = {
/* Deku nut */ DMG_ENTRY(0, DEKUBABA_DMGEFF_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(1, DEKUBABA_DMGEFF_NONE),
/* Explosive */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(2, DEKUBABA_DMGEFF_BOOMERANG),
/* Normal arrow */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Kokiri sword */ DMG_ENTRY(1, DEKUBABA_DMGEFF_SWORD),
/* Master sword */ DMG_ENTRY(2, DEKUBABA_DMGEFF_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, DEKUBABA_DMGEFF_SWORD),
/* Fire arrow */ DMG_ENTRY(4, DEKUBABA_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Light arrow */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, DEKUBABA_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Light magic */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, DEKUBABA_DMGEFF_SWORD),
/* Giant spin */ DMG_ENTRY(4, DEKUBABA_DMGEFF_SWORD),
/* Master spin */ DMG_ENTRY(2, DEKUBABA_DMGEFF_SWORD),
/* Kokiri jump */ DMG_ENTRY(2, DEKUBABA_DMGEFF_SWORD),
/* Giant jump */ DMG_ENTRY(8, DEKUBABA_DMGEFF_SWORD),
/* Master jump */ DMG_ENTRY(4, DEKUBABA_DMGEFF_SWORD),
/* Unknown 1 */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, DEKUBABA_DMGREAC_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(1, DEKUBABA_DMGREAC_NONE),
/* Explosive */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(2, DEKUBABA_DMGREAC_BOOMERANG),
/* Normal arrow */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Hookshot */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Kokiri sword */ DMG_ENTRY(1, DEKUBABA_DMGREAC_SWORD),
/* Master sword */ DMG_ENTRY(2, DEKUBABA_DMGREAC_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, DEKUBABA_DMGREAC_SWORD),
/* Fire arrow */ DMG_ENTRY(4, DEKUBABA_DMGREAC_FIRE),
/* Ice arrow */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Light arrow */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(4, DEKUBABA_DMGREAC_FIRE),
/* Ice magic */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Light magic */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, DEKUBABA_DMGREAC_SWORD),
/* Giant spin */ DMG_ENTRY(4, DEKUBABA_DMGREAC_SWORD),
/* Master spin */ DMG_ENTRY(2, DEKUBABA_DMGREAC_SWORD),
/* Kokiri jump */ DMG_ENTRY(2, DEKUBABA_DMGREAC_SWORD),
/* Giant jump */ DMG_ENTRY(8, DEKUBABA_DMGREAC_SWORD),
/* Master jump */ DMG_ENTRY(4, DEKUBABA_DMGREAC_SWORD),
/* Unknown 1 */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, DEKUBABA_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
};
// The only difference is that for Big Deku Babas, Hookshot will act the same as Deku Nuts: i.e. it will stun, but
// cannot kill.
static DamageTable sBigDekuBabaDamageTable = {
/* Deku nut */ DMG_ENTRY(0, DEKUBABA_DMGEFF_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(1, DEKUBABA_DMGEFF_NONE),
/* Explosive */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(2, DEKUBABA_DMGEFF_BOOMERANG),
/* Normal arrow */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(0, DEKUBABA_DMGEFF_DEKUNUT),
/* Kokiri sword */ DMG_ENTRY(1, DEKUBABA_DMGEFF_SWORD),
/* Master sword */ DMG_ENTRY(2, DEKUBABA_DMGEFF_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, DEKUBABA_DMGEFF_SWORD),
/* Fire arrow */ DMG_ENTRY(4, DEKUBABA_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Light arrow */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, DEKUBABA_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, DEKUBABA_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Light magic */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, DEKUBABA_DMGEFF_SWORD),
/* Giant spin */ DMG_ENTRY(4, DEKUBABA_DMGEFF_SWORD),
/* Master spin */ DMG_ENTRY(2, DEKUBABA_DMGEFF_SWORD),
/* Kokiri jump */ DMG_ENTRY(2, DEKUBABA_DMGEFF_SWORD),
/* Giant jump */ DMG_ENTRY(8, DEKUBABA_DMGEFF_SWORD),
/* Master jump */ DMG_ENTRY(4, DEKUBABA_DMGEFF_SWORD),
/* Unknown 1 */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, DEKUBABA_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, DEKUBABA_DMGREAC_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(1, DEKUBABA_DMGREAC_NONE),
/* Explosive */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(2, DEKUBABA_DMGREAC_BOOMERANG),
/* Normal arrow */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Hookshot */ DMG_ENTRY(0, DEKUBABA_DMGREAC_DEKUNUT),
/* Kokiri sword */ DMG_ENTRY(1, DEKUBABA_DMGREAC_SWORD),
/* Master sword */ DMG_ENTRY(2, DEKUBABA_DMGREAC_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, DEKUBABA_DMGREAC_SWORD),
/* Fire arrow */ DMG_ENTRY(4, DEKUBABA_DMGREAC_FIRE),
/* Ice arrow */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Light arrow */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, DEKUBABA_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(4, DEKUBABA_DMGREAC_FIRE),
/* Ice magic */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Light magic */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, DEKUBABA_DMGREAC_SWORD),
/* Giant spin */ DMG_ENTRY(4, DEKUBABA_DMGREAC_SWORD),
/* Master spin */ DMG_ENTRY(2, DEKUBABA_DMGREAC_SWORD),
/* Kokiri jump */ DMG_ENTRY(2, DEKUBABA_DMGREAC_SWORD),
/* Giant jump */ DMG_ENTRY(8, DEKUBABA_DMGREAC_SWORD),
/* Master jump */ DMG_ENTRY(4, DEKUBABA_DMGREAC_SWORD),
/* Unknown 1 */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, DEKUBABA_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, DEKUBABA_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -257,7 +257,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) {
// (Of course they reckoned without each age being able to use the other's items, so Stick and Master Sword
// jumpslash can give the Stick drop as adult, and neither will as child.)
if (!LINK_IS_ADULT) {
sBigDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE); // DMG_JUMP_MASTER
sBigDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGREAC_NONE); // DMG_JUMP_MASTER
}
CollisionCheck_SetInfo(&this->actor.colChkInfo, &sBigDekuBabaDamageTable, &sColChkInfoInit);
@ -272,7 +272,7 @@ void EnDekubaba_Init(Actor* thisx, PlayState* play) {
}
if (!LINK_IS_ADULT) {
sDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGEFF_NONE); // DMG_JUMP_MASTER
sDekuBabaDamageTable.table[0x1B] = DMG_ENTRY(4, DEKUBABA_DMGREAC_NONE); // DMG_JUMP_MASTER
}
CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDekuBabaDamageTable, &sColChkInfoInit);
@ -1049,14 +1049,14 @@ void EnDekubaba_UpdateDamage(EnDekubaba* this, PlayState* play) {
Actor_SetDropFlagJntSph(&this->actor, &this->collider, true);
if ((this->collider.base.colMaterial != COL_MATERIAL_HARD) &&
((this->actor.colChkInfo.damageReaction != DEKUBABA_DMGEFF_NONE) || (this->actor.colChkInfo.damage != 0))) {
((this->actor.colChkInfo.damageReaction != DEKUBABA_DMGREAC_NONE) || (this->actor.colChkInfo.damage != 0))) {
phi_s0 = this->actor.colChkInfo.health - this->actor.colChkInfo.damage;
if (this->actionFunc != EnDekubaba_StunnedVertical) {
if ((this->actor.colChkInfo.damageReaction == DEKUBABA_DMGEFF_BOOMERANG) ||
(this->actor.colChkInfo.damageReaction == DEKUBABA_DMGEFF_DEKUNUT)) {
if (this->actor.colChkInfo.damageReaction == DEKUBABA_DMGEFF_BOOMERANG) {
if ((this->actor.colChkInfo.damageReaction == DEKUBABA_DMGREAC_BOOMERANG) ||
(this->actor.colChkInfo.damageReaction == DEKUBABA_DMGREAC_DEKUNUT)) {
if (this->actor.colChkInfo.damageReaction == DEKUBABA_DMGREAC_BOOMERANG) {
phi_s0 = this->actor.colChkInfo.health;
}
@ -1070,14 +1070,14 @@ void EnDekubaba_UpdateDamage(EnDekubaba* this, PlayState* play) {
} else {
EnDekubaba_SetupHit(this, 0);
}
} else if ((this->actor.colChkInfo.damageReaction == DEKUBABA_DMGEFF_BOOMERANG) ||
(this->actor.colChkInfo.damageReaction == DEKUBABA_DMGEFF_SWORD)) {
} else if ((this->actor.colChkInfo.damageReaction == DEKUBABA_DMGREAC_BOOMERANG) ||
(this->actor.colChkInfo.damageReaction == DEKUBABA_DMGREAC_SWORD)) {
if (phi_s0 > 0) {
EnDekubaba_SetupSway(this);
} else {
EnDekubaba_SetupPrunedSomersault(this);
}
} else if (this->actor.colChkInfo.damageReaction != DEKUBABA_DMGEFF_DEKUNUT) {
} else if (this->actor.colChkInfo.damageReaction != DEKUBABA_DMGREAC_DEKUNUT) {
EnDekubaba_SetupHit(this, 0);
} else {
return;
@ -1085,7 +1085,7 @@ void EnDekubaba_UpdateDamage(EnDekubaba* this, PlayState* play) {
this->actor.colChkInfo.health = CLAMP_MIN(phi_s0, 0);
if (this->actor.colChkInfo.damageReaction == DEKUBABA_DMGEFF_FIRE) {
if (this->actor.colChkInfo.damageReaction == DEKUBABA_DMGREAC_FIRE) {
firePos = &this->actor.world.pos;
fireScale = (this->size * 70.0f);

View File

@ -53,11 +53,11 @@ typedef enum EnIkCsDrawMode {
} EnIkCsDrawMode;
typedef enum EnIkDamageEffect {
/* 0x0 */ EN_IK_DMGEFF_NONE,
/* 0x6 */ EN_IK_DMGEFF_ELEMENTAL_MAGIC = 0x6,
/* 0xD */ EN_IK_DMGEFF_SPARKS_NO_DMG = 0xD,
/* 0xE */ EN_IK_DMGEFF_PROJECTILE,
/* 0xF */ EN_IK_DMGEFF_DAMAGE
/* 0x0 */ EN_IK_DMGREAC_NONE,
/* 0x6 */ EN_IK_DMGREAC_ELEMENTAL_MAGIC = 0x6,
/* 0xD */ EN_IK_DMGREAC_SPARKS_NO_DMG = 0xD,
/* 0xE */ EN_IK_DMGREAC_PROJECTILE,
/* 0xF */ EN_IK_DMGREAC_DAMAGE
} EnIkDamageEffect;
void EnIk_UpdateEnemy(Actor* thisx, PlayState* play);
@ -166,38 +166,38 @@ static ColliderQuadInit sQuadInit = {
};
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, EN_IK_DMGEFF_SPARKS_NO_DMG),
/* Deku stick */ DMG_ENTRY(2, EN_IK_DMGEFF_DAMAGE),
/* Slingshot */ DMG_ENTRY(1, EN_IK_DMGEFF_PROJECTILE),
/* Explosive */ DMG_ENTRY(2, EN_IK_DMGEFF_DAMAGE),
/* Boomerang */ DMG_ENTRY(0, EN_IK_DMGEFF_SPARKS_NO_DMG),
/* Normal arrow */ DMG_ENTRY(2, EN_IK_DMGEFF_PROJECTILE),
/* Hammer swing */ DMG_ENTRY(2, EN_IK_DMGEFF_DAMAGE),
/* Hookshot */ DMG_ENTRY(0, EN_IK_DMGEFF_SPARKS_NO_DMG),
/* Kokiri sword */ DMG_ENTRY(1, EN_IK_DMGEFF_DAMAGE),
/* Master sword */ DMG_ENTRY(2, EN_IK_DMGEFF_DAMAGE),
/* Giant's Knife */ DMG_ENTRY(4, EN_IK_DMGEFF_DAMAGE),
/* Fire arrow */ DMG_ENTRY(2, EN_IK_DMGEFF_PROJECTILE),
/* Ice arrow */ DMG_ENTRY(2, EN_IK_DMGEFF_PROJECTILE),
/* Light arrow */ DMG_ENTRY(2, EN_IK_DMGEFF_PROJECTILE),
/* Unk arrow 1 */ DMG_ENTRY(2, EN_IK_DMGEFF_PROJECTILE),
/* Unk arrow 2 */ DMG_ENTRY(2, EN_IK_DMGEFF_PROJECTILE),
/* Unk arrow 3 */ DMG_ENTRY(15, EN_IK_DMGEFF_PROJECTILE),
/* Fire magic */ DMG_ENTRY(0, EN_IK_DMGEFF_ELEMENTAL_MAGIC),
/* Ice magic */ DMG_ENTRY(0, EN_IK_DMGEFF_ELEMENTAL_MAGIC),
/* Light magic */ DMG_ENTRY(0, EN_IK_DMGEFF_ELEMENTAL_MAGIC),
/* Shield */ DMG_ENTRY(0, EN_IK_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, EN_IK_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, EN_IK_DMGEFF_DAMAGE),
/* Giant spin */ DMG_ENTRY(4, EN_IK_DMGEFF_DAMAGE),
/* Master spin */ DMG_ENTRY(2, EN_IK_DMGEFF_DAMAGE),
/* Kokiri jump */ DMG_ENTRY(2, EN_IK_DMGEFF_DAMAGE),
/* Giant jump */ DMG_ENTRY(8, EN_IK_DMGEFF_DAMAGE),
/* Master jump */ DMG_ENTRY(4, EN_IK_DMGEFF_DAMAGE),
/* Unknown 1 */ DMG_ENTRY(10, EN_IK_DMGEFF_DAMAGE),
/* Unblockable */ DMG_ENTRY(0, EN_IK_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, EN_IK_DMGEFF_DAMAGE),
/* Unknown 2 */ DMG_ENTRY(0, EN_IK_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, EN_IK_DMGREAC_SPARKS_NO_DMG),
/* Deku stick */ DMG_ENTRY(2, EN_IK_DMGREAC_DAMAGE),
/* Slingshot */ DMG_ENTRY(1, EN_IK_DMGREAC_PROJECTILE),
/* Explosive */ DMG_ENTRY(2, EN_IK_DMGREAC_DAMAGE),
/* Boomerang */ DMG_ENTRY(0, EN_IK_DMGREAC_SPARKS_NO_DMG),
/* Normal arrow */ DMG_ENTRY(2, EN_IK_DMGREAC_PROJECTILE),
/* Hammer swing */ DMG_ENTRY(2, EN_IK_DMGREAC_DAMAGE),
/* Hookshot */ DMG_ENTRY(0, EN_IK_DMGREAC_SPARKS_NO_DMG),
/* Kokiri sword */ DMG_ENTRY(1, EN_IK_DMGREAC_DAMAGE),
/* Master sword */ DMG_ENTRY(2, EN_IK_DMGREAC_DAMAGE),
/* Giant's Knife */ DMG_ENTRY(4, EN_IK_DMGREAC_DAMAGE),
/* Fire arrow */ DMG_ENTRY(2, EN_IK_DMGREAC_PROJECTILE),
/* Ice arrow */ DMG_ENTRY(2, EN_IK_DMGREAC_PROJECTILE),
/* Light arrow */ DMG_ENTRY(2, EN_IK_DMGREAC_PROJECTILE),
/* Unk arrow 1 */ DMG_ENTRY(2, EN_IK_DMGREAC_PROJECTILE),
/* Unk arrow 2 */ DMG_ENTRY(2, EN_IK_DMGREAC_PROJECTILE),
/* Unk arrow 3 */ DMG_ENTRY(15, EN_IK_DMGREAC_PROJECTILE),
/* Fire magic */ DMG_ENTRY(0, EN_IK_DMGREAC_ELEMENTAL_MAGIC),
/* Ice magic */ DMG_ENTRY(0, EN_IK_DMGREAC_ELEMENTAL_MAGIC),
/* Light magic */ DMG_ENTRY(0, EN_IK_DMGREAC_ELEMENTAL_MAGIC),
/* Shield */ DMG_ENTRY(0, EN_IK_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, EN_IK_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, EN_IK_DMGREAC_DAMAGE),
/* Giant spin */ DMG_ENTRY(4, EN_IK_DMGREAC_DAMAGE),
/* Master spin */ DMG_ENTRY(2, EN_IK_DMGREAC_DAMAGE),
/* Kokiri jump */ DMG_ENTRY(2, EN_IK_DMGREAC_DAMAGE),
/* Giant jump */ DMG_ENTRY(8, EN_IK_DMGREAC_DAMAGE),
/* Master jump */ DMG_ENTRY(4, EN_IK_DMGREAC_DAMAGE),
/* Unknown 1 */ DMG_ENTRY(10, EN_IK_DMGREAC_DAMAGE),
/* Unblockable */ DMG_ENTRY(0, EN_IK_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, EN_IK_DMGREAC_DAMAGE),
/* Unknown 2 */ DMG_ENTRY(0, EN_IK_DMGREAC_NONE),
};
void EnIk_Destroy(Actor* thisx, PlayState* play) {
@ -757,9 +757,9 @@ void EnIk_UpdateDamage(EnIk* this, PlayState* play) {
this->damageReaction = this->actor.colChkInfo.damageReaction;
this->bodyCollider.base.acFlags &= ~AC_HIT;
if ((this->damageReaction == EN_IK_DMGEFF_NONE) || (this->damageReaction == EN_IK_DMGEFF_SPARKS_NO_DMG) ||
((this->armorStatusFlag == 0) && (this->damageReaction == EN_IK_DMGEFF_PROJECTILE))) {
if (this->damageReaction != EN_IK_DMGEFF_NONE) {
if ((this->damageReaction == EN_IK_DMGREAC_NONE) || (this->damageReaction == EN_IK_DMGREAC_SPARKS_NO_DMG) ||
((this->armorStatusFlag == 0) && (this->damageReaction == EN_IK_DMGREAC_PROJECTILE))) {
if (this->damageReaction != EN_IK_DMGREAC_NONE) {
// spawn sparks and don't damage
CollisionCheck_SpawnShieldParticlesMetal(play, &sparksPos);
}

View File

@ -185,81 +185,81 @@ static ColliderQuadInit sAttackColliderQuadInit = {
};
typedef enum EnMbDamageEffect {
/* 0x0 */ ENMB_DMGEFF_IGNORE,
/* 0x1 */ ENMB_DMGEFF_STUN,
/* 0x5 */ ENMB_DMGEFF_FREEZE = 0x5,
/* 0x6 */ ENMB_DMGEFF_STUN_ICE,
/* 0xF */ ENMB_DMGEFF_DEFAULT = 0xF
/* 0x0 */ ENMB_DMGREAC_IGNORE,
/* 0x1 */ ENMB_DMGREAC_STUN,
/* 0x5 */ ENMB_DMGREAC_FREEZE = 0x5,
/* 0x6 */ ENMB_DMGREAC_STUN_ICE,
/* 0xF */ ENMB_DMGREAC_DEFAULT = 0xF
} EnMbDamageEffect;
static DamageTable sSpearMoblinDamageTable = {
/* Deku nut */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Deku stick */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Slingshot */ DMG_ENTRY(1, ENMB_DMGEFF_DEFAULT),
/* Explosive */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Boomerang */ DMG_ENTRY(0, ENMB_DMGEFF_STUN),
/* Normal arrow */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Hammer swing */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Hookshot */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Kokiri sword */ DMG_ENTRY(1, ENMB_DMGEFF_DEFAULT),
/* Master sword */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Giant's Knife */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Fire arrow */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Ice arrow */ DMG_ENTRY(4, ENMB_DMGEFF_STUN_ICE),
/* Light arrow */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Unk arrow 1 */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Unk arrow 2 */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Unk arrow 3 */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Fire magic */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Ice magic */ DMG_ENTRY(3, ENMB_DMGEFF_STUN_ICE),
/* Light magic */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Shield */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Mirror Ray */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Kokiri spin */ DMG_ENTRY(1, ENMB_DMGEFF_DEFAULT),
/* Giant spin */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Master spin */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Kokiri jump */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Giant jump */ DMG_ENTRY(8, ENMB_DMGEFF_DEFAULT),
/* Master jump */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Unknown 1 */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Unblockable */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Hammer jump */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Unknown 2 */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Deku nut */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Deku stick */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Slingshot */ DMG_ENTRY(1, ENMB_DMGREAC_DEFAULT),
/* Explosive */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Boomerang */ DMG_ENTRY(0, ENMB_DMGREAC_STUN),
/* Normal arrow */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Hammer swing */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Hookshot */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Kokiri sword */ DMG_ENTRY(1, ENMB_DMGREAC_DEFAULT),
/* Master sword */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Giant's Knife */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Fire arrow */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Ice arrow */ DMG_ENTRY(4, ENMB_DMGREAC_STUN_ICE),
/* Light arrow */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Unk arrow 1 */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Unk arrow 2 */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Unk arrow 3 */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Fire magic */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Ice magic */ DMG_ENTRY(3, ENMB_DMGREAC_STUN_ICE),
/* Light magic */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Shield */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Mirror Ray */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Kokiri spin */ DMG_ENTRY(1, ENMB_DMGREAC_DEFAULT),
/* Giant spin */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Master spin */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Kokiri jump */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Giant jump */ DMG_ENTRY(8, ENMB_DMGREAC_DEFAULT),
/* Master jump */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Unknown 1 */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Unblockable */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Hammer jump */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Unknown 2 */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
};
static DamageTable sClubMoblinDamageTable = {
/* Deku nut */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Deku stick */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Slingshot */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Explosive */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Boomerang */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Normal arrow */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Hammer swing */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Hookshot */ DMG_ENTRY(0, ENMB_DMGEFF_STUN),
/* Kokiri sword */ DMG_ENTRY(1, ENMB_DMGEFF_DEFAULT),
/* Master sword */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Giant's Knife */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Fire arrow */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Ice arrow */ DMG_ENTRY(4, ENMB_DMGEFF_STUN_ICE),
/* Light arrow */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Unk arrow 1 */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Unk arrow 2 */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Unk arrow 3 */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Fire magic */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Ice magic */ DMG_ENTRY(3, ENMB_DMGEFF_STUN_ICE),
/* Light magic */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Shield */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Mirror Ray */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Kokiri spin */ DMG_ENTRY(1, ENMB_DMGEFF_DEFAULT),
/* Giant spin */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Master spin */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Kokiri jump */ DMG_ENTRY(2, ENMB_DMGEFF_DEFAULT),
/* Giant jump */ DMG_ENTRY(8, ENMB_DMGEFF_DEFAULT),
/* Master jump */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Unknown 1 */ DMG_ENTRY(0, ENMB_DMGEFF_FREEZE),
/* Unblockable */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Hammer jump */ DMG_ENTRY(4, ENMB_DMGEFF_DEFAULT),
/* Unknown 2 */ DMG_ENTRY(0, ENMB_DMGEFF_IGNORE),
/* Deku nut */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Deku stick */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Slingshot */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Explosive */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Boomerang */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Normal arrow */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Hammer swing */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Hookshot */ DMG_ENTRY(0, ENMB_DMGREAC_STUN),
/* Kokiri sword */ DMG_ENTRY(1, ENMB_DMGREAC_DEFAULT),
/* Master sword */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Giant's Knife */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Fire arrow */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Ice arrow */ DMG_ENTRY(4, ENMB_DMGREAC_STUN_ICE),
/* Light arrow */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Unk arrow 1 */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Unk arrow 2 */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Unk arrow 3 */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Fire magic */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Ice magic */ DMG_ENTRY(3, ENMB_DMGREAC_STUN_ICE),
/* Light magic */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Shield */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Mirror Ray */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Kokiri spin */ DMG_ENTRY(1, ENMB_DMGREAC_DEFAULT),
/* Giant spin */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Master spin */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Kokiri jump */ DMG_ENTRY(2, ENMB_DMGREAC_DEFAULT),
/* Giant jump */ DMG_ENTRY(8, ENMB_DMGREAC_DEFAULT),
/* Master jump */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Unknown 1 */ DMG_ENTRY(0, ENMB_DMGREAC_FREEZE),
/* Unblockable */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
/* Hammer jump */ DMG_ENTRY(4, ENMB_DMGREAC_DEFAULT),
/* Unknown 2 */ DMG_ENTRY(0, ENMB_DMGREAC_IGNORE),
};
static InitChainEntry sInitChain[] = {
@ -605,7 +605,7 @@ void EnMb_SetupStunned(EnMb* this) {
this->state = ENMB_STATE_STUNNED;
this->actor.speed = 0.0f;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80);
if (this->damageReaction == ENMB_DMGEFF_STUN_ICE) {
if (this->damageReaction == ENMB_DMGREAC_STUN_ICE) {
this->iceEffectTimer = 40;
} else {
if (this->actor.params != ENMB_TYPE_CLUB) {
@ -1440,8 +1440,8 @@ void EnMb_CheckColliding(EnMb* this, PlayState* play) {
this->bodyCollider.base.acFlags &= ~AC_HIT;
} else if ((this->bodyCollider.base.acFlags & AC_HIT) && this->state >= ENMB_STATE_STUNNED) {
this->bodyCollider.base.acFlags &= ~AC_HIT;
if (this->actor.colChkInfo.damageReaction != ENMB_DMGEFF_IGNORE &&
this->actor.colChkInfo.damageReaction != ENMB_DMGEFF_FREEZE) {
if (this->actor.colChkInfo.damageReaction != ENMB_DMGREAC_IGNORE &&
this->actor.colChkInfo.damageReaction != ENMB_DMGREAC_FREEZE) {
if ((player->stateFlags2 & PLAYER_STATE2_7) && player->actor.parent == &this->actor) {
player->stateFlags2 &= ~PLAYER_STATE2_7;
player->actor.parent = NULL;
@ -1453,8 +1453,8 @@ void EnMb_CheckColliding(EnMb* this, PlayState* play) {
this->damageReaction = this->actor.colChkInfo.damageReaction;
this->attack = ENMB_ATTACK_NONE;
Actor_SetDropFlag(&this->actor, &this->bodyCollider.elem, false);
if (this->actor.colChkInfo.damageReaction == ENMB_DMGEFF_STUN ||
this->actor.colChkInfo.damageReaction == ENMB_DMGEFF_STUN_ICE) {
if (this->actor.colChkInfo.damageReaction == ENMB_DMGREAC_STUN ||
this->actor.colChkInfo.damageReaction == ENMB_DMGREAC_STUN_ICE) {
if (this->state != ENMB_STATE_STUNNED) {
Actor_ApplyDamage(&this->actor);
EnMb_SetupStunned(this);
@ -1485,7 +1485,7 @@ void EnMb_Update(Actor* thisx, PlayState* play) {
s32 pad;
EnMb_CheckColliding(this, play);
if (thisx->colChkInfo.damageReaction != ENMB_DMGEFF_FREEZE) {
if (thisx->colChkInfo.damageReaction != ENMB_DMGREAC_FREEZE) {
this->actionFunc(this, play);
Actor_MoveXZGravity(thisx);
Actor_UpdateBgCheckInfo(play, thisx, 40.0f, 40.0f, 70.0f,

View File

@ -109,47 +109,47 @@ static ColliderCylinderInit sCylinderInit = {
};
typedef enum EnRdDamageEffect {
/* 0x0 */ REDEAD_DMGEFF_NONE, // Does not interact with the Gibdo/Redead at all
/* 0x1 */ REDEAD_DMGEFF_HOOKSHOT, // Stuns the Gibdo/Redead
/* 0x6 */ REDEAD_DMGEFF_ICE_MAGIC = 0x6, // Does not interact with the Gibdo/Redead at all
/* 0xD */ REDEAD_DMGEFF_LIGHT_MAGIC = 0xD, // Stuns the Gibdo/Redead
/* 0xE */ REDEAD_DMGEFF_FIRE_MAGIC, // Applies a fire effect
/* 0xF */ REDEAD_DMGEFF_DAMAGE // Deals damage without stunning or applying an effect
/* 0x0 */ REDEAD_DMGREAC_NONE, // Does not interact with the Gibdo/Redead at all
/* 0x1 */ REDEAD_DMGREAC_HOOKSHOT, // Stuns the Gibdo/Redead
/* 0x6 */ REDEAD_DMGREAC_ICE_MAGIC = 0x6, // Does not interact with the Gibdo/Redead at all
/* 0xD */ REDEAD_DMGREAC_LIGHT_MAGIC = 0xD, // Stuns the Gibdo/Redead
/* 0xE */ REDEAD_DMGREAC_FIRE_MAGIC, // Applies a fire effect
/* 0xF */ REDEAD_DMGREAC_DAMAGE // Deals damage without stunning or applying an effect
} EnRdDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Deku stick */ DMG_ENTRY(2, REDEAD_DMGEFF_DAMAGE),
/* Slingshot */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Explosive */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Normal arrow */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, REDEAD_DMGEFF_DAMAGE),
/* Hookshot */ DMG_ENTRY(0, REDEAD_DMGEFF_HOOKSHOT),
/* Kokiri sword */ DMG_ENTRY(1, REDEAD_DMGEFF_DAMAGE),
/* Master sword */ DMG_ENTRY(2, REDEAD_DMGEFF_DAMAGE),
/* Giant's Knife */ DMG_ENTRY(4, REDEAD_DMGEFF_DAMAGE),
/* Fire arrow */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Ice arrow */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Light arrow */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, REDEAD_DMGEFF_FIRE_MAGIC),
/* Ice magic */ DMG_ENTRY(0, REDEAD_DMGEFF_ICE_MAGIC),
/* Light magic */ DMG_ENTRY(3, REDEAD_DMGEFF_LIGHT_MAGIC),
/* Shield */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, REDEAD_DMGEFF_DAMAGE),
/* Giant spin */ DMG_ENTRY(4, REDEAD_DMGEFF_DAMAGE),
/* Master spin */ DMG_ENTRY(2, REDEAD_DMGEFF_DAMAGE),
/* Kokiri jump */ DMG_ENTRY(2, REDEAD_DMGEFF_DAMAGE),
/* Giant jump */ DMG_ENTRY(8, REDEAD_DMGEFF_DAMAGE),
/* Master jump */ DMG_ENTRY(4, REDEAD_DMGEFF_DAMAGE),
/* Unknown 1 */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, REDEAD_DMGEFF_DAMAGE),
/* Unknown 2 */ DMG_ENTRY(0, REDEAD_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Deku stick */ DMG_ENTRY(2, REDEAD_DMGREAC_DAMAGE),
/* Slingshot */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Explosive */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Normal arrow */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, REDEAD_DMGREAC_DAMAGE),
/* Hookshot */ DMG_ENTRY(0, REDEAD_DMGREAC_HOOKSHOT),
/* Kokiri sword */ DMG_ENTRY(1, REDEAD_DMGREAC_DAMAGE),
/* Master sword */ DMG_ENTRY(2, REDEAD_DMGREAC_DAMAGE),
/* Giant's Knife */ DMG_ENTRY(4, REDEAD_DMGREAC_DAMAGE),
/* Fire arrow */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Ice arrow */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Light arrow */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(4, REDEAD_DMGREAC_FIRE_MAGIC),
/* Ice magic */ DMG_ENTRY(0, REDEAD_DMGREAC_ICE_MAGIC),
/* Light magic */ DMG_ENTRY(3, REDEAD_DMGREAC_LIGHT_MAGIC),
/* Shield */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, REDEAD_DMGREAC_DAMAGE),
/* Giant spin */ DMG_ENTRY(4, REDEAD_DMGREAC_DAMAGE),
/* Master spin */ DMG_ENTRY(2, REDEAD_DMGREAC_DAMAGE),
/* Kokiri jump */ DMG_ENTRY(2, REDEAD_DMGREAC_DAMAGE),
/* Giant jump */ DMG_ENTRY(8, REDEAD_DMGREAC_DAMAGE),
/* Master jump */ DMG_ENTRY(4, REDEAD_DMGREAC_DAMAGE),
/* Unknown 1 */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, REDEAD_DMGREAC_DAMAGE),
/* Unknown 2 */ DMG_ENTRY(0, REDEAD_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -768,7 +768,7 @@ void EnRd_SetupStunned(EnRd* this) {
Actor_PlaySfx(&this->actor, NA_SE_EN_LIGHT_ARROW_HIT);
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, COLORFILTER_INTENSITY_FLAG | 200,
COLORFILTER_BUFFLAG_OPA, 255);
} else if (this->damageReaction == REDEAD_DMGEFF_HOOKSHOT) {
} else if (this->damageReaction == REDEAD_DMGREAC_HOOKSHOT) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 200, COLORFILTER_BUFFLAG_OPA, 80);
} else {
Actor_PlaySfx(&this->actor, NA_SE_EN_LIGHT_ARROW_HIT);
@ -843,9 +843,9 @@ void EnRd_UpdateDamage(EnRd* this, PlayState* play) {
this->unk_31D = player->unk_845;
}
if ((this->damageReaction != REDEAD_DMGEFF_NONE) && (this->damageReaction != REDEAD_DMGEFF_ICE_MAGIC)) {
if (((this->damageReaction == REDEAD_DMGEFF_HOOKSHOT) ||
(this->damageReaction == REDEAD_DMGEFF_LIGHT_MAGIC)) &&
if ((this->damageReaction != REDEAD_DMGREAC_NONE) && (this->damageReaction != REDEAD_DMGREAC_ICE_MAGIC)) {
if (((this->damageReaction == REDEAD_DMGREAC_HOOKSHOT) ||
(this->damageReaction == REDEAD_DMGREAC_LIGHT_MAGIC)) &&
(this->action != REDEAD_ACTION_STUNNED)) {
Actor_ApplyDamage(&this->actor);
EnRd_SetupStunned(this);
@ -855,7 +855,7 @@ void EnRd_UpdateDamage(EnRd* this, PlayState* play) {
this->stunnedBySunsSong = false;
this->sunsSongStunTimer = 0;
if (this->damageReaction == REDEAD_DMGEFF_FIRE_MAGIC) {
if (this->damageReaction == REDEAD_DMGREAC_FIRE_MAGIC) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 80);
this->fireTimer = 40;
} else {
@ -887,8 +887,8 @@ void EnRd_Update(Actor* thisx, PlayState* play) {
gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
}
if (this->damageReaction != REDEAD_DMGEFF_ICE_MAGIC &&
((this->action != REDEAD_ACTION_RISE_FROM_COFFIN) || (this->damageReaction != REDEAD_DMGEFF_FIRE_MAGIC))) {
if (this->damageReaction != REDEAD_DMGREAC_ICE_MAGIC &&
((this->action != REDEAD_ACTION_RISE_FROM_COFFIN) || (this->damageReaction != REDEAD_DMGREAC_FIRE_MAGIC))) {
if (this->playerStunWaitTimer != 0) {
this->playerStunWaitTimer--;
}

View File

@ -49,48 +49,48 @@ void EnReeba_Stunned(EnReeba* this, PlayState* play);
void EnReeba_StunDie(EnReeba* this, PlayState* play);
typedef enum LeeverDamageEffect {
/* 0x00 */ LEEVER_DMGEFF_NONE, // used by anything that cant kill the Leever
/* 0x01 */ LEEVER_DMGEFF_UNK, // used by "unknown 1" attack
/* 0x03 */ LEEVER_DMGEFF_ICE = 3,
/* 0x0B */ LEEVER_DMGEFF_UNUSED = 11, // not used in the damage table, but still checked for.
/* 0x0C */ LEEVER_DMGEFF_BOOMERANG,
/* 0x0D */ LEEVER_DMGEFF_HOOKSHOT,
/* 0x0E */ LEEVER_DMGEFF_OTHER
/* 0x00 */ LEEVER_DMGREAC_NONE, // used by anything that cant kill the Leever
/* 0x01 */ LEEVER_DMGREAC_UNK, // used by "unknown 1" attack
/* 0x03 */ LEEVER_DMGREAC_ICE = 3,
/* 0x0B */ LEEVER_DMGREAC_UNUSED = 11, // not used in the damage table, but still checked for.
/* 0x0C */ LEEVER_DMGREAC_BOOMERANG,
/* 0x0D */ LEEVER_DMGREAC_HOOKSHOT,
/* 0x0E */ LEEVER_DMGREAC_OTHER
} LeeverDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Deku stick */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Slingshot */ DMG_ENTRY(1, LEEVER_DMGEFF_OTHER),
/* Explosive */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Boomerang */ DMG_ENTRY(1, LEEVER_DMGEFF_BOOMERANG),
/* Normal arrow */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Hammer swing */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Hookshot */ DMG_ENTRY(2, LEEVER_DMGEFF_HOOKSHOT),
/* Kokiri sword */ DMG_ENTRY(1, LEEVER_DMGEFF_OTHER),
/* Master sword */ DMG_ENTRY(4, LEEVER_DMGEFF_OTHER),
/* Giant's Knife */ DMG_ENTRY(6, LEEVER_DMGEFF_OTHER),
/* Fire arrow */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Ice arrow */ DMG_ENTRY(4, LEEVER_DMGEFF_ICE),
/* Light arrow */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Unk arrow 1 */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Unk arrow 2 */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Unk arrow 3 */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Fire magic */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Ice magic */ DMG_ENTRY(4, LEEVER_DMGEFF_ICE),
/* Light magic */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Giant spin */ DMG_ENTRY(8, LEEVER_DMGEFF_OTHER),
/* Master spin */ DMG_ENTRY(4, LEEVER_DMGEFF_OTHER),
/* Kokiri jump */ DMG_ENTRY(2, LEEVER_DMGEFF_OTHER),
/* Giant jump */ DMG_ENTRY(8, LEEVER_DMGEFF_OTHER),
/* Master jump */ DMG_ENTRY(4, LEEVER_DMGEFF_OTHER),
/* Unknown 1 */ DMG_ENTRY(0, LEEVER_DMGEFF_UNK),
/* Unblockable */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, LEEVER_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Deku stick */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Slingshot */ DMG_ENTRY(1, LEEVER_DMGREAC_OTHER),
/* Explosive */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Boomerang */ DMG_ENTRY(1, LEEVER_DMGREAC_BOOMERANG),
/* Normal arrow */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Hammer swing */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Hookshot */ DMG_ENTRY(2, LEEVER_DMGREAC_HOOKSHOT),
/* Kokiri sword */ DMG_ENTRY(1, LEEVER_DMGREAC_OTHER),
/* Master sword */ DMG_ENTRY(4, LEEVER_DMGREAC_OTHER),
/* Giant's Knife */ DMG_ENTRY(6, LEEVER_DMGREAC_OTHER),
/* Fire arrow */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Ice arrow */ DMG_ENTRY(4, LEEVER_DMGREAC_ICE),
/* Light arrow */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Unk arrow 1 */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Unk arrow 2 */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Unk arrow 3 */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Fire magic */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Ice magic */ DMG_ENTRY(4, LEEVER_DMGREAC_ICE),
/* Light magic */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Giant spin */ DMG_ENTRY(8, LEEVER_DMGREAC_OTHER),
/* Master spin */ DMG_ENTRY(4, LEEVER_DMGREAC_OTHER),
/* Kokiri jump */ DMG_ENTRY(2, LEEVER_DMGREAC_OTHER),
/* Giant jump */ DMG_ENTRY(8, LEEVER_DMGREAC_OTHER),
/* Master jump */ DMG_ENTRY(4, LEEVER_DMGREAC_OTHER),
/* Unknown 1 */ DMG_ENTRY(0, LEEVER_DMGREAC_UNK),
/* Unblockable */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, LEEVER_DMGREAC_NONE),
};
ActorProfile En_Reeba_Profile = {
@ -556,8 +556,8 @@ void EnReeba_CheckDamage(EnReeba* this, PlayState* play) {
this->stunType = LEEVER_STUN_NONE;
switch (this->actor.colChkInfo.damageReaction) {
case LEEVER_DMGEFF_UNUSED:
case LEEVER_DMGEFF_BOOMERANG:
case LEEVER_DMGREAC_UNUSED:
case LEEVER_DMGREAC_BOOMERANG:
if ((this->actor.colChkInfo.health > 1) && (this->stunType != LEEVER_STUN_OTHER)) {
this->stunType = LEEVER_STUN_OTHER;
Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
@ -567,7 +567,7 @@ void EnReeba_CheckDamage(EnReeba* this, PlayState* play) {
break;
}
FALLTHROUGH;
case LEEVER_DMGEFF_HOOKSHOT:
case LEEVER_DMGREAC_HOOKSHOT:
if ((this->actor.colChkInfo.health > 2) && (this->stunType != LEEVER_STUN_OTHER)) {
this->stunType = LEEVER_STUN_OTHER;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA,
@ -577,7 +577,7 @@ void EnReeba_CheckDamage(EnReeba* this, PlayState* play) {
break;
}
FALLTHROUGH;
case LEEVER_DMGEFF_OTHER:
case LEEVER_DMGREAC_OTHER:
this->unkDamageField = 6;
Actor_ApplyDamage(&this->actor);
if (this->actor.colChkInfo.health == 0) {
@ -593,7 +593,7 @@ void EnReeba_CheckDamage(EnReeba* this, PlayState* play) {
}
break;
case LEEVER_DMGEFF_ICE:
case LEEVER_DMGREAC_ICE:
Actor_ApplyDamage(&this->actor);
this->unkDamageField = 2;
this->stunType = LEEVER_STUN_ICE;
@ -601,7 +601,7 @@ void EnReeba_CheckDamage(EnReeba* this, PlayState* play) {
this->actionfunc = EnReeba_SetupStunned;
break;
case LEEVER_DMGEFF_UNK:
case LEEVER_DMGREAC_UNK:
if (this->stunType != LEEVER_STUN_OTHER) {
this->stunType = LEEVER_STUN_OTHER;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA,

View File

@ -213,47 +213,47 @@ static ColliderQuadInit sSwordColliderQuadInit = {
};
typedef enum StalfosDamageEffect {
/* 0x0 */ STALFOS_DMGEFF_NORMAL,
/* 0x1 */ STALFOS_DMGEFF_STUN,
/* 0x6 */ STALFOS_DMGEFF_FIREMAGIC = 6,
/* 0xD */ STALFOS_DMGEFF_SLING = 0xD,
/* 0xE */ STALFOS_DMGEFF_LIGHT,
/* 0xF */ STALFOS_DMGEFF_FREEZE
/* 0x0 */ STALFOS_DMGREAC_NORMAL,
/* 0x1 */ STALFOS_DMGREAC_STUN,
/* 0x6 */ STALFOS_DMGREAC_FIREMAGIC = 6,
/* 0xD */ STALFOS_DMGREAC_SLING = 0xD,
/* 0xE */ STALFOS_DMGREAC_LIGHT,
/* 0xF */ STALFOS_DMGREAC_FREEZE
} StalfosDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, STALFOS_DMGEFF_STUN),
/* Deku stick */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Slingshot */ DMG_ENTRY(1, STALFOS_DMGEFF_SLING),
/* Explosive */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Boomerang */ DMG_ENTRY(0, STALFOS_DMGEFF_STUN),
/* Normal arrow */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Hammer swing */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Hookshot */ DMG_ENTRY(0, STALFOS_DMGEFF_STUN),
/* Kokiri sword */ DMG_ENTRY(1, STALFOS_DMGEFF_NORMAL),
/* Master sword */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Giant's Knife */ DMG_ENTRY(4, STALFOS_DMGEFF_NORMAL),
/* Fire arrow */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Ice arrow */ DMG_ENTRY(4, STALFOS_DMGEFF_FREEZE),
/* Light arrow */ DMG_ENTRY(2, STALFOS_DMGEFF_LIGHT),
/* Unk arrow 1 */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Unk arrow 2 */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Unk arrow 3 */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Fire magic */ DMG_ENTRY(0, STALFOS_DMGEFF_FIREMAGIC),
/* Ice magic */ DMG_ENTRY(3, STALFOS_DMGEFF_FREEZE),
/* Light magic */ DMG_ENTRY(0, STALFOS_DMGEFF_LIGHT),
/* Shield */ DMG_ENTRY(0, STALFOS_DMGEFF_NORMAL),
/* Mirror Ray */ DMG_ENTRY(0, STALFOS_DMGEFF_NORMAL),
/* Kokiri spin */ DMG_ENTRY(1, STALFOS_DMGEFF_NORMAL),
/* Giant spin */ DMG_ENTRY(4, STALFOS_DMGEFF_NORMAL),
/* Master spin */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Kokiri jump */ DMG_ENTRY(2, STALFOS_DMGEFF_NORMAL),
/* Giant jump */ DMG_ENTRY(8, STALFOS_DMGEFF_NORMAL),
/* Master jump */ DMG_ENTRY(4, STALFOS_DMGEFF_NORMAL),
/* Unknown 1 */ DMG_ENTRY(0, STALFOS_DMGEFF_NORMAL),
/* Unblockable */ DMG_ENTRY(0, STALFOS_DMGEFF_NORMAL),
/* Hammer jump */ DMG_ENTRY(4, STALFOS_DMGEFF_NORMAL),
/* Unknown 2 */ DMG_ENTRY(0, STALFOS_DMGEFF_NORMAL),
/* Deku nut */ DMG_ENTRY(0, STALFOS_DMGREAC_STUN),
/* Deku stick */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Slingshot */ DMG_ENTRY(1, STALFOS_DMGREAC_SLING),
/* Explosive */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Boomerang */ DMG_ENTRY(0, STALFOS_DMGREAC_STUN),
/* Normal arrow */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Hammer swing */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Hookshot */ DMG_ENTRY(0, STALFOS_DMGREAC_STUN),
/* Kokiri sword */ DMG_ENTRY(1, STALFOS_DMGREAC_NORMAL),
/* Master sword */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Giant's Knife */ DMG_ENTRY(4, STALFOS_DMGREAC_NORMAL),
/* Fire arrow */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Ice arrow */ DMG_ENTRY(4, STALFOS_DMGREAC_FREEZE),
/* Light arrow */ DMG_ENTRY(2, STALFOS_DMGREAC_LIGHT),
/* Unk arrow 1 */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Unk arrow 2 */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Unk arrow 3 */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Fire magic */ DMG_ENTRY(0, STALFOS_DMGREAC_FIREMAGIC),
/* Ice magic */ DMG_ENTRY(3, STALFOS_DMGREAC_FREEZE),
/* Light magic */ DMG_ENTRY(0, STALFOS_DMGREAC_LIGHT),
/* Shield */ DMG_ENTRY(0, STALFOS_DMGREAC_NORMAL),
/* Mirror Ray */ DMG_ENTRY(0, STALFOS_DMGREAC_NORMAL),
/* Kokiri spin */ DMG_ENTRY(1, STALFOS_DMGREAC_NORMAL),
/* Giant spin */ DMG_ENTRY(4, STALFOS_DMGREAC_NORMAL),
/* Master spin */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Kokiri jump */ DMG_ENTRY(2, STALFOS_DMGREAC_NORMAL),
/* Giant jump */ DMG_ENTRY(8, STALFOS_DMGREAC_NORMAL),
/* Master jump */ DMG_ENTRY(4, STALFOS_DMGREAC_NORMAL),
/* Unknown 1 */ DMG_ENTRY(0, STALFOS_DMGREAC_NORMAL),
/* Unblockable */ DMG_ENTRY(0, STALFOS_DMGREAC_NORMAL),
/* Hammer jump */ DMG_ENTRY(4, STALFOS_DMGREAC_NORMAL),
/* Unknown 2 */ DMG_ENTRY(0, STALFOS_DMGREAC_NORMAL),
};
static InitChainEntry sInitChain[] = {
@ -1313,12 +1313,12 @@ void EnTest_SetupStunned(EnTest* this) {
this->skelAnime.playSpeed = 0.0f;
this->actor.speed = -4.0f;
if (this->lastDamageEffect == STALFOS_DMGEFF_LIGHT) {
if (this->lastDamageEffect == STALFOS_DMGREAC_LIGHT) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, 120, COLORFILTER_BUFFLAG_OPA, 80);
} else {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80);
if (this->lastDamageEffect == STALFOS_DMGEFF_FREEZE) {
if (this->lastDamageEffect == STALFOS_DMGREAC_FREEZE) {
this->iceTimer = 36;
} else {
Animation_PlayOnceSetSpeed(&this->skelAnime, &gStalfosFlinchFromHitFrontAnim, 0.0f);
@ -1678,8 +1678,8 @@ void EnTest_UpdateDamage(EnTest* this, PlayState* play) {
} else if (this->bodyCollider.base.acFlags & AC_HIT) {
this->bodyCollider.base.acFlags &= ~AC_HIT;
if ((this->actor.colChkInfo.damageReaction != STALFOS_DMGEFF_SLING) &&
(this->actor.colChkInfo.damageReaction != STALFOS_DMGEFF_FIREMAGIC)) {
if ((this->actor.colChkInfo.damageReaction != STALFOS_DMGREAC_SLING) &&
(this->actor.colChkInfo.damageReaction != STALFOS_DMGREAC_FIREMAGIC)) {
this->lastDamageEffect = this->actor.colChkInfo.damageReaction;
if (this->swordState >= 1) {
this->swordState = 0;
@ -1689,9 +1689,9 @@ void EnTest_UpdateDamage(EnTest* this, PlayState* play) {
Actor_SetDropFlag(&this->actor, &this->bodyCollider.elem, false);
Audio_StopSfxByPosAndId(&this->actor.projectedPos, NA_SE_EN_STAL_WARAU);
if ((this->actor.colChkInfo.damageReaction == STALFOS_DMGEFF_STUN) ||
(this->actor.colChkInfo.damageReaction == STALFOS_DMGEFF_FREEZE) ||
(this->actor.colChkInfo.damageReaction == STALFOS_DMGEFF_LIGHT)) {
if ((this->actor.colChkInfo.damageReaction == STALFOS_DMGREAC_STUN) ||
(this->actor.colChkInfo.damageReaction == STALFOS_DMGREAC_FREEZE) ||
(this->actor.colChkInfo.damageReaction == STALFOS_DMGREAC_LIGHT)) {
if (this->unk_7C8 != 0xB) {
Actor_ApplyDamage(&this->actor);
EnTest_SetupStunned(this);
@ -1723,7 +1723,7 @@ void EnTest_Update(Actor* thisx, PlayState* play) {
EnTest_UpdateDamage(this, play);
if (this->actor.colChkInfo.damageReaction != STALFOS_DMGEFF_FIREMAGIC) {
if (this->actor.colChkInfo.damageReaction != STALFOS_DMGREAC_FIREMAGIC) {
Actor_MoveXZGravity(&this->actor);
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f,
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |

View File

@ -96,45 +96,45 @@ static ColliderJntSphInit sJntSphInit = {
};
typedef enum TailpasaranDamageEffect {
/* 00 */ TAILPASARAN_DMGEFF_NONE,
/* 01 */ TAILPASARAN_DMGEFF_DEKUNUT,
/* 14 */ TAILPASARAN_DMGEFF_SHOCKING = 14, // Kills the Tailpasaran but shocks Player
/* 15 */ TAILPASARAN_DMGEFF_INSULATING // Kills the Tailpasaran and does not shock Player
/* 00 */ TAILPASARAN_DMGREAC_NONE,
/* 01 */ TAILPASARAN_DMGREAC_DEKUNUT,
/* 14 */ TAILPASARAN_DMGREAC_SHOCKING = 14, // Kills the Tailpasaran but shocks Player
/* 15 */ TAILPASARAN_DMGREAC_INSULATING // Kills the Tailpasaran and does not shock Player
} TailpasaranDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, TAILPASARAN_DMGEFF_INSULATING),
/* Slingshot */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Explosive */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(1, TAILPASARAN_DMGEFF_INSULATING),
/* Normal arrow */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, TAILPASARAN_DMGEFF_SHOCKING),
/* Hookshot */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Kokiri sword */ DMG_ENTRY(1, TAILPASARAN_DMGEFF_SHOCKING),
/* Master sword */ DMG_ENTRY(2, TAILPASARAN_DMGEFF_SHOCKING),
/* Giant's Knife */ DMG_ENTRY(4, TAILPASARAN_DMGEFF_SHOCKING),
/* Fire arrow */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Ice arrow */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Light arrow */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Ice magic */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Light magic */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, TAILPASARAN_DMGEFF_SHOCKING),
/* Giant spin */ DMG_ENTRY(4, TAILPASARAN_DMGEFF_SHOCKING),
/* Master spin */ DMG_ENTRY(2, TAILPASARAN_DMGEFF_SHOCKING),
/* Kokiri jump */ DMG_ENTRY(2, TAILPASARAN_DMGEFF_SHOCKING),
/* Giant jump */ DMG_ENTRY(8, TAILPASARAN_DMGEFF_SHOCKING),
/* Master jump */ DMG_ENTRY(4, TAILPASARAN_DMGEFF_SHOCKING),
/* Unknown 1 */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, TAILPASARAN_DMGEFF_SHOCKING),
/* Unknown 2 */ DMG_ENTRY(0, TAILPASARAN_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_DEKUNUT),
/* Deku stick */ DMG_ENTRY(2, TAILPASARAN_DMGREAC_INSULATING),
/* Slingshot */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Explosive */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(1, TAILPASARAN_DMGREAC_INSULATING),
/* Normal arrow */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, TAILPASARAN_DMGREAC_SHOCKING),
/* Hookshot */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Kokiri sword */ DMG_ENTRY(1, TAILPASARAN_DMGREAC_SHOCKING),
/* Master sword */ DMG_ENTRY(2, TAILPASARAN_DMGREAC_SHOCKING),
/* Giant's Knife */ DMG_ENTRY(4, TAILPASARAN_DMGREAC_SHOCKING),
/* Fire arrow */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Ice arrow */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Light arrow */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Ice magic */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Light magic */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, TAILPASARAN_DMGREAC_SHOCKING),
/* Giant spin */ DMG_ENTRY(4, TAILPASARAN_DMGREAC_SHOCKING),
/* Master spin */ DMG_ENTRY(2, TAILPASARAN_DMGREAC_SHOCKING),
/* Kokiri jump */ DMG_ENTRY(2, TAILPASARAN_DMGREAC_SHOCKING),
/* Giant jump */ DMG_ENTRY(8, TAILPASARAN_DMGREAC_SHOCKING),
/* Master jump */ DMG_ENTRY(4, TAILPASARAN_DMGREAC_SHOCKING),
/* Unknown 1 */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, TAILPASARAN_DMGREAC_SHOCKING),
/* Unknown 2 */ DMG_ENTRY(0, TAILPASARAN_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -606,8 +606,8 @@ void EnTp_UpdateDamage(EnTp* this, PlayState* play) {
Actor_SetDropFlagJntSph(&this->actor, &this->collider, true);
this->damageReaction = this->actor.colChkInfo.damageReaction;
if (this->actor.colChkInfo.damageReaction != TAILPASARAN_DMGEFF_NONE) {
if (this->actor.colChkInfo.damageReaction == TAILPASARAN_DMGEFF_DEKUNUT) {
if (this->actor.colChkInfo.damageReaction != TAILPASARAN_DMGREAC_NONE) {
if (this->actor.colChkInfo.damageReaction == TAILPASARAN_DMGREAC_DEKUNUT) {
phi_s4 = 1;
}
@ -686,7 +686,7 @@ void EnTp_Update(Actor* thisx, PlayState* play) {
s16 yawToWall;
if (player->stateFlags1 & PLAYER_STATE1_26) { // Shielding
this->damageReaction = TAILPASARAN_DMGEFF_NONE;
this->damageReaction = TAILPASARAN_DMGREAC_NONE;
}
if (this->actor.colChkInfo.health != 0) {
@ -737,7 +737,7 @@ void EnTp_Update(Actor* thisx, PlayState* play) {
this->actor.focus.pos = this->actor.world.pos;
if (this->damageReaction == TAILPASARAN_DMGEFF_SHOCKING) {
if (this->damageReaction == TAILPASARAN_DMGREAC_SHOCKING) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base);
}

View File

@ -98,47 +98,47 @@ static ColliderCylinderInit sCylinderInit = {
static CollisionCheckInfoInit sColChkInfoInit = { 2, 18, 32, MASS_HEAVY };
typedef enum BariDamageEffect {
/* 0x0 */ BARI_DMGEFF_NONE,
/* 0x1 */ BARI_DMGEFF_STUN,
/* 0x2 */ BARI_DMGEFF_FIRE,
/* 0x3 */ BARI_DMGEFF_ICE,
/* 0xE */ BARI_DMGEFF_SLINGSHOT = 0xE,
/* 0xF */ BARI_DMGEFF_SWORD
/* 0x0 */ BARI_DMGREAC_NONE,
/* 0x1 */ BARI_DMGREAC_STUN,
/* 0x2 */ BARI_DMGREAC_FIRE,
/* 0x3 */ BARI_DMGREAC_ICE,
/* 0xE */ BARI_DMGREAC_SLINGSHOT = 0xE,
/* 0xF */ BARI_DMGREAC_SWORD
} BariDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, BARI_DMGEFF_STUN),
/* Deku stick */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(0, BARI_DMGEFF_SLINGSHOT),
/* Explosive */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(0, BARI_DMGEFF_STUN),
/* Normal arrow */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Kokiri sword */ DMG_ENTRY(1, BARI_DMGEFF_SWORD),
/* Master sword */ DMG_ENTRY(2, BARI_DMGEFF_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, BARI_DMGEFF_SWORD),
/* Fire arrow */ DMG_ENTRY(4, BARI_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(4, BARI_DMGEFF_ICE),
/* Light arrow */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, BARI_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(4, BARI_DMGEFF_ICE),
/* Light magic */ DMG_ENTRY(0, BARI_DMGEFF_NONE),
/* Shield */ DMG_ENTRY(0, BARI_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, BARI_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, BARI_DMGEFF_NONE),
/* Giant spin */ DMG_ENTRY(4, BARI_DMGEFF_NONE),
/* Master spin */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Kokiri jump */ DMG_ENTRY(2, BARI_DMGEFF_NONE),
/* Giant jump */ DMG_ENTRY(8, BARI_DMGEFF_NONE),
/* Master jump */ DMG_ENTRY(4, BARI_DMGEFF_NONE),
/* Unknown 1 */ DMG_ENTRY(0, BARI_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, BARI_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, BARI_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, BARI_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, BARI_DMGREAC_STUN),
/* Deku stick */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(0, BARI_DMGREAC_SLINGSHOT),
/* Explosive */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(0, BARI_DMGREAC_STUN),
/* Normal arrow */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Hookshot */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Kokiri sword */ DMG_ENTRY(1, BARI_DMGREAC_SWORD),
/* Master sword */ DMG_ENTRY(2, BARI_DMGREAC_SWORD),
/* Giant's Knife */ DMG_ENTRY(4, BARI_DMGREAC_SWORD),
/* Fire arrow */ DMG_ENTRY(4, BARI_DMGREAC_FIRE),
/* Ice arrow */ DMG_ENTRY(4, BARI_DMGREAC_ICE),
/* Light arrow */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(4, BARI_DMGREAC_FIRE),
/* Ice magic */ DMG_ENTRY(4, BARI_DMGREAC_ICE),
/* Light magic */ DMG_ENTRY(0, BARI_DMGREAC_NONE),
/* Shield */ DMG_ENTRY(0, BARI_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, BARI_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, BARI_DMGREAC_NONE),
/* Giant spin */ DMG_ENTRY(4, BARI_DMGREAC_NONE),
/* Master spin */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Kokiri jump */ DMG_ENTRY(2, BARI_DMGREAC_NONE),
/* Giant jump */ DMG_ENTRY(8, BARI_DMGREAC_NONE),
/* Master jump */ DMG_ENTRY(4, BARI_DMGREAC_NONE),
/* Unknown 1 */ DMG_ENTRY(0, BARI_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, BARI_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, BARI_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, BARI_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -512,21 +512,21 @@ void EnVali_UpdateDamage(EnVali* this, PlayState* play) {
this->bodyCollider.base.acFlags &= ~AC_HIT;
Actor_SetDropFlag(&this->actor, &this->bodyCollider.elem, true);
if ((this->actor.colChkInfo.damageReaction != BARI_DMGEFF_NONE) || (this->actor.colChkInfo.damage != 0)) {
if ((this->actor.colChkInfo.damageReaction != BARI_DMGREAC_NONE) || (this->actor.colChkInfo.damage != 0)) {
if (Actor_ApplyDamage(&this->actor) == 0) {
Actor_PlaySfx(&this->actor, NA_SE_EN_BARI_DEAD);
Enemy_StartFinishingBlow(play, &this->actor);
this->actor.flags &= ~ACTOR_FLAG_ATTENTION_ENABLED;
} else if ((this->actor.colChkInfo.damageReaction != BARI_DMGEFF_STUN) &&
(this->actor.colChkInfo.damageReaction != BARI_DMGEFF_SLINGSHOT)) {
} else if ((this->actor.colChkInfo.damageReaction != BARI_DMGREAC_STUN) &&
(this->actor.colChkInfo.damageReaction != BARI_DMGREAC_SLINGSHOT)) {
Actor_PlaySfx(&this->actor, NA_SE_EN_BARI_DAMAGE);
}
if (this->actor.colChkInfo.damageReaction == BARI_DMGEFF_STUN) {
if (this->actor.colChkInfo.damageReaction == BARI_DMGREAC_STUN) {
if (this->actionFunc != EnVali_Stunned) {
EnVali_SetupStunned(this);
}
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGEFF_SWORD) {
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGREAC_SWORD) {
if (this->actionFunc != EnVali_Stunned) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 150, COLORFILTER_BUFFLAG_XLU, 30);
this->actor.params = BARI_TYPE_SWORD_DAMAGE;
@ -534,11 +534,11 @@ void EnVali_UpdateDamage(EnVali* this, PlayState* play) {
} else {
EnVali_SetupRetaliate(this);
}
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGEFF_FIRE) {
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGREAC_FIRE) {
EnVali_SetupBurnt(this);
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGEFF_ICE) {
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGREAC_ICE) {
EnVali_SetupFrozen(this);
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGEFF_SLINGSHOT) {
} else if (this->actor.colChkInfo.damageReaction == BARI_DMGREAC_SLINGSHOT) {
if (this->slingshotReactionTimer == 0) {
this->slingshotReactionTimer = 20;
}

View File

@ -163,47 +163,47 @@ static ColliderCylinderInit sTailCylinderInit = {
};
typedef enum EnWfDamageEffect {
/* 0 */ ENWF_DMGEFF_NONE,
/* 1 */ ENWF_DMGEFF_STUN,
/* 6 */ ENWF_DMGEFF_ICE_MAGIC = 6,
/* 13 */ ENWF_DMGEFF_LIGHT_MAGIC = 13,
/* 14 */ ENWF_DMGEFF_FIRE,
/* 15 */ ENWF_DMGEFF_UNDEF // used like STUN in the code, but not in the table
/* 0 */ ENWF_DMGREAC_NONE,
/* 1 */ ENWF_DMGREAC_STUN,
/* 6 */ ENWF_DMGREAC_ICE_MAGIC = 6,
/* 13 */ ENWF_DMGREAC_LIGHT_MAGIC = 13,
/* 14 */ ENWF_DMGREAC_FIRE,
/* 15 */ ENWF_DMGREAC_UNDEF // used like STUN in the code, but not in the table
} EnWfDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, ENWF_DMGEFF_STUN),
/* Deku stick */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(1, ENWF_DMGEFF_NONE),
/* Explosive */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(0, ENWF_DMGEFF_STUN),
/* Normal arrow */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(0, ENWF_DMGEFF_STUN),
/* Kokiri sword */ DMG_ENTRY(1, ENWF_DMGEFF_NONE),
/* Master sword */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Giant's Knife */ DMG_ENTRY(4, ENWF_DMGEFF_NONE),
/* Fire arrow */ DMG_ENTRY(4, ENWF_DMGEFF_FIRE),
/* Ice arrow */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Light arrow */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Fire magic */ DMG_ENTRY(4, ENWF_DMGEFF_FIRE),
/* Ice magic */ DMG_ENTRY(0, ENWF_DMGEFF_ICE_MAGIC),
/* Light magic */ DMG_ENTRY(3, ENWF_DMGEFF_LIGHT_MAGIC),
/* Shield */ DMG_ENTRY(0, ENWF_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, ENWF_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, ENWF_DMGEFF_NONE),
/* Giant spin */ DMG_ENTRY(4, ENWF_DMGEFF_NONE),
/* Master spin */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Kokiri jump */ DMG_ENTRY(2, ENWF_DMGEFF_NONE),
/* Giant jump */ DMG_ENTRY(8, ENWF_DMGEFF_NONE),
/* Master jump */ DMG_ENTRY(4, ENWF_DMGEFF_NONE),
/* Unknown 1 */ DMG_ENTRY(0, ENWF_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, ENWF_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, ENWF_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, ENWF_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, ENWF_DMGREAC_STUN),
/* Deku stick */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(1, ENWF_DMGREAC_NONE),
/* Explosive */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(0, ENWF_DMGREAC_STUN),
/* Normal arrow */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Hookshot */ DMG_ENTRY(0, ENWF_DMGREAC_STUN),
/* Kokiri sword */ DMG_ENTRY(1, ENWF_DMGREAC_NONE),
/* Master sword */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Giant's Knife */ DMG_ENTRY(4, ENWF_DMGREAC_NONE),
/* Fire arrow */ DMG_ENTRY(4, ENWF_DMGREAC_FIRE),
/* Ice arrow */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Light arrow */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Unk arrow 1 */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Unk arrow 2 */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Unk arrow 3 */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Fire magic */ DMG_ENTRY(4, ENWF_DMGREAC_FIRE),
/* Ice magic */ DMG_ENTRY(0, ENWF_DMGREAC_ICE_MAGIC),
/* Light magic */ DMG_ENTRY(3, ENWF_DMGREAC_LIGHT_MAGIC),
/* Shield */ DMG_ENTRY(0, ENWF_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, ENWF_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, ENWF_DMGREAC_NONE),
/* Giant spin */ DMG_ENTRY(4, ENWF_DMGREAC_NONE),
/* Master spin */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Kokiri jump */ DMG_ENTRY(2, ENWF_DMGREAC_NONE),
/* Giant jump */ DMG_ENTRY(8, ENWF_DMGREAC_NONE),
/* Master jump */ DMG_ENTRY(4, ENWF_DMGREAC_NONE),
/* Unknown 1 */ DMG_ENTRY(0, ENWF_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, ENWF_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, ENWF_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, ENWF_DMGREAC_NONE),
};
ActorProfile En_Wf_Profile = {
@ -1283,15 +1283,15 @@ void EnWf_UpdateDamage(EnWf* this, PlayState* play) {
this->bodyColliderCylinder.base.acFlags &= ~AC_HIT;
this->tailColliderCylinder.base.acFlags &= ~AC_HIT;
if (this->actor.colChkInfo.damageReaction != ENWF_DMGEFF_ICE_MAGIC) {
if (this->actor.colChkInfo.damageReaction != ENWF_DMGREAC_ICE_MAGIC) {
this->damageReaction = this->actor.colChkInfo.damageReaction;
Actor_SetDropFlag(&this->actor, &this->bodyColliderCylinder.elem, true);
#if OOT_VERSION >= PAL_1_0
this->slashStatus = 0;
#endif
if ((this->actor.colChkInfo.damageReaction == ENWF_DMGEFF_STUN) ||
(this->actor.colChkInfo.damageReaction == ENWF_DMGEFF_UNDEF)) {
if ((this->actor.colChkInfo.damageReaction == ENWF_DMGREAC_STUN) ||
(this->actor.colChkInfo.damageReaction == ENWF_DMGREAC_UNDEF)) {
if (this->action != WOLFOS_ACTION_STUNNED) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA,
80);
@ -1301,7 +1301,7 @@ void EnWf_UpdateDamage(EnWf* this, PlayState* play) {
} else { // LIGHT_MAGIC, FIRE, NONE
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8);
if (this->damageReaction == ENWF_DMGEFF_FIRE) {
if (this->damageReaction == ENWF_DMGREAC_FIRE) {
this->fireTimer = 40;
}
@ -1323,7 +1323,7 @@ void EnWf_Update(Actor* thisx, PlayState* play) {
EnWf_UpdateDamage(this, play);
if (this->actor.colChkInfo.damageReaction != ENWF_DMGEFF_ICE_MAGIC) {
if (this->actor.colChkInfo.damageReaction != ENWF_DMGREAC_ICE_MAGIC) {
Actor_MoveXZGravity(&this->actor);
Actor_UpdateBgCheckInfo(play, &this->actor, 32.0f, 30.0f, 60.0f,
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 |

View File

@ -170,46 +170,46 @@ static ColliderQuadInit sSwordQuadInit = {
};
typedef enum EnZfDamageEffect {
/* 0x0 */ ENZF_DMGEFF_NONE,
/* 0x1 */ ENZF_DMGEFF_STUN,
/* 0x6 */ ENZF_DMGEFF_IMMUNE = 6, // Skips damage code, but also skips the top half of Update
/* 0xD */ ENZF_DMGEFF_PROJECTILE = 0xD, // Projectiles that don't have another damageeffect
/* 0xF */ ENZF_DMGEFF_ICE = 0xF
/* 0x0 */ ENZF_DMGREAC_NONE,
/* 0x1 */ ENZF_DMGREAC_STUN,
/* 0x6 */ ENZF_DMGREAC_IMMUNE = 6, // Skips damage code, but also skips the top half of Update
/* 0xD */ ENZF_DMGREAC_PROJECTILE = 0xD, // Projectiles that don't have another damageeffect
/* 0xF */ ENZF_DMGREAC_ICE = 0xF
} EnZfDamageEffect;
static DamageTable sDamageTable = {
/* Deku nut */ DMG_ENTRY(0, ENZF_DMGEFF_STUN),
/* Deku stick */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Slingshot */ DMG_ENTRY(1, ENZF_DMGEFF_PROJECTILE),
/* Explosive */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Boomerang */ DMG_ENTRY(0, ENZF_DMGEFF_STUN),
/* Normal arrow */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Hammer swing */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Hookshot */ DMG_ENTRY(0, ENZF_DMGEFF_STUN),
/* Kokiri sword */ DMG_ENTRY(1, ENZF_DMGEFF_NONE),
/* Master sword */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Giant's Knife */ DMG_ENTRY(4, ENZF_DMGEFF_NONE),
/* Fire arrow */ DMG_ENTRY(2, ENZF_DMGEFF_PROJECTILE),
/* Ice arrow */ DMG_ENTRY(4, ENZF_DMGEFF_ICE),
/* Light arrow */ DMG_ENTRY(2, ENZF_DMGEFF_PROJECTILE),
/* Unk arrow 1 */ DMG_ENTRY(2, ENZF_DMGEFF_PROJECTILE),
/* Unk arrow 2 */ DMG_ENTRY(2, ENZF_DMGEFF_PROJECTILE),
/* Unk arrow 3 */ DMG_ENTRY(2, ENZF_DMGEFF_PROJECTILE),
/* Fire magic */ DMG_ENTRY(0, ENZF_DMGEFF_IMMUNE),
/* Ice magic */ DMG_ENTRY(3, ENZF_DMGEFF_ICE),
/* Light magic */ DMG_ENTRY(0, ENZF_DMGEFF_IMMUNE),
/* Shield */ DMG_ENTRY(0, ENZF_DMGEFF_NONE),
/* Mirror Ray */ DMG_ENTRY(0, ENZF_DMGEFF_NONE),
/* Kokiri spin */ DMG_ENTRY(1, ENZF_DMGEFF_NONE),
/* Giant spin */ DMG_ENTRY(4, ENZF_DMGEFF_NONE),
/* Master spin */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Kokiri jump */ DMG_ENTRY(2, ENZF_DMGEFF_NONE),
/* Giant jump */ DMG_ENTRY(8, ENZF_DMGEFF_NONE),
/* Master jump */ DMG_ENTRY(4, ENZF_DMGEFF_NONE),
/* Unknown 1 */ DMG_ENTRY(0, ENZF_DMGEFF_NONE),
/* Unblockable */ DMG_ENTRY(0, ENZF_DMGEFF_NONE),
/* Hammer jump */ DMG_ENTRY(4, ENZF_DMGEFF_NONE),
/* Unknown 2 */ DMG_ENTRY(0, ENZF_DMGEFF_NONE),
/* Deku nut */ DMG_ENTRY(0, ENZF_DMGREAC_STUN),
/* Deku stick */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Slingshot */ DMG_ENTRY(1, ENZF_DMGREAC_PROJECTILE),
/* Explosive */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Boomerang */ DMG_ENTRY(0, ENZF_DMGREAC_STUN),
/* Normal arrow */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Hammer swing */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Hookshot */ DMG_ENTRY(0, ENZF_DMGREAC_STUN),
/* Kokiri sword */ DMG_ENTRY(1, ENZF_DMGREAC_NONE),
/* Master sword */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Giant's Knife */ DMG_ENTRY(4, ENZF_DMGREAC_NONE),
/* Fire arrow */ DMG_ENTRY(2, ENZF_DMGREAC_PROJECTILE),
/* Ice arrow */ DMG_ENTRY(4, ENZF_DMGREAC_ICE),
/* Light arrow */ DMG_ENTRY(2, ENZF_DMGREAC_PROJECTILE),
/* Unk arrow 1 */ DMG_ENTRY(2, ENZF_DMGREAC_PROJECTILE),
/* Unk arrow 2 */ DMG_ENTRY(2, ENZF_DMGREAC_PROJECTILE),
/* Unk arrow 3 */ DMG_ENTRY(2, ENZF_DMGREAC_PROJECTILE),
/* Fire magic */ DMG_ENTRY(0, ENZF_DMGREAC_IMMUNE),
/* Ice magic */ DMG_ENTRY(3, ENZF_DMGREAC_ICE),
/* Light magic */ DMG_ENTRY(0, ENZF_DMGREAC_IMMUNE),
/* Shield */ DMG_ENTRY(0, ENZF_DMGREAC_NONE),
/* Mirror Ray */ DMG_ENTRY(0, ENZF_DMGREAC_NONE),
/* Kokiri spin */ DMG_ENTRY(1, ENZF_DMGREAC_NONE),
/* Giant spin */ DMG_ENTRY(4, ENZF_DMGREAC_NONE),
/* Master spin */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Kokiri jump */ DMG_ENTRY(2, ENZF_DMGREAC_NONE),
/* Giant jump */ DMG_ENTRY(8, ENZF_DMGREAC_NONE),
/* Master jump */ DMG_ENTRY(4, ENZF_DMGREAC_NONE),
/* Unknown 1 */ DMG_ENTRY(0, ENZF_DMGREAC_NONE),
/* Unblockable */ DMG_ENTRY(0, ENZF_DMGREAC_NONE),
/* Hammer jump */ DMG_ENTRY(4, ENZF_DMGREAC_NONE),
/* Unknown 2 */ DMG_ENTRY(0, ENZF_DMGREAC_NONE),
};
static InitChainEntry sInitChain[] = {
@ -1324,7 +1324,7 @@ void EnZf_SetupStunned(EnZf* this) {
this->hopAnimIndex = 1;
}
if (this->damageReaction == ENZF_DMGEFF_ICE) {
if (this->damageReaction == ENZF_DMGREAC_ICE) {
this->iceTimer = 36;
} else {
Animation_PlayOnceSetSpeed(&this->skelAnime, &gZfKnockedBackAnim, 0.0f);
@ -1685,7 +1685,7 @@ void EnZf_Damaged(EnZf* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) {
if (D_80B4A1B4 != -1) {
if (this->damageReaction == ENZF_DMGEFF_PROJECTILE) {
if (this->damageReaction == ENZF_DMGREAC_PROJECTILE) {
D_80B4A1B0++;
} else {
this->actor.world.rot.y = this->actor.shape.rot.y;
@ -2028,12 +2028,12 @@ void EnZf_UpdateDamage(EnZf* this, PlayState* play) {
if (((this->actor.params < ENZF_TYPE_LIZALFOS_MINIBOSS_A) /* not miniboss */ ||
(D_80B4A1B4 != this->actor.params)) &&
(this->actor.colChkInfo.damageReaction != ENZF_DMGEFF_IMMUNE)) {
(this->actor.colChkInfo.damageReaction != ENZF_DMGREAC_IMMUNE)) {
this->damageReaction = this->actor.colChkInfo.damageReaction;
Actor_SetDropFlag(&this->actor, &this->bodyCollider.elem, false);
if ((this->actor.colChkInfo.damageReaction == ENZF_DMGEFF_STUN) ||
(this->actor.colChkInfo.damageReaction == ENZF_DMGEFF_ICE)) {
if ((this->actor.colChkInfo.damageReaction == ENZF_DMGREAC_STUN) ||
(this->actor.colChkInfo.damageReaction == ENZF_DMGREAC_ICE)) {
if (this->action != ENZF_ACTION_STUNNED) {
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80);
Actor_ApplyDamage(&this->actor);
@ -2056,7 +2056,7 @@ void EnZf_UpdateDamage(EnZf* this, PlayState* play) {
} else {
if ((D_80B4A1B4 != -1) && ((this->actor.colChkInfo.health + this->actor.colChkInfo.damage) >= 4) &&
(this->actor.colChkInfo.health < 4)) {
this->damageReaction = ENZF_DMGEFF_PROJECTILE;
this->damageReaction = ENZF_DMGREAC_PROJECTILE;
}
EnZf_SetupDamaged(this);
@ -2072,7 +2072,7 @@ void EnZf_Update(Actor* thisx, PlayState* play) {
s32 pad2;
EnZf_UpdateDamage(this, play);
if (this->actor.colChkInfo.damageReaction != ENZF_DMGEFF_IMMUNE) {
if (this->actor.colChkInfo.damageReaction != ENZF_DMGREAC_IMMUNE) {
this->unk_3F8 = false;
if ((this->hopAnimIndex != 1) && (this->action != ENZF_ACTION_HOP_AWAY)) {
if (this->actor.speed != 0.0f) {