[Maps] Don't wait for the entire database, just glass data
This actually allows the thread to continue and this 'fixes' the material crash for custom maps. The Material_Sort function requires something our thread seems to compute. I haven't had a deep look into it, as for now this fix works, but for the future, a real fix is needed!
This commit is contained in:
parent
8076deeb91
commit
692c80bf98
@ -269,17 +269,19 @@ namespace Components
|
||||
|
||||
Game::G_GlassData* Maps::GetWorldData()
|
||||
{
|
||||
Logger::Print("Waiting for database...\n");
|
||||
while (!Game::Sys_IsDatabaseReady()) std::this_thread::sleep_for(100ms);
|
||||
|
||||
Game::G_GlassData** dataPtr;
|
||||
if (!Utils::String::StartsWith(Maps::CurrentMainZone, "mp_") || Maps::SPMap)
|
||||
{
|
||||
return Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAMEWORLD_SP].gameWorldSp[0].data;
|
||||
dataPtr = &Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAMEWORLD_SP].gameWorldSp[0].data;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAMEWORLD_MP].gameWorldMp[0].data;
|
||||
dataPtr = &Game::DB_XAssetPool[Game::XAssetType::ASSET_TYPE_GAMEWORLD_MP].gameWorldMp[0].data;
|
||||
}
|
||||
|
||||
Logger::Print("Waiting for database...\n");
|
||||
while(!*dataPtr) std::this_thread::sleep_for(1ms);
|
||||
return *dataPtr;
|
||||
}
|
||||
|
||||
__declspec(naked) void Maps::GetWorldDataStub()
|
||||
|
Loading…
Reference in New Issue
Block a user