mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-12 03:00:38 +00:00
Precache more tiles on level start
# Conflicts: # source/blood/src/fx.cpp # source/blood/src/gib.cpp # source/blood/src/gib.h # source/blood/src/qav.cpp # source/blood/src/weapon.h
This commit is contained in:
parent
7af92bb327
commit
2e085b559f
12 changed files with 125 additions and 24 deletions
|
@ -43,6 +43,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#include "eventq.h"
|
#include "eventq.h"
|
||||||
#include "fire.h"
|
#include "fire.h"
|
||||||
#include "fx.h"
|
#include "fx.h"
|
||||||
|
#include "gib.h"
|
||||||
#include "getopt.h"
|
#include "getopt.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "levels.h"
|
#include "levels.h"
|
||||||
|
@ -291,14 +292,8 @@ void PrecacheThing(spritetype *pSprite) {
|
||||||
case kThingObjectGib:
|
case kThingObjectGib:
|
||||||
//case kThingObjectExplode: weird that only gib object is precached and this one is not
|
//case kThingObjectExplode: weird that only gib object is precached and this one is not
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
tilePreloadTile(pSprite->picnum);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
seqPrecacheId(3);
|
tilePrecacheTile(pSprite->picnum);
|
||||||
seqPrecacheId(4);
|
|
||||||
seqPrecacheId(5);
|
|
||||||
seqPrecacheId(9);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PreloadTiles(void)
|
void PreloadTiles(void)
|
||||||
|
@ -345,8 +340,17 @@ void PreloadTiles(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (numplayers > 1)
|
|
||||||
|
// Precache common SEQs
|
||||||
|
for (int i = 0; i < 100; i++)
|
||||||
{
|
{
|
||||||
|
seqPrecacheId(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
tilePrecacheTile(1147); // water drip
|
||||||
|
tilePrecacheTile(1160); // blood drip
|
||||||
|
|
||||||
|
// Player SEQs
|
||||||
seqPrecacheId(dudeInfo[31].seqStartID+6);
|
seqPrecacheId(dudeInfo[31].seqStartID+6);
|
||||||
seqPrecacheId(dudeInfo[31].seqStartID+7);
|
seqPrecacheId(dudeInfo[31].seqStartID+7);
|
||||||
seqPrecacheId(dudeInfo[31].seqStartID+8);
|
seqPrecacheId(dudeInfo[31].seqStartID+8);
|
||||||
|
@ -358,12 +362,18 @@ void PreloadTiles(void)
|
||||||
seqPrecacheId(dudeInfo[31].seqStartID+16);
|
seqPrecacheId(dudeInfo[31].seqStartID+16);
|
||||||
seqPrecacheId(dudeInfo[31].seqStartID+17);
|
seqPrecacheId(dudeInfo[31].seqStartID+17);
|
||||||
seqPrecacheId(dudeInfo[31].seqStartID+18);
|
seqPrecacheId(dudeInfo[31].seqStartID+18);
|
||||||
}
|
|
||||||
if (skyTile > -1 && skyTile < kMaxTiles)
|
if (skyTile > -1 && skyTile < kMaxTiles)
|
||||||
{
|
{
|
||||||
for (int i = 1; i < gSkyCount; i++)
|
for (int i = 1; i < gSkyCount; i++)
|
||||||
tilePrecacheTile(skyTile+i, 0);
|
tilePrecacheTile(skyTile+i, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WeaponPrecache();
|
||||||
|
viewPrecacheTiles();
|
||||||
|
fxPrecache();
|
||||||
|
gibPrecache();
|
||||||
|
|
||||||
gameHandleEvents();
|
gameHandleEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#include "gameutil.h"
|
#include "gameutil.h"
|
||||||
#include "levels.h"
|
#include "levels.h"
|
||||||
#include "seq.h"
|
#include "seq.h"
|
||||||
|
#include "tile.h"
|
||||||
#include "trig.h"
|
#include "trig.h"
|
||||||
#include "view.h"
|
#include "view.h"
|
||||||
|
|
||||||
|
@ -355,4 +356,14 @@ void fxSpawnEjectingShell(spritetype *pSprite, int z, int a3, int a4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fxPrecache(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < kFXMax; i++)
|
||||||
|
{
|
||||||
|
tilePrecacheTile(gFXData[i].at12, 0);
|
||||||
|
if (gFXData[i].at2)
|
||||||
|
seqPrecacheId(gFXData[i].at2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
END_BLD_NS
|
END_BLD_NS
|
||||||
|
|
|
@ -102,6 +102,8 @@ void sub_746D4(spritetype *pSprite, int a2);
|
||||||
void fxSpawnEjectingBrass(spritetype *pSprite, int z, int a3, int a4);
|
void fxSpawnEjectingBrass(spritetype *pSprite, int z, int a3, int a4);
|
||||||
void fxSpawnEjectingShell(spritetype *pSprite, int z, int a3, int a4);
|
void fxSpawnEjectingShell(spritetype *pSprite, int z, int a3, int a4);
|
||||||
|
|
||||||
|
void fxPrecache(void);
|
||||||
|
|
||||||
extern CFX gFX;
|
extern CFX gFX;
|
||||||
|
|
||||||
END_BLD_NS
|
END_BLD_NS
|
||||||
|
|
|
@ -37,6 +37,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#include "gib.h"
|
#include "gib.h"
|
||||||
#include "levels.h"
|
#include "levels.h"
|
||||||
#include "sfx.h"
|
#include "sfx.h"
|
||||||
|
#include "tile.h"
|
||||||
#include "trig.h"
|
#include "trig.h"
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
BEGIN_BLD_NS
|
||||||
|
@ -512,4 +513,18 @@ void GibWall(int nWall, GIBTYPE nGibType, CGibVelocity *pVel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
END_BLD_NS
|
void gibPrecache(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < kGibMax; i++)
|
||||||
|
{
|
||||||
|
auto const pThing = gibList[i].at8;
|
||||||
|
if (pThing)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < gibList[i].atc; j++)
|
||||||
|
{
|
||||||
|
if (pThing[j].at4 >= 0)
|
||||||
|
tilePrecacheTile(pThing[j].at4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -74,5 +74,5 @@ public:
|
||||||
void GibSprite(spritetype *pSprite, GIBTYPE nGibType, CGibPosition *pPos, CGibVelocity *pVel);
|
void GibSprite(spritetype *pSprite, GIBTYPE nGibType, CGibPosition *pPos, CGibVelocity *pVel);
|
||||||
//void GibFX(int nWall, GIBFX * pGFX, int a3, int a4, int a5, int a6, CGibVelocity * pVel);
|
//void GibFX(int nWall, GIBFX * pGFX, int a3, int a4, int a5, int a6, CGibVelocity * pVel);
|
||||||
void GibWall(int nWall, GIBTYPE nGibType, CGibVelocity *pVel);
|
void GibWall(int nWall, GIBTYPE nGibType, CGibVelocity *pVel);
|
||||||
|
void gibPrecache(void);
|
||||||
|
|
||||||
END_BLD_NS
|
|
||||||
|
|
|
@ -145,4 +145,14 @@ void QAV::Preload(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
END_BLD_NS
|
void QAV::Precache(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < nFrames; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < 8; j++)
|
||||||
|
{
|
||||||
|
if (frames[i].tiles[j].picnum >= 0)
|
||||||
|
tilePrecacheTile(frames[i].tiles[j].picnum, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -82,6 +82,7 @@ struct QAV
|
||||||
void Draw(int ticks, int stat, int shade, int palnum);
|
void Draw(int ticks, int stat, int shade, int palnum);
|
||||||
void Play(int, int, int, void *);
|
void Play(int, int, int, void *);
|
||||||
void Preload(void);
|
void Preload(void);
|
||||||
|
void Precache(void);
|
||||||
|
|
||||||
void PlaySound(int nSound);
|
void PlaySound(int nSound);
|
||||||
void PlaySound3D(spritetype *pSprite, int nSound, int a3, int a4);
|
void PlaySound3D(spritetype *pSprite, int nSound, int a3, int a4);
|
||||||
|
|
|
@ -156,7 +156,7 @@ uint8_t * tileAllocTile(int nTile, int x, int y, int ox, int oy)
|
||||||
|
|
||||||
void tilePreloadTile(int nTile)
|
void tilePreloadTile(int nTile)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 1;
|
||||||
switch (picanm[nTile].extra&7)
|
switch (picanm[nTile].extra&7)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -205,7 +205,7 @@ char precachehightile[2][(MAXTILES+7)>>3];
|
||||||
|
|
||||||
void tilePrecacheTile(int nTile, int nType)
|
void tilePrecacheTile(int nTile, int nType)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 1;
|
||||||
switch (picanm[nTile].extra&7)
|
switch (picanm[nTile].extra&7)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
|
|
@ -1715,6 +1715,47 @@ void UpdateStatusBar(ClockTicks arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void viewPrecacheTiles(void)
|
||||||
|
{
|
||||||
|
tilePrecacheTile(2173, 0);
|
||||||
|
tilePrecacheTile(2200, 0);
|
||||||
|
tilePrecacheTile(2201, 0);
|
||||||
|
tilePrecacheTile(2202, 0);
|
||||||
|
tilePrecacheTile(2207, 0);
|
||||||
|
tilePrecacheTile(2208, 0);
|
||||||
|
tilePrecacheTile(2209, 0);
|
||||||
|
tilePrecacheTile(2229, 0);
|
||||||
|
tilePrecacheTile(2260, 0);
|
||||||
|
tilePrecacheTile(2559, 0);
|
||||||
|
tilePrecacheTile(2169, 0);
|
||||||
|
tilePrecacheTile(2578, 0);
|
||||||
|
tilePrecacheTile(2586, 0);
|
||||||
|
tilePrecacheTile(2602, 0);
|
||||||
|
for (int i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
tilePrecacheTile(2190 + i, 0);
|
||||||
|
tilePrecacheTile(2230 + i, 0);
|
||||||
|
tilePrecacheTile(2240 + i, 0);
|
||||||
|
tilePrecacheTile(2250 + i, 0);
|
||||||
|
tilePrecacheTile(kSBarNumberHealth + i, 0);
|
||||||
|
tilePrecacheTile(kSBarNumberAmmo + i, 0);
|
||||||
|
tilePrecacheTile(kSBarNumberInv + i, 0);
|
||||||
|
tilePrecacheTile(kSBarNumberArmor1 + i, 0);
|
||||||
|
tilePrecacheTile(kSBarNumberArmor2 + i, 0);
|
||||||
|
tilePrecacheTile(kSBarNumberArmor3 + i, 0);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
tilePrecacheTile(gPackIcons[i], 0);
|
||||||
|
tilePrecacheTile(gPackIcons2[i].nTile, 0);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
tilePrecacheTile(2220 + i, 0);
|
||||||
|
tilePrecacheTile(2552 + i, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int *lensTable;
|
int *lensTable;
|
||||||
|
|
||||||
int gZoom = 1024;
|
int gZoom = 1024;
|
||||||
|
|
|
@ -153,6 +153,7 @@ void viewUpdateShake(void);
|
||||||
void viewSetCrosshairColor(int32_t r, int32_t g, int32_t b);
|
void viewSetCrosshairColor(int32_t r, int32_t g, int32_t b);
|
||||||
void viewResetCrosshairToDefault(void);
|
void viewResetCrosshairToDefault(void);
|
||||||
void viewSetSystemMessage(const char* pMessage, ...);
|
void viewSetSystemMessage(const char* pMessage, ...);
|
||||||
|
void viewPrecacheTiles(void);
|
||||||
|
|
||||||
inline void viewInterpolateSector(int nSector, sectortype *pSector)
|
inline void viewInterpolateSector(int nSector, sectortype *pSector)
|
||||||
{
|
{
|
||||||
|
|
|
@ -228,6 +228,15 @@ void WeaponInit(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WeaponPrecache(void)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < kQAVEnd; i++)
|
||||||
|
{
|
||||||
|
if (weaponQAV[i])
|
||||||
|
weaponQAV[i]->Precache();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void WeaponDraw(PLAYER *pPlayer, int a2, int a3, int a4, int a5)
|
void WeaponDraw(PLAYER *pPlayer, int a2, int a3, int a4, int a5)
|
||||||
{
|
{
|
||||||
dassert(pPlayer != NULL);
|
dassert(pPlayer != NULL);
|
||||||
|
|
|
@ -40,4 +40,5 @@ void WeaponProcess(PLAYER *pPlayer);
|
||||||
void WeaponUpdateState(PLAYER* pPlayer);
|
void WeaponUpdateState(PLAYER* pPlayer);
|
||||||
void sub_51340(spritetype *pMissile, int a2);
|
void sub_51340(spritetype *pMissile, int a2);
|
||||||
void StartQAV(PLAYER* pPlayer, int nWeaponQAV, int a3 = -1, char a4 = 0);
|
void StartQAV(PLAYER* pPlayer, int nWeaponQAV, int a3 = -1, char a4 = 0);
|
||||||
|
void WeaponPrecache(void);
|
||||||
END_BLD_NS
|
END_BLD_NS
|
||||||
|
|
Loading…
Reference in a new issue