mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-23 16:32:36 +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);
|
||||
boolean Obj_TryCrateThink(mobj_t *mo);
|
||||
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);
|
||||
|
||||
/* Lavender Shrine Spears */
|
||||
|
|
|
|||
|
|
@ -197,11 +197,11 @@ struct Box : AnyBox
|
|||
|
||||
bool damage_valid(const Mobj* inflictor) const { return !fuse && Mobj::valid(inflictor); }
|
||||
|
||||
void damage(Mobj* inflictor)
|
||||
bool damage(Mobj* inflictor)
|
||||
{
|
||||
if (!damage_valid(inflictor))
|
||||
{
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
inflictor->hitlag(3);
|
||||
|
|
@ -230,6 +230,8 @@ struct Box : AnyBox
|
|||
|
||||
debris(inflictor);
|
||||
update_nearby();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
@ -321,19 +323,19 @@ struct Crate : Box<SA2CrateConfig>
|
|||
}
|
||||
}
|
||||
|
||||
void damage(Toucher* inflictor)
|
||||
bool damage(Toucher* inflictor)
|
||||
{
|
||||
if (!Box::damage_valid(inflictor))
|
||||
{
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
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)); });
|
||||
}
|
||||
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -2883,8 +2883,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
|
||||
case MT_SA2_CRATE:
|
||||
case MT_ICECAPBLOCK:
|
||||
Obj_TryCrateDamage(target, inflictor);
|
||||
return true;
|
||||
return Obj_TryCrateDamage(target, inflictor);
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue