CModelInfo::GetModelInfoFromHashKey

This commit is contained in:
majestic 2021-01-17 05:59:35 -08:00
parent f5164f3804
commit 75563c5f80
2 changed files with 28 additions and 1 deletions

View File

@ -18,6 +18,8 @@ CStore<CPedModelInfo, PEDMODELSIZE> CModelInfo::ms_pedModelStore;
CStore<CVehicleModelInfo, VEHICLEMODELSIZE> CModelInfo::ms_vehicleModelStore;
CStore<C2dEffect, TWODFXSIZE> CModelInfo::ms_2dEffectStore;
int32 CModelInfo::msNumModelInfos;
void
CModelInfo::Initialise(void)
{
@ -32,6 +34,7 @@ CModelInfo::Initialise(void)
debug("sizeof PedModelStore %d\n", sizeof(ms_pedModelStore));
debug("sizeof 2deffectsModelStore %d\n", sizeof(ms_2dEffectStore));
msNumModelInfos = 4900;
for(i = 0; i < MODELINFOSIZE; i++)
ms_modelInfoPtrs[i] = nil;
ms_2dEffectStore.Clear();
@ -188,8 +191,12 @@ CBaseModelInfo*
CModelInfo::GetModelInfo(const char *name, int *id)
{
uint32 hashKey = CKeyGen::GetUppercaseKey(name);
if (CModelInfo::msNumModelInfos <= 0)
return nil;
CBaseModelInfo *modelinfo;
for(int i = 0; i < MODELINFOSIZE; i++){
for(int i = 0; i < msNumModelInfos; i++){
modelinfo = CModelInfo::ms_modelInfoPtrs[i];
if(modelinfo && hashKey == modelinfo->GetNameHashKey()){
if(id)
@ -216,6 +223,23 @@ CModelInfo::GetModelInfo(const char *name, int minIndex, int maxIndex)
return nil;
}
CBaseModelInfo*
CModelInfo::GetModelInfoFromHashKey(uint32 hashKey, int *id) {
if (CModelInfo::msNumModelInfos <= 0)
return nil;
CBaseModelInfo *modelinfo;
for (int i = 0; i < CModelInfo::msNumModelInfos; i++) {
modelinfo = CModelInfo::ms_modelInfoPtrs[i];
if (modelinfo && hashKey == modelinfo->GetNameHashKey()) {
if (id)
*id = i;
return modelinfo;
}
}
return nil;
}
bool
CModelInfo::IsBoatModel(int32 id)
{

View File

@ -21,6 +21,8 @@ class CModelInfo
static CStore<CVehicleModelInfo, VEHICLEMODELSIZE> ms_vehicleModelStore;
static CStore<C2dEffect, TWODFXSIZE> ms_2dEffectStore;
static int32 msNumModelInfos;
public:
static void Initialise(void);
static void ShutDown(void);
@ -39,6 +41,7 @@ public:
return ms_modelInfoPtrs[id];
}
static CBaseModelInfo *GetModelInfo(const char *name, int minIndex, int maxIndex);
static CBaseModelInfo *GetModelInfoFromHashKey(uint32 hashKey, int *id);
static bool IsBoatModel(int32 id);
static bool IsBikeModel(int32 id);