359 zone stuff, (360 seems to work as well, as an old shipment copy i have on my hdd loads, i just don't have the iwds), gfx world still broken, might be possible to fix!
This commit is contained in:
parent
b48df26c14
commit
080f9b3599
@ -287,7 +287,7 @@ namespace Components
|
|||||||
|
|
||||||
unsigned long outLen = sizeof(FastFiles::CurrentKey);
|
unsigned long outLen = sizeof(FastFiles::CurrentKey);
|
||||||
rsa_import(FastFiles::ZoneKey, sizeof(FastFiles::ZoneKey), &key);
|
rsa_import(FastFiles::ZoneKey, sizeof(FastFiles::ZoneKey), &key);
|
||||||
rsa_decrypt_key_ex(encKey, 256, FastFiles::CurrentKey.data, &outLen, NULL, NULL, hash, 2, &stat, &key);
|
rsa_decrypt_key_ex(encKey, 256, FastFiles::CurrentKey.data, &outLen, NULL, NULL, hash, (Zones::Version() >= 359 ? 1 : 2), &stat, &key);
|
||||||
rsa_free(&key);
|
rsa_free(&key);
|
||||||
|
|
||||||
ctr_start(aes, FastFiles::CurrentKey.iv, FastFiles::CurrentKey.key, sizeof(FastFiles::CurrentKey.key), 0, 0, &FastFiles::CurrentCTR);
|
ctr_start(aes, FastFiles::CurrentKey.iv, FastFiles::CurrentKey.key, sizeof(FastFiles::CurrentKey.key), 0, 0, &FastFiles::CurrentCTR);
|
||||||
|
@ -126,7 +126,7 @@ namespace Components
|
|||||||
format = "maps/%s.d3dbsp";
|
format = "maps/%s.d3dbsp";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_strnicmp("mp_", mapname, 3) || mapname == "mp_nuked"s || mapname == "mp_bloc"s || mapname == "mp_cargoship"s || mapname == "mp_cross_fire"s || mapname == "mp_bog_sh"s || mapname == "mp_killhouse"s || mapname == "mp_bloc_sh"s || mapname == "mp_cargoship_sh"s)
|
if (_strnicmp("mp_", mapname, 3) || mapname == "mp_nuked"s || mapname == "mp_bloc"s || mapname == "mp_cargoship"s || mapname == "mp_cross_fire"s || mapname == "mp_bog_sh"s || mapname == "mp_killhouse"s || mapname == "mp_bloc_sh"s || mapname == "mp_cargoship_sh"s || mapname == "mp_firingrange"s)
|
||||||
{
|
{
|
||||||
// Adjust pointer to GameMap_Data
|
// Adjust pointer to GameMap_Data
|
||||||
Utils::Hook::Set<Game::GameMap_Data**>(0x4D90B7, &(Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAME_MAP_SP].gameMapSP[0].data));
|
Utils::Hook::Set<Game::GameMap_Data**>(0x4D90B7, &(Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAME_MAP_SP].gameMapSP[0].data));
|
||||||
@ -257,6 +257,7 @@ namespace Components
|
|||||||
|
|
||||||
Maps::AddDependency("mp_bloc_sh", "iw4x_dependencies_mp");
|
Maps::AddDependency("mp_bloc_sh", "iw4x_dependencies_mp");
|
||||||
Maps::AddDependency("mp_cargoship_sh", "iw4x_dependencies_mp");
|
Maps::AddDependency("mp_cargoship_sh", "iw4x_dependencies_mp");
|
||||||
|
Maps::AddDependency("mp_firingrange", "iw4x_dependencies_mp");
|
||||||
}
|
}
|
||||||
|
|
||||||
Maps::~Maps()
|
Maps::~Maps()
|
||||||
|
@ -109,6 +109,12 @@ namespace Components
|
|||||||
// Adapt death message to IW5 material format
|
// Adapt death message to IW5 material format
|
||||||
Utils::Hook(0x5A30D9, Materials::DeathMessageStub, HOOK_JUMP).Install()->Quick();
|
Utils::Hook(0x5A30D9, Materials::DeathMessageStub, HOOK_JUMP).Install()->Quick();
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
// Ignore missing images
|
||||||
|
Utils::Hook::Nop(0x51F5AC, 5);
|
||||||
|
Utils::Hook::Nop(0x51F4C4, 5);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Renderer::OnFrame([] ()
|
// Renderer::OnFrame([] ()
|
||||||
// {
|
// {
|
||||||
// Game::Font* font = Game::R_RegisterFont("fonts/normalFont");
|
// Game::Font* font = Game::R_RegisterFont("fonts/normalFont");
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -46,6 +46,7 @@ namespace Game
|
|||||||
DB_GetXAssetTypeName_t DB_GetXAssetTypeName = (DB_GetXAssetTypeName_t)0x4CFCF0;
|
DB_GetXAssetTypeName_t DB_GetXAssetTypeName = (DB_GetXAssetTypeName_t)0x4CFCF0;
|
||||||
DB_IsXAssetDefault_t DB_IsXAssetDefault = (DB_IsXAssetDefault_t)0x48E6A0;
|
DB_IsXAssetDefault_t DB_IsXAssetDefault = (DB_IsXAssetDefault_t)0x48E6A0;
|
||||||
DB_LoadXAssets_t DB_LoadXAssets = (DB_LoadXAssets_t)0x4E5930;
|
DB_LoadXAssets_t DB_LoadXAssets = (DB_LoadXAssets_t)0x4E5930;
|
||||||
|
DB_LoadXFileData_t DB_LoadXFileData = (DB_LoadXFileData_t)0x445460;
|
||||||
DB_ReadXFileUncompressed_t DB_ReadXFileUncompressed = (DB_ReadXFileUncompressed_t)0x4705E0;
|
DB_ReadXFileUncompressed_t DB_ReadXFileUncompressed = (DB_ReadXFileUncompressed_t)0x4705E0;
|
||||||
DB_ReleaseXAssetHandler_t* DB_ReleaseXAssetHandlers = (DB_ReleaseXAssetHandler_t*)0x799AB8;
|
DB_ReleaseXAssetHandler_t* DB_ReleaseXAssetHandlers = (DB_ReleaseXAssetHandler_t*)0x799AB8;
|
||||||
DB_XModelSurfsFixup_t DB_XModelSurfsFixup = (DB_XModelSurfsFixup_t)0x5BAC50;
|
DB_XModelSurfsFixup_t DB_XModelSurfsFixup = (DB_XModelSurfsFixup_t)0x5BAC50;
|
||||||
@ -110,6 +111,7 @@ namespace Game
|
|||||||
Load_SndAliasCustom_t Load_SndAliasCustom = (Load_SndAliasCustom_t)0x49B6B0;
|
Load_SndAliasCustom_t Load_SndAliasCustom = (Load_SndAliasCustom_t)0x49B6B0;
|
||||||
Load_MaterialHandle_t Load_MaterialHandle = (Load_MaterialHandle_t)0x403960;
|
Load_MaterialHandle_t Load_MaterialHandle = (Load_MaterialHandle_t)0x403960;
|
||||||
Load_PhysCollmapPtr_t Load_PhysCollmapPtr = (Load_PhysCollmapPtr_t)0x47E990;
|
Load_PhysCollmapPtr_t Load_PhysCollmapPtr = (Load_PhysCollmapPtr_t)0x47E990;
|
||||||
|
Load_PhysPresetPtr_t Load_PhysPresetPtr = (Load_PhysPresetPtr_t)0x4FAD30;
|
||||||
Load_TracerDefPtr_t Load_TracerDefPtr = (Load_TracerDefPtr_t)0x493090;
|
Load_TracerDefPtr_t Load_TracerDefPtr = (Load_TracerDefPtr_t)0x493090;
|
||||||
Load_snd_alias_list_nameArray_t Load_snd_alias_list_nameArray = (Load_snd_alias_list_nameArray_t)0x4499F0;
|
Load_snd_alias_list_nameArray_t Load_snd_alias_list_nameArray = (Load_snd_alias_list_nameArray_t)0x4499F0;
|
||||||
|
|
||||||
@ -286,6 +288,7 @@ namespace Game
|
|||||||
Material*** varMaterialHandle = (Material***)0x112A878;
|
Material*** varMaterialHandle = (Material***)0x112A878;
|
||||||
FxEffectDef*** varFxEffectDefHandle = (FxEffectDef***)0x112ACC0;
|
FxEffectDef*** varFxEffectDefHandle = (FxEffectDef***)0x112ACC0;
|
||||||
PhysCollmap*** varPhysCollmapPtr = (PhysCollmap***)0x112B440;
|
PhysCollmap*** varPhysCollmapPtr = (PhysCollmap***)0x112B440;
|
||||||
|
PhysPreset*** varPhysPresetPtr = (PhysPreset***)0x112B378;
|
||||||
Game::MaterialPass** varMaterialPass = (Game::MaterialPass**)0x112A960;
|
Game::MaterialPass** varMaterialPass = (Game::MaterialPass**)0x112A960;
|
||||||
snd_alias_list_t*** varsnd_alias_list_name = (snd_alias_list_t***)0x112AF38;
|
snd_alias_list_t*** varsnd_alias_list_name = (snd_alias_list_t***)0x112AF38;
|
||||||
|
|
||||||
|
@ -105,6 +105,9 @@ namespace Game
|
|||||||
typedef void(*DB_LoadXAssets_t)(XZoneInfo *zoneInfo, unsigned int zoneCount, int sync);
|
typedef void(*DB_LoadXAssets_t)(XZoneInfo *zoneInfo, unsigned int zoneCount, int sync);
|
||||||
extern DB_LoadXAssets_t DB_LoadXAssets;
|
extern DB_LoadXAssets_t DB_LoadXAssets;
|
||||||
|
|
||||||
|
typedef void(*DB_LoadXFileData_t)(char *pos, int size);
|
||||||
|
extern DB_LoadXFileData_t DB_LoadXFileData;
|
||||||
|
|
||||||
typedef void(__cdecl * DB_ReadXFileUncompressed_t)(void* buffer, int size);
|
typedef void(__cdecl * DB_ReadXFileUncompressed_t)(void* buffer, int size);
|
||||||
extern DB_ReadXFileUncompressed_t DB_ReadXFileUncompressed;
|
extern DB_ReadXFileUncompressed_t DB_ReadXFileUncompressed;
|
||||||
|
|
||||||
@ -266,6 +269,9 @@ namespace Game
|
|||||||
typedef void(__cdecl *Load_PhysCollmapPtr_t)(bool atStreamStart);
|
typedef void(__cdecl *Load_PhysCollmapPtr_t)(bool atStreamStart);
|
||||||
extern Load_PhysCollmapPtr_t Load_PhysCollmapPtr;
|
extern Load_PhysCollmapPtr_t Load_PhysCollmapPtr;
|
||||||
|
|
||||||
|
typedef void(__cdecl *Load_PhysPresetPtr_t)(bool atStreamStart);
|
||||||
|
extern Load_PhysPresetPtr_t Load_PhysPresetPtr;
|
||||||
|
|
||||||
typedef void(__cdecl *Load_TracerDefPtr_t)(bool atStreamStart);
|
typedef void(__cdecl *Load_TracerDefPtr_t)(bool atStreamStart);
|
||||||
extern Load_TracerDefPtr_t Load_TracerDefPtr;
|
extern Load_TracerDefPtr_t Load_TracerDefPtr;
|
||||||
|
|
||||||
@ -576,6 +582,7 @@ namespace Game
|
|||||||
extern Material*** varMaterialHandle;
|
extern Material*** varMaterialHandle;
|
||||||
extern FxEffectDef*** varFxEffectDefHandle;
|
extern FxEffectDef*** varFxEffectDefHandle;
|
||||||
extern PhysCollmap*** varPhysCollmapPtr;
|
extern PhysCollmap*** varPhysCollmapPtr;
|
||||||
|
extern PhysPreset*** varPhysPresetPtr;
|
||||||
extern Game::MaterialPass** varMaterialPass;
|
extern Game::MaterialPass** varMaterialPass;
|
||||||
extern snd_alias_list_t*** varsnd_alias_list_name;
|
extern snd_alias_list_t*** varsnd_alias_list_name;
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ namespace Game
|
|||||||
short height;
|
short height;
|
||||||
short width;
|
short width;
|
||||||
short depth;
|
short depth;
|
||||||
bool loaded;
|
char loaded;
|
||||||
char pad;
|
char pad;
|
||||||
char* name;
|
char* name;
|
||||||
};
|
};
|
||||||
@ -2312,6 +2312,469 @@ namespace Game
|
|||||||
char pad[716];
|
char pad[716];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct XModelDrawInfo
|
||||||
|
{
|
||||||
|
unsigned __int16 lod;
|
||||||
|
unsigned __int16 surfId;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxSceneDynModel
|
||||||
|
{
|
||||||
|
XModelDrawInfo info;
|
||||||
|
unsigned __int16 dynEntId;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct BModelDrawInfo
|
||||||
|
{
|
||||||
|
unsigned __int16 surfId;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxSceneDynBrush
|
||||||
|
{
|
||||||
|
BModelDrawInfo info;
|
||||||
|
unsigned __int16 dynEntId;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxStreamingAabbTree
|
||||||
|
{
|
||||||
|
unsigned __int16 firstItem;
|
||||||
|
unsigned __int16 itemCount;
|
||||||
|
unsigned __int16 firstChild;
|
||||||
|
unsigned __int16 childCount;
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxWorldStreamInfo
|
||||||
|
{
|
||||||
|
int aabbTreeCount;
|
||||||
|
GfxStreamingAabbTree *aabbTrees;
|
||||||
|
int leafRefCount;
|
||||||
|
int *leafRefs;
|
||||||
|
};
|
||||||
|
|
||||||
|
union GfxColor
|
||||||
|
{
|
||||||
|
unsigned int packed;
|
||||||
|
char array[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
union PackedUnitVec
|
||||||
|
{
|
||||||
|
unsigned int packed;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxWorldVertex
|
||||||
|
{
|
||||||
|
float xyz[3];
|
||||||
|
float binormalSign;
|
||||||
|
GfxColor color;
|
||||||
|
float texCoord[2];
|
||||||
|
float lmapCoord[2];
|
||||||
|
PackedUnitVec normal;
|
||||||
|
PackedUnitVec tangent;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxWorldVertexData
|
||||||
|
{
|
||||||
|
GfxWorldVertex *vertices;
|
||||||
|
void/*IDirect3DVertexBuffer9*/* worldVb;
|
||||||
|
};
|
||||||
|
|
||||||
|
#pragma pack(push, 4)
|
||||||
|
struct GfxLightImage
|
||||||
|
{
|
||||||
|
GfxImage *image;
|
||||||
|
char samplerState;
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
struct GfxLightDef
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
GfxLightImage attenuation;
|
||||||
|
int lmapLookupStart;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLight
|
||||||
|
{
|
||||||
|
char type;
|
||||||
|
char canUseShadowMap;
|
||||||
|
char unused[2];
|
||||||
|
float color[3];
|
||||||
|
float dir[3];
|
||||||
|
float origin[3];
|
||||||
|
float radius;
|
||||||
|
float cosHalfFovOuter;
|
||||||
|
float cosHalfFovInner;
|
||||||
|
int exponent;
|
||||||
|
unsigned int spotShadowIndex;
|
||||||
|
GfxLightDef *def;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxReflectionProbe
|
||||||
|
{
|
||||||
|
float offset[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cplane_s;
|
||||||
|
|
||||||
|
struct GfxWorldDpvsPlanes
|
||||||
|
{
|
||||||
|
int cellCount;
|
||||||
|
cplane_s *planes;
|
||||||
|
unsigned __int16 *nodes;
|
||||||
|
unsigned int *sceneEntCellBits; //Size = cellCount << 11
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxAabbTree
|
||||||
|
{
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
unsigned __int16 childCount;
|
||||||
|
unsigned __int16 surfaceCount;
|
||||||
|
unsigned __int16 startSurfIndex;
|
||||||
|
unsigned __int16 smodelIndexCount;
|
||||||
|
unsigned __int16 *smodelIndexes;
|
||||||
|
int childrenOffset;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightGridEntry
|
||||||
|
{
|
||||||
|
unsigned __int16 colorsIndex;
|
||||||
|
char primaryLightIndex;
|
||||||
|
char needsTrace;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightGridColors
|
||||||
|
{
|
||||||
|
char rgb[56][3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxStaticModelInst
|
||||||
|
{
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
GfxColor groundLighting;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct srfTriangles_t
|
||||||
|
{
|
||||||
|
int vertexLayerData;
|
||||||
|
int firstVertex;
|
||||||
|
unsigned __int16 vertexCount;
|
||||||
|
unsigned __int16 triCount;
|
||||||
|
int baseIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxSurface
|
||||||
|
{
|
||||||
|
srfTriangles_t tris;
|
||||||
|
Material *material;
|
||||||
|
char lightmapIndex;
|
||||||
|
char reflectionProbeIndex;
|
||||||
|
char primaryLightIndex;
|
||||||
|
bool castsSunShadow;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxCullGroup
|
||||||
|
{
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
int surfaceCount;
|
||||||
|
int startSurfIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxDrawSurfFields
|
||||||
|
{
|
||||||
|
__int64 _bf0;
|
||||||
|
};
|
||||||
|
|
||||||
|
union GfxDrawSurf
|
||||||
|
{
|
||||||
|
GfxDrawSurfFields fields;
|
||||||
|
unsigned __int64 packed;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxStaticModelDrawInst;
|
||||||
|
|
||||||
|
struct GfxWorldDpvsStatic
|
||||||
|
{
|
||||||
|
unsigned int smodelCount;
|
||||||
|
unsigned int staticSurfaceCount;
|
||||||
|
unsigned int litSurfsBegin;
|
||||||
|
unsigned int litSurfsEnd;
|
||||||
|
char unknown1[0x20];
|
||||||
|
char *smodelVisData[3];
|
||||||
|
char *surfaceVisData[3];
|
||||||
|
unsigned __int16 *sortedSurfIndex;
|
||||||
|
GfxStaticModelInst *smodelInsts;
|
||||||
|
GfxSurface *surfaces;
|
||||||
|
GfxCullGroup *cullGroups;
|
||||||
|
GfxStaticModelDrawInst *smodelDrawInsts;
|
||||||
|
GfxDrawSurf *surfaceMaterials;
|
||||||
|
unsigned int *surfaceCastsSunShadow;
|
||||||
|
volatile int usageCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
#pragma pack(push, 4)
|
||||||
|
struct GfxPackedPlacement
|
||||||
|
{
|
||||||
|
float origin[3];
|
||||||
|
PackedUnitVec axis[3];
|
||||||
|
float scale;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxStaticModelDrawInst
|
||||||
|
{
|
||||||
|
GfxPackedPlacement placement;
|
||||||
|
XModel *model;
|
||||||
|
float cullDist;
|
||||||
|
char reflectionProbeIndex;
|
||||||
|
char primaryLightIndex;
|
||||||
|
unsigned __int16 lightingHandle;
|
||||||
|
char flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct cplane_s
|
||||||
|
{
|
||||||
|
float normal[3];
|
||||||
|
float dist;
|
||||||
|
char type;
|
||||||
|
char signbits;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxPortalWritable
|
||||||
|
{
|
||||||
|
bool isQueued;
|
||||||
|
bool isAncestor;
|
||||||
|
char recursionDepth;
|
||||||
|
char hullPointCount;
|
||||||
|
float(*hullPoints)[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct DpvsPlane
|
||||||
|
{
|
||||||
|
float coeffs[4];
|
||||||
|
char side[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxPortal
|
||||||
|
{
|
||||||
|
GfxPortalWritable writable;
|
||||||
|
DpvsPlane plane;
|
||||||
|
float(*vertices)[3];
|
||||||
|
char unknown[2];
|
||||||
|
char vertexCount;
|
||||||
|
float hullAxis[2][3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxCell
|
||||||
|
{
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
int portalCount;
|
||||||
|
GfxPortal *portals;
|
||||||
|
char reflectionProbeCount;
|
||||||
|
char *reflectionProbes;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightmapArray
|
||||||
|
{
|
||||||
|
GfxImage *primary;
|
||||||
|
GfxImage *secondary;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightGrid
|
||||||
|
{
|
||||||
|
bool hasLightRegions;
|
||||||
|
unsigned int sunPrimaryLightIndex;
|
||||||
|
unsigned __int16 mins[3];
|
||||||
|
unsigned __int16 maxs[3];
|
||||||
|
unsigned int rowAxis;
|
||||||
|
unsigned int colAxis;
|
||||||
|
unsigned __int16 *rowDataStart;
|
||||||
|
unsigned int rawRowDataSize;
|
||||||
|
char *rawRowData;
|
||||||
|
unsigned int entryCount;
|
||||||
|
GfxLightGridEntry *entries;
|
||||||
|
unsigned int colorCount;
|
||||||
|
GfxLightGridColors *colors;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxBrushModelWritable
|
||||||
|
{
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxBrushModel
|
||||||
|
{
|
||||||
|
GfxBrushModelWritable writable;
|
||||||
|
float bounds[2][3];
|
||||||
|
unsigned int surfaceCount;
|
||||||
|
unsigned int startSurfIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MaterialMemory
|
||||||
|
{
|
||||||
|
Material *material;
|
||||||
|
int memory;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sunflare_t
|
||||||
|
{
|
||||||
|
bool hasValidData;
|
||||||
|
Material *spriteMaterial;
|
||||||
|
Material *flareMaterial;
|
||||||
|
float spriteSize;
|
||||||
|
float flareMinSize;
|
||||||
|
float flareMinDot;
|
||||||
|
float flareMaxSize;
|
||||||
|
float flareMaxDot;
|
||||||
|
float flareMaxAlpha;
|
||||||
|
int flareFadeInTime;
|
||||||
|
int flareFadeOutTime;
|
||||||
|
float blindMinDot;
|
||||||
|
float blindMaxDot;
|
||||||
|
float blindMaxDarken;
|
||||||
|
int blindFadeInTime;
|
||||||
|
int blindFadeOutTime;
|
||||||
|
float glareMinDot;
|
||||||
|
float glareMaxDot;
|
||||||
|
float glareMaxLighten;
|
||||||
|
int glareFadeInTime;
|
||||||
|
int glareFadeOutTime;
|
||||||
|
float sunFxPosition[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxShadowGeometry
|
||||||
|
{
|
||||||
|
unsigned __int16 surfaceCount;
|
||||||
|
unsigned __int16 smodelCount;
|
||||||
|
unsigned __int16 *sortedSurfIndex;
|
||||||
|
unsigned __int16 *smodelIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightRegionAxis
|
||||||
|
{
|
||||||
|
float dir[3];
|
||||||
|
float midPoint;
|
||||||
|
float halfSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightRegionHull
|
||||||
|
{
|
||||||
|
float kdopMidPoint[9];
|
||||||
|
float kdopHalfSize[9];
|
||||||
|
unsigned int axisCount;
|
||||||
|
GfxLightRegionAxis *axis;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxLightRegion
|
||||||
|
{
|
||||||
|
unsigned int hullCount;
|
||||||
|
GfxLightRegionHull *hulls;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxWorldDpvsDynamic
|
||||||
|
{
|
||||||
|
unsigned int dynEntClientWordCount[2];
|
||||||
|
unsigned int dynEntClientCount[2];
|
||||||
|
unsigned int *dynEntCellBits[2];
|
||||||
|
char *dynEntVisData[2][3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SunLightParseParams
|
||||||
|
{
|
||||||
|
char name[64];
|
||||||
|
float ambientScale;
|
||||||
|
float ambientColor[3];
|
||||||
|
float diffuseFraction;
|
||||||
|
float sunLight;
|
||||||
|
float sunColor[3];
|
||||||
|
float diffuseColor[3];
|
||||||
|
bool diffuseColorHasBeenSet;
|
||||||
|
float angles[3];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxWorldVertexLayerData
|
||||||
|
{
|
||||||
|
char *data;
|
||||||
|
void/*IDirect3DVertexBuffer9*/* layerVb;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef char GfxTexture[0x34];
|
||||||
|
|
||||||
|
struct GfxWorldDraw
|
||||||
|
{
|
||||||
|
unsigned int reflectionProbeCount;
|
||||||
|
GfxImage * * reflectionImages;
|
||||||
|
GfxReflectionProbe *reflectionProbes;
|
||||||
|
GfxTexture * reflectionProbeTextures; //Count = refelctionProbeCount
|
||||||
|
int lightmapCount;
|
||||||
|
GfxLightmapArray *lightmaps;
|
||||||
|
GfxTexture * lightmapPrimaryTextures; //Count = lightmapCount
|
||||||
|
GfxTexture * lightmapSecondaryTextures; //Count = lightmapCount
|
||||||
|
GfxImage *skyImage;
|
||||||
|
GfxImage *outdoorImage;
|
||||||
|
unsigned int vertexCount;
|
||||||
|
GfxWorldVertexData vd;
|
||||||
|
unsigned int vertexLayerDataSize;
|
||||||
|
GfxWorldVertexLayerData vld;
|
||||||
|
int indexCount;
|
||||||
|
unsigned __int16 *indices;
|
||||||
|
void/*IDirect3DIndexBuffer9*/* indexBuffer;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct unknownGfxWorldStruct2
|
||||||
|
{
|
||||||
|
int unknownCount;
|
||||||
|
int * unknownArray;
|
||||||
|
GfxImage * unknownImage;
|
||||||
|
int unknown;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GfxWorld
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
const char *baseName;
|
||||||
|
int planeCount;
|
||||||
|
int nodeCount;
|
||||||
|
int unknown2;
|
||||||
|
unsigned int unknownCount1;
|
||||||
|
unknownGfxWorldStruct2 * unknownStructs1; //Count = unknownCount1;
|
||||||
|
char unknown1[0x18];
|
||||||
|
GfxWorldDpvsPlanes dpvsPlanes; //The following rely on the count in this
|
||||||
|
char *unknown4;
|
||||||
|
GfxAabbTree *aabbTree;
|
||||||
|
GfxCell *cells;
|
||||||
|
GfxWorldDraw worldDraw;
|
||||||
|
GfxLightGrid lightGrid;
|
||||||
|
int modelCount;
|
||||||
|
GfxBrushModel *models;
|
||||||
|
float mins[3];
|
||||||
|
float maxs[3];
|
||||||
|
unsigned int checksum;
|
||||||
|
int materialMemoryCount;
|
||||||
|
MaterialMemory *materialMemory;
|
||||||
|
sunflare_t sun;
|
||||||
|
unsigned int *cellCasterBits[2];
|
||||||
|
GfxSceneDynModel *sceneDynModel;
|
||||||
|
GfxSceneDynBrush *sceneDynBrush;
|
||||||
|
unsigned int *primaryLightEntityShadowVis;
|
||||||
|
unsigned int *primaryLightDynEntShadowVis[2];
|
||||||
|
char *primaryLightForModelDynEnt;
|
||||||
|
GfxShadowGeometry *shadowGeom;
|
||||||
|
GfxLightRegion *lightRegion;
|
||||||
|
GfxWorldDpvsStatic dpvs;
|
||||||
|
GfxWorldDpvsDynamic dpvsDyn;
|
||||||
|
unsigned int unknownCount3;
|
||||||
|
char * unknown3; //Size = unknownCount2 * 0x38
|
||||||
|
int unknown5;
|
||||||
|
};
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
union XAssetHeader
|
union XAssetHeader
|
||||||
{
|
{
|
||||||
void *data;
|
void *data;
|
||||||
@ -2345,6 +2808,7 @@ namespace Game
|
|||||||
GameWorldSp* gameMapSP;
|
GameWorldSp* gameMapSP;
|
||||||
TracerDef* tracer;
|
TracerDef* tracer;
|
||||||
VehicleDef* vehicle;
|
VehicleDef* vehicle;
|
||||||
|
GfxWorld* gfxMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct XAsset
|
struct XAsset
|
||||||
|
Loading…
x
Reference in New Issue
Block a user