mirror of
https://github.com/halpz/re3.git
synced 2024-12-27 18:25:28 +00:00
CVehicleModelInfo
This commit is contained in:
parent
f7aa4e108a
commit
0552d49fce
|
@ -791,7 +791,7 @@ CFileLoader::LoadVehicleObject(const char *line)
|
||||||
// TODO(MIAMI): anims
|
// TODO(MIAMI): anims
|
||||||
for(p = gamename; *p; p++)
|
for(p = gamename; *p; p++)
|
||||||
if(*p == '_') *p = ' ';
|
if(*p == '_') *p = ' ';
|
||||||
strncpy(mi->m_gameName, gamename, 32);
|
strcpy(mi->m_gameName, gamename);
|
||||||
mi->m_level = level;
|
mi->m_level = level;
|
||||||
mi->m_compRules = comprules;
|
mi->m_compRules = comprules;
|
||||||
|
|
||||||
|
@ -873,6 +873,7 @@ CFileLoader::LoadPedObject(const char *line)
|
||||||
for(animGroupId = 0; animGroupId < NUM_ANIM_ASSOC_GROUPS; animGroupId++)
|
for(animGroupId = 0; animGroupId < NUM_ANIM_ASSOC_GROUPS; animGroupId++)
|
||||||
if(strcmp(animGroup, CAnimManager::GetAnimGroupName((AssocGroupId)animGroupId)) == 0)
|
if(strcmp(animGroup, CAnimManager::GetAnimGroupName((AssocGroupId)animGroupId)) == 0)
|
||||||
break;
|
break;
|
||||||
|
assert(animGroupId < NUM_ANIM_ASSOC_GROUPS);
|
||||||
mi->m_animGroup = animGroupId;
|
mi->m_animGroup = animGroupId;
|
||||||
mi->m_carsCanDrive = carsCanDrive;
|
mi->m_carsCanDrive = carsCanDrive;
|
||||||
}
|
}
|
||||||
|
|
|
@ -273,6 +273,20 @@ void NastyLimbsCheat()
|
||||||
{
|
{
|
||||||
CPed::bNastyLimbsCheat = !CPed::bNastyLimbsCheat;
|
CPed::bNastyLimbsCheat = !CPed::bNastyLimbsCheat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BlackCarsCheat()
|
||||||
|
{
|
||||||
|
CHud::SetHelpMessage(TheText.Get("CHEAT1"), true);
|
||||||
|
gbBlackCars = true;
|
||||||
|
gbPinkCars = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PinkCarsCheat()
|
||||||
|
{
|
||||||
|
CHud::SetHelpMessage(TheText.Get("CHEAT1"), true);
|
||||||
|
gbBlackCars = false;
|
||||||
|
gbPinkCars = true;
|
||||||
|
}
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifdef KANGAROO_CHEAT
|
#ifdef KANGAROO_CHEAT
|
||||||
|
@ -951,6 +965,14 @@ void CPad::AddToPCCheatString(char c)
|
||||||
if ( !_CHEATCMP("TAEHCSBMILYTSAN") )
|
if ( !_CHEATCMP("TAEHCSBMILYTSAN") )
|
||||||
NastyLimbsCheat();
|
NastyLimbsCheat();
|
||||||
|
|
||||||
|
// "IWANTITPAINTEDBLACK"
|
||||||
|
if ( !_CHEATCMP("KCALBDETNIAPTITNAWI") )
|
||||||
|
BlackCarsCheat();
|
||||||
|
|
||||||
|
// "AHAIRDRESSERSCAR"
|
||||||
|
if ( !_CHEATCMP("RACSRESSERDRIAHA") )
|
||||||
|
PinkCarsCheat();
|
||||||
|
|
||||||
#ifdef KANGAROO_CHEAT
|
#ifdef KANGAROO_CHEAT
|
||||||
// "KANGAROO"
|
// "KANGAROO"
|
||||||
if (!_CHEATCMP("OORAGNAK"))
|
if (!_CHEATCMP("OORAGNAK"))
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#include "ModelIndices.h"
|
#include "ModelIndices.h"
|
||||||
#include "ModelInfo.h"
|
#include "ModelInfo.h"
|
||||||
|
|
||||||
|
//--MIAMI: done
|
||||||
|
|
||||||
int8 CVehicleModelInfo::ms_compsToUse[2] = { -2, -2 };
|
int8 CVehicleModelInfo::ms_compsToUse[2] = { -2, -2 };
|
||||||
int8 CVehicleModelInfo::ms_compsUsed[2];
|
int8 CVehicleModelInfo::ms_compsUsed[2];
|
||||||
RwRGBA CVehicleModelInfo::ms_vehicleColourTable[256];
|
RwRGBA CVehicleModelInfo::ms_vehicleColourTable[256];
|
||||||
|
@ -147,6 +149,8 @@ RwObjectNameIdAssocation *CVehicleModelInfo::ms_vehicleDescs[] = {
|
||||||
bikeIds
|
bikeIds
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool gbBlackCars;
|
||||||
|
bool gbPinkCars;
|
||||||
|
|
||||||
CVehicleModelInfo::CVehicleModelInfo(void)
|
CVehicleModelInfo::CVehicleModelInfo(void)
|
||||||
: CClumpModelInfo(MITYPE_VEHICLE)
|
: CClumpModelInfo(MITYPE_VEHICLE)
|
||||||
|
@ -227,10 +231,30 @@ CVehicleModelInfo::SetClump(RpClump *clump)
|
||||||
SetFrameIds(ms_vehicleDescs[m_vehicleType]);
|
SetFrameIds(ms_vehicleDescs[m_vehicleType]);
|
||||||
PreprocessHierarchy();
|
PreprocessHierarchy();
|
||||||
FindEditableMaterialList();
|
FindEditableMaterialList();
|
||||||
m_envMap = nil;
|
|
||||||
SetEnvironmentMap();
|
SetEnvironmentMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CVehicleModelInfo::SetAnimFile(const char *file)
|
||||||
|
{
|
||||||
|
if(strcasecmp(file, "null") == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_animFileName = new char[strlen(file)+1];
|
||||||
|
strcpy(m_animFileName, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CVehicleModelInfo::ConvertAnimFileIndex(void)
|
||||||
|
{
|
||||||
|
if(m_animFileIndex != -1){
|
||||||
|
// we have a string pointer in that union
|
||||||
|
int32 index = CAnimManager::GetAnimationBlockIndex(m_animFileName);
|
||||||
|
delete[] m_animFileName;
|
||||||
|
m_animFileIndex = index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
RwFrame*
|
RwFrame*
|
||||||
CVehicleModelInfo::CollapseFramesCB(RwFrame *frame, void *data)
|
CVehicleModelInfo::CollapseFramesCB(RwFrame *frame, void *data)
|
||||||
{
|
{
|
||||||
|
@ -383,30 +407,68 @@ CVehicleModelInfo::SetAtomicRendererCB_Boat(RpAtomic *atomic, void *data)
|
||||||
RpAtomic*
|
RpAtomic*
|
||||||
CVehicleModelInfo::SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data)
|
CVehicleModelInfo::SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data)
|
||||||
{
|
{
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
name = GetFrameNodeName(RpAtomicGetFrame(atomic));
|
||||||
|
if(strncmp(name, "toprotor", 8) == 0)
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleRotorAlphaCB);
|
||||||
|
else if(strncmp(name, "rearrotor", 9) == 0)
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleTailRotorAlphaCB);
|
||||||
|
else
|
||||||
CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil);
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil);
|
||||||
return atomic;
|
return atomic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RpAtomic*
|
||||||
|
CVehicleModelInfo::SetAtomicRendererCB_RealHeli(RpAtomic *atomic, void *data)
|
||||||
|
{
|
||||||
|
RpClump *clump;
|
||||||
|
char *name;
|
||||||
|
bool alpha;
|
||||||
|
|
||||||
|
clump = (RpClump*)data;
|
||||||
|
name = GetFrameNodeName(RpAtomicGetFrame(atomic));
|
||||||
|
alpha = false;
|
||||||
|
RpGeometryForAllMaterials(RpAtomicGetGeometry(atomic), HasAlphaMaterialCB, &alpha);
|
||||||
|
if(strncmp(name, "toprotor", 8) == 0)
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleRotorAlphaCB);
|
||||||
|
else if(strncmp(name, "rearrotor", 9) == 0)
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleTailRotorAlphaCB);
|
||||||
|
else if(strstr(name, "_hi") || strncmp(name, "extra", 5) == 0){
|
||||||
|
if(alpha || strncmp(name, "windscreen", 10) == 0)
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailAlphaCB);
|
||||||
|
else
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleHiDetailCB);
|
||||||
|
}else if(strstr(name, "_lo")){
|
||||||
|
RpClumpRemoveAtomic(clump, atomic);
|
||||||
|
RpAtomicDestroy(atomic);
|
||||||
|
return atomic; // BUG: not done by gta
|
||||||
|
}else if(strstr(name, "_vlo"))
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderVehicleReallyLowDetailCB);
|
||||||
|
else
|
||||||
|
CVisibilityPlugins::SetAtomicRenderCallback(atomic, nil);
|
||||||
|
HideDamagedAtomicCB(atomic, nil);
|
||||||
|
return atomic;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CVehicleModelInfo::SetAtomicRenderCallbacks(void)
|
CVehicleModelInfo::SetAtomicRenderCallbacks(void)
|
||||||
{
|
{
|
||||||
switch(m_vehicleType){
|
#ifdef GTA_TRAIN
|
||||||
case VEHICLE_TYPE_TRAIN:
|
if(m_vehicleType == VEHICLE_TYPE_TRAIN)
|
||||||
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Train, nil);
|
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Train, nil);
|
||||||
break;
|
else
|
||||||
case VEHICLE_TYPE_HELI:
|
#endif
|
||||||
|
if(m_vehicleType == VEHICLE_TYPE_HELI)
|
||||||
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Heli, nil);
|
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Heli, nil);
|
||||||
break;
|
else if(m_vehicleType == VEHICLE_TYPE_PLANE)
|
||||||
case VEHICLE_TYPE_PLANE:
|
|
||||||
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_BigVehicle, nil);
|
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_BigVehicle, nil);
|
||||||
break;
|
else if(m_vehicleType == VEHICLE_TYPE_BOAT)
|
||||||
case VEHICLE_TYPE_BOAT:
|
|
||||||
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Boat, m_clump);
|
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_Boat, m_clump);
|
||||||
break;
|
else if(mod_HandlingManager.GetHandlingData((eHandlingId)m_handlingId)->Flags & HANDLING_IS_HELI)
|
||||||
default:
|
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB_RealHeli, m_clump);
|
||||||
|
else
|
||||||
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, m_clump);
|
RpClumpForAllAtomics(m_clump, SetAtomicRendererCB, m_clump);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RwObject*
|
RwObject*
|
||||||
|
@ -603,6 +665,13 @@ ChooseComponent(int32 rule, int32 comps)
|
||||||
// only valid in rain
|
// only valid in rain
|
||||||
n = CGeneral::GetRandomNumberInRange(0, CountCompsInRule(comps));
|
n = CGeneral::GetRandomNumberInRange(0, CountCompsInRule(comps));
|
||||||
return COMPRULE_COMPN(comps, n);
|
return COMPRULE_COMPN(comps, n);
|
||||||
|
case 3:
|
||||||
|
n = CGeneral::GetRandomNumberInRange(0, 1+CountCompsInRule(comps));
|
||||||
|
if(n != 0)
|
||||||
|
return COMPRULE_COMPN(comps, n-1);
|
||||||
|
return -1;
|
||||||
|
case 4:
|
||||||
|
return CGeneral::GetRandomNumberInRange(0, 5);
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -729,6 +798,9 @@ CVehicleModelInfo::GetEditableMaterialListCB(RpAtomic *atomic, void *data)
|
||||||
return atomic;
|
return atomic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int maxFirstMaterials;
|
||||||
|
static int maxSecondMaterials;
|
||||||
|
|
||||||
void
|
void
|
||||||
CVehicleModelInfo::FindEditableMaterialList(void)
|
CVehicleModelInfo::FindEditableMaterialList(void)
|
||||||
{
|
{
|
||||||
|
@ -743,6 +815,8 @@ CVehicleModelInfo::FindEditableMaterialList(void)
|
||||||
GetEditableMaterialListCB(m_comps[i], &cbdata);
|
GetEditableMaterialListCB(m_comps[i], &cbdata);
|
||||||
m_materials1[cbdata.numMats1] = nil;
|
m_materials1[cbdata.numMats1] = nil;
|
||||||
m_materials2[cbdata.numMats2] = nil;
|
m_materials2[cbdata.numMats2] = nil;
|
||||||
|
maxFirstMaterials = Max(maxFirstMaterials, cbdata.numMats1);
|
||||||
|
maxSecondMaterials = Max(maxSecondMaterials, cbdata.numMats2);
|
||||||
m_currentColour1 = -1;
|
m_currentColour1 = -1;
|
||||||
m_currentColour2 = -1;
|
m_currentColour2 = -1;
|
||||||
}
|
}
|
||||||
|
@ -779,9 +853,12 @@ CVehicleModelInfo::SetVehicleColour(uint8 c1, uint8 c2)
|
||||||
void
|
void
|
||||||
CVehicleModelInfo::ChooseVehicleColour(uint8 &col1, uint8 &col2)
|
CVehicleModelInfo::ChooseVehicleColour(uint8 &col1, uint8 &col2)
|
||||||
{
|
{
|
||||||
if(m_numColours == 0){
|
if(m_numColours == 0 || gbBlackCars){
|
||||||
col1 = 0;
|
col1 = 0;
|
||||||
col2 = 0;
|
col2 = 0;
|
||||||
|
}else if(gbPinkCars){
|
||||||
|
col1 = 68;
|
||||||
|
col2 = 68;
|
||||||
}else{
|
}else{
|
||||||
m_lastColorVariation = (m_lastColorVariation+1) % m_numColours;
|
m_lastColorVariation = (m_lastColorVariation+1) % m_numColours;
|
||||||
col1 = m_colours1[m_lastColorVariation];
|
col1 = m_colours1[m_lastColorVariation];
|
||||||
|
@ -804,6 +881,13 @@ CVehicleModelInfo::AvoidSameVehicleColour(uint8 *col1, uint8 *col2)
|
||||||
{
|
{
|
||||||
int i, n;
|
int i, n;
|
||||||
|
|
||||||
|
if(gbBlackCars){
|
||||||
|
*col1 = 0;
|
||||||
|
*col2 = 0;
|
||||||
|
}else if(gbPinkCars){
|
||||||
|
*col1 = 68;
|
||||||
|
*col2 = 68;
|
||||||
|
}else{
|
||||||
if(m_numColours > 1)
|
if(m_numColours > 1)
|
||||||
for(i = 0; i < 8; i++){
|
for(i = 0; i < 8; i++){
|
||||||
if(*col1 != m_lastColour1 || *col2 != m_lastColour2)
|
if(*col1 != m_lastColour1 || *col2 != m_lastColour2)
|
||||||
|
@ -814,8 +898,10 @@ CVehicleModelInfo::AvoidSameVehicleColour(uint8 *col1, uint8 *col2)
|
||||||
}
|
}
|
||||||
m_lastColour1 = *col1;
|
m_lastColour1 = *col1;
|
||||||
m_lastColour2 = *col2;
|
m_lastColour2 = *col2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--MIAMI: unused
|
||||||
RwTexture*
|
RwTexture*
|
||||||
CreateCarColourTexture(uint8 r, uint8 g, uint8 b)
|
CreateCarColourTexture(uint8 r, uint8 g, uint8 b)
|
||||||
{
|
{
|
||||||
|
@ -1055,12 +1141,15 @@ CVehicleModelInfo::GetMaximumNumberOfPassengersFromNumberOfDoors(int id)
|
||||||
case MI_FIRETRUCK:
|
case MI_FIRETRUCK:
|
||||||
n = 2;
|
n = 2;
|
||||||
break;
|
break;
|
||||||
|
case MI_HUNTER:
|
||||||
|
n = 1;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
n = ((CVehicleModelInfo*)CModelInfo::GetModelInfo(id))->m_numDoors;
|
n = ((CVehicleModelInfo*)CModelInfo::GetModelInfo(id))->m_numDoors;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(n == 0)
|
if(n == 0)
|
||||||
return id == MI_RCBANDIT ? 0 : 1;
|
return id == MI_RCBANDIT || id == MI_PIZZABOY || id == MI_BAGGAGE ? 0 : 1;
|
||||||
|
|
||||||
if(id == MI_COACH)
|
if(id == MI_COACH)
|
||||||
return 8;
|
return 8;
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
#include "ClumpModelInfo.h"
|
#include "ClumpModelInfo.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NUM_FIRST_MATERIALS = 26,
|
NUM_FIRST_MATERIALS = 24,
|
||||||
NUM_SECOND_MATERIALS = 26,
|
NUM_SECOND_MATERIALS = 20,
|
||||||
NUM_VEHICLE_COLOURS = 8,
|
NUM_VEHICLE_COLOURS = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,17 +43,18 @@ class CVehicleModelInfo : public CClumpModelInfo
|
||||||
public:
|
public:
|
||||||
uint8 m_lastColour1;
|
uint8 m_lastColour1;
|
||||||
uint8 m_lastColour2;
|
uint8 m_lastColour2;
|
||||||
char m_gameName[32];
|
char m_gameName[10];
|
||||||
int32 m_vehicleType;
|
int32 m_vehicleType;
|
||||||
union {
|
|
||||||
int32 m_wheelId;
|
|
||||||
int32 m_planeLodId;
|
|
||||||
};
|
|
||||||
float m_wheelScale;
|
float m_wheelScale;
|
||||||
int32 m_numDoors;
|
union {
|
||||||
int32 m_handlingId;
|
int16 m_wheelId;
|
||||||
int32 m_vehicleClass;
|
int16 m_planeLodId;
|
||||||
int32 m_level;
|
};
|
||||||
|
int16 m_handlingId;
|
||||||
|
int8 m_numDoors;
|
||||||
|
int8 m_vehicleClass;
|
||||||
|
int8 m_level;
|
||||||
|
int8 m_numComps;
|
||||||
int16 m_frequency;
|
int16 m_frequency;
|
||||||
CVector m_positions[NUM_VEHICLE_POSITIONS];
|
CVector m_positions[NUM_VEHICLE_POSITIONS];
|
||||||
uint32 m_compRules;
|
uint32 m_compRules;
|
||||||
|
@ -66,9 +67,11 @@ public:
|
||||||
uint8 m_lastColorVariation;
|
uint8 m_lastColorVariation;
|
||||||
uint8 m_currentColour1;
|
uint8 m_currentColour1;
|
||||||
uint8 m_currentColour2;
|
uint8 m_currentColour2;
|
||||||
RwTexture *m_envMap;
|
|
||||||
RpAtomic *m_comps[6];
|
RpAtomic *m_comps[6];
|
||||||
int32 m_numComps;
|
union {
|
||||||
|
int32 m_animFileIndex;
|
||||||
|
char *m_animFileName;
|
||||||
|
};
|
||||||
|
|
||||||
static int8 ms_compsToUse[2];
|
static int8 ms_compsToUse[2];
|
||||||
static int8 ms_compsUsed[2];
|
static int8 ms_compsUsed[2];
|
||||||
|
@ -80,6 +83,9 @@ public:
|
||||||
void DeleteRwObject(void);
|
void DeleteRwObject(void);
|
||||||
RwObject *CreateInstance(void);
|
RwObject *CreateInstance(void);
|
||||||
void SetClump(RpClump *);
|
void SetClump(RpClump *);
|
||||||
|
void SetAnimFile(const char *file);
|
||||||
|
void ConvertAnimFileIndex(void);
|
||||||
|
int GetAnimFileIndex(void) { return m_animFileIndex; }
|
||||||
|
|
||||||
static RwFrame *CollapseFramesCB(RwFrame *frame, void *data);
|
static RwFrame *CollapseFramesCB(RwFrame *frame, void *data);
|
||||||
static RwObject *MoveObjectsCB(RwObject *object, void *data);
|
static RwObject *MoveObjectsCB(RwObject *object, void *data);
|
||||||
|
@ -92,6 +98,7 @@ public:
|
||||||
static RpAtomic *SetAtomicRendererCB_Train(RpAtomic *atomic, void *data);
|
static RpAtomic *SetAtomicRendererCB_Train(RpAtomic *atomic, void *data);
|
||||||
static RpAtomic *SetAtomicRendererCB_Boat(RpAtomic *atomic, void *data);
|
static RpAtomic *SetAtomicRendererCB_Boat(RpAtomic *atomic, void *data);
|
||||||
static RpAtomic *SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data);
|
static RpAtomic *SetAtomicRendererCB_Heli(RpAtomic *atomic, void *data);
|
||||||
|
static RpAtomic *SetAtomicRendererCB_RealHeli(RpAtomic *atomic, void *data);
|
||||||
void SetAtomicRenderCallbacks(void);
|
void SetAtomicRenderCallbacks(void);
|
||||||
|
|
||||||
static RwObject *SetAtomicFlagCB(RwObject *object, void *data);
|
static RwObject *SetAtomicFlagCB(RwObject *object, void *data);
|
||||||
|
@ -122,3 +129,6 @@ public:
|
||||||
static int GetMaximumNumberOfPassengersFromNumberOfDoors(int id);
|
static int GetMaximumNumberOfPassengersFromNumberOfDoors(int id);
|
||||||
static void SetComponentsToUse(int8 c1, int8 c2) { ms_compsToUse[0] = c1; ms_compsToUse[1] = c2; }
|
static void SetComponentsToUse(int8 c1, int8 c2) { ms_compsToUse[0] = c1; ms_compsToUse[1] = c2; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern bool gbBlackCars;
|
||||||
|
extern bool gbPinkCars;
|
||||||
|
|
|
@ -147,7 +147,7 @@ CVisibilityPlugins::RenderFadingEntities(void)
|
||||||
if(e->m_rwObject == nil)
|
if(e->m_rwObject == nil)
|
||||||
continue;
|
continue;
|
||||||
mi = (CSimpleModelInfo *)CModelInfo::GetModelInfo(e->GetModelIndex());
|
mi = (CSimpleModelInfo *)CModelInfo::GetModelInfo(e->GetModelIndex());
|
||||||
if(mi->m_noZwrite)
|
if(mi->GetModelType() == MITYPE_SIMPLE && mi->m_noZwrite)
|
||||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, FALSE);
|
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, FALSE);
|
||||||
|
|
||||||
if(e->bDistanceFade){
|
if(e->bDistanceFade){
|
||||||
|
@ -159,7 +159,7 @@ CVisibilityPlugins::RenderFadingEntities(void)
|
||||||
}else
|
}else
|
||||||
CRenderer::RenderOneNonRoad(e);
|
CRenderer::RenderOneNonRoad(e);
|
||||||
|
|
||||||
if(mi->m_noZwrite)
|
if(mi->GetModelType() == MITYPE_SIMPLE && mi->m_noZwrite)
|
||||||
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE);
|
RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -515,6 +515,20 @@ CVisibilityPlugins::RenderTrainHiDetailAlphaCB(RpAtomic *atomic)
|
||||||
return atomic;
|
return atomic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RpAtomic*
|
||||||
|
CVisibilityPlugins::RenderVehicleRotorAlphaCB(RpAtomic *atomic)
|
||||||
|
{
|
||||||
|
// TODO(MIAMI):
|
||||||
|
return AtomicDefaultRenderCallBack(atomic);
|
||||||
|
}
|
||||||
|
|
||||||
|
RpAtomic*
|
||||||
|
CVisibilityPlugins::RenderVehicleTailRotorAlphaCB(RpAtomic *atomic)
|
||||||
|
{
|
||||||
|
// TODO(MIAMI):
|
||||||
|
return AtomicDefaultRenderCallBack(atomic);
|
||||||
|
}
|
||||||
|
|
||||||
RpAtomic*
|
RpAtomic*
|
||||||
CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic)
|
CVisibilityPlugins::RenderPlayerCB(RpAtomic *atomic)
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,6 +60,8 @@ public:
|
||||||
static RpAtomic *RenderVehicleReallyLowDetailCB_BigVehicle(RpAtomic *atomic);
|
static RpAtomic *RenderVehicleReallyLowDetailCB_BigVehicle(RpAtomic *atomic);
|
||||||
static RpAtomic *RenderTrainHiDetailCB(RpAtomic *atomic);
|
static RpAtomic *RenderTrainHiDetailCB(RpAtomic *atomic);
|
||||||
static RpAtomic *RenderTrainHiDetailAlphaCB(RpAtomic *atomic);
|
static RpAtomic *RenderTrainHiDetailAlphaCB(RpAtomic *atomic);
|
||||||
|
static RpAtomic *RenderVehicleRotorAlphaCB(RpAtomic *atomic);
|
||||||
|
static RpAtomic *RenderVehicleTailRotorAlphaCB(RpAtomic *atomic);
|
||||||
|
|
||||||
static RpAtomic *RenderPlayerCB(RpAtomic *atomic);
|
static RpAtomic *RenderPlayerCB(RpAtomic *atomic);
|
||||||
static RpAtomic *RenderPedLowDetailCB(RpAtomic *atomic);
|
static RpAtomic *RenderPedLowDetailCB(RpAtomic *atomic);
|
||||||
|
|
|
@ -16,7 +16,6 @@ enum eHandlingId
|
||||||
HANDLING_STRETCH,
|
HANDLING_STRETCH,
|
||||||
HANDLING_MANANA,
|
HANDLING_MANANA,
|
||||||
HANDLING_INFERNUS,
|
HANDLING_INFERNUS,
|
||||||
HANDLING_BLISTA,
|
|
||||||
HANDLING_PONY,
|
HANDLING_PONY,
|
||||||
HANDLING_MULE,
|
HANDLING_MULE,
|
||||||
HANDLING_CHEETAH,
|
HANDLING_CHEETAH,
|
||||||
|
@ -33,7 +32,6 @@ enum eHandlingId
|
||||||
HANDLING_ENFORCER,
|
HANDLING_ENFORCER,
|
||||||
HANDLING_SECURICA,
|
HANDLING_SECURICA,
|
||||||
HANDLING_BANSHEE,
|
HANDLING_BANSHEE,
|
||||||
HANDLING_PREDATOR,
|
|
||||||
HANDLING_BUS,
|
HANDLING_BUS,
|
||||||
HANDLING_RHINO,
|
HANDLING_RHINO,
|
||||||
HANDLING_BARRACKS,
|
HANDLING_BARRACKS,
|
||||||
|
@ -45,22 +43,73 @@ enum eHandlingId
|
||||||
HANDLING_STALLION,
|
HANDLING_STALLION,
|
||||||
HANDLING_RUMPO,
|
HANDLING_RUMPO,
|
||||||
HANDLING_RCBANDIT,
|
HANDLING_RCBANDIT,
|
||||||
HANDLING_BELLYUP,
|
|
||||||
HANDLING_MRWONGS,
|
|
||||||
HANDLING_MAFIA,
|
HANDLING_MAFIA,
|
||||||
HANDLING_YARDIE,
|
|
||||||
HANDLING_YAKUZA,
|
|
||||||
HANDLING_DIABLOS,
|
|
||||||
HANDLING_COLUMB,
|
|
||||||
HANDLING_HOODS,
|
|
||||||
HANDLING_AIRTRAIN,
|
HANDLING_AIRTRAIN,
|
||||||
HANDLING_DEADDODO,
|
HANDLING_DEADDODO,
|
||||||
HANDLING_SPEEDER,
|
|
||||||
HANDLING_REEFER,
|
|
||||||
HANDLING_PANLANT,
|
|
||||||
HANDLING_FLATBED,
|
HANDLING_FLATBED,
|
||||||
HANDLING_YANKEE,
|
HANDLING_YANKEE,
|
||||||
HANDLING_BORGNINE
|
HANDLING_GOLFCART,
|
||||||
|
HANDLING_VOODOO,
|
||||||
|
HANDLING_WASHING,
|
||||||
|
HANDLING_CUBAN,
|
||||||
|
HANDLING_ROMERO,
|
||||||
|
HANDLING_PACKER,
|
||||||
|
HANDLING_ADMIRAL,
|
||||||
|
HANDLING_GANGBUR,
|
||||||
|
HANDLING_ZEBRA,
|
||||||
|
HANDLING_TOPFUN,
|
||||||
|
HANDLING_GLENDALE,
|
||||||
|
HANDLING_OCEANIC,
|
||||||
|
HANDLING_HERMES,
|
||||||
|
HANDLING_SABRE1,
|
||||||
|
HANDLING_SABRETUR,
|
||||||
|
HANDLING_PHEONIX,
|
||||||
|
HANDLING_WALTON,
|
||||||
|
HANDLING_REGINA,
|
||||||
|
HANDLING_COMET,
|
||||||
|
HANDLING_DELUXO,
|
||||||
|
HANDLING_BURRITO,
|
||||||
|
HANDLING_SPAND,
|
||||||
|
HANDLING_BAGGAGE,
|
||||||
|
HANDLING_KAUFMAN,
|
||||||
|
HANDLING_RANCHER,
|
||||||
|
HANDLING_FBIRANCH,
|
||||||
|
HANDLING_VIRGO,
|
||||||
|
HANDLING_GREENWOO,
|
||||||
|
HANDLING_HOTRING,
|
||||||
|
HANDLING_SANDKING,
|
||||||
|
HANDLING_BLISTAC,
|
||||||
|
HANDLING_BOXVILLE,
|
||||||
|
HANDLING_BENSON,
|
||||||
|
HANDLING_DESPERAD,
|
||||||
|
HANDLING_LOVEFIST,
|
||||||
|
HANDLING_BLOODRA,
|
||||||
|
HANDLING_BLOODRB,
|
||||||
|
HANDLING_BIKE,
|
||||||
|
HANDLING_MOPED,
|
||||||
|
HANDLING_DIRTBIKE,
|
||||||
|
HANDLING_ANGEL,
|
||||||
|
HANDLING_FREEWAY,
|
||||||
|
HANDLING_PREDATOR,
|
||||||
|
HANDLING_SPEEDER,
|
||||||
|
HANDLING_REEFER,
|
||||||
|
HANDLING_RIO,
|
||||||
|
HANDLING_SQUALO,
|
||||||
|
HANDLING_TROPIC,
|
||||||
|
HANDLING_COASTGRD,
|
||||||
|
HANDLING_DINGHY,
|
||||||
|
HANDLING_MARQUIS,
|
||||||
|
HANDLING_CUPBOAT,
|
||||||
|
HANDLING_SEAPLANE,
|
||||||
|
HANDLING_SPARROW,
|
||||||
|
HANDLING_SEASPAR,
|
||||||
|
HANDLING_MAVERICK,
|
||||||
|
HANDLING_COASTMAV,
|
||||||
|
HANDLING_POLMAV,
|
||||||
|
HANDLING_HUNTER,
|
||||||
|
HANDLING_RCBARON,
|
||||||
|
HANDLING_RCGOBLIN,
|
||||||
|
HANDLING_RCCOPTER
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -81,6 +130,17 @@ enum
|
||||||
HANDLING_HAS_NO_ROOF = 0x2000,
|
HANDLING_HAS_NO_ROOF = 0x2000,
|
||||||
HANDLING_IS_BIG = 0x4000,
|
HANDLING_IS_BIG = 0x4000,
|
||||||
HANDLING_HALOGEN_LIGHTS = 0x8000,
|
HANDLING_HALOGEN_LIGHTS = 0x8000,
|
||||||
|
HANDLING_IS_BIKE = 0x10000,
|
||||||
|
HANDLING_IS_HELI = 0x20000,
|
||||||
|
HANDLING_IS_PLANE = 0x40000,
|
||||||
|
HANDLING_IS_BOAT = 0x80000,
|
||||||
|
HANDLING_NO_EXHAUST = 0x100000,
|
||||||
|
HANDLING_REARWHEEL_1ST = 0x200000,
|
||||||
|
HANDLING_HANDBRAKE_TYRE = 0x400000,
|
||||||
|
HANDLING_SIT_IN_BOAT = 0x800000,
|
||||||
|
HANDLING_FAT_REARW = 0x1000000,
|
||||||
|
HANDLING_NARROW_FRONTW = 0x2000000,
|
||||||
|
HANDLING_GOOD_INSAND = 0x4000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tHandlingData
|
struct tHandlingData
|
||||||
|
|
Loading…
Reference in a new issue