mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- got rid of the picnum CreateActor variant.
This commit is contained in:
parent
a6600c200f
commit
91ee3cb7b8
5 changed files with 6 additions and 23 deletions
|
@ -182,7 +182,6 @@ void getglobalz(DDukeActor* s);
|
|||
void OnEvent(int id, int pnum = -1, DDukeActor* snum = nullptr, int dist = -1);
|
||||
void setFromSpawnRec(DDukeActor* act, SpawnRec* info);
|
||||
|
||||
DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, int s_pn, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat);
|
||||
DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, PClassActor* cls, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat);
|
||||
DDukeActor* SpawnActor(sectortype* whatsectp, const DVector3& pos, PClassActor* cls, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat = -1);
|
||||
|
||||
|
|
|
@ -1112,7 +1112,7 @@ static void operateweapon(int snum, ESyncBits actions)
|
|||
zvel -= 4;
|
||||
}
|
||||
|
||||
auto spawned = CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, DTILE_HEAVYHBOMB, -16, DVector2(0.140625, 0.140625),
|
||||
auto spawned = CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, DukePipeBombClass, -16, DVector2(0.140625, 0.140625),
|
||||
p->GetActor()->spr.Angles.Yaw, vel + p->hbomb_hold_delay * 2, zvel, pact, STAT_ACTOR);
|
||||
|
||||
if (isNam())
|
||||
|
|
|
@ -1760,7 +1760,7 @@ static void operateweapon(int snum, ESyncBits actions, sectortype* psectp)
|
|||
zvel -= 4;
|
||||
}
|
||||
|
||||
auto spawned = CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, RTILE_DYNAMITE, -16, DVector2(0.140625, 0.140625),
|
||||
auto spawned = CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, RedneckDynamiteClass, -16, DVector2(0.140625, 0.140625),
|
||||
p->GetActor()->spr.Angles.Yaw, (vel + p->hbomb_hold_delay * 2) * 2, zvel, pact, 1);
|
||||
|
||||
if (spawned)
|
||||
|
@ -2152,7 +2152,7 @@ static void operateweapon(int snum, ESyncBits actions, sectortype* psectp)
|
|||
zvel -= 4;
|
||||
}
|
||||
|
||||
CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, RTILE_POWDERKEG, -16, DVector2(0.140625, 0.140625), p->GetActor()->spr.Angles.Yaw, vel * 2, zvel, pact, 1);
|
||||
CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, RedneckPowderKegClass, -16, DVector2(0.140625, 0.140625), p->GetActor()->spr.Angles.Yaw, vel * 2, zvel, pact, 1);
|
||||
}
|
||||
p->kickback_pic++;
|
||||
if (p->kickback_pic > 20)
|
||||
|
|
|
@ -342,7 +342,7 @@ void operateweapon_ww(int snum, ESyncBits actions)
|
|||
zvel -= 4;
|
||||
}
|
||||
|
||||
auto spawned = CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, DTILE_HEAVYHBOMB, -16, DVector2(0.140625, 0.140625),
|
||||
auto spawned = CreateActor(p->cursector, p->GetActor()->getPosWithOffsetZ() + p->GetActor()->spr.Angles.Yaw.ToVector() * 16, DukePipeBombClass, -16, DVector2(0.140625, 0.140625),
|
||||
p->GetActor()->spr.Angles.Yaw, vel + p->hbomb_hold_delay * 2, zvel, pact, 1);
|
||||
|
||||
if (spawned)
|
||||
|
|
|
@ -76,26 +76,20 @@ void setFromSpawnRec(DDukeActor* act, SpawnRec* info)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, PClassActor* clstype, int s_pn, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat)
|
||||
DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, PClassActor* clstype, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat)
|
||||
{
|
||||
// sector pointer must be strictly validated here or the engine will crash.
|
||||
if (whatsectp == nullptr || !validSectorIndex(sectindex(whatsectp))) return nullptr;
|
||||
// spawning out of range sprites will also crash.
|
||||
if (clstype == nullptr && (s_pn < 0 || s_pn >= MAXTILES)) return nullptr;
|
||||
if (clstype == nullptr) return nullptr;
|
||||
SpawnRec* info = nullptr;
|
||||
|
||||
if (!clstype)
|
||||
{
|
||||
info = spawnMap.CheckKey(s_pn);
|
||||
if (info) clstype = static_cast<PClassActor*>(info->cls);
|
||||
}
|
||||
if (s_stat < 0) s_stat = clstype ? GetDefaultByType(clstype)->spr.statnum : 0;
|
||||
|
||||
auto act = static_cast<DDukeActor*>(InsertActor(clstype? clstype : RUNTIME_CLASS(DDukeActor), whatsectp, s_stat));
|
||||
if (act == nullptr) return nullptr;
|
||||
SetupGameVarsForActor(act);
|
||||
|
||||
if (s_pn != -1) act->spr.picnum = s_pn; // if -1 use the class default.
|
||||
setFromSpawnRec(act, info);
|
||||
act->spr.pos = pos;
|
||||
act->spr.shade = s_shd;
|
||||
|
@ -149,16 +143,6 @@ DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, PClassActor*
|
|||
|
||||
}
|
||||
|
||||
DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, int s_pn, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat)
|
||||
{
|
||||
return CreateActor(whatsectp, pos, nullptr, s_pn, s_shd, scale, s_ang, s_vel, s_zvel, s_ow, s_stat);
|
||||
}
|
||||
|
||||
DDukeActor* CreateActor(sectortype* whatsectp, const DVector3& pos, PClassActor* cls, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat)
|
||||
{
|
||||
return CreateActor(whatsectp, pos, cls, -1, s_shd, scale, s_ang, s_vel, s_zvel, s_ow, s_stat);
|
||||
}
|
||||
|
||||
DDukeActor* SpawnActor(sectortype* whatsectp, const DVector3& pos, PClassActor* cls, int8_t s_shd, const DVector2& scale, DAngle s_ang, double s_vel, double s_zvel, DDukeActor* s_ow, int8_t s_stat)
|
||||
{
|
||||
auto actor = CreateActor(whatsectp, pos, cls, s_shd, scale, s_ang, s_vel, s_zvel, s_ow, s_stat);
|
||||
|
|
Loading…
Reference in a new issue