mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-30 21:31:03 +00:00
- makeitfall
This commit is contained in:
parent
291edcdab8
commit
4e675ea322
4 changed files with 21 additions and 18 deletions
|
@ -48,7 +48,7 @@ This file is a combination of code from the following sources:
|
||||||
|
|
||||||
BEGIN_DUKE_NS
|
BEGIN_DUKE_NS
|
||||||
|
|
||||||
int adjustfall(spritetype* s, int c);
|
int adjustfall(DDukeActor* s, int c);
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
@ -5030,10 +5030,10 @@ void getglobalz(DDukeActor* actor)
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
void makeitfall(int i)
|
void makeitfall(DDukeActor* actor)
|
||||||
{
|
{
|
||||||
spritetype *s = &sprite[i];
|
auto s = &actor->s;
|
||||||
int hz,lz,c;
|
int c;
|
||||||
|
|
||||||
if( fi.floorspace(s->sectnum) )
|
if( fi.floorspace(s->sectnum) )
|
||||||
c = 0;
|
c = 0;
|
||||||
|
@ -5046,18 +5046,21 @@ void makeitfall(int i)
|
||||||
|
|
||||||
if (isRRRA())
|
if (isRRRA())
|
||||||
{
|
{
|
||||||
c = adjustfall(s, c); // this accesses sprite indices and cannot be in shared code. Should be done better.
|
c = adjustfall(actor, c); // this accesses sprite indices and cannot be in shared code. Should be done better.
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( s->statnum == STAT_ACTOR || s->statnum == STAT_PLAYER || s->statnum == STAT_ZOMBIEACTOR || s->statnum == STAT_STANDABLE ) )
|
if ((s->statnum == STAT_ACTOR || s->statnum == STAT_PLAYER || s->statnum == STAT_ZOMBIEACTOR || s->statnum == STAT_STANDABLE))
|
||||||
getzrange(s->x,s->y,s->z-(FOURSLEIGHT),s->sectnum,&hittype[i].ceilingz,&hz,&hittype[i].floorz,&lz,127L,CLIPMASK0);
|
{
|
||||||
|
Collision c;
|
||||||
|
getzrange_ex(s->x, s->y, s->z - (FOURSLEIGHT), s->sectnum, &actor->ceilingz, c, &actor->floorz, c, 127, CLIPMASK0);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hittype[i].ceilingz = sector[s->sectnum].ceilingz;
|
actor->ceilingz = sector[s->sectnum].ceilingz;
|
||||||
hittype[i].floorz = sector[s->sectnum].floorz;
|
actor->floorz = sector[s->sectnum].floorz;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( s->z < hittype[i].floorz-(FOURSLEIGHT) )
|
if( s->z < actor->floorz-(FOURSLEIGHT) )
|
||||||
{
|
{
|
||||||
if( sector[s->sectnum].lotag == 2 && s->zvel > 3122 )
|
if( sector[s->sectnum].lotag == 2 && s->zvel > 3122 )
|
||||||
s->zvel = 3144;
|
s->zvel = 3144;
|
||||||
|
@ -5066,9 +5069,9 @@ void makeitfall(int i)
|
||||||
else s->zvel = 6144;
|
else s->zvel = 6144;
|
||||||
s->z += s->zvel;
|
s->z += s->zvel;
|
||||||
}
|
}
|
||||||
if( s->z >= hittype[i].floorz-(FOURSLEIGHT) )
|
if( s->z >= actor->floorz-(FOURSLEIGHT) )
|
||||||
{
|
{
|
||||||
s->z = hittype[i].floorz - FOURSLEIGHT;
|
s->z = actor->floorz - FOURSLEIGHT;
|
||||||
s->zvel = 0;
|
s->zvel = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3734,11 +3734,11 @@ void moveeffectors_r(void) //STATNUM 3
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
int adjustfall(spritetype *s, int c)
|
int adjustfall(DDukeActor *actor, int c)
|
||||||
{
|
{
|
||||||
if ((s->picnum == BIKERB || s->picnum == CHEERB) && c == gc)
|
if ((actor->s.picnum == BIKERB || actor->s.picnum == CHEERB) && c == gc)
|
||||||
c = gc>>2;
|
c = gc>>2;
|
||||||
else if (s->picnum == BIKERBV2 && c == gc)
|
else if (actor->s.picnum == BIKERBV2 && c == gc)
|
||||||
c = gc>>3;
|
c = gc>>3;
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,9 +259,9 @@ inline void execute(DDukeActor* act, int a, int b)
|
||||||
execute(act->GetIndex(), a, b);
|
execute(act->GetIndex(), a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void makeitfall(DDukeActor* act)
|
inline void makeitfall(int act)
|
||||||
{
|
{
|
||||||
makeitfall(act->GetIndex());
|
makeitfall(&hittype[act]);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void getglobalz(int act)
|
inline void getglobalz(int act)
|
||||||
|
|
|
@ -170,7 +170,7 @@ void doorders(const CompletionFunc& func);
|
||||||
|
|
||||||
void LoadActor(int i, int p, int x);
|
void LoadActor(int i, int p, int x);
|
||||||
void execute(int s, int p, int d);
|
void execute(int s, int p, int d);
|
||||||
void makeitfall(int s);
|
void makeitfall(DDukeActor* s);
|
||||||
int furthestangle(int snum, int angDiv);
|
int furthestangle(int snum, int angDiv);
|
||||||
void getglobalz(DDukeActor* s);
|
void getglobalz(DDukeActor* s);
|
||||||
void OnEvent(int id, int pnum = -1, int snum = -1, int dist = -1);
|
void OnEvent(int id, int pnum = -1, int snum = -1, int dist = -1);
|
||||||
|
|
Loading…
Reference in a new issue