mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- half of GetActorHeight
This commit is contained in:
parent
f78ecd22a4
commit
ae79f3e3c3
10 changed files with 23 additions and 20 deletions
|
@ -220,6 +220,10 @@ Collision MoveCreature(DExhumedActor* nSprite);
|
|||
Collision MoveCreatureWithCaution(DExhumedActor* actor);
|
||||
DVector3 WheresMyMouth(int nPlayer, sectortype** sectnum);
|
||||
int GetActorHeight(DExhumedActor* nSprite);
|
||||
double GetActorHeightF(DExhumedActor* nSprite)
|
||||
{
|
||||
return GetActorHeight(nSprite) * zinttoworld;
|
||||
}
|
||||
DExhumedActor* insertActor(sectortype* s, int st);
|
||||
DExhumedActor* GrabBody();
|
||||
DExhumedActor* GrabBodyGunSprite();
|
||||
|
|
|
@ -211,8 +211,8 @@ void AIAnubis::Tick(RunListEvent* ev)
|
|||
|
||||
if (pTarget != nullptr) // NOTE: nTarget can be -1. this check wasn't in original code. TODO: demo compatiblity?
|
||||
{
|
||||
if (cansee(ap->int_pos().X, ap->int_pos().Y, ap->int_pos().Z - GetActorHeight(ap), ap->sector(),
|
||||
pTarget->int_pos().X, pTarget->int_pos().Y, pTarget->int_pos().Z - GetActorHeight(pTarget), pTarget->sector()))
|
||||
if (cansee(ap->spr.pos.plusZ(-GetActorHeightF(ap)), ap->sector(),
|
||||
pTarget->spr.pos.plusZ(-GetActorHeightF(pTarget)), pTarget->sector()))
|
||||
{
|
||||
ap->spr.xvel = 0;
|
||||
ap->spr.yvel = 0;
|
||||
|
|
|
@ -569,11 +569,11 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n
|
|||
sBullet.pActor = insertActor(pActor->sector(), 200);
|
||||
sBullet.pActor->set_int_ang(nAngle);
|
||||
|
||||
int nHeight = GetActorHeight(pTarget);
|
||||
double nHeight = GetActorHeightF(pTarget);
|
||||
|
||||
assert(pTarget->sector());
|
||||
|
||||
BulletHitsSprite(&sBullet, pActor, pTarget, pTarget->spr.pos.plusZ(-(nHeight >> 1) * zinttoworld), pTarget->sector());
|
||||
BulletHitsSprite(&sBullet, pActor, pTarget, pTarget->spr.pos.plusZ(-(nHeight * 0.5)), pTarget->sector());
|
||||
DeleteActor(sBullet.pActor);
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -368,9 +368,8 @@ void AIFish::Tick(RunListEvent* ev)
|
|||
else
|
||||
{
|
||||
PlotCourseToSprite(pActor, pTargetActor);
|
||||
int nHeight = GetActorHeight(pActor) >> 1;
|
||||
|
||||
int z = abs(pTargetActor->int_pos().Z - pActor->int_pos().Z);
|
||||
double nHeight = GetActorHeightF(pActor) * 0.5;
|
||||
double z = fabs(pTargetActor->spr.pos.Z - pActor->spr.pos.Z);
|
||||
|
||||
if (z <= nHeight)
|
||||
{
|
||||
|
|
|
@ -202,8 +202,8 @@ void AIMummy::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (RandomBit() && pTarget)
|
||||
{
|
||||
if (cansee(pActor->int_pos().X, pActor->int_pos().Y, pActor->int_pos().Z - GetActorHeight(pActor), pActor->sector(),
|
||||
pTarget->int_pos().X, pTarget->int_pos().Y, pTarget->int_pos().Z - GetActorHeight(pTarget), pTarget->sector()))
|
||||
if (cansee(pActor->spr.pos.plusZ(-GetActorHeightF(pActor)), pActor->sector(),
|
||||
pTarget->spr.pos.plusZ(-GetActorHeightF(pTarget)), pTarget->sector()))
|
||||
{
|
||||
pActor->nAction = 3;
|
||||
pActor->nFrame = 0;
|
||||
|
|
|
@ -1848,7 +1848,7 @@ DExhumedActor* BuildObject(DExhumedActor* pActor, int nOjectType, int nHitag)
|
|||
// in-game destructable wall mounted screen
|
||||
void ExplodeScreen(DExhumedActor* pActor)
|
||||
{
|
||||
pActor->add_int_z(-GetActorHeight(pActor) / 2);
|
||||
pActor->spr.pos.Z -= GetActorHeightF(pActor) * 0.5;
|
||||
|
||||
for (int i = 0; i < 30; i++) {
|
||||
BuildSpark(pActor, 0); // shoot out blue orbs
|
||||
|
|
|
@ -163,7 +163,7 @@ void MoveRaToEnemy(int nPlayer)
|
|||
pTarget = PlayerList[nPlayer].pActor;
|
||||
}
|
||||
|
||||
pActor->spr.pos = pTarget->spr.pos.plusZ(-GetActorHeight(pTarget) * zinttoworld);
|
||||
pActor->spr.pos = pTarget->spr.pos.plusZ(-GetActorHeightF(pTarget));
|
||||
|
||||
if (pActor->sector() != pTarget->sector()) {
|
||||
ChangeActorSect(pActor, pTarget->sector());
|
||||
|
|
|
@ -423,8 +423,8 @@ void AIScorp::Effect(RunListEvent* ev, DExhumedActor* pTarget, int mode)
|
|||
{
|
||||
pActor->nCount = 45;
|
||||
|
||||
if (cansee(pActor->int_pos().X, pActor->int_pos().Y, pActor->int_pos().Z - GetActorHeight(pActor), pActor->sector(),
|
||||
pTarget->int_pos().X, pTarget->int_pos().Y, pTarget->int_pos().Z - GetActorHeight(pTarget), pTarget->sector()))
|
||||
if (cansee(pActor->spr.pos.plusZ(-GetActorHeightF(pActor)), pActor->sector(),
|
||||
pTarget->spr.pos.plusZ(-GetActorHeightF(pTarget)), pTarget->sector()))
|
||||
{
|
||||
pActor->spr.xvel = 0;
|
||||
pActor->spr.yvel = 0;
|
||||
|
|
|
@ -108,7 +108,7 @@ void BuildSoul(DExhumedActor* pSet)
|
|||
pActor->spr.xvel = 0;
|
||||
pActor->spr.yvel = 0;
|
||||
pActor->spr.zvel = (-256) - RandomSize(10);
|
||||
pActor->spr.pos = DVector3(pSet->spr.pos.X, pSet->spr.pos.Y, RandomSize(8) + 32 + pActor->sector()->ceilingz - GetActorHeight(pActor) * zinttoworld);
|
||||
pActor->spr.pos = DVector3(pSet->spr.pos.XY(), RandomSize(8) + 32 + pActor->sector()->ceilingz - GetActorHeightF(pActor));
|
||||
|
||||
//pActor->spr.hitag = nSet;
|
||||
pActor->pTarget = pSet;
|
||||
|
@ -148,7 +148,7 @@ void AISoul::Tick(RunListEvent* ev)
|
|||
pActor->spr.cstat = 0;
|
||||
pActor->spr.yrepeat = 1;
|
||||
pActor->spr.xrepeat = 1;
|
||||
pActor->spr.pos = pSet->spr.pos.plusZ(-((GetActorHeight(pSet) >> 1) * zinttoworld));
|
||||
pActor->spr.pos = pSet->spr.pos.plusZ(-GetActorHeightF(pSet) * 0.5);
|
||||
ChangeActorSect(pActor, pSet->sector());
|
||||
return;
|
||||
}
|
||||
|
@ -570,9 +570,9 @@ void AISet::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (nFlag & 0x80)
|
||||
{
|
||||
pActor->add_int_z(-GetActorHeight(pActor));
|
||||
pActor->spr.pos.Z -= GetActorHeightF(pActor);
|
||||
BuildCreatureChunk(pActor, seq_GetSeqPicnum(kSeqSet, 76, 0));
|
||||
pActor->add_int_z(GetActorHeight(pActor));
|
||||
pActor->spr.pos.Z += GetActorHeightF(pActor);
|
||||
}
|
||||
|
||||
if (bVal)
|
||||
|
|
|
@ -98,7 +98,7 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
{
|
||||
if (spp->spr.cstat & CSTAT_SPRITE_YFLIP)
|
||||
{
|
||||
spp->set_int_z(spp->sector()->int_ceilingz() + GetActorHeight(spp));
|
||||
spp->spr.pos.Z = spp->sector()->ceilingz + GetActorHeightF(spp);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -208,7 +208,7 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
{
|
||||
spp->spr.cstat ^= CSTAT_SPRITE_YFLIP;
|
||||
spp->spr.zvel = 1;
|
||||
spp->set_int_z(pSector->int_ceilingz() + GetActorHeight(spp));
|
||||
spp->spr.pos.Z = spp->sector()->ceilingz+ GetActorHeightF(spp);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -286,7 +286,7 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
&& !((spp->sector()->ceilingstat) & CSTAT_SECTOR_SKY))
|
||||
{
|
||||
spp->spr.cstat |= CSTAT_SPRITE_YFLIP;
|
||||
spp->set_int_z(GetActorHeight(spp) + spp->sector()->int_ceilingz());
|
||||
spp->spr.pos.Z = spp->sector()->ceilingz + GetActorHeightF(spp);
|
||||
spp->spr.zvel = 0;
|
||||
|
||||
spp->nAction = 1;
|
||||
|
|
Loading…
Reference in a new issue