From bcf8ae4d84c8c0a6295f1539a39a22f699e2397b Mon Sep 17 00:00:00 2001 From: terminx Date: Thu, 18 Apr 2019 17:23:30 +0000 Subject: [PATCH] Revert "Clean up clip.cpp struct casting including but not limited to r7466 changes" git-svn-id: https://svn.eduke32.com/eduke32@7577 1a8010ca-5511-0410-912e-c29ae57300e0 --- source/build/src/clip.cpp | 99 ++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/source/build/src/clip.cpp b/source/build/src/clip.cpp index 99cb9f51b..2573015e4 100644 --- a/source/build/src/clip.cpp +++ b/source/build/src/clip.cpp @@ -554,10 +554,10 @@ int32_t clipmoveboxtracenum = 3; int clipinsidebox(vec2_t *vect, int wallnum, int walldist) { int const r = walldist << 1; - auto const wal1 = (uwalltype const *)(wall + wallnum); - vec2_t const v1 = { wal1->x + walldist - vect->x, wal1->y + walldist - vect->y }; - auto const wal2 = (uwalltype const *)(wall + wal1->point2); - vec2_t v2 = { wal2->x + walldist - vect->x, wal2->y + walldist - vect->y }; + 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; @@ -646,7 +646,7 @@ int32_t clipsprite_try(uspritetype const * const spr, int32_t xmin, int32_t ymin return 1; if (EDUKE32_PREDICT_TRUE(clipspritenum < MAXCLIPNUM)) - clipspritelist[clipspritenum++] = spr-(uspritetype const *)sprite; + clipspritelist[clipspritenum++] = spr-(uspritetype *)sprite; //initprintf("%d: clip sprite[%d]\n",clipspritenum,j); return 1; } @@ -713,7 +713,7 @@ int32_t clipsprite_initindex(int32_t curidx, uspritetype const * const curspr, i for (k=clipinfo[curidx].qbeg; k<=clipinfo[curidx].qend; k++) { int32_t const j = sectq[k]; - auto const sec = (usectortype *)(sector + j); + auto const sec = (usectortype *)§or[j]; int32_t const startwall = sec->wallptr, endwall = startwall+sec->wallnum; @@ -731,7 +731,7 @@ int32_t clipsprite_initindex(int32_t curidx, uspritetype const * const curspr, i { wal->x *= flipx; wal->y *= flipy; - rotatepoint(zerovec, *(vec2_t const *)wal, rotang, (vec2_t *)wal); + rotatepoint(zerovec, *(vec2_t *) wal, rotang, (vec2_t *) wal); } wal->x += curspr->x; @@ -779,7 +779,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) { - auto const sec2 = (usectortype const *)(sector + 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 @@ -936,7 +936,7 @@ static void clipupdatesector(int32_t const x, int32_t const y, int16_t * const s if (inside_p(x, y, sectlist[sectcnt])) SET_AND_RETURN(*sectnum, sectlist[sectcnt]); - auto const sec = (usectortype const *)(sector + sectlist[sectcnt]); + auto const sec = §or[sectlist[sectcnt]]; int const startwall = sec->wallptr; int const endwall = sec->wallptr + sec->wallnum; @@ -957,7 +957,7 @@ static void clipupdatesector(int32_t const x, int32_t const y, int16_t * const s SET_AND_RETURN(*sectnum, sectlist[sectcnt]); } - auto const sec = (usectortype const *)(sector + sectlist[sectcnt]); + auto const sec = §or[sectlist[sectcnt]]; int const startwall = sec->wallptr; int const endwall = sec->wallptr + sec->wallnum; @@ -1028,7 +1028,7 @@ int32_t clipmove(vec3_t * const pos, int16_t * const sectnum, int32_t xvect, int engineSetClipMap(&origmapinfo, &clipmapinfo); } - curspr = (uspritetype const *)(sprite + clipspritelist[clipspritecnt]); + curspr = (uspritetype *)&sprite[clipspritelist[clipspritecnt]]; clipshapeidx = clipshape_idx_for_sprite(curspr, clipshapeidx); if (clipshapeidx < 0) @@ -1047,14 +1047,14 @@ int32_t clipmove(vec3_t * const pos, int16_t * const sectnum, int32_t xvect, int ////////// Walls ////////// - auto const sec = (usectortype const *)(sector + dasect); + auto const sec = (usectortype *)§or[dasect]; int const startwall = sec->wallptr; int const endwall = startwall + sec->wallnum; for (native_t j=startwall; jpoint2); + 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)) @@ -1080,7 +1080,7 @@ int32_t clipmove(vec3_t * const pos, int16_t * const sectnum, int32_t xvect, int { if (wal->nextsector>=0) { - auto const sec2 = (usectortype const *)(sector + wal->nextsector); + const usectortype *sec2 = (usectortype *)§or[wal->nextsector]; clipmove_tweak_pos(pos, diff.x, diff.y, p1.x, p1.y, p2.x, p2.y, &v.x, &v.y); @@ -1133,7 +1133,7 @@ int32_t clipmove(vec3_t * const pos, int16_t * const sectnum, int32_t xvect, int if (clipyou == 0) { - auto const sec2 = (usectortype const *)(sector + wal->nextsector); + const usectortype *sec2 = (usectortype *)§or[wal->nextsector]; int32_t daz2 = getceilzofslope(wal->nextsector, v.x, v.y); clipyou = ((sec2->ceilingstat&1) == 0 && @@ -1146,7 +1146,7 @@ int32_t clipmove(vec3_t * const pos, int16_t * const sectnum, int32_t xvect, int if (!curspr && clipsectcnt != 1 && inside(pos->x, pos->y, dasect) == 1) break; else if (clipyou) { - int16_t const objtype = curspr ? (int16_t)(curspr - (uspritetype const *)sprite) + 49152 : j + 32768; + int16_t const objtype = curspr ? (int16_t)(curspr - (uspritetype *)sprite) + 49152 : j + 32768; //Add 2 boxes at endpoints int32_t bsz = walldist; if (diff.x < 0) bsz = -bsz; @@ -1185,7 +1185,7 @@ int32_t clipmove(vec3_t * const pos, int16_t * const sectnum, int32_t xvect, int #endif for (int j=headspritesect[dasect]; j>=0; j=nextspritesect[j]) { - auto const spr = (uspritetype const *)(sprite + j); + const uspritetype *const spr = (uspritetype *)&sprite[j]; const int32_t cstat = spr->cstat; if ((cstat&dasprclipmask) == 0) @@ -1401,11 +1401,14 @@ int32_t pushmove(vec3_t * const vect, int16_t * const sectnum, do { + const uwalltype *wal; + const usectortype *sec; + int32_t startwall, endwall; #if 0 // Push FACE sprites for (i=headspritesect[clipsectorlist[clipsectcnt]]; i>=0; i=nextspritesect[i]) { - auto const spr = (uspritetype const *)(sprite + i); + spr = &sprite[i]; if (((spr->cstat&48) != 0) && ((spr->cstat&48) != 48)) continue; if ((spr->cstat&dasprclipmask) == 0) continue; @@ -1434,15 +1437,13 @@ int32_t pushmove(vec3_t * const vect, int16_t * const sectnum, } } #endif - auto const sec = (usectortype const *)(sector + clipsectorlist[clipsectcnt]); - int32_t startwall, endwall; + sec = (usectortype *)§or[clipsectorlist[clipsectcnt]]; if (dir > 0) startwall = sec->wallptr, endwall = startwall + sec->wallnum; else endwall = sec->wallptr, startwall = endwall + sec->wallnum; - uwalltype const * wal; - for (i=startwall, wal=(uwalltype const *)(wall + startwall); i!=endwall; i+=dir, wal+=dir) + for (i=startwall, wal=(uwalltype *)&wall[startwall]; i!=endwall; i+=dir, wal+=dir) if (clipinsidebox((vec2_t *)vect, i, walldist-4) == 1) { j = 0; @@ -1450,7 +1451,7 @@ int32_t pushmove(vec3_t * const vect, int16_t * const sectnum, if (wal->cstat&dawalclipmask) j = 1; if (j == 0) { - auto const sec2 = (usectortype const *)(sector + wal->nextsector); + const usectortype *const sec2 = (usectortype *)§or[wal->nextsector]; int32_t daz2; //Find closest point on wall (dax, day) to (vect->x, vect->y) @@ -1528,7 +1529,7 @@ void getzrange(const vec3_t *pos, int16_t sectnum, int32_t mcf=-1; #endif - uspritetype const * curspr = NULL; // non-NULL when handling sprite with sector-like clipping + uspritetype *curspr=NULL; // non-NULL when handling sprite with sector-like clipping int32_t curidx=-1, clipspritecnt = 0; //Extra walldist for sprites on sector lines @@ -1571,7 +1572,7 @@ restart_grand: { // one set of clip-sprite sectors completed, prepare the next - curspr = (uspritetype const *)(sprite + clipspritelist[clipspritecnt]); + curspr = (uspritetype *)&sprite[clipspritelist[clipspritecnt]]; curidx = clipshape_idx_for_sprite(curspr, curidx); if (curidx < 0) @@ -1594,7 +1595,7 @@ restart_grand: getzsofslope(k,pos->x,pos->y,&daz,&daz2); int32_t fz, cz; getzsofslope(sectq[clipinfo[curidx].qend],pos->x,pos->y,&cz,&fz); - int const hitwhat = (curspr-(uspritetype const *)sprite)+49152; + const int hitwhat = (curspr-(uspritetype *)sprite)+49152; if ((sector[k].ceilingstat&1)==0) { @@ -1611,7 +1612,7 @@ restart_grand: #endif ////////// Walls ////////// - auto const startsec = (usectortype const *)(sector + clipsectorlist[clipsectcnt]); + const sectortype *const startsec = §or[clipsectorlist[clipsectcnt]]; const int startwall = startsec->wallptr; const int endwall = startwall + startsec->wallnum; @@ -1621,8 +1622,8 @@ restart_grand: if (k >= 0) { - auto const v1 = *(vec2_t const *)(wall + j); - auto const v2 = *(vec2_t const *)(wall + wall[j].point2); + vec2_t const v1 = *(vec2_t *)&wall[j]; + vec2_t const v2 = *(vec2_t *)&wall[wall[j].point2]; if ((v1.x < xmin && (v2.x < xmin)) || (v1.x > xmax && v2.x > xmax) || (v1.y < ymin && (v2.y < ymin)) || (v1.y > ymax && v2.y > ymax)) @@ -1638,7 +1639,7 @@ restart_grand: continue; if (wall[j].cstat&dawalclipmask) continue; // XXX? - auto const sec = (usectortype const *)(sector + k); + const sectortype *const sec = §or[k]; #ifdef HAVE_CLIPSHAPE_FEATURE if (curspr) @@ -1680,7 +1681,7 @@ restart_grand: #ifdef HAVE_CLIPSHAPE_FEATURE if (curspr) { - int32_t fz,cz, hitwhat=(curspr-(uspritetype const *)sprite)+49152; + int32_t fz,cz, hitwhat=(curspr-(uspritetype *)sprite)+49152; getzsofslope(sectq[clipinfo[curidx].qend],pos->x,pos->y,&cz,&fz); if ((sec->ceilingstat&1)==0) @@ -1742,10 +1743,10 @@ restart_grand: int32_t clipyou = 0; #ifdef HAVE_CLIPSHAPE_FEATURE - if (clipsprite_try((uspritetype const *)(sprite + j), xmin,ymin, xmax,ymax)) + if (clipsprite_try((uspritetype *)&sprite[j], xmin,ymin, xmax,ymax)) continue; #endif - auto v1 = *(vec2_t const *)(sprite + j); + vec2_t v1 = *(vec2_t *)&sprite[j]; switch (cstat & CSTAT_SPRITE_ALIGNMENT_MASK) { @@ -1764,7 +1765,7 @@ restart_grand: case CSTAT_SPRITE_ALIGNMENT_WALL: { vec2_t v2; - get_wallspr_points((uspritetype const *)(sprite + j), &v1.x, &v2.x, &v1.y, &v2.y); + get_wallspr_points((uspritetype *)&sprite[j], &v1.x, &v2.x, &v1.y, &v2.y); if (clipinsideboxline(pos->x,pos->y,v1.x,v1.y,v2.x,v2.y,walldist+1) != 0) { @@ -1784,7 +1785,7 @@ restart_grand: continue; vec2_t v2, v3, v4; - get_floorspr_points((uspritetype const *)(sprite + j), pos->x, pos->y, &v1.x, &v2.x, &v3.x, &v4.x, + get_floorspr_points((uspritetype const *) &sprite[j], pos->x, pos->y, &v1.x, &v2.x, &v3.x, &v4.x, &v1.y, &v2.y, &v3.y, &v4.y); vec2_t const da = { mulscale14(sintable[(sprite[j].ang - 256 + 512) & 2047], walldist + 4), @@ -1993,8 +1994,8 @@ static int32_t hitscan_trysector(const vec3_t *sv, const usectortype *sec, hitda if (stat&2) { - auto const wal = (uwalltype const *)(wall + sec->wallptr); - auto const wal2 = (uwalltype const *)(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; @@ -2029,9 +2030,9 @@ static int32_t hitscan_trysector(const vec3_t *sv, const usectortype *sec, hitda { if (tmp==NULL) { - if (inside(x1,y1,sec-(usectortype const *)sector) == 1) + if (inside(x1,y1,sec-(usectortype *)sector) == 1) { - hit_set(hit, sec-(usectortype const *)sector, -1, -1, x1, y1, z1); + hit_set(hit, sec-(usectortype *)sector, -1, -1, x1, y1, z1); hitscan_hitsectcf = (how+1)>>1; } } @@ -2043,8 +2044,8 @@ static int32_t hitscan_trysector(const vec3_t *sv, const usectortype *sec, hitda if (!thislastsec) { - if (inside(x1,y1,sec-(usectortype const *)sector) == 1) - hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype const *)sprite, x1, y1, z1); + if (inside(x1,y1,sec-(usectortype *)sector) == 1) + hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype *)sprite, x1, y1, z1); } #ifdef HAVE_CLIPSHAPE_FEATURE else @@ -2053,7 +2054,7 @@ static int32_t hitscan_trysector(const vec3_t *sv, const usectortype *sec, hitda { if (inside(x1,y1,sectq[i]) == 1) { - hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype const *)sprite, x1, y1, z1); + hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype *)sprite, x1, y1, z1); break; } } @@ -2111,7 +2112,7 @@ restart_grand: if (!curspr) engineSetClipMap(&origmapinfo, &clipmapinfo); // replace sector and wall with clip map - curspr = (uspritetype *)(sprite + clipspritelist[clipspritecnt]); + curspr = (uspritetype *)&sprite[clipspritelist[clipspritecnt]]; curidx = clipshape_idx_for_sprite(curspr, curidx); if (curidx < 0) @@ -2130,7 +2131,7 @@ restart_grand: } #endif dasector = clipsectorlist[tempshortcnt]; - auto const sec = (usectortype const *)(sector + dasector); + auto const * sec = (usectortype *)§or[dasector]; i = 1; #ifdef HAVE_CLIPSHAPE_FEATURE @@ -2154,8 +2155,8 @@ restart_grand: startwall = sec->wallptr; endwall = startwall + sec->wallnum; for (z=startwall; zpoint2); + auto const wal = (uwalltype *)&wall[z]; + auto const wal2 = (uwalltype *)&wall[wal->point2]; int const nextsector = wal->nextsector; @@ -2190,7 +2191,7 @@ restart_grand: { if (wal->cstat&dawalclipmask) { - hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype const *)sprite, intx, inty, intz); + hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype *)sprite, intx, inty, intz); continue; } @@ -2200,7 +2201,7 @@ restart_grand: // ceil cz daz daz2 fz floor if ((cz <= intz && intz <= daz) || (daz2 <= intz && intz <= fz)) { - hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype const *)sprite, intx, inty, intz); + hit_set(hit, curspr->sectnum, -1, curspr-(uspritetype *)sprite, intx, inty, intz); continue; } }