mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-24 18:50:47 +00:00
Working towards fixing Energy Towers. Tower texture should now animate but explosion effect still doesn't render when the tower is destroyed.
This commit is contained in:
parent
c261f76e5f
commit
f22d6b275b
3 changed files with 27 additions and 35 deletions
|
@ -1948,7 +1948,7 @@ void DrawClock()
|
||||||
|
|
||||||
tileLoad(kTile3603);
|
tileLoad(kTile3603);
|
||||||
|
|
||||||
nRedTicks = 0;
|
// nRedTicks = 0;
|
||||||
memset((void*)waloff[kTile3603], -1, 4096);
|
memset((void*)waloff[kTile3603], -1, 4096);
|
||||||
|
|
||||||
if (lCountDown / 30 != nClockVal)
|
if (lCountDown / 30 != nClockVal)
|
||||||
|
@ -2112,13 +2112,13 @@ static void GameMove(void)
|
||||||
if (nRedTicks <= 0) {
|
if (nRedTicks <= 0) {
|
||||||
DoRedAlert(0);
|
DoRedAlert(0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nAlarmTicks--;
|
nAlarmTicks--;
|
||||||
nButtonColor--;
|
nButtonColor--;
|
||||||
|
|
||||||
if (nAlarmTicks <= 0) {
|
if (nAlarmTicks <= 0) {
|
||||||
DoRedAlert(1);
|
DoRedAlert(1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ short nCinemaSeen[30];
|
||||||
// this might be static within the DoPlasma function?
|
// this might be static within the DoPlasma function?
|
||||||
uint8_t plasmaBuffer[25600];
|
uint8_t plasmaBuffer[25600];
|
||||||
|
|
||||||
uint8_t energytile[4356] = {0};
|
uint8_t energytile[66 * 66] = {0};
|
||||||
|
|
||||||
uint8_t cinemapal[768];
|
uint8_t cinemapal[768];
|
||||||
short nLeft[50] = {0};
|
short nLeft[50] = {0};
|
||||||
|
@ -154,7 +154,7 @@ void DoEnergyTile()
|
||||||
|
|
||||||
if (nSmokeSparks)
|
if (nSmokeSparks)
|
||||||
{
|
{
|
||||||
uint8_t *c = &energytile[67]; // TODO - checkme
|
uint8_t *c = &energytile[67]; // skip a line
|
||||||
uint8_t *ptrW = (uint8_t*)waloff[kEnergy2];
|
uint8_t *ptrW = (uint8_t*)waloff[kEnergy2];
|
||||||
|
|
||||||
for (i = 0; i < 64; i++)
|
for (i = 0; i < 64; i++)
|
||||||
|
@ -219,6 +219,8 @@ void DoEnergyTile()
|
||||||
al = cl;
|
al = cl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cl = al;
|
||||||
|
|
||||||
if (al <= 159) {
|
if (al <= 159) {
|
||||||
*ptrW = 96;
|
*ptrW = 96;
|
||||||
//continue;
|
//continue;
|
||||||
|
@ -241,7 +243,7 @@ void DoEnergyTile()
|
||||||
c += 2;
|
c += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
c = &energytile[67]; // TODO - checkme
|
c = &energytile[67];
|
||||||
ptrW = (uint8_t*)waloff[kEnergy2];
|
ptrW = (uint8_t*)waloff[kEnergy2];
|
||||||
|
|
||||||
for (i = 0; i < 64; i++)
|
for (i = 0; i < 64; i++)
|
||||||
|
@ -255,11 +257,11 @@ void DoEnergyTile()
|
||||||
|
|
||||||
for (i = 0; i < 4096; i++)
|
for (i = 0; i < 4096; i++)
|
||||||
{
|
{
|
||||||
if (*ptrW == 96) {
|
if ((*ptrW) == 96) {
|
||||||
*ptrW = 255; // -1?
|
*ptrW = 255; // -1?
|
||||||
}
|
}
|
||||||
|
|
||||||
ptrW ++;
|
ptrW++;
|
||||||
}
|
}
|
||||||
|
|
||||||
word_9AB5B--;
|
word_9AB5B--;
|
||||||
|
@ -273,14 +275,13 @@ void DoEnergyTile()
|
||||||
val *= 2;
|
val *= 2;
|
||||||
val += randSize2;
|
val += randSize2;
|
||||||
|
|
||||||
energytile[val] = 195;
|
energytile[val] = 175;
|
||||||
word_9AB5B = 1;
|
word_9AB5B = 1;
|
||||||
}
|
}
|
||||||
tileInvalidate(kEnergy2, -1, -1);
|
tileInvalidate(kEnergy2, -1, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//int TILE_4092 = kTile4092;
|
|
||||||
int nPlasmaTile = kTile4092;
|
int nPlasmaTile = kTile4092;
|
||||||
|
|
||||||
#define kPlasmaWidth 320
|
#define kPlasmaWidth 320
|
||||||
|
|
|
@ -1329,7 +1329,6 @@ int BuildFireBall(int nSprite, int a, int b)
|
||||||
return BuildTrap(nSprite, 1, a, b);
|
return BuildTrap(nSprite, 1, a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Confirmed 100% correct with original .exe
|
|
||||||
int BuildSpark(int nSprite, int nVal)
|
int BuildSpark(int nSprite, int nVal)
|
||||||
{
|
{
|
||||||
int var_14 = insertsprite(sprite[nSprite].sectnum, 0);
|
int var_14 = insertsprite(sprite[nSprite].sectnum, 0);
|
||||||
|
@ -1345,9 +1344,9 @@ int BuildSpark(int nSprite, int nVal)
|
||||||
sprite[var_14].cstat = 0;
|
sprite[var_14].cstat = 0;
|
||||||
sprite[var_14].shade = -127;
|
sprite[var_14].shade = -127;
|
||||||
sprite[var_14].pal = 1;
|
sprite[var_14].pal = 1;
|
||||||
sprite[var_14].xrepeat = 50;
|
|
||||||
sprite[var_14].xoffset = 0;
|
sprite[var_14].xoffset = 0;
|
||||||
sprite[var_14].yoffset = 0;
|
sprite[var_14].yoffset = 0;
|
||||||
|
sprite[var_14].xrepeat = 50;
|
||||||
sprite[var_14].yrepeat = 50;
|
sprite[var_14].yrepeat = 50;
|
||||||
|
|
||||||
if (nVal >= 2)
|
if (nVal >= 2)
|
||||||
|
@ -1357,13 +1356,13 @@ int BuildSpark(int nSprite, int nVal)
|
||||||
|
|
||||||
if (nVal == 3)
|
if (nVal == 3)
|
||||||
{
|
{
|
||||||
sprite[var_14].yrepeat = 120;
|
|
||||||
sprite[var_14].xrepeat = 120;
|
sprite[var_14].xrepeat = 120;
|
||||||
|
sprite[var_14].yrepeat = 120;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sprite[var_14].yrepeat = sprite[var_14].xrepeat + 15;
|
sprite[var_14].xrepeat = sprite[nSprite].xrepeat + 15;
|
||||||
sprite[var_14].xrepeat = sprite[var_14].xrepeat + 15;
|
sprite[var_14].yrepeat = sprite[nSprite].xrepeat + 15;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1399,9 +1398,9 @@ int BuildSpark(int nSprite, int nVal)
|
||||||
return var_14;
|
return var_14;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FuncSpark(int a, int b, int c)
|
void FuncSpark(int a, int b, int nRun)
|
||||||
{
|
{
|
||||||
int nSprite = RunData[c].nVal;
|
int nSprite = RunData[nRun].nVal;
|
||||||
assert(nSprite >= 0 && nSprite < kMaxSprites);
|
assert(nSprite >= 0 && nSprite < kMaxSprites);
|
||||||
|
|
||||||
int nMessage = a & 0x7F0000;
|
int nMessage = a & 0x7F0000;
|
||||||
|
@ -1417,7 +1416,7 @@ void FuncSpark(int a, int b, int c)
|
||||||
{
|
{
|
||||||
sprite[nSprite].yrepeat -= 2;
|
sprite[nSprite].yrepeat -= 2;
|
||||||
|
|
||||||
if (sprite[nSprite].picnum == kTile986 && sprite[nSprite].xrepeat & 2)
|
if (sprite[nSprite].picnum == kTile986 && (sprite[nSprite].xrepeat & 2))
|
||||||
{
|
{
|
||||||
BuildSpark(nSprite, 2);
|
BuildSpark(nSprite, 2);
|
||||||
}
|
}
|
||||||
|
@ -1438,9 +1437,9 @@ void FuncSpark(int a, int b, int c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sprite[nSprite].zvel = 0;
|
|
||||||
sprite[nSprite].yvel = 0;
|
|
||||||
sprite[nSprite].xvel = 0;
|
sprite[nSprite].xvel = 0;
|
||||||
|
sprite[nSprite].yvel = 0;
|
||||||
|
sprite[nSprite].zvel = 0;
|
||||||
|
|
||||||
if (sprite[nSprite].picnum > kTile3000) {
|
if (sprite[nSprite].picnum > kTile3000) {
|
||||||
nSmokeSparks--;
|
nSmokeSparks--;
|
||||||
|
@ -1549,23 +1548,17 @@ int BuildEnergyBlock(short nSector)
|
||||||
{
|
{
|
||||||
short startwall = sector[nSector].wallptr;
|
short startwall = sector[nSector].wallptr;
|
||||||
|
|
||||||
int i = 0;
|
|
||||||
int x = 0;
|
int x = 0;
|
||||||
int y = 0;
|
int y = 0;
|
||||||
|
|
||||||
while (1)
|
for (int i = 0; i < sector[nSector].wallnum; i++)
|
||||||
{
|
{
|
||||||
if (i >= sector[nSector].wallnum) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
x += wall[startwall + i].x;
|
x += wall[startwall + i].x;
|
||||||
y += wall[startwall + i].y;
|
y += wall[startwall + i].y;
|
||||||
|
|
||||||
|
// wall[startwall + i].picnum = kTile3621;
|
||||||
wall[startwall + i].pal = 0;
|
wall[startwall + i].pal = 0;
|
||||||
wall[startwall + i].shade = 50;
|
wall[startwall + i].shade = 50;
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int xAvg = x / 2;
|
int xAvg = x / 2;
|
||||||
|
@ -1735,11 +1728,10 @@ void ExplodeEnergyBlock(int nSprite)
|
||||||
changespritestat(nSprite, 0);
|
changespritestat(nSprite, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FuncEnergyBlock(int a, int b, int nRun)
|
void FuncEnergyBlock(int a, int nDamage, int nRun)
|
||||||
{
|
{
|
||||||
short nSprite = RunData[nRun].nVal;
|
short nSprite = RunData[nRun].nVal;
|
||||||
|
|
||||||
int nDamage = b;
|
|
||||||
int nMessage = a & 0x7F0000;
|
int nMessage = a & 0x7F0000;
|
||||||
|
|
||||||
switch (nMessage)
|
switch (nMessage)
|
||||||
|
@ -1766,8 +1758,8 @@ void FuncEnergyBlock(int a, int b, int nRun)
|
||||||
|
|
||||||
nDamage = runlist_CheckRadialDamage(nSprite);
|
nDamage = runlist_CheckRadialDamage(nSprite);
|
||||||
|
|
||||||
|
// restore previous values
|
||||||
sector[nSector].floorz = nFloorZ;
|
sector[nSector].floorz = nFloorZ;
|
||||||
|
|
||||||
sprite[nSprite].z += 256;
|
sprite[nSprite].z += 256;
|
||||||
|
|
||||||
if (nDamage <= 0) {
|
if (nDamage <= 0) {
|
||||||
|
@ -2135,7 +2127,6 @@ void BuildDrip(int nSprite)
|
||||||
sprite[nSprite].cstat = 0x8000u;
|
sprite[nSprite].cstat = 0x8000u;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Confirmed 100% correct with original .exe
|
|
||||||
void DoDrips()
|
void DoDrips()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
Loading…
Reference in a new issue