2022-03-01 02:39:46 +01:00
|
|
|
//===========================================================================//
|
|
|
|
//
|
|
|
|
// Purpose: Model loading / unloading interface
|
|
|
|
//
|
|
|
|
// $NoKeywords: $
|
|
|
|
//===========================================================================//
|
|
|
|
|
|
|
|
#include "core/stdafx.h"
|
|
|
|
#include "engine/cmodel_bsp.h"
|
|
|
|
#include "engine/modelloader.h"
|
2022-04-29 05:30:06 +02:00
|
|
|
#include "datacache/mdlcache.h"
|
2022-03-01 02:39:46 +01:00
|
|
|
|
2022-04-29 05:30:06 +02:00
|
|
|
model_t* pErrorMDL = nullptr;
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose:
|
|
|
|
// Input : *loader -
|
|
|
|
// *model -
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
void CModelLoader::LoadModel(CModelLoader* loader, model_t* model)
|
|
|
|
{
|
|
|
|
//if (!pErrorMDL)
|
|
|
|
//{
|
|
|
|
// if (strcmp(model->szPathName, ERROR_MODEL) == 0)
|
|
|
|
// {
|
|
|
|
// pErrorMDL = model;
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
|
|
//string svExtension = model->szPathName;
|
|
|
|
//size_t npos = svExtension.find(".");
|
|
|
|
//if (npos != string::npos)
|
|
|
|
//{
|
|
|
|
// svExtension = svExtension.substr(npos + 1);
|
|
|
|
//}
|
|
|
|
|
|
|
|
//if (strcmp(svExtension.c_str(), "rmdl") == 0 && strcmp(model->szPathName, ERROR_MODEL) != 0)
|
|
|
|
//{
|
|
|
|
// studiohdr_t* pStudioHDR = g_MDLCache->FindMDL(g_MDLCache->m_pVTable, model->studio, 0);
|
|
|
|
// if (pStudioHDR == pErrorStudioHDR)
|
|
|
|
// {
|
|
|
|
// model = pErrorMDL;
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
return CModelLoader__LoadModel(loader, model);
|
|
|
|
}
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Purpose:
|
|
|
|
// Input : *loader -
|
|
|
|
// *model -
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
uint64_t CModelLoader::Map_LoadModelGuts(CModelLoader* loader, model_t* model)
|
2022-03-01 02:39:46 +01:00
|
|
|
{
|
2022-04-29 05:30:06 +02:00
|
|
|
return CModelLoader__Map_LoadModelGuts(loader, model);
|
2022-03-01 02:39:46 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
2023-01-25 02:26:52 +01:00
|
|
|
void VModelLoader::Attach() const
|
2022-03-01 02:39:46 +01:00
|
|
|
{
|
2022-04-29 05:30:06 +02:00
|
|
|
DetourAttach((LPVOID*)&CModelLoader__LoadModel, &CModelLoader::LoadModel);
|
|
|
|
DetourAttach((LPVOID*)&CModelLoader__Map_LoadModelGuts, &CModelLoader::Map_LoadModelGuts);
|
2022-03-01 02:39:46 +01:00
|
|
|
}
|
|
|
|
|
2023-01-25 02:26:52 +01:00
|
|
|
void VModelLoader::Detach() const
|
2022-03-01 02:39:46 +01:00
|
|
|
{
|
2022-04-29 05:30:06 +02:00
|
|
|
DetourDetach((LPVOID*)&CModelLoader__LoadModel, &CModelLoader::LoadModel);
|
|
|
|
DetourDetach((LPVOID*)&CModelLoader__Map_LoadModelGuts, &CModelLoader::Map_LoadModelGuts);
|
2022-03-01 02:39:46 +01:00
|
|
|
}
|