mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 10:32:27 +00:00
- replaced the sprite precaching code with one that scans the actual content.
This will currently not do proper precacing for Duke, which requires actions to be defined as the ones from CON cannot be assigned to an actor.
This commit is contained in:
parent
83eb4852f7
commit
bb08a118d9
6 changed files with 53 additions and 520 deletions
|
@ -3,8 +3,8 @@
|
|||
#include "textureid.h"
|
||||
|
||||
void PrecacheHardwareTextures(int nTile);
|
||||
void markTextureForPrecache(FTextureID texid, int palnum);
|
||||
void markTextureForPrecache(const char* texname);
|
||||
void markTextureForPrecache(FTextureID texid, int palnum = 0);
|
||||
void markTextureForPrecache(const char* texname, int palnum = 0);
|
||||
void markVoxelForPrecache(int voxnum);
|
||||
void precacheMarkedTiles();
|
||||
void precacheMap();
|
||||
|
|
|
@ -210,8 +210,7 @@ void resetplayerstats(int pn);
|
|||
void resetweapons(player_struct* pn);
|
||||
void resetprestat(int snum, int g);
|
||||
void prelevel_common(int g);
|
||||
void cacheit_d();
|
||||
void cacheit_r();
|
||||
void cacheit();
|
||||
|
||||
void FTA(int q, player_struct* p);
|
||||
void OnMotorcycle(player_struct *pl);
|
||||
|
|
|
@ -1009,6 +1009,54 @@ static TArray<DDukeActor*> spawnactors(SpawnSpriteDef& sprites)
|
|||
return spawns;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static TMap<uint64_t, bool> checked;
|
||||
static void markClassForPrecache(PClass* cls, unsigned pal)
|
||||
{
|
||||
uint64_t key = cls->TypeName.GetIndex() + pal * (1ull << 32);
|
||||
if (checked.CheckKey(key)) return;
|
||||
checked.Insert(key, true);
|
||||
auto ainf = static_cast<PClassActor*>(cls)->ActorInfo();
|
||||
for (auto clss : ainf->precacheClasses)
|
||||
{
|
||||
markClassForPrecache(clss, pal);
|
||||
}
|
||||
for (auto tex : ainf->SpriteSet)
|
||||
{
|
||||
markTextureForPrecache(tex, pal);
|
||||
}
|
||||
|
||||
}
|
||||
void cacheit(void)
|
||||
{
|
||||
checked.Clear();
|
||||
for (auto tex : gameinfo.precacheTextures)
|
||||
{
|
||||
markTextureForPrecache(tex.GetChars());
|
||||
}
|
||||
for (auto tex : gameinfo.precacheClasses)
|
||||
{
|
||||
auto cls = PClass::FindActor(tex);
|
||||
if (cls) markClassForPrecache(cls, 0);
|
||||
}
|
||||
DukeSpriteIterator it;
|
||||
while (auto act = it.Next())
|
||||
{
|
||||
if (act->spr.scale.X != 0 && act->spr.scale.Y != 0 && (act->spr.cstat & CSTAT_SPRITE_INVISIBLE) == 0)
|
||||
{
|
||||
markClassForPrecache(act->GetClass(), act->spr.pal);
|
||||
}
|
||||
|
||||
// todo: scan the actions and precache all textures referenced in there as well.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
@ -1052,7 +1100,7 @@ static int LoadTheMap(MapRecord *mi, player_struct*p, int gamemode)
|
|||
|
||||
if (r_precache)
|
||||
{
|
||||
if (isRR()) cacheit_r(); else cacheit_d();
|
||||
cacheit();
|
||||
|
||||
precacheMap();
|
||||
precacheMarkedTiles();
|
||||
|
|
|
@ -41,194 +41,6 @@ source as it is released.
|
|||
|
||||
BEGIN_DUKE_NS
|
||||
|
||||
inline void tloadtile(int tilenum, int palnum = 0)
|
||||
{
|
||||
assert(tilenum < MAXTILES);
|
||||
markTextureForPrecache(tileGetTextureID(tilenum), palnum);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void cachespritenum(DDukeActor* actor)
|
||||
{
|
||||
int maxc;
|
||||
int j;
|
||||
int pal = actor->spr.pal;
|
||||
|
||||
if(ud.monsters_off && badguy(actor)) return;
|
||||
|
||||
maxc = 1;
|
||||
|
||||
switch(actor->spr.picnum)
|
||||
{
|
||||
case DTILE_HYDRENT:
|
||||
tloadtile(DTILE_BROKEFIREHYDRENT);
|
||||
for(j = DTILE_TOILETWATER; j < (DTILE_TOILETWATER+4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case DTILE_TOILET:
|
||||
tloadtile(DTILE_TOILETBROKE);
|
||||
for(j = DTILE_TOILETWATER; j < (DTILE_TOILETWATER+4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case DTILE_STALL:
|
||||
tloadtile(DTILE_STALLBROKE);
|
||||
for(j = DTILE_TOILETWATER; j < (DTILE_TOILETWATER+4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case DTILE_RUBBERCAN:
|
||||
maxc = 2;
|
||||
break;
|
||||
case DTILE_TOILETWATER:
|
||||
maxc = 4;
|
||||
break;
|
||||
case DTILE_FEMPIC1:
|
||||
maxc = 44;
|
||||
break;
|
||||
case DTILE_LIZTROOP:
|
||||
case DTILE_LIZTROOPRUNNING:
|
||||
case DTILE_LIZTROOPSHOOT:
|
||||
case DTILE_LIZTROOPJETPACK:
|
||||
case DTILE_LIZTROOPONTOILET:
|
||||
case DTILE_LIZTROOPDUCKING:
|
||||
for(j = DTILE_LIZTROOP; j < (DTILE_LIZTROOP+72); j++)
|
||||
tloadtile(j, pal);
|
||||
for(j=DTILE_HEADJIB1;j<DTILE_LEGJIB1+3;j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case DTILE_WOODENHORSE:
|
||||
maxc = 5;
|
||||
for(j = DTILE_HORSEONSIDE; j < (DTILE_HORSEONSIDE+4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case DTILE_NEWBEAST:
|
||||
case DTILE_NEWBEASTSTAYPUT:
|
||||
maxc = 90;
|
||||
break;
|
||||
case DTILE_BOSS1:
|
||||
case DTILE_BOSS2:
|
||||
case DTILE_BOSS3:
|
||||
maxc = 30;
|
||||
break;
|
||||
case DTILE_OCTABRAIN:
|
||||
case DTILE_OCTABRAINSTAYPUT:
|
||||
case DTILE_COMMANDER:
|
||||
case DTILE_COMMANDERSTAYPUT:
|
||||
maxc = 38;
|
||||
break;
|
||||
case DTILE_RECON:
|
||||
maxc = 13;
|
||||
break;
|
||||
case DTILE_PIGCOP:
|
||||
case DTILE_PIGCOPDIVE:
|
||||
maxc = 61;
|
||||
break;
|
||||
case DTILE_SHARK:
|
||||
maxc = 30;
|
||||
break;
|
||||
case DTILE_LIZMAN:
|
||||
case DTILE_LIZMANSPITTING:
|
||||
case DTILE_LIZMANFEEDING:
|
||||
case DTILE_LIZMANJUMP:
|
||||
for(j=DTILE_LIZMANHEAD1;j<DTILE_LIZMANLEG1+3;j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 80;
|
||||
break;
|
||||
case DTILE_APLAYER:
|
||||
maxc = 0;
|
||||
if(ud.multimode > 1)
|
||||
{
|
||||
maxc = 5;
|
||||
for(j = 1420;j < 1420+106; j++)
|
||||
tloadtile(j, pal);
|
||||
}
|
||||
break;
|
||||
case DTILE_ATOMICHEALTH:
|
||||
maxc = 14;
|
||||
break;
|
||||
case DTILE_DRONE:
|
||||
maxc = 10;
|
||||
break;
|
||||
case DTILE_EXPLODINGBARREL:
|
||||
maxc = 3;
|
||||
break;
|
||||
case DTILE_NUKEBARREL:
|
||||
maxc = 5;
|
||||
break;
|
||||
}
|
||||
|
||||
for(j = actor->spr.picnum; j < (actor->spr.picnum+maxc); j++)
|
||||
tloadtile(j, pal);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void cachegoodsprites(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i=DTILE_FOOTPRINTS;i<DTILE_FOOTPRINTS+3;i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_BURNING; i < DTILE_BURNING+14; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_BURNING2; i < DTILE_BURNING2+14; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_CRACKKNUCKLES0; i <= DTILE_CRACKKNUCKLES3; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_FIRSTGUN0; i <= DTILE_FIRSTGUN2 ; i++ )
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_EXPLOSION2; i < DTILE_EXPLOSION2+21 ; i++ )
|
||||
tloadtile(i);
|
||||
|
||||
tloadtile(DTILE_BULLETHOLE);
|
||||
|
||||
for( i = DTILE_FIRSTGUNRELOAD0; i <= DTILE_FIRSTGUNRELOAD0 + 7 ; i++ )
|
||||
tloadtile(i);
|
||||
|
||||
tloadtile(DTILE_FOOTPRINTS);
|
||||
|
||||
for( i = DTILE_JIBS1; i < (DTILE_JIBS5+5); i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_SCRAP1; i < (DTILE_SCRAP1+19); i++)
|
||||
tloadtile(i);
|
||||
|
||||
for( i = DTILE_SMALLSMOKE; i < (DTILE_SMALLSMOKE+4); i++)
|
||||
tloadtile(i);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void cacheit_d(void)
|
||||
{
|
||||
cachegoodsprites();
|
||||
|
||||
DukeSpriteIterator it;
|
||||
while (auto act = it.Next())
|
||||
{
|
||||
if (act->spr.scale.X != 0 && act->spr.scale.Y != 0 && (act->spr.cstat & CSTAT_SPRITE_INVISIBLE) == 0)
|
||||
cachespritenum(act);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
|
|
@ -35,332 +35,6 @@ Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
|
|||
|
||||
BEGIN_DUKE_NS
|
||||
|
||||
static inline void tloadtile(int tilenum, int palnum = 0)
|
||||
{
|
||||
assert(tilenum < MAXTILES);
|
||||
markTextureForPrecache(tileGetTextureID(tilenum), palnum);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void cachespritenum(DDukeActor* actor)
|
||||
{
|
||||
int maxc;
|
||||
int j;
|
||||
int pal = actor->spr.pal;
|
||||
|
||||
if (ud.monsters_off && badguy(actor)) return;
|
||||
|
||||
maxc = 1;
|
||||
|
||||
switch (actor->spr.picnum)
|
||||
{
|
||||
case RTILE_HYDRENT:
|
||||
tloadtile(RTILE_BROKEFIREHYDRENT);
|
||||
for (j = RTILE_TOILETWATER; j < (RTILE_TOILETWATER + 4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case RTILE_TOILETSEAT:
|
||||
case RTILE_TOILET2:
|
||||
tloadtile(actor->spr.picnum, pal);
|
||||
break;
|
||||
case RTILE_TOILET:
|
||||
tloadtile(RTILE_TOILETBROKE);
|
||||
for (j = RTILE_TOILETWATER; j < (RTILE_TOILETWATER + 4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case RTILE_STALL:
|
||||
tloadtile(RTILE_STALLBROKE);
|
||||
for (j = RTILE_TOILETWATER; j < (RTILE_TOILETWATER + 4); j++)
|
||||
tloadtile(j, pal);
|
||||
break;
|
||||
case RTILE_FORCERIPPLE:
|
||||
maxc = 9;
|
||||
break;
|
||||
case RTILE_TOILETWATER:
|
||||
maxc = 4;
|
||||
break;
|
||||
case RTILE_BUBBASTAND:
|
||||
for (j = RTILE_BUBBASCRATCH; j <= (RTILE_BUBBASCRATCH + 47); j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_BUBBAELVIS:
|
||||
if (isRRRA())
|
||||
for (j = RTILE_BUBBAELVIS; j <= (RTILE_BUBBAELVIS + 29); j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
|
||||
case RTILE_COOT:
|
||||
for (j = RTILE_COOT; j <= (RTILE_COOT + 217); j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_COOTJIBA; j < RTILE_COOTJIBC + 4; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_LTH:
|
||||
maxc = 105;
|
||||
for (j = RTILE_LTH; j < (RTILE_LTH + maxc); j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_BILLYRAY:
|
||||
maxc = 144;
|
||||
for (j = RTILE_BILLYWALK; j < (RTILE_BILLYWALK + maxc); j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_BILLYJIBA; j <= RTILE_BILLYJIBB + 4; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_COW:
|
||||
maxc = 56;
|
||||
for (j = actor->spr.picnum; j < (actor->spr.picnum + maxc); j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_DOGRUN:
|
||||
for (j = RTILE_DOGATTACK; j <= RTILE_DOGATTACK + 35; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_DOGRUN; j <= RTILE_DOGRUN + 80; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_RABBIT:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_RABBIT; j <= RTILE_RABBIT + 54; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_RABBIT + 56; j <= RTILE_RABBIT + 56 + 49; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_RABBIT + 56; j <= RTILE_RABBIT + 56 + 49; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_BIKERB:
|
||||
case RTILE_BIKERBV2:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_BIKERB; j <= RTILE_BIKERB + 104; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_BIKER:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_BIKER; j <= RTILE_BIKER + 116; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_BIKER + 150; j <= RTILE_BIKER + 150 + 104; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_CHEER:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_CHEER; j <= RTILE_CHEER + 44; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_CHEER + 47; j <= RTILE_CHEER + 47 + 211; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_CHEER + 262; j <= RTILE_CHEER + 262 + 72; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_CHEERB:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_CHEERB; j <= RTILE_CHEERB + 83; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_CHEERB + 157; j <= RTILE_CHEERB + 157 + 83; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_MAMA:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_MAMA; j <= RTILE_MAMA + 78; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_MAMA + 80; j <= RTILE_MAMA + 80 + 7; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_MAMA + 90; j <= RTILE_MAMA + 90 + 94; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_CHEERBOAT:
|
||||
if (isRRRA())
|
||||
{
|
||||
tloadtile(RTILE_CHEERBOAT);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_HULKBOAT:
|
||||
if (isRRRA())
|
||||
{
|
||||
tloadtile(RTILE_HULKBOAT);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_MINIONBOAT:
|
||||
if (isRRRA())
|
||||
{
|
||||
tloadtile(RTILE_MINIONBOAT);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_BILLYPLAY:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_BILLYPLAY; j <= RTILE_BILLYPLAY + 2; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_COOTPLAY:
|
||||
if (isRRRA())
|
||||
{
|
||||
for (j = RTILE_COOTPLAY; j <= RTILE_COOTPLAY + 4; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_PIG:
|
||||
case RTILE_PIGSTAYPUT:
|
||||
maxc = 68;
|
||||
break;
|
||||
case RTILE_TORNADO:
|
||||
maxc = 7;
|
||||
break;
|
||||
case RTILE_HEN:
|
||||
case RTILE_HENSTAND:
|
||||
maxc = 34;
|
||||
break;
|
||||
case RTILE_APLAYER:
|
||||
maxc = 0;
|
||||
if (ud.multimode > 1)
|
||||
{
|
||||
maxc = 5;
|
||||
for (j = RTILE_APLAYER; j < RTILE_APLAYER + 220; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_DUKEGUN; j < RTILE_DUKELEG + 4; j++)
|
||||
tloadtile(j, pal);
|
||||
}
|
||||
break;
|
||||
case RTILE_ATOMICHEALTH:
|
||||
maxc = 14;
|
||||
break;
|
||||
case RTILE_MOSQUITO:
|
||||
maxc = 6;
|
||||
break;
|
||||
case RTILE_VIXEN:
|
||||
maxc = 214;
|
||||
for (j = actor->spr.picnum; j < actor->spr.picnum + maxc; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_SBMOVE:
|
||||
if (!isRRRA())
|
||||
{
|
||||
|
||||
maxc = 54;
|
||||
for (j = actor->spr.picnum; j < actor->spr.picnum + maxc; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 100;
|
||||
for (j = RTILE_SBMOVE; j < RTILE_SBMOVE + maxc; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
}
|
||||
break;
|
||||
case RTILE_HULK:
|
||||
maxc = 40;
|
||||
for (j = actor->spr.picnum - 41; j < actor->spr.picnum + maxc - 41; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_HULKJIBA; j <= RTILE_HULKJIBC + 4; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
case RTILE_MINION:
|
||||
maxc = 141;
|
||||
for (j = actor->spr.picnum; j < actor->spr.picnum + maxc; j++)
|
||||
tloadtile(j, pal);
|
||||
for (j = RTILE_MINJIBA; j <= RTILE_MINJIBC + 4; j++)
|
||||
tloadtile(j, pal);
|
||||
maxc = 0;
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
for (j = actor->spr.picnum; j < (actor->spr.picnum + maxc); j++)
|
||||
tloadtile(j, pal);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void cachegoodsprites(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = RTILE_FOOTPRINTS; i < RTILE_FOOTPRINTS + 3; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for (i = RTILE_BURNING; i < RTILE_BURNING + 14; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for (i = RTILE_FIRSTGUN; i < RTILE_FIRSTGUN + 10; i++)
|
||||
tloadtile(i);
|
||||
|
||||
for (i = RTILE_EXPLOSION2; i < RTILE_EXPLOSION2 + 21; i++)
|
||||
tloadtile(i);
|
||||
|
||||
tloadtile(RTILE_BULLETHOLE);
|
||||
|
||||
for (i = RTILE_SHOTGUN; i < RTILE_SHOTGUN + 8; i++)
|
||||
tloadtile(i);
|
||||
|
||||
tloadtile(RTILE_FOOTPRINTS);
|
||||
|
||||
for (i = RTILE_JIBS1; i < (RTILE_JIBS5 + 5); i++)
|
||||
tloadtile(i);
|
||||
|
||||
for (i = RTILE_SCRAP1; i < (RTILE_SCRAP1 + 19); i++)
|
||||
tloadtile(i);
|
||||
|
||||
for (i = RTILE_SMALLSMOKE; i < (RTILE_SMALLSMOKE + 4); i++)
|
||||
tloadtile(i);
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void cacheit_r(void)
|
||||
{
|
||||
cachegoodsprites();
|
||||
|
||||
DukeSpriteIterator it;
|
||||
while (auto act = it.Next())
|
||||
{
|
||||
if (act->spr.scale.X != 0 && act->spr.scale.Y != 0 && (act->spr.cstat & CSTAT_SPRITE_INVISIBLE) == 0)
|
||||
cachespritenum(act);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
|
|
@ -496,7 +496,7 @@ void GameInterface::SerializeGameState(FSerializer& arc)
|
|||
ps[myconnectindex].over_shoulder_on = 1;
|
||||
}
|
||||
|
||||
if (isRR()) cacheit_r(); else cacheit_d();
|
||||
cacheit();
|
||||
|
||||
Mus_ResumeSaved();
|
||||
Mus_SetPaused(false);
|
||||
|
|
Loading…
Reference in a new issue