/** * @file d_a_npc_chat.cpp * */ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_chat.h" #include "Z2AudioLib/Z2Instances.h" enum MAN_a_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAN_A = 0x3, }; enum MAN_a_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAN_A_TW = 0x3, }; enum MAD_a_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAD_A = 0x3, }; enum MAD_a_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAD_A_TW = 0x3, }; enum MCN_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MCN_A = 0x4, /* BTP */ /* 0x7 */ BTP_MCN_A = 0x7, }; enum MCN_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MCN_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MCN_A_TW = 0x7, }; enum MON_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MON_A = 0x4, /* BTP */ /* 0x7 */ BTP_MON_A = 0x7, }; enum MON_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MON_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MON_A_TW = 0x7, }; enum MAN_b_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAN_B = 0x3, }; enum MAN_b_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAN_B_TW = 0x3, }; enum MAN_c_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAN_C = 0x4, /* BTP */ /* 0x7 */ BTP_MAN_C = 0x7, }; enum MAN_c_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAN_C_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MAN_C_TW = 0x7, }; enum MAS_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAS_A = 0x4, /* BTP */ /* 0x7 */ BTP_MAS_A = 0x7, }; enum MAS_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAS_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MAS_A_TW = 0x7, }; enum MBN_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MBN_A = 0x4, /* BTP */ /* 0x7 */ BTP_MBN_A = 0x7, }; enum MBN_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MBN_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MBN_A_TW = 0x7, }; enum MAN_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAN_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_MAN_A2 = 0x7, }; enum MAN_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAN_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MAN_A2_TW = 0x7, }; enum MAD_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAD_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_MAD_A2 = 0x7, }; enum MAD_a2_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAD_A2_TW = 0x3, }; enum MCN_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MCN_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_MCN_A2 = 0x7, }; enum MCN_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MCN_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MCN_A2_TW = 0x7, }; enum MON_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MON_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_MON_A2 = 0x7, }; enum MON_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MON_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MON_A2_TW = 0x7, }; enum MAN_b2_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAN_B2 = 0x3, }; enum MAN_b2_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAN_B2_TW = 0x3, }; enum MAN_c2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAN_C2 = 0x4, /* BTP */ /* 0x7 */ BTP_MAN_C2 = 0x7, }; enum MAN_c2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAN_C2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MAN_C2_TW = 0x7, }; enum MAS_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAS_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_MAS_A2 = 0x7, }; enum MAS_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MAS_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MAS_A2_TW = 0x7, }; enum MBN_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MBN_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_MBN_A2 = 0x7, }; enum MBN_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_MBN_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_MBN_A2_TW = 0x7, }; enum WAN_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_A = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_A = 0x7, }; enum WAN_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_A_TW = 0x7, }; enum WAD_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAD_A = 0x4, /* BTP */ /* 0x7 */ BTP_WAD_A = 0x7, }; enum WAD_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAD_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WAD_A_TW = 0x7, }; enum MAT_a_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAT_A = 0x3, }; enum MAT_a_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAT_A_TW = 0x3, }; enum WCN_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WCN_A = 0x4, /* BTP */ /* 0x7 */ BTP_WCN_A = 0x7, }; enum WCN_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WCN_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WCN_A_TW = 0x7, }; enum WON_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WON_A = 0x4, /* BTP */ /* 0x7 */ BTP_WON_A = 0x7, }; enum WON_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WON_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WON_A_TW = 0x7, }; enum WGN_a_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WGN_A = 0x4, /* BTP */ /* 0x7 */ BTP_WGN_A = 0x7, }; enum WGN_a_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WGN_A_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WGN_A_TW = 0x7, }; enum WAN_b_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_B = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_B = 0x7, }; enum WAN_b_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_B_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_B_TW = 0x7, }; enum WAN_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_A2 = 0x7, }; enum WAN_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_A2_TW = 0x7, }; enum WAD_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAD_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_WAD_A2 = 0x7, }; enum WAD_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAD_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WAD_A2_TW = 0x7, }; enum MAT_a2_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAT_A2 = 0x3, }; enum MAT_a2_TW_RES_File_ID { /* BMDR */ /* 0x3 */ BMDR_MAT_A2_TW = 0x3, }; enum WCN_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WCN_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_WCN_A2 = 0x7, }; enum WCN_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WCN_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WCN_A2_TW = 0x7, }; enum WON_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WON_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_WON_A2 = 0x7, }; enum WON_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WON_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WON_A2_TW = 0x7, }; enum WGN_a2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WGN_A2 = 0x4, /* BTP */ /* 0x7 */ BTP_WGN_A2 = 0x7, }; enum WGN_a2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WGN_A2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WGN_A2_TW = 0x7, }; enum WAN_b2_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_B2 = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_B2 = 0x7, }; enum WAN_b2_TW_RES_File_ID { /* BMDR */ /* 0x4 */ BMDR_WAN_B2_TW = 0x4, /* BTP */ /* 0x7 */ BTP_WAN_B2_TW = 0x7, }; enum object_RES_File_ID { /* BMDR */ /* 0x03 */ BMDR_B_BROOM = 0x3, /* 0x04 */ BMDR_B_CHAIR_M, /* 0x05 */ BMDR_B_CHAIR_W, /* 0x06 */ BMDR_B_FLUTE, /* 0x07 */ BMDR_B_MILKTUBO, /* 0x08 */ BMDR_B_SPEAR, /* 0x09 */ BMDR_B_TUBO, /* 0x0A */ BMDR_CELEB_BAG_M, /* 0x0B */ BMDR_CELEB_BAG_W, /* 0x0C */ BMDR_J_GUITAR, /* 0x0D */ BMDR_K_KAGOM, /* 0x0E */ BMDR_K_KAGOW, /* 0x0F */ BMDR_MARO_BAG_M, /* 0x10 */ BMDR_MARO_BAG_W, /* 0x11 */ BMDR_SOL_SHE, }; enum objectTW_RES_File_ID { /* BMDR */ /* 0x03 */ BMDR_B_BROOM_TW = 0x3, /* 0x04 */ BMDR_B_CHAIR_M_TW, /* 0x05 */ BMDR_B_CHAIR_W_TW, /* 0x06 */ BMDR_B_FLUTE_TW, /* 0x07 */ BMDR_B_MILKTUBO_TW, /* 0x08 */ BMDR_B_SPEAR_TW, /* 0x09 */ BMDR_B_TUBO_TW, /* 0x0A */ BMDR_CELEB_BAG_M_TW, /* 0x0B */ BMDR_CELEB_BAG_W_TW, /* 0x0C */ BMDR_J_GUITAR_TW, /* 0x0D */ BMDR_K_KAGOM_TW, /* 0x0E */ BMDR_K_KAGOW_TW, }; enum Mgeneral_RES_File_ID { /* BCK */ /* 0x03 */ BCK_M_BROWSE_A = 0x3, /* 0x04 */ BCK_M_BROWSE_B, /* 0x05 */ BCK_M_LOOK_A, /* 0x06 */ BCK_M_LOOK_B, /* 0x07 */ BCK_M_MARO_DANCE, /* 0x08 */ BCK_M_RUN_A, /* 0x09 */ BCK_M_RUN_B, /* 0x0A */ BCK_M_SING, /* 0x0B */ BCK_M_SIT_TO_WOLF_A, /* 0x0C */ BCK_M_SIT_TO_WOLF_B, /* 0x0D */ BCK_M_SITTALK_A, /* 0x0E */ BCK_M_SITTALK_A_B, /* 0x0F */ BCK_M_SITTALK_B, /* 0x10 */ BCK_M_SITTALK_B_B, /* 0x11 */ BCK_M_SITWAIT_A, /* 0x12 */ BCK_M_SITWAIT_B, /* 0x13 */ BCK_M_SURPRISE, /* 0x14 */ BCK_M_TALK_A, /* 0x15 */ BCK_M_TALK_B, /* 0x16 */ BCK_M_TALK_B_WALL, /* 0x17 */ BCK_M_TALK_C, /* 0x18 */ BCK_M_TALK_WALL, /* 0x19 */ BCK_M_TO_WOLF, /* 0x1A */ BCK_M_WAIT_A, /* 0x1B */ BCK_M_WAIT_B, /* 0x1C */ BCK_M_WAIT_WALL, /* 0x1D */ BCK_M_WALK_A, /* 0x1E */ BCK_M_WALK_B, }; enum Mspecial_RES_File_ID { /* BCK */ /* 0x03 */ BCK_M_KAMAE = 0x3, /* 0x04 */ BCK_M_KAMAE_C, /* 0x05 */ BCK_M_KAMAE_STEP, /* 0x06 */ BCK_M_KAMAE_WAIT_B, /* 0x07 */ BCK_M_PLAYM, /* 0x08 */ BCK_M_RUN_KAGO, /* 0x09 */ BCK_M_RUN_KAMAE, /* 0x0A */ BCK_M_RUN_STICK, /* 0x0B */ BCK_M_RUN_TUBO, /* 0x0C */ BCK_M_TALK_B_KAGO, /* 0x0D */ BCK_M_TALK_B_STICK, /* 0x0E */ BCK_M_TALK_B_TUBO, /* 0x0F */ BCK_M_TALK_KAGO, /* 0x10 */ BCK_M_TALK_STICK, /* 0x11 */ BCK_M_TALK_TUBO, /* 0x12 */ BCK_M_WAIT_KAGO, /* 0x13 */ BCK_M_WAIT_STICK, /* 0x14 */ BCK_M_WAIT_TUBO, /* 0x15 */ BCK_M_WALK_KAGO, /* 0x16 */ BCK_M_WALK_STICK, /* 0x17 */ BCK_M_WALK_TUBO, }; enum Wgeneral_RES_File_ID { /* BCK */ /* 0x03 */ BCK_W_2LADYTALK_A = 0x3, /* 0x04 */ BCK_W_2LADYTALK_B, /* 0x05 */ BCK_W_2NORMALTALK_A, /* 0x06 */ BCK_W_2NORMALTALK_B, /* 0x07 */ BCK_W_BROWSE_A, /* 0x08 */ BCK_W_BROWSE_B, /* 0x09 */ BCK_W_CELLME, /* 0x0A */ BCK_W_LOOK_A, /* 0x0B */ BCK_W_LOOK_B, /* 0x0C */ BCK_W_MARO_DANCE, /* 0x0D */ BCK_W_RUN_A, /* 0x0E */ BCK_W_RUN_B, /* 0x0F */ BCK_W_SING, /* 0x10 */ BCK_W_SIT_TO_WOLF_A, /* 0x11 */ BCK_W_SIT_TO_WOLF_B, /* 0x12 */ BCK_W_SITTALK_A, /* 0x13 */ BCK_W_SITTALK_A_B, /* 0x14 */ BCK_W_SITTALK_B, /* 0x15 */ BCK_W_SITTALK_B_B, /* 0x16 */ BCK_W_SITWAIT_A, /* 0x17 */ BCK_W_SITWAIT_B, /* 0x18 */ BCK_W_SURPRISE, /* 0x19 */ BCK_W_TALK_A, /* 0x1A */ BCK_W_TALK_B, /* 0x1B */ BCK_W_TALK_B_WALL, /* 0x1C */ BCK_W_TALK_C, /* 0x1D */ BCK_W_TALK_WALL, /* 0x1E */ BCK_W_TO_WOLF, /* 0x1F */ BCK_W_WAIT_A, /* 0x20 */ BCK_W_WAIT_B, /* 0x21 */ BCK_W_WAIT_WALL, /* 0x22 */ BCK_W_WALK_A, /* 0x23 */ BCK_W_WALK_B, }; enum Wspecial_RES_File_ID { /* 0x03 */ BCK_W_PLAYM = 0x3, /* 0x04 */ BCK_W_RUN_KAGO, /* 0x05 */ BCK_W_RUN_STICK, /* 0x06 */ BCK_W_RUN_TUBO, /* 0x07 */ BCK_W_TALK_B_KAGO, /* 0x08 */ BCK_W_TALK_B_STICK, /* 0x09 */ BCK_W_TALK_B_TUBO, /* 0x0A */ BCK_W_TALK_KAGO, /* 0x0B */ BCK_W_TALK_STICK, /* 0x0C */ BCK_W_TALK_TUBO, /* 0x0D */ BCK_W_WAIT_KAGO, /* 0x0E */ BCK_W_WAIT_STICK, /* 0x0F */ BCK_W_WAIT_TUBO, /* 0x10 */ BCK_W_WALK_KAGO, /* 0x11 */ BCK_W_WALK_STICK, /* 0x12 */ BCK_W_WALK_TUBO, }; enum Animation { /* 0x00 */ ANM_WAIT_A, /* 0x01 */ ANM_WAIT_B, /* 0x02 */ ANM_WALK_A, /* 0x03 */ ANM_WALK_B, /* 0x04 */ ANM_RUN_A, /* 0x05 */ ANM_RUN_B, /* 0x06 */ ANM_TALK_A, /* 0x07 */ ANM_TALK_B, /* 0x08 */ ANM_TALK_C, /* 0x09 */ ANM_LOOK_A, /* 0x0A */ ANM_LOOK_B, /* 0x0B */ ANM_WAIT_WALL, /* 0x0C */ ANM_TALK_WALL, /* 0x0D */ ANM_TALK_B_WALL, /* 0x0E */ ANM_SITWAIT_A, /* 0x0F */ ANM_SITTALK_A, /* 0x10 */ ANM_SITTALK_A_B, /* 0x11 */ ANM_SITWAIT_B, /* 0x12 */ ANM_SITTALK_B, /* 0x13 */ ANM_SITTALK_B_B, /* 0x14 */ ANM_BROWSE_A, /* 0x15 */ ANM_BROWSE_B, /* 0x16 */ ANM_WAIT_KAGO, /* 0x17 */ ANM_TALK_KAGO, /* 0x18 */ ANM_TALK_B_KAGO, /* 0x19 */ ANM_WALK_KAGO, /* 0x1A */ ANM_WAIT_STICK, /* 0x1B */ ANM_TALK_STICK, /* 0x1C */ ANM_TALK_B_STICK, /* 0x1D */ ANM_WALK_STICK, /* 0x1E */ ANM_WAIT_TUBO, /* 0x1F */ ANM_TALK_TUBO, /* 0x20 */ ANM_TALK_B_TUBO, /* 0x21 */ ANM_WALK_TUBO, /* 0x22 */ ANM_PLAYM, /* 0x23 */ ANM_RUN_KAGO, /* 0x24 */ ANM_RUN_STICK, /* 0x25 */ ANM_RUN_TUBO, /* 0x26 */ ANM_TO_WOLF, /* 0x27 */ ANM_SIT_TO_WOLF_A, /* 0x28 */ ANM_SIT_TO_WOLF_B, /* 0x29 */ ANM_SURPRISE, /* 0x2A */ ANM_KAMAE, /* 0x2B */ ANM_KAMAE_WAIT_B, /* 0x2C */ ANM_KAMAE_STEP, /* 0x2D */ ANM_RUN_KAMAE, /* 0x2E */ ANM_KAMAE_C, /* 0x2F */ ANM_MARO_DANCE, /* 0x30 */ ANM_2LADYTALK_A, /* 0x31 */ ANM_2LADYTALK_B, /* 0x32 */ ANM_2NORMALTALK_A, /* 0x33 */ ANM_2NORMALTALK_B, /* 0x34 */ ANM_CELLME, /* 0x35 */ ANM_SING, }; enum Motion { /* 0x00 */ MOT_TALK_A, /* 0x01 */ MOT_WAIT_A, /* 0x02 */ MOT_WAIT_B, /* 0x04 */ MOT_TALK_B = 0x4, /* 0x05 */ MOT_TALK_A_B_A, /* 0x06 */ MOT_TALK_C, /* 0x07 */ MOT_TALK_B_A_C, /* 0x08 */ MOT_TALK_A_B_C, /* 0x09 */ MOT_BROWSE, /* 0x0A */ MOT_BROWSE_TALK_A_B, /* 0x0B */ MOT_BROWSE_TALK_A_B_C, /* 0x0C */ MOT_2LADYTALK_A, /* 0x0D */ MOT_2LADYTALK_B, /* 0x0E */ MOT_TALK_A_2LADYTALK_A, /* 0x0F */ MOT_WAIT_A_2LADYTALK_B, /* 0x10 */ MOT_TALK_A_2LADYTALK_A_2NORMALTALK_A, /* 0x11 */ MOT_WAIT_A_2LADYTALK_B_2NORMALTALK_B, /* 0x12 */ MOT_2LADYTALK_A_B_2NORMALTALK_A_B, /* 0x13 */ MOT_LOOK_A, /* 0x14 */ MOT_LOOK_B, /* 0x15 */ MOT_LOOK_A_B, /* 0x16 */ MOT_WAIT_WALL, /* 0x17 */ MOT_TALK_WALL, /* 0x18 */ MOT_SITWAIT_A, /* 0x19 */ MOT_SITTALK_SITWAIT_A, /* 0x1A */ MOT_SITWAIT_B, /* 0x1B */ MOT_SITTALK_SITWAIT_B, /* 0x1C */ MOT_SING, /* 0x1D */ MOT_SITTALK_A, /* 0x1E */ MOT_SITTALK_A_B, /* 0x1F */ MOT_SITTALK_A_A_B, /* 0x20 */ MOT_SITTALK_B, /* 0x21 */ MOT_SITTALK_B_B, /* 0x22 */ MOT_SITTALK_B_B_B, /* 0x23 */ MOT_KAMAE, /* 0x24 */ MOT_KAMAE_C, /* 0x25 */ MOT_KAMAE_STEP, /* 0x26 */ MOT_SURPRISE, /* 0x27 */ MOT_TO_WOLF, }; enum Object { /* 0x00 */ OBJ_TUBO, /* 0x01 */ OBJ_TUBO2, /* 0x02 */ OBJ_SPEAR, /* 0x03 */ OBJ_BROOM, /* 0x04 */ OBJ_KAGOM, /* 0x05 */ OBJ_KAGOW, /* 0x06 */ OBJ_GUITAR, /* 0x07 */ OBJ_FLUTE, /* 0x08 */ OBJ_MILKTUBO, /* 0x09 */ OBJ_CELEB_BAG_M, /* 0x0A */ OBJ_CELEB_BAG_W, /* 0x0B */ OBJ_MARO_BAG_M, /* 0x0C */ OBJ_MARO_BAG_W, }; enum Joint_NUM { /* 0x13 */ JntM_NUM_e = 0x13, /* 0x15 */ JntW_NUM_e = 0x15, }; enum Joint_M { /* 0x00 */ JNTM_CENTER, /* 0x01 */ JNTM_BACKBONE, /* 0x02 */ JNTM_NECK, /* 0x03 */ JNTM_HEAD, /* 0x04 */ JNTM_SHOULDERL, /* 0x05 */ JNTM_ARML1, /* 0x06 */ JNTM_ARML2, /* 0x07 */ JNTM_HANDL, /* 0x08 */ JNTM_SHOULDERR, /* 0x09 */ JNTM_ARMR1, /* 0x0A */ JNTM_ARMR2, /* 0x0B */ JNTM_HANDR, /* 0x0C */ JNTM_WAIST, /* 0x0D */ JNTM_LEGL1, /* 0x0E */ JNTM_LEGL2, /* 0x0F */ JNTM_FOOTL, /* 0x10 */ JNTM_LEGR1, /* 0x11 */ JNTM_LEGR2, /* 0x12 */ JNTM_FOOTR, }; enum Joint_W { /* 0x00 */ JNTW_CENTER, /* 0x01 */ JNTW_BACKBONE, /* 0x02 */ JNTW_NECK, /* 0x03 */ JNTW_HEAD, /* 0x04 */ JNTW_SHOULDERL, /* 0x05 */ JNTW_ARML1, /* 0x06 */ JNTW_ARML2, /* 0x07 */ JNTW_HANDL, /* 0x08 */ JNTW_SHOULDERR, /* 0x09 */ JNTW_ARMR1, /* 0x0A */ JNTW_ARMR2, /* 0x0B */ JNTW_HANDR, /* 0x0C */ JNTW_WAIST, /* 0x0D */ JNTW_LEGL1, /* 0x0E */ JNTW_LEGL2, /* 0x0F */ JNTW_FOOTL, /* 0x10 */ JNTW_SKIRTL, /* 0x11 */ JNTW_LEGR1, /* 0x12 */ JNTW_LEGR2, /* 0x13 */ JNTW_FOOTR, /* 0x14 */ JNTW_SKIRTR, }; enum Type { /* 0x00 */ MdlMANa_e, /* 0x01 */ MdlMADa_e, /* 0x02 */ MdlMCNa_e, /* 0x03 */ MdlMONa_e, /* 0x04 */ MdlMANb_e, /* 0x05 */ MdlMANc_e, /* 0x06 */ MdlMASa_e, /* 0x07 */ MdlMBNa_e, /* 0x08 */ MdlMANa2_e, /* 0x09 */ MdlMADa2_e, /* 0x0A */ MdlMCNa2_e, /* 0x0B */ MdlMONa2_e, /* 0x0C */ MdlMANb2_e, /* 0x0D */ MdlMANc2_e, /* 0x0E */ MdlMASa2_e, /* 0x0F */ MdlMBNa2_e, /* 0x10 */ MdlWANa_e, /* 0x11 */ MdlWADa_e, /* 0x12 */ MdlMATa_e, /* 0x13 */ MdlWCNa_e, /* 0x14 */ MdlWONa_e, /* 0x15 */ MdlWGNa_e, /* 0x16 */ MdlWANb_e, /* 0x17 */ MdlWANa2_e, /* 0x18 */ MdlWADa2_e, /* 0x19 */ MdlMATa2_e, /* 0x1A */ MdlWCNa2_e, /* 0x1B */ MdlWONa2_e, /* 0x1C */ MdlWGNa2_e, /* 0x1D */ MdlWANb2_e, }; /* 8098699C-809869B4 -00001 0018+00 8/7 0/0 0/0 .rodata l_resMANa */ static char* const l_resMANa[6] = { "MAN_a", "MAN_a_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 809869B4-809869CC -00001 0018+00 1/1 0/0 0/0 .rodata l_resMADa */ static char* const l_resMADa[6] = { "MAD_a", "MAD_a_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 809869CC-809869E4 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMCNa */ static char* const l_resMCNa[6] = { "MCN_a", "MCN_a_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 809869E4-809869FC -00001 0018+00 1/1 0/0 0/0 .rodata l_resMONa */ static char* const l_resMONa[6] = { "MON_a", "MON_a_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 809869FC-80986A14 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMANb */ static char* const l_resMANb[6] = { "MAN_b", "MAN_b_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986A14-80986A2C -00001 0018+00 1/1 0/0 0/0 .rodata l_resMANc */ static char* const l_resMANc[6] = { "MAN_c", "MAN_c_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986A2C-80986A44 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMASa */ static char* const l_resMASa[6] = { "MAS_a", "MAS_a_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986A44-80986A5C -00001 0018+00 1/1 0/0 0/0 .rodata l_resMBNa */ static char* const l_resMBNa[6] = { "MBN_a", "MBN_a_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986A5C-80986A74 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMANa2 */ static char* const l_resMANa2[6] = { "MAN_a2", "MAN_a2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986A74-80986A8C -00001 0018+00 1/1 0/0 0/0 .rodata l_resMADa2 */ static char* const l_resMADa2[6] = { "MAD_a2", "MAD_a2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986A8C-80986AA4 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMCNa2 */ static char* const l_resMCNa2[6] = { "MCN_a2", "MCN_a2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986AA4-80986ABC -00001 0018+00 1/1 0/0 0/0 .rodata l_resMONa2 */ static char* const l_resMONa2[6] = { "MON_a2", "MON_a2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986ABC-80986AD4 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMANb2 */ static char* const l_resMANb2[6] = { "MAN_b2", "MAN_b2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986AD4-80986AEC -00001 0018+00 1/1 0/0 0/0 .rodata l_resMANc2 */ static char* const l_resMANc2[6] = { "MAN_c2", "MAN_c2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986AEC-80986B04 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMASa2 */ static char* const l_resMASa2[6] = { "MAS_a2", "MAS_a2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986B04-80986B1C -00001 0018+00 1/1 0/0 0/0 .rodata l_resMBNa2 */ static char* const l_resMBNa2[6] = { "MBN_a2", "MBN_a2_TW", "Mgeneral", "Mspecial", "object", "objectTW", }; /* 80986B1C-80986B34 -00001 0018+00 1/1 0/0 0/0 .rodata l_resWANa */ static char* const l_resWANa[6] = { "WAN_a", "WAN_a_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986B34-80986B4C -00001 0018+00 1/1 0/0 0/0 .rodata l_resWADa */ static char* const l_resWADa[6] = { "WAD_a", "WAD_a_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986B4C-80986B64 -00001 0018+00 1/1 0/0 0/0 .rodata l_resMATa */ static char* const l_resMATa[6] = { "MAT_a", "MAT_a_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986B64-80986B7C -00001 0018+00 1/1 0/0 0/0 .rodata l_resWCNa */ static char* const l_resWCNa[6] = { "WCN_a", "WCN_a_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986B7C-80986B94 -00001 0018+00 1/1 0/0 0/0 .rodata l_resWONa */ static char* const l_resWONa[6] = { "WON_a", "WON_a_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986B94-80986BAC -00001 0018+00 1/1 0/0 0/0 .rodata l_resWGNa */ static char* const l_resWGNa[6] = { "WGN_a", "WGN_a_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986BAC-80986BC4 -00001 0018+00 1/1 0/0 0/0 .rodata l_resWANb */ static char* const l_resWANb[6] = { "WAN_b", "WAN_b_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986BC4-80986BDC -00001 0018+00 1/1 0/0 0/0 .rodata l_resWANa2 */ static char* const l_resWANa2[6] = { "WAN_a2", "WAN_a2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986BDC-80986BF4 -00001 0018+00 1/1 0/0 0/0 .rodata l_resWADa2 */ static char* const l_resWADa2[6] = { "WAD_a2", "WAD_a2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986BF4-80986C0C -00001 0018+00 1/1 0/0 0/0 .rodata l_resMATa2 */ static char* const l_resMATa2[6] = { "MAT_a2", "MAT_a2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986C0C-80986C24 -00001 0018+00 1/1 0/0 0/0 .rodata l_resWCNa2 */ static char* const l_resWCNa2[6] = { "WCN_a2", "WCN_a2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986C24-80986C3C -00001 0018+00 1/1 0/0 0/0 .rodata l_resWONa2 */ static char* const l_resWONa2[6] = { "WON_a2", "WON_a2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986C3C-80986C54 -00001 0018+00 1/1 0/0 0/0 .rodata l_resWGNa2 */ static char* const l_resWGNa2[6] = { "WGN_a2", "WGN_a2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 80986C54-80986C6C -00001 0018+00 1/1 0/0 0/0 .rodata l_resWANb2 */ static char* const l_resWANb2[6] = { "WAN_b2", "WAN_b2_TW", "Wgeneral", "Wspecial", "object", "objectTW", }; /* 8098797C-809879F4 -00001 0078+00 2/2 0/0 0/0 .data l_resNameTbl */ static char* const* l_resNameTbl[30] = { l_resMANa, l_resMADa, l_resMCNa, l_resMONa, l_resMANb, l_resMANc, l_resMASa, l_resMBNa, l_resMANa2, l_resMADa2, l_resMCNa2, l_resMONa2, l_resMANb2, l_resMANc2, l_resMASa2, l_resMBNa2, l_resWANa, l_resWADa, l_resMATa, l_resWCNa, l_resWONa, l_resWGNa, l_resWANb, l_resWANa2, l_resWADa2, l_resMATa2, l_resWCNa2, l_resWONa2, l_resWGNa2, l_resWANb2, }; struct anmTblPrm { char* arc_name; int resource_index; }; /* 809879F4-80987AE4 000098 00F0+00 1/2 0/0 0/0 .data l_bmdTbl */ static anmTblPrm l_bmdTbl[30] = { l_resMANa[0], BMDR_MAN_A, l_resMADa[0], BMDR_MAD_A, l_resMCNa[0], BMDR_MCN_A, l_resMONa[0], BMDR_MON_A, l_resMANb[0], BMDR_MAN_B, l_resMANc[0], BMDR_MAN_C, l_resMASa[0], BMDR_MAS_A, l_resMBNa[0], BMDR_MBN_A, l_resMANa2[0], BMDR_MAN_A2, l_resMADa2[0], BMDR_MAD_A2, l_resMCNa2[0], BMDR_MCN_A2, l_resMONa2[0], BMDR_MON_A2, l_resMANb2[0], BMDR_MAN_B2, l_resMANc2[0], BMDR_MAN_C2, l_resMASa2[0], BMDR_MAS_A2, l_resMBNa2[0], BMDR_MBN_A2, l_resWANa[0], BMDR_WAN_A, l_resWADa[0], BMDR_WAD_A, l_resMATa[0], BMDR_MAT_A, l_resWCNa[0], BMDR_WCN_A, l_resWONa[0], BMDR_WON_A, l_resWGNa[0], BMDR_WGN_A, l_resWANb[0], BMDR_WAN_B, l_resWANa2[0], BMDR_WAN_A2, l_resWADa2[0], BMDR_WAD_A2, l_resMATa2[0], BMDR_MAT_A2, l_resWCNa2[0], BMDR_WCN_A2, l_resWONa2[0], BMDR_WON_A2, l_resWGNa2[0], BMDR_WGN_A2, l_resWANb2[0], BMDR_WAN_B2, }; /* 80987AE4-80987BD4 000188 00F0+00 1/2 0/0 0/0 .data l_bmdTWTbl */ static anmTblPrm l_bmdTWTbl[30] = { l_resMANa[1], BMDR_MAN_A_TW, l_resMADa[1], BMDR_MAD_A_TW, l_resMCNa[1], BMDR_MCN_A_TW, l_resMONa[1], BMDR_MON_A_TW, l_resMANb[1], BMDR_MAN_B_TW, l_resMANc[1], BMDR_MAN_C_TW, l_resMASa[1], BMDR_MAS_A_TW, l_resMBNa[1], BMDR_MBN_A_TW, l_resMANa2[1], BMDR_MAN_A2_TW, l_resMADa2[1], BMDR_MAD_A2_TW, l_resMCNa2[1], BMDR_MCN_A2_TW, l_resMONa2[1], BMDR_MON_A2_TW, l_resMANb2[1], BMDR_MAN_B2_TW, l_resMANc2[1], BMDR_MAN_C2_TW, l_resMASa2[1], BMDR_MAS_A2_TW, l_resMBNa2[1], BMDR_MBN_A2_TW, l_resWANa[1], BMDR_WAN_A_TW, l_resWADa[1], BMDR_WAD_A_TW, l_resMATa[1], BMDR_MAT_A_TW, l_resWCNa[1], BMDR_WCN_A_TW, l_resWONa[1], BMDR_WON_A_TW, l_resWGNa[1], BMDR_WGN_A_TW, l_resWANb[1], BMDR_WAN_B_TW, l_resWANa2[1], BMDR_WAN_A2_TW, l_resWADa2[1], BMDR_WAD_A2_TW, l_resMATa2[1], BMDR_MAT_A2_TW, l_resWCNa2[1], BMDR_WCN_A2_TW, l_resWONa2[1], BMDR_WON_A2_TW, l_resWGNa2[1], BMDR_WGN_A2_TW, l_resWANb2[1], BMDR_WAN_B2_TW, }; /* 80987BD4-80987CC4 000278 00F0+00 1/2 0/0 0/0 .data l_btpTbl */ static anmTblPrm l_btpTbl[30] = { l_resMANa[0], -1, l_resMADa[0], -1, l_resMCNa[0], BTP_MCN_A, l_resMONa[0], BTP_MON_A, l_resMANb[0], -1, l_resMANc[0], BTP_MAN_C, l_resMASa[0], BTP_MAS_A, l_resMBNa[0], BTP_MBN_A, l_resMANa2[0], BTP_MAN_A2, l_resMADa2[0], BTP_MAD_A2, l_resMCNa2[0], BTP_MCN_A2, l_resMONa2[0], BTP_MON_A2, l_resMANb2[0], -1, l_resMANc2[0], BTP_MAN_C2, l_resMASa2[0], BTP_MAS_A2, l_resMBNa2[0], BTP_MBN_A2, l_resWANa[0], BTP_WAN_A, l_resWADa[0], BTP_WAD_A, l_resMATa[0], -1, l_resWCNa[0], BTP_WCN_A, l_resWONa[0], BTP_WON_A, l_resWGNa[0], BTP_WGN_A, l_resWANb[0], BTP_WAN_B, l_resWANa2[0], BTP_WAN_A2, l_resWADa2[0], BTP_WAD_A2, l_resMATa2[0], -1, l_resWCNa2[0], BTP_WCN_A2, l_resWONa2[0], BTP_WON_A2, l_resWGNa2[0], BTP_WGN_A2, l_resWANb2[0], BTP_WAN_B2, }; /* 80987CC4-80987DB4 000368 00F0+00 1/2 0/0 0/0 .data l_btpTWTbl */ static anmTblPrm l_btpTWTbl[30] = { l_resMANa[1], -1, l_resMADa[1], -1, l_resMCNa[1], BTP_MCN_A_TW, l_resMONa[1], BTP_MON_A_TW, l_resMANb[1], -1, l_resMANc[1], BTP_MAN_C_TW, l_resMASa[1], BTP_MAS_A_TW, l_resMBNa[1], BTP_MBN_A_TW, l_resMANa2[1], BTP_MAN_A2_TW, l_resMADa2[1], -1, l_resMCNa2[1], BTP_MCN_A2_TW, l_resMONa2[1], BTP_MON_A2_TW, l_resMANb2[1], -1, l_resMANc2[1], BTP_MAN_C2_TW, l_resMASa2[1], BTP_MAS_A2_TW, l_resMBNa2[1], BTP_MBN_A2_TW, l_resWANa[1], BTP_WAN_A_TW, l_resWADa[1], BTP_WAD_A_TW, l_resMATa[1], -1, l_resWCNa[1], BTP_WCN_A_TW, l_resWONa[1], BTP_WON_A_TW, l_resWGNa[1], BTP_WGN_A_TW, l_resWANb[1], BTP_WAN_B_TW, l_resWANa2[1], BTP_WAN_A2_TW, l_resWADa2[1], BTP_WAD_A2_TW, l_resMATa2[1], -1, l_resWCNa2[1], BTP_WCN_A2_TW, l_resWONa2[1], BTP_WON_A2_TW, l_resWGNa2[1], BTP_WGN_A2_TW, l_resWANb2[1], BTP_WAN_B2_TW, }; /* 80987DB4-80987F64 -00001 01B0+00 1/1 0/0 0/0 .data l_bckTbl_M */ static anmTblPrm l_bckTbl_M[54] = { {"Mgeneral", BCK_M_WAIT_A}, {"Mgeneral", BCK_M_WAIT_B}, {"Mgeneral", BCK_M_WALK_A}, {"Mgeneral", BCK_M_WALK_B}, {"Mgeneral", BCK_M_RUN_A}, {"Mgeneral", BCK_M_RUN_B}, {"Mgeneral", BCK_M_TALK_A}, {"Mgeneral", BCK_M_TALK_B}, {"Mgeneral", BCK_M_TALK_C}, {"Mgeneral", BCK_M_LOOK_A}, {"Mgeneral", BCK_M_LOOK_B}, {"Mgeneral", BCK_M_WAIT_WALL}, {"Mgeneral", BCK_M_TALK_WALL}, {"Mgeneral", BCK_M_TALK_B_WALL}, {"Mgeneral", BCK_M_SITWAIT_A}, {"Mgeneral", BCK_M_SITTALK_A}, {"Mgeneral", BCK_M_SITTALK_A_B}, {"Mgeneral", BCK_M_SITWAIT_B}, {"Mgeneral", BCK_M_SITTALK_B}, {"Mgeneral", BCK_M_SITTALK_B_B}, {"Mgeneral", BCK_M_BROWSE_A}, {"Mgeneral", BCK_M_BROWSE_B}, {"Mspecial", BCK_M_WAIT_KAGO}, {"Mspecial", BCK_M_TALK_KAGO}, {"Mspecial", BCK_M_TALK_B_KAGO}, {"Mspecial", BCK_M_WALK_KAGO}, {"Mspecial", BCK_M_WAIT_STICK}, {"Mspecial", BCK_M_TALK_STICK}, {"Mspecial", BCK_M_TALK_B_STICK}, {"Mspecial", BCK_M_WALK_STICK}, {"Mspecial", BCK_M_WAIT_TUBO}, {"Mspecial", BCK_M_TALK_TUBO}, {"Mspecial", BCK_M_TALK_B_TUBO}, {"Mspecial", BCK_M_WALK_TUBO}, {"Mspecial", BCK_M_PLAYM}, {"Mspecial", BCK_M_RUN_KAGO}, {"Mspecial", BCK_M_RUN_STICK}, {"Mspecial", BCK_M_RUN_TUBO}, {"Mgeneral", BCK_M_TO_WOLF}, {"Mgeneral", BCK_M_SIT_TO_WOLF_A}, {"Mgeneral", BCK_M_SIT_TO_WOLF_B}, {"Mgeneral", BCK_M_SURPRISE}, {"Mspecial", BCK_M_KAMAE}, {"Mspecial", BCK_M_KAMAE_WAIT_B}, {"Mspecial", BCK_M_KAMAE_STEP}, {"Mspecial", BCK_M_RUN_KAMAE}, {"Mspecial", BCK_M_KAMAE_C}, {"Mgeneral", BCK_M_MARO_DANCE}, {"Mgeneral", -1}, {"Mgeneral", -1}, {"Mgeneral", -1}, {"Mgeneral", -1}, {"Mgeneral", -1}, {"Mgeneral", BCK_M_SING}, }; /* 80987F64-80988114 -00001 01B0+00 1/1 0/0 0/0 .data l_bckTbl_W */ static anmTblPrm l_bckTbl_W[54] = { {"Wgeneral", BCK_W_WAIT_A}, {"Wgeneral", BCK_W_WAIT_B}, {"Wgeneral", BCK_W_WALK_A}, {"Wgeneral", BCK_W_WALK_B}, {"Wgeneral", BCK_W_RUN_A}, {"Wgeneral", BCK_W_RUN_B}, {"Wgeneral", BCK_W_TALK_A}, {"Wgeneral", BCK_W_TALK_B}, {"Wgeneral", BCK_W_TALK_C}, {"Wgeneral", BCK_W_LOOK_A}, {"Wgeneral", BCK_W_LOOK_B}, {"Wgeneral", BCK_W_WAIT_WALL}, {"Wgeneral", BCK_W_TALK_WALL}, {"Wgeneral", BCK_W_TALK_B_WALL}, {"Wgeneral", BCK_W_SITWAIT_A}, {"Wgeneral", BCK_W_SITTALK_A}, {"Wgeneral", BCK_W_SITTALK_A_B}, {"Wgeneral", BCK_W_SITWAIT_B}, {"Wgeneral", BCK_W_SITTALK_B}, {"Wgeneral", BCK_W_SITTALK_B_B}, {"Wgeneral", BCK_W_BROWSE_A}, {"Wgeneral", BCK_W_BROWSE_B}, {"Wspecial", BCK_W_WAIT_KAGO}, {"Wspecial", BCK_W_TALK_KAGO}, {"Wspecial", BCK_W_TALK_B_KAGO}, {"Wspecial", BCK_W_WALK_KAGO}, {"Wspecial", BCK_W_WAIT_STICK}, {"Wspecial", BCK_W_TALK_STICK}, {"Wspecial", BCK_W_TALK_B_STICK}, {"Wspecial", BCK_W_WALK_STICK}, {"Wspecial", BCK_W_WAIT_TUBO}, {"Wspecial", BCK_W_TALK_TUBO}, {"Wspecial", BCK_W_TALK_B_TUBO}, {"Wspecial", BCK_W_WALK_TUBO}, {"Wspecial", BCK_W_PLAYM}, {"Wspecial", BCK_W_RUN_KAGO}, {"Wspecial", BCK_W_RUN_STICK}, {"Wspecial", BCK_W_RUN_TUBO}, {"Wgeneral", BCK_W_TO_WOLF}, {"Wgeneral", BCK_W_SIT_TO_WOLF_A}, {"Wgeneral", BCK_W_SIT_TO_WOLF_B}, {"Wgeneral", BCK_W_SURPRISE}, {"Wspecial", -1}, {"Wspecial", -1}, {"Wspecial", -1}, {"Wspecial", -1}, {"Wspecial", -1}, {"Wgeneral", BCK_W_MARO_DANCE}, {"Wgeneral", BCK_W_2LADYTALK_A}, {"Wgeneral", BCK_W_2LADYTALK_B}, {"Wgeneral", BCK_W_2NORMALTALK_A}, {"Wgeneral", BCK_W_2NORMALTALK_B}, {"Wgeneral", BCK_W_CELLME}, {"Wgeneral", BCK_W_SING}, }; struct jnt { /* 0x00 */ f32 jntT[3]; /* 0X0C */ s16 jntR[3]; /* 0x12 */ u8 field_0x12; /* 0x13 */ u8 field_0x13; }; struct jntTblMPrm { /* 0x0 */ jnt jntPrm[19]; }; struct jntTblWPrm { /* 0x0 */ jnt jntPrm[21]; }; /* 80988114-809898D4 0007B8 17C0+00 1/1 0/0 0/0 .data a_jntTbl_M */ static jntTblMPrm a_jntTbl_M[16] = { { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0xB, 0, 0xFFEE, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, -0.3f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFEC, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFCE, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFBF, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0x46, 0xA, 0x1E, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x32, 0xFFFB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0xFFBA, 0xA, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x32, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xF, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0xB, 0, 0xFFEE, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, -0.3f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFEC, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFCE, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFBF, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0x46, 0xA, 0x1E, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x32, 0xFFFB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0xFFBA, 0xA, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x32, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xF, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, }; /* 809898D4-80989CD4 001F78 0400+00 3/4 0/0 0/0 .data a_prmTbl_M */ struct prmTbl { /* 0x00 */ f32 field_0x0; /* 0x04 */ u8 field_0x4[0x18 - 0x4]; /* 0x18 */ f32 field_0x18; /* 0x1C */ s16 field_0x1c; /* 0x1E */ u8 field_0x1e[0x20 - 0x1e]; /* 0x20 */ f32 field_0x20; /* 0x24 */ f32 field_0x24; /* 0x28 */ f32 field_0x28; /* 0x2C */ f32 field_0x2c; /* 0x30 */ f32 field_0x30; /* 0x34 */ f32 field_0x34; /* 0x38 */ f32 field_0x38; /* 0x3C */ f32 field_0x3c; }; static prmTbl a_prmTbl_M[16] = { -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.8f, 16.0f, 6.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.4f, 0xF0, 0x00, 0x00, 1.4f, 1.8f, 14.0f, 6.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.7f, 0x8C, 0x00, 0x00, 1.7f, 2.0f, 12.0f, 4.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.9f, 0xC8, 0x00, 0x00, 1.3f, 1.2f, 12.0f, 3.7f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.5f, 16.0f, 5.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.5f, 16.0f, 5.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.8f, 15.0f, 5.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.8f, 16.0f, 6.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.8f, 16.0f, 6.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.4f, 0xF0, 0x00, 0x00, 1.4f, 1.8f, 14.0f, 6.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.7f, 0x8C, 0x00, 0x00, 1.7f, 2.0f, 12.0f, 4.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.9f, 0xC8, 0x00, 0x00, 1.3f, 1.2f, 12.0f, 3.7f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.5f, 16.0f, 5.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.5f, 16.0f, 5.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.8f, 15.0f, 5.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.8f, 16.0f, 6.0f, 180.0f, 30.0f, 50.1f, 35.0f, }; /* 80989CD4-8098B3CC 002378 16F8+00 1/1 0/0 0/0 .data a_jntTbl_W */ static jntTblWPrm a_jntTbl_W[14] = { { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xB, 8, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, -0.3f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFEC, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFCE, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFBF, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 8, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 8, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xF, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0x14, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xB, 8, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, -0.3f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFEC, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFCE, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xFFBF, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 8, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 5, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 8, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0xF, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xA, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0xA, 0, 0xFFE2, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0xFFF6, 0xB, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 1, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, { 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0, 0, 0, }, }; /* 8098B3CC-8098B74C 003A70 0380+00 3/4 0/0 0/0 .data a_prmTbl_W */ static prmTbl a_prmTbl_W[14] = { -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.4f, 1.5f, 10.0f, 4.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.5f, 10.0f, 3.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.3f, 1.2f, 10.0f, 3.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.6f, 0xC8, 0x00, 0x00, 1.8f, 1.5f, 9.0f, 3.2f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.8f, 0xC8, 0x00, 0x00, 1.3f, 1.2f, 8.0f, 2.8f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.4f, 1.3f, 10.0f, 2.6f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.6f, 10.0f, 4.4f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.4f, 1.5f, 10.0f, 4.0f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.5f, 10.0f, 3.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.3f, 1.2f, 10.0f, 3.5f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.6f, 0xC8, 0x00, 0x00, 1.8f, 1.5f, 9.0f, 3.2f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 0.8f, 0xC8, 0x00, 0x00, 1.3f, 1.2f, 8.0f, 2.8f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.4f, 1.3f, 10.0f, 2.6f, 180.0f, 30.0f, 50.1f, 35.0f, -852593.0f, 0xB9, 0xB0, 0xD8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0x3A, 0x98, 0xE0, 0xC0, 0xC5, 0x68, 1.0f, 0xC8, 0x00, 0x00, 1.5f, 1.6f, 10.0f, 4.4f, 180.0f, 30.0f, 50.1f, 35.0f, }; /* 8098B74C-8098B750 003DF0 0004+00 0/1 0/0 0/0 .data l_evtNames */ static char* l_evtNames[1] = { NULL, }; /* 8098B750-8098B754 -00001 0004+00 0/2 0/0 0/0 .data l_myName */ static char* l_myName = "Chat"; /* 8098BACC-8098BAD0 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ static daNpcChat_Param_c l_HIO; /* 8098B754-8098B760 003DF8 000C+00 0/2 0/0 0/0 .data mEvtSeqList__11daNpcChat_c */ daNpcChat_c::eventFunc daNpcChat_c::mEvtSeqList[1] = { NULL, }; /* 8098084C-809809D0 0000EC 0184+00 1/1 0/0 0/0 .text __ct__11daNpcChat_cFv */ daNpcChat_c::daNpcChat_c() {} /* 80980A60-80980C1C 000300 01BC+00 1/0 0/0 0/0 .text __dt__11daNpcChat_cFv */ daNpcChat_c::~daNpcChat_c() { removeResrc(mType, mObjNum); if (heap != NULL) { mAnm_p->stopZelAnime(); } } /* 80986C6C-80986CD4 -00001 0068+00 1/1 0/0 0/0 .rodata l_objTbl */ static anmTblPrm const l_objTbl[13] = { {"object", BMDR_B_TUBO}, {"object", BMDR_B_TUBO}, {"object", BMDR_B_SPEAR}, {"object", BMDR_B_BROOM}, {"object", BMDR_K_KAGOM}, {"object", BMDR_K_KAGOW}, {"object", BMDR_J_GUITAR}, {"object", BMDR_B_FLUTE}, {"object", BMDR_B_MILKTUBO}, {"object", BMDR_CELEB_BAG_M}, {"object", BMDR_CELEB_BAG_W}, {"object", BMDR_MARO_BAG_M}, {"object", BMDR_MARO_BAG_W}, }; /* 80986CD4-80986D3C -00001 0068+00 1/1 0/0 0/0 .rodata l_objTWTbl */ static anmTblPrm const l_objTWTbl[13] = { {"objectTW", BMDR_B_TUBO_TW}, {"objectTW", BMDR_B_TUBO_TW}, {"objectTW", BMDR_B_SPEAR_TW}, {"objectTW", BMDR_B_BROOM_TW}, {"objectTW", BMDR_K_KAGOM_TW}, {"objectTW", BMDR_K_KAGOW_TW}, {"objectTW", BMDR_J_GUITAR_TW}, {"objectTW", BMDR_B_FLUTE_TW}, {"objectTW", BMDR_B_MILKTUBO_TW}, {"objectTW", BMDR_CELEB_BAG_M_TW}, {"objectTW", BMDR_CELEB_BAG_W_TW}, {"objectTW", -1}, {"objectTW", -1}, }; /* 80986D3C-80986DA8 0003A0 006C+00 1/3 0/0 0/0 .rodata m__17daNpcChat_Param_c */ daNpcChat_HIOParam const daNpcChat_Param_c::m = { 55.0f, -3.0f, 1.0f, 500.0f, 255.0f, 140.0f, 35.0f, 30.0f, 0.0f, 0.0f, 10.0f, -10.0f, 30.0f, -10.0f, 45.0f, -45.0f, 0.6f, 12.0f, 2, 6, 3, 6, 60.0f, 500.0f, 300.0f, -300.0f, 60, 0, 0, 0, 0, false, false, }; /* 80980C1C-80980E20 0004BC 0204+00 1/1 0/0 0/0 .text NpcCreate__11daNpcChat_cFi */ BOOL daNpcChat_c::NpcCreate(int type) { J3DModelData* a_mdlData_p = getNpcMdlDataP(type); JUT_ASSERT(185, NULL != a_mdlData_p); J3DAnmTexPattern* texAnmP = getTexAnmP(type); u32 uVar1 = texAnmP != NULL ? 0x11020084 : 0x11000084; mAnm_p = new mDoExt_McaMorfSO(a_mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, uVar1); if (mAnm_p != NULL && mAnm_p->getModel() == NULL) { mAnm_p->stopZelAnime(); mAnm_p = NULL; } if (mAnm_p == NULL) { return FALSE; } static Vec const a_transScaleTbl[30] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.1983438f, 2.173357f, 1.0f, 0.5581154f, 1.0f, 1.0f, 0.95f, 1.0f, 1.0f, 1.1642542f, 1.0f, 1.0f, 1.0820773f, 1.0f, 1.0f, 0.78816104f, 1.0f, 1.0f, 0.91999996f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.1983438f, 2.173357f, 1.0f, 0.5581154f, 1.0f, 1.0f, 0.95f, 1.0f, 1.0f, 1.1642542f, 1.0f, 1.0f, 1.0820773f, 1.0f, 1.0f, 0.78816104f, 1.0f, 1.0f, 0.91999996f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.95f, 1.0f, 1.0f, 1.0999999f, 1.0f, 1.0f, 0.5656486f, 1.0f, 1.0f, 0.9f, 1.0f, 1.0f, 0.8630768f, 1.0f, 1.0f, 1.0529536f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.95f, 1.0f, 1.0f, 1.0999999f, 1.0f, 1.0f, 0.5656486f, 1.0f, 1.0f, 0.9f, 1.0f, 1.0f, 0.8630768f, 1.0f, 1.0f, 1.0529536f, 1.0f, }; cXyz i_scale(a_transScaleTbl[type]); mAnm_p->offTranslate(); mAnm_p->setTranslateScale(i_scale); J3DJointCallBack jointCallBack = a_mdlData_p->getJointNodePointer(0)->getCallBack(); uintptr_t userArea = mAnm_p->getModel()->getUserArea(); for (u16 i = 0; i < a_mdlData_p->getJointNum(); i++) { a_mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } mAnm_p->getModel()->setUserArea((uintptr_t)this); if (!setExpressionBtp(type)) { return FALSE; } setMotionAnm(0, 0.0f); for (u16 i = 0; i < a_mdlData_p->getJointNum(); i++) { a_mdlData_p->getJointNodePointer(i)->setCallBack(jointCallBack); } mAnm_p->getModel()->setUserArea(userArea); return TRUE; } /* 80980E20-80980F88 0006C0 0168+00 3/1 0/0 0/0 .text getObjNum__11daNpcChat_cFv */ int daNpcChat_c::getObjNum() { int objNum; u32 param = (fopAcM_GetParam(this) >> 8) & 0xF; if (isM_()) { switch (param) { case 0: objNum = OBJ_TUBO; break; case 1: objNum = OBJ_TUBO2; break; case 2: objNum = OBJ_SPEAR; break; case 3: objNum = OBJ_KAGOM; break; case 4: objNum = OBJ_GUITAR; break; case 5: objNum = OBJ_TUBO; break; case 6: objNum = OBJ_TUBO; break; case 7: objNum = OBJ_CELEB_BAG_M; break; default: objNum = OBJ_TUBO; break; } // dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && objNum == OBJ_CELEB_BAG_M) { objNum = OBJ_MARO_BAG_M; } } else { switch (param) { case 0: objNum = OBJ_TUBO; break; case 1: objNum = OBJ_MILKTUBO; break; case 2: objNum = OBJ_BROOM; break; case 3: objNum = OBJ_KAGOW; break; case 4: objNum = OBJ_FLUTE; break; case 5: objNum = OBJ_TUBO; break; case 6: objNum = OBJ_TUBO; break; case 7: objNum = OBJ_CELEB_BAG_W; break; default: objNum = OBJ_TUBO; break; } // dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && objNum == OBJ_CELEB_BAG_W) { objNum = OBJ_MARO_BAG_W; } } return objNum; } /* 80980F88-80980FC8 000828 0040+00 1/1 0/0 0/0 .text ObjCreate__11daNpcChat_cFi */ J3DModel* daNpcChat_c::ObjCreate(int param_1) { J3DModelData* a_mdlData_p = getObjMdlDataP(param_1); if (a_mdlData_p != NULL) { return mDoExt_J3DModel__create(a_mdlData_p, 0x80000, 0x11000084); } return NULL; } /* 80980FC8-80981108 000868 0140+00 1/1 0/0 0/0 .text ChairCreate__11daNpcChat_cFf */ J3DModel* daNpcChat_c::ChairCreate(f32 i_scale) { const char* i_arcName = mTwilight ? "objectTW" : "object"; int i_index = isM_() ? ((mTwilight != 0) ? 4 : 4) : ((mTwilight != 0) ? 5 : 5); J3DModelData* a_mdlData_p = (J3DModelData*)dComIfG_getObjectRes(i_arcName, i_index); if (a_mdlData_p != NULL) { J3DModel* model = mDoExt_J3DModel__create(a_mdlData_p, 0x80000, 0x11000084); if (model == NULL) { return NULL; } Vec scale = {i_scale, i_scale, i_scale}; mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::ZXYrotM(shape_angle); model->setBaseScale(scale); model->setBaseTRMtx(mDoMtx_stack_c::get()); return model; } return NULL; } /* 80981108-80981140 0009A8 0038+00 5/5 0/0 0/0 .text isM___11daNpcChat_cFv */ bool daNpcChat_c::isM_() { if (mAnm_p == NULL) { return mType < 16; } u16 a_jntNum = mAnm_p->getModel()->getModelData()->getJointNum(); JUT_ASSERT(738, (a_jntNum == JntM_NUM_e) || (a_jntNum == JntW_NUM_e)); return a_jntNum == JntM_NUM_e; } /* 80981140-80981280 0009E0 0140+00 1/1 0/0 0/0 .text loadResrc__11daNpcChat_cFii */ cPhs__Step daNpcChat_c::loadResrc(int idx, int param_2) { cPhs__Step rv = cPhs_COMPLEATE_e; if (mTwilight) { rv = (cPhs__Step)dComIfG_resLoad(&mPhase1, l_resNameTbl[idx][1]); if (rv != cPhs_COMPLEATE_e) { return rv; } } else { rv = (cPhs__Step)dComIfG_resLoad(&mPhase1, l_resNameTbl[idx][0]); if (rv != cPhs_COMPLEATE_e) { return rv; } } rv = (cPhs__Step)dComIfG_resLoad(&mPhase2, l_resNameTbl[idx][2]); if (rv != cPhs_COMPLEATE_e) { return rv; } if (param_2 != 0 || field_0xe51 == 1) { rv = (cPhs__Step)dComIfG_resLoad(&mPhase3, l_resNameTbl[idx][3]); if (rv != cPhs_COMPLEATE_e) { return rv; } if (mTwilight) { rv = (cPhs__Step)dComIfG_resLoad(&mPhase4, l_resNameTbl[idx][5]); if (rv != cPhs_COMPLEATE_e) { return rv; } } else { rv = (cPhs__Step)dComIfG_resLoad(&mPhase4, l_resNameTbl[idx][4]); if (rv != cPhs_COMPLEATE_e) { return rv; } } } return rv; } /* 80981280-809812FC 000B20 007C+00 1/1 0/0 0/0 .text getNpcMdlDataP__11daNpcChat_cFi */ J3DModelData* daNpcChat_c::getNpcMdlDataP(int i_index) { if (i_index < 0 || i_index >= 30) { return NULL; } J3DModelData* model_data; const anmTblPrm* def = mTwilight ? &l_bmdTWTbl[i_index] : &l_bmdTbl[i_index]; model_data = (J3DModelData*)dComIfG_getObjectRes(def->arc_name, def->resource_index); return model_data; } /* 809812FC-80981374 000B9C 0078+00 1/1 0/0 0/0 .text getObjMdlDataP__11daNpcChat_cFi */ J3DModelData* daNpcChat_c::getObjMdlDataP(int i_index) { J3DModelData* model_data = NULL; const anmTblPrm* def = mTwilight ? &l_objTWTbl[i_index] : &l_objTbl[i_index]; if (def->resource_index > 0) { model_data = (J3DModelData*)dComIfG_getObjectRes(def->arc_name, def->resource_index); } return model_data; } /* 80981374-809813E8 000C14 0074+00 2/2 0/0 0/0 .text getTexAnmP__11daNpcChat_cFi */ J3DAnmTexPattern* daNpcChat_c::getTexAnmP(int i_index) { const anmTblPrm* def; if (mTwilight) { def = &l_btpTWTbl[i_index]; } else { def = &l_btpTbl[i_index]; } if (def->resource_index != -1) { return (J3DAnmTexPattern*)dComIfG_getObjectRes(def->arc_name, def->resource_index); } return NULL; } /* 809813E8-809814DC 000C88 00F4+00 1/1 0/0 0/0 .text removeResrc__11daNpcChat_cFii */ BOOL daNpcChat_c::removeResrc(int idx, int param_2) { if (mTwilight) { dComIfG_resDelete(&mPhase1, l_resNameTbl[idx][1]); } else { dComIfG_resDelete(&mPhase1, l_resNameTbl[idx][0]); } dComIfG_resDelete(&mPhase2, l_resNameTbl[idx][2]); if (param_2 != 0 || field_0xe51 == 1) { dComIfG_resDelete(&mPhase3, l_resNameTbl[idx][3]); if (mTwilight) { dComIfG_resDelete(&mPhase4, l_resNameTbl[idx][5]); } else { dComIfG_resDelete(&mPhase4, l_resNameTbl[idx][4]); } } return TRUE; } inline f32 AtnOfs(int param_1) { return param_1 < 16 ? a_prmTbl_M[param_1].field_0x1c : a_prmTbl_W[param_1 - 16].field_0x1c; } /* 809814DC-80981E90 000D7C 09B4+00 1/1 0/0 0/0 .text setAttention__11daNpcChat_cFi */ BOOL daNpcChat_c::setAttention(int param_1) { static cXyz a_eyeOfsTbl[30] = { cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), cXyz(0.0f, 10.0f, 0.0f), }; int jointNo = isM_() ? JNTM_HEAD : JNTW_HEAD; mDoMtx_stack_c::copy(mAnm_p->getModel()->getAnmMtx(jointNo)); mDoMtx_stack_c::multVec(&a_eyeOfsTbl[param_1], &eyePos); mBaseAttnPos.set(current.pos.x, current.pos.y + AtnOfs(param_1), current.pos.z); if (field_0xe38 == 2) { if (mTalkNo == 0) { attention_info.position = mBaseAttnPos; if (mTalkMemberNum > 1) { for (int i = 1; i < mTalkMemberNum; i++) { if (mTalkMembers[i] != NULL) { attention_info.position += mTalkMembers[i]->getBaseAttnPos(); } } attention_info.position = attention_info.position / mTalkMemberNum; for (int i = 1; i < mTalkMemberNum; i++) { if (mTalkMembers[i] != NULL) { mTalkMembers[i]->attention_info.position = attention_info.position; } } } } } else { attention_info.position = mBaseAttnPos; } return TRUE; } inline f32 ChkWallR(int type) { return (f32)(type < 16 ? a_prmTbl_M[type].field_0x3c : a_prmTbl_W[type - 16].field_0x3c); } inline f32 ChkWallH(int type) { return (f32)(type < 16 ? a_prmTbl_M[type].field_0x38 : a_prmTbl_W[type - 16].field_0x38); } inline f32 CylR(int type) { return (f32)(type < 16 ? a_prmTbl_M[type].field_0x34 : a_prmTbl_W[type - 16].field_0x34); } inline f32 CylH(int type) { return (f32)(type < 16 ? a_prmTbl_M[type].field_0x30 : a_prmTbl_W[type - 16].field_0x30); } /* 80981E90-809822A0 001730 0410+00 1/1 0/0 0/0 .text Create__11daNpcChat_cFv */ cPhs__Step daNpcChat_c::Create() { if (!fopAcM_CheckCondition(this, fopAcCnd_INIT_e)) { new (this) daNpcChat_c(); fopAcM_OnCondition(this, fopAcCnd_INIT_e); } mTwilight = dKy_darkworld_check(); mType = getType(); mObjNum = getObjNum(); mTalkGroupNo = getTalkGroupNoParam(); mTalkMemberNum = getTalkMenberNumParam(); mTalkNo = getTalkNoParam(); mTalkIconType = getTalkIconTypeParam(); mTalkMotionNo = getTalkMotionNo(); mLookPlayerCheck = getLookPlayerCheck(); if (mTalkMotionNo == MOT_SITWAIT_A || mTalkMotionNo == MOT_SITTALK_SITWAIT_A || mTalkMotionNo == MOT_SITTALK_A || mTalkMotionNo == MOT_SITTALK_A_B || mTalkMotionNo == MOT_SITTALK_A_A_B) { field_0xe51 = 1; } else if (mTalkMotionNo == MOT_SITWAIT_B || mTalkMotionNo == MOT_SITTALK_SITWAIT_B || mTalkMotionNo == MOT_SITTALK_B || mTalkMotionNo == MOT_SITTALK_B_B || mTalkMotionNo == MOT_SITTALK_B_B_B) { field_0xe51 = 2; } else { field_0xe51 = 0; } JUT_ASSERT(645, mTalkMemberNum<=5); JUT_ASSERT(646, mTalkNo<5); mMsgNo = getMessageNo(); cPhs__Step phase = loadResrc(mType, mObjNum); if (phase == cPhs_COMPLEATE_e) { if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x800022E0)) { return cPhs_ERROR_e; } J3DModelData* mdlData_p = mAnm_p->getModel()->getModelData(); fopAcM_SetMtx(this, mAnm_p->getModel()->getBaseTRMtx()); fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -30.0f, 30.0f, 190.0f, 40.0f); mSound.init(¤t.pos, &eyePos, 3, 1); mSound.setMdlType(mType, false, mTwilight & 0xFF); #ifdef DEBUG // mHIO = l_HIO; mHIO->entryHIO("多人数会話NPC"); #endif mAcchCir.SetWall(ChkWallH(mType), ChkWallR(mType)); mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); mAcch.CrrPos(dComIfG_Bgsp()); mCcStts.Init(daNpcChat_Param_c::m.common.weight, 0, this); mCyl.Set(mCcDCyl); mCyl.SetStts(&mCcStts); mCyl.SetTgType(0); mCyl.SetTgSPrm(0); mCyl.SetR(CylR(mType)); mCyl.SetH(CylH(mType)); mGndChk = mAcch.m_gnd; mGroundH = mAcch.GetGroundH(); setEnvTevColor(); setRoomNo(); attention_info.distances[fopAc_attn_SPEAK_e] = fopAc_AttnFlag_ETC_e | fopAc_AttnFlag_JUEL_e | fopAc_AttnFlag_CARRY_e | fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_LOCK_e; attention_info.distances[fopAc_attn_TALK_e] = fopAc_AttnFlag_ETC_e | fopAc_AttnFlag_JUEL_e | fopAc_AttnFlag_CARRY_e | fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_LOCK_e; reset(); Execute(); } return phase; } inline f32 ObjScale(int type) { return (f32)(type < 16 ? a_prmTbl_M[type].field_0x18 : a_prmTbl_W[type - 16].field_0x18); } /* 809822A0-809823B4 001B40 0114+00 1/1 0/0 0/0 .text CreateHeap__11daNpcChat_cFv */ BOOL daNpcChat_c::CreateHeap() { J3DModel* model; BOOL rv = NpcCreate(mType); if (rv) { if (mObjNum != OBJ_TUBO) { model = ObjCreate(mObjNum); mObjModel = model; rv = model != NULL; if (!rv) { mAnm_p->stopZelAnime(); } } else if (field_0xe51 == 1) { model = ChairCreate(ObjScale(mType)); mObjModel = model; rv = model != NULL; if (!rv) { mAnm_p->stopZelAnime(); } } else { mObjModel = NULL; rv = TRUE; } } setMotion(MOT_WAIT_A, -1.0f, 0); return rv; } /* 809823B4-809823E8 001C54 0034+00 1/1 0/0 0/0 .text Delete__11daNpcChat_cFv */ int daNpcChat_c::Delete() { fpc_ProcID id = fopAcM_GetID(this); this->~daNpcChat_c(); return 1; } /* 809823E8-809824CC 001C88 00E4+00 2/2 0/0 0/0 .text Execute__11daNpcChat_cFv */ int daNpcChat_c::Execute() { if (!appearCheck()) { return 1; } J3DModelData* a_mdlData_p = mAnm_p->getModel()->getModelData(); J3DJointCallBack callBack = a_mdlData_p->getJointNodePointer(0)->getCallBack(); u32 userArea = mAnm_p->getModel()->getUserArea(); for (u16 i = 0; i < a_mdlData_p->getJointNum(); i++) { a_mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } mAnm_p->getModel()->setUserArea((uintptr_t)this); execute(); for (u16 i = 0; i < a_mdlData_p->getJointNum(); i++) { a_mdlData_p->getJointNodePointer(i)->setCallBack(callBack); } mAnm_p->getModel()->setUserArea(userArea); return 1; } /* 809824CC-8098250C 001D6C 0040+00 1/1 0/0 0/0 .text Draw__11daNpcChat_cFv */ int daNpcChat_c::Draw() { draw(0, 0, daNpcChat_Param_c::m.common.real_shadow_size, NULL, 0); return 1; } /* 8098250C-80982780 001DAC 0274+00 1/1 0/0 0/0 .text draw__11daNpcChat_cFiifP11_GXColorS10i */ int daNpcChat_c::draw(int param_1, int param_2, f32 param_3, _GXColorS10* i_color, int param_5) { J3DModel* model = mAnm_p->getModel(); J3DModelData* a_mdlData_p = model->getModelData(); if (i_color != NULL) { tevStr.TevColor.r = i_color->r; tevStr.TevColor.g = i_color->g; tevStr.TevColor.b = i_color->b; tevStr.TevColor.a = i_color->a; } else { tevStr.TevColor.g = 0; tevStr.TevColor.r = 0; } if (mTwilight) { g_env_light.settingTevStruct(4, ¤t.pos, &tevStr); } else { g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); } g_env_light.setLightTevColorType_MAJI(model, &tevStr); if (!checkHide() && !drawDbgInfo()) { if ((mAnmFlags & ANM_PLAY_BTP) != 0) { mBtpAnm.entry(a_mdlData_p); } if ((mAnmFlags & ANM_PLAY_BTK) != 0) { mBtkAnm.entry(a_mdlData_p); } if ((mAnmFlags & ANM_PLAY_BRK) != 0) { mBrkAnm.entry(a_mdlData_p); } if (param_2 != 0) { fopAcM_setEffectMtx(this, a_mdlData_p); } if (mTwilight) { dComIfGd_setListDark(); mAnm_p->entryDL(); dComIfGd_setList(); } else { mAnm_p->entryDL(); } if ((mAnmFlags & ANM_PLAY_BTP) != 0) { mBtpAnm.remove(a_mdlData_p); } if ((mAnmFlags & ANM_PLAY_BTK) != 0) { mBtkAnm.remove(a_mdlData_p); } if ((mAnmFlags & ANM_PLAY_BRK) != 0) { mBrkAnm.remove(a_mdlData_p); } dComIfGd_setSimpleShadow(¤t.pos, mAcch.GetGroundH(), 60.0f, mAcch.m_gnd, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } drawOtherMdls(); return 1; } inline f32 JntTX(int type, int jnt_no) { return (type < 16 ? a_jntTbl_M[type].jntPrm[jnt_no].jntT[0] : a_jntTbl_W[type - 16].jntPrm[jnt_no].jntT[0]) * 10.0f; } inline f32 JntTY(int type, int jnt_no) { return (type < 16 ? a_jntTbl_M[type].jntPrm[jnt_no].jntT[1] : a_jntTbl_W[type - 16].jntPrm[jnt_no].jntT[1]) * 10.0f; } inline f32 JntTZ(int type, int jnt_no) { return (type < 16 ? a_jntTbl_M[type].jntPrm[jnt_no].jntT[2] : a_jntTbl_W[type - 16].jntPrm[jnt_no].jntT[2]) * 10.0f; } inline s16 JntRX(int type, int jnt_no) { return (type < 16 ? a_jntTbl_M[type].jntPrm[jnt_no].jntR[0] : a_jntTbl_W[type - 16].jntPrm[jnt_no].jntR[0]) * 182.04445f; } inline s16 JntRY(int type, int jnt_no) { return (type < 16 ? a_jntTbl_M[type].jntPrm[jnt_no].jntR[1] : a_jntTbl_W[type - 16].jntPrm[jnt_no].jntR[1]) * 182.04445f; } inline s16 JntRZ(int type, int jnt_no) { return (type < 16 ? a_jntTbl_M[type].jntPrm[jnt_no].jntR[2] : a_jntTbl_W[type - 16].jntPrm[jnt_no].jntR[2]) * 182.04445f; } /* 80982780-80982A98 002020 0318+00 1/1 0/0 0/0 .text ctrlJoint__11daNpcChat_cFP8J3DJointP8J3DModel */ int daNpcChat_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { int jntNo = i_joint->getJntNo(); cXyz jntT(JntTX(mType, jntNo), JntTY(mType, jntNo), JntTZ(mType, jntNo)); csXyz jntR(JntRX(mType, jntNo), JntRY(mType, jntNo), JntRZ(mType, jntNo)); mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); mDoMtx_stack_c::ZXYrotM(jntR); mDoMtx_stack_c::transM(jntT); i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); return 1; } /* 80982A98-80982AB8 002338 0020+00 1/1 0/0 0/0 .text createHeapCallBack__11daNpcChat_cFP10fopAc_ac_c */ int daNpcChat_c::createHeapCallBack(fopAc_ac_c* a_this) { daNpcChat_c* i_this = (daNpcChat_c*)a_this; return i_this->CreateHeap(); } /* 80982AB8-80982B04 002358 004C+00 2/2 0/0 0/0 .text ctrlJointCallBack__11daNpcChat_cFP8J3DJointi */ int daNpcChat_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { if (param_2 == 0) { J3DModel* model = j3dSys.getModel(); daNpcChat_c* i_this = (daNpcChat_c*)model->getUserArea(); if (i_this != NULL) { i_this->ctrlJoint(i_joint, model); } } return 1; } /* 80982B04-80982B60 0023A4 005C+00 1/1 0/0 0/0 .text s_sub__FPvPv */ static void* s_sub(void* i_actor, void* i_data) { if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_NPC_CHAT) { ((daNpcChat_c*)i_data)->setTalkMember((daNpcChat_c*)i_actor); } return NULL; } /* 80982B60-80982C10 002400 00B0+00 1/1 0/0 0/0 .text searchGroup__11daNpcChat_cFv */ BOOL daNpcChat_c::searchGroup() { switch (field_0xe38) { case 0: field_0xe38 = 1; return FALSE; case 1: fpcM_Search(s_sub, this); int iVar1 = 0; for (int i = 0; i < 5; i++) { if (mTalkMembers[i] != NULL) { iVar1++; } else { break; } } if (iVar1 >= mTalkMemberNum) { field_0xe38 = 2; } return FALSE; } return TRUE; } /* 80982C10-80982D20 0024B0 0110+00 3/2 0/0 0/0 .text appearTimeCheck__11daNpcChat_cFv */ BOOL daNpcChat_c::appearTimeCheck() { int time = dKy_darkworld_check() ? dKy_getDarktime_hour() : dKy_getdaytime_hour(); BOOL rv = FALSE; switch (mTalkGroupNo) { case 0: if (time >= 8 && time < 17) { rv = TRUE; } break; case 1: if (time >= 8 && time < 22) { rv = TRUE; } break; case 2: if (time >= 10 && time < 20) { rv = TRUE; } break; case 3: case 6: if (time >= 7 && time < 22) { rv = TRUE; } break; case 4: if (time >= 12 && time < 22) { rv = TRUE; } break; case 5: if (time >= 10) { rv = TRUE; } break; case 14: case 15: if (time >= 21 || time < 5) { rv = TRUE; } break; default: rv = TRUE; break; } return rv; } /* 80982D20-80982EB4 0025C0 0194+00 1/1 0/0 0/0 .text appearCheck__11daNpcChat_cFv */ BOOL daNpcChat_c::appearCheck() { if (searchGroup()) { if (mTalkNo == 0) { if (mHide) { if (appearTimeCheck()) { int iVar1 = 0; for (int i = 0; i < mTalkMemberNum; i++) { if (fopAcM_CheckCondition(mTalkMembers[i], fopAcCnd_NODRAW_e)) { iVar1++; } else { break; } } if (iVar1 == mTalkMemberNum) { for (int i = 0; i < mTalkMemberNum; i++) { mTalkMembers[i]->offHide(); fopAcM_OffStatus(mTalkMembers[i], fopAcM_STATUS_UNK_0x8000000); } } } } else if (!appearTimeCheck()) { int iVar2 = 0; for (int i = 0; i < mTalkMemberNum; i++) { if (fopAcM_CheckCondition(mTalkMembers[i], fopAcCnd_NODRAW_e)) { iVar2++; } else { break; } } if (iVar2 == mTalkMemberNum) { for (int i = 0; i < mTalkMemberNum; i++) { mTalkMembers[i]->onHide(); fopAcM_OnStatus(mTalkMembers[i], fopAcM_STATUS_UNK_0x8000000); } } } } if (mHide == true || fopAcM_CheckCondition(this, fopAcCnd_NODRAW_e)) { return FALSE; } } return TRUE; } /* 80982EB4-80982F4C 002754 0098+00 1/0 0/0 0/0 .text setParam__11daNpcChat_cFv */ void daNpcChat_c::setParam() { if (checkHide()) { attention_info.flags = 0; } else { if (mTalkIconType == 0) { attention_info.flags = 0xC0000A; } else { attention_info.flags = fopAc_AttnFlag_UNK_0x400000 | fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; } } #ifdef DEBUG scale.set(daNpcChat_Param_c::m.common.scale, daNpcChat_Param_c::m.common.scale, daNpcChat_Param_c::m.common.scale); mAcchCir.SetWallR(daNpcChat_Param_c::m.common.width); mAcchCir.SetWallH(daNpcChat_Param_c::m.common.knee_length); gravity = daNpcChat_Param_c::m.common.gravity; #endif } /* 80982F4C-80982FA4 0027EC 0058+00 1/0 0/0 0/0 .text main__11daNpcChat_cFv */ BOOL daNpcChat_c::main() { if (mAction) { (this->*mAction)(NULL); } playMotion(); return TRUE; } /* 80982FA4-809830EC 002844 0148+00 1/0 0/0 0/0 .text setAttnPos__11daNpcChat_cFv */ void daNpcChat_c::setAttnPos() { if (field_0xe1c == 1) { for (int i = 0; i < 3; i++) { mLookatAngle[i].setall(0); } } daNpcF_c::setMtx(); cXyz sp28(10.0f, 15.0f, 0.0f); mDoMtx_stack_c::copy(mAnm_p->getModel()->getAnmMtx(3)); mDoMtx_stack_c::multVecZero(&mHeadPos); mDoMtx_stack_c::multVec(&sp28, &eyePos); sp28.x = 0.0f; mDoMtx_stack_c::multVec(&sp28, &sp28); mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp28); mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp28); setAttention(mType); mCyl.SetC(current.pos); dComIfG_Ccsp()->Set(&mCyl); } /* 809830EC-80983168 00298C 007C+00 1/0 0/0 0/0 .text setExpressionBtp__11daNpcChat_cFi */ bool daNpcChat_c::setExpressionBtp(int i_index) { J3DAnmTexPattern* i_btp = getTexAnmP(i_index); if (i_btp == NULL) { return true; } J3DModelData* a_mdlData_p = mAnm_p->getModel()->getModelData(); if (setBtpAnm(i_btp, a_mdlData_p, 1.0f, J3DFrameCtrl::EMode_LOOP)) { mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP; return true; } OS_REPORT("%s: 表情Btpアニメーションの登録に失敗しました!\n", "d_a_npc_chat.cpp"); return false; } /* 80983168-80983584 002A08 041C+00 3/0 0/0 0/0 .text setMotionAnm__11daNpcChat_cFif */ void daNpcChat_c::setMotionAnm(int i_index, f32 i_morf) { J3DAnmTransformKey* anm; int i_attr = J3DFrameCtrl::EMode_LOOP; int index = i_index; int objNum = mObjNum; mMotionAnm = index; switch (index) { case ANM_WAIT_A: case ANM_WAIT_KAGO: case ANM_WAIT_STICK: case ANM_WAIT_TUBO: case ANM_PLAYM: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_WAIT_TUBO; break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_WAIT_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_WAIT_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_WAIT_B: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_WAIT_TUBO; break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_WAIT_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_WAIT_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_WALK_A: case ANM_WALK_KAGO: case ANM_WALK_STICK: case ANM_WALK_TUBO: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_WALK_TUBO; break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_WALK_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_WALK_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case 3: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_WALK_TUBO; break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_WALK_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_WALK_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_TALK_A: case ANM_TALK_KAGO: case ANM_TALK_STICK: case ANM_TALK_TUBO: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_TALK_TUBO; break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_TALK_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_TALK_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_TALK_B: case ANM_TALK_B_KAGO: case ANM_TALK_B_STICK: case ANM_TALK_B_TUBO: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_TALK_B_TUBO; break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_TALK_B_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_TALK_B_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_RUN_A: case ANM_RUN_B: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: index = ANM_RUN_TUBO; break; case OBJ_SPEAR: index = ANM_RUN_KAMAE; break; case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: index = ANM_RUN_STICK; break; case OBJ_KAGOM: case OBJ_KAGOW: index = ANM_RUN_KAGO; break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_TALK_C: case ANM_LOOK_A: case ANM_LOOK_B: case ANM_WAIT_WALL: case ANM_TALK_WALL: case ANM_TALK_B_WALL: case ANM_SITWAIT_A: case ANM_SITTALK_A: case ANM_SITTALK_A_B: case ANM_SITWAIT_B: case ANM_SITTALK_B: case ANM_SITTALK_B_B: case ANM_BROWSE_A: case ANM_BROWSE_B: switch (objNum) { case OBJ_TUBO2: case OBJ_MILKTUBO: break; case OBJ_SPEAR: case OBJ_BROOM: case OBJ_CELEB_BAG_M: case OBJ_CELEB_BAG_W: case OBJ_MARO_BAG_M: case OBJ_MARO_BAG_W: break; case OBJ_KAGOM: case OBJ_KAGOW: break; case OBJ_GUITAR: case OBJ_FLUTE: index = ANM_PLAYM; break; } break; case ANM_TO_WOLF: case ANM_SIT_TO_WOLF_A: case ANM_SIT_TO_WOLF_B: case ANM_SURPRISE: case ANM_MARO_DANCE: case ANM_2LADYTALK_A: case ANM_2LADYTALK_B: case ANM_2NORMALTALK_A: case ANM_2NORMALTALK_B: case ANM_CELLME: case ANM_SING: break; case ANM_KAMAE: case ANM_KAMAE_WAIT_B: case ANM_KAMAE_STEP: case ANM_KAMAE_C: JUT_ASSERT(1557, mType == MdlMANa_e || mType == MdlMADa_e); break; case ANM_RUN_KAGO: case ANM_RUN_STICK: case ANM_RUN_TUBO: case ANM_RUN_KAMAE: default: return; } switch (index) { case ANM_TALK_C: mSound.playVoice(3); break; case ANM_2LADYTALK_B: mSound.playVoice(4); break; case ANM_SURPRISE: mSound.playVoice(1); break; case ANM_BROWSE_A: case ANM_BROWSE_B: mSound.playVoice(5); break; } switch (index) { case ANM_SURPRISE: i_attr = J3DFrameCtrl::EMode_NONE; break; } int resIdx; char* arcName; if (isM_()) { arcName = l_bckTbl_M[index].arc_name; resIdx = l_bckTbl_M[index].resource_index; } else { arcName = l_bckTbl_W[index].arc_name; resIdx = l_bckTbl_W[index].resource_index; } if (resIdx >= 0) { anm = getTrnsfrmKeyAnmP(arcName, resIdx); mAnmFlags &= ~(ANM_PLAY_MORF | ANM_PAUSE_MORF); if (anm == NULL) { OS_REPORT("n\n\n\n\n\nAnime None!!!!!!!!!!!!!!!!!!!! %d\n\n\n\n\n\n", mType); } else if (setMcaMorfAnm(anm, 1.0f, i_morf, i_attr, 0, -1)) { mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; mMotionLoops = 0; } } } /* 80983584-809835C8 002E24 0044+00 1/0 0/0 0/0 .text setMotion__11daNpcChat_cFifi */ void daNpcChat_c::setMotion(int i_motion, f32 i_morf, int param_3) { s16 motion = i_motion; if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0x28) { mMotion = motion; mMotionMorfOverride = i_morf; mMotionPrevPhase = -1; mMotionPhase = 0; } } /* 809835C8-809835D0 002E68 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpcChat_cFv */ int daNpcChat_c::drawDbgInfo() { return 0; } /* 809835D0-809837A4 002E70 01D4+00 1/0 0/0 0/0 .text drawOtherMdls__11daNpcChat_cFv */ void daNpcChat_c::drawOtherMdls() { static int const a_jntNumTbl[13][2] = { -1, -1, JNTM_HANDL, -1, JNTM_HANDR, -1, -1, JNTW_HANDR, JNTM_HANDL, -1, -1, JNTW_HANDR, 1, -1, -1, JNTW_HANDR, -1, JNTW_HANDL, JNTM_ARMR2, -1, -1, JNTW_HANDR, JNTM_ARMR2, -1, -1, JNTW_HANDR, }; int x = isM_() ? 0 : 1; int jntNo = a_jntNumTbl[mObjNum][x]; f32 objScale = ObjScale(mType); if (field_0xe4f != 0) { if (mObjNum != OBJ_TUBO) { if (!checkHide()) { if (mObjModel != NULL && jntNo >= 0) { if (!chkAction(&daNpcChat_c::fear)) { g_env_light.setLightTevColorType_MAJI(mObjModel, &tevStr); mDoMtx_stack_c::copy(mAnm_p->getModel()->getAnmMtx(jntNo)); mDoMtx_stack_c::scaleM(objScale, objScale, objScale); mObjModel->setBaseTRMtx(mDoMtx_stack_c::get()); mDoExt_modelUpdateDL(mObjModel); } } } } else if (field_0xe51 == 1 && !mHide && mObjModel != NULL) { g_env_light.setLightTevColorType_MAJI(mObjModel, &tevStr); mDoExt_modelUpdateDL(mObjModel); } } } /* 809837A4-809837C0 003044 001C+00 1/1 0/0 0/0 .text getTalkMotionNo__11daNpcChat_cFv */ u8 daNpcChat_c::getTalkMotionNo() { u8 talkNo = home.angle.z & 0xFF; if (talkNo >= 35) { talkNo = 1; } return talkNo; } /* 809837C0-809837EC 003060 002C+00 1/1 0/0 0/0 .text getLookPlayerCheck__11daNpcChat_cFv */ bool daNpcChat_c::getLookPlayerCheck() { u8 uVar1 = (home.angle.z >> 8) & 0xFF; if ((u32)uVar1 == 1 && !mTwilight) { return true; } return false; } /* 809837EC-809839E0 00308C 01F4+00 1/1 0/0 0/0 .text reset__11daNpcChat_cFv */ void daNpcChat_c::reset() { initialize(); mLookat.initialize(); for (int i = 0; i < 1; i++) { mActorMngr[i].initialize(); } field_0xe08 = 0; field_0xe0c = 0; mAction = NULL; field_0xe1c = -1; mMode = 0; current.pos.set(home.pos); old.pos.set(current.pos); current.angle.set(0, home.angle.y, 0); old.angle = current.angle; shape_angle = current.angle; mCurAngle = current.angle; mOldAngle = mCurAngle; speedF = 0.0f; speed.setall(0.0f); field_0xe04 = fpcM_ERROR_PROCESS_ID_e; mOrderEvtNo = 0; field_0xe38 = 0; for (int i = 0; i < 5; i++) { mTalkMembers[i] = NULL; } mTalkMembers[mTalkNo] = this; mFear = false; mTalkFlag = false; if (mObjModel != NULL) { field_0xe4f = true; } else { field_0xe4f = false; } if (appearTimeCheck()) { mHide = false; } else { mHide = true; fopAcM_OnStatus(this, fopAcM_STATUS_UNK_0x8000000); } setAction(&daNpcChat_c::wait); mMotionMorfOverride = 0.0f; } /* 809839E0-80984DD0 003280 13F0+00 1/1 0/0 0/0 .text playMotion__11daNpcChat_cFv */ void daNpcChat_c::playMotion() { daNpcF_anmPlayData dat0 = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat0[1] = {&dat0}; daNpcF_anmPlayData dat1 = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat1[1] = {&dat1}; daNpcF_anmPlayData dat2 = {ANM_WAIT_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat2[1] = {&dat2}; daNpcF_anmPlayData dat3 = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat3[1] = {&dat3}; daNpcF_anmPlayData dat4 = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat4[1] = {&dat4}; daNpcF_anmPlayData dat5a = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat5b = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat5c = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat5d = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat5e = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat5f = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat5[6] = {&dat5a, &dat5b, &dat5c, &dat5d, &dat5e, &dat5f}; daNpcF_anmPlayData dat6 = {ANM_TALK_C, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat6[1] = {&dat6}; daNpcF_anmPlayData dat7a = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat7b = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat7c = {ANM_TALK_C, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat7d = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat7[4] = {&dat7a, &dat7b, &dat7c, &dat7d}; daNpcF_anmPlayData dat8a = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat8b = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat8c = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat8d = {ANM_WAIT_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat8e = {ANM_TALK_C, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat8[5] = {&dat8a, &dat8b, &dat8c, &dat8d, &dat8e}; daNpcF_anmPlayData dat9a = {ANM_BROWSE_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat9b = {ANM_BROWSE_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat9[2] = {&dat9a, &dat9b}; daNpcF_anmPlayData dat10a = {ANM_BROWSE_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat10b = {ANM_BROWSE_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat10c = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat10d = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat10e = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat10[5] = {&dat10a, &dat10b, &dat10c, &dat10d, &dat10e}; daNpcF_anmPlayData dat11a = {ANM_BROWSE_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat11b = {ANM_BROWSE_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat11c = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat11d = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat11e = {ANM_TALK_C, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat11f = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f}; daNpcF_anmPlayData dat12a = {ANM_2LADYTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat12b = {ANM_2NORMALTALK_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat12[2] = {&dat12a, &dat12b}; daNpcF_anmPlayData dat13a = {ANM_2LADYTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat13b = {ANM_2NORMALTALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat13[2] = {&dat13a, &dat13b}; daNpcF_anmPlayData dat14a = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat14b = {ANM_2LADYTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat14c = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat14d = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat14e = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat14[5] = {&dat14a, &dat14b, &dat14c, &dat14d, &dat14e}; daNpcF_anmPlayData dat15a = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat15b = {ANM_2LADYTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat15c = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat15d = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat15e = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat15[5] = {&dat15a, &dat15b, &dat15c, &dat15d, &dat15e}; daNpcF_anmPlayData dat16a = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat16b = {ANM_2LADYTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat16c = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat16d = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat16e = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat16f = {ANM_2NORMALTALK_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat16[6] = {&dat16a, &dat16b, &dat16c, &dat16d, &dat16e, &dat16f}; daNpcF_anmPlayData dat17a = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat17b = {ANM_2LADYTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat17c = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat17d = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat17e = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat17f = {ANM_2NORMALTALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat17[6] = {&dat17a, &dat17b, &dat17c, &dat17d, &dat17e, &dat17f}; daNpcF_anmPlayData dat18a = {ANM_TALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18b = {ANM_2LADYTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18c = {ANM_2LADYTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18d = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18e = {ANM_TALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18f = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18g = {ANM_2NORMALTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat18h = {ANM_2NORMALTALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat18[8] = {&dat18a, &dat18b, &dat18c, &dat18d, &dat18e, &dat18f, &dat18g, &dat18h}; daNpcF_anmPlayData dat19 = {ANM_LOOK_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat19[1] = {&dat19}; daNpcF_anmPlayData dat20 = {ANM_LOOK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat20[1] = {&dat20}; daNpcF_anmPlayData dat21a = {ANM_LOOK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat21b = {ANM_LOOK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat21c = {ANM_WAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat21[3] = {&dat21a, &dat21b, &dat21c}; daNpcF_anmPlayData dat22 = {ANM_WAIT_WALL, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat22[1] = {&dat22}; daNpcF_anmPlayData dat23a = {ANM_TALK_WALL, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat23b = {ANM_WAIT_WALL, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat23c = {ANM_TALK_B_WALL, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat23d = {ANM_WAIT_WALL, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat23e = {ANM_TALK_WALL, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat23f = {ANM_TALK_B_WALL, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat23[6] = {&dat23a, &dat23b, &dat23c, &dat23d, &dat23e, &dat23f}; daNpcF_anmPlayData dat24 = {ANM_SITWAIT_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat24[1] = {&dat24}; daNpcF_anmPlayData dat25a = {ANM_SITTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat25b = {ANM_SITWAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat25c = {ANM_SITTALK_A_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat25d = {ANM_SITWAIT_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat25e = {ANM_SITTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat25f = {ANM_SITTALK_A_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat25[6] = {&dat25a, &dat25b, &dat25c, &dat25d, &dat25e, &dat25f}; daNpcF_anmPlayData dat26 = {ANM_SITWAIT_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat26[1] = {&dat26}; daNpcF_anmPlayData dat27a = {ANM_SITTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat27b = {ANM_SITWAIT_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat27c = {ANM_SITTALK_B_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat27d = {ANM_SITWAIT_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat27e = {ANM_SITTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat27f = {ANM_SITTALK_B_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat27[6] = {&dat27a, &dat27b, &dat27c, &dat27d, &dat27e, &dat27f}; daNpcF_anmPlayData dat28 = {ANM_SING, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat28[1] = {&dat28}; daNpcF_anmPlayData dat29 = {ANM_SITTALK_A, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat29[1] = {&dat29}; daNpcF_anmPlayData dat30 = {ANM_SITTALK_A_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat30[1] = {&dat30}; daNpcF_anmPlayData dat31a = {ANM_SITTALK_A, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat31b = {ANM_SITTALK_A_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat31[2] = {&dat31a, &dat31b}; daNpcF_anmPlayData dat32 = {ANM_SITTALK_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat32[1] = {&dat32}; daNpcF_anmPlayData dat33 = {ANM_SITTALK_B_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat33[1] = {&dat33}; daNpcF_anmPlayData dat34a = {ANM_SITTALK_B, daNpcChat_Param_c::m.common.morf_frame, 1}; daNpcF_anmPlayData dat34b = {ANM_SITTALK_B_B, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat34[2] = {&dat34a, &dat34b}; daNpcF_anmPlayData dat35 = {ANM_KAMAE, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat35[1] = {&dat35}; daNpcF_anmPlayData dat36 = {ANM_KAMAE_C, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat36[1] = {&dat36}; daNpcF_anmPlayData dat37 = {ANM_KAMAE_STEP, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat37[1] = {&dat37}; daNpcF_anmPlayData dat38 = {ANM_SURPRISE, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat38[1] = {&dat38}; daNpcF_anmPlayData dat39 = {ANM_TO_WOLF, daNpcChat_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat39[1] = {&dat39}; daNpcF_anmPlayData** ppDat[40] = { pDat0, pDat1, pDat2, pDat3, pDat4, pDat5, pDat6, pDat7, pDat8, pDat9, pDat10, pDat11, pDat12, pDat13, pDat14, pDat15, pDat16, pDat17, pDat18, pDat19, pDat20, pDat21, pDat22, pDat23, pDat24, pDat25, pDat26, pDat27, pDat28, pDat29, pDat30, pDat31, pDat32, pDat33, pDat34, pDat35, pDat36, pDat37, pDat38, pDat39, }; if (mMotion >= 0 && mMotion < 35) { playMotionAnmLoop(ppDat); } else if (mMotion < 40) { playMotionAnm(ppDat); } } /* 80984DD0-80984F34 004670 0164+00 1/1 0/0 0/0 .text playMotionAnmLoop__11daNpcChat_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ void daNpcChat_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) { daNpcF_anmPlayData* playData = NULL; if (i_data[mMotion] != NULL) { playData = i_data[mMotion][mMotionPhase]; } if (playData != NULL) { if (mMotionPrevPhase == mMotionPhase) { if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) { mMotionPhase++; playData = i_data[mMotion][mMotionPhase]; } else if (playData->numLoops == 0 && mMotionLoops >= 1) { mMotionPhase = 0; playData = i_data[mMotion][mMotionPhase]; mMotionMorfOverride = playData->morf; } } if (playData != NULL && mMotionPrevPhase != mMotionPhase) { setMotionAnm(playData->idx, 0.0f); f32 i_morf = playData->morf; if (mMotionPhase == 0 && 0.0f <= mMotionMorfOverride) { i_morf = mMotionMorfOverride; } mExpressionMorf = 0.0f; mAnm_p->setMorf(i_morf); } } mMotionPrevPhase = mMotionPhase; } /* 80984F34-80984FDC 0047D4 00A8+00 4/4 0/0 0/0 .text setAction__11daNpcChat_cFM11daNpcChat_cFPCvPvPv_b */ BOOL daNpcChat_c::setAction(actionFunc action) { mMode = 3; if (mAction) { (this->*mAction)(NULL); } mMode = 0; mAction = action; if (mAction) { (this->*mAction)(NULL); } return TRUE; } /* 80984FDC-809850D0 00487C 00F4+00 2/2 0/0 0/0 .text step__11daNpcChat_cFsi */ bool daNpcChat_c::step(s16 i_targetAngle, int param_2) { if (mTurnMode == 0) { mTurnTargetAngle = i_targetAngle; mTurnAmount = 0; if (mCurAngle.y == mTurnTargetAngle) { mTurnMode++; } current.angle.y = mCurAngle.y; shape_angle.y = current.angle.y; mTurnMode++; } else if (mTurnMode == 1) { if (turn(mTurnTargetAngle, 15.0f, 0)) { shape_angle.y = current.angle.y; mCurAngle.y = current.angle.y; mOldAngle.y = current.angle.y; mTurnMode++; } else { shape_angle.y = current.angle.y; mCurAngle.y = current.angle.y; } } return mTurnMode > 1; } /* 809850D0-80985104 004970 0034+00 1/1 0/0 0/0 .text setTalkMember__11daNpcChat_cFP11daNpcChat_c */ void daNpcChat_c::setTalkMember(daNpcChat_c* actor_p) { if (mTalkGroupNo == actor_p->getTalkGroupNo()) { int talkNo = actor_p->getTalkNo(); if (talkNo < 0) { return; } if (talkNo < 5) { mTalkMembers[talkNo] = actor_p; } } } /* 80985104-8098552C 0049A4 0428+00 4/0 0/0 0/0 .text wait__11daNpcChat_cFPv */ bool daNpcChat_c::wait(void* param_1) { int staffId; int i_expression, i_motion; int msgTimer; switch (mMode) { case 0: setMotion(mTalkMotionNo, -1.0f, 1); speedF = 0.0f; mTalkFlag = false; mMode = 2; break; case 2: if (field_0xe38 < 2) { return false; } if ( dKy_darkworld_check() == 0 && daPy_py_c::checkNowWolf() && fopAcM_searchPlayerDistanceXZ2(this) < std::pow(500.0f, 2.0f) || mFear ) { setAction(&daNpcChat_c::fear); if (!mFear) { for (int i = 0; i < mTalkMemberNum; i++) { if (mTalkMembers[i] != NULL) { mTalkMembers[i]->setFear(); } else { break; } } } } else { dComIfG_play_c& play = g_dComIfG_gameInfo.play; // fakematch if (play.getEvent().runCheck()) { if (eventInfo.checkCommandTalk()) { if (!play.getEvent().chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { setAction(&daNpcChat_c::talk); } } else { staffId = dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0); if (staffId != -1) { setAction(&daNpcChat_c::demo); } } if ( mTalkFlag && mLookPlayerCheck == 1 && mCurAngle.y != fopAcM_searchPlayerAngleY(this) && step(fopAcM_searchPlayerAngleY(this), 1) ) { mTurnMode = 0; } msgTimer = mMsgTimer; if (ctrlMsgAnm(i_expression, i_motion, this, mTalkFlag)) { setMotion(i_motion, -1.0f, 1); } if (mTalkFlag && dComIfGp_event_getTalkPartner() != this) { if (field_0xe51 == 1) { setMotion(MOT_SITWAIT_A, -1.0f, 0); } else if (field_0xe51 == 2) { setMotion(MOT_SITWAIT_B, -1.0f, 0); } else { setMotion(MOT_WAIT_A, -1.0f, 0); } } } else if (mTalkFlag) { mMode = 0; } else { if (home.angle.y != mCurAngle.y && step((s16)home.angle.y, 1)) { setMotion(mTalkMotionNo, -1.0f, 1); mTurnMode = 0; } orderEvent(mOrderSpeakEvt, l_evtNames[mOrderEvtNo], 0xFFFF, 0x28, 0xFF, 1); } } break; case 3: break; default: JUT_ASSERT(2580, FALSE); } return true; } /* 8098552C-809856C8 004DCC 019C+00 2/0 0/0 0/0 .text fear__11daNpcChat_cFPv */ bool daNpcChat_c::fear(void* param_1) { switch (mMode) { case 0: setAngle(fopAcM_searchPlayerAngleY(this)); setMotion(MOT_SURPRISE, -1.0f, 0); speedF = 0.0f; dComIfGs_onSaveDunSwitch(60); mMode = 2; break; case 2: if (mMotionAnm == ANM_SURPRISE) { if (mAnm_p->isStop()) { setMotion(MOT_TO_WOLF, -1.0f, 0); mPlayerAngleY = fopAcM_searchPlayerAngleY(this) + 0x8000; } } else { if (mCurAngle.y != mPlayerAngleY) { cLib_addCalcAngleS2(&shape_angle.y, mPlayerAngleY, 3, 0x600); setAngle(shape_angle.y); } if (mAnm_p->getFrame() >= 1.0f && mAnm_p->getFrame() < 2.0f) { mSound.playVoice(2); } } break; case 3: break; default: JUT_ASSERT(2664, FALSE); break; } return 1; } /* 809856C8-80985A84 004F68 03BC+00 1/0 0/0 0/0 .text talk__11daNpcChat_cFPv */ bool daNpcChat_c::talk(void* param_1) { bool rv = false; switch (mMode) { case 0: initTalk(mMsgNo, (fopAc_ac_c**)mTalkMembers); mMsgTimer = 0; mOrderSpeakEvt = false; for (int i = 0; i < mTalkMemberNum; i++) { if (mTalkMembers[i] != NULL) { mTalkMembers[i]->setTalkFlag(); } else { break; } } mMode = 2; break; case 2: if (mLookPlayerCheck == 1) { if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { if (talkProc(NULL, FALSE, (fopAc_ac_c**)mTalkMembers)) { setAction(&daNpcChat_c::wait); rv = true; } else { int msgTimer, i_expression, i_motion; msgTimer = mMsgTimer; if (ctrlMsgAnm(i_expression, i_motion, this, FALSE) != 0) { setMotion(i_motion, -1.0f, 0); } if (dComIfGp_event_getTalkPartner() != this && dComIfGp_event_getTalkPartner() != this) { if (field_0xe51 == 1) { setMotion(MOT_SITWAIT_A, -1.0f, 0); } else if (field_0xe51 == 2) { setMotion(MOT_SITWAIT_B, -1.0f, 0); } else { setMotion(MOT_WAIT_A, -1.0f, 0); } } } } else { if (step(fopAcM_searchPlayerAngleY(this), 1)) { mTurnMode = 0; } } } else { if (talkProc(NULL, FALSE, (fopAc_ac_c**)mTalkMembers)) { setAction(&daNpcChat_c::wait); rv = true; } else { int i_expression, i_motion; if (ctrlMsgAnm(i_expression, i_motion, this, FALSE)) { setMotion(i_motion, -1.0f, 0); } if (dComIfGp_event_getTalkPartner() != this) { if (field_0xe51 == 1) { setMotion(MOT_SITWAIT_A, -1.0f, 0); } else if (field_0xe51 == 2) { setMotion(MOT_SITWAIT_B, -1.0f, 0); } else { setMotion(MOT_WAIT_A, -1.0f, 0); } } } } break; case 3: if (!field_0x9ec) { dComIfGp_event_reset(); } break; default: JUT_ASSERT(2764, FALSE); break; } return rv; } /* 80985A84-80985BCC 005324 0148+00 1/0 0/0 0/0 .text demo__11daNpcChat_cFPv */ bool daNpcChat_c::demo(void* param_1) { dComIfGp_getEventManager(); switch (mMode) { case 0: mMode = 2; break; case 2: if (dComIfGp_event_runCheck() != FALSE) { if (eventInfo.checkCommandTalk() == false) { dEvent_manager_c& eventManager = dComIfGp_getEventManager(); s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); if (staffId != -1) { mStaffID = staffId; JUT_ASSERT(2798, NULL != mEvtSeqList[mOrderEvtNo]); if ((this->*mEvtSeqList[mOrderEvtNo])(staffId)) { eventManager.cutEnd(staffId); } } if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { dComIfGp_event_reset(); mOrderEvtNo = 0; mEventIdx = -1; setAction(&daNpcChat_c::wait); } } } break; case 3: break; default: JUT_ASSERT(2826, FALSE); break; } return true; } /* 80985BCC-80985BEC 00546C 0020+00 1/0 0/0 0/0 .text daNpcChat_Create__FPv */ static int daNpcChat_Create(void* a_this) { return static_cast(a_this)->Create(); } /* 80985BEC-80985C0C 00548C 0020+00 1/0 0/0 0/0 .text daNpcChat_Delete__FPv */ static int daNpcChat_Delete(void* a_this) { return static_cast(a_this)->Delete(); } /* 80985C0C-80985C2C 0054AC 0020+00 1/0 0/0 0/0 .text daNpcChat_Execute__FPv */ static int daNpcChat_Execute(void* a_this) { return static_cast(a_this)->Execute(); } /* 80985C2C-80985C4C 0054CC 0020+00 1/0 0/0 0/0 .text daNpcChat_Draw__FPv */ static int daNpcChat_Draw(void* a_this) { return static_cast(a_this)->Draw(); } /* 80985C4C-80985C54 0054EC 0008+00 1/0 0/0 0/0 .text daNpcChat_IsDelete__FPv */ static int daNpcChat_IsDelete(void* a_this) { return 1; } AUDIO_INSTANCES; /* 8098B94C-8098B96C -00001 0020+00 1/0 0/0 0/0 .data daNpcChat_MethodTable */ static actor_method_class daNpcChat_MethodTable = { (process_method_func)daNpcChat_Create, (process_method_func)daNpcChat_Delete, (process_method_func)daNpcChat_Execute, (process_method_func)daNpcChat_IsDelete, (process_method_func)daNpcChat_Draw, }; /* 8098B96C-8098B99C -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_CHAT */ extern actor_process_profile_definition g_profile_NPC_CHAT = { fpcLy_CURRENT_e, // mLayerID 7, // mListID fpcPi_CURRENT_e, // mListPrio PROC_NPC_CHAT, // mProcName &g_fpcLf_Method.base, // sub_method sizeof(daNpcChat_c), // mSize 0, // mSizeOther 0, // mParameters &g_fopAc_Method.base, // sub_method 398, // mPriority &daNpcChat_MethodTable, // sub_method 0x00044107, // mStatus fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType };