mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
- removed a large bunch of Polymer code, which unfortunately is license poison.
This commit is contained in:
parent
95ba82b925
commit
cd55c21a5e
2 changed files with 4 additions and 521 deletions
|
@ -300,7 +300,6 @@ void A_SpawnMultiple(int spriteNum, int tileNum, int spawnCnt);
|
||||||
void resetlanepics(void);
|
void resetlanepics(void);
|
||||||
|
|
||||||
int G_SetInterpolation(int32_t *posptr);
|
int G_SetInterpolation(int32_t *posptr);
|
||||||
void G_AddGameLight(int lightRadius, int spriteNum, int zOffset, int lightRange, int lightColor, int lightPrio);
|
|
||||||
void G_ClearCameraView(DukePlayer_t *ps);
|
void G_ClearCameraView(DukePlayer_t *ps);
|
||||||
void clearcamera(player_struct* ps);
|
void clearcamera(player_struct* ps);
|
||||||
void G_DoInterpolations(int smoothRatio);
|
void G_DoInterpolations(int smoothRatio);
|
||||||
|
|
|
@ -58,23 +58,6 @@ int32_t A_MoveSprite(int32_t spriteNum, vec3_t const * const change, uint32_t cl
|
||||||
|
|
||||||
int32_t block_deletesprite = 0;
|
int32_t block_deletesprite = 0;
|
||||||
|
|
||||||
#ifdef POLYMER
|
|
||||||
static void A_DeleteLight(int32_t s)
|
|
||||||
{
|
|
||||||
if (actor[s].lightId >= 0)
|
|
||||||
polymer_deletelight(actor[s].lightId);
|
|
||||||
actor[s].lightId = -1;
|
|
||||||
actor[s].lightptr = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void G_Polymer_UnInit(void)
|
|
||||||
{
|
|
||||||
int32_t i;
|
|
||||||
|
|
||||||
for (i=0; i<MAXSPRITES; i++)
|
|
||||||
A_DeleteLight(i);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// deletesprite() game wrapper
|
// deletesprite() game wrapper
|
||||||
void A_DeleteSprite(int spriteNum)
|
void A_DeleteSprite(int spriteNum)
|
||||||
|
@ -94,13 +77,6 @@ void A_DeleteSprite(int spriteNum)
|
||||||
if (sprite[spriteNum].picnum == TILE_MUSICANDSFX && actor[spriteNum].t_data[0] == 1)
|
if (sprite[spriteNum].picnum == TILE_MUSICANDSFX && actor[spriteNum].t_data[0] == 1)
|
||||||
S_StopEnvSound(sprite[spriteNum].lotag, spriteNum);
|
S_StopEnvSound(sprite[spriteNum].lotag, spriteNum);
|
||||||
|
|
||||||
// NetAlloc
|
|
||||||
//if (Net_IsRelevantSprite(spriteNum))
|
|
||||||
//{
|
|
||||||
// Net_DeleteSprite(spriteNum);
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
|
|
||||||
deletesprite(spriteNum);
|
deletesprite(spriteNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,84 +148,6 @@ void A_MoveSector(int spriteNum)
|
||||||
ms(spriteNum);
|
ms(spriteNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: T5 is AC_ACTION_ID
|
|
||||||
# define LIGHTRAD_PICOFS(i) (T5(i) ? ScriptCode[T5(i)] + ScriptCode[T5(i) + 2] * AC_CURFRAME(actor[i].t_data) : 0)
|
|
||||||
|
|
||||||
// this is the same crap as in game.c's tspr manipulation. puke.
|
|
||||||
// XXX: may access tilesizy out-of-bounds by bad user code.
|
|
||||||
#define LIGHTRAD(spriteNum, s) (s->yrepeat * tilesiz[s->picnum + LIGHTRAD_PICOFS(spriteNum)].y)
|
|
||||||
#define LIGHTRAD2(spriteNum, s) ((s->yrepeat + ((rand() % s->yrepeat)>>2)) * tilesiz[s->picnum + LIGHTRAD_PICOFS(spriteNum)].y)
|
|
||||||
|
|
||||||
void G_AddGameLight(int lightRadius, int spriteNum, int zOffset, int lightRange, int lightColor, int lightPrio)
|
|
||||||
{
|
|
||||||
#ifdef POLYMER
|
|
||||||
spritetype *s = &sprite[spriteNum];
|
|
||||||
|
|
||||||
if (videoGetRenderMode() != REND_POLYMER || pr_lighting != 1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (actor[spriteNum].lightptr == NULL)
|
|
||||||
{
|
|
||||||
#pragma pack(push, 1)
|
|
||||||
_prlight mylight;
|
|
||||||
#pragma pack(pop)
|
|
||||||
Bmemset(&mylight, 0, sizeof(mylight));
|
|
||||||
|
|
||||||
mylight.sector = s->sectnum;
|
|
||||||
mylight.x = s->x;
|
|
||||||
mylight.y = s->y;
|
|
||||||
mylight.z = s->z - zOffset;
|
|
||||||
mylight.color[0] = lightColor & 255;
|
|
||||||
mylight.color[1] = (lightColor >> 8) & 255;
|
|
||||||
mylight.color[2] = (lightColor >> 16) & 255;
|
|
||||||
mylight.radius = lightRadius;
|
|
||||||
actor[spriteNum].lightmaxrange = mylight.range = lightRange;
|
|
||||||
|
|
||||||
mylight.priority = lightPrio;
|
|
||||||
mylight.tilenum = 0;
|
|
||||||
|
|
||||||
mylight.publicflags.emitshadow = 1;
|
|
||||||
mylight.publicflags.negative = 0;
|
|
||||||
|
|
||||||
actor[spriteNum].lightId = polymer_addlight(&mylight);
|
|
||||||
if (actor[spriteNum].lightId >= 0)
|
|
||||||
actor[spriteNum].lightptr = &prlights[actor[spriteNum].lightId];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
s->z -= zOffset;
|
|
||||||
|
|
||||||
if (lightRange<actor[spriteNum].lightmaxrange>> 1)
|
|
||||||
actor[spriteNum].lightmaxrange = 0;
|
|
||||||
|
|
||||||
if (lightRange > actor[spriteNum].lightmaxrange || lightPrio != actor[spriteNum].lightptr->priority ||
|
|
||||||
Bmemcmp(&sprite[spriteNum], actor[spriteNum].lightptr, sizeof(int32_t) * 3))
|
|
||||||
{
|
|
||||||
if (lightRange > actor[spriteNum].lightmaxrange)
|
|
||||||
actor[spriteNum].lightmaxrange = lightRange;
|
|
||||||
|
|
||||||
Bmemcpy(actor[spriteNum].lightptr, &sprite[spriteNum], sizeof(int32_t) * 3);
|
|
||||||
actor[spriteNum].lightptr->sector = s->sectnum;
|
|
||||||
actor[spriteNum].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
actor[spriteNum].lightptr->priority = lightPrio;
|
|
||||||
actor[spriteNum].lightptr->range = lightRange;
|
|
||||||
actor[spriteNum].lightptr->color[0] = lightColor & 255;
|
|
||||||
actor[spriteNum].lightptr->color[1] = (lightColor >> 8) & 255;
|
|
||||||
actor[spriteNum].lightptr->color[2] = (lightColor >> 16) & 255;
|
|
||||||
|
|
||||||
s->z += zOffset;
|
|
||||||
|
|
||||||
#else
|
|
||||||
UNREFERENCED_PARAMETER(lightRadius);
|
|
||||||
UNREFERENCED_PARAMETER(spriteNum);
|
|
||||||
UNREFERENCED_PARAMETER(zOffset);
|
|
||||||
UNREFERENCED_PARAMETER(lightRange);
|
|
||||||
UNREFERENCED_PARAMETER(lightColor);
|
|
||||||
UNREFERENCED_PARAMETER(lightPrio);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int g_canSeePlayer = 0;
|
int g_canSeePlayer = 0;
|
||||||
|
|
||||||
|
@ -283,399 +181,6 @@ int G_WakeUp(spritetype *const pSprite, int const playerNum)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void G_DoEffectorLights(void) // STATNUM 14
|
|
||||||
{
|
|
||||||
#ifdef POLYMER
|
|
||||||
int32_t i;
|
|
||||||
|
|
||||||
for (SPRITES_OF(STAT_LIGHT, i))
|
|
||||||
{
|
|
||||||
switch (sprite[i].lotag)
|
|
||||||
{
|
|
||||||
case SE_49_POINT_LIGHT:
|
|
||||||
{
|
|
||||||
if (!actorflag(i, SFLAG_NOLIGHT) && videoGetRenderMode() == REND_POLYMER &&
|
|
||||||
!(actorflag(i, SFLAG_USEACTIVATOR) && sector[sprite[i].sectnum].lotag & 16384))
|
|
||||||
{
|
|
||||||
if (actor[i].lightptr == NULL)
|
|
||||||
{
|
|
||||||
#pragma pack(push,1)
|
|
||||||
_prlight mylight;
|
|
||||||
#pragma pack(pop)
|
|
||||||
mylight.sector = SECT(i);
|
|
||||||
Bmemcpy(&mylight, &sprite[i], sizeof(int32_t) * 3);
|
|
||||||
mylight.range = SHT(i);
|
|
||||||
mylight.color[0] = sprite[i].xvel;
|
|
||||||
mylight.color[1] = sprite[i].yvel;
|
|
||||||
mylight.color[2] = sprite[i].zvel;
|
|
||||||
mylight.radius = 0;
|
|
||||||
mylight.angle = SA(i);
|
|
||||||
mylight.horiz = SH(i);
|
|
||||||
mylight.minshade = sprite[i].xoffset;
|
|
||||||
mylight.maxshade = sprite[i].yoffset;
|
|
||||||
mylight.tilenum = 0;
|
|
||||||
mylight.publicflags.emitshadow = 0;
|
|
||||||
mylight.publicflags.negative = !!(CS(i) & 128);
|
|
||||||
|
|
||||||
if (CS(i) & 2)
|
|
||||||
{
|
|
||||||
if (CS(i) & 512)
|
|
||||||
mylight.priority = PR_LIGHT_PRIO_LOW;
|
|
||||||
else
|
|
||||||
mylight.priority = PR_LIGHT_PRIO_HIGH;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
mylight.priority = PR_LIGHT_PRIO_MAX;
|
|
||||||
|
|
||||||
actor[i].lightId = polymer_addlight(&mylight);
|
|
||||||
if (actor[i].lightId >= 0)
|
|
||||||
actor[i].lightptr = &prlights[actor[i].lightId];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Bmemcmp(&sprite[i], actor[i].lightptr, sizeof(int32_t) * 3))
|
|
||||||
{
|
|
||||||
Bmemcpy(actor[i].lightptr, &sprite[i], sizeof(int32_t) * 3);
|
|
||||||
actor[i].lightptr->sector = sprite[i].sectnum;
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if (SHT(i) != actor[i].lightptr->range)
|
|
||||||
{
|
|
||||||
actor[i].lightptr->range = SHT(i);
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if ((sprite[i].xvel != actor[i].lightptr->color[0]) ||
|
|
||||||
(sprite[i].yvel != actor[i].lightptr->color[1]) ||
|
|
||||||
(sprite[i].zvel != actor[i].lightptr->color[2]))
|
|
||||||
{
|
|
||||||
actor[i].lightptr->color[0] = sprite[i].xvel;
|
|
||||||
actor[i].lightptr->color[1] = sprite[i].yvel;
|
|
||||||
actor[i].lightptr->color[2] = sprite[i].zvel;
|
|
||||||
}
|
|
||||||
if ((int)!!(CS(i) & 128) != actor[i].lightptr->publicflags.negative) {
|
|
||||||
actor[i].lightptr->publicflags.negative = !!(CS(i) & 128);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case SE_50_SPOT_LIGHT:
|
|
||||||
{
|
|
||||||
if (!actorflag(i, SFLAG_NOLIGHT) && videoGetRenderMode() == REND_POLYMER &&
|
|
||||||
!(actorflag(i, SFLAG_USEACTIVATOR) && sector[sprite[i].sectnum].lotag & 16384))
|
|
||||||
{
|
|
||||||
if (actor[i].lightptr == NULL)
|
|
||||||
{
|
|
||||||
#pragma pack(push,1)
|
|
||||||
_prlight mylight;
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
mylight.sector = SECT(i);
|
|
||||||
Bmemcpy(&mylight, &sprite[i], sizeof(int32_t) * 3);
|
|
||||||
mylight.range = SHT(i);
|
|
||||||
mylight.color[0] = sprite[i].xvel;
|
|
||||||
mylight.color[1] = sprite[i].yvel;
|
|
||||||
mylight.color[2] = sprite[i].zvel;
|
|
||||||
mylight.radius = (256-(SS(i)+128))<<1;
|
|
||||||
mylight.faderadius = (int16_t)(mylight.radius * 0.75f);
|
|
||||||
mylight.angle = SA(i);
|
|
||||||
mylight.horiz = SH(i);
|
|
||||||
mylight.minshade = sprite[i].xoffset;
|
|
||||||
mylight.maxshade = sprite[i].yoffset;
|
|
||||||
mylight.tilenum = actor[i].picnum;
|
|
||||||
mylight.publicflags.emitshadow = !(CS(i) & 64);
|
|
||||||
mylight.publicflags.negative = !!(CS(i) & 128);
|
|
||||||
|
|
||||||
if (CS(i) & 2)
|
|
||||||
{
|
|
||||||
if (CS(i) & 512)
|
|
||||||
mylight.priority = PR_LIGHT_PRIO_LOW;
|
|
||||||
else
|
|
||||||
mylight.priority = PR_LIGHT_PRIO_HIGH;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
mylight.priority = PR_LIGHT_PRIO_MAX;
|
|
||||||
|
|
||||||
actor[i].lightId = polymer_addlight(&mylight);
|
|
||||||
if (actor[i].lightId >= 0)
|
|
||||||
{
|
|
||||||
actor[i].lightptr = &prlights[actor[i].lightId];
|
|
||||||
|
|
||||||
// Hack in case polymer_addlight tweaked the horiz value
|
|
||||||
if (actor[i].lightptr->horiz != SH(i))
|
|
||||||
SH(i) = actor[i].lightptr->horiz;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Bmemcmp(&sprite[i], actor[i].lightptr, sizeof(int32_t) * 3))
|
|
||||||
{
|
|
||||||
Bmemcpy(actor[i].lightptr, &sprite[i], sizeof(int32_t) * 3);
|
|
||||||
actor[i].lightptr->sector = sprite[i].sectnum;
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if (SHT(i) != actor[i].lightptr->range)
|
|
||||||
{
|
|
||||||
actor[i].lightptr->range = SHT(i);
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if ((sprite[i].xvel != actor[i].lightptr->color[0]) ||
|
|
||||||
(sprite[i].yvel != actor[i].lightptr->color[1]) ||
|
|
||||||
(sprite[i].zvel != actor[i].lightptr->color[2]))
|
|
||||||
{
|
|
||||||
actor[i].lightptr->color[0] = sprite[i].xvel;
|
|
||||||
actor[i].lightptr->color[1] = sprite[i].yvel;
|
|
||||||
actor[i].lightptr->color[2] = sprite[i].zvel;
|
|
||||||
}
|
|
||||||
if (((256-(SS(i)+128))<<1) != actor[i].lightptr->radius)
|
|
||||||
{
|
|
||||||
actor[i].lightptr->radius = (256-(SS(i)+128))<<1;
|
|
||||||
actor[i].lightptr->faderadius = (int16_t)(actor[i].lightptr->radius * 0.75f);
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if (SA(i) != actor[i].lightptr->angle)
|
|
||||||
{
|
|
||||||
actor[i].lightptr->angle = SA(i);
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if (SH(i) != actor[i].lightptr->horiz)
|
|
||||||
{
|
|
||||||
actor[i].lightptr->horiz = SH(i);
|
|
||||||
actor[i].lightptr->flags.invalidate = 1;
|
|
||||||
}
|
|
||||||
if ((int)!(CS(i) & 64) != actor[i].lightptr->publicflags.emitshadow) {
|
|
||||||
actor[i].lightptr->publicflags.emitshadow = !(CS(i) & 64);
|
|
||||||
}
|
|
||||||
if ((int)!!(CS(i) & 128) != actor[i].lightptr->publicflags.negative) {
|
|
||||||
actor[i].lightptr->publicflags.negative = !!(CS(i) & 128);
|
|
||||||
}
|
|
||||||
actor[i].lightptr->tilenum = actor[i].picnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // POLYMER
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef POLYMER
|
|
||||||
static void A_DoLight(int spriteNum)
|
|
||||||
{
|
|
||||||
spritetype *const pSprite = &sprite[spriteNum];
|
|
||||||
int savedFires = 0;
|
|
||||||
|
|
||||||
if (((sector[pSprite->sectnum].floorz - sector[pSprite->sectnum].ceilingz) < 16) || pSprite->z > sector[pSprite->sectnum].floorz || pSprite->z > actor[spriteNum].floorz ||
|
|
||||||
(pSprite->picnum != TILE_SECTOREFFECTOR && ((pSprite->cstat & 32768) || pSprite->yrepeat < 4)) ||
|
|
||||||
actorflag(spriteNum, SFLAG_NOLIGHT) || (actorflag(spriteNum, SFLAG_USEACTIVATOR) && sector[pSprite->sectnum].lotag & 16384))
|
|
||||||
{
|
|
||||||
if (actor[spriteNum].lightptr != NULL)
|
|
||||||
A_DeleteLight(spriteNum);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (actor[spriteNum].lightptr != NULL && actor[spriteNum].lightcount)
|
|
||||||
{
|
|
||||||
if (!(--actor[spriteNum].lightcount))
|
|
||||||
A_DeleteLight(spriteNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pr_lighting != 1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (bsize_t ii=0; ii<2; ii++)
|
|
||||||
{
|
|
||||||
if (pSprite->picnum <= 0) // oob safety
|
|
||||||
break;
|
|
||||||
|
|
||||||
switch (DYNAMICTILEMAP(pSprite->picnum-1+ii))
|
|
||||||
{
|
|
||||||
case DIPSWITCH__STATIC:
|
|
||||||
case DIPSWITCH2__STATIC:
|
|
||||||
case DIPSWITCH3__STATIC:
|
|
||||||
case PULLSWITCH__STATIC:
|
|
||||||
case SLOTDOOR__STATIC:
|
|
||||||
case LIGHTSWITCH__STATIC:
|
|
||||||
case SPACELIGHTSWITCH__STATIC:
|
|
||||||
case SPACEDOORSWITCH__STATIC:
|
|
||||||
case FRANKENSTINESWITCH__STATIC:
|
|
||||||
case POWERSWITCH1__STATIC:
|
|
||||||
case LOCKSWITCH1__STATIC:
|
|
||||||
case POWERSWITCH2__STATIC:
|
|
||||||
case TECHSWITCH__STATIC:
|
|
||||||
case ACCESSSWITCH__STATIC:
|
|
||||||
case ACCESSSWITCH2__STATIC:
|
|
||||||
{
|
|
||||||
if ((pSprite->cstat & 32768) || actorflag(spriteNum, SFLAG_NOLIGHT))
|
|
||||||
{
|
|
||||||
if (actor[spriteNum].lightptr != NULL)
|
|
||||||
A_DeleteLight(spriteNum);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec2_t const d = { sintable[(pSprite->ang+512)&2047]>>7, sintable[(pSprite->ang)&2047]>>7 };
|
|
||||||
|
|
||||||
pSprite->x += d.x;
|
|
||||||
pSprite->y += d.y;
|
|
||||||
|
|
||||||
int16_t sectnum = pSprite->sectnum;
|
|
||||||
updatesector(pSprite->x, pSprite->y, §num);
|
|
||||||
|
|
||||||
if ((unsigned) sectnum >= MAXSECTORS || pSprite->z > sector[sectnum].floorz || pSprite->z < sector[sectnum].ceilingz)
|
|
||||||
goto TILE_POOP;
|
|
||||||
|
|
||||||
G_AddGameLight(0, spriteNum, (pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1, 512-ii*128,
|
|
||||||
ii==0 ? (172+(200<<8)+(104<<16)) : 216+(52<<8)+(20<<16), PR_LIGHT_PRIO_LOW);
|
|
||||||
|
|
||||||
TILE_POOP:
|
|
||||||
pSprite->x -= d.x;
|
|
||||||
pSprite->y -= d.y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (DYNAMICTILEMAP(pSprite->picnum))
|
|
||||||
{
|
|
||||||
case ATOMICHEALTH__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD2(spriteNum, pSprite), 128+(128<<8)+(255<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FIRE__STATIC:
|
|
||||||
case FIRE2__STATIC:
|
|
||||||
case BURNING__STATIC:
|
|
||||||
case BURNING2__STATIC:
|
|
||||||
{
|
|
||||||
uint32_t color;
|
|
||||||
int32_t jj;
|
|
||||||
|
|
||||||
static int32_t savedfires[32][4]; // sectnum x y z
|
|
||||||
|
|
||||||
/*
|
|
||||||
if (Actor[i].floorz - Actor[i].ceilingz < 128) break;
|
|
||||||
if (s->z > Actor[i].floorz+2048) break;
|
|
||||||
*/
|
|
||||||
|
|
||||||
switch (pSprite->pal)
|
|
||||||
{
|
|
||||||
case 1: color = 128+(128<<8)+(255<<16); break;
|
|
||||||
case 2: color = 255+(48<<8)+(48<<16); break;
|
|
||||||
case 8: color = 48+(255<<8)+(48<<16); break;
|
|
||||||
default: color = 240+(160<<8)+(80<<16); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (jj=savedFires-1; jj>=0; jj--)
|
|
||||||
if (savedfires[jj][0]==pSprite->sectnum && savedfires[jj][1]==(pSprite->x>>3) &&
|
|
||||||
savedfires[jj][2]==(pSprite->y>>3) && savedfires[jj][3]==(pSprite->z>>7))
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (jj==-1 && savedFires<32)
|
|
||||||
{
|
|
||||||
jj = savedFires;
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD2(spriteNum, pSprite), color, PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
savedfires[jj][0] = pSprite->sectnum;
|
|
||||||
savedfires[jj][1] = pSprite->x>>3;
|
|
||||||
savedfires[jj][2] = pSprite->y>>3;
|
|
||||||
savedfires[jj][3] = pSprite->z>>7;
|
|
||||||
savedFires++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OOZFILTER__STATIC:
|
|
||||||
if (pSprite->xrepeat > 4)
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), 4096, 176+(252<<8)+(120<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
break;
|
|
||||||
case FLOORFLAME__STATIC:
|
|
||||||
case FIREBARREL__STATIC:
|
|
||||||
case FIREVASE__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<2), LIGHTRAD2(spriteNum, pSprite)>>1, 255+(95<<8),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case EXPLOSION2__STATIC:
|
|
||||||
if (!actor[spriteNum].lightcount)
|
|
||||||
{
|
|
||||||
// XXX: This block gets CODEDUP'd too much.
|
|
||||||
int32_t x = ((sintable[(pSprite->ang+512)&2047])>>6);
|
|
||||||
int32_t y = ((sintable[(pSprite->ang)&2047])>>6);
|
|
||||||
|
|
||||||
pSprite->x -= x;
|
|
||||||
pSprite->y -= y;
|
|
||||||
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD(spriteNum, pSprite), 240+(160<<8)+(80<<16),
|
|
||||||
pSprite->yrepeat > 32 ? PR_LIGHT_PRIO_HIGH_GAME : PR_LIGHT_PRIO_LOW_GAME);
|
|
||||||
|
|
||||||
pSprite->x += x;
|
|
||||||
pSprite->y += y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case FORCERIPPLE__STATIC:
|
|
||||||
case TRANSPORTERBEAM__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD(spriteNum, pSprite), 80+(80<<8)+(255<<16),PR_LIGHT_PRIO_LOW_GAME);
|
|
||||||
break;
|
|
||||||
case GROWSPARK__STATIC:
|
|
||||||
{
|
|
||||||
int32_t x = ((sintable[(pSprite->ang+512)&2047])>>6);
|
|
||||||
int32_t y = ((sintable[(pSprite->ang)&2047])>>6);
|
|
||||||
|
|
||||||
pSprite->x -= x;
|
|
||||||
pSprite->y -= y;
|
|
||||||
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), 1024, 216+(52<<8)+(20<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
|
|
||||||
pSprite->x += x;
|
|
||||||
pSprite->y += y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case SHRINKEREXPLOSION__STATIC:
|
|
||||||
{
|
|
||||||
int32_t x = ((sintable[(pSprite->ang+512)&2047])>>6);
|
|
||||||
int32_t y = ((sintable[(pSprite->ang)&2047])>>6);
|
|
||||||
|
|
||||||
pSprite->x -= x;
|
|
||||||
pSprite->y -= y;
|
|
||||||
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), 2048, 176+(252<<8)+(120<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
|
|
||||||
pSprite->x += x;
|
|
||||||
pSprite->y += y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case FREEZEBLAST__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD(spriteNum, pSprite)<<2, 72+(88<<8)+(140<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
break;
|
|
||||||
case COOLEXPLOSION1__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD(spriteNum, pSprite)<<2, 128+(0<<8)+(255<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
break;
|
|
||||||
case SHRINKSPARK__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), LIGHTRAD(spriteNum, pSprite), 176+(252<<8)+(120<<16),PR_LIGHT_PRIO_HIGH_GAME);
|
|
||||||
break;
|
|
||||||
case FIRELASER__STATIC:
|
|
||||||
if (pSprite->statnum == STAT_PROJECTILE)
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), 64 * pSprite->yrepeat, 255+(95<<8),PR_LIGHT_PRIO_LOW_GAME);
|
|
||||||
break;
|
|
||||||
case RPG__STATIC:
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), 128 * pSprite->yrepeat, 255+(95<<8),PR_LIGHT_PRIO_LOW_GAME);
|
|
||||||
break;
|
|
||||||
case SHOTSPARK1__STATIC:
|
|
||||||
if (actor[spriteNum].t_data[2] == 0) // check for first frame of action
|
|
||||||
{
|
|
||||||
int32_t x = ((sintable[(pSprite->ang+512)&2047])>>7);
|
|
||||||
int32_t y = ((sintable[(pSprite->ang)&2047])>>7);
|
|
||||||
|
|
||||||
pSprite->x -= x;
|
|
||||||
pSprite->y -= y;
|
|
||||||
|
|
||||||
G_AddGameLight(0, spriteNum, ((pSprite->yrepeat*tilesiz[pSprite->picnum].y)<<1), 8 * pSprite->yrepeat, 240+(160<<8)+(80<<16),PR_LIGHT_PRIO_LOW_GAME);
|
|
||||||
actor[spriteNum].lightcount = 1;
|
|
||||||
|
|
||||||
pSprite->x += x;
|
|
||||||
pSprite->y += y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // POLYMER
|
|
||||||
|
|
||||||
void A_PlayAlertSound(int spriteNum)
|
void A_PlayAlertSound(int spriteNum)
|
||||||
{
|
{
|
||||||
|
@ -793,27 +298,6 @@ int A_CheckSwitchTile(int spriteNum)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void G_RefreshLights(void)
|
|
||||||
{
|
|
||||||
#ifdef POLYMER
|
|
||||||
if (Numsprites && videoGetRenderMode() == REND_POLYMER)
|
|
||||||
{
|
|
||||||
int statNum = 0;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
int spriteNum = headspritestat[statNum++];
|
|
||||||
|
|
||||||
while (spriteNum >= 0)
|
|
||||||
{
|
|
||||||
A_DoLight(spriteNum);
|
|
||||||
spriteNum = nextspritestat[spriteNum];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (statNum < MAXSTATUS);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void movefta_d(void);
|
void movefta_d(void);
|
||||||
void movefallers_d();
|
void movefallers_d();
|
||||||
|
@ -859,11 +343,11 @@ void G_MoveWorld_d(void)
|
||||||
|
|
||||||
// XXX: Has to be before effectors, in particular movers?
|
// XXX: Has to be before effectors, in particular movers?
|
||||||
// TODO: lights in moving sectors ought to be interpolated
|
// TODO: lights in moving sectors ought to be interpolated
|
||||||
G_DoEffectorLights();
|
//G_DoEffectorLights();
|
||||||
moveeffectors_d(); //ST 3
|
moveeffectors_d(); //ST 3
|
||||||
movestandables_d(); //ST 6
|
movestandables_d(); //ST 6
|
||||||
|
|
||||||
G_RefreshLights();
|
//G_RefreshLights();
|
||||||
doanimations();
|
doanimations();
|
||||||
movefx(); //ST 11
|
movefx(); //ST 11
|
||||||
|
|
||||||
|
@ -905,14 +389,14 @@ void G_MoveWorld_r(void)
|
||||||
|
|
||||||
// XXX: Has to be before effectors, in particular movers?
|
// XXX: Has to be before effectors, in particular movers?
|
||||||
// TODO: lights in moving sectors ought to be interpolated
|
// TODO: lights in moving sectors ought to be interpolated
|
||||||
G_DoEffectorLights();
|
// G_DoEffectorLights();
|
||||||
if (!DEER)
|
if (!DEER)
|
||||||
{
|
{
|
||||||
moveeffectors_r(); //ST 3
|
moveeffectors_r(); //ST 3
|
||||||
movestandables_r(); //ST 6
|
movestandables_r(); //ST 6
|
||||||
}
|
}
|
||||||
|
|
||||||
G_RefreshLights();
|
//G_RefreshLights();
|
||||||
doanimations();
|
doanimations();
|
||||||
if (!DEER)
|
if (!DEER)
|
||||||
movefx(); //ST 11
|
movefx(); //ST 11
|
||||||
|
|
Loading…
Reference in a new issue