modelinfo bits

This commit is contained in:
aap 2021-08-24 19:16:17 +02:00
parent b89dd7f0e3
commit 5f7de20cde
4 changed files with 9 additions and 7 deletions

View file

@ -132,7 +132,7 @@ GetModelFromName(const char *name)
} }
uint32 hashKey = CKeyGen::GetUppercaseKey(name); uint32 hashKey = CKeyGen::GetUppercaseKey(name);
for (i = 0; i < MODELINFOSIZE; i++) { for (i = 0; i < CModelInfo::GetNumModelInfos(); i++) {
mi = CModelInfo::GetModelInfo(i); mi = CModelInfo::GetModelInfo(i);
if (mi && mi->GetRwObject() if (mi && mi->GetRwObject()
&& RwObjectGetType(mi->GetRwObject()) == rpCLUMP && && RwObjectGetType(mi->GetRwObject()) == rpCLUMP &&

View file

@ -92,7 +92,7 @@ CAnimViewer::Initialise(void) {
CFileLoader::LoadLevel("DATA\\DEFAULT.DAT"); CFileLoader::LoadLevel("DATA\\DEFAULT.DAT");
CFileLoader::LoadLevel("DATA\\ANIMVIEWER.DAT"); CFileLoader::LoadLevel("DATA\\ANIMVIEWER.DAT");
CStreaming::Init(); CStreaming::Init();
for(int i = 0; i < MODELINFOSIZE; i++) for(int i = 0; i < CModelInfo::GetNumModelInfos(); i++)
if(CModelInfo::GetModelInfo(i)) if(CModelInfo::GetModelInfo(i))
CModelInfo::GetModelInfo(i)->ConvertAnimFileIndex(); CModelInfo::GetModelInfo(i)->ConvertAnimFileIndex();
CStreaming::LoadInitialPeds(); CStreaming::LoadInitialPeds();
@ -166,7 +166,7 @@ LastPedModelId(int modelId)
{ {
CBaseModelInfo *model; CBaseModelInfo *model;
for(;;){ for(;;){
assert(modelId < MODELINFOSIZE); assert(modelId < CModelInfo::GetNumModelInfos());
model = CModelInfo::GetModelInfo(modelId); model = CModelInfo::GetModelInfo(modelId);
if (model && model->GetModelType() == MITYPE_PED) if (model && model->GetModelType() == MITYPE_PED)
break; break;
@ -180,7 +180,7 @@ FirstCarModelId(int modelId)
{ {
CBaseModelInfo *model; CBaseModelInfo *model;
for(;;){ for(;;){
assert(modelId < MODELINFOSIZE); assert(modelId < CModelInfo::GetNumModelInfos());
model = CModelInfo::GetModelInfo(modelId); model = CModelInfo::GetModelInfo(modelId);
if (model && model->GetModelType() == MITYPE_VEHICLE) if (model && model->GetModelType() == MITYPE_VEHICLE)
break; break;
@ -200,7 +200,7 @@ NextModelId(int modelId, int wantedChange)
while(tryCount != 0) { while(tryCount != 0) {
modelId += wantedChange; modelId += wantedChange;
if (modelId < 0 || modelId >= MODELINFOSIZE) { if (modelId < 0 || modelId >= CModelInfo::GetNumModelInfos()) {
tryCount--; tryCount--;
wantedChange = -wantedChange; wantedChange = -wantedChange;
} else if (modelId != 5 && modelId != 6 && modelId != 405) { } else if (modelId != 5 && modelId != 6 && modelId != 405) {

View file

@ -180,7 +180,7 @@ CStreaming::Init2(void)
// init stream info, mark things that are already loaded // init stream info, mark things that are already loaded
for(i = 0; i < MODELINFOSIZE; i++){ for(i = 0; i < CModelInfo::GetNumModelInfos(); i++){
CBaseModelInfo *mi = CModelInfo::GetModelInfo(i); CBaseModelInfo *mi = CModelInfo::GetModelInfo(i);
if(mi && mi->GetRwObject()){ if(mi && mi->GetRwObject()){
ms_aInfoForModel[i].m_loadState = STREAMSTATE_LOADED; ms_aInfoForModel[i].m_loadState = STREAMSTATE_LOADED;

View file

@ -25,10 +25,11 @@ class CModelInfo
static CStore<CVehicleModelInfo, VEHICLEMODELSIZE> ms_vehicleModelStore; static CStore<CVehicleModelInfo, VEHICLEMODELSIZE> ms_vehicleModelStore;
static CStore<C2dEffect, TWODFXSIZE> ms_2dEffectStore; static CStore<C2dEffect, TWODFXSIZE> ms_2dEffectStore;
public:
// these fields are in the resource image // these fields are in the resource image
int32 resNumModelInfos; int32 resNumModelInfos;
CBaseModelInfo **resModelInfoPtrs; CBaseModelInfo **resModelInfoPtrs;
public:
static void Initialise(void); static void Initialise(void);
static void ShutDown(void); static void ShutDown(void);
@ -43,6 +44,7 @@ public:
static C2dEffect *Get2dEffect(int32 id) { return &gp2dEffects[id]; } static C2dEffect *Get2dEffect(int32 id) { return &gp2dEffects[id]; }
static int32 Get2dEffectIndex(C2dEffect *effect) { return effect - gp2dEffects; } static int32 Get2dEffectIndex(C2dEffect *effect) { return effect - gp2dEffects; }
static int32 GetNumModelInfos(void) { return msNumModelInfos; }
static CBaseModelInfo *GetModelInfo(const char *name, int *id); static CBaseModelInfo *GetModelInfo(const char *name, int *id);
static CBaseModelInfo *GetModelInfo(int id){ static CBaseModelInfo *GetModelInfo(int id){
if(id < 0 || id >= msNumModelInfos) if(id < 0 || id >= msNumModelInfos)