Identify a heap of gun MODELPART constants

This commit is contained in:
Ryan Dwyer committed 2022-12-08 21:58:47 +10:00
1 parent a2ad0014e3
commit 50b54d42ff
5 files changed
+563 -641

No files matched your search

+16 -16
View File
@@ -518,7 +518,7 @@ void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct mod
{
struct modelnode *node;
if (partnum == MODELPART_0035 || partnum == MODELPART_0036) {
if (partnum == MODELPART_HAND_LEFT || partnum == MODELPART_HAND_RIGHT) {
if (g_Vars.currentplayer->gunctrl.handmodeldef) {
node = modelGetPart(g_Vars.currentplayer->gunctrl.handmodeldef, partnum);
@@ -6779,7 +6779,7 @@ void bgunUpdateLasersight(struct hand *hand, struct modeldef *modeldef, s32 hand
struct coord sp30;
bool busy;
node = modelGetPart(modeldef, MODELPART_FALCON2_0034);
node = modelGetPart(modeldef, MODELPART_GUN_LASERSIGHT);
if (node) {
mtxindex = modelFindNodeMtxIndex(node, 0);
@@ -6973,10 +6973,10 @@ void bgunUpdateSniperRifle(struct modeldef *modeldef, u8 *allocation)
f26 = 1.0f - (currentPlayerGetGunZoomFov() - 2.0f) / 58.0f;
nodes[0] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002A);
nodes[1] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002B);
nodes[2] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002C);
nodes[3] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002D);
nodes[0] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_SCOPE1);
nodes[1] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_SCOPE2);
nodes[2] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_SCOPE3);
nodes[3] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_SCOPE4);
for (i = 0; i < 4; i++) {
if (nodes[i]) {
@@ -7371,11 +7371,11 @@ void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s3
ground = g_Vars.currentplayer->vv_ground;
if (modeldef && weaponnum != WEAPON_DY357MAGNUM && weaponnum != WEAPON_DY357LX) {
s32 partnum = MODELPART_PISTOL_003C;
s32 partnum = MODELPART_GUN_CARTEJECTPOS;
struct modelnode *node;
if (weaponnum == WEAPON_REAPER) {
partnum = (hand->burstbullets & 1) == 1 ? MODELPART_REAPER_0030 : MODELPART_REAPER_0031;
partnum = (hand->burstbullets & 1) == 1 ? MODELPART_REAPER_CARTEJECTPOS1 : MODELPART_REAPER_CARTEJECTPOS2;
}
node = modelGetPart(modeldef, partnum);
@@ -7395,8 +7395,8 @@ void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s3
casingCreateForHand(handnum, ground, &hand->posmtx);
}
bgunSetPartVisible(MODELPART_CMP150_0046, false, hand, modeldef);
bgunSetPartVisible(MODELPART_CMP150_0047, true, hand, modeldef);
bgunSetPartVisible(MODELPART_GUN_CARTFLAPCLOSED, false, hand, modeldef);
bgunSetPartVisible(MODELPART_GUN_CARTFLAPOPEN, true, hand, modeldef);
}
if (funcdef->type == INVENTORYFUNCTYPE_SHOOT_PROJECTILE) {
@@ -7864,7 +7864,7 @@ void bgun0f0a5550(s32 handnum)
g_ModelJointPositionedFunc = 0;
node = modelGetPart(modeldef, MODELPART_PISTOL_0033);
node = modelGetPart(modeldef, MODELPART_GUN_SLIDE);
if (node) {
sp80 = modelFindNodeMtxIndex(node, 0);
@@ -7909,13 +7909,13 @@ void bgun0f0a5550(s32 handnum)
break;
}
node = modelGetPart(modeldef, 0x32);
node = modelGetPart(modeldef, MODELPART_GUN_MUZZLEPOS);
if (weaponnum == WEAPON_REAPER) {
if (hand->flashon || hand->firing) {
node = modelGetPart(modeldef, 0x1e + (hand->burstbullets % 3));
node = modelGetPart(modeldef, MODELPART_REAPER_001E + (hand->burstbullets % 3));
} else {
node = modelGetPart(modeldef, 0x1e + (g_Vars.lvframenum % 3));
node = modelGetPart(modeldef, MODELPART_REAPER_001E + (g_Vars.lvframenum % 3));
}
}
@@ -7942,7 +7942,7 @@ void bgun0f0a5550(s32 handnum)
|| weaponnum == WEAPON_REMOTEMINE
|| weaponnum == WEAPON_PROXIMITYMINE
|| weaponnum == WEAPON_NBOMB) {
sp6c = modelFindNodeMtxIndex(modelGetPart(modeldef, 0x37), 0);
sp6c = modelFindNodeMtxIndex(modelGetPart(modeldef, MODELPART_GUN_HOLDPOS), 0);
mtx = (Mtxf *)mtxallocation;
mtx += sp6c;
@@ -11029,7 +11029,7 @@ void bgunRender(Gfx **gdlptr)
// Slide the laser's liquid texture
if (PLAYERCOUNT() == 1) {
node = modelGetPart(hand->gunmodel.definition, MODELPART_LASER_0041);
node = modelGetPart(hand->gunmodel.definition, MODELPART_GUN_LASERLIQUID);
// a5c
if (node) {
+253 -253
View File
File diff suppressed because it is too large. Load diff
+4 -4
View File
@@ -7752,12 +7752,12 @@ void doorInitMatrices(struct prop *prop)
union modelrodata *rodata;
f32 xrot = M_BADTAU - door->frac * 0.017450513318181f;
rodata = modelGetPartRodata(model->definition, 1);
rodata = modelGetPartRodata(model->definition, MODELPART_0001);
mtx4LoadXRotation(xrot, MTX(1));
mtx4SetTranslation(&rodata->position.pos, MTX(1));
mtx4MultMtx4InPlace(MTX(0), MTX(1));
rodata = modelGetPartRodata(model->definition, 2);
rodata = modelGetPartRodata(model->definition, MODELPART_0002);
mtx4LoadXRotation(M_BADTAU - xrot, MTX(2));
mtx4SetTranslation(&rodata->position.pos, MTX(2));
mtx4MultMtx4InPlace(MTX(0), MTX(2));
@@ -15129,7 +15129,7 @@ void doorDestroyGlass(struct doorobj *door)
union modelrwdata *rwdata;
Mtxf matrix;
rodata = modelGetPartRodata(model->definition, 2);
rodata = modelGetPartRodata(model->definition, MODELPART_WINDOWEDDOOR_0002);
if (door->portalnum >= 0) {
// @bug: Firing three shots at door glass is supposed to destroy it,
@@ -15154,7 +15154,7 @@ void doorDestroyGlass(struct doorobj *door)
SHARDTYPE_GLASS, prop);
wallhitsFreeByProp(prop, 1);
node = modelGetPart(model->definition, 1);
node = modelGetPart(model->definition, MODELPART_WINDOWEDDOOR_0001);
rwdata = modelGetNodeRwData(model, node);
rwdata->toggle.visible = false;
}
+8 -7
View File
@@ -1654,19 +1654,19 @@ void setupCreateProps(s32 stagenum)
modelstate = &g_ModelStates[modelnum];
if (modelstate->modeldef) {
if (modelGetPartRodata(modelstate->modeldef, 1)) {
if (modelGetPartRodata(modelstate->modeldef, MODELPART_LIFT_WALL1)) {
obj->geocount++;
}
if (modelGetPartRodata(modelstate->modeldef, 2)) {
if (modelGetPartRodata(modelstate->modeldef, MODELPART_LIFT_WALL2)) {
obj->geocount++;
}
if (modelGetPartRodata(modelstate->modeldef, 3)) {
if (modelGetPartRodata(modelstate->modeldef, MODELPART_LIFT_WALL3)) {
obj->geocount++;
}
if (modelGetPartRodata(modelstate->modeldef, 4)) {
if (modelGetPartRodata(modelstate->modeldef, MODELPART_LIFT_DOORBLOCK)) {
obj->geocount++;
}
if (modelGetPartRodata(modelstate->modeldef, 6)) {
if (modelGetPartRodata(modelstate->modeldef, MODELPART_LIFT_FLOORNONRECT2)) {
obj->geocount++;
}
}
@@ -1827,11 +1827,12 @@ void setupCreateProps(s32 stagenum)
setupCreateObject(obj, index);
if (obj->model) {
struct modelnode *node = modelGetPart(obj->model->definition, 5);
struct modelnode *node = modelGetPart(obj->model->definition, MODELPART_TRUCK_0005);
if (node) {
// The truck model doesn't exist in PD, so I'm assuming this is a toggle node
union modelrwdata *rwdata = modelGetNodeRwData(obj->model, node);
rwdata->type05.unk00 = ((obj->flags & OBJFLAG_DEACTIVATED) == 0);
rwdata->toggle.visible = ((obj->flags & OBJFLAG_DEACTIVATED) == 0);
}
}
+282 -361
View File
@@ -2200,9 +2200,11 @@
* model's header. It allows the game to quickly find a certain node in the
* model if it's registered in the parts list.
*
* Parts are identified by a part number, and the mapping is unique to each
* model type. For example, for "chrgun" model types, part number 0 is the
* gunfire starburst.
* Parts are identified by a part number, and the mapping is usually unique to
* each model type. For example, for "chrgun" model types, part number 0 is the
* gunfire starburst. An exception to this rule is first-person gun models,
* where some part numbers are consistent between all guns while other part
* numbers differ between different guns.
*
* The game assumes that the part numbers refer to particular node types.
* For example, it assumes that chrgun part 02 is a toggle node.
@@ -2210,361 +2212,283 @@
* The names below are in the format MODELPART_{modeltype}_{part}.
* The comment is the node type.
*/
#define MODELPART_AR34_0029 0x0029 // toggle
#define MODELPART_AR34_002A 0x002a // toggle
#define MODELPART_AR34_0032 0x0032 // position
#define MODELPART_AR34_0037 0x0037 // position
#define MODELPART_AR34_003C 0x003c // position
#define MODELPART_AR34_0042 0x0042 // toggle
#define MODELPART_AR34_0050 0x0050 // position
#define MODELPART_AR34_0051 0x0051 // position
#define MODELPART_AR34_005A 0x005a // toggle
#define MODELPART_AUTOGUN_0000 0x0000 // position
#define MODELPART_AUTOGUN_0001 0x0001 // position
#define MODELPART_AUTOGUN_0002 0x0002 // position
#define MODELPART_AUTOGUN_0003 0x0003 // position
#define MODELPART_AUTOGUN_0004 0x0004 // position
#define MODELPART_AUTOGUN_FLASHLEFT 0x0005 // gunfire
#define MODELPART_AUTOGUN_0006 0x0006 // position
#define MODELPART_AUTOGUN_FLASHRIGHT 0x0007 // gunfire
#define MODELPART_BASIC_0064 0x0064 // type19
#define MODELPART_BASIC_0065 0x0065 // type19
#define MODELPART_BASIC_0066 0x0066 // type19
#define MODELPART_BASIC_0067 0x0067 // bbox
#define MODELPART_BASIC_00C8 0x00c8 // toggle
#define MODELPART_BASIC_00C9 0x00c9 // toggle
#define MODELPART_BASIC_00CA 0x00ca // toggle
#define MODELPART_BASIC_00CB 0x00cb // toggle
#define MODELPART_BASIC_00CC 0x00cc // toggle
#define MODELPART_BASIC_00CD 0x00cd // toggle
#define MODELPART_BASIC_00CE 0x00ce // toggle
#define MODELPART_BASIC_00CF 0x00cf // toggle
#define MODELPART_BASIC_00D0 0x00d0 // toggle
#define MODELPART_BASIC_00D1 0x00d1 // toggle
#define MODELPART_BASIC_00D2 0x00d2 // toggle
#define MODELPART_BASIC_00D3 0x00d3 // toggle
#define MODELPART_CALLISTO_0028 0x0028 // toggle
#define MODELPART_CALLISTO_0032 0x0032 // position
#define MODELPART_CALLISTO_0037 0x0037 // position
#define MODELPART_CCTV_CASING 0x0000 // position
#define MODELPART_CCTV_LENS 0x0001 // dl
#define MODELPART_CCTV_0002 0x0002 // bbox
#define MODELPART_CCTV_0003 0x0003 // toggle
#define MODELPART_CHOPPER_0000 0x0000 // position
#define MODELPART_CHOPPER_0001 0x0001 // position
#define MODELPART_CHOPPER_0002 0x0002 // position
#define MODELPART_CHOPPER_GUNFLASH 0x0003 // gunfire
#define MODELPART_CHOPPER_0005 0x0005 // toggle
#define MODELPART_CHRGUN_GUNFIRE 0x0000 // gunfire
#define MODELPART_CHRGUN_0001 0x0001 // positionheld
#define MODELPART_CHRGUN_0002 0x0002 // toggle
#define MODELPART_CHR_0000 0x0000 // position
#define MODELPART_CHR_0001 0x0001 // position
#define MODELPART_CHR_0002 0x0002 // position
#define MODELPART_CHR_RIGHTHAND 0x0003 // position
#define MODELPART_CHR_HEADSPOT 0x0004 // headspot
#define MODELPART_CHR_LEFTHAND 0x0005 // position
#define MODELPART_CHR_0006 0x0006 // position
#define MODELPART_CHR_NECKLACE 0x0007 // toggle
#define MODELPART_CIHUB_0000 0x0000 // dl
#define MODELPART_CIHUB_0001 0x0001 // dl
#define MODELPART_CIHUB_0002 0x0002 // dl
#define MODELPART_CIHUB_0003 0x0003 // dl
#define MODELPART_CLASSICGUN_0032 0x0032 // position
#define MODELPART_CLASSICGUN_003C 0x003c // positionheld
#define MODELPART_CLASSICGUN_0050 0x0050 // position
#define MODELPART_CLASSICGUN_005A 0x005a // toggle
#define MODELPART_CMP150_002A 0x002a // toggle
#define MODELPART_CMP150_002B 0x002b // toggle
#define MODELPART_CMP150_0032 0x0032 // position
#define MODELPART_CMP150_0037 0x0037 // position
#define MODELPART_CMP150_003C 0x003c // position
#define MODELPART_CMP150_0042 0x0042 // toggle
#define MODELPART_CMP150_0046 0x0046 // toggle
#define MODELPART_CMP150_0047 0x0047 // toggle
#define MODELPART_CMP150_0050 0x0050 // position
#define MODELPART_CMP150_0051 0x0051 // position
#define MODELPART_CMP150_005A 0x005a // toggle
#define MODELPART_CROSSBOW_0028 0x0028 // toggle
#define MODELPART_CROSSBOW_0029 0x0029 // toggle
#define MODELPART_CROSSBOW_002A 0x002a // toggle
#define MODELPART_CROSSBOW_0037 0x0037 // position
#define MODELPART_CROSSBOW_0042 0x0042 // toggle
#define MODELPART_CYCLONE_0028 0x0028 // toggle
#define MODELPART_CYCLONE_0032 0x0032 // position
#define MODELPART_CYCLONE_0037 0x0037 // position
#define MODELPART_CYCLONE_0050 0x0050 // position
#define MODELPART_CYCLONE_0051 0x0051 // position
#define MODELPART_CYCLONE_005A 0x005a // toggle
#define MODELPART_DEVASTATOR_0028 0x0028 // position
#define MODELPART_DEVASTATOR_0029 0x0029 // toggle
#define MODELPART_DEVASTATOR_002A 0x002a // toggle
#define MODELPART_DEVASTATOR_0037 0x0037 // position
#define MODELPART_DEVASTATOR_0064 0x0064 // toggle
#define MODELPART_DEVASTATOR_0065 0x0065 // toggle
#define MODELPART_DEVASTATOR_0066 0x0066 // toggle
#define MODELPART_DEVASTATOR_0067 0x0067 // toggle
#define MODELPART_DEVASTATOR_0068 0x0068 // toggle
#define MODELPART_DEVASTATOR_0069 0x0069 // toggle
#define MODELPART_DEVASTATOR_006A 0x006a // toggle
#define MODELPART_DEVASTATOR_006B 0x006b // toggle
#define MODELPART_DRAGON_0028 0x0028 // toggle
#define MODELPART_DRAGON_002A 0x002a // toggle
#define MODELPART_DRAGON_0032 0x0032 // position
#define MODELPART_DRAGON_0037 0x0037 // position
#define MODELPART_DRAGON_003C 0x003c // position
#define MODELPART_DRAGON_0042 0x0042 // toggle
#define MODELPART_DRAGON_0050 0x0050 // position
#define MODELPART_DRAGON_0051 0x0051 // position
#define MODELPART_DRAGON_0052 0x0052 // position
#define MODELPART_DRAGON_005A 0x005a // toggle
#define MODELPART_DRCAROLL_0000 0x0000 // toggle
#define MODELPART_DRCAROLL_0001 0x0001 // toggle
#define MODELPART_DRCAROLL_0002 0x0002 // toggle
#define MODELPART_DRCAROLL_0003 0x0003 // toggle
#define MODELPART_DRCAROLL_0004 0x0004 // toggle
#define MODELPART_DRCAROLL_0005 0x0005 // toggle
#define MODELPART_DRCAROLL_0006 0x0006 // toggle
#define MODELPART_DRCAROLL_0007 0x0007 // toggle
#define MODELPART_DRCAROLL_0008 0x0008 // toggle
#define MODELPART_DRCAROLL_0009 0x0009 // toggle
#define MODELPART_DRCAROLL_000A 0x000a // toggle
#define MODELPART_DRCAROLL_000B 0x000b // toggle
#define MODELPART_DROPSHIP_0064 0x0064 // type19
#define MODELPART_DROPSHIP_INTERIOR 0x006e // toggle
#define MODELPART_ECMMINE_0037 0x0037 // position
#define MODELPART_FALCON2_002A 0x002a // toggle
#define MODELPART_FALCON2_002B 0x002b // toggle
#define MODELPART_FALCON2_SCOPE 0x002c // toggle
#define MODELPART_FALCON2_SILENCER 0x002d // toggle
#define MODELPART_FALCON2_002E 0x002e // toggle
#define MODELPART_FALCON2_002F 0x002f // toggle
#define MODELPART_FALCON2_0032 0x0032 // position
#define MODELPART_FALCON2_0033 0x0033 // position
#define MODELPART_FALCON2_0034 0x0034 // position
#define MODELPART_FALCON2_0037 0x0037 // position
#define MODELPART_FALCON2_003C 0x003c // position
#define MODELPART_FALCON2_0042 0x0042 // toggle
#define MODELPART_FALCON2_0050 0x0050 // position
#define MODELPART_FALCON2_0051 0x0051 // position
#define MODELPART_FALCON2_005A 0x005a // toggle
#define MODELPART_FARSIGHT_0028 0x0028 // toggle
#define MODELPART_FARSIGHT_0032 0x0032 // position
#define MODELPART_FARSIGHT_0037 0x0037 // position
#define MODELPART_GRENADE_002B 0x002b // position
#define MODELPART_GRENADE_0037 0x0037 // position
#define MODELPART_GRENADE_0064 0x0064 // toggle
#define MODELPART_HAND_0035 0x0035 // toggle
#define MODELPART_HAND_0036 0x0036 // toggle
#define MODELPART_HEAD_SUNGLASSES 0x0000 // toggle
#define MODELPART_HEAD_HAT 0x0001 // toggle
#define MODELPART_HEAD_EYESOPEN 0x0002 // toggle
#define MODELPART_HEAD_EYESCLOSED 0x0003 // toggle
#define MODELPART_HEAD_HUDPIECE 0x0004 // toggle
#define MODELPART_HEAD_0190 0x0190 // dl
#define MODELPART_HEAD_0191 0x0191 // dl
#define MODELPART_HEAD_0192 0x0192 // dl
#define MODELPART_HOVERBIKE_0064 0x0064 // type19
#define MODELPART_HUDPIECE_0000 0x0000 // gundl
#define MODELPART_HUDPIECE_0001 0x0001 // position
#define MODELPART_HUDPIECE_0002 0x0002 // position
#define MODELPART_JOYPAD_0000 0x0000 // position
#define MODELPART_JOYPAD_0001 0x0001 // position
#define MODELPART_JOYPAD_0002 0x0002 // position
#define MODELPART_JOYPAD_0003 0x0003 // position
#define MODELPART_JOYPAD_0004 0x0004 // position
#define MODELPART_JOYPAD_0005 0x0005 // position
#define MODELPART_JOYPAD_0006 0x0006 // position
#define MODELPART_JOYPAD_0007 0x0007 // position
#define MODELPART_JOYPAD_0008 0x0008 // position
#define MODELPART_JOYPAD_0009 0x0009 // position
#define MODELPART_JOYPAD_000A 0x000a // position
#define MODELPART_JOYPAD_000B 0x000b // position
#define MODELPART_JOYPAD_000C 0x000c // position
#define MODELPART_JOYPAD_000D 0x000d // toggle
#define MODELPART_K7AVENGER_0029 0x0029 // toggle
#define MODELPART_K7AVENGER_002A 0x002a // toggle
#define MODELPART_K7AVENGER_0032 0x0032 // position
#define MODELPART_K7AVENGER_0037 0x0037 // position
#define MODELPART_K7AVENGER_003C 0x003c // position
#define MODELPART_K7AVENGER_0042 0x0042 // toggle
#define MODELPART_K7AVENGER_0050 0x0050 // position
#define MODELPART_K7AVENGER_0051 0x0051 // position
#define MODELPART_K7AVENGER_005A 0x005a // toggle
#define MODELPART_KNIFE_0037 0x0037 // position
#define MODELPART_KNIFE_0064 0x0064 // toggle
#define MODELPART_LAPTOPGUN_0029 0x0029 // toggle
#define MODELPART_LAPTOPGUN_002A 0x002a // toggle
#define MODELPART_LAPTOPGUN_0032 0x0032 // position
#define MODELPART_LAPTOPGUN_0037 0x0037 // position
#define MODELPART_LAPTOPGUN_0050 0x0050 // position
#define MODELPART_LAPTOPGUN_0051 0x0051 // position
#define MODELPART_LAPTOPGUN_005A 0x005a // toggle
#define MODELPART_LASER_0032 0x0032 // position
#define MODELPART_LASER_0037 0x0037 // position
#define MODELPART_LASER_0041 0x0041 // gundl
#define MODELPART_LASER_0042 0x0042 // toggle
#define MODELPART_LIFT_FLOORRECT 0x0000 // bbox
#define MODELPART_LIFT_WALL1 0x0001 // type19
#define MODELPART_LIFT_WALL2 0x0002 // type19
#define MODELPART_LIFT_WALL3 0x0003 // type19
#define MODELPART_LIFT_DOORBLOCK 0x0004 // type19
#define MODELPART_LIFT_FLOORNONRECT1 0x0005 // type19
#define MODELPART_LIFT_FLOORNONRECT2 0x0006 // type19
#define MODELPART_LOGO_0000 0x0000 // toggle
#define MODELPART_LOGO_0001 0x0001 // toggle
#define MODELPART_LOGO_0002 0x0002 // dl
#define MODELPART_LOGO_0003 0x0003 // dl
#define MODELPART_LOGO_0004 0x0004 // dl
#define MODELPART_LOGO_0005 0x0005 // dl
#define MODELPART_LOGO_0006 0x0006 // dl
#define MODELPART_LOGO_0007 0x0007 // dl
#define MODELPART_LOGO_0008 0x0008 // dl
#define MODELPART_LOGO_0009 0x0009 // dl
#define MODELPART_LOGO_0110 0x0110 // toggle
#define MODELPART_LOGO_0500 0x0500 // toggle
#define MODELPART_LOGO_4040 0x4040 // dl
#define MODELPART_MAGNUM_000A 0x000a // position
#define MODELPART_MAGNUM_000B 0x000b // position
#define MODELPART_MAGNUM_000C 0x000c // position
#define MODELPART_MAGNUM_000D 0x000d // position
#define MODELPART_MAGNUM_000E 0x000e // position
#define MODELPART_MAGNUM_000F 0x000f // position
#define MODELPART_MAGNUM_0028 0x0028 // toggle
#define MODELPART_MAGNUM_0029 0x0029 // toggle
#define MODELPART_MAGNUM_002A 0x002a // toggle
#define MODELPART_MAGNUM_002B 0x002b // toggle
#define MODELPART_MAGNUM_002C 0x002c // toggle
#define MODELPART_MAGNUM_002D 0x002d // toggle
#define MODELPART_MAGNUM_0032 0x0032 // position
#define MODELPART_MAGNUM_0037 0x0037 // position
#define MODELPART_MAGNUM_0042 0x0042 // toggle
#define MODELPART_MAGNUM_0050 0x0050 // position
#define MODELPART_MAGNUM_0051 0x0051 // position
#define MODELPART_MAGNUM_005A 0x005a // toggle
#define MODELPART_MAIANUFO_0064 0x0064 // type19
#define MODELPART_MAULER_002A 0x002a // toggle
#define MODELPART_MAULER_002B 0x002b // toggle
#define MODELPART_MAULER_0032 0x0032 // position
#define MODELPART_MAULER_0033 0x0033 // position
#define MODELPART_MAULER_0037 0x0037 // position
#define MODELPART_MAULER_0050 0x0050 // position
#define MODELPART_MAULER_005A 0x005a // toggle
#define MODELPART_PHOENIX_0028 0x0028 // toggle
#define MODELPART_PHOENIX_0032 0x0032 // position
#define MODELPART_PHOENIX_0037 0x0037 // position
#define MODELPART_PHOENIX_0042 0x0042 // toggle
#define MODELPART_PISTOL_0029 0x0029 // toggle
#define MODELPART_PISTOL_002A 0x002a // toggle
#define MODELPART_PISTOL_0032 0x0032 // position
#define MODELPART_PISTOL_0033 0x0033 // position
#define MODELPART_PISTOL_0037 0x0037 // position
#define MODELPART_PISTOL_003C 0x003c // position
#define MODELPART_PISTOL_0042 0x0042 // toggle
#define MODELPART_PISTOL_0050 0x0050 // position
#define MODELPART_PISTOL_005A 0x005a // toggle
#define MODELPART_RARELOGO_000B 0x000b // toggle
#define MODELPART_RARELOGO_000C 0x000c // toggle
#define MODELPART_RARELOGO_000D 0x000d // toggle
#define MODELPART_RCP120_0028 0x0028 // toggle
#define MODELPART_RCP120_0029 0x0029 // toggle
#define MODELPART_RCP120_0032 0x0032 // position
#define MODELPART_RCP120_0037 0x0037 // position
#define MODELPART_RCP120_003C 0x003c // position
#define MODELPART_RCP120_0042 0x0042 // toggle
#define MODELPART_RCP120_0050 0x0050 // position
#define MODELPART_RCP120_0051 0x0051 // position
#define MODELPART_RCP120_005A 0x005a // toggle
#define MODELPART_REAPER_001E 0x001e // position
#define MODELPART_REAPER_001F 0x001f // position
#define MODELPART_REAPER_0020 0x0020 // position
#define MODELPART_REAPER_002A 0x002a // toggle
#define MODELPART_REAPER_002B 0x002b // toggle
#define MODELPART_REAPER_002C 0x002c // position
#define MODELPART_REAPER_002D 0x002d // position
#define MODELPART_REAPER_002E 0x002e // position
#define MODELPART_REAPER_002F 0x002f // position
#define MODELPART_REAPER_0030 0x0030 // position
#define MODELPART_REAPER_0031 0x0031 // position
#define MODELPART_REAPER_0037 0x0037 // position
#define MODELPART_REAPER_0042 0x0042 // toggle
#define MODELPART_REAPER_0050 0x0050 // position
#define MODELPART_REAPER_0051 0x0051 // position
#define MODELPART_REAPER_0052 0x0052 // position
#define MODELPART_REAPER_005A 0x005a // toggle
#define MODELPART_REAPER_005B 0x005b // toggle
#define MODELPART_REAPER_005C 0x005c // toggle
#define MODELPART_REMOTEMINE_0028 0x0028 // toggle
#define MODELPART_REMOTEMINE_0029 0x0029 // toggle
#define MODELPART_REMOTEMINE_002A 0x002a // position
#define MODELPART_REMOTEMINE_0037 0x0037 // position
#define MODELPART_ROBOT_0000 0x0000 // position
#define MODELPART_ROBOT_0001 0x0001 // position
#define MODELPART_ROBOT_RGUNFIRE 0x0002 // gunfire
#define MODELPART_ROBOT_LGUNFIRE 0x0003 // gunfire
#define MODELPART_ROBOT_0004 0x0004 // toggle
#define MODELPART_ROCKET_0028 0x0028 // toggle
#define MODELPART_ROCKET_0032 0x0032 // position
#define MODELPART_ROCKET_0037 0x0037 // position
#define MODELPART_ROCKET_0042 0x0042 // toggle
#define MODELPART_SHOTGUN_002B 0x002b // toggle
#define MODELPART_SHOTGUN_0032 0x0032 // position
#define MODELPART_SHOTGUN_0037 0x0037 // position
#define MODELPART_SHOTGUN_003C 0x003c // position
#define MODELPART_SHOTGUN_0042 0x0042 // toggle
#define MODELPART_SHOTGUN_0050 0x0050 // position
#define MODELPART_SHOTGUN_005A 0x005a // toggle
#define MODELPART_SKSHUTTLE_GANGWAY 0x00b7 // toggle
#define MODELPART_SKEDAR_0000 0x0000 // position
#define MODELPART_SKEDAR_0001 0x0001 // position
#define MODELPART_SKEDAR_RIGHTHAND 0x0002 // position
#define MODELPART_SKEDAR_LEFTHAND 0x0003 // position
#define MODELPART_SKEDAR_EYESOPEN 0x0004 // toggle
#define MODELPART_SKEDAR_EYESCLOSED 0x0005 // toggle
#define MODELPART_SLAYERROCKET_0032 0x0032 // position
#define MODELPART_SLAYERROCKET_0037 0x0037 // position
#define MODELPART_SLAYERROCKET_0042 0x0042 // toggle
#define MODELPART_SNIPERRIFLE_0028 0x0028 // toggle
#define MODELPART_SNIPERRIFLE_0029 0x0029 // toggle
#define MODELPART_SNIPERRIFLE_002A 0x002a // position
#define MODELPART_SNIPERRIFLE_002B 0x002b // position
#define MODELPART_SNIPERRIFLE_002C 0x002c // position
#define MODELPART_SNIPERRIFLE_002D 0x002d // position
#define MODELPART_SNIPERRIFLE_0032 0x0032 // position
#define MODELPART_SNIPERRIFLE_0037 0x0037 // position
#define MODELPART_SNIPERRIFLE_003C 0x003c // position
#define MODELPART_SNIPERRIFLE_0042 0x0042 // toggle
#define MODELPART_SUPERDRAGON_0028 0x0028 // toggle
#define MODELPART_SUPERDRAGON_0029 0x0029 // toggle
#define MODELPART_SUPERDRAGON_002A 0x002a // toggle
#define MODELPART_SUPERDRAGON_002B 0x002b // toggle
#define MODELPART_SUPERDRAGON_0032 0x0032 // position
#define MODELPART_SUPERDRAGON_0037 0x0037 // position
#define MODELPART_SUPERDRAGON_003C 0x003c // position
#define MODELPART_SUPERDRAGON_0042 0x0042 // toggle
#define MODELPART_SUPERDRAGON_0050 0x0050 // position
#define MODELPART_SUPERDRAGON_0051 0x0051 // position
#define MODELPART_SUPERDRAGON_0052 0x0052 // position
#define MODELPART_SUPERDRAGON_005A 0x005a // toggle
#define MODELPART_TERMINAL_0000 0x0000 // dl
#define MODELPART_TIMEDPROXYMINE_0037 0x0037 // position
#define MODELPART_TRANQUILIZER_0028 0x0028 // toggle
#define MODELPART_TRANQUILIZER_0029 0x0029 // toggle
#define MODELPART_TRANQUILIZER_002A 0x002a // toggle
#define MODELPART_TRANQUILIZER_002B 0x002b // position
#define MODELPART_TRANQUILIZER_0032 0x0032 // position
#define MODELPART_TRANQUILIZER_0037 0x0037 // position
#define MODELPART_TRANQUILIZER_0042 0x0042 // toggle
#define MODELPART_UPLINK_0037 0x0037 // position
#define MODELPART_UZI_0032 0x0032 // position
#define MODELPART_UZI_003C 0x003c // positionheld
#define MODELPART_UZI_0050 0x0050 // position
#define MODELPART_UZI_0051 0x0051 // position
#define MODELPART_UZI_005A 0x005a // toggle
#define MODELPART_WINDOWEDDOOR_0000 0x0000 // bbox
#define MODELPART_WINDOWEDDOOR_0001 0x0001 // toggle
#define MODELPART_WINDOWEDDOOR_0002 0x0002 // bbox
#define MODELPART_WINDOWEDDOOR_0003 0x0003 // dl
#define MODELPART_AR34_0042 0x0042 // toggle
#define MODELPART_AR34_0050 0x0050 // position
#define MODELPART_AR34_0051 0x0051 // position
#define MODELPART_AR34_MAGAZINE1 0x0029 // toggle
#define MODELPART_AR34_MAGAZINE2 0x002a // toggle
#define MODELPART_AUTOGUN_0000 0x0000 // position
#define MODELPART_AUTOGUN_0001 0x0001 // position
#define MODELPART_AUTOGUN_0002 0x0002 // position
#define MODELPART_AUTOGUN_0003 0x0003 // position
#define MODELPART_AUTOGUN_0004 0x0004 // position
#define MODELPART_AUTOGUN_0006 0x0006 // position
#define MODELPART_AUTOGUN_FLASHLEFT 0x0005 // gunfire
#define MODELPART_AUTOGUN_FLASHRIGHT 0x0007 // gunfire
#define MODELPART_BASIC_0064 0x0064 // type19
#define MODELPART_BASIC_0065 0x0065 // type19
#define MODELPART_BASIC_0066 0x0066 // type19
#define MODELPART_BASIC_0067 0x0067 // bbox
#define MODELPART_BASIC_00C8 0x00c8 // toggle
#define MODELPART_BASIC_00C9 0x00c9 // toggle
#define MODELPART_BASIC_00CA 0x00ca // toggle
#define MODELPART_BASIC_00CB 0x00cb // toggle
#define MODELPART_BASIC_00CC 0x00cc // toggle
#define MODELPART_BASIC_00CD 0x00cd // toggle
#define MODELPART_BASIC_00CE 0x00ce // toggle
#define MODELPART_BASIC_00CF 0x00cf // toggle
#define MODELPART_BASIC_00D0 0x00d0 // toggle
#define MODELPART_BASIC_00D1 0x00d1 // toggle
#define MODELPART_BASIC_00D2 0x00d2 // toggle
#define MODELPART_BASIC_00D3 0x00d3 // toggle
#define MODELPART_CALLISTO_ORB 0x0028 // toggle
#define MODELPART_CCTV_0002 0x0002 // bbox
#define MODELPART_CCTV_0003 0x0003 // toggle
#define MODELPART_CCTV_CASING 0x0000 // position
#define MODELPART_CCTV_LENS 0x0001 // dl
#define MODELPART_CHOPPER_0000 0x0000 // position
#define MODELPART_CHOPPER_0001 0x0001 // position
#define MODELPART_CHOPPER_0002 0x0002 // position
#define MODELPART_CHOPPER_0005 0x0005 // toggle
#define MODELPART_CHOPPER_GUNFLASH 0x0003 // gunfire
#define MODELPART_CHRGUN_0001 0x0001 // positionheld
#define MODELPART_CHRGUN_0002 0x0002 // toggle
#define MODELPART_CHRGUN_GUNFIRE 0x0000 // gunfire
#define MODELPART_CHR_0000 0x0000 // position
#define MODELPART_CHR_0001 0x0001 // position
#define MODELPART_CHR_0002 0x0002 // position
#define MODELPART_CHR_0006 0x0006 // position
#define MODELPART_CHR_HEADSPOT 0x0004 // headspot
#define MODELPART_CHR_LEFTHAND 0x0005 // position
#define MODELPART_CHR_NECKLACE 0x0007 // toggle
#define MODELPART_CHR_RIGHTHAND 0x0003 // position
#define MODELPART_CIHUB_0000 0x0000 // dl
#define MODELPART_CIHUB_0001 0x0001 // dl
#define MODELPART_CIHUB_0002 0x0002 // dl
#define MODELPART_CIHUB_0003 0x0003 // dl
#define MODELPART_CLASSICGUN_0050 0x0050 // position
#define MODELPART_CMP150_0042 0x0042 // toggle
#define MODELPART_CMP150_0050 0x0050 // position
#define MODELPART_CMP150_0051 0x0051 // position
#define MODELPART_CMP150_MAGAZINE1 0x002a // toggle
#define MODELPART_CMP150_MAGAZINE2 0x002b // toggle
#define MODELPART_CROSSBOW_0028 0x0028 // toggle
#define MODELPART_CROSSBOW_0042 0x0042 // toggle
#define MODELPART_CROSSBOW_BOLT 0x0029 // toggle
#define MODELPART_CROSSBOW_HANDLE 0x002a // toggle
#define MODELPART_CYCLONE_0050 0x0050 // position
#define MODELPART_CYCLONE_0051 0x0051 // position
#define MODELPART_CYCLONE_MAGAZINE 0x0028 // toggle
#define MODELPART_DEVASTATOR_0028 0x0028 // position
#define MODELPART_DEVASTATOR_CART1 0x0064 // toggle - innermost cartridge
#define MODELPART_DEVASTATOR_CART2 0x0065 // toggle
#define MODELPART_DEVASTATOR_CART3 0x0066 // toggle
#define MODELPART_DEVASTATOR_CART4 0x0067 // toggle
#define MODELPART_DEVASTATOR_CART5 0x0068 // toggle
#define MODELPART_DEVASTATOR_CART6 0x0069 // toggle
#define MODELPART_DEVASTATOR_CART7 0x006a // toggle
#define MODELPART_DEVASTATOR_CART8 0x006b // toggle - outermost cartridge
#define MODELPART_DEVASTATOR_MAGAZINE1 0x0029 // toggle
#define MODELPART_DEVASTATOR_MAGAZINE2 0x002a // toggle
#define MODELPART_DRAGON_0042 0x0042 // toggle
#define MODELPART_DRAGON_0050 0x0050 // position
#define MODELPART_DRAGON_0051 0x0051 // position
#define MODELPART_DRAGON_0052 0x0052 // position
#define MODELPART_DRAGON_MAGAZINE1 0x0028 // toggle
#define MODELPART_DRAGON_MAGAZINE2 0x002a // toggle
#define MODELPART_DRCAROLL_0000 0x0000 // toggle
#define MODELPART_DRCAROLL_0001 0x0001 // toggle
#define MODELPART_DRCAROLL_0002 0x0002 // toggle
#define MODELPART_DRCAROLL_0003 0x0003 // toggle
#define MODELPART_DRCAROLL_0004 0x0004 // toggle
#define MODELPART_DRCAROLL_0005 0x0005 // toggle
#define MODELPART_DRCAROLL_0006 0x0006 // toggle
#define MODELPART_DRCAROLL_0007 0x0007 // toggle
#define MODELPART_DRCAROLL_0008 0x0008 // toggle
#define MODELPART_DRCAROLL_0009 0x0009 // toggle
#define MODELPART_DRCAROLL_000A 0x000a // toggle
#define MODELPART_DRCAROLL_000B 0x000b // toggle
#define MODELPART_DROPSHIP_0064 0x0064 // type19
#define MODELPART_DROPSHIP_INTERIOR 0x006e // toggle
#define MODELPART_FALCON2_002E 0x002e // toggle
#define MODELPART_FALCON2_002F 0x002f // toggle
#define MODELPART_FALCON2_0042 0x0042 // toggle
#define MODELPART_FALCON2_0050 0x0050 // position
#define MODELPART_FALCON2_0051 0x0051 // position
#define MODELPART_FALCON2_MAGAZINE1 0x002a // toggle
#define MODELPART_FALCON2_MAGAZINE2 0x002b // toggle
#define MODELPART_FALCON2_SCOPE 0x002c // toggle
#define MODELPART_FALCON2_SILENCER 0x002d // toggle
#define MODELPART_FARSIGHT_ORB 0x0028 // toggle
#define MODELPART_GRENADE_002B 0x002b // position
#define MODELPART_GRENADE_0064 0x0064 // toggle
#define MODELPART_GUN_CARTEJECTPOS 0x003c // position
#define MODELPART_GUN_CARTFLAPCLOSED 0x0046 // toggle
#define MODELPART_GUN_CARTFLAPOPEN 0x0047 // toggle
#define MODELPART_GUN_HOLDPOS 0x0037 // position
#define MODELPART_GUN_LASERLIQUID 0x0041 // gundl
#define MODELPART_GUN_LASERSIGHT 0x0034 // position
#define MODELPART_GUN_MUZZLEFLASH1 0x005a // toggle
#define MODELPART_GUN_MUZZLEFLASH2 0x005b // toggle
#define MODELPART_GUN_MUZZLEFLASH3 0x005c // toggle
#define MODELPART_GUN_MUZZLEPOS 0x0032 // position
#define MODELPART_GUN_SLIDE 0x0033 // position
#define MODELPART_HAND_LEFT 0x0035 // toggle
#define MODELPART_HAND_RIGHT 0x0036 // toggle
#define MODELPART_HEAD_0190 0x0190 // dl
#define MODELPART_HEAD_0191 0x0191 // dl
#define MODELPART_HEAD_0192 0x0192 // dl
#define MODELPART_HEAD_EYESCLOSED 0x0003 // toggle
#define MODELPART_HEAD_EYESOPEN 0x0002 // toggle
#define MODELPART_HEAD_HAT 0x0001 // toggle
#define MODELPART_HEAD_HUDPIECE 0x0004 // toggle
#define MODELPART_HEAD_SUNGLASSES 0x0000 // toggle
#define MODELPART_HOVERBIKE_0064 0x0064 // type19
#define MODELPART_HUDPIECE_0000 0x0000 // gundl
#define MODELPART_HUDPIECE_0001 0x0001 // position
#define MODELPART_HUDPIECE_0002 0x0002 // position
#define MODELPART_JOYPAD_0000 0x0000 // position
#define MODELPART_JOYPAD_0001 0x0001 // position
#define MODELPART_JOYPAD_0002 0x0002 // position
#define MODELPART_JOYPAD_0003 0x0003 // position
#define MODELPART_JOYPAD_0004 0x0004 // position
#define MODELPART_JOYPAD_0005 0x0005 // position
#define MODELPART_JOYPAD_0006 0x0006 // position
#define MODELPART_JOYPAD_0007 0x0007 // position
#define MODELPART_JOYPAD_0008 0x0008 // position
#define MODELPART_JOYPAD_0009 0x0009 // position
#define MODELPART_JOYPAD_000A 0x000a // position
#define MODELPART_JOYPAD_000B 0x000b // position
#define MODELPART_JOYPAD_000C 0x000c // position
#define MODELPART_JOYPAD_000D 0x000d // toggle
#define MODELPART_K7AVENGER_0042 0x0042 // toggle
#define MODELPART_K7AVENGER_0050 0x0050 // position
#define MODELPART_K7AVENGER_0051 0x0051 // position
#define MODELPART_K7AVENGER_MAGAZINE1 0x0029 // toggle
#define MODELPART_K7AVENGER_MAGAZINE2 0x002a // toggle
#define MODELPART_KNIFE_0064 0x0064 // toggle
#define MODELPART_LAPTOPGUN_0050 0x0050 // position
#define MODELPART_LAPTOPGUN_0051 0x0051 // position
#define MODELPART_LAPTOPGUN_MAGAZINE1 0x0029 // toggle
#define MODELPART_LAPTOPGUN_MAGAZINE2 0x002a // toggle
#define MODELPART_LASER_0042 0x0042 // toggle
#define MODELPART_LIFT_DOORBLOCK 0x0004 // type19
#define MODELPART_LIFT_FLOORNONRECT1 0x0005 // type19
#define MODELPART_LIFT_FLOORNONRECT2 0x0006 // type19
#define MODELPART_LIFT_FLOORRECT 0x0000 // bbox
#define MODELPART_LIFT_WALL1 0x0001 // type19
#define MODELPART_LIFT_WALL2 0x0002 // type19
#define MODELPART_LIFT_WALL3 0x0003 // type19
#define MODELPART_LOGO_0000 0x0000 // toggle
#define MODELPART_LOGO_0001 0x0001 // toggle
#define MODELPART_LOGO_0002 0x0002 // dl
#define MODELPART_LOGO_0003 0x0003 // dl
#define MODELPART_LOGO_0004 0x0004 // dl
#define MODELPART_LOGO_0005 0x0005 // dl
#define MODELPART_LOGO_0006 0x0006 // dl
#define MODELPART_LOGO_0007 0x0007 // dl
#define MODELPART_LOGO_0008 0x0008 // dl
#define MODELPART_LOGO_0009 0x0009 // dl
#define MODELPART_LOGO_0110 0x0110 // toggle
#define MODELPART_LOGO_0500 0x0500 // toggle
#define MODELPART_LOGO_4040 0x4040 // dl
#define MODELPART_MAGNUM_000A 0x000a // position
#define MODELPART_MAGNUM_000B 0x000b // position
#define MODELPART_MAGNUM_000C 0x000c // position
#define MODELPART_MAGNUM_000D 0x000d // position
#define MODELPART_MAGNUM_000E 0x000e // position
#define MODELPART_MAGNUM_000F 0x000f // position
#define MODELPART_MAGNUM_0042 0x0042 // toggle
#define MODELPART_MAGNUM_0050 0x0050 // position
#define MODELPART_MAGNUM_0051 0x0051 // position
#define MODELPART_MAGNUM_CART1 0x0028 // toggle
#define MODELPART_MAGNUM_CART2 0x0029 // toggle
#define MODELPART_MAGNUM_CART3 0x002a // toggle
#define MODELPART_MAGNUM_CART4 0x002b // toggle
#define MODELPART_MAGNUM_CART5 0x002c // toggle
#define MODELPART_MAGNUM_CART6 0x002d // toggle
#define MODELPART_MAIANUFO_0064 0x0064 // type19
#define MODELPART_MAULER_0050 0x0050 // position
#define MODELPART_MAULER_MAGAZINE1 0x002a // toggle
#define MODELPART_MAULER_MAGAZINE2 0x002b // toggle
#define MODELPART_PHOENIX_0042 0x0042 // toggle
#define MODELPART_PHOENIX_ORB 0x0028 // toggle
#define MODELPART_PISTOL_0042 0x0042 // toggle
#define MODELPART_PISTOL_0050 0x0050 // position
#define MODELPART_PISTOL_MAGAZINE1 0x0029 // toggle
#define MODELPART_PISTOL_MAGAZINE2 0x002a // toggle
#define MODELPART_RARELOGO_000B 0x000b // toggle
#define MODELPART_RARELOGO_000C 0x000c // toggle
#define MODELPART_RARELOGO_000D 0x000d // toggle
#define MODELPART_RCP120_0042 0x0042 // toggle
#define MODELPART_RCP120_0050 0x0050 // position
#define MODELPART_RCP120_0051 0x0051 // position
#define MODELPART_RCP120_MAGAZINE1 0x0028 // toggle
#define MODELPART_RCP120_MAGAZINE2 0x0029 // toggle
#define MODELPART_REAPER_001E 0x001e // position
#define MODELPART_REAPER_001F 0x001f // position
#define MODELPART_REAPER_0020 0x0020 // position
#define MODELPART_REAPER_002C 0x002c // position
#define MODELPART_REAPER_002D 0x002d // position
#define MODELPART_REAPER_002E 0x002e // position
#define MODELPART_REAPER_002F 0x002f // position
#define MODELPART_REAPER_0042 0x0042 // toggle
#define MODELPART_REAPER_0050 0x0050 // position
#define MODELPART_REAPER_0051 0x0051 // position
#define MODELPART_REAPER_0052 0x0052 // position
#define MODELPART_REAPER_CARTEJECTPOS1 0x0030 // position
#define MODELPART_REAPER_CARTEJECTPOS2 0x0031 // position
#define MODELPART_REAPER_MAGAZINE1 0x002a // toggle
#define MODELPART_REAPER_MAGAZINE2 0x002b // toggle
#define MODELPART_REMOTEMINE_002A 0x002a // position
#define MODELPART_REMOTEMINE_DETONATOR 0x0029 // toggle
#define MODELPART_REMOTEMINE_MINE 0x0028 // toggle
#define MODELPART_ROBOT_0000 0x0000 // position
#define MODELPART_ROBOT_0001 0x0001 // position
#define MODELPART_ROBOT_0004 0x0004 // toggle
#define MODELPART_ROBOT_LGUNFIRE 0x0003 // gunfire
#define MODELPART_ROBOT_RGUNFIRE 0x0002 // gunfire
#define MODELPART_ROCKETLAUNCHER_0042 0x0042 // toggle
#define MODELPART_ROCKETLAUNCHER_ROCKET 0x0028 // toggle
#define MODELPART_SHOTGUN_0042 0x0042 // toggle
#define MODELPART_SHOTGUN_0050 0x0050 // position
#define MODELPART_SHOTGUN_CART 0x002b // toggle
#define MODELPART_SKEDAR_0000 0x0000 // position
#define MODELPART_SKEDAR_0001 0x0001 // position
#define MODELPART_SKEDAR_EYESCLOSED 0x0005 // toggle
#define MODELPART_SKEDAR_EYESOPEN 0x0004 // toggle
#define MODELPART_SKEDAR_LEFTHAND 0x0003 // position
#define MODELPART_SKEDAR_RIGHTHAND 0x0002 // position
#define MODELPART_SKSHUTTLE_GANGWAY 0x00b7 // toggle
#define MODELPART_SLAYERROCKET_0042 0x0042 // toggle
#define MODELPART_SNIPERRIFLE_0042 0x0042 // toggle
#define MODELPART_SNIPERRIFLE_MAGAZINE1 0x0028 // toggle
#define MODELPART_SNIPERRIFLE_MAGAZINE2 0x0029 // toggle
#define MODELPART_SNIPERRIFLE_SCOPE1 0x002a // position
#define MODELPART_SNIPERRIFLE_SCOPE2 0x002b // position
#define MODELPART_SNIPERRIFLE_SCOPE3 0x002c // position
#define MODELPART_SNIPERRIFLE_SCOPE4 0x002d // position
#define MODELPART_SUPERDRAGON_0042 0x0042 // toggle
#define MODELPART_SUPERDRAGON_0050 0x0050 // position
#define MODELPART_SUPERDRAGON_0051 0x0051 // position
#define MODELPART_SUPERDRAGON_0052 0x0052 // position
#define MODELPART_SUPERDRAGON_MAGAZINE1 0x0028 // toggle
#define MODELPART_SUPERDRAGON_MAGAZINE2 0x0029 // toggle
#define MODELPART_SUPERDRAGON_MAGAZINE3 0x002a // toggle
#define MODELPART_SUPERDRAGON_MAGAZINE4 0x002b // toggle
#define MODELPART_TERMINAL_0000 0x0000 // dl
#define MODELPART_TRANQUILIZER_002B 0x002b // position
#define MODELPART_TRANQUILIZER_0042 0x0042 // toggle
#define MODELPART_TRANQUILIZER_MAGAZINE1 0x0028 // toggle
#define MODELPART_TRANQUILIZER_MAGAZINE2 0x0029 // toggle
#define MODELPART_TRANQUILIZER_MAGAZINE3 0x002a // toggle
#define MODELPART_TRUCK_0005 0x0005 // ?
#define MODELPART_UZI_0050 0x0050 // position
#define MODELPART_UZI_0051 0x0051 // position
#define MODELPART_WINDOWEDDOOR_0000 0x0000 // bbox
#define MODELPART_WINDOWEDDOOR_0001 0x0001 // toggle
#define MODELPART_WINDOWEDDOOR_0002 0x0002 // bbox
#define MODELPART_WINDOWEDDOOR_0003 0x0003 // dl
// Unsure which model types these are for
#define MODELPART_0000 0x0000
@@ -2573,9 +2497,6 @@
#define MODELPART_0003 0x0003
#define MODELPART_0010 0x0010
#define MODELPART_0011 0x0011
#define MODELPART_0029 0x0029
#define MODELPART_0035 0x0035
#define MODELPART_0036 0x0036
#define MODELPART_0042 0x0042
#define MODELPART_0065 0x0065
#define MODELPART_0066 0x0066