summaryrefslogtreecommitdiffstats
path: root/src/modelinfo
diff options
context:
space:
mode:
authorFire_Head <Fire-Head@users.noreply.github.com>2020-06-29 08:37:53 +0200
committerGitHub <noreply@github.com>2020-06-29 08:37:53 +0200
commit860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb (patch)
tree6a8f83b0d46e97b198f095b7624deecca75051e7 /src/modelinfo
parentrestore Text.cpp (diff)
parentMerge remote-tracking branch 'upstream/master' (diff)
downloadre3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.tar
re3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.tar.gz
re3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.tar.bz2
re3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.tar.lz
re3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.tar.xz
re3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.tar.zst
re3-860f75d66ce51f2f5f3ea2b4b2b582f6d161a2bb.zip
Diffstat (limited to 'src/modelinfo')
-rw-r--r--src/modelinfo/ModelIndices.cpp6
-rw-r--r--src/modelinfo/ModelIndices.h322
-rw-r--r--src/modelinfo/PedModelInfo.cpp7
-rw-r--r--src/modelinfo/PedModelInfo.h9
-rw-r--r--src/modelinfo/SimpleModelInfo.cpp7
-rw-r--r--src/modelinfo/VehicleModelInfo.cpp21
-rw-r--r--src/modelinfo/VehicleModelInfo.h38
7 files changed, 234 insertions, 176 deletions
diff --git a/src/modelinfo/ModelIndices.cpp b/src/modelinfo/ModelIndices.cpp
index 9a6a74d0..056c3733 100644
--- a/src/modelinfo/ModelIndices.cpp
+++ b/src/modelinfo/ModelIndices.cpp
@@ -3,14 +3,14 @@
#include "General.h"
#include "ModelIndices.h"
-#define X(name, var, addr) int16 var;
+#define X(name, var) int16 var;
MODELINDICES
#undef X
void
InitModelIndices(void)
{
-#define X(name, var, addr) var = -1;
+#define X(name, var) var = -1;
MODELINDICES
#undef X
}
@@ -18,7 +18,7 @@ InitModelIndices(void)
void
MatchModelString(const char *modelname, int16 id)
{
-#define X(name, var, addr) \
+#define X(name, var) \
if(!CGeneral::faststrcmp(name, modelname)){ \
var = id; \
return; \
diff --git a/src/modelinfo/ModelIndices.h b/src/modelinfo/ModelIndices.h
index cc6ed25c..c0f01929 100644
--- a/src/modelinfo/ModelIndices.h
+++ b/src/modelinfo/ModelIndices.h
@@ -1,164 +1,164 @@
#pragma once
#define MODELINDICES \
- X("fire_hydrant", MI_FIRE_HYDRANT, 0x5F5A00) \
- X("bagelstnd02", MI_BAGELSTAND2, 0x5F59FC) \
- X("fish01", MI_FISHSTALL01, 0x5F59EC) \
- X("fishstall02", MI_FISHSTALL02, 0x5F59F0) \
- X("fishstall03", MI_FISHSTALL03, 0x5F59F4) \
- X("fishstall04", MI_FISHSTALL04, 0x5F59F8) \
- X("taxisign", MI_TAXISIGN, 0x5F59E8) \
- X("phonesign", MI_PHONESIGN, 0x5F59E4) \
- X("noparkingsign1", MI_NOPARKINGSIGN1, 0x5F59E0) \
- X("bussign1", MI_BUSSIGN1, 0x5F59DC) \
- X("roadworkbarrier1", MI_ROADWORKBARRIER1, 0x5F59D8) \
- X("dump1", MI_DUMP1, 0x5F59D4) \
- X("trafficcone", MI_TRAFFICCONE, 0x5F59D0) \
- X("newsstand1", MI_NEWSSTAND, 0x5F59CC) \
- X("postbox1", MI_POSTBOX1, 0x5F59C8) \
- X("bin1", MI_BIN, 0x5F59C4) \
- X("wastebin", MI_WASTEBIN, 0x5F59C0) \
- X("phonebooth1", MI_PHONEBOOTH1, 0x5F59BC) \
- X("parkingmeter", MI_PARKINGMETER, 0x5F59B8) \
- X("trafficlight1", MI_TRAFFICLIGHTS, 0x5F5958) \
- X("lamppost1", MI_SINGLESTREETLIGHTS1, 0x5F595C) \
- X("lamppost2", MI_SINGLESTREETLIGHTS2, 0x5F5960) \
- X("lamppost3", MI_SINGLESTREETLIGHTS3, 0x5F5964) \
- X("doublestreetlght1", MI_DOUBLESTREETLIGHTS, 0x5F5968) \
- X("rd_Road2A10", MI_ROADSFORROADBLOCKSSTART, 0x5F596C) \
- X("rd_Road1A30", MI_ROADSFORROADBLOCKSEND, 0x5F5970) \
- X("veg_tree1", MI_TREE1, 0x5F5974) \
- X("veg_tree3", MI_TREE2, 0x5F5978) \
- X("veg_treea1", MI_TREE3, 0x5F597C) \
- X("veg_treenew01", MI_TREE4, 0x5F5980) \
- X("veg_treenew05", MI_TREE5, 0x5F5984) \
- X("veg_treeb1", MI_TREE6, 0x5F5988) \
- X("veg_treenew10", MI_TREE7, 0x5F598C) \
- X("veg_treea3", MI_TREE8, 0x5F5990) \
- X("veg_treenew09", MI_TREE9, 0x5F5994) \
- X("veg_treenew08", MI_TREE10, 0x5F5998) \
- X("veg_treenew03", MI_TREE11, 0x5F599C) \
- X("veg_treenew16", MI_TREE12, 0x5F59A0) \
- X("veg_treenew17", MI_TREE13, 0x5F59A4) \
- X("veg_treenew06", MI_TREE14, 0x5F59A8) \
- X("doc_crane_cab", MODELID_CRANE_1, 0x5F59AC) \
- X("cranetopb", MODELID_CRANE_2, 0x5F59B0) \
- X("cranetopa", MODELID_CRANE_3, 0x5F59B4) \
- X("package1", MI_COLLECTABLE1, 0x5F5A04) \
- X("Money", MI_MONEY, 0x5F5A08) \
- X("barrel1", MI_CARMINE, 0x5F5A0C) \
- X("oddjgaragdoor", MI_GARAGEDOOR1, 0x5F5A10) \
- X("bombdoor", MI_GARAGEDOOR2, 0x5F5A14) \
- X("door_bombshop", MI_GARAGEDOOR3, 0x5F5A18) \
- X("vheistlocdoor", MI_GARAGEDOOR4, 0x5F5A1C) \
- X("door2_garage", MI_GARAGEDOOR5, 0x5F5A20) \
- X("ind_slidedoor", MI_GARAGEDOOR6, 0x5F5A24) \
- X("bankjobdoor", MI_GARAGEDOOR7, 0x5F5A28) \
- X("door_jmsgrage", MI_GARAGEDOOR9, 0x5F5A2C) \
- X("jamesgrge_kb", MI_GARAGEDOOR10, 0x5F5A30) \
- X("door_sfehousegrge", MI_GARAGEDOOR11, 0x5F5A34) \
- X("shedgaragedoor", MI_GARAGEDOOR12, 0x5F5A38) \
- X("door4_garage", MI_GARAGEDOOR13, 0x5F5A3C) \
- X("door_col_compnd_01", MI_GARAGEDOOR14, 0x5F5A40) \
- X("door_col_compnd_02", MI_GARAGEDOOR15, 0x5F5A44) \
- X("door_col_compnd_03", MI_GARAGEDOOR16, 0x5F5A48) \
- X("door_col_compnd_04", MI_GARAGEDOOR17, 0x5F5A4C) \
- X("door_col_compnd_05", MI_GARAGEDOOR18, 0x5F5A50) \
- X("impex_door", MI_GARAGEDOOR19, 0x5F5A54) \
- X("SalvGarage", MI_GARAGEDOOR20, 0x5F5A58) \
- X("door3_garage", MI_GARAGEDOOR21, 0x5F5A5C) \
- X("leveldoor2", MI_GARAGEDOOR22, 0x5F5A60) \
- X("double_garage_dr", MI_GARAGEDOOR23, 0x5F5A64) \
- X("amcogaragedoor", MI_GARAGEDOOR24, 0x5F5A68) \
- X("towergaragedoor1", MI_GARAGEDOOR25, 0x5F5A6C) \
- X("towergaragedoor2", MI_GARAGEDOOR26, 0x5F5A70) \
- X("towergaragedoor3", MI_GARAGEDOOR27, 0x5F5A74) \
- X("plysve_gragedoor", MI_GARAGEDOOR28, 0x5F5A78) \
- X("impexpsubgrgdoor", MI_GARAGEDOOR29, 0x5F5A7C) \
- X("Sub_sprayshopdoor", MI_GARAGEDOOR30, 0x5F5A80) \
- X("ind_plyrwoor", MI_GARAGEDOOR31, 0x5F5A84) \
- X("8ballsuburbandoor", MI_GARAGEDOOR32, 0x5F5A88) \
- X("barrel2", MI_NAUTICALMINE, 0x5F5A8C) \
- X("crushercrush", MI_CRUSHERBODY, 0x5F5A90) \
- X("crushertop", MI_CRUSHERLID, 0x5F5A94) \
- X("donkeymag", MI_DONKEYMAG, 0x5F5A98) \
- X("bullion", MI_BULLION, 0x5F5A9C) \
- X("floatpackge1", MI_FLOATPACKAGE1, 0x5F5AA0) \
- X("briefcase", MI_BRIEFCASE, 0x5F5AA4) \
- X("chinabanner1", MI_CHINABANNER1, 0x5F5AA8) \
- X("chinabanner2", MI_CHINABANNER2, 0x5F5AAC) \
- X("chinabanner3", MI_CHINABANNER3, 0x5F5AB0) \
- X("chinabanner4", MI_CHINABANNER4, 0x5F5AB4) \
- X("iten_chinatown5", MI_CHINABANNER5, 0x5F5AB8) \
- X("iten_chinatown7", MI_CHINABANNER6, 0x5F5ABC) \
- X("iten_chinatown3", MI_CHINABANNER7, 0x5F5AC0) \
- X("iten_chinatown2", MI_CHINABANNER8, 0x5F5AC4) \
- X("iten_chinatown4", MI_CHINABANNER9, 0x5F5AC8) \
- X("iten_washline01", MI_CHINABANNER10, 0x5F5ACC) \
- X("iten_washline02", MI_CHINABANNER11, 0x5F5AD0) \
- X("iten_washline03", MI_CHINABANNER12, 0x5F5AD4) \
- X("chinalanterns", MI_CHINALANTERN, 0x5F5AD8) \
- X("glassfx1", MI_GLASS1, 0x5F5ADC) \
- X("glassfx2", MI_GLASS2, 0x5F5AE0) \
- X("glassfx3", MI_GLASS3, 0x5F5AE4) \
- X("glassfx4", MI_GLASS4, 0x5F5AE8) \
- X("glassfx55", MI_GLASS5, 0x5F5AEC) \
- X("glassfxsub1", MI_GLASS6, 0x5F5AF0) \
- X("glassfxsub2", MI_GLASS7, 0x5F5AF4) \
- X("glassfx_composh", MI_GLASS8, 0x5F5AF8) \
- X("bridge_liftsec", MI_BRIDGELIFT, 0x5F5AFC) \
- X("bridge_liftweight", MI_BRIDGEWEIGHT, 0x5F5B00) \
- X("subbridge_lift", MI_BRIDGEROADSEGMENT, 0x5F5B04) \
- X("barrel4", MI_EXPLODINGBARREL, 0x5F5B08) \
- X("flagsitaly", MI_ITALYBANNER1, 0x5F5B0C) \
- X("adrenaline", MI_PICKUP_ADRENALINE, 0x5F5B10) \
- X("bodyarmour", MI_PICKUP_BODYARMOUR, 0x5F5B14) \
- X("info", MI_PICKUP_INFO, 0x5F5B18) \
- X("health", MI_PICKUP_HEALTH, 0x5F5B1C) \
- X("bonus", MI_PICKUP_BONUS, 0x5F5B20) \
- X("bribe", MI_PICKUP_BRIBE, 0x5F5B24) \
- X("killfrenzy", MI_PICKUP_KILLFRENZY, 0x5F5B28) \
- X("camerapickup", MI_PICKUP_CAMERA, 0x5F5B2C) \
- X("bollardlight", MI_BOLLARDLIGHT, 0x5F5B30) \
- X("magnet", MI_MAGNET, 0x5F5B34) \
- X("streetlamp1", MI_STREETLAMP1, 0x5F5B38) \
- X("streetlamp2", MI_STREETLAMP2, 0x5F5B3C) \
- X("railtrax_lo4b", MI_RAILTRACKS, 0x5F5B40) \
- X("bar_barrier10", MI_FENCE, 0x5F5B44) \
- X("bar_barrier12", MI_FENCE2, 0x5F5B48) \
- X("petrolpump", MI_PETROLPUMP, 0x5F5B4C) \
- X("bodycast", MI_BODYCAST, 0x5F5B50) \
- X("backdoor", MI_BACKDOOR, 0x5F5B54) \
- X("coffee", MI_COFFEE, 0x5F5B58) \
- X("bouy", MI_BUOY, 0x5F5B5C) \
- X("parktable1", MI_PARKTABLE, 0x5F5B60) \
- X("sbwy_tunl_start", MI_SUBWAY1, 0x5F5B64) \
- X("sbwy_tunl_bit", MI_SUBWAY2, 0x5F5B68) \
- X("sbwy_tunl_bend", MI_SUBWAY3, 0x5F5B6C) \
- X("sbwy_tunl_cstm6", MI_SUBWAY4, 0x5F5B70) \
- X("sbwy_tunl_cstm7", MI_SUBWAY5, 0x5F5B74) \
- X("sbwy_tunl_cstm8", MI_SUBWAY6, 0x5F5B78) \
- X("sbwy_tunl_cstm10", MI_SUBWAY7, 0x5F5B7C) \
- X("sbwy_tunl_cstm9", MI_SUBWAY8, 0x5F5B80) \
- X("sbwy_tunl_cstm11", MI_SUBWAY9, 0x5F5B84) \
- X("sbwy_tunl_cstm1", MI_SUBWAY10, 0x5F5B88) \
- X("sbwy_tunl_cstm2", MI_SUBWAY11, 0x5F5B8C) \
- X("sbwy_tunl_cstm4", MI_SUBWAY12, 0x5F5B90) \
- X("sbwy_tunl_cstm3", MI_SUBWAY13, 0x5F5B94) \
- X("sbwy_tunl_cstm5", MI_SUBWAY14, 0x5F5B98) \
- X("subplatform_n2", MI_SUBWAY15, 0x5F5B9C) \
- X("suby_tunl_start", MI_SUBWAY16, 0x5F5BA0) \
- X("sbwy_tunl_start2", MI_SUBWAY17, 0x5F5BA4) \
- X("indy_tunl_start", MI_SUBWAY18, 0x5F5BA8) \
- X("indsubway03", MI_SUBPLATFORM_IND, 0x5F5BAC) \
- X("comerside_subway", MI_SUBPLATFORM_COMS, 0x5F5BB0) \
- X("subplatform", MI_SUBPLATFORM_COMS2, 0x5F5BB4) \
- X("subplatform_n", MI_SUBPLATFORM_COMN, 0x5F5BB8) \
- X("Otherside_subway", MI_SUBPLATFORM_SUB, 0x5F5BBC) \
- X("subplatform_sub", MI_SUBPLATFORM_SUB2, 0x5F5BC0) \
- X("files", MI_FILES, 0x5F5BC4)
+ X("fire_hydrant", MI_FIRE_HYDRANT) \
+ X("bagelstnd02", MI_BAGELSTAND2) \
+ X("fish01", MI_FISHSTALL01) \
+ X("fishstall02", MI_FISHSTALL02) \
+ X("fishstall03", MI_FISHSTALL03) \
+ X("fishstall04", MI_FISHSTALL04) \
+ X("taxisign", MI_TAXISIGN) \
+ X("phonesign", MI_PHONESIGN) \
+ X("noparkingsign1", MI_NOPARKINGSIGN1) \
+ X("bussign1", MI_BUSSIGN1) \
+ X("roadworkbarrier1", MI_ROADWORKBARRIER1) \
+ X("dump1", MI_DUMP1) \
+ X("trafficcone", MI_TRAFFICCONE) \
+ X("newsstand1", MI_NEWSSTAND) \
+ X("postbox1", MI_POSTBOX1) \
+ X("bin1", MI_BIN) \
+ X("wastebin", MI_WASTEBIN) \
+ X("phonebooth1", MI_PHONEBOOTH1) \
+ X("parkingmeter", MI_PARKINGMETER) \
+ X("trafficlight1", MI_TRAFFICLIGHTS) \
+ X("lamppost1", MI_SINGLESTREETLIGHTS1) \
+ X("lamppost2", MI_SINGLESTREETLIGHTS2) \
+ X("lamppost3", MI_SINGLESTREETLIGHTS3) \
+ X("doublestreetlght1", MI_DOUBLESTREETLIGHTS) \
+ X("rd_Road2A10", MI_ROADSFORROADBLOCKSSTART) \
+ X("rd_Road1A30", MI_ROADSFORROADBLOCKSEND) \
+ X("veg_tree1", MI_TREE1) \
+ X("veg_tree3", MI_TREE2) \
+ X("veg_treea1", MI_TREE3) \
+ X("veg_treenew01", MI_TREE4) \
+ X("veg_treenew05", MI_TREE5) \
+ X("veg_treeb1", MI_TREE6) \
+ X("veg_treenew10", MI_TREE7) \
+ X("veg_treea3", MI_TREE8) \
+ X("veg_treenew09", MI_TREE9) \
+ X("veg_treenew08", MI_TREE10) \
+ X("veg_treenew03", MI_TREE11) \
+ X("veg_treenew16", MI_TREE12) \
+ X("veg_treenew17", MI_TREE13) \
+ X("veg_treenew06", MI_TREE14) \
+ X("doc_crane_cab", MODELID_CRANE_1) \
+ X("cranetopb", MODELID_CRANE_2) \
+ X("cranetopa", MODELID_CRANE_3) \
+ X("package1", MI_COLLECTABLE1) \
+ X("Money", MI_MONEY) \
+ X("barrel1", MI_CARMINE) \
+ X("oddjgaragdoor", MI_GARAGEDOOR1) \
+ X("bombdoor", MI_GARAGEDOOR2) \
+ X("door_bombshop", MI_GARAGEDOOR3) \
+ X("vheistlocdoor", MI_GARAGEDOOR4) \
+ X("door2_garage", MI_GARAGEDOOR5) \
+ X("ind_slidedoor", MI_GARAGEDOOR6) \
+ X("bankjobdoor", MI_GARAGEDOOR7) \
+ X("door_jmsgrage", MI_GARAGEDOOR9) \
+ X("jamesgrge_kb", MI_GARAGEDOOR10) \
+ X("door_sfehousegrge", MI_GARAGEDOOR11) \
+ X("shedgaragedoor", MI_GARAGEDOOR12) \
+ X("door4_garage", MI_GARAGEDOOR13) \
+ X("door_col_compnd_01", MI_GARAGEDOOR14) \
+ X("door_col_compnd_02", MI_GARAGEDOOR15) \
+ X("door_col_compnd_03", MI_GARAGEDOOR16) \
+ X("door_col_compnd_04", MI_GARAGEDOOR17) \
+ X("door_col_compnd_05", MI_GARAGEDOOR18) \
+ X("impex_door", MI_GARAGEDOOR19) \
+ X("SalvGarage", MI_GARAGEDOOR20) \
+ X("door3_garage", MI_GARAGEDOOR21) \
+ X("leveldoor2", MI_GARAGEDOOR22) \
+ X("double_garage_dr", MI_GARAGEDOOR23) \
+ X("amcogaragedoor", MI_GARAGEDOOR24) \
+ X("towergaragedoor1", MI_GARAGEDOOR25) \
+ X("towergaragedoor2", MI_GARAGEDOOR26) \
+ X("towergaragedoor3", MI_GARAGEDOOR27) \
+ X("plysve_gragedoor", MI_GARAGEDOOR28) \
+ X("impexpsubgrgdoor", MI_GARAGEDOOR29) \
+ X("Sub_sprayshopdoor", MI_GARAGEDOOR30) \
+ X("ind_plyrwoor", MI_GARAGEDOOR31) \
+ X("8ballsuburbandoor", MI_GARAGEDOOR32) \
+ X("barrel2", MI_NAUTICALMINE) \
+ X("crushercrush", MI_CRUSHERBODY) \
+ X("crushertop", MI_CRUSHERLID) \
+ X("donkeymag", MI_DONKEYMAG) \
+ X("bullion", MI_BULLION) \
+ X("floatpackge1", MI_FLOATPACKAGE1) \
+ X("briefcase", MI_BRIEFCASE) \
+ X("chinabanner1", MI_CHINABANNER1) \
+ X("chinabanner2", MI_CHINABANNER2) \
+ X("chinabanner3", MI_CHINABANNER3) \
+ X("chinabanner4", MI_CHINABANNER4) \
+ X("iten_chinatown5", MI_CHINABANNER5) \
+ X("iten_chinatown7", MI_CHINABANNER6) \
+ X("iten_chinatown3", MI_CHINABANNER7) \
+ X("iten_chinatown2", MI_CHINABANNER8) \
+ X("iten_chinatown4", MI_CHINABANNER9) \
+ X("iten_washline01", MI_CHINABANNER10) \
+ X("iten_washline02", MI_CHINABANNER11) \
+ X("iten_washline03", MI_CHINABANNER12) \
+ X("chinalanterns", MI_CHINALANTERN) \
+ X("glassfx1", MI_GLASS1) \
+ X("glassfx2", MI_GLASS2) \
+ X("glassfx3", MI_GLASS3) \
+ X("glassfx4", MI_GLASS4) \
+ X("glassfx55", MI_GLASS5) \
+ X("glassfxsub1", MI_GLASS6) \
+ X("glassfxsub2", MI_GLASS7) \
+ X("glassfx_composh", MI_GLASS8) \
+ X("bridge_liftsec", MI_BRIDGELIFT) \
+ X("bridge_liftweight", MI_BRIDGEWEIGHT) \
+ X("subbridge_lift", MI_BRIDGEROADSEGMENT) \
+ X("barrel4", MI_EXPLODINGBARREL) \
+ X("flagsitaly", MI_ITALYBANNER1) \
+ X("adrenaline", MI_PICKUP_ADRENALINE) \
+ X("bodyarmour", MI_PICKUP_BODYARMOUR) \
+ X("info", MI_PICKUP_INFO) \
+ X("health", MI_PICKUP_HEALTH) \
+ X("bonus", MI_PICKUP_BONUS) \
+ X("bribe", MI_PICKUP_BRIBE) \
+ X("killfrenzy", MI_PICKUP_KILLFRENZY) \
+ X("camerapickup", MI_PICKUP_CAMERA) \
+ X("bollardlight", MI_BOLLARDLIGHT) \
+ X("magnet", MI_MAGNET) \
+ X("streetlamp1", MI_STREETLAMP1) \
+ X("streetlamp2", MI_STREETLAMP2) \
+ X("railtrax_lo4b", MI_RAILTRACKS) \
+ X("bar_barrier10", MI_FENCE) \
+ X("bar_barrier12", MI_FENCE2) \
+ X("petrolpump", MI_PETROLPUMP) \
+ X("bodycast", MI_BODYCAST) \
+ X("backdoor", MI_BACKDOOR) \
+ X("coffee", MI_COFFEE) \
+ X("bouy", MI_BUOY) \
+ X("parktable1", MI_PARKTABLE) \
+ X("sbwy_tunl_start", MI_SUBWAY1) \
+ X("sbwy_tunl_bit", MI_SUBWAY2) \
+ X("sbwy_tunl_bend", MI_SUBWAY3) \
+ X("sbwy_tunl_cstm6", MI_SUBWAY4) \
+ X("sbwy_tunl_cstm7", MI_SUBWAY5) \
+ X("sbwy_tunl_cstm8", MI_SUBWAY6) \
+ X("sbwy_tunl_cstm10", MI_SUBWAY7) \
+ X("sbwy_tunl_cstm9", MI_SUBWAY8) \
+ X("sbwy_tunl_cstm11", MI_SUBWAY9) \
+ X("sbwy_tunl_cstm1", MI_SUBWAY10) \
+ X("sbwy_tunl_cstm2", MI_SUBWAY11) \
+ X("sbwy_tunl_cstm4", MI_SUBWAY12) \
+ X("sbwy_tunl_cstm3", MI_SUBWAY13) \
+ X("sbwy_tunl_cstm5", MI_SUBWAY14) \
+ X("subplatform_n2", MI_SUBWAY15) \
+ X("suby_tunl_start", MI_SUBWAY16) \
+ X("sbwy_tunl_start2", MI_SUBWAY17) \
+ X("indy_tunl_start", MI_SUBWAY18) \
+ X("indsubway03", MI_SUBPLATFORM_IND) \
+ X("comerside_subway", MI_SUBPLATFORM_COMS) \
+ X("subplatform", MI_SUBPLATFORM_COMS2) \
+ X("subplatform_n", MI_SUBPLATFORM_COMN) \
+ X("Otherside_subway", MI_SUBPLATFORM_SUB) \
+ X("subplatform_sub", MI_SUBPLATFORM_SUB2) \
+ X("files", MI_FILES)
-#define X(name, var, addr) extern int16 var;
+#define X(name, var) extern int16 var;
MODELINDICES
#undef X
@@ -255,7 +255,9 @@ enum
MI_BUSKER4,
// three more peds possible
- MI_FIRST_VEHICLE = 90,
+ MI_LAST_PED = 89,
+ MI_FIRST_VEHICLE,
+
MI_LANDSTAL = MI_FIRST_VEHICLE,
MI_IDAHO,
MI_STINGER,
@@ -382,7 +384,7 @@ IsGlass(int16 id)
}
inline bool
-IsTrafficLight(int16 id)
+IsStreetLight(int16 id)
{
return id == MI_TRAFFICLIGHTS ||
id == MI_SINGLESTREETLIGHTS1 ||
@@ -410,7 +412,7 @@ IsBoatModel(int16 id)
inline bool
IsPedModel(int16 id)
{
- return id >= 0 && id <= 89;
+ return id >= MI_PLAYER && id <= MI_LAST_PED;
}
inline bool
diff --git a/src/modelinfo/PedModelInfo.cpp b/src/modelinfo/PedModelInfo.cpp
index 0cb0fc36..1d8aa4dc 100644
--- a/src/modelinfo/PedModelInfo.cpp
+++ b/src/modelinfo/PedModelInfo.cpp
@@ -21,16 +21,19 @@ CPedModelInfo::DeleteRwObject(void)
frame = RpAtomicGetFrame(m_head);
RpAtomicDestroy(m_head);
RwFrameDestroy(frame);
+ m_head = nil;
}
if(m_lhand){
frame = RpAtomicGetFrame(m_lhand);
RpAtomicDestroy(m_lhand);
RwFrameDestroy(frame);
+ m_lhand = nil;
}
if(m_rhand){
frame = RpAtomicGetFrame(m_rhand);
RpAtomicDestroy(m_rhand);
RwFrameDestroy(frame);
+ m_rhand = nil;
}
#endif
CClumpModelInfo::DeleteRwObject(); // PC calls this first
@@ -248,7 +251,7 @@ CPedModelInfo::CreateHitColModel(void)
center.x = mat->pos.x + m_pColNodeInfos[i].x;
center.y = mat->pos.y + 0.0f;
center.z = mat->pos.z + m_pColNodeInfos[i].z;
- spheres[i].Set(radius, center, SURFACE_FLESH, m_pColNodeInfos[i].pieceType);
+ spheres[i].Set(radius, center, SURFACE_PED, m_pColNodeInfos[i].pieceType);
}
}
RwMatrixDestroy(mat);
@@ -332,7 +335,7 @@ CPedModelInfo::CreateHitColModelSkinned(RpClump *clump)
center.x = pos.x + m_pColNodeInfos[i].x;
center.y = pos.y + 0.0f;
center.z = pos.z + m_pColNodeInfos[i].z;
- spheres[i].Set(m_pColNodeInfos[i].radius, center, SURFACE_FLESH, m_pColNodeInfos[i].pieceType);
+ spheres[i].Set(m_pColNodeInfos[i].radius, center, SURFACE_PED, m_pColNodeInfos[i].pieceType);
}
RwMatrixDestroy(invmat);
RwMatrixDestroy(mat);
diff --git a/src/modelinfo/PedModelInfo.h b/src/modelinfo/PedModelInfo.h
index 52f75894..d73d3646 100644
--- a/src/modelinfo/PedModelInfo.h
+++ b/src/modelinfo/PedModelInfo.h
@@ -36,7 +36,14 @@ public:
static RwObjectNameIdAssocation m_pPedIds[PED_NODE_MAX];
- CPedModelInfo(void) : CClumpModelInfo(MITYPE_PED) { m_hitColModel = nil; }
+ CPedModelInfo(void) : CClumpModelInfo(MITYPE_PED) {
+ m_hitColModel = nil;
+#ifdef PED_SKIN
+ m_head = nil;
+ m_lhand = nil;
+ m_rhand = nil;
+#endif
+ }
~CPedModelInfo(void) { delete m_hitColModel; }
void DeleteRwObject(void);
void SetClump(RpClump *);
diff --git a/src/modelinfo/SimpleModelInfo.cpp b/src/modelinfo/SimpleModelInfo.cpp
index a781cf58..32204500 100644
--- a/src/modelinfo/SimpleModelInfo.cpp
+++ b/src/modelinfo/SimpleModelInfo.cpp
@@ -157,6 +157,13 @@ CSimpleModelInfo::SetupBigBuilding(void)
if(related)
m_lodDistances[2] = related->GetLargestLodDistance()/TheCamera.LODDistMultiplier;
else
+#ifdef FIX_BUGS
+ if(toupper(m_name[0]) == 'L' && toupper(m_name[1]) == 'O' && toupper(m_name[2]) == 'D')
m_lodDistances[2] = 100.0f;
+ else
+ m_lodDistances[2] = 0.0f;
+#else
+ m_lodDistances[2] = 100.0f;
+#endif
}
}
diff --git a/src/modelinfo/VehicleModelInfo.cpp b/src/modelinfo/VehicleModelInfo.cpp
index 74285c19..d8b388d5 100644
--- a/src/modelinfo/VehicleModelInfo.cpp
+++ b/src/modelinfo/VehicleModelInfo.cpp
@@ -16,6 +16,7 @@
#include "Train.h"
#include "Plane.h"
#include "Heli.h"
+#include "Bike.h"
#include "ModelIndices.h"
#include "ModelInfo.h"
@@ -120,16 +121,16 @@ RwObjectNameIdAssocation planeIds[] = {
};
RwObjectNameIdAssocation bikeIds[] = {
- { "chassis_dummy", 1, 0 },
- { "forks_front", 2, 0 },
- { "forks_rear", 3, 0 },
- { "wheel_front", 4, 0 },
- { "wheel_rear", 5, 0 },
- { "mudguard", 6, 0 },
- { "ped_frontseat", 2, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
- { "headlights", 0, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
- { "taillights", 1, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
- { "exhaust", 9, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
+ { "chassis_dummy", BIKE_CHASSIS, 0 },
+ { "forks_front", BIKE_FORKS_FRONT, 0 },
+ { "forks_rear", BIKE_FORKS_REAR, 0 },
+ { "wheel_front", BIKE_WHEEL_FRONT, 0 },
+ { "wheel_rear", BIKE_WHEEL_REAR, 0 },
+ { "mudguard", BIKE_MUDGUARD, 0 },
+ { "ped_frontseat", CAR_POS_FRONTSEAT, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
+ { "headlights", CAR_POS_HEADLIGHTS, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
+ { "taillights", CAR_POS_TAILLIGHTS, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
+ { "exhaust", CAR_POS_EXHAUST, VEHICLE_FLAG_POS | CLUMP_FLAG_NO_HIERID },
{ "extra1", 0, VEHICLE_FLAG_DRAWLAST | VEHICLE_FLAG_COMP | CLUMP_FLAG_NO_HIERID },
{ "extra2", 0, VEHICLE_FLAG_DRAWLAST | VEHICLE_FLAG_COMP | CLUMP_FLAG_NO_HIERID },
{ "extra3", 0, VEHICLE_FLAG_DRAWLAST | VEHICLE_FLAG_COMP | CLUMP_FLAG_NO_HIERID },
diff --git a/src/modelinfo/VehicleModelInfo.h b/src/modelinfo/VehicleModelInfo.h
index ba25d3cd..468ce96d 100644
--- a/src/modelinfo/VehicleModelInfo.h
+++ b/src/modelinfo/VehicleModelInfo.h
@@ -35,6 +35,43 @@ enum eVehicleType {
NUM_VEHICLE_TYPES
};
+enum eCarPositions
+{
+ CAR_POS_HEADLIGHTS,
+ CAR_POS_TAILLIGHTS,
+ CAR_POS_FRONTSEAT,
+ CAR_POS_BACKSEAT,
+ // these are unused so we don't know the actual values
+ CAR_POS_REVERSELIGHTS,
+ CAR_POS_BRAKELIGHTS,
+ CAR_POS_INDICATORS_FRONT,
+ CAR_POS_INDICATORS_BACK,
+ CAR_POS_STEERWHEEL,
+ //
+ CAR_POS_EXHAUST
+};
+
+enum eBoatPositions
+{
+ BOAT_POS_FRONTSEAT
+};
+
+enum eTrainPositions
+{
+ TRAIN_POS_LIGHT_FRONT,
+ TRAIN_POS_LIGHT_REAR,
+ TRAIN_POS_LEFT_ENTRY,
+ TRAIN_POS_MID_ENTRY,
+ TRAIN_POS_RIGHT_ENTRY
+};
+
+enum ePlanePositions
+{
+ PLANE_POS_LIGHT_LEFT,
+ PLANE_POS_LIGHT_RIGHT,
+ PLANE_POS_LIGHT_TAIL,
+};
+
enum {
NUM_VEHICLE_POSITIONS = 10
};
@@ -100,6 +137,7 @@ public:
void SetVehicleComponentFlags(RwFrame *frame, uint32 flags);
void PreprocessHierarchy(void);
void GetWheelPosn(int32 n, CVector &pos);
+ CVector &GetFrontSeatPosn(void) { return m_positions[m_vehicleType == VEHICLE_TYPE_BOAT ? BOAT_POS_FRONTSEAT : CAR_POS_FRONTSEAT]; };
int32 ChooseComponent(void);
int32 ChooseSecondComponent(void);