mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-31 07:56:03 -04:00
Decompile bodyCalculateHeadOffset
This commit is contained in:
+154
-154
@@ -3465,160 +3465,160 @@ struct modeltype g_ModelTypeRobot = {
|
||||
// 22f24
|
||||
struct headorbody g_HeadsAndBodies[] = {
|
||||
// ismale
|
||||
// | height
|
||||
// | |
|
||||
{ /*0x0000*/ 1, 0, 0, 0, 167, FILE_CDJBOND, 1, 1.0446009635925, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x0001*/ 1, 0, 0, 0, 167, FILE_CCONNERY, 1, 1.0300469398499, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x0002*/ 1, 0, 0, 0, 165, FILE_CDALTON, 1, 1.0572769641876, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x0003*/ 1, 0, 0, 0, 167, FILE_CMOORE, 1, 1.0399061441422, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x0004*/ 0, 1, 0, 1, 13, FILE_CHEADDARK_COMBAT, 1, 1, 0, 0 },
|
||||
{ /*0x0005*/ 1, 1, 0, 3, 27, FILE_CHEADELVIS, 1, 1, 0, 0 },
|
||||
{ /*0x0006*/ 1, 1, 0, 0, 13, FILE_CHEADROSS, 1, 1, 0, 0 },
|
||||
{ /*0x0007*/ 1, 1, 0, 0, 13, FILE_CHEADCARRINGTON, 1, 1, 0, 0 },
|
||||
{ /*0x0008*/ 1, 1, 0, 5, 13, FILE_CHEADMRBLONDE, 1, 1, 0, 0 },
|
||||
{ /*0x0009*/ 1, 1, 0, 0, 13, FILE_CHEADTRENT, 1, 1, 0, 0 },
|
||||
{ /*0x000a*/ 1, 1, 0, 0, 13, FILE_CHEADDDSHOCK, 1, 1, 0, 0 },
|
||||
{ /*0x000b*/ 1, 1, 0, 0, 13, FILE_CHEADGRAHAM, 1, 1, 0, 0 },
|
||||
{ /*0x000c*/ 0, 1, 0, 1, 13, FILE_CHEADDARK_FROCK, 1, 1, 0, 0 },
|
||||
{ /*0x000d*/ 0, 1, 0, 1, 13, FILE_CHEADSECRETARY, 1, 1, 0, 0 },
|
||||
{ /*0x000e*/ 0, 1, 0, 4, 13, FILE_CHEADCASSANDRA, 1, 1, 0, 0 },
|
||||
{ /*0x000f*/ 1, 1, 0, 3, 27, FILE_CHEADTHEKING, 1, 1, 0, 0 },
|
||||
{ /*0x0010*/ 0, 1, 0, 0, 13, FILE_CHEADFEM_GUARD, 1, 1, 0, 0 },
|
||||
{ /*0x0011*/ 1, 1, 0, 0, 13, FILE_CHEADJON, 1, 1, 0, 0 },
|
||||
{ /*0x0012*/ 1, 1, 0, 0, 13, FILE_CHEADMARK2, 1, 1, 0, 0 },
|
||||
{ /*0x0013*/ 1, 1, 0, 0, 13, FILE_CHEADCHRIST, 1, 1, 0, 0 },
|
||||
{ /*0x0014*/ 1, 1, 0, 0, 13, FILE_CHEADRUSS, 1, 1, 0, 0 },
|
||||
{ /*0x0015*/ 1, 1, 0, 3, 13, FILE_CHEADGREY, 1, 1, 0, 0 },
|
||||
{ /*0x0016*/ 1, 1, 0, 0, 13, FILE_CHEADDARLING, 1, 1, 0, 0 },
|
||||
{ /*0x0017*/ 1, 1, 0, 0, 13, FILE_CHEADROBERT, 1, 1, 0, 0 },
|
||||
{ /*0x0018*/ 1, 1, 0, 0, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0019*/ 0, 1, 0, 0, 13, FILE_CHEADFEM_GUARD2, 1, 1, 0, 0 },
|
||||
{ /*0x001a*/ 1, 1, 0, 0, 13, FILE_CHEADBRIAN, 1, 1, 0, 0 },
|
||||
{ /*0x001b*/ 1, 1, 0, 0, 13, FILE_CHEADJAMIE, 1, 1, 0, 0 },
|
||||
{ /*0x001c*/ 1, 1, 0, 0, 13, FILE_CHEADDUNCAN2, 1, 1, 0, 0 },
|
||||
{ /*0x001d*/ 1, 1, 0, 0, 13, FILE_CHEADBIOTECH, 1, 1, 0, 0 },
|
||||
{ /*0x001e*/ 1, 1, 0, 0, 13, FILE_CHEADNEIL2, 1, 1, 0, 0 },
|
||||
{ /*0x001f*/ 1, 1, 0, 0, 13, FILE_CHEADEDMCG, 1, 1, 0, 0 },
|
||||
{ /*0x0020*/ 0, 1, 0, 1, 13, FILE_CHEADANKA, 1, 1, 0, 0 },
|
||||
{ /*0x0021*/ 0, 1, 0, 1, 13, FILE_CHEADLESLIE_S, 1, 1, 0, 0 },
|
||||
{ /*0x0022*/ 1, 1, 0, 0, 13, FILE_CHEADMATT_C, 1, 1, 0, 0 },
|
||||
{ /*0x0023*/ 1, 1, 0, 0, 13, FILE_CHEADPEER_S, 1, 1, 0, 0 },
|
||||
{ /*0x0024*/ 0, 1, 0, 1, 13, FILE_CHEADEILEEN_T, 1, 1, 0, 0 },
|
||||
{ /*0x0025*/ 1, 1, 0, 0, 13, FILE_CHEADANDY_R, 1, 1, 0, 0 },
|
||||
{ /*0x0026*/ 1, 1, 0, 0, 13, FILE_CHEADBEN_R, 1, 1, 0, 0 },
|
||||
{ /*0x0027*/ 1, 1, 0, 0, 13, FILE_CHEADSTEVE_K, 1, 1, 0, 0 },
|
||||
{ /*0x0028*/ 1, 1, 0, 0, 13, FILE_CHEADJONATHAN, 1, 1, 0, 0 },
|
||||
{ /*0x0029*/ 1, 1, 0, 3, 27, FILE_CHEADMAIAN_S, 1, 1, 0, 0 },
|
||||
{ /*0x002a*/ 1, 1, 0, 0, 13, FILE_CHEADSHAUN, 1, 1, 0, 0 },
|
||||
{ /*0x002b*/ 1, 1, 0, 0, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x002c*/ 0, 1, 0, 1, 13, FILE_CHEADEILEEN_H, 1, 1, 0, 0 },
|
||||
{ /*0x002d*/ 1, 1, 0, 0, 13, FILE_CHEADSCOTT_H, 1, 1, 0, 0 },
|
||||
{ /*0x002e*/ 1, 1, 0, 0, 13, FILE_CHEADSANCHEZ, 1, 1, 0, 0 },
|
||||
{ /*0x002f*/ 0, 1, 0, 1, 13, FILE_CHEADDARKAQUA, 1, 1, 0, 0 },
|
||||
{ /*0x0030*/ 1, 1, 0, 0, 13, FILE_CHEADDDSNIPER, 1, 1, 0, 0 },
|
||||
{ /*0x0031*/ 1, 1, 0, 0, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0032*/ 1, 1, 0, 0, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0033*/ 1, 1, 0, 0, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0034*/ 1, 1, 0, 0, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0035*/ 1, 1, 0, 0, 13, FILE_CHEADGRIFFEY, 1, 1, 0, 0 },
|
||||
{ /*0x0036*/ 1, 1, 0, 0, 13, FILE_CHEADMOTO, 1, 1, 0, 0 },
|
||||
{ /*0x0037*/ 1, 1, 0, 0, 13, FILE_CHEADKEITH, 1, 1, 0, 0 },
|
||||
{ /*0x0038*/ 0, 1, 0, 1, 13, FILE_CHEADWINNER, 1, 1, 0, 0 },
|
||||
{ /*0x0039*/ 1, 1, 0, 0, 13, FILE_CA51FACEPLATE, 1, 1, 0, 0 },
|
||||
{ /*0x003a*/ 1, 1, 0, 3, 27, FILE_CHEADELVIS_GOGS, 1, 1, 0, 0 },
|
||||
{ /*0x003b*/ 1, 1, 0, 0, 13, FILE_CHEADSTEVEM, 1, 1, 0, 0 },
|
||||
{ /*0x003c*/ 0, 1, 0, 1, 13, FILE_CHEADDARK_SNOW, 1, 1, 0, 0 },
|
||||
{ /*0x003d*/ 1, 1, 0, 0, 13, FILE_CHEADPRESIDENT, 1, 1, 0, 0 },
|
||||
{ /*0x003e*/ 0, 1, 0, 1, 13, FILE_CHEAD_VD, 1, 1, 0, 0 },
|
||||
{ /*0x003f*/ 1, 1, 0, 0, 13, FILE_CHEADKEN, 1, 1, 0, 0 },
|
||||
{ /*0x0040*/ 1, 1, 0, 0, 13, FILE_CHEADJOEL, 1, 1, 0, 0 },
|
||||
{ /*0x0041*/ 1, 1, 0, 0, 13, FILE_CHEADTIM, 1, 1, 0, 0 },
|
||||
{ /*0x0042*/ 1, 1, 0, 0, 13, FILE_CHEADGRANT, 1, 1, 0, 0 },
|
||||
{ /*0x0043*/ 1, 1, 0, 0, 13, FILE_CHEADPENNY, 1, 1, 0, 0 },
|
||||
{ /*0x0044*/ 1, 1, 0, 0, 13, FILE_CHEADROBIN, 1, 1, 0, 0 },
|
||||
{ /*0x0045*/ 0, 1, 0, 2, 13, FILE_CHEADALEX, 1, 1, 0, 0 },
|
||||
{ /*0x0046*/ 0, 1, 0, 2, 13, FILE_CHEADJULIANNE, 1, 1, 0, 0 },
|
||||
{ /*0x0047*/ 0, 1, 0, 2, 13, FILE_CHEADLAURA, 1, 1, 0, 0 },
|
||||
{ /*0x0048*/ 1, 1, 0, 0, 13, FILE_CHEADDAVEC, 1, 1, 0, 0 },
|
||||
{ /*0x0049*/ 1, 1, 0, 0, 13, FILE_CHEADCOOK, 1, 1, 0, 0 },
|
||||
{ /*0x004a*/ 1, 1, 0, 0, 13, FILE_CHEADPRYCE, 1, 1, 0, 0 },
|
||||
{ /*0x004b*/ 1, 1, 0, 0, 13, FILE_CHEADSILKE, 1, 1, 0, 0 },
|
||||
{ /*0x004c*/ 1, 1, 0, 0, 13, FILE_CHEADSMITH, 1, 1, 0, 0 },
|
||||
{ /*0x004d*/ 1, 1, 0, 0, 13, FILE_CHEADGARETH, 1, 1, 0, 0 },
|
||||
{ /*0x004e*/ 1, 1, 0, 0, 13, FILE_CHEADMURCHIE, 1, 1, 0, 0 },
|
||||
{ /*0x004f*/ 1, 1, 0, 0, 13, FILE_CHEADWONG, 1, 1, 0, 0 },
|
||||
{ /*0x0050*/ 1, 1, 0, 0, 13, FILE_CHEADCARTER, 1, 1, 0, 0 },
|
||||
{ /*0x0051*/ 1, 1, 0, 0, 13, FILE_CHEADTINTIN, 1, 1, 0, 0 },
|
||||
{ /*0x0052*/ 1, 1, 0, 0, 13, FILE_CHEADMUNTON, 1, 1, 0, 0 },
|
||||
{ /*0x0053*/ 1, 1, 0, 0, 13, FILE_CHEADSTAMPER, 1, 1, 0, 0 },
|
||||
{ /*0x0054*/ 1, 1, 0, 0, 13, FILE_CHEADJONES, 1, 1, 0, 0 },
|
||||
{ /*0x0055*/ 1, 1, 0, 0, 13, FILE_CHEADPHELPS, 1, 1, 0, 0 },
|
||||
{ /*0x0056*/ 0, 0, 0, 1, 159, FILE_CDARK_COMBAT, 1, 0.95305162668228, 0, FILE_GCOMBATHANDSLOD },
|
||||
{ /*0x0057*/ 1, 0, 0, 3, 106, FILE_CELVIS1, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0058*/ 1, 0, 1, 0, 157, FILE_CAREA51GUARD, 1, 0.92769956588745, 0, FILE_GHAND_A51GUARD },
|
||||
{ /*0x0059*/ 1, 0, 0, 0, 159, FILE_COVERALL, 1, 0.92769956588745, 0, FILE_GHAND_A51GUARD },
|
||||
{ /*0x005a*/ 1, 0, 0, 0, 154, FILE_CCARRINGTON, 1, 0.85915493965149, 0, FILE_GHAND_CARRINGTON },
|
||||
{ /*0x005b*/ 1, 0, 0, 5, 169, FILE_CMRBLONDE, 1, 1.1032863855362, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x005c*/ 1, 0, 1, 0, 159, FILE_CSKEDAR, 1, 1, 0, 0 },
|
||||
{ /*0x005d*/ 1, 0, 0, 0, 161, FILE_CTRENT, 1, 0.93896716833115, 0, FILE_GHAND_TRENT },
|
||||
{ /*0x005e*/ 1, 0, 1, 0, 157, FILE_CDDSHOCK, 1, 0.93896716833115, 0, FILE_GHAND_DDFODDER },
|
||||
{ /*0x005f*/ 1, 0, 1, 0, 157, FILE_CLABTECH, 1, 0.93896716833115, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x0060*/ 1, 0, 1, 0, 158, FILE_CSTRIPES, 1, 0.92769956588745, 0, FILE_GHAND_BLACKGUARD },
|
||||
{ /*0x0061*/ 0, 0, 0, 1, 159, FILE_CDARK_FROCK, 1, 0.95305162668228, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0062*/ 0, 0, 0, 1, 159, FILE_CDARK_TRENCH, 1, 0.95305162668228, 0, FILE_GHAND_JOTRENCH },
|
||||
{ /*0x0063*/ 1, 0, 0, 0, 157, FILE_COFFICEWORKER, 1, 0.93896716833115, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0064*/ 1, 0, 0, 0, 157, FILE_COFFICEWORKER2, 1, 0.93896716833115, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0065*/ 0, 0, 0, 1, 140, FILE_CSECRETARY, 1, 0.87323945760727, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0066*/ 0, 0, 0, 4, 167, FILE_CCASSANDRA, 1, 0.98591554164886, 0, FILE_GHAND_VRIES },
|
||||
{ /*0x0067*/ 1, 0, 0, 3, 106, FILE_CTHEKING, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0068*/ 0, 0, 1, 2, 160, FILE_CFEM_GUARD, 1, 0.96713620424271, 0, FILE_GHAND_JOTRENCH },
|
||||
{ /*0x0069*/ 1, 0, 1, 0, 157, FILE_CDD_LABTECH, 1, 0.93896716833115, 0, FILE_GHAND_DDLABTECH },
|
||||
{ /*0x006a*/ 1, 0, 1, 0, 160, FILE_CDD_SECGUARD, 1, 0.93427228927612, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x006b*/ 1, 1, 0, 0, 159, FILE_CDRCARROLL, 1, 1, 0, 0 },
|
||||
{ /*0x006c*/ 1, 0, 0, 0, 159, FILE_CEYESPY, 1, 1, 0, 0 },
|
||||
{ /*0x006d*/ 0, 0, 0, 1, 159, FILE_CDARK_RIPPED, 1, 0.95305162668228, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x006e*/ 1, 0, 1, 0, 160, FILE_CDD_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x006f*/ 1, 0, 1, 0, 157, FILE_CDD_SHOCK_INF, 1, 0.93896716833115, 0, FILE_GHAND_DDSHOCK },
|
||||
{ /*0x0070*/ 1, 1, 0, 0, 159, FILE_CTESTCHR, 1, 1, 0, 0 },
|
||||
{ /*0x0071*/ 1, 0, 1, 0, 155, FILE_CBIOTECH, 1, 0.93896716833115, 0, FILE_GHAND_DDBIO },
|
||||
{ /*0x0072*/ 1, 0, 1, 0, 159, FILE_CFBIGUY, 1, 0.93896716833115, 0, FILE_GHAND_FBIARM },
|
||||
{ /*0x0073*/ 1, 0, 1, 0, 159, FILE_CCIAGUY, 1, 0.93896716833115, 0, FILE_GHAND_CIA },
|
||||
{ /*0x0074*/ 1, 0, 1, 0, 159, FILE_CA51TROOPER, 1, 0.93896716833115, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0075*/ 1, 0, 0, 0, 157, FILE_CA51AIRMAN, 1, 0.93896716833115, 0, FILE_GHAND_A51AIRMAN },
|
||||
{ /*0x0076*/ 1, 0, 0, 0, 159, FILE_CCHICROB, 1, 1, 0, 0 },
|
||||
{ /*0x0077*/ 1, 0, 0, 0, 153, FILE_CSTEWARD, 1, 0.89201879501343, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0078*/ 0, 0, 0, 1, 143, FILE_CSTEWARDESS, 1, 0.85446006059647, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0079*/ 1, 0, 0, 0, 159, FILE_CPRESIDENT, 1, 0.93896716833115, 0, FILE_GHAND_PRESIDENT },
|
||||
{ /*0x007a*/ 0, 0, 0, 1, 143, FILE_CSTEWARDESS_COAT, 1, 0.85446006059647, 0, FILE_GHAND_STEWARDESS_COAT },
|
||||
{ /*0x007b*/ 1, 0, 0, 0, 159, FILE_CMINISKEDAR, 0.75, 0.5, 0, 0 },
|
||||
{ /*0x007c*/ 1, 0, 0, 0, 159, FILE_CNSA_LACKEY, 1, 0.93896716833115, 0, FILE_GHAND_CARRINGTON },
|
||||
{ /*0x007d*/ 1, 0, 0, 0, 159, FILE_CPRES_SECURITY, 1, 0.93896716833115, 0, FILE_GHAND_CARRINGTON },
|
||||
{ /*0x007e*/ 0, 0, 0, 1, 142, FILE_CNEGOTIATOR, 1, 0.85446006059647, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x007f*/ 1, 0, 0, 0, 159, FILE_CG5_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_G5GUARD },
|
||||
{ /*0x0080*/ 1, 0, 1, 0, 159, FILE_CPELAGIC_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_TRAGIC_PELAGIC },
|
||||
{ /*0x0081*/ 1, 0, 1, 0, 158, FILE_CG5_SWAT_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_G5GUARD },
|
||||
{ /*0x0082*/ 1, 0, 1, 0, 158, FILE_CALASKAN_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_JOSNOW },
|
||||
{ /*0x0083*/ 1, 0, 1, 3, 106, FILE_CMAIAN_SOLDIER, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0084*/ 1, 0, 0, 0, 159, FILE_CPRESIDENT_CLONE, 1, 0.93896716833115, 0, FILE_GCOMBATHANDSLOD },
|
||||
{ /*0x0085*/ 1, 0, 0, 0, 159, FILE_CPRESIDENT_CLONE, 1, 0.93896716833115, 0, FILE_GHAND_PRESIDENT },
|
||||
{ /*0x0086*/ 0, 0, 0, 1, 159, FILE_CDARK_AF1, 1, 0.95305162668228, 0, FILE_GHAND_JOPILOT },
|
||||
{ /*0x0087*/ 0, 0, 0, 1, 159, FILE_CDARKWET, 1, 0.95305162668228, 0, FILE_GHAND_JOWETSUIT },
|
||||
{ /*0x0088*/ 0, 0, 0, 1, 159, FILE_CDARKAQUALUNG, 1, 0.95305162668228, 0, FILE_GHAND_JOWETSUIT },
|
||||
{ /*0x0089*/ 0, 0, 0, 1, 159, FILE_CDARKSNOW, 1, 0.95305162668228, 0, FILE_GHAND_JOSNOW },
|
||||
{ /*0x008a*/ 0, 0, 0, 1, 159, FILE_CDARKLAB, 1, 0.95305162668228, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x008b*/ 0, 0, 1, 1, 159, FILE_CFEMLABTECH, 1, 0.87323945760727, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x008c*/ 1, 0, 1, 0, 159, FILE_CDDSNIPER, 1, 0.93896716833115, 0, FILE_GHAND_DDSNIPER },
|
||||
{ /*0x008d*/ 1, 0, 0, 0, 159, FILE_CPILOTAF1, 1, 0.88262909650803, 0, FILE_GHAND_JOPILOT },
|
||||
{ /*0x008e*/ 1, 0, 1, 0, 159, FILE_CCILABTECH, 1, 0.93896716833115, 0, FILE_GHAND_CIFEMTECH },
|
||||
{ /*0x008f*/ 0, 0, 1, 1, 159, FILE_CCIFEMTECH, 1, 0.86854463815689, 0, FILE_GHAND_CIFEMTECH },
|
||||
{ /*0x0090*/ 1, 0, 0, 0, 159, FILE_CCARREVENINGSUIT, 1, 0.85915493965149, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x0091*/ 1, 0, 0, 0, 159, FILE_CJONATHON, 1, 0.93896716833115, 0, FILE_GHAND_A51GUARD },
|
||||
{ /*0x0092*/ 1, 0, 1, 0, 159, FILE_CCISOLDIER, 1, 0.93896716833115, 0, FILE_GHAND_CISOLDIER },
|
||||
{ /*0x0093*/ 1, 0, 0, 0, 159, FILE_CSKEDARKING, 1, 1.25, 0, 0 },
|
||||
{ /*0x0094*/ 1, 0, 0, 3, 106, FILE_CELVISWAISTCOAT, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0095*/ 0, 0, 0, 1, 159, FILE_CDARK_LEATHER, 1, 0.95305162668228, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0096*/ 0, 0, 0, 1, 159, FILE_CDARK_NEGOTIATOR, 1, 0.95305162668228, 0, FILE_GHAND_JOAF1 },
|
||||
{ /*0x0097*/ 0, 0, 0, 0, 0, 0, 1, 0, 0, FILE_GCOMBATHANDSLOD },
|
||||
// | height
|
||||
// | |
|
||||
{ /*0x0000*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 167, FILE_CDJBOND, 1, 1.0446009635925, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x0001*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 167, FILE_CCONNERY, 1, 1.0300469398499, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x0002*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 165, FILE_CDALTON, 1, 1.0572769641876, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x0003*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 167, FILE_CMOORE, 1, 1.0399061441422, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x0004*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADDARK_COMBAT, 1, 1, 0, 0 },
|
||||
{ /*0x0005*/ 1, 1, 0, HEADBODYTYPE_MAIAN, 27, FILE_CHEADELVIS, 1, 1, 0, 0 },
|
||||
{ /*0x0006*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADROSS, 1, 1, 0, 0 },
|
||||
{ /*0x0007*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADCARRINGTON, 1, 1, 0, 0 },
|
||||
{ /*0x0008*/ 1, 1, 0, HEADBODYTYPE_MRBLONDE, 13, FILE_CHEADMRBLONDE, 1, 1, 0, 0 },
|
||||
{ /*0x0009*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADTRENT, 1, 1, 0, 0 },
|
||||
{ /*0x000a*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADDDSHOCK, 1, 1, 0, 0 },
|
||||
{ /*0x000b*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADGRAHAM, 1, 1, 0, 0 },
|
||||
{ /*0x000c*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADDARK_FROCK, 1, 1, 0, 0 },
|
||||
{ /*0x000d*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADSECRETARY, 1, 1, 0, 0 },
|
||||
{ /*0x000e*/ 0, 1, 0, HEADBODYTYPE_CASS, 13, FILE_CHEADCASSANDRA, 1, 1, 0, 0 },
|
||||
{ /*0x000f*/ 1, 1, 0, HEADBODYTYPE_MAIAN, 27, FILE_CHEADTHEKING, 1, 1, 0, 0 },
|
||||
{ /*0x0010*/ 0, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADFEM_GUARD, 1, 1, 0, 0 },
|
||||
{ /*0x0011*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADJON, 1, 1, 0, 0 },
|
||||
{ /*0x0012*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADMARK2, 1, 1, 0, 0 },
|
||||
{ /*0x0013*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADCHRIST, 1, 1, 0, 0 },
|
||||
{ /*0x0014*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADRUSS, 1, 1, 0, 0 },
|
||||
{ /*0x0015*/ 1, 1, 0, HEADBODYTYPE_MAIAN, 13, FILE_CHEADGREY, 1, 1, 0, 0 },
|
||||
{ /*0x0016*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADDARLING, 1, 1, 0, 0 },
|
||||
{ /*0x0017*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADROBERT, 1, 1, 0, 0 },
|
||||
{ /*0x0018*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0019*/ 0, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADFEM_GUARD2, 1, 1, 0, 0 },
|
||||
{ /*0x001a*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBRIAN, 1, 1, 0, 0 },
|
||||
{ /*0x001b*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADJAMIE, 1, 1, 0, 0 },
|
||||
{ /*0x001c*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADDUNCAN2, 1, 1, 0, 0 },
|
||||
{ /*0x001d*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBIOTECH, 1, 1, 0, 0 },
|
||||
{ /*0x001e*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADNEIL2, 1, 1, 0, 0 },
|
||||
{ /*0x001f*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADEDMCG, 1, 1, 0, 0 },
|
||||
{ /*0x0020*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADANKA, 1, 1, 0, 0 },
|
||||
{ /*0x0021*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADLESLIE_S, 1, 1, 0, 0 },
|
||||
{ /*0x0022*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADMATT_C, 1, 1, 0, 0 },
|
||||
{ /*0x0023*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADPEER_S, 1, 1, 0, 0 },
|
||||
{ /*0x0024*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADEILEEN_T, 1, 1, 0, 0 },
|
||||
{ /*0x0025*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADANDY_R, 1, 1, 0, 0 },
|
||||
{ /*0x0026*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEN_R, 1, 1, 0, 0 },
|
||||
{ /*0x0027*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSTEVE_K, 1, 1, 0, 0 },
|
||||
{ /*0x0028*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADJONATHAN, 1, 1, 0, 0 },
|
||||
{ /*0x0029*/ 1, 1, 0, HEADBODYTYPE_MAIAN, 27, FILE_CHEADMAIAN_S, 1, 1, 0, 0 },
|
||||
{ /*0x002a*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSHAUN, 1, 1, 0, 0 },
|
||||
{ /*0x002b*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x002c*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADEILEEN_H, 1, 1, 0, 0 },
|
||||
{ /*0x002d*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSCOTT_H, 1, 1, 0, 0 },
|
||||
{ /*0x002e*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSANCHEZ, 1, 1, 0, 0 },
|
||||
{ /*0x002f*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADDARKAQUA, 1, 1, 0, 0 },
|
||||
{ /*0x0030*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADDDSNIPER, 1, 1, 0, 0 },
|
||||
{ /*0x0031*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0032*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0033*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0034*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADBEAU, 1, 1, 0, 0 },
|
||||
{ /*0x0035*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADGRIFFEY, 1, 1, 0, 0 },
|
||||
{ /*0x0036*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADMOTO, 1, 1, 0, 0 },
|
||||
{ /*0x0037*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADKEITH, 1, 1, 0, 0 },
|
||||
{ /*0x0038*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADWINNER, 1, 1, 0, 0 },
|
||||
{ /*0x0039*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CA51FACEPLATE, 1, 1, 0, 0 },
|
||||
{ /*0x003a*/ 1, 1, 0, HEADBODYTYPE_MAIAN, 27, FILE_CHEADELVIS_GOGS, 1, 1, 0, 0 },
|
||||
{ /*0x003b*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSTEVEM, 1, 1, 0, 0 },
|
||||
{ /*0x003c*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEADDARK_SNOW, 1, 1, 0, 0 },
|
||||
{ /*0x003d*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADPRESIDENT, 1, 1, 0, 0 },
|
||||
{ /*0x003e*/ 0, 1, 0, HEADBODYTYPE_FEMALE, 13, FILE_CHEAD_VD, 1, 1, 0, 0 },
|
||||
{ /*0x003f*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADKEN, 1, 1, 0, 0 },
|
||||
{ /*0x0040*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADJOEL, 1, 1, 0, 0 },
|
||||
{ /*0x0041*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADTIM, 1, 1, 0, 0 },
|
||||
{ /*0x0042*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADGRANT, 1, 1, 0, 0 },
|
||||
{ /*0x0043*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADPENNY, 1, 1, 0, 0 },
|
||||
{ /*0x0044*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADROBIN, 1, 1, 0, 0 },
|
||||
{ /*0x0045*/ 0, 1, 0, HEADBODYTYPE_FEMALEGUARD, 13, FILE_CHEADALEX, 1, 1, 0, 0 },
|
||||
{ /*0x0046*/ 0, 1, 0, HEADBODYTYPE_FEMALEGUARD, 13, FILE_CHEADJULIANNE, 1, 1, 0, 0 },
|
||||
{ /*0x0047*/ 0, 1, 0, HEADBODYTYPE_FEMALEGUARD, 13, FILE_CHEADLAURA, 1, 1, 0, 0 },
|
||||
{ /*0x0048*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADDAVEC, 1, 1, 0, 0 },
|
||||
{ /*0x0049*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADCOOK, 1, 1, 0, 0 },
|
||||
{ /*0x004a*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADPRYCE, 1, 1, 0, 0 },
|
||||
{ /*0x004b*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSILKE, 1, 1, 0, 0 },
|
||||
{ /*0x004c*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSMITH, 1, 1, 0, 0 },
|
||||
{ /*0x004d*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADGARETH, 1, 1, 0, 0 },
|
||||
{ /*0x004e*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADMURCHIE, 1, 1, 0, 0 },
|
||||
{ /*0x004f*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADWONG, 1, 1, 0, 0 },
|
||||
{ /*0x0050*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADCARTER, 1, 1, 0, 0 },
|
||||
{ /*0x0051*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADTINTIN, 1, 1, 0, 0 },
|
||||
{ /*0x0052*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADMUNTON, 1, 1, 0, 0 },
|
||||
{ /*0x0053*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADSTAMPER, 1, 1, 0, 0 },
|
||||
{ /*0x0054*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADJONES, 1, 1, 0, 0 },
|
||||
{ /*0x0055*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 13, FILE_CHEADPHELPS, 1, 1, 0, 0 },
|
||||
{ /*0x0056*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_COMBAT, 1, 0.95305162668228, 0, FILE_GCOMBATHANDSLOD },
|
||||
{ /*0x0057*/ 1, 0, 0, HEADBODYTYPE_MAIAN, 106, FILE_CELVIS1, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0058*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 157, FILE_CAREA51GUARD, 1, 0.92769956588745, 0, FILE_GHAND_A51GUARD },
|
||||
{ /*0x0059*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_COVERALL, 1, 0.92769956588745, 0, FILE_GHAND_A51GUARD },
|
||||
{ /*0x005a*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 154, FILE_CCARRINGTON, 1, 0.85915493965149, 0, FILE_GHAND_CARRINGTON },
|
||||
{ /*0x005b*/ 1, 0, 0, HEADBODYTYPE_MRBLONDE, 169, FILE_CMRBLONDE, 1, 1.1032863855362, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x005c*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CSKEDAR, 1, 1, 0, 0 },
|
||||
{ /*0x005d*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 161, FILE_CTRENT, 1, 0.93896716833115, 0, FILE_GHAND_TRENT },
|
||||
{ /*0x005e*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 157, FILE_CDDSHOCK, 1, 0.93896716833115, 0, FILE_GHAND_DDFODDER },
|
||||
{ /*0x005f*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 157, FILE_CLABTECH, 1, 0.93896716833115, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x0060*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 158, FILE_CSTRIPES, 1, 0.92769956588745, 0, FILE_GHAND_BLACKGUARD },
|
||||
{ /*0x0061*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_FROCK, 1, 0.95305162668228, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0062*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_TRENCH, 1, 0.95305162668228, 0, FILE_GHAND_JOTRENCH },
|
||||
{ /*0x0063*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 157, FILE_COFFICEWORKER, 1, 0.93896716833115, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0064*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 157, FILE_COFFICEWORKER2, 1, 0.93896716833115, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0065*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 140, FILE_CSECRETARY, 1, 0.87323945760727, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0066*/ 0, 0, 0, HEADBODYTYPE_CASS, 167, FILE_CCASSANDRA, 1, 0.98591554164886, 0, FILE_GHAND_VRIES },
|
||||
{ /*0x0067*/ 1, 0, 0, HEADBODYTYPE_MAIAN, 106, FILE_CTHEKING, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0068*/ 0, 0, 1, HEADBODYTYPE_FEMALEGUARD, 160, FILE_CFEM_GUARD, 1, 0.96713620424271, 0, FILE_GHAND_JOTRENCH },
|
||||
{ /*0x0069*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 157, FILE_CDD_LABTECH, 1, 0.93896716833115, 0, FILE_GHAND_DDLABTECH },
|
||||
{ /*0x006a*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 160, FILE_CDD_SECGUARD, 1, 0.93427228927612, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x006b*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CDRCARROLL, 1, 1, 0, 0 },
|
||||
{ /*0x006c*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CEYESPY, 1, 1, 0, 0 },
|
||||
{ /*0x006d*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_RIPPED, 1, 0.95305162668228, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x006e*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 160, FILE_CDD_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_DDSECURITY },
|
||||
{ /*0x006f*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 157, FILE_CDD_SHOCK_INF, 1, 0.93896716833115, 0, FILE_GHAND_DDSHOCK },
|
||||
{ /*0x0070*/ 1, 1, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CTESTCHR, 1, 1, 0, 0 },
|
||||
{ /*0x0071*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 155, FILE_CBIOTECH, 1, 0.93896716833115, 0, FILE_GHAND_DDBIO },
|
||||
{ /*0x0072*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CFBIGUY, 1, 0.93896716833115, 0, FILE_GHAND_FBIARM },
|
||||
{ /*0x0073*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CCIAGUY, 1, 0.93896716833115, 0, FILE_GHAND_CIA },
|
||||
{ /*0x0074*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CA51TROOPER, 1, 0.93896716833115, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0075*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 157, FILE_CA51AIRMAN, 1, 0.93896716833115, 0, FILE_GHAND_A51AIRMAN },
|
||||
{ /*0x0076*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CCHICROB, 1, 1, 0, 0 },
|
||||
{ /*0x0077*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 153, FILE_CSTEWARD, 1, 0.89201879501343, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0078*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 143, FILE_CSTEWARDESS, 1, 0.85446006059647, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0079*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CPRESIDENT, 1, 0.93896716833115, 0, FILE_GHAND_PRESIDENT },
|
||||
{ /*0x007a*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 143, FILE_CSTEWARDESS_COAT, 1, 0.85446006059647, 0, FILE_GHAND_STEWARDESS_COAT },
|
||||
{ /*0x007b*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CMINISKEDAR, 0.75, 0.5, 0, 0 },
|
||||
{ /*0x007c*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CNSA_LACKEY, 1, 0.93896716833115, 0, FILE_GHAND_CARRINGTON },
|
||||
{ /*0x007d*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CPRES_SECURITY, 1, 0.93896716833115, 0, FILE_GHAND_CARRINGTON },
|
||||
{ /*0x007e*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 142, FILE_CNEGOTIATOR, 1, 0.85446006059647, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x007f*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CG5_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_G5GUARD },
|
||||
{ /*0x0080*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CPELAGIC_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_TRAGIC_PELAGIC },
|
||||
{ /*0x0081*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 158, FILE_CG5_SWAT_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_G5GUARD },
|
||||
{ /*0x0082*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 158, FILE_CALASKAN_GUARD, 1, 0.93896716833115, 0, FILE_GHAND_JOSNOW },
|
||||
{ /*0x0083*/ 1, 0, 1, HEADBODYTYPE_MAIAN, 106, FILE_CMAIAN_SOLDIER, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0084*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CPRESIDENT_CLONE, 1, 0.93896716833115, 0, FILE_GCOMBATHANDSLOD },
|
||||
{ /*0x0085*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CPRESIDENT_CLONE, 1, 0.93896716833115, 0, FILE_GHAND_PRESIDENT },
|
||||
{ /*0x0086*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_AF1, 1, 0.95305162668228, 0, FILE_GHAND_JOPILOT },
|
||||
{ /*0x0087*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARKWET, 1, 0.95305162668228, 0, FILE_GHAND_JOWETSUIT },
|
||||
{ /*0x0088*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARKAQUALUNG, 1, 0.95305162668228, 0, FILE_GHAND_JOWETSUIT },
|
||||
{ /*0x0089*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARKSNOW, 1, 0.95305162668228, 0, FILE_GHAND_JOSNOW },
|
||||
{ /*0x008a*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARKLAB, 1, 0.95305162668228, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x008b*/ 0, 0, 1, HEADBODYTYPE_FEMALE, 159, FILE_CFEMLABTECH, 1, 0.87323945760727, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x008c*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CDDSNIPER, 1, 0.93896716833115, 0, FILE_GHAND_DDSNIPER },
|
||||
{ /*0x008d*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CPILOTAF1, 1, 0.88262909650803, 0, FILE_GHAND_JOPILOT },
|
||||
{ /*0x008e*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CCILABTECH, 1, 0.93896716833115, 0, FILE_GHAND_CIFEMTECH },
|
||||
{ /*0x008f*/ 0, 0, 1, HEADBODYTYPE_FEMALE, 159, FILE_CCIFEMTECH, 1, 0.86854463815689, 0, FILE_GHAND_CIFEMTECH },
|
||||
{ /*0x0090*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CCARREVENINGSUIT, 1, 0.85915493965149, 0, FILE_GHAND_MRBLONDE },
|
||||
{ /*0x0091*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CJONATHON, 1, 0.93896716833115, 0, FILE_GHAND_A51GUARD },
|
||||
{ /*0x0092*/ 1, 0, 1, HEADBODYTYPE_DEFAULT, 159, FILE_CCISOLDIER, 1, 0.93896716833115, 0, FILE_GHAND_CISOLDIER },
|
||||
{ /*0x0093*/ 1, 0, 0, HEADBODYTYPE_DEFAULT, 159, FILE_CSKEDARKING, 1, 1.25, 0, 0 },
|
||||
{ /*0x0094*/ 1, 0, 0, HEADBODYTYPE_MAIAN, 106, FILE_CELVISWAISTCOAT, 1, 0.57276993989944, 0, FILE_GHAND_ELVIS },
|
||||
{ /*0x0095*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_LEATHER, 1, 0.95305162668228, 0, FILE_GHAND_JOFROCK },
|
||||
{ /*0x0096*/ 0, 0, 0, HEADBODYTYPE_FEMALE, 159, FILE_CDARK_NEGOTIATOR, 1, 0.95305162668228, 0, FILE_GHAND_JOAF1 },
|
||||
{ /*0x0097*/ 0, 0, 0, HEADBODYTYPE_DEFAULT, 0, 0, 1, 0, 0, FILE_GCOMBATHANDSLOD },
|
||||
};
|
||||
|
||||
u32 var8007dae4 = 0xbd8ff972;
|
||||
|
||||
+105
-186
@@ -290,7 +290,7 @@ glabel var7f1a8a84
|
||||
/* f02d028: afa20054 */ sw $v0,0x54($sp)
|
||||
/* f02d02c: ac206680 */ sw $zero,%lo(g_FileInfo)($at)
|
||||
/* f02d030: 00402025 */ or $a0,$v0,$zero
|
||||
/* f02d034: 0fc0b76f */ jal func0f02ddbc
|
||||
/* f02d034: 0fc0b76f */ jal bodyCalculateHeadOffset
|
||||
/* f02d038: 8fa60048 */ lw $a2,0x48($sp)
|
||||
/* f02d03c: 10000014 */ b .L0f02d090
|
||||
/* f02d040: 00000000 */ nop
|
||||
@@ -540,7 +540,7 @@ glabel var7f1a8a84
|
||||
// headfiledata = fileLoad(g_HeadsAndBodies[headnum].filenum);
|
||||
// g_HeadsAndBodies[headnum].filedata = headfiledata;
|
||||
// g_FileInfo[g_HeadsAndBodies[headnum].filenum].size = 0;
|
||||
// func0f02ddbc(headfiledata, headnum, bodynum);
|
||||
// bodyCalculateHeadOffset(headfiledata, headnum, bodynum);
|
||||
// } else {
|
||||
// if (g_HeadsAndBodies[headnum].filedata == NULL) {
|
||||
// g_HeadsAndBodies[headnum].filedata = fileLoad(g_HeadsAndBodies[headnum].filenum);
|
||||
@@ -965,187 +965,106 @@ void func0f02ddbf(void)
|
||||
// empty
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f02ddbc
|
||||
.late_rodata
|
||||
glabel var7f1a8a88
|
||||
.word func0f02ddbc+0x94 # f02de50
|
||||
glabel var7f1a8a8c
|
||||
.word func0f02ddbc+0x84 # f02de40
|
||||
glabel var7f1a8a90
|
||||
.word func0f02ddbc+0xac # f02de68
|
||||
glabel var7f1a8a94
|
||||
.word func0f02ddbc+0x8c # f02de48
|
||||
glabel var7f1a8a98
|
||||
.word func0f02ddbc+0xa4 # f02de60
|
||||
glabel var7f1a8a9c
|
||||
.word func0f02ddbc+0x9c # f02de58
|
||||
glabel var7f1a8aa0
|
||||
.word func0f02ddbc+0xd8 # f02de94
|
||||
glabel var7f1a8aa4
|
||||
.word func0f02ddbc+0xec # f02dea8
|
||||
glabel var7f1a8aa8
|
||||
.word func0f02ddbc+0xe8 # f02dea4
|
||||
glabel var7f1a8aac
|
||||
.word func0f02ddbc+0xd0 # f02de8c
|
||||
glabel var7f1a8ab0
|
||||
.word func0f02ddbc+0xe0 # f02de9c
|
||||
glabel var7f1a8ab4
|
||||
.word func0f02ddbc+0xec # f02dea8
|
||||
.text
|
||||
/* f02ddbc: 27bdffb8 */ addiu $sp,$sp,-72
|
||||
/* f02ddc0: afbf001c */ sw $ra,0x1c($sp)
|
||||
/* f02ddc4: afb00018 */ sw $s0,0x18($sp)
|
||||
/* f02ddc8: 848e0006 */ lh $t6,0x6($a0)
|
||||
/* f02ddcc: 00a03825 */ or $a3,$a1,$zero
|
||||
/* f02ddd0: 2401000d */ addiu $at,$zero,0xd
|
||||
/* f02ddd4: 15c10081 */ bne $t6,$at,.L0f02dfdc
|
||||
/* f02ddd8: 24050014 */ addiu $a1,$zero,0x14
|
||||
/* f02dddc: 00e50019 */ multu $a3,$a1
|
||||
/* f02dde0: 3c038008 */ lui $v1,%hi(g_HeadsAndBodies)
|
||||
/* f02dde4: 2463cf04 */ addiu $v1,$v1,%lo(g_HeadsAndBodies)
|
||||
/* f02dde8: 00007812 */ mflo $t7
|
||||
/* f02ddec: 006fc021 */ addu $t8,$v1,$t7
|
||||
/* f02ddf0: 8f020000 */ lw $v0,0x0($t8)
|
||||
/* f02ddf4: 00c50019 */ multu $a2,$a1
|
||||
/* f02ddf8: 0002c8c0 */ sll $t9,$v0,0x3
|
||||
/* f02ddfc: 00194742 */ srl $t0,$t9,0x1d
|
||||
/* f02de00: 01001025 */ or $v0,$t0,$zero
|
||||
/* f02de04: 2d010006 */ sltiu $at,$t0,0x6
|
||||
/* f02de08: 00004812 */ mflo $t1
|
||||
/* f02de0c: 00695021 */ addu $t2,$v1,$t1
|
||||
/* f02de10: 8d460000 */ lw $a2,0x0($t2)
|
||||
/* f02de14: 000658c0 */ sll $t3,$a2,0x3
|
||||
/* f02de18: 000b3742 */ srl $a2,$t3,0x1d
|
||||
/* f02de1c: 51060070 */ beql $t0,$a2,.L0f02dfe0
|
||||
/* f02de20: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
/* f02de24: 10200006 */ beqz $at,.L0f02de40
|
||||
/* f02de28: 00086880 */ sll $t5,$t0,0x2
|
||||
/* f02de2c: 3c017f1b */ lui $at,%hi(var7f1a8a88)
|
||||
/* f02de30: 002d0821 */ addu $at,$at,$t5
|
||||
/* f02de34: 8c2d8a88 */ lw $t5,%lo(var7f1a8a88)($at)
|
||||
/* f02de38: 01a00008 */ jr $t5
|
||||
/* f02de3c: 00000000 */ nop
|
||||
.L0f02de40:
|
||||
/* f02de40: 1000000a */ b .L0f02de6c
|
||||
/* f02de44: 00003825 */ or $a3,$zero,$zero
|
||||
/* f02de48: 10000008 */ b .L0f02de6c
|
||||
/* f02de4c: 00003825 */ or $a3,$zero,$zero
|
||||
/* f02de50: 10000006 */ b .L0f02de6c
|
||||
/* f02de54: 2407ffdd */ addiu $a3,$zero,-35
|
||||
/* f02de58: 10000004 */ b .L0f02de6c
|
||||
/* f02de5c: 00003825 */ or $a3,$zero,$zero
|
||||
/* f02de60: 10000002 */ b .L0f02de6c
|
||||
/* f02de64: 2407ffec */ addiu $a3,$zero,-20
|
||||
/* f02de68: 2407ffd8 */ addiu $a3,$zero,-40
|
||||
.L0f02de6c:
|
||||
/* f02de6c: 2cc10006 */ sltiu $at,$a2,0x6
|
||||
/* f02de70: 1020000d */ beqz $at,.L0f02dea8
|
||||
/* f02de74: 00067080 */ sll $t6,$a2,0x2
|
||||
/* f02de78: 3c017f1b */ lui $at,%hi(var7f1a8aa0)
|
||||
/* f02de7c: 002e0821 */ addu $at,$at,$t6
|
||||
/* f02de80: 8c2e8aa0 */ lw $t6,%lo(var7f1a8aa0)($at)
|
||||
/* f02de84: 01c00008 */ jr $t6
|
||||
/* f02de88: 00000000 */ nop
|
||||
/* f02de8c: 10000006 */ b .L0f02dea8
|
||||
/* f02de90: 24e7ffe2 */ addiu $a3,$a3,-30
|
||||
/* f02de94: 10000004 */ b .L0f02dea8
|
||||
/* f02de98: 24e70023 */ addiu $a3,$a3,0x23
|
||||
/* f02de9c: 10000002 */ b .L0f02dea8
|
||||
/* f02dea0: 24e70014 */ addiu $a3,$a3,0x14
|
||||
/* f02dea4: 24e70028 */ addiu $a3,$a3,0x28
|
||||
.L0f02dea8:
|
||||
/* f02dea8: 24010001 */ addiu $at,$zero,0x1
|
||||
/* f02deac: 54c1000f */ bnel $a2,$at,.L0f02deec
|
||||
/* f02deb0: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f02deb4: 10400003 */ beqz $v0,.L0f02dec4
|
||||
/* f02deb8: 24010005 */ addiu $at,$zero,0x5
|
||||
/* f02debc: 54410004 */ bnel $v0,$at,.L0f02ded0
|
||||
/* f02dec0: 24010004 */ addiu $at,$zero,0x4
|
||||
.L0f02dec4:
|
||||
/* f02dec4: 10000010 */ b .L0f02df08
|
||||
/* f02dec8: 24e7fff6 */ addiu $a3,$a3,-10
|
||||
/* f02decc: 24010004 */ addiu $at,$zero,0x4
|
||||
.L0f02ded0:
|
||||
/* f02ded0: 10410003 */ beq $v0,$at,.L0f02dee0
|
||||
/* f02ded4: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f02ded8: 1441000b */ bne $v0,$at,.L0f02df08
|
||||
/* f02dedc: 00000000 */ nop
|
||||
.L0f02dee0:
|
||||
/* f02dee0: 10000009 */ b .L0f02df08
|
||||
/* f02dee4: 24e7fffb */ addiu $a3,$a3,-5
|
||||
/* f02dee8: 24010004 */ addiu $at,$zero,0x4
|
||||
.L0f02deec:
|
||||
/* f02deec: 14c10006 */ bne $a2,$at,.L0f02df08
|
||||
/* f02def0: 00000000 */ nop
|
||||
/* f02def4: 10400003 */ beqz $v0,.L0f02df04
|
||||
/* f02def8: 24010005 */ addiu $at,$zero,0x5
|
||||
/* f02defc: 14410002 */ bne $v0,$at,.L0f02df08
|
||||
/* f02df00: 00000000 */ nop
|
||||
.L0f02df04:
|
||||
/* f02df04: 24e7fffb */ addiu $a3,$a3,-5
|
||||
.L0f02df08:
|
||||
/* f02df08: 50e00035 */ beqzl $a3,.L0f02dfe0
|
||||
/* f02df0c: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
/* f02df10: afa00044 */ sw $zero,0x44($sp)
|
||||
/* f02df14: afa40048 */ sw $a0,0x48($sp)
|
||||
/* f02df18: 8fa40048 */ lw $a0,0x48($sp)
|
||||
.L0f02df1c:
|
||||
/* f02df1c: 8fb00044 */ lw $s0,0x44($sp)
|
||||
/* f02df20: 27a50044 */ addiu $a1,$sp,0x44
|
||||
/* f02df24: 27a6003c */ addiu $a2,$sp,0x3c
|
||||
/* f02df28: 0c008c67 */ jal func0002319c
|
||||
/* f02df2c: afa70038 */ sw $a3,0x38($sp)
|
||||
/* f02df30: 8faf0044 */ lw $t7,0x44($sp)
|
||||
/* f02df34: 8fa70038 */ lw $a3,0x38($sp)
|
||||
/* f02df38: 51e00019 */ beqzl $t7,.L0f02dfa0
|
||||
/* f02df3c: 8fac0044 */ lw $t4,0x44($sp)
|
||||
/* f02df40: 51f00017 */ beql $t7,$s0,.L0f02dfa0
|
||||
/* f02df44: 8fac0044 */ lw $t4,0x44($sp)
|
||||
/* f02df48: 95f80000 */ lhu $t8,0x0($t7)
|
||||
/* f02df4c: 24010018 */ addiu $at,$zero,0x18
|
||||
/* f02df50: 57010013 */ bnel $t8,$at,.L0f02dfa0
|
||||
/* f02df54: 8fac0044 */ lw $t4,0x44($sp)
|
||||
/* f02df58: 8de50004 */ lw $a1,0x4($t7)
|
||||
/* f02df5c: 00001825 */ or $v1,$zero,$zero
|
||||
/* f02df60: 00002025 */ or $a0,$zero,$zero
|
||||
/* f02df64: 84b90010 */ lh $t9,0x10($a1)
|
||||
/* f02df68: 5b20000d */ blezl $t9,.L0f02dfa0
|
||||
/* f02df6c: 8fac0044 */ lw $t4,0x44($sp)
|
||||
/* f02df70: 8ca8000c */ lw $t0,0xc($a1)
|
||||
.L0f02df74:
|
||||
/* f02df74: 24630001 */ addiu $v1,$v1,0x1
|
||||
/* f02df78: 01041021 */ addu $v0,$t0,$a0
|
||||
/* f02df7c: 84490002 */ lh $t1,0x2($v0)
|
||||
/* f02df80: 2484000c */ addiu $a0,$a0,0xc
|
||||
/* f02df84: 01275021 */ addu $t2,$t1,$a3
|
||||
/* f02df88: a44a0002 */ sh $t2,0x2($v0)
|
||||
/* f02df8c: 84ab0010 */ lh $t3,0x10($a1)
|
||||
/* f02df90: 006b082a */ slt $at,$v1,$t3
|
||||
/* f02df94: 5420fff7 */ bnezl $at,.L0f02df74
|
||||
/* f02df98: 8ca8000c */ lw $t0,0xc($a1)
|
||||
/* f02df9c: 8fac0044 */ lw $t4,0x44($sp)
|
||||
.L0f02dfa0:
|
||||
/* f02dfa0: 5580ffde */ bnezl $t4,.L0f02df1c
|
||||
/* f02dfa4: 8fa40048 */ lw $a0,0x48($sp)
|
||||
/* f02dfa8: 8fa40048 */ lw $a0,0x48($sp)
|
||||
/* f02dfac: 0fc1a25b */ jal func0f06896c
|
||||
/* f02dfb0: afa70038 */ sw $a3,0x38($sp)
|
||||
/* f02dfb4: 10400009 */ beqz $v0,.L0f02dfdc
|
||||
/* f02dfb8: 8fa70038 */ lw $a3,0x38($sp)
|
||||
/* f02dfbc: 44872000 */ mtc1 $a3,$f4
|
||||
/* f02dfc0: c446000c */ lwc1 $f6,0xc($v0)
|
||||
/* f02dfc4: c44a0010 */ lwc1 $f10,0x10($v0)
|
||||
/* f02dfc8: 46802020 */ cvt.s.w $f0,$f4
|
||||
/* f02dfcc: 46003200 */ add.s $f8,$f6,$f0
|
||||
/* f02dfd0: 46005400 */ add.s $f16,$f10,$f0
|
||||
/* f02dfd4: e448000c */ swc1 $f8,0xc($v0)
|
||||
/* f02dfd8: e4500010 */ swc1 $f16,0x10($v0)
|
||||
.L0f02dfdc:
|
||||
/* f02dfdc: 8fbf001c */ lw $ra,0x1c($sp)
|
||||
.L0f02dfe0:
|
||||
/* f02dfe0: 8fb00018 */ lw $s0,0x18($sp)
|
||||
/* f02dfe4: 27bd0048 */ addiu $sp,$sp,0x48
|
||||
/* f02dfe8: 03e00008 */ jr $ra
|
||||
/* f02dfec: 00000000 */ nop
|
||||
);
|
||||
/**
|
||||
* Tweak the head's Y offset to suit the body.
|
||||
*
|
||||
* By default, heads and their matching bodies align perfectly and don't need
|
||||
* any tweaking. This function is used in multiplier where players can put any
|
||||
* heads on any bodies.
|
||||
*/
|
||||
void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s32 bodynum)
|
||||
{
|
||||
struct modelnode *node;
|
||||
struct modelnode *prev;
|
||||
Gfx *gdl;
|
||||
s32 offset;
|
||||
struct modelrodata_bbox *bbox;
|
||||
s32 i;
|
||||
|
||||
if ((s16)(*(s32 *)&headfiledata->type) == MODELTYPE_HEAD) {
|
||||
if (g_HeadsAndBodies[headnum].type == g_HeadsAndBodies[bodynum].type) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (g_HeadsAndBodies[headnum].type) {
|
||||
default:
|
||||
case HEADBODYTYPE_FEMALE:
|
||||
offset = 0;
|
||||
break;
|
||||
case HEADBODYTYPE_MAIAN:
|
||||
offset = 0;
|
||||
break;
|
||||
case HEADBODYTYPE_DEFAULT:
|
||||
offset = -35;
|
||||
break;
|
||||
case HEADBODYTYPE_MRBLONDE:
|
||||
offset = 0;
|
||||
break;
|
||||
case HEADBODYTYPE_CASS:
|
||||
offset = -20;
|
||||
break;
|
||||
case HEADBODYTYPE_FEMALEGUARD:
|
||||
offset = -40;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (g_HeadsAndBodies[bodynum].type) {
|
||||
case HEADBODYTYPE_FEMALE:
|
||||
break;
|
||||
case HEADBODYTYPE_MAIAN:
|
||||
offset -= 30;
|
||||
break;
|
||||
case HEADBODYTYPE_DEFAULT:
|
||||
offset += 35;
|
||||
break;
|
||||
case HEADBODYTYPE_MRBLONDE:
|
||||
break;
|
||||
case HEADBODYTYPE_CASS:
|
||||
offset += 20;
|
||||
break;
|
||||
case HEADBODYTYPE_FEMALEGUARD:
|
||||
offset += 40;
|
||||
break;
|
||||
}
|
||||
|
||||
if (g_HeadsAndBodies[bodynum].type == HEADBODYTYPE_FEMALE) {
|
||||
if (g_HeadsAndBodies[headnum].type == HEADBODYTYPE_DEFAULT
|
||||
|| g_HeadsAndBodies[headnum].type == HEADBODYTYPE_MRBLONDE) {
|
||||
offset -= 10;
|
||||
} else if (g_HeadsAndBodies[headnum].type == HEADBODYTYPE_CASS
|
||||
|| g_HeadsAndBodies[headnum].type == HEADBODYTYPE_FEMALEGUARD) {
|
||||
offset -= 5;
|
||||
}
|
||||
} else if (g_HeadsAndBodies[bodynum].type == HEADBODYTYPE_CASS
|
||||
&& (g_HeadsAndBodies[headnum].type == HEADBODYTYPE_DEFAULT
|
||||
|| g_HeadsAndBodies[headnum].type == HEADBODYTYPE_MRBLONDE)) {
|
||||
offset -= 5;
|
||||
}
|
||||
|
||||
// Apply the offset
|
||||
if (offset != 0) {
|
||||
node = NULL;
|
||||
|
||||
do {
|
||||
prev = node;
|
||||
|
||||
modelIterateDisplayLists(headfiledata, &node, &gdl);
|
||||
|
||||
if (node && node != prev && node->type == MODELNODETYPE_DL) {
|
||||
struct modelrodata_dl *rodata = &node->rodata->dl;
|
||||
|
||||
for (i = 0; i < rodata->pcount; i++) {
|
||||
rodata->ptable[i].unk02 += offset;
|
||||
}
|
||||
}
|
||||
} while (node);
|
||||
|
||||
bbox = func0f06896c(headfiledata);
|
||||
|
||||
if (bbox != NULL) {
|
||||
bbox->ymin += offset;
|
||||
bbox->ymax += offset;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2103,7 +2103,7 @@ glabel var7f1ad5b4
|
||||
/* f0b9148: ac206680 */ sw $zero,%lo(g_FileInfo)($at)
|
||||
/* f0b914c: 00402025 */ or $a0,$v0,$zero
|
||||
/* f0b9150: 8fa50064 */ lw $a1,0x64($sp)
|
||||
/* f0b9154: 0fc0b76f */ jal func0f02ddbc
|
||||
/* f0b9154: 0fc0b76f */ jal bodyCalculateHeadOffset
|
||||
/* f0b9158: 8fa60068 */ lw $a2,0x68($sp)
|
||||
/* f0b915c: 10000017 */ b .L0f0b91bc
|
||||
/* f0b9160: 8fae005c */ lw $t6,0x5c($sp)
|
||||
@@ -2761,7 +2761,7 @@ glabel var7f1ad5b4
|
||||
/* f0b6e60: ac20af40 */ sw $zero,-0x50c0($at)
|
||||
/* f0b6e64: 00402025 */ or $a0,$v0,$zero
|
||||
/* f0b6e68: 8fa50064 */ lw $a1,0x64($sp)
|
||||
/* f0b6e6c: 0fc0b5be */ jal func0f02ddbc
|
||||
/* f0b6e6c: 0fc0b5be */ jal bodyCalculateHeadOffset
|
||||
/* f0b6e70: 8fa60068 */ lw $a2,0x68($sp)
|
||||
/* f0b6e74: 10000017 */ beqz $zero,.NB0f0b6ed4
|
||||
/* f0b6e78: 8fae005c */ lw $t6,0x5c($sp)
|
||||
|
||||
@@ -5406,7 +5406,7 @@ glabel var7f1b3c40pf
|
||||
/* f0f42f8: 8fa40040 */ lw $a0,0x40($sp)
|
||||
/* f0f42fc: 8e040058 */ lw $a0,0x58($s0)
|
||||
/* f0f4300: 8fa50400 */ lw $a1,0x400($sp)
|
||||
/* f0f4304: 0fc0b7b7 */ jal func0f02ddbc
|
||||
/* f0f4304: 0fc0b7b7 */ jal bodyCalculateHeadOffset
|
||||
/* f0f4308: 8fa60404 */ lw $a2,0x404($sp)
|
||||
/* f0f430c: 0c00898a */ jal modelCalculateRwDataLen
|
||||
/* f0f4310: 8e040058 */ lw $a0,0x58($s0)
|
||||
@@ -7008,7 +7008,7 @@ glabel var7f1b2948
|
||||
/* f0f3ba4: 8fa40040 */ lw $a0,0x40($sp)
|
||||
/* f0f3ba8: 8e040058 */ lw $a0,0x58($s0)
|
||||
/* f0f3bac: 8fa50400 */ lw $a1,0x400($sp)
|
||||
/* f0f3bb0: 0fc0b76f */ jal func0f02ddbc
|
||||
/* f0f3bb0: 0fc0b76f */ jal bodyCalculateHeadOffset
|
||||
/* f0f3bb4: 8fa60404 */ lw $a2,0x404($sp)
|
||||
/* f0f3bb8: 0c008b49 */ jal modelCalculateRwDataLen
|
||||
/* f0f3bbc: 8e040058 */ lw $a0,0x58($s0)
|
||||
@@ -8617,7 +8617,7 @@ glabel var7f1b2948
|
||||
/* f0f06e8: 8fa40044 */ lw $a0,0x44($sp)
|
||||
/* f0f06ec: 8e240058 */ lw $a0,0x58($s1)
|
||||
/* f0f06f0: 8fa50428 */ lw $a1,0x428($sp)
|
||||
/* f0f06f4: 0fc0b5be */ jal func0f02ddbc
|
||||
/* f0f06f4: 0fc0b5be */ jal bodyCalculateHeadOffset
|
||||
/* f0f06f8: 8fa6042c */ lw $a2,0x42c($sp)
|
||||
/* f0f06fc: 0c008f6f */ jal modelCalculateRwDataLen
|
||||
/* f0f0700: 8e240058 */ lw $a0,0x58($s1)
|
||||
|
||||
@@ -133,7 +133,7 @@ glabel func0f1a7560
|
||||
/* f1a75b8: afa00074 */ sw $zero,0x74($sp)
|
||||
/* f1a75bc: 02602025 */ or $a0,$s3,$zero
|
||||
/* f1a75c0: 27a50074 */ addiu $a1,$sp,0x74
|
||||
/* f1a75c4: 0c008c67 */ jal func0002319c
|
||||
/* f1a75c4: 0c008c67 */ jal modelIterateDisplayLists
|
||||
/* f1a75c8: 27a6006c */ addiu $a2,$sp,0x6c
|
||||
/* f1a75cc: 8fb6006c */ lw $s6,0x6c($sp)
|
||||
/* f1a75d0: 3c1700ff */ lui $s7,0xff
|
||||
@@ -165,7 +165,7 @@ glabel func0f1a7560
|
||||
/* f1a7634: 8fb10074 */ lw $s1,0x74($sp)
|
||||
/* f1a7638: 02602025 */ or $a0,$s3,$zero
|
||||
/* f1a763c: 27a50074 */ addiu $a1,$sp,0x74
|
||||
/* f1a7640: 0c008c67 */ jal func0002319c
|
||||
/* f1a7640: 0c008c67 */ jal modelIterateDisplayLists
|
||||
/* f1a7644: 27a6006c */ addiu $a2,$sp,0x6c
|
||||
/* f1a7648: 8fb6006c */ lw $s6,0x6c($sp)
|
||||
/* f1a764c: 02602025 */ or $a0,$s3,$zero
|
||||
|
||||
@@ -1043,6 +1043,13 @@
|
||||
#define HATTYPE_METAL 3
|
||||
#define HATTYPE_CLOTH 5
|
||||
|
||||
#define HEADBODYTYPE_DEFAULT 0
|
||||
#define HEADBODYTYPE_FEMALE 1
|
||||
#define HEADBODYTYPE_FEMALEGUARD 2
|
||||
#define HEADBODYTYPE_MAIAN 3
|
||||
#define HEADBODYTYPE_CASS 4
|
||||
#define HEADBODYTYPE_MRBLONDE 5
|
||||
|
||||
#define HEALTHSHOWMODE_HIDDEN 0 // health bar not visible
|
||||
#define HEALTHSHOWMODE_OPENING 1 // height expanding
|
||||
#define HEALTHSHOWMODE_PREVIOUS 2 // full height, showing previous health amount
|
||||
|
||||
@@ -13,6 +13,6 @@ s32 func0f02d3f8(void);
|
||||
s32 bodyChooseHead(s32 bodynum);
|
||||
void chrUnpack(s32 stagenum, struct packedchr *packed, s32 cmdindex);
|
||||
struct prop *propAllocateEyespy(struct pad *pad, s16 room);
|
||||
void func0f02ddbc(struct modelfiledata *headfiledata, s32 headnum, s32 bodynum);
|
||||
void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s32 bodynum);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -78,7 +78,7 @@ s32 func0f068760(struct defaultobj *obj);
|
||||
s32 func0f0687b8(struct defaultobj *obj);
|
||||
struct modelnode *func0f0687e4(struct model *model);
|
||||
u32 func0f0688f4(void);
|
||||
f32 *func0f06896c(void *modelfiledata);
|
||||
struct modelrodata_bbox *func0f06896c(struct modelfiledata *filedata);
|
||||
u32 func0f068998(void);
|
||||
struct model08thing *func0f068aa8(struct model *model);
|
||||
u32 func0f068ad4(void);
|
||||
|
||||
@@ -99,7 +99,7 @@ void modelInitRwData(struct model *model, struct modelnode *node);
|
||||
void modelInit(struct model *model, struct modelfiledata *filedata, union modelrwdata **rwdatas, bool resetanim);
|
||||
void animInit(struct anim *anim);
|
||||
u32 func00023108(void);
|
||||
void func0002319c(struct modelfiledata *filedata, struct modelfiledata *filedataptr, Gfx **gdlptr);
|
||||
void modelIterateDisplayLists(struct modelfiledata *filedata, struct modelnode **nodeptr, Gfx **gdlptr);
|
||||
void modelNodeReplaceGdl(u32 arg0, struct modelnode *node, Gfx *find, Gfx *replacement);
|
||||
|
||||
#endif
|
||||
|
||||
+12
-3
@@ -642,11 +642,20 @@ struct modelrodata_headspot { // type 0x17
|
||||
u16 rwdataindex;
|
||||
};
|
||||
|
||||
struct ptableentry {
|
||||
s16 unk00;
|
||||
s16 unk02;
|
||||
s16 unk04;
|
||||
s16 unk06;
|
||||
s16 unk08;
|
||||
s16 unk0a;
|
||||
};
|
||||
|
||||
struct modelrodata_dl { // type 0x18
|
||||
/*0x00*/ Gfx *primary;
|
||||
/*0x04*/ Gfx *secondary;
|
||||
/*0x08*/ u32 *colourtable;
|
||||
/*0x0c*/ struct coord *ptable;
|
||||
/*0x0c*/ struct ptableentry *ptable;
|
||||
/*0x10*/ s16 pcount;
|
||||
/*0x12*/ s16 mcount;
|
||||
/*0x14*/ u16 rwdataindex;
|
||||
@@ -760,7 +769,7 @@ struct modelrwdata_headspot { // type 0x17
|
||||
};
|
||||
|
||||
struct modelrwdata_dl { // type 0x18
|
||||
struct coord *ptable;
|
||||
struct ptableentry *ptable;
|
||||
Gfx *gdl;
|
||||
u32 *unk08;
|
||||
};
|
||||
@@ -3249,7 +3258,7 @@ struct headorbody {
|
||||
/*0x00*/ u16 ismale : 1;
|
||||
/*0x00*/ u16 unk00_01 : 1;
|
||||
/*0x00*/ u16 canvaryheight : 1;
|
||||
/*0x00*/ u16 unk00_03 : 3;
|
||||
/*0x00*/ u16 type : 3;
|
||||
/*0x00*/ u16 height : 8;
|
||||
/*0x02*/ u16 filenum;
|
||||
/*0x04*/ f32 scale;
|
||||
|
||||
+18
-6
@@ -6599,9 +6599,21 @@ glabel func00023108
|
||||
/* 23198: 00000000 */ nop
|
||||
);
|
||||
|
||||
void func0002319c(struct modelfiledata *filedata, struct modelfiledata *filedataptr, Gfx **gdlptr)
|
||||
/**
|
||||
* This function can be called repeatedly to iterate a model's display lists.
|
||||
*
|
||||
* On the first call, the value passed as nodeptr should point to a NULL value.
|
||||
* Each time the function is called, it will update *gdlptr to point to the next
|
||||
* display list, and will update *nodeptr to point to the current node. On
|
||||
* subsequent calls, the same values should be passed as nodeptr and gdlptr so
|
||||
* the function can continue correctly.
|
||||
*
|
||||
* Note that some node types support multiple display lists, so the function
|
||||
* may return the same node while it iterates the display lists for that node.
|
||||
*/
|
||||
void modelIterateDisplayLists(struct modelfiledata *filedata, struct modelnode **nodeptr, Gfx **gdlptr)
|
||||
{
|
||||
struct modelnode *node = filedataptr->rootnode;
|
||||
struct modelnode *node = *nodeptr;
|
||||
union modelrodata *rodata;
|
||||
Gfx *gdl = NULL;
|
||||
|
||||
@@ -6616,7 +6628,7 @@ void func0002319c(struct modelfiledata *filedata, struct modelfiledata *filedata
|
||||
case MODELNODETYPE_GUNDL:
|
||||
rodata = node->rodata;
|
||||
|
||||
if (node != filedataptr->rootnode) {
|
||||
if (node != *nodeptr) {
|
||||
gdl = rodata->gundl.primary;
|
||||
} else if (rodata->gundl.secondary != *gdlptr) {
|
||||
gdl = rodata->gundl.secondary;
|
||||
@@ -6625,7 +6637,7 @@ void func0002319c(struct modelfiledata *filedata, struct modelfiledata *filedata
|
||||
case MODELNODETYPE_DL:
|
||||
rodata = node->rodata;
|
||||
|
||||
if (node != filedataptr->rootnode) {
|
||||
if (node != *nodeptr) {
|
||||
gdl = rodata->dl.primary;
|
||||
} else if (rodata->dl.secondary != *gdlptr) {
|
||||
gdl = rodata->dl.secondary;
|
||||
@@ -6634,7 +6646,7 @@ void func0002319c(struct modelfiledata *filedata, struct modelfiledata *filedata
|
||||
case MODELNODETYPE_16:
|
||||
rodata = node->rodata;
|
||||
|
||||
if (node != filedataptr->rootnode) {
|
||||
if (node != *nodeptr) {
|
||||
gdl = rodata->type16.unk08;
|
||||
}
|
||||
break;
|
||||
@@ -6670,7 +6682,7 @@ void func0002319c(struct modelfiledata *filedata, struct modelfiledata *filedata
|
||||
}
|
||||
|
||||
*gdlptr = gdl;
|
||||
filedataptr->rootnode = node;
|
||||
*nodeptr = node;
|
||||
}
|
||||
|
||||
void modelNodeReplaceGdl(u32 arg0, struct modelnode *node, Gfx *find, Gfx *replacement)
|
||||
|
||||
@@ -35,9 +35,6 @@ u32 var8009c374;
|
||||
u32 var8009c378;
|
||||
u32 var8009c37c;
|
||||
u32 var8009c380;
|
||||
u32 var8009c384;
|
||||
u32 var8009c388;
|
||||
u32 var8009c38c;
|
||||
|
||||
u32 var8005f150 = 0x00000000;
|
||||
u32 var8005f154 = 0x00002710;
|
||||
|
||||
Reference in New Issue
Block a user