aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/rpakfilesystem.h
blob: 12ef983ea12e5833feab908efb2587ea150c64b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

void InitialiseEngineRpakFilesystem(HMODULE baseAddress);

class PakLoadManager
{
  public:
	void LoadPakSync(const char* path);
	void LoadPakAsync(const char* path, bool bMarkForUnload);
	void UnloadPaks();

	bool IsPakLoaded(int32_t pakHandle);
	bool IsPakLoaded(size_t hash);
	void AddLoadedPak(int32_t pakHandle, size_t hash);
	void RemoveLoadedPak(int32_t pakHandle);

  private:
	std::vector<int> m_pakHandlesToUnload;
	// these size_t s are the asset path hashed with STR_HASH
	std::unordered_map<int32_t, size_t> loadedPaks {};
	std::unordered_map<size_t, int32_t> loadedPaksInv {};
};

extern PakLoadManager* g_PakLoadManager;