Skip to content

Commit

Permalink
Client: HUD: Reload all sprites in VidInit
Browse files Browse the repository at this point in the history
  • Loading branch information
tmp64 committed Dec 3, 2023
1 parent d5b9670 commit 9ddc1b4
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 deletions.
24 changes: 12 additions & 12 deletions src/game/client/hud.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,7 @@ void CHud::VidInit(void)
m_rghSprites.resize(m_iSpriteCount);
m_rgrcRects.resize(m_iSpriteCount);
m_rgszSpriteNames.resize(m_iSpriteCount);
m_rgSpritePaths.resize(m_iSpriteCount);

p = m_pSpriteList;
int index = 0;
Expand All @@ -472,6 +473,7 @@ void CHud::VidInit(void)
m_rghSprites[index] = SPR_Load(sz);
m_rgrcRects[index] = p->rc;
Q_strncpy(m_rgszSpriteNames[index].name, p->szName, MAX_SPRITE_NAME_LENGTH);
m_rgSpritePaths[index] = sz;

index++;
}
Expand All @@ -497,19 +499,14 @@ void CHud::VidInit(void)
{
// we have already have loaded the sprite reference from hud.txt, but
// we need to make sure all the sprites have been loaded (we've gone through a transition, or loaded a save game)
client_sprite_t *p = m_pSpriteList;
int index = 0;
for (int j = 0; j < m_iSpriteCountAllRes; j++)
{
if (p->iRes == m_iRes)
{
char sz[256];
sprintf(sz, "sprites/%s.spr", p->szSprite);
m_rghSprites[index] = SPR_Load(sz);
index++;
}
Assert(m_rghSprites.size() == m_iSpriteCount);
Assert(m_rgrcRects.size() == m_iSpriteCount);
Assert(m_rgszSpriteNames.size() == m_iSpriteCount);
Assert(m_rgSpritePaths.size() == m_iSpriteCount);

p++;
for (int i = 0; i < m_iSpriteCount; i++)
{
m_rghSprites[i] = SPR_Load(m_rgSpritePaths[i].c_str());
}
}

Expand Down Expand Up @@ -651,11 +648,14 @@ void CHud::AddSprite(const client_sprite_t &p)
m_rgszSpriteNames.push_back({});
Q_strncpy(m_rgszSpriteNames[m_iSpriteCount].name, p.szName, MAX_SPRITE_NAME_LENGTH);

m_rgSpritePaths.emplace_back(sz);

m_iSpriteCount++;

Assert(m_rghSprites.size() == m_iSpriteCount);
Assert(m_rgrcRects.size() == m_iSpriteCount);
Assert(m_rgszSpriteNames.size() == m_iSpriteCount);
Assert(m_rgSpritePaths.size() == m_iSpriteCount);
}

float g_lastFOV = 0.0;
Expand Down
2 changes: 2 additions & 0 deletions src/game/client/hud.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <vector>
#include <queue>
#include <unordered_map>
#include <string>
#include <tier0/dbg.h>
#include <Color.h>
#include "global_consts.h"
Expand Down Expand Up @@ -283,6 +284,7 @@ class CHud
std::vector<HSPRITE> m_rghSprites; /*[HUD_SPRITE_COUNT]*/ // the sprites loaded from hud.txt
std::vector<wrect_t> m_rgrcRects; /*[HUD_SPRITE_COUNT]*/
std::vector<SpriteName> m_rgszSpriteNames; /*[HUD_SPRITE_COUNT].name*/
std::vector<std::string> m_rgSpritePaths;

std::queue<std::function<void()>> m_NextFrameQueue;

Expand Down

0 comments on commit 9ddc1b4

Please sign in to comment.