mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 20:11:47 +00:00
Obj_TryCrateDamage: return bool
This commit is contained in:
parent
5d91834c60
commit
8a54edf204
3 changed files with 14 additions and 11 deletions
|
|
@ -326,7 +326,7 @@ void Obj_BoxSideThink(mobj_t *mo);
|
||||||
void Obj_TryCrateInit(mobj_t *mo);
|
void Obj_TryCrateInit(mobj_t *mo);
|
||||||
boolean Obj_TryCrateThink(mobj_t *mo);
|
boolean Obj_TryCrateThink(mobj_t *mo);
|
||||||
void Obj_TryCrateTouch(mobj_t *special, mobj_t *toucher);
|
void Obj_TryCrateTouch(mobj_t *special, mobj_t *toucher);
|
||||||
void Obj_TryCrateDamage(mobj_t *target, mobj_t *inflictor);
|
boolean Obj_TryCrateDamage(mobj_t *target, mobj_t *inflictor);
|
||||||
boolean Obj_SA2CrateIsMetal(mobj_t *mo);
|
boolean Obj_SA2CrateIsMetal(mobj_t *mo);
|
||||||
|
|
||||||
/* Lavender Shrine Spears */
|
/* Lavender Shrine Spears */
|
||||||
|
|
|
||||||
|
|
@ -197,11 +197,11 @@ struct Box : AnyBox
|
||||||
|
|
||||||
bool damage_valid(const Mobj* inflictor) const { return !fuse && Mobj::valid(inflictor); }
|
bool damage_valid(const Mobj* inflictor) const { return !fuse && Mobj::valid(inflictor); }
|
||||||
|
|
||||||
void damage(Mobj* inflictor)
|
bool damage(Mobj* inflictor)
|
||||||
{
|
{
|
||||||
if (!damage_valid(inflictor))
|
if (!damage_valid(inflictor))
|
||||||
{
|
{
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
inflictor->hitlag(3);
|
inflictor->hitlag(3);
|
||||||
|
|
@ -230,6 +230,8 @@ struct Box : AnyBox
|
||||||
|
|
||||||
debris(inflictor);
|
debris(inflictor);
|
||||||
update_nearby();
|
update_nearby();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -321,19 +323,19 @@ struct Crate : Box<SA2CrateConfig>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void damage(Toucher* inflictor)
|
bool damage(Toucher* inflictor)
|
||||||
{
|
{
|
||||||
if (!Box::damage_valid(inflictor))
|
if (!Box::damage_valid(inflictor))
|
||||||
{
|
{
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (metal() && !inflictor->boosting())
|
if (metal() && !inflictor->boosting())
|
||||||
{
|
{
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Box::damage(inflictor);
|
return Box::damage(inflictor);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -385,9 +387,11 @@ void Obj_TryCrateTouch(mobj_t* special, mobj_t* toucher)
|
||||||
static_cast<AnyBox*>(special)->visit([&](auto box) { box->touch(static_cast<Toucher*>(toucher)); });
|
static_cast<AnyBox*>(special)->visit([&](auto box) { box->touch(static_cast<Toucher*>(toucher)); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void Obj_TryCrateDamage(mobj_t* target, mobj_t* inflictor)
|
boolean Obj_TryCrateDamage(mobj_t* target, mobj_t* inflictor)
|
||||||
{
|
{
|
||||||
static_cast<AnyBox*>(target)->visit([&](auto box) { box->damage(static_cast<Toucher*>(inflictor)); });
|
bool c = false;
|
||||||
|
static_cast<AnyBox*>(target)->visit([&](auto box) { c = box->damage(static_cast<Toucher*>(inflictor)); });
|
||||||
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean Obj_SA2CrateIsMetal(mobj_t* mobj)
|
boolean Obj_SA2CrateIsMetal(mobj_t* mobj)
|
||||||
|
|
|
||||||
|
|
@ -2883,8 +2883,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
|
|
||||||
case MT_SA2_CRATE:
|
case MT_SA2_CRATE:
|
||||||
case MT_ICECAPBLOCK:
|
case MT_ICECAPBLOCK:
|
||||||
Obj_TryCrateDamage(target, inflictor);
|
return Obj_TryCrateDamage(target, inflictor);
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue