Skip to content

Commit

Permalink
Create CDirectorySA Class
Browse files Browse the repository at this point in the history
  • Loading branch information
W3lac3 committed Jan 26, 2025
1 parent 38a520d commit 3b6b736
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
40 changes: 40 additions & 0 deletions Client/game_sa/CDirectorySA.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#include "StdInc.h"
#include "CDirectorySA.h"

DirectoryInfo* CDirectorySA::GetModelEntry(ushort modelId)
{
if (m_nNumEntries <= 0)
return nullptr;

DirectoryInfo* entry = m_pEntries + modelId;

if (!entry)
return nullptr;

return entry;
}

bool CDirectorySA::SetModelStreamingSize(ushort modelId, uint16 size)
{
DirectoryInfo* entry = GetModelEntry(modelId);

if (!entry)
return false;

if (entry->m_nStreamingSize == size)
return false;

entry->m_nStreamingSize = size;
return true;
}


uint16 CDirectorySA::GetModelStreamingSize(ushort modelId)
{
DirectoryInfo* entry = GetModelEntry(modelId);

if (!entry)
return false;

return entry->m_nStreamingSize;
}
23 changes: 23 additions & 0 deletions Client/game_sa/CDirectorySA.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#include <SharedUtil.IntTypes.h>

struct DirectoryInfo
{
uint32 m_nOffset;
uint16 m_nStreamingSize;
uint16 m_nSizeInArchive;
char m_szName[24];
};

class CDirectorySA
{
public:
DirectoryInfo* GetModelEntry(ushort modelId);
bool SetModelStreamingSize(ushort modelId, uint16 size);
uint16 GetModelStreamingSize(ushort modelId);

private:
DirectoryInfo* m_pEntries{};
uint32 m_nCapacity{};
uint32 m_nNumEntries{};
bool m_bOwnsEntries{};
};

0 comments on commit 3b6b736

Please sign in to comment.