mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 01:11:44 +00:00
usectortype/uwalltype cleanup in clip.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7466 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
8cbada19cf
commit
25236d3d74
1 changed files with 28 additions and 30 deletions
|
@ -549,11 +549,11 @@ int32_t clipmoveboxtracenum = 3;
|
|||
//
|
||||
int clipinsidebox(vec2_t *vect, int wallnum, int walldist)
|
||||
{
|
||||
int const r = walldist << 1;
|
||||
uwalltype const *wal = (uwalltype *)&wall[wallnum];
|
||||
vec2_t const v1 = { wal->x + walldist - vect->x, wal->y + walldist - vect->y };
|
||||
wal = (uwalltype *)&wall[wal->point2];
|
||||
vec2_t v2 = { wal->x + walldist - vect->x, wal->y + walldist - vect->y };
|
||||
int const r = walldist << 1;
|
||||
auto const * wal = (uwalltype *)&wall[wallnum];
|
||||
vec2_t const v1 = { wal->x + walldist - vect->x, wal->y + walldist - vect->y };
|
||||
wal = (uwalltype *)&wall[wal->point2];
|
||||
vec2_t v2 = { wal->x + walldist - vect->x, wal->y + walldist - vect->y };
|
||||
|
||||
if (((v1.x < 0) && (v2.x < 0)) || ((v1.y < 0) && (v2.y < 0)) || ((v1.x >= r) && (v2.x >= r)) || ((v1.y >= r) && (v2.y >= r)))
|
||||
return 0;
|
||||
|
@ -709,19 +709,18 @@ int32_t clipsprite_initindex(int32_t curidx, uspritetype const * const curspr, i
|
|||
// init sectors for this index
|
||||
for (k=clipinfo[curidx].qbeg; k<=clipinfo[curidx].qend; k++)
|
||||
{
|
||||
const int32_t j = sectq[k];
|
||||
usectortype *const sec = (usectortype *)§or[j];
|
||||
const int32_t startwall = sec->wallptr, endwall = startwall+sec->wallnum;
|
||||
int32_t const j = sectq[k];
|
||||
auto const sec = (usectortype *)§or[j];
|
||||
|
||||
int32_t w;
|
||||
uwalltype *wal;
|
||||
int32_t const startwall = sec->wallptr, endwall = startwall+sec->wallnum;
|
||||
|
||||
sec->floorz = daz + mulscale22(scalez, CM_FLOORZ(j));
|
||||
sec->ceilingz = daz + mulscale22(scalez, CM_CEILINGZ(j));
|
||||
//initprintf("sec %d: f=%d, c=%d\n", j, sec->floorz, sec->ceilingz);
|
||||
|
||||
for (w=startwall, wal=(uwalltype *)&wall[startwall]; w<endwall; w++, wal++)
|
||||
for (int w=startwall; w<endwall; w++)
|
||||
{
|
||||
auto wal=(uwalltype *)&wall[startwall];
|
||||
wal->x = mulscale22(scalex, CM_WALL_X(w));
|
||||
wal->y = mulscale22(scaley, CM_WALL_Y(w));
|
||||
|
||||
|
@ -781,7 +780,7 @@ static FORCE_INLINE void clipmove_tweak_pos(const vec3_t *pos, int32_t gx, int32
|
|||
static int32_t check_floor_curb(int32_t dasect, int32_t nextsect, int32_t flordist, int32_t posz,
|
||||
int32_t dax, int32_t day)
|
||||
{
|
||||
usectortype const * const sec2 = (usectortype *)§or[nextsect];
|
||||
auto const sec2 = (usectortype *)§or[nextsect];
|
||||
int32_t const daz2 = getflorzofslope(nextsect, dax, day);
|
||||
|
||||
return ((sec2->floorstat&1) == 0 && // parallaxed floor curbs don't clip
|
||||
|
@ -965,9 +964,6 @@ int32_t clipmove(vec3_t *pos, int16_t *sectnum, int32_t xvect, int32_t yvect,
|
|||
|
||||
do
|
||||
{
|
||||
const uwalltype *wal;
|
||||
const usectortype *sec;
|
||||
|
||||
#ifdef HAVE_CLIPSHAPE_FEATURE
|
||||
if (clipsectcnt>=clipsectnum)
|
||||
{
|
||||
|
@ -1004,14 +1000,14 @@ int32_t clipmove(vec3_t *pos, int16_t *sectnum, int32_t xvect, int32_t yvect,
|
|||
|
||||
////////// Walls //////////
|
||||
|
||||
sec = (usectortype *)§or[dasect];
|
||||
int const startwall = sec->wallptr;
|
||||
int const endwall = startwall+sec->wallnum;
|
||||
wal=(uwalltype *)&wall[startwall];
|
||||
auto const sec = (usectortype *)§or[dasect];
|
||||
int const startwall = sec->wallptr;
|
||||
int const endwall = startwall + sec->wallnum;
|
||||
|
||||
for (native_t j=startwall; j<endwall; j++, wal++)
|
||||
for (native_t j=startwall; j<endwall; j++)
|
||||
{
|
||||
const uwalltype *const wal2 = (uwalltype *)&wall[wal->point2];
|
||||
auto const wal = (uwalltype *)&wall[j];
|
||||
auto const wal2 = (uwalltype *)&wall[wal->point2];
|
||||
|
||||
if ((wal->x < clipMin.x && wal2->x < clipMin.x) || (wal->x > clipMax.x && wal2->x > clipMax.x) ||
|
||||
(wal->y < clipMin.y && wal2->y < clipMin.y) || (wal->y > clipMax.y && wal2->y > clipMax.y))
|
||||
|
@ -1952,8 +1948,8 @@ static int32_t hitscan_trysector(const vec3_t *sv, const usectortype *sec, hitda
|
|||
|
||||
if (stat&2)
|
||||
{
|
||||
const uwalltype *const wal = (uwalltype *)&wall[sec->wallptr];
|
||||
const uwalltype *const wal2 = (uwalltype *)&wall[wal->point2];
|
||||
auto const wal = (uwalltype *)&wall[sec->wallptr];
|
||||
auto const wal2 = (uwalltype *)&wall[wal->point2];
|
||||
int32_t j, dax=wal2->x-wal->x, day=wal2->y-wal->y;
|
||||
|
||||
i = nsqrtasm(uhypsq(dax,day)); if (i == 0) return 1; //continue;
|
||||
|
@ -2059,8 +2055,6 @@ restart_grand:
|
|||
clipspritecnt = clipspritenum = 0;
|
||||
do
|
||||
{
|
||||
const usectortype *sec;
|
||||
const uwalltype *wal;
|
||||
int32_t dasector, z, startwall, endwall;
|
||||
|
||||
#ifdef HAVE_CLIPSHAPE_FEATURE
|
||||
|
@ -2088,7 +2082,8 @@ restart_grand:
|
|||
tempshortcnt = 0;
|
||||
}
|
||||
#endif
|
||||
dasector = clipsectorlist[tempshortcnt]; sec = (usectortype *)§or[dasector];
|
||||
dasector = clipsectorlist[tempshortcnt];
|
||||
auto const * sec = (usectortype *)§or[dasector];
|
||||
|
||||
i = 1;
|
||||
#ifdef HAVE_CLIPSHAPE_FEATURE
|
||||
|
@ -2110,14 +2105,17 @@ restart_grand:
|
|||
////////// Walls //////////
|
||||
|
||||
startwall = sec->wallptr; endwall = startwall + sec->wallnum;
|
||||
for (z=startwall,wal=(uwalltype *)&wall[startwall]; z<endwall; z++,wal++)
|
||||
for (z=startwall; z<endwall; z++)
|
||||
{
|
||||
const int32_t nextsector = wal->nextsector;
|
||||
const uwalltype *const wal2 = (uwalltype *)&wall[wal->point2];
|
||||
int32_t daz2, zz;
|
||||
auto const wal = (uwalltype *)&wall[z];
|
||||
auto const wal2 = (uwalltype *)&wall[wal->point2];
|
||||
|
||||
int const nextsector = wal->nextsector;
|
||||
|
||||
if (curspr && nextsector<0) continue;
|
||||
|
||||
int32_t daz2, zz;
|
||||
|
||||
x1 = wal->x; y1 = wal->y; x2 = wal2->x; y2 = wal2->y;
|
||||
|
||||
if ((coord_t)(x1-sv->x)*(y2-sv->y) < (coord_t)(x2-sv->x)*(y1-sv->y)) continue;
|
||||
|
|
Loading…
Reference in a new issue