mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-28 12:30:46 +00:00
engine: add yax_getflorzofslope() and yax_getceilzofslope()
This commit is contained in:
parent
5e677d6089
commit
e2d79b4682
3 changed files with 31 additions and 23 deletions
|
@ -963,6 +963,9 @@ void getzsofslopeptr(usectorptr_t sec, int32_t dax, int32_t day,
|
|||
int32_t *ceilz, int32_t *florz) ATTRIBUTE((nonnull(1,4,5)));
|
||||
void yax_getzsofslope(int sectNum, int playerX, int playerY, int32_t* pCeilZ, int32_t* pFloorZ);
|
||||
|
||||
int32_t yax_getceilzofslope(int const sectnum, vec2_t const vect);
|
||||
int32_t yax_getflorzofslope(int const sectnum, vec2_t const vect);
|
||||
|
||||
static FORCE_INLINE int32_t getceilzofslope(int16_t sectnum, int32_t dax, int32_t day)
|
||||
{
|
||||
return getceilzofslopeptr((usectorptr_t)§or[sectnum], dax, day);
|
||||
|
|
|
@ -5298,6 +5298,30 @@ floor:
|
|||
else if (!didFloor)
|
||||
goto floor;
|
||||
}
|
||||
|
||||
int32_t yax_getceilzofslope(int const sectnum, vec2_t const vect)
|
||||
{
|
||||
if ((sector[sectnum].ceilingstat&512)==0)
|
||||
{
|
||||
int const nsect = yax_getneighborsect(vect.x, vect.y, sectnum, YAX_CEILING);
|
||||
if (nsect >= 0)
|
||||
return getcorrectceilzofslope(nsect, vect.x, vect.y);
|
||||
}
|
||||
|
||||
return getcorrectceilzofslope(sectnum, vect.x, vect.y);
|
||||
}
|
||||
|
||||
int32_t yax_getflorzofslope(int const sectnum, vec2_t const vect)
|
||||
{
|
||||
if ((sector[sectnum].floorstat&512)==0)
|
||||
{
|
||||
int const nsect = yax_getneighborsect(vect.x, vect.y, sectnum, YAX_FLOOR);
|
||||
if (nsect >= 0)
|
||||
return getcorrectflorzofslope(nsect, vect.x, vect.y);
|
||||
}
|
||||
|
||||
return getcorrectflorzofslope(sectnum, vect.x, vect.y);
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
|
|
|
@ -627,23 +627,13 @@ static inline void VM_FacePlayer(int const shift)
|
|||
: getangle(vm.pPlayer->pos.x - vm.pSprite->x, vm.pPlayer->pos.y - vm.pSprite->y));
|
||||
}
|
||||
|
||||
////////// TROR get*zofslope //////////
|
||||
// These rather belong into the engine.
|
||||
|
||||
static int32_t VM_GetCeilZOfSlope(void)
|
||||
{
|
||||
vec2_t const vect = vm.pSprite->pos.vec2;
|
||||
int const sectnum = vm.pSprite->sectnum;
|
||||
|
||||
#ifdef YAX_ENABLE
|
||||
if ((sector[sectnum].ceilingstat&512)==0)
|
||||
{
|
||||
int const nsect = yax_getneighborsect(vect.x, vect.y, sectnum, YAX_CEILING);
|
||||
if (nsect >= 0)
|
||||
return getceilzofslope(nsect, vect.x, vect.y);
|
||||
}
|
||||
#endif
|
||||
return getceilzofslope(sectnum, vect.x, vect.y);
|
||||
return yax_getceilzofslope(sectnum, vect);
|
||||
|
||||
}
|
||||
|
||||
#ifndef EDUKE32_STANDALONE
|
||||
|
@ -652,20 +642,11 @@ static int32_t VM_GetFlorZOfSlope(void)
|
|||
vec2_t const vect = vm.pSprite->pos.vec2;
|
||||
int const sectnum = vm.pSprite->sectnum;
|
||||
|
||||
#ifdef YAX_ENABLE
|
||||
if ((sector[sectnum].floorstat&512)==0)
|
||||
{
|
||||
int const nsect = yax_getneighborsect(vect.x, vect.y, sectnum, YAX_FLOOR);
|
||||
if (nsect >= 0)
|
||||
return getflorzofslope(nsect, vect.x, vect.y);
|
||||
}
|
||||
#endif
|
||||
return getflorzofslope(sectnum, vect.x, vect.y);
|
||||
return yax_getflorzofslope(sectnum, vect);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
////////////////////
|
||||
|
||||
static int32_t A_GetWaterZOffset(int spritenum);
|
||||
|
||||
GAMEEXEC_STATIC void VM_Move(void)
|
||||
|
|
Loading…
Reference in a new issue