Various fixes and fastfile stuff
This commit is contained in:
parent
66e9b868b0
commit
157061b6e8
2
deps/fmt
vendored
2
deps/fmt
vendored
@ -1 +1 @@
|
|||||||
Subproject commit ed874df293f8c0831477a2abbdabfb3a0d0441a8
|
Subproject commit abbefd71666055daac9e14e78262620f9e845850
|
2
deps/mongoose
vendored
2
deps/mongoose
vendored
@ -1 +1 @@
|
|||||||
Subproject commit a17eae4142f3ab5eea8189810189ab1fec67294a
|
Subproject commit 835af2cae1b731a350ac86003f82183302bd2155
|
@ -151,7 +151,7 @@ namespace Components
|
|||||||
OutputDebugStringA(Utils::String::VA("%s: %s\n", FastFiles::Current().data(), name));
|
OutputDebugStringA(Utils::String::VA("%s: %s\n", FastFiles::Current().data(), name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (type <= 9 && type >= 6 && Zones::Version() >= 359)
|
if (type <= 9 && type >= 6 && Zones::Version() >= 359)
|
||||||
{
|
{
|
||||||
static Game::XAssetType __type;
|
static Game::XAssetType __type;
|
||||||
@ -179,9 +179,11 @@ namespace Components
|
|||||||
OutputDebugStringA("");
|
OutputDebugStringA("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (type == 21 && asset->gfxMap->baseName == "mp_underpass"s)
|
if (type == 21/* && asset->gfxMap->baseName == "mp_underpass"s*/ && false)
|
||||||
{
|
{
|
||||||
|
|
||||||
//asset->gfxMap->dpvs.smodelCount = 0;
|
//asset->gfxMap->dpvs.smodelCount = 0;
|
||||||
|
|
||||||
Game::GfxWorld* world = nullptr;
|
Game::GfxWorld* world = nullptr;
|
||||||
@ -335,26 +337,46 @@ namespace Components
|
|||||||
|
|
||||||
static Game::MaterialTechniqueSet* technique = nullptr;
|
static Game::MaterialTechniqueSet* technique = nullptr;
|
||||||
|
|
||||||
if (type == 5 && Utils::String::StartsWith(name, "wc/"))
|
/*if (type == 9)
|
||||||
{
|
{
|
||||||
if (technique == (Game::MaterialTechniqueSet*)1)
|
FILE* fp;
|
||||||
|
fopen_s(&fp, "test.txt", "a");
|
||||||
|
fprintf(fp, "%s: %s\n", FastFiles::Current().data(), name);
|
||||||
|
|
||||||
|
for (int i = 0; i < 48; i++)
|
||||||
{
|
{
|
||||||
technique = asset->material->techniqueSet;
|
if (asset->materialTechset->techniques[i])
|
||||||
|
{
|
||||||
|
fprintf(fp, "\t%d: %s\n", i, asset->materialTechset->techniques[i]->name);
|
||||||
|
|
||||||
|
for (int j = 0; j <asset->materialTechset->techniques[i]->numPasses; j++)
|
||||||
|
{
|
||||||
|
Game::MaterialPass* pass = &asset->materialTechset->techniques[i]->passes[j];
|
||||||
|
|
||||||
|
for (int k = 0; k < (pass->argCount1 + pass->argCount2 + pass->argCount3); k++)
|
||||||
|
{
|
||||||
|
fprintf(fp, "\t\t%d.%d.%d:\n", i, j, k);
|
||||||
|
|
||||||
|
fprintf(fp, "\t\t\tDest: %d\n", pass->argumentDef[k].dest & 0xFFFF);
|
||||||
|
fprintf(fp, "\t\t\tMore: %d\n", pass->argumentDef[k].more & 0xFFFF);
|
||||||
|
fprintf(fp, "\t\t\tType: %d\n", pass->argumentDef[k].type & 0xFFFF);
|
||||||
|
fprintf(fp, "\t\t\tPara: %d\n", pass->argumentDef[k].paramID & 0xFFFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!technique)
|
fprintf(fp, "\n");
|
||||||
{
|
fclose(fp);
|
||||||
technique = (Game::MaterialTechniqueSet*)1;
|
}*/
|
||||||
}
|
|
||||||
|
|
||||||
if (Zones::Version() >= 359)
|
// if (type == 5)
|
||||||
{
|
// {
|
||||||
//asset->material->techniqueSet = technique;
|
// FILE* fp;
|
||||||
}
|
// fopen_s(&fp, "test.txt", "a");
|
||||||
|
// fprintf(fp, "%s: %s %X %X %X\n", FastFiles::Current().data(), name, asset->material->sortKey & 0xFF, asset->material->gameFlags & 0xFF, asset->material->stateFlags & 0xFF);
|
||||||
//asset->material->sortKey = rand() & 0xFF;
|
// fclose(fp);
|
||||||
//OutputDebugStringA(Utils::String::VA("%s: %X %s", FastFiles::Current().data(), asset->material->sortKey & 0xFF, asset->material->name));
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
if (type == 5 && name == "wc/codo_ui_viewer_black_decal3"s)
|
if (type == 5 && name == "wc/codo_ui_viewer_black_decal3"s)
|
||||||
{
|
{
|
||||||
@ -545,7 +567,7 @@ namespace Components
|
|||||||
// Log missing empty assets
|
// Log missing empty assets
|
||||||
QuickPatch::OnFrame([] ()
|
QuickPatch::OnFrame([] ()
|
||||||
{
|
{
|
||||||
if (Game::Sys_IsDatabaseReady() && Game::Sys_IsDatabaseReady2() && !AssetHandler::EmptyAssets.empty())
|
if (FastFiles::Ready() && !AssetHandler::EmptyAssets.empty())
|
||||||
{
|
{
|
||||||
for (auto& asset : AssetHandler::EmptyAssets)
|
for (auto& asset : AssetHandler::EmptyAssets)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +197,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
if (ConnectProtocol::Used())
|
if (ConnectProtocol::Used())
|
||||||
{
|
{
|
||||||
if (!Game::Sys_IsDatabaseReady() && !Game::Sys_IsDatabaseReady2())
|
if (!FastFiles::Ready())
|
||||||
{
|
{
|
||||||
QuickPatch::Once(ConnectProtocol::Invocation);
|
QuickPatch::Once(ConnectProtocol::Invocation);
|
||||||
}
|
}
|
||||||
|
@ -218,6 +218,11 @@ namespace Components
|
|||||||
return std::ifstream(path.data()).good();
|
return std::ifstream(path.data()).good();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FastFiles::Ready()
|
||||||
|
{
|
||||||
|
return (Game::Sys_IsDatabaseReady() && Game::Sys_IsDatabaseReady2());
|
||||||
|
}
|
||||||
|
|
||||||
const char* FastFiles::GetZoneLocation(const char* file)
|
const char* FastFiles::GetZoneLocation(const char* file)
|
||||||
{
|
{
|
||||||
const char* dir = Dvar::Var("fs_basepath").Get<const char*>();
|
const char* dir = Dvar::Var("fs_basepath").Get<const char*>();
|
||||||
|
@ -12,7 +12,7 @@ namespace Components
|
|||||||
|
|
||||||
static void AddZonePath(std::string path);
|
static void AddZonePath(std::string path);
|
||||||
static std::string Current();
|
static std::string Current();
|
||||||
|
static bool Ready();
|
||||||
static bool Exists(std::string file);
|
static bool Exists(std::string file);
|
||||||
|
|
||||||
static void LoadLocalizeZones(Game::XZoneInfo *zoneInfo, unsigned int zoneCount, int sync);
|
static void LoadLocalizeZones(Game::XZoneInfo *zoneInfo, unsigned int zoneCount, int sync);
|
||||||
|
@ -314,7 +314,15 @@ namespace Components
|
|||||||
Assert_Size(Game::XAssetEntry, 16);
|
Assert_Size(Game::XAssetEntry, 16);
|
||||||
|
|
||||||
Maps::EntryPool.clear();
|
Maps::EntryPool.clear();
|
||||||
Maps::EntryPool.resize(789312);
|
|
||||||
|
if (ZoneBuilder::IsEnabled())
|
||||||
|
{
|
||||||
|
Maps::EntryPool.resize(1183968);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Maps::EntryPool.resize(789312);
|
||||||
|
}
|
||||||
|
|
||||||
// Apply new size
|
// Apply new size
|
||||||
Utils::Hook::Set<DWORD>(0x5BAEB0, Maps::EntryPool.size());
|
Utils::Hook::Set<DWORD>(0x5BAEB0, Maps::EntryPool.size());
|
||||||
@ -404,11 +412,13 @@ 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::AddDependency("mp_firingrange", "iw4x_dependencies_mp");
|
||||||
//Maps::AddDependency("mp_shipment_long", "iw4x_dependencies_mp");
|
Maps::AddDependency("mp_shipment_long", "iw4x_dependencies_mp");
|
||||||
//Maps::AddDependency("mp_firingrange", "iw4x_dependencies_mp");
|
Maps::AddDependency("mp_firingrange", "iw4x_dependencies_mp");
|
||||||
//Maps::AddDependency("mp_firingrange", "mp_underpass");
|
Maps::AddDependency("mp_firingrange", "mp_underpass");
|
||||||
//Maps::AddDependency("mp_underpass", "mp_firingrange");
|
Maps::AddDependency("zm_asylum_sh", "iw4x_dependencies_mp");
|
||||||
|
Maps::AddDependency("mp_rust_long", "iw4x_dependencies_mp");
|
||||||
|
Maps::AddDependency("mp_rust_long", "mp_rust");
|
||||||
|
|
||||||
#if defined(DEBUG) && defined(ENABLE_DXSDK)
|
#if defined(DEBUG) && defined(ENABLE_DXSDK)
|
||||||
Command::Add("dumpmap", [] (Command::Params)
|
Command::Add("dumpmap", [] (Command::Params)
|
||||||
|
@ -493,8 +493,11 @@ namespace Components
|
|||||||
Utils::Hook::Nop(0x5BB3F2, 5);
|
Utils::Hook::Nop(0x5BB3F2, 5);
|
||||||
Utils::Hook::Nop(0x5BB422, 5);
|
Utils::Hook::Nop(0x5BB422, 5);
|
||||||
Utils::Hook::Nop(0x5BB43A, 5);
|
Utils::Hook::Nop(0x5BB43A, 5);
|
||||||
|
|
||||||
// Increase asset pools
|
// Increase asset pools
|
||||||
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_MAP_ENTS, 10);
|
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_MAP_ENTS, 10);
|
||||||
|
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_XMODELSURFS, 8192);
|
||||||
|
Game::ReallocateAssetPool(Game::XAssetType::ASSET_TYPE_IMAGE, 14336);
|
||||||
|
|
||||||
// hunk size (was 300 MiB)
|
// hunk size (was 300 MiB)
|
||||||
Utils::Hook::Set<DWORD>(0x64A029, 0x38400000); // 900 MiB
|
Utils::Hook::Set<DWORD>(0x64A029, 0x38400000); // 900 MiB
|
||||||
|
Loading…
Reference in New Issue
Block a user