mirror of
https://github.com/halpz/re3.git
synced 2025-07-07 00:58:55 +00:00
CutsceneMgr done + use original VB audio + make interiors visible + use hashed model info names a bit
This commit is contained in:
@ -1,10 +1,12 @@
|
||||
#include "common.h"
|
||||
|
||||
#include "templates.h"
|
||||
#include "main.h"
|
||||
#include "TxdStore.h"
|
||||
#include "2dEffect.h"
|
||||
#include "BaseModelInfo.h"
|
||||
#include "ModelInfo.h"
|
||||
#include "KeyGen.h"
|
||||
|
||||
//--MIAMI: file done
|
||||
|
||||
@ -18,6 +20,7 @@ CBaseModelInfo::CBaseModelInfo(ModelInfoType type)
|
||||
m_type = type;
|
||||
m_num2dEffects = 0;
|
||||
m_bOwnsColModel = false;
|
||||
m_name = new char[MAX_MODEL_NAME];
|
||||
}
|
||||
|
||||
void
|
||||
@ -101,3 +104,12 @@ CBaseModelInfo::Get2dEffect(int n)
|
||||
else
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
CBaseModelInfo::SetModelName(const char *name)
|
||||
{
|
||||
m_nameKey = CKeyGen::GetUppercaseKey(name);
|
||||
if (!gUseChunkFiles)
|
||||
strcpy(m_name, name);
|
||||
}
|
@ -23,7 +23,9 @@ class C2dEffect;
|
||||
class CBaseModelInfo
|
||||
{
|
||||
protected:
|
||||
char m_name[MAX_MODEL_NAME];
|
||||
char *m_name;
|
||||
uint32 m_nameKey;
|
||||
RwObject *m_object;
|
||||
uint8 m_type;
|
||||
uint8 m_num2dEffects;
|
||||
bool m_bOwnsColModel;
|
||||
@ -35,7 +37,11 @@ protected:
|
||||
|
||||
public:
|
||||
CBaseModelInfo(ModelInfoType type);
|
||||
#ifdef FIX_BUGS
|
||||
virtual ~CBaseModelInfo() { delete []m_name; }
|
||||
#else
|
||||
virtual ~CBaseModelInfo() {}
|
||||
#endif
|
||||
virtual void Shutdown(void);
|
||||
virtual void DeleteRwObject(void) = 0;
|
||||
virtual RwObject *CreateInstance(RwMatrix *) = 0;
|
||||
@ -51,7 +57,8 @@ public:
|
||||
bool IsSimple(void) { return m_type == MITYPE_SIMPLE || m_type == MITYPE_TIME || m_type == MITYPE_WEAPON; }
|
||||
bool IsClump(void) { return m_type == MITYPE_CLUMP || m_type == MITYPE_PED || m_type == MITYPE_VEHICLE; }
|
||||
char *GetModelName(void) { return m_name; }
|
||||
void SetModelName(const char *name) { strncpy(m_name, name, MAX_MODEL_NAME); }
|
||||
void SetModelName(const char *name);
|
||||
uint32 GetNameHashKey() { return m_nameKey; }
|
||||
void SetColModel(CColModel *col, bool owns = false){
|
||||
m_colModel = col; m_bOwnsColModel = owns; }
|
||||
CColModel *GetColModel(void) { return m_colModel; }
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "TempColModels.h"
|
||||
#include "ModelIndices.h"
|
||||
#include "ModelInfo.h"
|
||||
#include "KeyGen.h"
|
||||
|
||||
// --MIAMI: file done
|
||||
|
||||
@ -186,10 +187,11 @@ CModelInfo::AddVehicleModel(int id)
|
||||
CBaseModelInfo*
|
||||
CModelInfo::GetModelInfo(const char *name, int *id)
|
||||
{
|
||||
uint32 hashKey = CKeyGen::GetUppercaseKey(name);
|
||||
CBaseModelInfo *modelinfo;
|
||||
for(int i = 0; i < MODELINFOSIZE; i++){
|
||||
modelinfo = CModelInfo::ms_modelInfoPtrs[i];
|
||||
if(modelinfo && !CGeneral::faststricmp(modelinfo->GetModelName(), name)){
|
||||
if(modelinfo && hashKey == modelinfo->GetNameHashKey()){
|
||||
if(id)
|
||||
*id = i;
|
||||
return modelinfo;
|
||||
@ -201,13 +203,14 @@ CModelInfo::GetModelInfo(const char *name, int *id)
|
||||
CBaseModelInfo*
|
||||
CModelInfo::GetModelInfo(const char *name, int minIndex, int maxIndex)
|
||||
{
|
||||
uint32 hashKey = CKeyGen::GetUppercaseKey(name);
|
||||
if (minIndex > maxIndex)
|
||||
return 0;
|
||||
|
||||
CBaseModelInfo *modelinfo;
|
||||
for(int i = minIndex; i <= maxIndex; i++){
|
||||
modelinfo = CModelInfo::ms_modelInfoPtrs[i];
|
||||
if(modelinfo && !CGeneral::faststricmp(modelinfo->GetModelName(), name))
|
||||
if(modelinfo && hashKey == modelinfo->GetNameHashKey())
|
||||
return modelinfo;
|
||||
}
|
||||
return nil;
|
||||
|
Reference in New Issue
Block a user