iw4x-client/src/Components/Modules/Zones.hpp
2022-04-07 11:41:20 +02:00

111 lines
4.9 KiB
C++

#pragma once
#define VERSION_ALPHA2 316
#define VERSION_ALPHA3 318//319
#define VERSION_ALPHA3_DEC 319
#define VERSION_LATEST_CODO 461
namespace Components
{
class Zones : public Component
{
public:
struct FileData
{
std::uint32_t readPos;
std::uint32_t len;
std::string fileContents;
};
Zones();
static void SetVersion(int version);
static int Version() { return Zones::ZoneVersion; };
static int GetEntitiesZoneVersion() { return Zones::EntitiesVersion; };
private:
static int ZoneVersion;
static int EntitiesVersion;
static int FxEffectIndex;
static char* FxEffectStrings[64];
static bool CheckGameMapSp(int type);
static void GameMapSpPatchStub();
static void LoadFxElemDefArrayStub(bool atStreamStart);
static bool LoadFxElemDefStub(bool atStreamStart, Game::FxElemDef* fxElem, int size);
static void LoadXModelLodInfo(int i);
static void LoadXModelLodInfoStub();
static bool LoadXModel(bool atStreamStart, char* xmodel, int size);
static bool LoadXSurfaceArray(bool atStreamStart, char* buffer, int size);
static bool LoadGameWorldSp(bool atStreamStart, char* buffer, int size);
static bool LoadVehicleDef(bool atStreamStart, char* buffer, int size);
static bool Loadsnd_alias_tArray(bool atStreamStart, char* buffer, int len);
static bool LoadLoadedSound(bool atStreamStart, char* buffer, int size);
static bool LoadmenuDef_t(bool atStreamStart, char* buffer, int size);
static bool LoadFxEffectDef(bool atStreamStart, char* buffer, int size);
static bool LoadMaterialShaderArgumentArray(bool atStreamStart, Game::MaterialShaderArgument* argument, int size);
static bool LoadStructuredDataStructPropertyArray(bool atStreamStart, char* data, int size);
static void LoadPathDataTail();
static void LoadWeaponAttach();
static void LoadWeaponAttachStuff(DWORD* varWeaponAttachStuff, int count);
static void LoadWeaponCompleteDef();
static bool LoadGfxImage(bool atStreamStart, char* buffer, int size);
static bool LoadXAsset(bool atStreamStart, char* buffer, int size);
static bool LoadMaterialTechnique(bool atStreamStart, char* buffer, int size);
static bool LoadMaterial(bool atStreamStart, char* buffer, int size);
static bool LoadGfxWorld(bool atStreamStart, char* buffer, int size);
static void Loadsunflare_t(bool atStreamStart);
static bool LoadStatement(bool atStreamStart, char* buffer, int size);
static void LoadWindowImage(bool atStreamStart);
static void LoadPhysPreset(bool atStreamStart, char* buffer, int size);
static void LoadXModelSurfs(bool atStreamStart, char* buffer, int size);
static void LoadImpactFx(bool atStreamStart, char* buffer, int size);
static void LoadPathNodeArray(bool atStreamStart, char* buffer, int size);
static void LoadPathnodeConstantTail(bool atStreamStart, char* buffer, int size);
static void LoadExpressionSupportingDataPtr(bool atStreamStart);
static void LoadImpactFxArray();
static int ImpactFxArrayCount();
static void LoadPathDataConstant();
static void GetCurrentAssetTypeStub();
static int LoadRandomFxGarbage(bool atStreamStart, char* buffer, int size);
static int LoadGfxXSurfaceArray(bool atStreamStart, char* buffer, int size);
static int LoadGfxXSurfaceExtraData(bool atStreamStart);
static int LoadGfxReflectionProbes(bool atStreamStart, char* buffer, int size);
static void LoadGfxLightMapExtraData();
static void LoadXModelColSurfPtr();
static int PathDataSize();
static int LoadMaterialTechniqueArray(bool atStreamStart, int count);
static int LoadMapEnts(bool atStreamStart, Game::MapEnts* buffer, int size);
static void Load_ClipInfo(bool atStreamStart);
static int LoadClipMap(bool atStreamStart);
static uint32_t HashCRC32StringInt(const std::string& Value, uint32_t Initial);
static std::unordered_map<int, Zones::FileData> fileDataMap;
static std::mutex fileDataMutex;
static int FS_FOpenFileReadForThreadOriginal(const char*, int*, int);
static int FS_FOpenFileReadForThreadHook(const char* file, int* filePointer, int thread);
static int FS_ReadOriginal(void*, size_t, int);
static int FS_ReadHook(void* buffer, size_t size, int filePointer);
static void FS_FCloseFileOriginal(int);
static void FS_FCloseFileHook(int filePointer);
static std::uint32_t FS_SeekOriginal(int, int, int);
static std::uint32_t FS_SeekHook(int fileHandle, int seekPosition, int seekOrigin);
static void LoadMapTriggersModelPointer();
static void LoadMapTriggersHullPointer();
static void LoadMapTriggersSlabPointer();
static void LoadFxWorldAsset(Game::FxWorld** asset);
static void LoadXModelAsset(Game::XModel** asset);
static void LoadMaterialAsset(Game::Material** asset);
static void LoadTracerDef(bool atStreamStart, Game::TracerDef* tracer, int size);
static void LoadTracerDefFxEffect();
static void FixImageCategory(Game::GfxImage* image);
static char* ParseShellShock_Stub(const char** data_p);
static char* ParseVision_Stub(const char** data_p);
};
}