mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 17:01:51 +00:00
Various cleanup and rewrites.
- make allocatepermanenttile() return intptr_t - the usual git-svn-id: https://svn.eduke32.com/eduke32@2697 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
a485ee8ca0
commit
2fc6e2e6b0
5 changed files with 77 additions and 76 deletions
|
@ -575,7 +575,7 @@ void set_picsizanm(int32_t picnum, int16_t dasizx, int16_t dasizy, int32_t daanm
|
|||
int32_t loadpics(const char *filename, int32_t askedsize);
|
||||
void loadtile(int16_t tilenume);
|
||||
int32_t qloadkvx(int32_t voxindex, const char *filename);
|
||||
int32_t allocatepermanenttile(int16_t tilenume, int32_t xsiz, int32_t ysiz);
|
||||
intptr_t allocatepermanenttile(int16_t tilenume, int32_t xsiz, int32_t ysiz);
|
||||
//void copytilepiece(int32_t tilenume1, int32_t sx1, int32_t sy1, int32_t xsiz, int32_t ysiz, int32_t tilenume2, int32_t sx2, int32_t sy2);
|
||||
void makepalookup(int32_t palnum, const char *remapbuf, int8_t r, int8_t g, int8_t b, char dastat);
|
||||
//void setvgapalette(void);
|
||||
|
|
|
@ -7233,8 +7233,8 @@ static void dosetaspect(void)
|
|||
for (i=0; i<xdimen; i++)
|
||||
{
|
||||
j = (x&65535); k = (x>>16); x += xinc;
|
||||
if (j != 0) j = mulscale16((int32_t)radarang[k+1]-(int32_t)radarang[k],j);
|
||||
radarang2[i] = (int16_t)(((int32_t)radarang[k]+j)>>6);
|
||||
if (j != 0) j = mulscale16(radarang[k+1]-radarang[k], j);
|
||||
radarang2[i] = (int16_t)((radarang[k]+j)>>6);
|
||||
}
|
||||
for (i=1; i<(int32_t)(sizeof(distrecip)/sizeof(distrecip[0])); i++)
|
||||
distrecip[i] = divscale20(xdimen,i);
|
||||
|
@ -10537,9 +10537,9 @@ void loadtile(int16_t tilenume)
|
|||
//
|
||||
// allocatepermanenttile
|
||||
//
|
||||
int32_t allocatepermanenttile(int16_t tilenume, int32_t xsiz, int32_t ysiz)
|
||||
intptr_t allocatepermanenttile(int16_t tilenume, int32_t xsiz, int32_t ysiz)
|
||||
{
|
||||
int32_t j, dasiz;
|
||||
int32_t dasiz;
|
||||
|
||||
if ((xsiz <= 0) || (ysiz <= 0) || ((unsigned)tilenume >= (unsigned)MAXTILES))
|
||||
return(0);
|
||||
|
@ -10549,14 +10549,7 @@ int32_t allocatepermanenttile(int16_t tilenume, int32_t xsiz, int32_t ysiz)
|
|||
walock[tilenume] = 255;
|
||||
allocache(&waloff[tilenume],dasiz,&walock[tilenume]);
|
||||
|
||||
tilesizx[tilenume] = xsiz;
|
||||
tilesizy[tilenume] = ysiz;
|
||||
picanm[tilenume] = 0;
|
||||
|
||||
j = 15; while ((j > 1) && (pow2long[j] > xsiz)) j--;
|
||||
picsiz[tilenume] = ((uint8_t)j);
|
||||
j = 15; while ((j > 1) && (pow2long[j] > ysiz)) j--;
|
||||
picsiz[tilenume] += ((uint8_t)(j<<4));
|
||||
set_picsizanm(tilenume, xsiz, ysiz, 0);
|
||||
|
||||
return(waloff[tilenume]);
|
||||
}
|
||||
|
|
|
@ -3491,11 +3491,8 @@ void G_HandleMirror(int32_t x, int32_t y, int32_t z, int32_t a, int32_t horiz, i
|
|||
|
||||
void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
||||
{
|
||||
int32_t j,fz,cz;
|
||||
int32_t i;
|
||||
DukePlayer_t *p = g_player[snum].ps;
|
||||
int16_t tang;
|
||||
int32_t tiltcx,tiltcy,tiltcs=0; // JBF 20030807
|
||||
DukePlayer_t *const p = g_player[snum].ps;
|
||||
|
||||
int32_t tmpyx=yxaspect, tmpvr=viewingrange;
|
||||
|
||||
|
@ -3517,12 +3514,12 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
setaspect_new();
|
||||
}
|
||||
|
||||
// smoothratio = min(max(smoothratio,0),65536);
|
||||
smoothratio = min(max((totalclock - ototalclock) * (65536 / 4),0),65536);
|
||||
smoothratio = clamp((totalclock-ototalclock)*(65536/4), 0, 65536);
|
||||
|
||||
visibility = (int32_t)(p->visibility * (numplayers > 1 ? 1.f : r_ambientlightrecip));
|
||||
|
||||
if (ud.pause_on || g_player[snum].ps->on_crane > -1) smoothratio = 65536;
|
||||
if (ud.pause_on || g_player[snum].ps->on_crane > -1)
|
||||
smoothratio = 65536;
|
||||
|
||||
ud.camerasect = p->cursectnum;
|
||||
|
||||
|
@ -3531,13 +3528,14 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
|
||||
if (ud.camerasprite >= 0)
|
||||
{
|
||||
spritetype *s = &sprite[ud.camerasprite];
|
||||
spritetype *const s = &sprite[ud.camerasprite];
|
||||
|
||||
// XXX: what?
|
||||
if (s->yvel < 0) s->yvel = -100;
|
||||
else if (s->yvel > 199) s->yvel = 300;
|
||||
|
||||
ud.cameraang = actor[ud.camerasprite].tempang+
|
||||
mulscale16((int32_t)(((s->ang+1024-actor[ud.camerasprite].tempang)&2047)-1024),smoothratio);
|
||||
ud.cameraang = actor[ud.camerasprite].tempang +
|
||||
mulscale16(((s->ang+1024-actor[ud.camerasprite].tempang)&2047)-1024, smoothratio);
|
||||
|
||||
G_SE40(smoothratio);
|
||||
|
||||
|
@ -3554,15 +3552,20 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
}
|
||||
else
|
||||
{
|
||||
i = divscale22(1,sprite[p->i].yrepeat+28);
|
||||
int32_t j,fz,cz;
|
||||
int32_t tiltcx, tiltcy, tiltcs=0; // JBF 20030807
|
||||
|
||||
const int32_t vr = divscale22(1,sprite[p->i].yrepeat+28);
|
||||
const int32_t software_screen_tilting =
|
||||
(getrendermode() == 0 && ((ud.screen_tilting && p->rotscrnang) || !ud.detail));
|
||||
|
||||
if (!r_usenewaspect)
|
||||
{
|
||||
setaspect(i, yxaspect);
|
||||
setaspect(vr, yxaspect);
|
||||
}
|
||||
else
|
||||
{
|
||||
tmpvr = i;
|
||||
tmpvr = vr;
|
||||
tmpyx = (65536*ydim*8)/(xdim*5);
|
||||
|
||||
setaspect(mulscale16(tmpvr,viewingrange), yxaspect);
|
||||
|
@ -3575,14 +3578,12 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
allocache(&waloff[TILE_SAVESHOT],200*320,&walock[TILE_SAVESHOT]);
|
||||
|
||||
if (getrendermode()==0)
|
||||
setviewtotile(TILE_SAVESHOT,200L,320L);
|
||||
setviewtotile(TILE_SAVESHOT, 200, 320);
|
||||
}
|
||||
else if (getrendermode() == 0 && ((ud.screen_tilting && p->rotscrnang) || ud.detail==0))
|
||||
else if (software_screen_tilting)
|
||||
{
|
||||
int32_t oviewingrange = viewingrange; // save it from setviewtotile()
|
||||
|
||||
if (ud.screen_tilting) tang = p->rotscrnang;
|
||||
else tang = 0;
|
||||
const int16_t tang = (ud.screen_tilting) ? p->rotscrnang : 0;
|
||||
|
||||
if (xres <= 320 && yres <= 240)
|
||||
{
|
||||
|
@ -3608,8 +3609,8 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
if ((tang&1023) == 512)
|
||||
{
|
||||
//Block off unscreen section of 90ø tilted screen
|
||||
j = ((tiltcx-(60*tiltcs))>>(1-ud.detail));
|
||||
for (i=((60*tiltcs)>>(1-ud.detail))-1; i>=0; i--)
|
||||
j = ((tiltcx-(60*tiltcs))>>!ud.detail);
|
||||
for (i=((60*tiltcs)>>!ud.detail)-1; i>=0; i--)
|
||||
{
|
||||
startumost[i] = 1;
|
||||
startumost[i+j] = 1;
|
||||
|
@ -3619,8 +3620,10 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
}
|
||||
|
||||
i = (tang&511);
|
||||
if (i > 256) i = 512-i;
|
||||
if (i > 256)
|
||||
i = 512-i;
|
||||
i = sintable[i+512]*8 + sintable[i]*5;
|
||||
|
||||
// setaspect(i>>1, yxaspect);
|
||||
setaspect(mulscale16(oviewingrange,i>>1), yxaspect);
|
||||
|
||||
|
@ -3630,37 +3633,39 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
else if (getrendermode() > 0 && ud.screen_tilting /*&& (p->rotscrnang || p->orotscrnang)*/)
|
||||
{
|
||||
#ifdef USE_OPENGL
|
||||
setrollangle(p->orotscrnang + mulscale16(((p->rotscrnang - p->orotscrnang + 1024)&2047)-1024,smoothratio));
|
||||
setrollangle(p->orotscrnang + mulscale16(((p->rotscrnang - p->orotscrnang + 1024)&2047)-1024, smoothratio));
|
||||
#endif
|
||||
p->orotscrnang = p->rotscrnang; // JBF: save it for next time
|
||||
}
|
||||
|
||||
{
|
||||
vec3_t cam = { p->opos.x+mulscale16((int32_t)(p->pos.x-p->opos.x),smoothratio),
|
||||
p->opos.y+mulscale16((int32_t)(p->pos.y-p->opos.y),smoothratio),
|
||||
p->opos.z+mulscale16((int32_t)(p->pos.z-p->opos.z),smoothratio)
|
||||
vec3_t cam = { p->opos.x+mulscale16(p->pos.x-p->opos.x, smoothratio),
|
||||
p->opos.y+mulscale16(p->pos.y-p->opos.y, smoothratio),
|
||||
p->opos.z+mulscale16(p->pos.z-p->opos.z, smoothratio)
|
||||
};
|
||||
|
||||
Bmemcpy(&ud.camera, &cam, sizeof(vec3_t));
|
||||
ud.cameraang = p->oang+mulscale16((int32_t)(((p->ang+1024-p->oang)&2047)-1024),smoothratio);
|
||||
ud.camerahoriz = p->ohoriz+p->ohorizoff+mulscale16((int32_t)(p->horiz+p->horizoff-p->ohoriz-p->ohorizoff),smoothratio);
|
||||
ud.cameraang = p->oang + mulscale16(((p->ang+1024-p->oang)&2047)-1024, smoothratio);
|
||||
ud.camerahoriz = p->ohoriz+p->ohorizoff
|
||||
+ mulscale16((p->horiz+p->horizoff-p->ohoriz-p->ohorizoff), smoothratio);
|
||||
}
|
||||
ud.cameraang += p->look_ang;
|
||||
|
||||
if (p->newowner >= 0)
|
||||
{
|
||||
ud.cameraang = p->ang+p->look_ang;
|
||||
ud.camerahoriz = p->horiz+p->horizoff;
|
||||
ud.cameraang = p->ang + p->look_ang;
|
||||
ud.camerahoriz = p->horiz + p->horizoff;
|
||||
Bmemcpy(&ud.camera, p, sizeof(vec3_t));
|
||||
ud.camerasect = sprite[p->newowner].sectnum;
|
||||
smoothratio = 65536L;
|
||||
smoothratio = 65536;
|
||||
}
|
||||
else if (ud.viewbob) // if (p->over_shoulder_on == 0)
|
||||
{
|
||||
if (p->over_shoulder_on)
|
||||
ud.camera.z += (p->opyoff+mulscale16((int32_t)(p->pyoff-p->opyoff),smoothratio))>>3;
|
||||
else ud.camera.z += p->opyoff+mulscale16((int32_t)(p->pyoff-p->opyoff),smoothratio);
|
||||
ud.camera.z += (p->opyoff + mulscale16(p->pyoff-p->opyoff, smoothratio))>>3;
|
||||
else ud.camera.z += p->opyoff + mulscale16(p->pyoff-p->opyoff, smoothratio);
|
||||
}
|
||||
|
||||
if (p->over_shoulder_on)
|
||||
{
|
||||
ud.camera.z -= 3072;
|
||||
|
@ -3676,14 +3681,17 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
ud.cameraang += (2-((g_earthquakeTime)&2))<<2;
|
||||
}
|
||||
|
||||
if (sprite[p->i].pal == 1) ud.camera.z -= (18<<8);
|
||||
if (sprite[p->i].pal == 1)
|
||||
ud.camera.z -= (18<<8);
|
||||
|
||||
if (p->newowner >= 0)
|
||||
ud.camerahoriz = 100+sprite[p->newowner].shade;
|
||||
else if (p->spritebridge == 0)
|
||||
{
|
||||
if (ud.camera.z < (p->truecz + (4<<8))) ud.camera.z = cz + (4<<8);
|
||||
else if (ud.camera.z > (p->truefz - (4<<8))) ud.camera.z = fz - (4<<8);
|
||||
if (ud.camera.z < (p->truecz + (4<<8)))
|
||||
ud.camera.z = cz + (4<<8);
|
||||
else if (ud.camera.z > (p->truefz - (4<<8)))
|
||||
ud.camera.z = fz - (4<<8);
|
||||
}
|
||||
|
||||
while (ud.camerasect >= 0) // if, really
|
||||
|
@ -3702,7 +3710,8 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
}
|
||||
else
|
||||
#endif
|
||||
if (ud.camera.z < cz+(4<<8)) ud.camera.z = cz+(4<<8);
|
||||
if (ud.camera.z < cz+(4<<8))
|
||||
ud.camera.z = cz+(4<<8);
|
||||
|
||||
#ifdef YAX_ENABLE
|
||||
if (yax_getbunch(ud.camerasect, YAX_FLOOR) >= 0)
|
||||
|
@ -3712,7 +3721,8 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
}
|
||||
else
|
||||
#endif
|
||||
if (ud.camera.z > fz-(4<<8)) ud.camera.z = fz-(4<<8);
|
||||
if (ud.camera.z > fz-(4<<8))
|
||||
ud.camera.z = fz-(4<<8);
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -3749,13 +3759,13 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
// viewing from bottom
|
||||
if (drawing_ror == 1)
|
||||
{
|
||||
int32_t k = headspritesect[sp->sectnum];
|
||||
int32_t k;
|
||||
|
||||
while (k != -1)
|
||||
for (k=headspritesect[sp->sectnum]; k != -1; k=nextspritesect[k])
|
||||
{
|
||||
if (sprite[k].picnum != SECTOREFFECTOR && (sprite[k].z >= sp->z))
|
||||
{
|
||||
Bmemcpy((spritetype *)&tsprite[spritesortcnt],(spritetype *)&sprite[k],sizeof(spritetype));
|
||||
Bmemcpy(&tsprite[spritesortcnt], &sprite[k], sizeof(spritetype));
|
||||
|
||||
tsprite[spritesortcnt].x += (sprite[sp->yvel].x-sp->x);
|
||||
tsprite[spritesortcnt].y += (sprite[sp->yvel].y-sp->y);
|
||||
|
@ -3766,7 +3776,6 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
//OSD_Printf("duped sprite of pic %d at %d %d %d\n",tsprite[spritesortcnt].picnum,tsprite[spritesortcnt].x,tsprite[spritesortcnt].y,tsprite[spritesortcnt].z);
|
||||
spritesortcnt++;
|
||||
}
|
||||
k = nextspritesect[k];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3825,23 +3834,23 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
else if (getrendermode() == 0 && ((ud.screen_tilting && p->rotscrnang) || ud.detail==0))
|
||||
else if (software_screen_tilting)
|
||||
{
|
||||
if (ud.screen_tilting) tang = p->rotscrnang;
|
||||
else tang = 0;
|
||||
const int16_t tang = (ud.screen_tilting) ? p->rotscrnang : 0;
|
||||
|
||||
if (getrendermode() == 0)
|
||||
{
|
||||
setviewback();
|
||||
picanm[TILE_TILT] &= 0xff0000ff;
|
||||
i = (tang&511);
|
||||
if (i > 256) i = 512-i;
|
||||
i = sintable[i+512]*8 + sintable[i]*5;
|
||||
if ((1-ud.detail) == 0) i >>= 1;
|
||||
i>>=(tiltcs-1); // JBF 20030807
|
||||
rotatesprite_win(160<<16,100<<16,i,tang+512,TILE_TILT,0,0,4+2+64);
|
||||
walock[TILE_TILT] = 199;
|
||||
}
|
||||
setviewback();
|
||||
picanm[TILE_TILT] &= 0xff0000ff;
|
||||
|
||||
i = (tang&511);
|
||||
if (i > 256)
|
||||
i = 512-i;
|
||||
i = sintable[i+512]*8 + sintable[i]*5;
|
||||
if (ud.detail)
|
||||
i >>= 1;
|
||||
i >>= (tiltcs-1); // JBF 20030807
|
||||
|
||||
rotatesprite_win(160<<16,100<<16,i,tang+512,TILE_TILT,0,0,4+2+64);
|
||||
walock[TILE_TILT] = 199;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3934,7 +3943,8 @@ static void G_DumpDebugInfo(void)
|
|||
&g_player[myconnectindex].ps->pos.z,&g_player[myconnectindex].ps->ang,&g_player[myconnectindex].ps->cursectnum);
|
||||
}
|
||||
|
||||
int32_t A_InsertSprite(int32_t whatsect,int32_t s_x,int32_t s_y,int32_t s_z,int32_t s_pn,int32_t s_s,int32_t s_xr,int32_t s_yr,int32_t s_a,int32_t s_ve,int32_t s_zv,int32_t s_ow,int32_t s_ss)
|
||||
int32_t A_InsertSprite(int32_t whatsect,int32_t s_x,int32_t s_y,int32_t s_z,int32_t s_pn,int32_t s_s,
|
||||
int32_t s_xr,int32_t s_yr,int32_t s_a,int32_t s_ve,int32_t s_zv,int32_t s_ow,int32_t s_ss)
|
||||
{
|
||||
int32_t p, i = insertsprite(whatsect,s_ss);
|
||||
spritetype *s = &sprite[i];
|
||||
|
@ -10621,12 +10631,10 @@ MAIN_LOOP_RESTART:
|
|||
char ch;
|
||||
static uint32_t bufpos = 0;
|
||||
static char buf[128];
|
||||
|
||||
#ifndef GEKKO
|
||||
int32_t flag = 1;
|
||||
ioctl(0, FIONBIO, &flag);
|
||||
#endif
|
||||
|
||||
if ((nb = read(0, &ch, 1)) > 0 && bufpos < sizeof(buf))
|
||||
{
|
||||
if (ch != '\n')
|
||||
|
|
|
@ -591,8 +591,7 @@ void G_UpdateScreenArea(void)
|
|||
|
||||
if (qsetmode != 200) return;
|
||||
|
||||
if (ud.screen_size < 0) ud.screen_size = 0;
|
||||
if (ud.screen_size > 64) ud.screen_size = 64;
|
||||
ud.screen_size = clamp(ud.screen_size, 0, 64);
|
||||
if (ud.screen_size == 0) flushperms();
|
||||
|
||||
ss = max(ud.screen_size-8,0);
|
||||
|
|
|
@ -372,7 +372,8 @@ void G_AnimateCamSprite(void)
|
|||
#ifdef DEBUG_VALGRIND_NO_SMC
|
||||
return;
|
||||
#endif
|
||||
if (camsprite <= 0) return;
|
||||
if (camsprite < 0)
|
||||
return;
|
||||
|
||||
if (T1 >= 4)
|
||||
{
|
||||
|
@ -385,7 +386,7 @@ void G_AnimateCamSprite(void)
|
|||
if (waloff[TILE_VIEWSCR] == 0)
|
||||
allocatepermanenttile(TILE_VIEWSCR,tilesizx[PN],tilesizy[PN]);
|
||||
else walock[TILE_VIEWSCR] = 255;
|
||||
G_SetupCamTile(OW,/*PN*/TILE_VIEWSCR);
|
||||
G_SetupCamTile(OW, TILE_VIEWSCR);
|
||||
#ifdef POLYMER
|
||||
// HACK: force texture update on viewscreen sprite in Polymer!
|
||||
if (rendmode==4)
|
||||
|
|
Loading…
Reference in a new issue