From fa855a536371ac5643e6d504cfd76d4e8dc81263 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 23 May 2025 19:57:58 +0200 Subject: [PATCH] Enums --- include/d/d_player_mdl.h | 514 ++++++++++++++++++++++++++++++++++++++- src/d/d_player_act.cpp | 4 +- src/d/d_player_mdl.cpp | 49 ++-- 3 files changed, 539 insertions(+), 28 deletions(-) diff --git a/include/d/d_player_mdl.h b/include/d/d_player_mdl.h index 62a86e2b..c52ab8f6 100644 --- a/include/d/d_player_mdl.h +++ b/include/d/d_player_mdl.h @@ -23,7 +23,7 @@ class daPlayerModelBase_c; class daPlBaseScnObjCallback_c : public dScnCallback_c { public: - daPlBaseScnObjCallback_c(dAcObjBase_c *b) : dScnCallback_c(b), field_0x0C(b) {} + daPlBaseScnObjCallback_c(dAcObjBase_c *b) : dScnCallback_c(b), mpPlayer(b) {} /* vt 0x10 */ virtual void ExecCallback_CALC_MAT(nw4r::g3d::ScnObj::Timing, nw4r::g3d::ScnObj *, u32, void *) override; @@ -31,7 +31,7 @@ public: /* 0x18 */ virtual void ExecCallback_DRAW_OPA(nw4r::g3d::ScnObj::Timing, nw4r::g3d::ScnObj *, u32, void *) override; private: - /* 0x0C */ dAcObjBase_c *field_0x0C; + /* 0x0C */ dAcObjBase_c *mpPlayer; }; class daPlBaseMdlCallback_c : public m3d::mdl_c::mdlCallback_c { @@ -170,6 +170,516 @@ public: TUNIC_SILENT, }; + enum PlayerMainModelFace_e { + PLAYER_FACE_DEFAULT = 0, + PLAYER_FACEMABA01 = 1, + PLAYER_FACE_M = 2, + PLAYER_FACE_HA = 3, + PLAYER_FACE_CUT = 4, + PLAYER_FACE_CUTAROUND = 5, + PLAYER_FACE_DAMAGE = 6, + PLAYER_FACE_DAMAGELARGE = 7, + PLAYER_FACE_DIE = 8, + PLAYER_FACE_DIELARGEDAMAGE = 9, + PLAYER_FACE_DIEMAGMA = 10, + PLAYER_FACE_PAIN = 11, + PLAYER_FACE_WA = 12, + PLAYER_FACE_DRINKST = 13, + PLAYER_FACE_DRINK = 14, + PLAYER_FACE_DRINKED = 15, + PLAYER_FACE_BREATH = 16, + PLAYER_FACE_CLOSE = 17, + PLAYER_FACE_ENTRANCE = 18, + PLAYER_FACE_BINOUT = 19, + PLAYER_FACE_GETBIGWAIT = 20, + PLAYER_FACE_GETAWAITNICE = 21, + PLAYER_FACE_WAITLOOKROUND = 22, + PLAYER_FACE_DANGER = 23, + PLAYER_FACE_BINSHIELD = 24, + PLAYER_FACE_SWIMDIEA = 25, + PLAYER_FACE_WAITSERVICEA = 26, + PLAYER_FACE_WAITSERVICEHOTA = 27, + PLAYER_FACE_BOXOP = 28, + PLAYER_FACE_NOTICE = 29, + PLAYER_FACE_SWIMP = 30, + PLAYER_FACE_BEDSLEEP = 31, + PLAYER_FACE_BEDAWAKE = 32, + PLAYER_FACE_SWORDPULLST = 33, + PLAYER_FACE_SWORDPULLWAIT = 34, + PLAYER_FACE_SWORDPULL = 35, + PLAYER_FACE_SWORDSIRENST = 36, + PLAYER_FACE_SWORDSIRENRAISE = 37, + PLAYER_FACE_SWORDSIRENSTICK = 38, + PLAYER_FACE_SWORDSIRENAFTER = 39, + PLAYER_FACE_BIRD_REACH = 40, + PLAYER_FACE_BIRD_GETWAIT = 41, + PLAYER_FACE_DIETRUCK = 42, + PLAYER_FACE_BIRD_FESTIVALSTART = 43, + PLAYER_FACE_GETSURPRISE = 44, + PLAYER_FACE_ASURACUT = 45, + PLAYER_FACE_ASURACUTST = 46, + PLAYER_FACE_ASURACUTED = 47, + PLAYER_FACE_CANNONWAIT = 48, + PLAYER_FACE_KRAKENAPPEARANCE = 49, + PLAYER_FACE_GETFLOWER = 50, + PLAYER_FACE_HARP = 51, + PLAYER_FACE_SITWAITSERVICEA = 52, + PLAYER_FACE_LIGHTNING = 53, + PLAYER_FACE_LASTATTACK = 54, + PLAYER_FACE_BIRD_CALL = 55, + PLAYER_FACE_NONE = 56, + + PLAYER_FACE_MAX = 57, + }; + + enum PlayerMainAnim_e { + PLAYER_ANIM_ATRFW = 0, + PLAYER_ANIM_ATRFW_R = 1, + PLAYER_ANIM_ATRFD = 2, + PLAYER_ANIM_ATRFD_R = 3, + PLAYER_ANIM_ATRBW = 4, + PLAYER_ANIM_ATRBW_R = 5, + PLAYER_ANIM_ATRBD = 6, + PLAYER_ANIM_ATRBD_R = 7, + PLAYER_ANIM_ATRSWL = 8, + PLAYER_ANIM_ATRSDL = 9, + PLAYER_ANIM_ATRSWR = 10, + PLAYER_ANIM_ATRSDR = 11, + PLAYER_ANIM_ATSWL = 12, + PLAYER_ANIM_ATSDL = 13, + PLAYER_ANIM_ATSWR = 14, + PLAYER_ANIM_ATSDR = 15, + PLAYER_ANIM_ATSWL_RIGHT = 16, + PLAYER_ANIM_ATSDL_RIGHT = 17, + PLAYER_ANIM_ATL = 18, + PLAYER_ANIM_ATR = 19, + PLAYER_ANIM_DASHA = 20, + PLAYER_ANIM_DASHS = 21, + PLAYER_ANIM_ATRBWH = 22, + PLAYER_ANIM_ATBW = 23, + PLAYER_ANIM_ATBD = 24, + PLAYER_ANIM_WALKH = 25, + PLAYER_ANIM_WAITS = 26, + PLAYER_ANIM_WALKS = 27, + PLAYER_ANIM_STEPL = 28, + PLAYER_ANIM_STEPR = 29, + PLAYER_ANIM_ATSJLST = 30, + PLAYER_ANIM_ATSJLED = 31, + PLAYER_ANIM_ATSJRST = 32, + PLAYER_ANIM_ATSJRED = 33, + PLAYER_ANIM_ATSJFST = 34, + PLAYER_ANIM_ATSJFED = 35, + PLAYER_ANIM_ROLLBST = 36, + PLAYER_ANIM_ROLLBED = 37, + PLAYER_ANIM_WAITB = 38, + PLAYER_ANIM_WAITBTOA = 39, + PLAYER_ANIM_SJMPST = 40, + PLAYER_ANIM_SJMPED = 41, + PLAYER_ANIM_ROLLF = 42, + PLAYER_ANIM_ROLLFMIS = 43, + PLAYER_ANIM_JUMPST = 44, + PLAYER_ANIM_JUMPSED = 45, + PLAYER_ANIM_VJMP = 46, + PLAYER_ANIM_VJMPCHA = 47, + PLAYER_ANIM_VJMPCHB = 48, + PLAYER_ANIM_VJMPCL = 49, + PLAYER_ANIM_HANGL = 50, + PLAYER_ANIM_HANGR = 51, + PLAYER_ANIM_HANG = 52, + PLAYER_ANIM_CLIMBHANG = 53, + PLAYER_ANIM_CLIMBSLIDEL = 54, + PLAYER_ANIM_CLIMBSLIDER = 55, + PLAYER_ANIM_CLIMBHANGMISS = 56, + PLAYER_ANIM_CLIMBSTRUGGLE = 57, + PLAYER_ANIM_CLIMBIVYHANG = 58, + PLAYER_ANIM_CLIMBIVYL = 59, + PLAYER_ANIM_CLIMBIVYR = 60, + PLAYER_ANIM_CLIMBIVYL_ST = 61, + PLAYER_ANIM_CLIMBIVYR_ST = 62, + PLAYER_ANIM_CLIMBIVYSLIDEL = 63, + PLAYER_ANIM_CLIMBIVYSLIDER = 64, + PLAYER_ANIM_CLIMBIVYSLANTLU_RD = 65, + PLAYER_ANIM_CLIMBIVYSLIDERU_LD = 66, + PLAYER_ANIM_LADUPST = 67, + PLAYER_ANIM_LADUPEDL = 68, + PLAYER_ANIM_LADUPEDR = 69, + PLAYER_ANIM_LADDWST = 70, + PLAYER_ANIM_LADDWEDL = 71, + PLAYER_ANIM_LADDWEDR = 72, + PLAYER_ANIM_LADRTOL = 73, + PLAYER_ANIM_LADLTOR = 74, + PLAYER_ANIM_LADJUMPUPST = 75, + PLAYER_ANIM_LADJUMPDOWNST = 76, + PLAYER_ANIM_LADJUMPUPED = 77, + PLAYER_ANIM_LADJUMPDOWNED = 78, + PLAYER_ANIM_CUTT = 79, + PLAYER_ANIM_CUTTB = 80, + PLAYER_ANIM_CUTTL = 81, + PLAYER_ANIM_CUTTLB = 82, + PLAYER_ANIM_CUTJST = 83, + PLAYER_ANIM_CUTJED = 84, + PLAYER_ANIM_DAMF = 85, + PLAYER_ANIM_DAMB = 86, + PLAYER_ANIM_DAML = 87, + PLAYER_ANIM_DAMR = 88, + PLAYER_ANIM_DAMAGEMFRONT = 89, + PLAYER_ANIM_DAMAGEMBACK = 90, + PLAYER_ANIM_DAMAGEMLEFT = 91, + PLAYER_ANIM_DAMAGEMRIGHT = 92, + PLAYER_ANIM_DAMFF = 93, + PLAYER_ANIM_DAMFB = 94, + PLAYER_ANIM_DAMFL = 95, + PLAYER_ANIM_DAMFR = 96, + PLAYER_ANIM_DAMFFUP = 97, + PLAYER_ANIM_DAMFBUP = 98, + PLAYER_ANIM_DAMFLUP = 99, + PLAYER_ANIM_DAMFRUP = 100, + PLAYER_ANIM_DAMAGELFRONTSLIDE = 101, + PLAYER_ANIM_DAMAGELBACKSLIDE = 102, + PLAYER_ANIM_DAMAGELLEFTSLIDE = 103, + PLAYER_ANIM_DAMAGELRIGHTSLIDE = 104, + PLAYER_ANIM_DAM = 105, + PLAYER_ANIM_LANDDAMA = 106, + PLAYER_ANIM_LANDDAMAST = 107, + PLAYER_ANIM_CUTST = 108, + PLAYER_ANIM_ATDEFNG = 109, + PLAYER_ANIM_DIE = 110, + PLAYER_ANIM_DIELARGEDAMAGEFRONT = 111, + PLAYER_ANIM_DIELARGEDAMAGEBACK = 112, + PLAYER_ANIM_DIELARGEDAMAGELEFT = 113, + PLAYER_ANIM_DIELARGEDAMAGERIGHT = 114, + PLAYER_ANIM_SWIMWAIT = 115, + PLAYER_ANIM_SWIMINGA = 116, + PLAYER_ANIM_SWIMP = 117, + PLAYER_ANIM_ATSSWL = 118, + PLAYER_ANIM_ATSSWR = 119, + PLAYER_ANIM_ATBSW = 120, + PLAYER_ANIM_SWIMDIVE = 121, + PLAYER_ANIM_SWIMINGST = 122, + PLAYER_ANIM_SWIMINGB = 123, + PLAYER_ANIM_SWIMINGC = 124, + PLAYER_ANIM_SWIMATTACKMISS = 125, + PLAYER_ANIM_DAMSWF = 126, + PLAYER_ANIM_DAMSWB = 127, + PLAYER_ANIM_DAMSWL = 128, + PLAYER_ANIM_DAMSWR = 129, + PLAYER_ANIM_DAMSWW = 130, + PLAYER_ANIM_SWIMDIEA = 131, + PLAYER_ANIM_SWIMDIEP = 132, + PLAYER_ANIM_DIEMAGMA = 133, + PLAYER_ANIM_SLIDEF = 134, + PLAYER_ANIM_SLIDEB = 135, + PLAYER_ANIM_SLIDEFED = 136, + PLAYER_ANIM_SLIDEBED = 137, + PLAYER_ANIM_HSJMPL = 138, + PLAYER_ANIM_HSJMPR = 139, + PLAYER_ANIM_HSSHOOT = 140, + PLAYER_ANIM_HSHANGEDL = 141, + PLAYER_ANIM_HSHANGEDR = 142, + PLAYER_ANIM_HSHANGL = 143, + PLAYER_ANIM_HSHANGR = 144, + PLAYER_ANIM_HSHANGWAITL = 145, + PLAYER_ANIM_HSHANGWAITR = 146, + PLAYER_ANIM_HSHANGSHOOTL = 147, + PLAYER_ANIM_HSHANGSHOOTR = 148, + PLAYER_ANIM_HSWALLEDL = 149, + PLAYER_ANIM_HSWALLEDR = 150, + PLAYER_ANIM_HSWALLL = 151, + PLAYER_ANIM_HSWALLR = 152, + PLAYER_ANIM_HSWALLWAITL = 153, + PLAYER_ANIM_HSWALLWAITR = 154, + PLAYER_ANIM_HSWALLSHOOTL = 155, + PLAYER_ANIM_HSWALLSHOOTR = 156, + PLAYER_ANIM_LIE = 157, + PLAYER_ANIM_LIEF = 158, + PLAYER_ANIM_WAITST = 159, + PLAYER_ANIM_WAITSTRUGGLEDAMAGE = 160, + PLAYER_ANIM_WAITPP = 161, + PLAYER_ANIM_PUSHW = 162, + PLAYER_ANIM_PULLW = 163, + PLAYER_ANIM_JUMPBST = 164, + PLAYER_ANIM_JUMPB = 165, + PLAYER_ANIM_WAITD = 166, + PLAYER_ANIM_WAITATOD = 167, + PLAYER_ANIM_WAITSERVICEA = 168, + PLAYER_ANIM_WAITSERVICEHOTA = 169, + PLAYER_ANIM_DASHUPL = 170, + PLAYER_ANIM_DASHUPR = 171, + PLAYER_ANIM_CLIMBJUMPUST = 172, + PLAYER_ANIM_CLIMBJUMPDST = 173, + PLAYER_ANIM_CLIMBJUMPLST = 174, + PLAYER_ANIM_CLIMBJUMPRST = 175, + PLAYER_ANIM_CLIMBJUMPUED = 176, + PLAYER_ANIM_CLIMBJUMPDED = 177, + PLAYER_ANIM_CLIMBJUMPLED = 178, + PLAYER_ANIM_CLIMBJUMPRED = 179, + PLAYER_ANIM_HANGJUMPLST = 180, + PLAYER_ANIM_HANGJUMPRST = 181, + PLAYER_ANIM_HANGJUMPLED = 182, + PLAYER_ANIM_HANGJUMPRED = 183, + PLAYER_ANIM_DOORKNOBPULL = 184, + PLAYER_ANIM_DOORKNOBPUSH = 185, + PLAYER_ANIM_DOORKNOBPULLLOCK = 186, + PLAYER_ANIM_DOORKNOBPUSHLOCK = 187, + PLAYER_ANIM_DOOROPD = 188, + PLAYER_ANIM_DASHB = 189, + PLAYER_ANIM_MGDIG = 190, + PLAYER_ANIM_MPCUTU = 191, + PLAYER_ANIM_MPCUTU_RE = 192, + PLAYER_ANIM_MPCUTLU = 193, + PLAYER_ANIM_MPCUTLU_RE = 194, + PLAYER_ANIM_MPCUTL = 195, + PLAYER_ANIM_MPCUTL_RE = 196, + PLAYER_ANIM_MPCUTLD = 197, + PLAYER_ANIM_MPCUTLD_RE = 198, + PLAYER_ANIM_MPCUTRD = 199, + PLAYER_ANIM_MPCUTRD_RE = 200, + PLAYER_ANIM_MPCUTR = 201, + PLAYER_ANIM_MPCUTR_RE = 202, + PLAYER_ANIM_MPCUTRU = 203, + PLAYER_ANIM_MPCUTRU_RE = 204, + PLAYER_ANIM_MPCUTD_RIGHT = 205, + PLAYER_ANIM_MPCUTD_RIGHT_RE = 206, + PLAYER_ANIM_MPCUTD_LEFT = 207, + PLAYER_ANIM_MPCUTD_LEFT_RE = 208, + PLAYER_ANIM_CUTPUSH = 209, + PLAYER_ANIM_CUTPUSH_RE = 210, + PLAYER_ANIM_ENEMYGUARDJUST = 211, + PLAYER_ANIM_LIFTB_BEFORE = 212, + PLAYER_ANIM_LIFTM_BEFORE = 213, + PLAYER_ANIM_LIFTB = 214, + PLAYER_ANIM_LIFTS = 215, + PLAYER_ANIM_LIFTM = 216, + PLAYER_ANIM_LIFTL = 217, + PLAYER_ANIM_THROWBU = 218, + PLAYER_ANIM_THROWSU = 219, + PLAYER_ANIM_THROWMU = 220, + PLAYER_ANIM_THROWLU = 221, + PLAYER_ANIM_THROWBD = 222, + PLAYER_ANIM_THROWSD = 223, + PLAYER_ANIM_MPGUARDSHIELD = 224, + PLAYER_ANIM_MPGUARDSHIELD_IMPACT = 225, + PLAYER_ANIM_MPGUARDSHIELD_NORMAL = 226, + PLAYER_ANIM_VJMPCHA_2 = 227, + PLAYER_ANIM_ROPEHOLDWAIT = 228, + PLAYER_ANIM_ROPECLIMBL = 229, + PLAYER_ANIM_ROPEHOLDWAIT_2 = 230, + PLAYER_ANIM_ROPEPULL = 231, + PLAYER_ANIM_ROPETIGHTHOLD = 232, + PLAYER_ANIM_ROPEFRONT = 233, + PLAYER_ANIM_ROPEBACK = 234, + PLAYER_ANIM_ROPESTRUGGLE = 235, + PLAYER_ANIM_DIVEST = 236, + PLAYER_ANIM_DIVE = 237, + PLAYER_ANIM_STOLELAND = 238, + PLAYER_ANIM_DIVEDROP = 239, + PLAYER_ANIM_FLOAT = 240, + PLAYER_ANIM_FLOATAWAY = 241, + PLAYER_ANIM_DIVETOFLOAT = 242, + PLAYER_ANIM_ROCKETBEETLE_WAIT = 243, + PLAYER_ANIM_ROCKETBEETLE_SHOOT = 244, + PLAYER_ANIM_ROCKETBEETLE_RESET = 245, + PLAYER_ANIM_ROCKETBEETLE_BACK = 246, + PLAYER_ANIM_WHIPU = 247, + PLAYER_ANIM_WHIPLU = 248, + PLAYER_ANIM_WHIPL = 249, + PLAYER_ANIM_WHIPLD = 250, + PLAYER_ANIM_WHIPRD = 251, + PLAYER_ANIM_WHIPR = 252, + PLAYER_ANIM_WHIPRU = 253, + PLAYER_ANIM_WHIPBACKRD = 254, + PLAYER_ANIM_WHIPBACKR = 255, + PLAYER_ANIM_WHIPBACKRU = 256, + PLAYER_ANIM_WHIPBACKU = 257, + PLAYER_ANIM_WHIPBACKLU = 258, + PLAYER_ANIM_WHIPBACKL = 259, + PLAYER_ANIM_WHIPBACKLD = 260, + PLAYER_ANIM_TURNBACK = 261, + PLAYER_ANIM_ATLTOR = 262, + PLAYER_ANIM_ATRTOL = 263, + PLAYER_ANIM_CHUCHUSTRUGGLE = 264, + PLAYER_ANIM_CHUCHUSTRUGGLE_BIG = 265, + PLAYER_ANIM_CHUCHUSTRUGGLE_ACT = 266, + PLAYER_ANIM_CHUCHUSTRUGGLE_ESCAPE = 267, + PLAYER_ANIM_SURPRISE = 268, + PLAYER_ANIM_DANGER = 269, + PLAYER_ANIM_ROCKRIDE = 270, + PLAYER_ANIM_NOTICE = 271, + PLAYER_ANIM_WAITINSECT = 272, + PLAYER_ANIM_NUMBA = 273, + PLAYER_ANIM_NUMBB = 274, + PLAYER_ANIM_DAMFEF = 275, + PLAYER_ANIM_DAMFEB = 276, + PLAYER_ANIM_DAMFEL = 277, + PLAYER_ANIM_DAMFER = 278, + PLAYER_ANIM_GETA = 279, + PLAYER_ANIM_GETAWAIT = 280, + PLAYER_ANIM_GETBIG = 281, + PLAYER_ANIM_GETBIGWAIT = 282, + PLAYER_ANIM_BOXOPSMALL = 283, + PLAYER_ANIM_BOXOP = 284, + PLAYER_ANIM_CUTUST = 285, + PLAYER_ANIM_CUTU = 286, + PLAYER_ANIM_CUTUED = 287, + PLAYER_ANIM_CUTUNG = 288, + PLAYER_ANIM_WAITLOOKROUND = 289, + PLAYER_ANIM_ENTRANCE = 290, + PLAYER_ANIM_MPPOSEPOWER = 291, + PLAYER_ANIM_MPPOSEPOWERL = 292, + PLAYER_ANIM_BINSWINGS = 293, + PLAYER_ANIM_BINSWINGU = 294, + PLAYER_ANIM_BINOUT = 295, + PLAYER_ANIM_DRIFT = 296, + PLAYER_ANIM_SWIMDIEAREVIVE = 297, + PLAYER_ANIM_MGLIEFREVIVE = 298, + PLAYER_ANIM_CATCHL = 299, + PLAYER_ANIM_CATCHR = 300, + PLAYER_ANIM_BATTLEREADY = 301, + PLAYER_ANIM_ROLLJUMP = 302, + PLAYER_ANIM_TANSUOPEN = 303, + PLAYER_ANIM_TANSUCLOSE = 304, + PLAYER_ANIM_BEDSLEEPL = 305, + PLAYER_ANIM_BEDSLEEP = 306, + PLAYER_ANIM_BEDAWAKE = 307, + PLAYER_ANIM_BIRD_GLIDE = 308, + PLAYER_ANIM_BIRD_GLIDEAROUND = 309, + PLAYER_ANIM_BIRD_REACH = 310, + PLAYER_ANIM_BIRD_GETWAIT = 311, + PLAYER_ANIM_BIRD_ACCEL = 312, + PLAYER_ANIM_BIRD_DAMAGE = 313, + PLAYER_ANIM_BIRD_DAMAGESMALL = 314, + PLAYER_ANIM_BIRD_DAMAGETORNADO = 315, + PLAYER_ANIM_BIRD_CALL = 316, + PLAYER_ANIM_SWORDPULLST = 317, + PLAYER_ANIM_SWORDPULLWAIT = 318, + PLAYER_ANIM_SWORDPULL = 319, + PLAYER_ANIM_SWORDSIRENST = 320, + PLAYER_ANIM_SWORDSIRENSTWAIT = 321, + PLAYER_ANIM_SWORDSIRENRAISE = 322, + PLAYER_ANIM_SWORDSIRENRAISEWAIT = 323, + PLAYER_ANIM_SWORDSIRENSTICK = 324, + PLAYER_ANIM_SWORDSIRENAFTER = 325, + PLAYER_ANIM_SWITCHDIAL_ST = 326, + PLAYER_ANIM_SWITCHDIAL_STL = 327, + PLAYER_ANIM_SWITCHDIAL_LTOR = 328, + PLAYER_ANIM_SWITCHDIAL_PUSH = 329, + PLAYER_ANIM_TRUCKLTOR = 330, + PLAYER_ANIM_TRUCKFRONTTOBACK = 331, + PLAYER_ANIM_TRUCKJUMPST = 332, + PLAYER_ANIM_TRUCKJUMP = 333, + PLAYER_ANIM_TRUCKJUMPEND = 334, + PLAYER_ANIM_TRUCKBRAKE = 335, + PLAYER_ANIM_TRUCKIN = 336, + PLAYER_ANIM_TRUCKOUT = 337, + PLAYER_ANIM_DIETRUCK = 338, + PLAYER_ANIM_DIETRUCKREVIVE = 339, + PLAYER_ANIM_MGDIGIN = 340, + PLAYER_ANIM_MGDIGOUT = 341, + PLAYER_ANIM_MGLIEF_L = 342, + PLAYER_ANIM_MGLIEF_R = 343, + PLAYER_ANIM_MGATTACKL = 344, + PLAYER_ANIM_MGATTACKR = 345, + PLAYER_ANIM_MGDASHL = 346, + PLAYER_ANIM_MGDASHR = 347, + PLAYER_ANIM_MGDAMAGE = 348, + PLAYER_ANIM_MGWAITBREATH = 349, + PLAYER_ANIM_MGLIEUP = 350, + PLAYER_ANIM_LIFTREMLY = 351, + PLAYER_ANIM_THROWREMLYUP = 352, + PLAYER_ANIM_LIFTREMLYUTOM = 353, + PLAYER_ANIM_BIRD_FESTIVALSTART = 354, + PLAYER_ANIM_GETSURPRISE = 355, + PLAYER_ANIM_GIRAHIMGRAPPLE = 356, + PLAYER_ANIM_GIRAHIMPULL = 357, + PLAYER_ANIM_GIRAHIMPULLUP = 358, + PLAYER_ANIM_GIRAHIMCHANGE = 359, + PLAYER_ANIM_ROPEWALK = 360, + PLAYER_ANIM_ROPEBEND = 361, + PLAYER_ANIM_ROPEHANGBEND = 362, + PLAYER_ANIM_ROPEHANGUP = 363, + PLAYER_ANIM_ROPEBALANCE = 364, + PLAYER_ANIM_SETSEKIBANA = 365, + PLAYER_ANIM_SETSEKIBANB = 366, + PLAYER_ANIM_SETSEKIBANC = 367, + PLAYER_ANIM_PUSHTSWST = 368, + PLAYER_ANIM_PUSHTSW = 369, + PLAYER_ANIM_PUSHLOG = 370, + PLAYER_ANIM_ASURACUTRIGHT = 371, + PLAYER_ANIM_ASURACUTLEFT = 372, + PLAYER_ANIM_ASURACUTUP = 373, + PLAYER_ANIM_ASURACUTRIGHTST = 374, + PLAYER_ANIM_ASURACUTLEFTST = 375, + PLAYER_ANIM_ASURACUTUPST = 376, + PLAYER_ANIM_ASURACUTRIGHTED = 377, + PLAYER_ANIM_ASURACUTLEFTED = 378, + PLAYER_ANIM_ASURACUTUPED = 379, + PLAYER_ANIM_ASURASWORDWAIT = 380, + PLAYER_ANIM_ASURASWORDLIFT = 381, + PLAYER_ANIM_BINSCOOP = 382, + PLAYER_ANIM_FIRE = 383, + PLAYER_ANIM_CROUCH = 384, + PLAYER_ANIM_CANNONWAIT = 385, + PLAYER_ANIM_SEAL = 386, + PLAYER_ANIM_SEALLOOP = 387, + PLAYER_ANIM_SEALFINISH = 388, + PLAYER_ANIM_FINISHED = 389, + PLAYER_ANIM_SITDOWN = 390, + PLAYER_ANIM_SITWAIT = 391, + PLAYER_ANIM_SITWAITSERVICEA = 392, + PLAYER_ANIM_ROOFWAIT = 393, + PLAYER_ANIM_ROOFHANG = 394, + PLAYER_ANIM_MGSTRUGGLE = 395, + PLAYER_ANIM_MGSTRUGGLE_ACT = 396, + PLAYER_ANIM_MGSTRUGGLE_ESCAPE = 397, + PLAYER_ANIM_KRAKENAPPEARANCE = 398, + PLAYER_ANIM_MGBURY = 399, + PLAYER_ANIM_GETFLOWER = 400, + PLAYER_ANIM_DOORLARGEOPEN = 401, + PLAYER_ANIM_DOORLARGECLOSE = 402, + PLAYER_ANIM_HARPPLAYFINISH = 403, + PLAYER_ANIM_LIGHTNINGL = 404, + PLAYER_ANIM_LIGHTNINGR = 405, + PLAYER_ANIM_LASTATTACK = 406, + PLAYER_ANIM_AT = 407, + PLAYER_ANIM_TAKE = 408, + PLAYER_ANIM_TAKEL = 409, + PLAYER_ANIM_TAKER = 410, + PLAYER_ANIM_TAKE2 = 411, + PLAYER_ANIM_WAITATOS = 412, + PLAYER_ANIM_DAMD = 413, + PLAYER_ANIM_ASHOOTWAIT = 414, + PLAYER_ANIM_ARELORD = 415, + PLAYER_ANIM_ASHOOT = 416, + PLAYER_ANIM_ARELORDTAME = 417, + PLAYER_ANIM_ASHOOTWAIT_2 = 418, + PLAYER_ANIM_ARELORD_2 = 419, + PLAYER_ANIM_ASHOOT_2 = 420, + PLAYER_ANIM_DAMSW = 421, + PLAYER_ANIM_HSWAIT = 422, + PLAYER_ANIM_VACUUMWAIT = 423, + PLAYER_ANIM_MPPOSEFRONT = 424, + PLAYER_ANIM_MPPOSEAROUND = 425, + PLAYER_ANIM_MPPOSEAROUNDBACK = 426, + PLAYER_ANIM_MPPOSEDASHFRONT = 427, + PLAYER_ANIM_MPPOSEDASHAROUND = 428, + PLAYER_ANIM_MPPOSEDASHAROUNDBACK = 429, + PLAYER_ANIM_LIFTB_UTOD = 430, + PLAYER_ANIM_LIFTS_UTOD = 431, + PLAYER_ANIM_LIFTLWALK = 432, + PLAYER_ANIM_MPGUARDPOSE = 433, + PLAYER_ANIM_ROCKRIDE_2 = 434, + PLAYER_ANIM_BINDRINKST = 435, + PLAYER_ANIM_BINDRINK = 436, + PLAYER_ANIM_BINDRINKED = 437, + PLAYER_ANIM_HARPPOSE = 438, + PLAYER_ANIM_HARPPLAYGO = 439, + PLAYER_ANIM_HARPPLAYCOME = 440, + PLAYER_ANIM_BINHOLD = 441, + PLAYER_ANIM_BINSHIELD = 442, + + PLAYER_ANIM_MAX = 443, + }; + // Alink.arc > g3d > model.brres > 3DModels(NW4R) > al > Bones > ... enum PlayerMainModelNode_e { PLAYER_MAIN_NODE_CENTER = 0, diff --git a/src/d/d_player_act.cpp b/src/d/d_player_act.cpp index 70f6cb8c..35bd390c 100644 --- a/src/d/d_player_act.cpp +++ b/src/d/d_player_act.cpp @@ -96,9 +96,7 @@ void daPlayerActBase_c::setPosYRot(const mVec3_c &pos, mAng rot, bool force, UNK void daPlayerActBase_c::setTransform(const mMtx_c &mtx, bool force, UNKWORD a4, UNKWORD a5) { mVec3_c translate; - translate.x = mtx.m[0][3]; - translate.y = mtx.m[1][3]; - translate.z = mtx.m[2][3]; + mtx.getTranslation(translate); mAng3_c rot; mtx.toRot(rot); setPosRot(&translate, &rot, force, a4, a5); diff --git a/src/d/d_player_mdl.cpp b/src/d/d_player_mdl.cpp index 446b335d..311bc755 100644 --- a/src/d/d_player_mdl.cpp +++ b/src/d/d_player_mdl.cpp @@ -573,7 +573,7 @@ void daPlBaseScnObjCallback_c::ExecCallback_DRAW_OPA( for (int i = 0; i < 2; i++) { u8 defaultMat = sSavedHandMats[i]; // TODO: Is there a way to avoid this cast? - u8 playerHandMat = static_cast(field_0x0C)->getHandMat(i); + u8 playerHandMat = static_cast(mpPlayer)->getHandMat(i); if (playerHandMat != defaultMat) { if (defaultMat != 0xFE) { shp = mdl.GetResShp(sHandMats[defaultMat]); @@ -604,8 +604,10 @@ void daPlBaseMdlCallback_c::ExecCallbackA( nw4r::g3d::ChrAnmResult *result, nw4r::g3d::ResMdl mdl, nw4r::g3d::FuncObjCalcWorld *calcWorld ) { u16 nodeId = calcWorld->GetCallbackNodeID(); - // Only run the full callback for certain specified nodes - TODO which ones? - if ((nodeId >= mNodeIdMin && nodeId < mNodeIdMax) || (mNodeIdMin == 16 && nodeId == 0)) { + // Only run the full callback for certain specified nodes - but under which conditions is + // mNodeIdMin == daPlayerModelBase_c::PLAYER_MAIN_NODE_WAIST? + if ((nodeId >= mNodeIdMin && nodeId < mNodeIdMax) || (mNodeIdMin == daPlayerModelBase_c::PLAYER_MAIN_NODE_WAIST && + nodeId == daPlayerModelBase_c::PLAYER_MAIN_NODE_CENTER)) { m3d::mdl_c::mdlCallback_c::ExecCallbackA(result, mdl, calcWorld); return; } @@ -1667,13 +1669,13 @@ bool daPlayerModelBase_c::canStart(bool force, u16 faceIdx, u16 invalidValue, u1 void daPlayerModelBase_c::setFaceTexPat(s32 faceIdx, bool force) { if ((!force && ((mFaceAnmTexPatIdx1 == faceIdx && mFaceAnmTexPatIdx1 == 1) || - (checkFaceUpdateFlags(0x40000000) && (faceIdx == 1))))) { + (checkFaceUpdateFlags(0x40000000) && (faceIdx == PLAYER_FACEMABA01))))) { return; } if (faceIdx != 0x38) { offFaceUpdateFlags(0x40000000); - if (canStart(force, faceIdx, 0x39, &mFaceAnmTexPatIdx1, &mFaceAnmTexPatIdx2)) { + if (canStart(force, faceIdx, PLAYER_FACE_MAX, &mFaceAnmTexPatIdx1, &mFaceAnmTexPatIdx2)) { nw4r::g3d::ResAnmTexPat anm = getExternalAnmTexPat(sFaceResNames[faceIdx], mpTexPatBuffer, 0x1000); mFaceTexPat.setAnm(mFaceMdl, anm, 0, m3d::PLAY_MODE_4); mFaceTexPat.setFrame(0.0f, 0); @@ -1682,21 +1684,21 @@ void daPlayerModelBase_c::setFaceTexPat(s32 faceIdx, bool force) { } void daPlayerModelBase_c::checkFaceTexPat() { - if (mFaceAnmTexPatIdx2 == 0x39) { + if (mFaceAnmTexPatIdx2 == PLAYER_FACE_MAX) { return; } s32 prev = mFaceAnmTexPatIdx1; - mFaceAnmTexPatIdx2 = 0x39; - if (prev >= 0x1F) { + mFaceAnmTexPatIdx2 = PLAYER_FACE_MAX; + if (prev >= PLAYER_FACE_BEDSLEEP) { prev = 1; } - mFaceAnmTexPatIdx1 = 0x39; + mFaceAnmTexPatIdx1 = PLAYER_FACE_MAX; setFaceTexPat(prev, false); } void daPlayerModelBase_c::setFaceTexSrt(s32 faceIdx, bool force) { offFaceUpdateFlags(0x80000000); - if (canStart(force, faceIdx, 0x39, &mFaceAnmTexSrtIdx1, &mFaceAnmTexSrtIdx2)) { + if (canStart(force, faceIdx, PLAYER_FACE_MAX, &mFaceAnmTexSrtIdx1, &mFaceAnmTexSrtIdx2)) { nw4r::g3d::ResAnmTexSrt anm = getExternalAnmTexSrt(sFaceResNames[faceIdx], mpTexSrtBuffer, 0x1000); mFaceTexSrt.setAnm(mFaceMdl, anm, 0, m3d::PLAY_MODE_4); mFaceTexSrt.setFrame(0.0f, 0); @@ -1704,24 +1706,25 @@ void daPlayerModelBase_c::setFaceTexSrt(s32 faceIdx, bool force) { } void daPlayerModelBase_c::checkFaceTexSrt() { - if (mFaceAnmTexSrtIdx2 == 0x39) { + if (mFaceAnmTexSrtIdx2 == PLAYER_FACE_MAX) { return; } s32 prev = mFaceAnmTexSrtIdx1; - mFaceAnmTexSrtIdx2 = 0x39; - if (prev >= 0x1F) { + mFaceAnmTexSrtIdx2 = PLAYER_FACE_MAX; + if (prev >= PLAYER_FACE_BEDSLEEP) { prev = 0; } - mFaceAnmTexSrtIdx1 = 0x39; + mFaceAnmTexSrtIdx1 = PLAYER_FACE_MAX; setFaceTexSrt(prev, false); } void daPlayerModelBase_c::setFaceAnmChr(s32 faceIdx, bool force) { - if (faceIdx == 0x38 || (!force && (checkFaceUpdateFlags(0x20000000) && (faceIdx == 0 || faceIdx == 2)))) { + if (faceIdx == PLAYER_FACE_NONE || (!force && (checkFaceUpdateFlags(0x20000000) && + (faceIdx == PLAYER_FACE_DEFAULT || faceIdx == PLAYER_FACE_M)))) { return; } offFaceUpdateFlags(0x20000000); - if (canStart(force, faceIdx, 0x39, &mFaceAnmChrIdx1, &mFaceAnmChrIdx2)) { + if (canStart(force, faceIdx, PLAYER_FACE_MAX, &mFaceAnmChrIdx1, &mFaceAnmChrIdx2)) { nw4r::g3d::ResAnmChr anm = getExternalAnmChr(sFaceResNames[faceIdx], mpAnmCharBuffer, 0x1000); mFaceAnmChr.setAnm(mFaceMdl, anm, m3d::PLAY_MODE_4); mFaceAnmChr.setFrameOnly(0.0f); @@ -1730,15 +1733,15 @@ void daPlayerModelBase_c::setFaceAnmChr(s32 faceIdx, bool force) { } void daPlayerModelBase_c::checkFaceAnmChr() { - if (mFaceAnmChrIdx2 == 0x39) { + if (mFaceAnmChrIdx2 == PLAYER_FACE_MAX) { return; } s32 prev = mFaceAnmChrIdx1; - mFaceAnmChrIdx2 = 0x39; - if (prev >= 0x1F) { + mFaceAnmChrIdx2 = PLAYER_FACE_MAX; + if (prev >= PLAYER_FACE_BEDSLEEP) { prev = 0; } - mFaceAnmChrIdx1 = 0x39; + mFaceAnmChrIdx1 = PLAYER_FACE_MAX; setFaceAnmChr(prev, false); } @@ -1763,7 +1766,7 @@ void daPlayerModelBase_c::loadAnmChr(s32 childIdx, s32 animIdx, void *dest, u32 void daPlayerModelBase_c::removeAnmChr(s32 childIdx) { mAnmChrs[childIdx].getAnimObj()->Release(); mAnmChrBlend.detach(childIdx); - mAnimations[childIdx] = 443; + mAnimations[childIdx] = PLAYER_ANIM_MAX; } void daPlayerModelBase_c::loadSound(nw4r::g3d::ResFile &file, const char *name, s32 childIdx) { @@ -1906,7 +1909,7 @@ void daPlayerModelBase_c::setPosCopy3() { switch (getCurrentAction()) { case 0x82: case 0x83: - case 0x84: { + case 0x84: /* CLIMBING_ONTO_TIGHTROPE */ { label: const nw4r::math::MTX34 *c = mHeadMdl.getLocalMtx(); poscopy3.x = c->_03; @@ -1954,6 +1957,6 @@ bool daPlayerModelBase_c::fn_80061410() { // and this causes the vtable and all other weak functions to be here /* vt 0x114 */ void daPlayerModelBase_c::somethingWithCarriedActorFlags() { if (mCarriedActorRef.get() != nullptr) { - mCarriedActorRef.get()->mObjectActorFlags |= 0x200; + mCarriedActorRef.get()->setObjectProperty(0x200); } }