mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-09 15:09:50 +03:00
4138 lines
104 KiB
C++
4138 lines
104 KiB
C++
/*
|
|
by korenkonder
|
|
GitHub/GitLab: korenkonder
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "../KKdLib/default.hpp"
|
|
#include "../KKdLib/mat.hpp"
|
|
#include "../KKdLib/vec.hpp"
|
|
#include "string.hpp"
|
|
#include "vector.hpp"
|
|
#include "shader_table.hpp"
|
|
#include <glad/glad.h>
|
|
|
|
enum bone_database_bone_type {
|
|
BONE_DATABASE_BONE_ROTATION = 0x00,
|
|
BONE_DATABASE_BONE_TYPE_1 = 0x01,
|
|
BONE_DATABASE_BONE_POSITION = 0x02,
|
|
BONE_DATABASE_BONE_POSITION_ROTATION = 0x03,
|
|
BONE_DATABASE_BONE_HEAD_IK_ROTATION = 0x04,
|
|
BONE_DATABASE_BONE_ARM_IK_ROTATION = 0x05,
|
|
BONE_DATABASE_BONE_LEGS_IK_ROTATION = 0x06,
|
|
BONE_DATABASE_BONE_END = 0xFF,
|
|
};
|
|
|
|
enum bone_database_skeleton_type {
|
|
BONE_DATABASE_SKELETON_COMMON = 0,
|
|
BONE_DATABASE_SKELETON_MIKU = 1,
|
|
BONE_DATABASE_SKELETON_KAITO = 2,
|
|
BONE_DATABASE_SKELETON_LEN = 3,
|
|
BONE_DATABASE_SKELETON_LUKA = 4,
|
|
BONE_DATABASE_SKELETON_MEIKO = 5,
|
|
BONE_DATABASE_SKELETON_RIN = 6,
|
|
BONE_DATABASE_SKELETON_HAKU = 7,
|
|
BONE_DATABASE_SKELETON_NERU = 8,
|
|
BONE_DATABASE_SKELETON_SAKINE = 9,
|
|
BONE_DATABASE_SKELETON_TETO = 10,
|
|
BONE_DATABASE_SKELETON_NONE = -1,
|
|
};
|
|
|
|
enum chara_index {
|
|
CHARA_MIKU = 0,
|
|
CHARA_RIN = 1,
|
|
CHARA_LEN = 2,
|
|
CHARA_LUKA = 3,
|
|
CHARA_NERU = 4,
|
|
CHARA_HAKU = 5,
|
|
CHARA_KAITO = 6,
|
|
CHARA_MEIKO = 7,
|
|
CHARA_SAKINE = 8,
|
|
CHARA_TETO = 9,
|
|
CHARA_MAX = 10,
|
|
};
|
|
|
|
enum obj_flags {
|
|
DRAW_TASK_SHADOW = 0x00000001,
|
|
DRAW_TASK_2 = 0x00000002,
|
|
DRAW_TASK_4 = 0x00000004,
|
|
DRAW_TASK_SELF_SHADOW = 0x00000008,
|
|
DRAW_TASK_10 = 0x00000010,
|
|
DRAW_TASK_20 = 0x00000020,
|
|
DRAW_TASK_40 = 0x00000040,
|
|
DRAW_TASK_SHADOW_OBJECT = 0x00000080,
|
|
DRAW_TASK_CHARA_REFLECT = 0x00000100,
|
|
DRAW_TASK_REFLECT = 0x00000200,
|
|
DRAW_TASK_REFRACT = 0x00000400,
|
|
DRAW_TASK_800 = 0x00000800,
|
|
DRAW_TASK_TRANSLUCENT_NO_SHADOW = 0x00001000,
|
|
DRAW_TASK_SSS = 0x00002000,
|
|
DRAW_TASK_4000 = 0x00004000,
|
|
DRAW_TASK_8000 = 0x00008000,
|
|
DRAW_TASK_ALPHA_ORDER_1 = 0x00010000,
|
|
DRAW_TASK_ALPHA_ORDER_2 = 0x00020000,
|
|
DRAW_TASK_ALPHA_ORDER_3 = 0x00040000,
|
|
DRAW_TASK_80000 = 0x00080000,
|
|
DRAW_TASK_100000 = 0x00100000,
|
|
DRAW_TASK_200000 = 0x00200000,
|
|
DRAW_TASK_400000 = 0x00400000,
|
|
DRAW_TASK_800000 = 0x00800000,
|
|
DRAW_TASK_PREPROCESS = 0x01000000,
|
|
DRAW_TASK_2000000 = 0x02000000,
|
|
DRAW_TASK_4000000 = 0x04000000,
|
|
DRAW_TASK_8000000 = 0x08000000,
|
|
DRAW_TASK_10000000 = 0x10000000,
|
|
DRAW_TASK_20000000 = 0x20000000,
|
|
DRAW_TASK_40000000 = 0x40000000,
|
|
DRAW_TASK_NO_TRANSLUCENCY = 0x80000000,
|
|
};
|
|
|
|
enum ex_expression_block_stack_type {
|
|
EX_EXPRESSION_BLOCK_STACK_NUMBER = 0x00,
|
|
EX_EXPRESSION_BLOCK_STACK_VARIABLE = 0x01,
|
|
EX_EXPRESSION_BLOCK_STACK_VARIABLE_RADIAN = 0x02,
|
|
EX_EXPRESSION_BLOCK_STACK_OP1 = 0x03,
|
|
EX_EXPRESSION_BLOCK_STACK_OP2 = 0x04,
|
|
EX_EXPRESSION_BLOCK_STACK_OP3 = 0x05,
|
|
};
|
|
|
|
enum ExNodeType {
|
|
EX_NONE = 0x00,
|
|
EX_OSAGE = 0x01,
|
|
EX_EXPRESSION = 0x02,
|
|
EX_CONSTRAINT = 0x03,
|
|
EX_CLOTH = 0x04,
|
|
};
|
|
|
|
enum eyes_base_adjust_type {
|
|
EYES_BASE_ADJUST_NONE = -1,
|
|
EYES_BASE_ADJUST_DIRECTION = 0x00,
|
|
EYES_BASE_ADJUST_CLEARANCE = 0x01,
|
|
EYES_BASE_ADJUST_OFF = 0x02,
|
|
EYES_BASE_ADJUST_MAX = 0x03,
|
|
};
|
|
|
|
enum item_id {
|
|
ITEM_NONE = -1,
|
|
ITEM_BODY = 0x00,
|
|
ITEM_ATAMA = 0x01,
|
|
ITEM_KATA_R = 0x02,
|
|
ITEM_MUNE = 0x03,
|
|
ITEM_KATA_L = 0x04,
|
|
ITEM_UDE_R = 0x05,
|
|
ITEM_SENAKA = 0x06,
|
|
ITEM_UDE_L = 0x07,
|
|
ITEM_HARA = 0x08,
|
|
ITEM_KOSI = 0x09,
|
|
ITEM_TE_R = 0x0A,
|
|
ITEM_TE_L = 0x0B,
|
|
ITEM_MOMO = 0x0C,
|
|
ITEM_SUNE = 0x0D,
|
|
ITEM_ASI = 0x0E,
|
|
ITEM_KAMI = 0x0F,
|
|
ITEM_OUTER = 0x10,
|
|
ITEM_PANTS = 0x11,
|
|
ITEM_ZUJO = 0x12,
|
|
ITEM_MEGANE = 0x13,
|
|
ITEM_KUBI = 0x14,
|
|
ITEM_JOHA_USHIRO = 0x15,
|
|
ITEM_KUCHI = 0x16,
|
|
ITEM_ITEM09 = 0x17,
|
|
ITEM_ITEM10 = 0x18,
|
|
ITEM_ITEM11 = 0x19,
|
|
ITEM_ITEM12 = 0x1A,
|
|
ITEM_ITEM13 = 0x1B,
|
|
ITEM_ITEM14 = 0x1C,
|
|
ITEM_ITEM15 = 0x1D,
|
|
ITEM_ITEM16 = 0x1E,
|
|
ITEM_MAX = 0x1F,
|
|
};
|
|
|
|
enum item_sub_id {
|
|
ITEM_SUB_NONE = -1,
|
|
ITEM_SUB_ZUJO = 0x00,
|
|
ITEM_SUB_KAMI = 0x01,
|
|
ITEM_SUB_HITAI = 0x02,
|
|
ITEM_SUB_ME = 0x03,
|
|
ITEM_SUB_MEGANE = 0x04,
|
|
ITEM_SUB_MIMI = 0x05,
|
|
ITEM_SUB_KUCHI = 0x06,
|
|
ITEM_SUB_MAKI = 0x07,
|
|
ITEM_SUB_KUBI = 0x08,
|
|
ITEM_SUB_INNER = 0x09,
|
|
ITEM_SUB_OUTER = 0x0A,
|
|
ITEM_SUB_JOHA_MAE = 0x0B,
|
|
ITEM_SUB_JOHA_USHIRO = 0x0C,
|
|
ITEM_SUB_HADA = 0x0D,
|
|
ITEM_SUB_KATA = 0x0E,
|
|
ITEM_SUB_U_UDE = 0x0F,
|
|
ITEM_SUB_L_UDE = 0x10,
|
|
ITEM_SUB_TE = 0x11,
|
|
ITEM_SUB_BELT = 0x12,
|
|
ITEM_SUB_COSI = 0x13,
|
|
ITEM_SUB_PANTS = 0x14,
|
|
ITEM_SUB_ASI = 0x15,
|
|
ITEM_SUB_SUNE = 0x16,
|
|
ITEM_SUB_KUTSU = 0x17,
|
|
ITEM_SUB_HEAD = 0x18,
|
|
ITEM_SUB_MAX = 0x19,
|
|
};
|
|
|
|
enum mot_key_set_type {
|
|
MOT_KEY_SET_NONE = 0x00,
|
|
MOT_KEY_SET_STATIC = 0x01,
|
|
MOT_KEY_SET_HERMITE = 0x02,
|
|
MOT_KEY_SET_HERMITE_TANGENT = 0x03,
|
|
};
|
|
|
|
enum mothead_data_type {
|
|
MOTHEAD_DATA_TYPE_0 = 0x00,
|
|
MOTHEAD_DATA_TYPE_1 = 0x01,
|
|
MOTHEAD_DATA_TYPE_2 = 0x02,
|
|
MOTHEAD_DATA_TYPE_3 = 0x03,
|
|
MOTHEAD_DATA_TYPE_4 = 0x04,
|
|
MOTHEAD_DATA_TYPE_5 = 0x05,
|
|
MOTHEAD_DATA_TYPE_6 = 0x06,
|
|
MOTHEAD_DATA_TYPE_7 = 0x07,
|
|
MOTHEAD_DATA_TYPE_8 = 0x08,
|
|
MOTHEAD_DATA_TYPE_9 = 0x09,
|
|
MOTHEAD_DATA_TYPE_10 = 0x0A,
|
|
MOTHEAD_DATA_TYPE_11 = 0x0B,
|
|
MOTHEAD_DATA_TYPE_12 = 0x0C,
|
|
MOTHEAD_DATA_TYPE_13 = 0x0D,
|
|
MOTHEAD_DATA_TYPE_14 = 0x0E,
|
|
MOTHEAD_DATA_TYPE_15 = 0x0F,
|
|
MOTHEAD_DATA_TYPE_16 = 0x10,
|
|
MOTHEAD_DATA_TYPE_17 = 0x11,
|
|
MOTHEAD_DATA_TYPE_18 = 0x12,
|
|
MOTHEAD_DATA_TYPE_19 = 0x13,
|
|
MOTHEAD_DATA_TYPE_20 = 0x14,
|
|
MOTHEAD_DATA_TYPE_21 = 0x15,
|
|
MOTHEAD_DATA_TYPE_22 = 0x16,
|
|
MOTHEAD_DATA_TYPE_23 = 0x17,
|
|
MOTHEAD_DATA_TYPE_24 = 0x18,
|
|
MOTHEAD_DATA_TYPE_25 = 0x19,
|
|
MOTHEAD_DATA_TYPE_26 = 0x1A,
|
|
MOTHEAD_DATA_TYPE_27 = 0x1B,
|
|
MOTHEAD_DATA_TYPE_28 = 0x1C,
|
|
MOTHEAD_DATA_TYPE_29 = 0x1D,
|
|
MOTHEAD_DATA_TYPE_30 = 0x1E,
|
|
MOTHEAD_DATA_TYPE_31 = 0x1F,
|
|
MOTHEAD_DATA_TYPE_32 = 0x20,
|
|
MOTHEAD_DATA_TYPE_33 = 0x21,
|
|
MOTHEAD_DATA_TYPE_34 = 0x22,
|
|
MOTHEAD_DATA_TYPE_35 = 0x23,
|
|
MOTHEAD_DATA_TYPE_36 = 0x24,
|
|
MOTHEAD_DATA_TYPE_37 = 0x25,
|
|
MOTHEAD_DATA_TYPE_38 = 0x26,
|
|
MOTHEAD_DATA_TYPE_39 = 0x27,
|
|
MOTHEAD_DATA_TYPE_40 = 0x28,
|
|
MOTHEAD_DATA_TYPE_41 = 0x29,
|
|
MOTHEAD_DATA_TYPE_42 = 0x2A,
|
|
MOTHEAD_DATA_TYPE_43 = 0x2B,
|
|
MOTHEAD_DATA_TYPE_44 = 0x2C,
|
|
MOTHEAD_DATA_TYPE_45 = 0x2D,
|
|
MOTHEAD_DATA_TYPE_46 = 0x2E,
|
|
MOTHEAD_DATA_TYPE_47 = 0x2F,
|
|
MOTHEAD_DATA_TYPE_48 = 0x30,
|
|
MOTHEAD_DATA_TYPE_49 = 0x31,
|
|
MOTHEAD_DATA_SET_FACE_MOTION_ID = 0x32,
|
|
MOTHEAD_DATA_TYPE_51 = 0x33,
|
|
MOTHEAD_DATA_TYPE_52 = 0x34,
|
|
MOTHEAD_DATA_SET_FACE_MOTTBL_MOTION = 0x35,
|
|
MOTHEAD_DATA_SET_HAND_R_MOTTBL_MOTION = 0x36,
|
|
MOTHEAD_DATA_SET_HAND_L_MOTTBL_MOTION = 0x37,
|
|
MOTHEAD_DATA_SET_MOUTH_MOTTBL_MOTION = 0x38,
|
|
MOTHEAD_DATA_SET_EYES_MOTTBL_MOTION = 0x39,
|
|
MOTHEAD_DATA_SET_EYELID_MOTTBL_MOTION = 0x3A,
|
|
MOTHEAD_DATA_SET_ROB_CHARA_HEAD_OBJECT = 0x3B,
|
|
MOTHEAD_DATA_TYPE_60 = 0x3C,
|
|
MOTHEAD_DATA_SET_EYELID_MOTION_FROM_FACE = 0x3D,
|
|
MOTHEAD_DATA_ROB_PARTS_ADJUST = 0x3E,
|
|
MOTHEAD_DATA_TYPE_63 = 0x3F,
|
|
MOTHEAD_DATA_WIND_RESET = 0x40,
|
|
MOTHEAD_DATA_OSAGE_RESET = 0x41,
|
|
MOTHEAD_DATA_OSAGE_STEP = 0x42,
|
|
MOTHEAD_DATA_TYPE_67 = 0x43,
|
|
MOTHEAD_DATA_TYPE_68 = 0x44,
|
|
MOTHEAD_DATA_TYPE_69 = 0x45,
|
|
MOTHEAD_DATA_TYPE_70 = 0x46,
|
|
MOTHEAD_DATA_OSAGE_MOVE_CANCEL = 0x47,
|
|
MOTHEAD_DATA_TYPE_72 = 0x48,
|
|
MOTHEAD_DATA_ROB_HAND_ADJUST = 0x49,
|
|
MOTHEAD_DATA_TYPE_74 = 0x4A,
|
|
MOTHEAD_DATA_ROB_ADJUST_GLOBAL = 0x4B,
|
|
MOTHEAD_DATA_ROB_ARM_ADJUST = 0x4C,
|
|
MOTHEAD_DATA_DISABLE_EYE_MOTION = 0x4D,
|
|
MOTHEAD_DATA_TYPE_78 = 0x4E,
|
|
MOTHEAD_DATA_ROB_CHARA_COLI_RING = 0x4F,
|
|
MOTHEAD_DATA_ADJUST_GET_GLOBAL_TRANS = 0x50,
|
|
MOTHEAD_DATA_MAX = 0x51,
|
|
};
|
|
|
|
enum MotionBlendType {
|
|
MOTION_BLEND_NONE = -1,
|
|
MOTION_BLEND = 0x00,
|
|
MOTION_BLEND_FREEZE = 0x01,
|
|
MOTION_BLEND_CROSS = 0x02,
|
|
MOTION_BLEND_COMBINE = 0x03,
|
|
};
|
|
|
|
enum motion_bone_index {
|
|
MOTION_BONE_NONE = -1,
|
|
MOTION_BONE_N_HARA_CP = 0x00,
|
|
MOTION_BONE_KG_HARA_Y = 0x01,
|
|
MOTION_BONE_KL_HARA_XZ = 0x02,
|
|
MOTION_BONE_KL_HARA_ETC = 0x03,
|
|
MOTION_BONE_N_HARA = 0x04,
|
|
MOTION_BONE_CL_MUNE = 0x05,
|
|
MOTION_BONE_N_MUNE_B = 0x06,
|
|
MOTION_BONE_KL_MUNE_B_WJ = 0x07,
|
|
MOTION_BONE_KL_KUBI = 0x08,
|
|
MOTION_BONE_N_KAO = 0x09,
|
|
MOTION_BONE_CL_KAO = 0x0A,
|
|
MOTION_BONE_FACE_ROOT = 0x0B,
|
|
MOTION_BONE_N_AGO = 0x0C,
|
|
MOTION_BONE_KL_AGO_WJ = 0x0D,
|
|
MOTION_BONE_N_TOOTH_UNDER = 0x0E,
|
|
MOTION_BONE_TL_TOOTH_UNDER_WJ = 0x0F,
|
|
MOTION_BONE_N_EYE_L = 0x10,
|
|
MOTION_BONE_KL_EYE_L = 0x11,
|
|
MOTION_BONE_N_EYE_L_WJ_EX = 0x12,
|
|
MOTION_BONE_KL_HIGHLIGHT_L_WJ = 0x13,
|
|
MOTION_BONE_N_EYE_R = 0x14,
|
|
MOTION_BONE_KL_EYE_R = 0x15,
|
|
MOTION_BONE_N_EYE_R_WJ_EX = 0x16,
|
|
MOTION_BONE_KL_HIGHLIGHT_R_WJ = 0x17,
|
|
MOTION_BONE_N_EYELID_L_A = 0x18,
|
|
MOTION_BONE_TL_EYELID_L_A_WJ = 0x19,
|
|
MOTION_BONE_N_EYELID_L_B = 0x1A,
|
|
MOTION_BONE_TL_EYELID_L_B_WJ = 0x1B,
|
|
MOTION_BONE_N_EYELID_R_A = 0x1C,
|
|
MOTION_BONE_TL_EYELID_R_A_WJ = 0x1D,
|
|
MOTION_BONE_N_EYELID_R_B = 0x1E,
|
|
MOTION_BONE_TL_EYELID_R_B_WJ = 0x1F,
|
|
MOTION_BONE_N_KUTI_D = 0x20,
|
|
MOTION_BONE_TL_KUTI_D_WJ = 0x21,
|
|
MOTION_BONE_N_KUTI_D_L = 0x22,
|
|
MOTION_BONE_TL_KUTI_D_L_WJ = 0x23,
|
|
MOTION_BONE_N_KUTI_D_R = 0x24,
|
|
MOTION_BONE_TL_KUTI_D_R_WJ = 0x25,
|
|
MOTION_BONE_N_KUTI_DS_L = 0x26,
|
|
MOTION_BONE_TL_KUTI_DS_L_WJ = 0x27,
|
|
MOTION_BONE_N_KUTI_DS_R = 0x28,
|
|
MOTION_BONE_TL_KUTI_DS_R_WJ = 0x29,
|
|
MOTION_BONE_N_KUTI_L = 0x2A,
|
|
MOTION_BONE_TL_KUTI_L_WJ = 0x2B,
|
|
MOTION_BONE_N_KUTI_M_L = 0x2C,
|
|
MOTION_BONE_TL_KUTI_M_L_WJ = 0x2D,
|
|
MOTION_BONE_N_KUTI_M_R = 0x2E,
|
|
MOTION_BONE_TL_KUTI_M_R_WJ = 0x2F,
|
|
MOTION_BONE_N_KUTI_R = 0x30,
|
|
MOTION_BONE_TL_KUTI_R_WJ = 0x31,
|
|
MOTION_BONE_N_KUTI_U = 0x32,
|
|
MOTION_BONE_TL_KUTI_U_WJ = 0x33,
|
|
MOTION_BONE_N_KUTI_U_L = 0x34,
|
|
MOTION_BONE_TL_KUTI_U_L_WJ = 0x35,
|
|
MOTION_BONE_N_KUTI_U_R = 0x36,
|
|
MOTION_BONE_TL_KUTI_U_R_WJ = 0x37,
|
|
MOTION_BONE_N_MABU_L_D_A = 0x38,
|
|
MOTION_BONE_TL_MABU_L_D_A_WJ = 0x39,
|
|
MOTION_BONE_N_MABU_L_D_B = 0x3A,
|
|
MOTION_BONE_TL_MABU_L_D_B_WJ = 0x3B,
|
|
MOTION_BONE_N_MABU_L_D_C = 0x3C,
|
|
MOTION_BONE_TL_MABU_L_D_C_WJ = 0x3D,
|
|
MOTION_BONE_N_MABU_L_U_A = 0x3E,
|
|
MOTION_BONE_TL_MABU_L_U_A_WJ = 0x3F,
|
|
MOTION_BONE_N_MABU_L_U_B = 0x40,
|
|
MOTION_BONE_TL_MABU_L_U_B_WJ = 0x41,
|
|
MOTION_BONE_N_EYELASHES_L = 0x42,
|
|
MOTION_BONE_TL_EYELASHES_L_WJ = 0x43,
|
|
MOTION_BONE_N_MABU_L_U_C = 0x44,
|
|
MOTION_BONE_TL_MABU_L_U_C_WJ = 0x45,
|
|
MOTION_BONE_N_MABU_R_D_A = 0x46,
|
|
MOTION_BONE_TL_MABU_R_D_A_WJ = 0x47,
|
|
MOTION_BONE_N_MABU_R_D_B = 0x48,
|
|
MOTION_BONE_TL_MABU_R_D_B_WJ = 0x49,
|
|
MOTION_BONE_N_MABU_R_D_C = 0x4A,
|
|
MOTION_BONE_TL_MABU_R_D_C_WJ = 0x4B,
|
|
MOTION_BONE_N_MABU_R_U_A = 0x4C,
|
|
MOTION_BONE_TL_MABU_R_U_A_WJ = 0x4D,
|
|
MOTION_BONE_N_MABU_R_U_B = 0x4E,
|
|
MOTION_BONE_TL_MABU_R_U_B_WJ = 0x4F,
|
|
MOTION_BONE_N_EYELASHES_R = 0x50,
|
|
MOTION_BONE_TL_EYELASHES_R_WJ = 0x51,
|
|
MOTION_BONE_N_MABU_R_U_C = 0x52,
|
|
MOTION_BONE_TL_MABU_R_U_C_WJ = 0x53,
|
|
MOTION_BONE_N_MAYU_L = 0x54,
|
|
MOTION_BONE_TL_MAYU_L_WJ = 0x55,
|
|
MOTION_BONE_N_MAYU_L_B = 0x56,
|
|
MOTION_BONE_TL_MAYU_L_B_WJ = 0x57,
|
|
MOTION_BONE_N_MAYU_L_C = 0x58,
|
|
MOTION_BONE_TL_MAYU_L_C_WJ = 0x59,
|
|
MOTION_BONE_N_MAYU_R = 0x5A,
|
|
MOTION_BONE_TL_MAYU_R_WJ = 0x5B,
|
|
MOTION_BONE_N_MAYU_R_B = 0x5C,
|
|
MOTION_BONE_TL_MAYU_R_B_WJ = 0x5D,
|
|
MOTION_BONE_N_MAYU_R_C = 0x5E,
|
|
MOTION_BONE_TL_MAYU_R_C_WJ = 0x5F,
|
|
MOTION_BONE_N_TOOTH_UPPER = 0x60,
|
|
MOTION_BONE_TL_TOOTH_UPPER_WJ = 0x61,
|
|
MOTION_BONE_N_KUBI_WJ_EX = 0x62,
|
|
MOTION_BONE_N_WAKI_L = 0x63,
|
|
MOTION_BONE_KL_WAKI_L_WJ = 0x64,
|
|
MOTION_BONE_TL_UP_KATA_L = 0x65,
|
|
MOTION_BONE_C_KATA_L = 0x66,
|
|
MOTION_BONE_KL_TE_L_WJ = 0x67,
|
|
MOTION_BONE_N_HITO_L_EX = 0x68,
|
|
MOTION_BONE_NL_HITO_L_WJ = 0x69,
|
|
MOTION_BONE_NL_HITO_B_L_WJ = 0x6A,
|
|
MOTION_BONE_NL_HITO_C_L_WJ = 0x6B,
|
|
MOTION_BONE_N_KO_L_EX = 0x6C,
|
|
MOTION_BONE_NL_KO_L_WJ = 0x6D,
|
|
MOTION_BONE_NL_KO_B_L_WJ = 0x6E,
|
|
MOTION_BONE_NL_KO_C_L_WJ = 0x6F,
|
|
MOTION_BONE_N_KUSU_L_EX = 0x70,
|
|
MOTION_BONE_NL_KUSU_L_WJ = 0x71,
|
|
MOTION_BONE_NL_KUSU_B_L_WJ = 0x72,
|
|
MOTION_BONE_NL_KUSU_C_L_WJ = 0x73,
|
|
MOTION_BONE_N_NAKA_L_EX = 0x74,
|
|
MOTION_BONE_NL_NAKA_L_WJ = 0x75,
|
|
MOTION_BONE_NL_NAKA_B_L_WJ = 0x76,
|
|
MOTION_BONE_NL_NAKA_C_L_WJ = 0x77,
|
|
MOTION_BONE_N_OYA_L_EX = 0x78,
|
|
MOTION_BONE_NL_OYA_L_WJ = 0x79,
|
|
MOTION_BONE_NL_OYA_B_L_WJ = 0x7A,
|
|
MOTION_BONE_NL_OYA_C_L_WJ = 0x7B,
|
|
MOTION_BONE_N_STE_L_WJ_EX = 0x7C,
|
|
MOTION_BONE_N_SUDE_L_WJ_EX = 0x7D,
|
|
MOTION_BONE_N_SUDE_B_L_WJ_EX = 0x7E,
|
|
MOTION_BONE_N_HIJI_L_WJ_EX = 0x7F,
|
|
MOTION_BONE_N_UP_KATA_L_EX = 0x80,
|
|
MOTION_BONE_N_SKATA_L_WJ_CD_EX = 0x81,
|
|
MOTION_BONE_N_SKATA_B_L_WJ_CD_CU_EX = 0x82,
|
|
MOTION_BONE_N_SKATA_C_L_WJ_CD_CU_EX = 0x83,
|
|
MOTION_BONE_N_WAKI_R = 0x84,
|
|
MOTION_BONE_KL_WAKI_R_WJ = 0x85,
|
|
MOTION_BONE_TL_UP_KATA_R = 0x86,
|
|
MOTION_BONE_C_KATA_R = 0x87,
|
|
MOTION_BONE_KL_TE_R_WJ = 0x88,
|
|
MOTION_BONE_N_HITO_R_EX = 0x89,
|
|
MOTION_BONE_NL_HITO_R_WJ = 0x8A,
|
|
MOTION_BONE_NL_HITO_B_R_WJ = 0x8B,
|
|
MOTION_BONE_NL_HITO_C_R_WJ = 0x8C,
|
|
MOTION_BONE_N_KO_R_EX = 0x8D,
|
|
MOTION_BONE_NL_KO_R_WJ = 0x8E,
|
|
MOTION_BONE_NL_KO_B_R_WJ = 0x8F,
|
|
MOTION_BONE_NL_KO_C_R_WJ = 0x90,
|
|
MOTION_BONE_N_KUSU_R_EX = 0x91,
|
|
MOTION_BONE_NL_KUSU_R_WJ = 0x92,
|
|
MOTION_BONE_NL_KUSU_B_R_WJ = 0x93,
|
|
MOTION_BONE_NL_KUSU_C_R_WJ = 0x94,
|
|
MOTION_BONE_N_NAKA_R_EX = 0x95,
|
|
MOTION_BONE_NL_NAKA_R_WJ = 0x96,
|
|
MOTION_BONE_NL_NAKA_B_R_WJ = 0x97,
|
|
MOTION_BONE_NL_NAKA_C_R_WJ = 0x98,
|
|
MOTION_BONE_N_OYA_R_EX = 0x99,
|
|
MOTION_BONE_NL_OYA_R_WJ = 0x9A,
|
|
MOTION_BONE_NL_OYA_B_R_WJ = 0x9B,
|
|
MOTION_BONE_NL_OYA_C_R_WJ = 0x9C,
|
|
MOTION_BONE_N_STE_R_WJ_EX = 0x9D,
|
|
MOTION_BONE_N_SUDE_R_WJ_EX = 0x9E,
|
|
MOTION_BONE_N_SUDE_B_R_WJ_EX = 0x9F,
|
|
MOTION_BONE_N_HIJI_R_WJ_EX = 0xA0,
|
|
MOTION_BONE_N_UP_KATA_R_EX = 0xA1,
|
|
MOTION_BONE_N_SKATA_R_WJ_CD_EX = 0xA2,
|
|
MOTION_BONE_N_SKATA_B_R_WJ_CD_CU_EX = 0xA3,
|
|
MOTION_BONE_N_SKATA_C_R_WJ_CD_CU_EX = 0xA4,
|
|
MOTION_BONE_KL_KOSI_Y = 0xA5,
|
|
MOTION_BONE_KL_KOSI_XZ = 0xA6,
|
|
MOTION_BONE_KL_KOSI_ETC_WJ = 0xA7,
|
|
MOTION_BONE_CL_MOMO_L = 0xA8,
|
|
MOTION_BONE_KL_ASI_L_WJ_CO = 0xA9,
|
|
MOTION_BONE_KL_TOE_L_WJ = 0xAA,
|
|
MOTION_BONE_N_HIZA_L_WJ_EX = 0xAB,
|
|
MOTION_BONE_CL_MOMO_R = 0xAC,
|
|
MOTION_BONE_KL_ASI_R_WJ_CO = 0xAD,
|
|
MOTION_BONE_KL_TOE_R_WJ = 0xAE,
|
|
MOTION_BONE_N_HIZA_R_WJ_EX = 0xAF,
|
|
MOTION_BONE_N_MOMO_A_L_WJ_CD_EX = 0xB0,
|
|
MOTION_BONE_N_MOMO_B_L_WJ_EX = 0xB1,
|
|
MOTION_BONE_N_MOMO_C_L_WJ_EX = 0xB2,
|
|
MOTION_BONE_N_MOMO_A_R_WJ_CD_EX = 0xB3,
|
|
MOTION_BONE_N_MOMO_B_R_WJ_EX = 0xB4,
|
|
MOTION_BONE_N_MOMO_C_R_WJ_EX = 0xB5,
|
|
MOTION_BONE_N_HARA_CD_EX = 0xB6,
|
|
MOTION_BONE_N_HARA_B_WJ_EX = 0xB7,
|
|
MOTION_BONE_N_HARA_C_WJ_EX = 0xB8,
|
|
MOTION_BONE_MAX = 0xB9,
|
|
};
|
|
|
|
enum obj_index_format : uint32_t {
|
|
OBJ_INDEX_U8 = 0x00,
|
|
OBJ_INDEX_U16 = 0x01,
|
|
OBJ_INDEX_U32 = 0x02,
|
|
};
|
|
|
|
enum obj_material_aniso_direction : uint32_t {
|
|
OBJ_MATERIAL_ANISO_DIRECTION_NORMAL = 0,
|
|
OBJ_MATERIAL_ANISO_DIRECTION_U = 1,
|
|
OBJ_MATERIAL_ANISO_DIRECTION_V = 2,
|
|
OBJ_MATERIAL_ANISO_DIRECTION_RADIAL = 3,
|
|
};
|
|
|
|
enum obj_material_blend_factor : uint32_t {
|
|
OBJ_MATERIAL_BLEND_ZERO = 0,
|
|
OBJ_MATERIAL_BLEND_ONE = 1,
|
|
OBJ_MATERIAL_BLEND_SRC_COLOR = 2,
|
|
OBJ_MATERIAL_BLEND_INVERSE_SRC_COLOR = 3,
|
|
OBJ_MATERIAL_BLEND_SRC_ALPHA = 4,
|
|
OBJ_MATERIAL_BLEND_INVERSE_SRC_ALPHA = 5,
|
|
OBJ_MATERIAL_BLEND_DST_ALPHA = 6,
|
|
OBJ_MATERIAL_BLEND_INVERSE_DST_ALPHA = 7,
|
|
OBJ_MATERIAL_BLEND_DST_COLOR = 8,
|
|
OBJ_MATERIAL_BLEND_INVERSE_DST_COLOR = 9,
|
|
OBJ_MATERIAL_BLEND_ALPHA_SATURATE = 10,
|
|
};
|
|
|
|
enum obj_material_bump_map_type : uint32_t {
|
|
OBJ_MATERIAL_BUMP_MAP_NONE = 0,
|
|
OBJ_MATERIAL_BUMP_MAP_DOT = 1,
|
|
OBJ_MATERIAL_BUMP_MAP_ENV = 2,
|
|
};
|
|
|
|
enum obj_material_color_source_type : uint32_t {
|
|
OBJ_MATERIAL_COLOR_SOURCE_MATERIAL_COLOR = 0,
|
|
OBJ_MATERIAL_COLOR_SOURCE_VERTEX_COLOR = 1,
|
|
OBJ_MATERIAL_COLOR_SOURCE_VERTEX_MORPH = 2,
|
|
};
|
|
|
|
enum obj_material_shader_lighting_type : uint32_t {
|
|
OBJ_MATERIAL_SHADER_LIGHTING_LAMBERT = 0x00,
|
|
OBJ_MATERIAL_SHADER_LIGHTING_CONSTANT = 0x01,
|
|
OBJ_MATERIAL_SHADER_LIGHTING_PHONG = 0x02,
|
|
};
|
|
|
|
enum obj_material_specular_quality : uint32_t {
|
|
OBJ_MATERIAL_SPECULAR_QUALITY_LOW = 0,
|
|
OBJ_MATERIAL_SPECULAR_QUALITY_HIGH = 1,
|
|
};
|
|
|
|
enum obj_material_texture_type : uint32_t {
|
|
OBJ_MATERIAL_TEXTURE_NONE = 0x00,
|
|
OBJ_MATERIAL_TEXTURE_COLOR = 0x01,
|
|
OBJ_MATERIAL_TEXTURE_NORMAL = 0x02,
|
|
OBJ_MATERIAL_TEXTURE_SPECULAR = 0x03,
|
|
OBJ_MATERIAL_TEXTURE_HEIGHT = 0x04,
|
|
OBJ_MATERIAL_TEXTURE_REFLECTION = 0x05,
|
|
OBJ_MATERIAL_TEXTURE_TRANSLUCENCY = 0x06,
|
|
OBJ_MATERIAL_TEXTURE_TRANSPARENCY = 0x07,
|
|
OBJ_MATERIAL_TEXTURE_ENVIRONMENT_SPHERE = 0x08,
|
|
OBJ_MATERIAL_TEXTURE_ENVIRONMENT_CUBE = 0x09,
|
|
};
|
|
|
|
enum obj_material_texture_coordinate_translation_type : uint32_t {
|
|
OBJ_MATERIAL_TEXTURE_COORDINATE_TRANSLATION_NONE = 0x00,
|
|
OBJ_MATERIAL_TEXTURE_COORDINATE_TRANSLATION_UV = 0x01,
|
|
OBJ_MATERIAL_TEXTURE_COORDINATE_TRANSLATION_SPHERE = 0x02,
|
|
OBJ_MATERIAL_TEXTURE_COORDINATE_TRANSLATION_CUBE = 0x03
|
|
};
|
|
|
|
enum obj_material_vertex_translation_type : uint32_t {
|
|
OBJ_MATERIAL_VERTEX_TRANSLATION_DEFAULT = 0,
|
|
OBJ_MATERIAL_VERTEX_TRANSLATION_ENVELOPE = 1,
|
|
OBJ_MATERIAL_VERTEX_TRANSLATION_MORPHING = 2,
|
|
};
|
|
|
|
enum obj_primitive_type : uint32_t {
|
|
OBJ_PRIMITIVE_POINTS = 0x00,
|
|
OBJ_PRIMITIVE_LINES = 0x01,
|
|
OBJ_PRIMITIVE_LINE_STRIP = 0x02,
|
|
OBJ_PRIMITIVE_LINE_LOOP = 0x03,
|
|
OBJ_PRIMITIVE_TRIANGLES = 0x04,
|
|
OBJ_PRIMITIVE_TRIANGLE_STRIP = 0x05,
|
|
OBJ_PRIMITIVE_TRIANGLE_FAN = 0x06,
|
|
OBJ_PRIMITIVE_QUADS = 0x07,
|
|
OBJ_PRIMITIVE_QUAD_STRIP = 0x08,
|
|
OBJ_PRIMITIVE_POLYGON = 0x09,
|
|
};
|
|
|
|
enum obj_skin_block_constraint_type : uint32_t {
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_NONE = 0,
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_ORIENTATION,
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_DIRECTION,
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_POSITION,
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_DISTANCE,
|
|
};
|
|
|
|
enum obj_skin_block_constraint_coupling : uint32_t {
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_COUPLING_RIGID = 0x01,
|
|
OBJ_SKIN_BLOCK_CONSTRAINT_COUPLING_SOFT = 0x03,
|
|
};
|
|
|
|
enum obj_skin_block_type : uint32_t {
|
|
OBJ_SKIN_BLOCK_NONE = 0,
|
|
OBJ_SKIN_BLOCK_CLOTH,
|
|
OBJ_SKIN_BLOCK_CONSTRAINT,
|
|
OBJ_SKIN_BLOCK_EXPRESSION,
|
|
OBJ_SKIN_BLOCK_ITEM,
|
|
OBJ_SKIN_BLOCK_MOTION,
|
|
OBJ_SKIN_BLOCK_OSAGE,
|
|
};
|
|
|
|
enum obj_skin_skin_param_coli_type {
|
|
OBJ_SKIN_SKIN_PARAM_COLI_TYPE_NONE = 0x00,
|
|
OBJ_SKIN_SKIN_PARAM_COLI_TYPE_BALL = 0x01,
|
|
OBJ_SKIN_SKIN_PARAM_COLI_TYPE_CYLINDER = 0x02,
|
|
OBJ_SKIN_SKIN_PARAM_COLI_TYPE_PLANE = 0x03,
|
|
OBJ_SKIN_SKIN_PARAM_COLI_TYPE_ELLIPSE = 0x04,
|
|
};
|
|
|
|
enum obj_vertex_format : uint32_t {
|
|
OBJ_VERTEX_NONE = 0x0000,
|
|
OBJ_VERTEX_POSITION = 0x0001,
|
|
OBJ_VERTEX_NORMAL = 0x0002,
|
|
OBJ_VERTEX_TANGENT = 0x0004,
|
|
OBJ_VERTEX_BINORMAL = 0x0008,
|
|
OBJ_VERTEX_TEXCOORD0 = 0x0010,
|
|
OBJ_VERTEX_TEXCOORD1 = 0x0020,
|
|
OBJ_VERTEX_TEXCOORD2 = 0x0040,
|
|
OBJ_VERTEX_TEXCOORD3 = 0x0080,
|
|
OBJ_VERTEX_COLOR0 = 0x0100,
|
|
OBJ_VERTEX_COLOR1 = 0x0200,
|
|
OBJ_VERTEX_BONE_WEIGHT = 0x0400,
|
|
OBJ_VERTEX_BONE_INDEX = 0x0800,
|
|
OBJ_VERTEX_UNK_1000 = 0x1000,
|
|
};
|
|
|
|
enum rob_bone_index {
|
|
ROB_BONE_NONE = -1,
|
|
ROB_BONE_N_HARA_CP = 0x00,
|
|
ROB_BONE_KG_HARA_Y = 0x01,
|
|
ROB_BONE_KL_HARA_XZ = 0x02,
|
|
ROB_BONE_KL_HARA_ETC = 0x03,
|
|
ROB_BONE_N_HARA = 0x04,
|
|
ROB_BONE_CL_MUNE = 0x05,
|
|
ROB_BONE_N_MUNE_B = 0x06,
|
|
ROB_BONE_KL_MUNE_B_WJ = 0x07,
|
|
ROB_BONE_KL_KUBI = 0x08,
|
|
ROB_BONE_N_KAO = 0x09,
|
|
ROB_BONE_CL_KAO = 0x0A,
|
|
ROB_BONE_FACE_ROOT = 0x0B,
|
|
ROB_BONE_N_AGO = 0x0C,
|
|
ROB_BONE_KL_AGO_WJ = 0x0D,
|
|
ROB_BONE_N_TOOTH_UNDER = 0x0E,
|
|
ROB_BONE_TL_TOOTH_UNDER_WJ = 0x0F,
|
|
ROB_BONE_N_EYE_L = 0x10,
|
|
ROB_BONE_KL_EYE_L = 0x11,
|
|
ROB_BONE_N_EYE_L_WJ_EX = 0x12,
|
|
ROB_BONE_KL_HIGHLIGHT_L_WJ = 0x13,
|
|
ROB_BONE_N_EYE_R = 0x14,
|
|
ROB_BONE_KL_EYE_R = 0x15,
|
|
ROB_BONE_N_EYE_R_WJ_EX = 0x16,
|
|
ROB_BONE_KL_HIGHLIGHT_R_WJ = 0x17,
|
|
ROB_BONE_N_EYELID_L_A = 0x18,
|
|
ROB_BONE_TL_EYELID_L_A_WJ = 0x19,
|
|
ROB_BONE_N_EYELID_L_B = 0x1A,
|
|
ROB_BONE_TL_EYELID_L_B_WJ = 0x1B,
|
|
ROB_BONE_N_EYELID_R_A = 0x1C,
|
|
ROB_BONE_TL_EYELID_R_A_WJ = 0x1D,
|
|
ROB_BONE_N_EYELID_R_B = 0x1E,
|
|
ROB_BONE_TL_EYELID_R_B_WJ = 0x1F,
|
|
ROB_BONE_N_KUTI_D = 0x20,
|
|
ROB_BONE_TL_KUTI_D_WJ = 0x21,
|
|
ROB_BONE_N_KUTI_D_L = 0x22,
|
|
ROB_BONE_TL_KUTI_D_L_WJ = 0x23,
|
|
ROB_BONE_N_KUTI_D_R = 0x24,
|
|
ROB_BONE_TL_KUTI_D_R_WJ = 0x25,
|
|
ROB_BONE_N_KUTI_DS_L = 0x26,
|
|
ROB_BONE_TL_KUTI_DS_L_WJ = 0x27,
|
|
ROB_BONE_N_KUTI_DS_R = 0x28,
|
|
ROB_BONE_TL_KUTI_DS_R_WJ = 0x29,
|
|
ROB_BONE_N_KUTI_L = 0x2A,
|
|
ROB_BONE_TL_KUTI_L_WJ = 0x2B,
|
|
ROB_BONE_N_KUTI_M_L = 0x2C,
|
|
ROB_BONE_TL_KUTI_M_L_WJ = 0x2D,
|
|
ROB_BONE_N_KUTI_M_R = 0x2E,
|
|
ROB_BONE_TL_KUTI_M_R_WJ = 0x2F,
|
|
ROB_BONE_N_KUTI_R = 0x30,
|
|
ROB_BONE_TL_KUTI_R_WJ = 0x31,
|
|
ROB_BONE_N_KUTI_U = 0x32,
|
|
ROB_BONE_TL_KUTI_U_WJ = 0x33,
|
|
ROB_BONE_N_KUTI_U_L = 0x34,
|
|
ROB_BONE_TL_KUTI_U_L_WJ = 0x35,
|
|
ROB_BONE_N_KUTI_U_R = 0x36,
|
|
ROB_BONE_TL_KUTI_U_R_WJ = 0x37,
|
|
ROB_BONE_N_MABU_L_D_A = 0x38,
|
|
ROB_BONE_TL_MABU_L_D_A_WJ = 0x39,
|
|
ROB_BONE_N_MABU_L_D_B = 0x3A,
|
|
ROB_BONE_TL_MABU_L_D_B_WJ = 0x3B,
|
|
ROB_BONE_N_MABU_L_D_C = 0x3C,
|
|
ROB_BONE_TL_MABU_L_D_C_WJ = 0x3D,
|
|
ROB_BONE_N_MABU_L_U_A = 0x3E,
|
|
ROB_BONE_TL_MABU_L_U_A_WJ = 0x3F,
|
|
ROB_BONE_N_MABU_L_U_B = 0x40,
|
|
ROB_BONE_TL_MABU_L_U_B_WJ = 0x41,
|
|
ROB_BONE_N_EYELASHES_L = 0x42,
|
|
ROB_BONE_TL_EYELASHES_L_WJ = 0x43,
|
|
ROB_BONE_N_MABU_L_U_C = 0x44,
|
|
ROB_BONE_TL_MABU_L_U_C_WJ = 0x45,
|
|
ROB_BONE_N_MABU_R_D_A = 0x46,
|
|
ROB_BONE_TL_MABU_R_D_A_WJ = 0x47,
|
|
ROB_BONE_N_MABU_R_D_B = 0x48,
|
|
ROB_BONE_TL_MABU_R_D_B_WJ = 0x49,
|
|
ROB_BONE_N_MABU_R_D_C = 0x4A,
|
|
ROB_BONE_TL_MABU_R_D_C_WJ = 0x4B,
|
|
ROB_BONE_N_MABU_R_U_A = 0x4C,
|
|
ROB_BONE_TL_MABU_R_U_A_WJ = 0x4D,
|
|
ROB_BONE_N_MABU_R_U_B = 0x4E,
|
|
ROB_BONE_TL_MABU_R_U_B_WJ = 0x4F,
|
|
ROB_BONE_N_EYELASHES_R = 0x50,
|
|
ROB_BONE_TL_EYELASHES_R_WJ = 0x51,
|
|
ROB_BONE_N_MABU_R_U_C = 0x52,
|
|
ROB_BONE_TL_MABU_R_U_C_WJ = 0x53,
|
|
ROB_BONE_N_MAYU_L = 0x54,
|
|
ROB_BONE_TL_MAYU_L_WJ = 0x55,
|
|
ROB_BONE_N_MAYU_L_B = 0x56,
|
|
ROB_BONE_TL_MAYU_L_B_WJ = 0x57,
|
|
ROB_BONE_N_MAYU_L_C = 0x58,
|
|
ROB_BONE_TL_MAYU_L_C_WJ = 0x59,
|
|
ROB_BONE_N_MAYU_R = 0x5A,
|
|
ROB_BONE_TL_MAYU_R_WJ = 0x5B,
|
|
ROB_BONE_N_MAYU_R_B = 0x5C,
|
|
ROB_BONE_TL_MAYU_R_B_WJ = 0x5D,
|
|
ROB_BONE_N_MAYU_R_C = 0x5E,
|
|
ROB_BONE_TL_MAYU_R_C_WJ = 0x5F,
|
|
ROB_BONE_N_TOOTH_UPPER = 0x60,
|
|
ROB_BONE_TL_TOOTH_UPPER_WJ = 0x61,
|
|
ROB_BONE_N_KUBI_WJ_EX = 0x62,
|
|
ROB_BONE_N_WAKI_L = 0x63,
|
|
ROB_BONE_KL_WAKI_L_WJ = 0x64,
|
|
ROB_BONE_TL_UP_KATA_L = 0x65,
|
|
ROB_BONE_C_KATA_L = 0x66,
|
|
ROB_BONE_KATA_L_WJ_CU = 0x67,
|
|
ROB_BONE_UDE_L_WJ = 0x68,
|
|
ROB_BONE_KL_TE_L_WJ = 0x69,
|
|
ROB_BONE_N_HITO_L_EX = 0x6A,
|
|
ROB_BONE_NL_HITO_L_WJ = 0x6B,
|
|
ROB_BONE_NL_HITO_B_L_WJ = 0x6C,
|
|
ROB_BONE_NL_HITO_C_L_WJ = 0x6D,
|
|
ROB_BONE_N_KO_L_EX = 0x6E,
|
|
ROB_BONE_NL_KO_L_WJ = 0x6F,
|
|
ROB_BONE_NL_KO_B_L_WJ = 0x70,
|
|
ROB_BONE_NL_KO_C_L_WJ = 0x71,
|
|
ROB_BONE_N_KUSU_L_EX = 0x72,
|
|
ROB_BONE_NL_KUSU_L_WJ = 0x73,
|
|
ROB_BONE_NL_KUSU_B_L_WJ = 0x74,
|
|
ROB_BONE_NL_KUSU_C_L_WJ = 0x75,
|
|
ROB_BONE_N_NAKA_L_EX = 0x76,
|
|
ROB_BONE_NL_NAKA_L_WJ = 0x77,
|
|
ROB_BONE_NL_NAKA_B_L_WJ = 0x78,
|
|
ROB_BONE_NL_NAKA_C_L_WJ = 0x79,
|
|
ROB_BONE_N_OYA_L_EX = 0x7A,
|
|
ROB_BONE_NL_OYA_L_WJ = 0x7B,
|
|
ROB_BONE_NL_OYA_B_L_WJ = 0x7C,
|
|
ROB_BONE_NL_OYA_C_L_WJ = 0x7D,
|
|
ROB_BONE_N_STE_L_WJ_EX = 0x7E,
|
|
ROB_BONE_N_SUDE_L_WJ_EX = 0x7F,
|
|
ROB_BONE_N_SUDE_B_L_WJ_EX = 0x80,
|
|
ROB_BONE_N_HIJI_L_WJ_EX = 0x81,
|
|
ROB_BONE_N_UP_KATA_L_EX = 0x82,
|
|
ROB_BONE_N_SKATA_L_WJ_CD_EX = 0x83,
|
|
ROB_BONE_N_SKATA_B_L_WJ_CD_CU_EX = 0x84,
|
|
ROB_BONE_N_SKATA_C_L_WJ_CD_CU_EX = 0x85,
|
|
ROB_BONE_N_WAKI_R = 0x86,
|
|
ROB_BONE_KL_WAKI_R_WJ = 0x87,
|
|
ROB_BONE_TL_UP_KATA_R = 0x88,
|
|
ROB_BONE_C_KATA_R = 0x89,
|
|
ROB_BONE_KATA_R_WJ_CU = 0x8A,
|
|
ROB_BONE_UDE_R_WJ = 0x8B,
|
|
ROB_BONE_KL_TE_R_WJ = 0x8C,
|
|
ROB_BONE_N_HITO_R_EX = 0x8D,
|
|
ROB_BONE_NL_HITO_R_WJ = 0x8E,
|
|
ROB_BONE_NL_HITO_B_R_WJ = 0x8F,
|
|
ROB_BONE_NL_HITO_C_R_WJ = 0x90,
|
|
ROB_BONE_N_KO_R_EX = 0x91,
|
|
ROB_BONE_NL_KO_R_WJ = 0x92,
|
|
ROB_BONE_NL_KO_B_R_WJ = 0x93,
|
|
ROB_BONE_NL_KO_C_R_WJ = 0x94,
|
|
ROB_BONE_N_KUSU_R_EX = 0x95,
|
|
ROB_BONE_NL_KUSU_R_WJ = 0x96,
|
|
ROB_BONE_NL_KUSU_B_R_WJ = 0x97,
|
|
ROB_BONE_NL_KUSU_C_R_WJ = 0x98,
|
|
ROB_BONE_N_NAKA_R_EX = 0x99,
|
|
ROB_BONE_NL_NAKA_R_WJ = 0x9A,
|
|
ROB_BONE_NL_NAKA_B_R_WJ = 0x9B,
|
|
ROB_BONE_NL_NAKA_C_R_WJ = 0x9C,
|
|
ROB_BONE_N_OYA_R_EX = 0x9D,
|
|
ROB_BONE_NL_OYA_R_WJ = 0x9E,
|
|
ROB_BONE_NL_OYA_B_R_WJ = 0x9F,
|
|
ROB_BONE_NL_OYA_C_R_WJ = 0xA0,
|
|
ROB_BONE_N_STE_R_WJ_EX = 0xA1,
|
|
ROB_BONE_N_SUDE_R_WJ_EX = 0xA2,
|
|
ROB_BONE_N_SUDE_B_R_WJ_EX = 0xA3,
|
|
ROB_BONE_N_HIJI_R_WJ_EX = 0xA4,
|
|
ROB_BONE_N_UP_KATA_R_EX = 0xA5,
|
|
ROB_BONE_N_SKATA_R_WJ_CD_EX = 0xA6,
|
|
ROB_BONE_N_SKATA_B_R_WJ_CD_CU_EX = 0xA7,
|
|
ROB_BONE_N_SKATA_C_R_WJ_CD_CU_EX = 0xA8,
|
|
ROB_BONE_KL_KOSI_Y = 0xA9,
|
|
ROB_BONE_KL_KOSI_XZ = 0xAA,
|
|
ROB_BONE_KL_KOSI_ETC_WJ = 0xAB,
|
|
ROB_BONE_CL_MOMO_L = 0xAC,
|
|
ROB_BONE_J_MOMO_L_WJ = 0xAD,
|
|
ROB_BONE_J_SUNE_L_WJ = 0xAE,
|
|
ROB_BONE_KL_ASI_L_WJ_CO = 0xAF,
|
|
ROB_BONE_KL_TOE_L_WJ = 0xB0,
|
|
ROB_BONE_N_HIZA_L_WJ_EX = 0xB1,
|
|
ROB_BONE_CL_MOMO_R = 0xB2,
|
|
ROB_BONE_J_MOMO_R_WJ = 0xB3,
|
|
ROB_BONE_J_SUNE_R_WJ = 0xB4,
|
|
ROB_BONE_KL_ASI_R_WJ_CO = 0xB5,
|
|
ROB_BONE_KL_TOE_R_WJ = 0xB6,
|
|
ROB_BONE_N_HIZA_R_WJ_EX = 0xB7,
|
|
ROB_BONE_N_MOMO_A_L_WJ_CD_EX = 0xB8,
|
|
ROB_BONE_N_MOMO_B_L_WJ_EX = 0xB9,
|
|
ROB_BONE_N_MOMO_C_L_WJ_EX = 0xBA,
|
|
ROB_BONE_N_MOMO_A_R_WJ_CD_EX = 0xBB,
|
|
ROB_BONE_N_MOMO_B_R_WJ_EX = 0xBC,
|
|
ROB_BONE_N_MOMO_C_R_WJ_EX = 0xBD,
|
|
ROB_BONE_N_HARA_CD_EX = 0xBE,
|
|
ROB_BONE_N_HARA_B_WJ_EX = 0xBF,
|
|
ROB_BONE_N_HARA_C_WJ_EX = 0xC0,
|
|
ROB_BONE_MAX = 0xC1,
|
|
};
|
|
|
|
enum rob_chara_type {
|
|
ROB_CHARA_TYPE_NONE = -1,
|
|
ROB_CHARA_TYPE_0 = 0x00,
|
|
ROB_CHARA_TYPE_1 = 0x01,
|
|
ROB_CHARA_TYPE_2 = 0x02,
|
|
ROB_CHARA_TYPE_3 = 0x03,
|
|
};
|
|
|
|
enum rob_chara_data_hand_adjust_type : uint16_t {
|
|
ROB_CHARA_DATA_HAND_ADJUST_NONE = (uint16_t)-1,
|
|
ROB_CHARA_DATA_HAND_ADJUST_NORMAL = 0x00,
|
|
ROB_CHARA_DATA_HAND_ADJUST_SHORT = 0x01,
|
|
ROB_CHARA_DATA_HAND_ADJUST_TALL = 0x02,
|
|
ROB_CHARA_DATA_HAND_ADJUST_MIN = 0x03,
|
|
ROB_CHARA_DATA_HAND_ADJUST_MAX = 0x04,
|
|
ROB_CHARA_DATA_HAND_ADJUST_OPPOSITE_CHARA = 0x05,
|
|
ROB_CHARA_DATA_HAND_ADJUST_CUSTOM = 0x06,
|
|
ROB_CHARA_DATA_HAND_ADJUST_1P = 0x07,
|
|
ROB_CHARA_DATA_HAND_ADJUST_2P = 0x08,
|
|
ROB_CHARA_DATA_HAND_ADJUST_3P = 0x09,
|
|
ROB_CHARA_DATA_HAND_ADJUST_4P = 0x0A,
|
|
};
|
|
|
|
enum rob_osage_parts {
|
|
ROB_OSAGE_PARTS_NONE = -1,
|
|
ROB_OSAGE_PARTS_LEFT = 0x00,
|
|
ROB_OSAGE_PARTS_RIGHT = 0x01,
|
|
ROB_OSAGE_PARTS_CENTER = 0x02,
|
|
ROB_OSAGE_PARTS_LONG_C = 0x03,
|
|
ROB_OSAGE_PARTS_SHORT_L = 0x04,
|
|
ROB_OSAGE_PARTS_SHORT_R = 0x05,
|
|
ROB_OSAGE_PARTS_APPEND_L = 0x06,
|
|
ROB_OSAGE_PARTS_APPEND_R = 0x07,
|
|
ROB_OSAGE_PARTS_MUFFLER = 0x08,
|
|
ROB_OSAGE_PARTS_WHITE_ONE_L = 0x09,
|
|
ROB_OSAGE_PARTS_PONY = 0x0A,
|
|
ROB_OSAGE_PARTS_ANGEL_L = 0x0B,
|
|
ROB_OSAGE_PARTS_ANGEL_R = 0x0C,
|
|
ROB_OSAGE_PARTS_MAX = 0x0D,
|
|
};
|
|
|
|
enum shadow_type_enum {
|
|
SHADOW_CHARA = 0x00,
|
|
SHADOW_STAGE = 0x01,
|
|
};
|
|
|
|
enum SubActExecType {
|
|
SUB_ACTION_EXECUTE_NONE = 0x00,
|
|
SUB_ACTION_EXECUTE_CRY = 0x01,
|
|
SUB_ACTION_EXECUTE_SHAKE_HAND = 0x02,
|
|
SUB_ACTION_EXECUTE_EMBARRASSED = 0x03,
|
|
SUB_ACTION_EXECUTE_ANGRY = 0x04,
|
|
SUB_ACTION_EXECUTE_LAUGH = 0x05,
|
|
SUB_ACTION_EXECUTE_COUNT_NUM = 0x06,
|
|
};
|
|
|
|
enum SubActParamType {
|
|
SUB_ACTION_PARAM_NONE = 0x00,
|
|
SUB_ACTION_PARAM_CRY = 0x01,
|
|
SUB_ACTION_PARAM_SHAKE_HAND = 0x02,
|
|
SUB_ACTION_PARAM_EMBARRASSED = 0x03,
|
|
SUB_ACTION_PARAM_ANGRY = 0x04,
|
|
SUB_ACTION_PARAM_LAUGH = 0x05,
|
|
SUB_ACTION_PARAM_COUNT_NUM = 0x06,
|
|
};
|
|
|
|
enum texture_flags {
|
|
TEXTURE_BLOCK_COMPRESSION = 0x1,
|
|
};
|
|
|
|
#define list(t) \
|
|
struct list_##t##_node; \
|
|
\
|
|
struct list_##t##_node { \
|
|
list_##t##_node* next; \
|
|
list_##t##_node* prev; \
|
|
t value; \
|
|
}; \
|
|
\
|
|
struct list_##t { \
|
|
list_##t##_node* head; \
|
|
size_t size; \
|
|
};
|
|
|
|
#define list_ptr(t) \
|
|
struct list_ptr_##t##_node; \
|
|
\
|
|
struct list_ptr_##t##_node { \
|
|
list_ptr_##t##_node* next; \
|
|
list_ptr_##t##_node* prev; \
|
|
t* value; \
|
|
}; \
|
|
\
|
|
struct list_ptr_##t { \
|
|
list_ptr_##t##_node* head; \
|
|
size_t size; \
|
|
};
|
|
|
|
#define tree_def(t) \
|
|
struct tree_##t##_node; \
|
|
\
|
|
struct tree_##t##_node { \
|
|
tree_##t##_node* left; \
|
|
tree_##t##_node* parent; \
|
|
tree_##t##_node* right; \
|
|
uint8_t color; \
|
|
uint8_t is_null; \
|
|
t value; \
|
|
}; \
|
|
\
|
|
struct tree_##t { \
|
|
tree_##t##_node* head; \
|
|
size_t size; \
|
|
};
|
|
|
|
#define tree_ptr(t) \
|
|
struct tree_ptr_##t##_node; \
|
|
\
|
|
struct tree_ptr_##t##_node { \
|
|
tree_ptr_##t##_node* left; \
|
|
tree_ptr_##t##_node* parent; \
|
|
tree_ptr_##t##_node* right; \
|
|
uint8_t color; \
|
|
uint8_t is_null; \
|
|
t* value; \
|
|
}; \
|
|
\
|
|
struct tree_ptr_##t { \
|
|
tree_ptr_##t##_node* head; \
|
|
size_t size; \
|
|
};
|
|
|
|
#define tree_pair(t1, t2) \
|
|
struct tree_pair_##t1##_##t2##_node; \
|
|
\
|
|
struct tree_pair_##t1##_##t2##_node { \
|
|
tree_pair_##t1##_##t2##_node* left; \
|
|
tree_pair_##t1##_##t2##_node* parent; \
|
|
tree_pair_##t1##_##t2##_node* right; \
|
|
uint8_t color; \
|
|
uint8_t is_null; \
|
|
t1 key; \
|
|
t2 value; \
|
|
}; \
|
|
\
|
|
struct tree_pair_##t1##_##t2 { \
|
|
tree_pair_##t1##_##t2##_node* head; \
|
|
size_t size; \
|
|
};
|
|
|
|
#define tree_pair_ptr(t1, t2) \
|
|
struct tree_pair_##t1##_ptr_##t2##_node; \
|
|
\
|
|
struct tree_pair_##t1##_ptr_##t2##_node { \
|
|
tree_pair_##t1##_ptr_##t2##_node* left; \
|
|
tree_pair_##t1##_ptr_##t2##_node* parent; \
|
|
tree_pair_##t1##_ptr_##t2##_node* right; \
|
|
uint8_t color; \
|
|
uint8_t is_null; \
|
|
t1 key; \
|
|
t2* value; \
|
|
}; \
|
|
\
|
|
struct tree_pair_##t1##_ptr_##t2 { \
|
|
tree_pair_##t1##_ptr_##t2##_node* head; \
|
|
size_t size; \
|
|
};
|
|
|
|
struct bone_database_bone {
|
|
uint8_t type;
|
|
bool has_parent;
|
|
uint8_t parent;
|
|
uint8_t pole_target;
|
|
uint8_t mirror;
|
|
uint8_t flags;
|
|
const char* name;
|
|
};
|
|
|
|
struct bone_database_bone_file {
|
|
uint8_t type;
|
|
bool has_parent;
|
|
uint8_t parent;
|
|
uint8_t pole_target;
|
|
uint8_t mirror;
|
|
uint8_t flags;
|
|
uint32_t name_offset;
|
|
};
|
|
|
|
struct bone_database_skeleton {
|
|
bone_database_bone* bones;
|
|
int32_t posittion_count;
|
|
int32_t field_C;
|
|
vec3* positions;
|
|
float_t* heel_height;
|
|
uint32_t object_bone_name_count;
|
|
int32_t field_24;
|
|
const char** object_bone_names;
|
|
int32_t motion_bone_name_count;
|
|
int32_t field_34;
|
|
const char** motion_bone_names;
|
|
uint16_t* parent_indices;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
int32_t field_50;
|
|
int32_t field_54;
|
|
int32_t field_58;
|
|
int32_t field_5C;
|
|
};
|
|
|
|
struct bone_database_struct {
|
|
uint32_t signature;
|
|
uint32_t skeleton_count;
|
|
bone_database_skeleton** skeletons;
|
|
const char** skeleton_names;
|
|
};
|
|
|
|
struct rob_chara;
|
|
struct rob_chara_bone_data;
|
|
struct rob_chara_item_equip;
|
|
struct bone_node;
|
|
|
|
struct bone_node_expression_data {
|
|
vec3 position;
|
|
vec3 rotation;
|
|
vec3 scale;
|
|
vec3 parent_scale;
|
|
};
|
|
|
|
struct bone_node {
|
|
const char* name;
|
|
mat4* mat;
|
|
bone_node* parent;
|
|
bone_node_expression_data exp_data;
|
|
mat4* ex_data_mat;
|
|
};
|
|
|
|
vector_old(bone_node)
|
|
|
|
struct struc_314 {
|
|
uint32_t* field_0;
|
|
size_t field_8;
|
|
};
|
|
|
|
struct mot_key_set {
|
|
mot_key_set_type type;
|
|
int32_t keys_count;
|
|
int32_t current_key;
|
|
int32_t last_key;
|
|
uint16_t* frames;
|
|
float_t* values;
|
|
};
|
|
|
|
vector_old(mot_key_set)
|
|
|
|
union item_cos_data {
|
|
struct {
|
|
int32_t zujo;
|
|
int32_t kami;
|
|
int32_t hitai;
|
|
int32_t me;
|
|
int32_t megane;
|
|
int32_t mimi;
|
|
int32_t kuchi;
|
|
int32_t maki;
|
|
int32_t kubi;
|
|
int32_t inner;
|
|
int32_t outer;
|
|
int32_t joha_mae;
|
|
int32_t joha_ushiro;
|
|
int32_t hada;
|
|
int32_t kata;
|
|
int32_t u_ude;
|
|
int32_t l_ude;
|
|
int32_t te;
|
|
int32_t belt;
|
|
int32_t cosi;
|
|
int32_t pants;
|
|
int32_t asi;
|
|
int32_t sune;
|
|
int32_t kutsu;
|
|
int32_t head;
|
|
} data;
|
|
int32_t arr[25];
|
|
};
|
|
|
|
struct texture;
|
|
|
|
struct item_cos_texture_change_tex {
|
|
texture* org;
|
|
texture* chg;
|
|
bool changed;
|
|
};
|
|
|
|
vector_old(item_cos_texture_change_tex)
|
|
|
|
struct item_cos_texture_change {
|
|
uint32_t item_no;
|
|
vector_old_item_cos_texture_change_tex tex;
|
|
};
|
|
|
|
struct item_cos_item_change {
|
|
item_id id;
|
|
vector_old_uint32_t item_nos;
|
|
};
|
|
|
|
struct object_info {
|
|
uint16_t id;
|
|
uint16_t set_id;
|
|
};
|
|
|
|
struct texture_pattern_struct {
|
|
int32_t src;
|
|
int32_t dst;
|
|
};
|
|
|
|
tree_def(item_cos_texture_change)
|
|
tree_def(item_cos_item_change)
|
|
tree_pair(object_info, item_id)
|
|
tree_pair(int32_t, int32_t)
|
|
vector_old(texture_pattern_struct)
|
|
tree_pair(int32_t, object_info)
|
|
|
|
list_ptr(void)
|
|
|
|
struct rob_chara_item_cos_data {
|
|
::chara_index chara_index;
|
|
::chara_index chara_index_2nd;
|
|
item_cos_data field_8;
|
|
item_cos_data field_6C;
|
|
tree_item_cos_texture_change texture_change;
|
|
tree_item_cos_item_change item_change;
|
|
tree_pair_object_info_item_id field_F0;
|
|
tree_pair_int32_t_int32_t field_100;
|
|
vector_old_texture_pattern_struct texture_pattern[31];
|
|
tree_pair_int32_t_object_info head_replace;
|
|
};
|
|
|
|
struct struc_525 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
};
|
|
|
|
struct struc_524 {
|
|
int32_t field_0;
|
|
struc_525 field_4;
|
|
int32_t motion_id;
|
|
uint8_t field_10;
|
|
};
|
|
|
|
struct struc_523 {
|
|
uint8_t field_0;
|
|
uint8_t field_1;
|
|
int32_t field_4;
|
|
int16_t field_8;
|
|
int32_t field_C;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
int32_t field_1C;
|
|
int32_t field_20;
|
|
int32_t field_24;
|
|
int32_t field_28;
|
|
int32_t field_2C;
|
|
int32_t field_30;
|
|
int32_t field_34;
|
|
int32_t field_38;
|
|
int32_t field_3C;
|
|
int32_t field_40;
|
|
int32_t field_44;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
uint8_t field_50;
|
|
int32_t field_54;
|
|
list_ptr_void field_58;
|
|
int64_t field_68;
|
|
int64_t field_70;
|
|
int32_t field_78;
|
|
float_t field_7C;
|
|
float_t field_80;
|
|
};
|
|
|
|
struct struc_526 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
};
|
|
|
|
struct struc_264 {
|
|
uint8_t field_0;
|
|
struc_524 field_4;
|
|
struc_524 field_18;
|
|
struc_524 field_2C;
|
|
struc_524 field_40;
|
|
struc_524 field_54;
|
|
int32_t field_68;
|
|
int32_t field_6C;
|
|
int32_t field_70;
|
|
float_t field_74;
|
|
int16_t field_78;
|
|
int32_t field_7C;
|
|
int32_t field_80;
|
|
int32_t field_84;
|
|
int32_t field_88;
|
|
int32_t field_8C;
|
|
int32_t field_90;
|
|
int32_t field_94;
|
|
uint8_t field_98;
|
|
int32_t field_9C;
|
|
int32_t field_A0;
|
|
uint8_t field_A4;
|
|
uint8_t field_A5;
|
|
int32_t field_A8;
|
|
int32_t field_AC;
|
|
int32_t field_B0;
|
|
uint8_t field_B4;
|
|
struc_523 field_B8;
|
|
int32_t field_140;
|
|
uint8_t field_144;
|
|
uint8_t field_145;
|
|
uint8_t field_146;
|
|
uint8_t field_147;
|
|
int32_t field_148;
|
|
int32_t field_14C;
|
|
uint8_t field_150;
|
|
int16_t field_152;
|
|
int32_t field_154;
|
|
int32_t field_158;
|
|
int32_t field_15C;
|
|
int32_t field_160;
|
|
int32_t field_164;
|
|
int32_t field_168;
|
|
int32_t field_16C;
|
|
int32_t field_170;
|
|
int32_t field_174;
|
|
int32_t field_178;
|
|
int32_t field_17C;
|
|
uint8_t field_180;
|
|
int32_t field_184;
|
|
int32_t field_188;
|
|
float_t field_18C;
|
|
uint8_t field_190;
|
|
int32_t field_194;
|
|
int32_t field_198;
|
|
int32_t field_19C;
|
|
int32_t field_1A0;
|
|
uint8_t field_1A4;
|
|
uint8_t** field_1A8;
|
|
int32_t field_1B0;
|
|
int32_t field_1B4;
|
|
int32_t field_1B8;
|
|
int32_t field_1BC;
|
|
struc_526 field_1C0;
|
|
uint8_t field_1C8;
|
|
uint8_t field_1C9;
|
|
uint8_t field_1CA;
|
|
int32_t field_1CC;
|
|
int32_t field_1D0;
|
|
int32_t field_1D4;
|
|
};
|
|
|
|
struct SubActExec;
|
|
struct SubActParam;
|
|
|
|
struct SubActExec_vtbl {
|
|
SubActExec* (* Dispose)(SubActExec*, bool);
|
|
void(* Field_8)(SubActExec*);
|
|
void(* Field_10)(SubActExec*, SubActParam*);
|
|
void(* Field_18)(SubActExec*, rob_chara*);
|
|
void(* Field_20)(SubActExec*, rob_chara*);
|
|
};
|
|
|
|
struct SubActExec {
|
|
SubActExec_vtbl* __vftable;
|
|
SubActExecType type;
|
|
int32_t field_C;
|
|
};
|
|
|
|
struct SubActExecCry {
|
|
SubActExec base;
|
|
};
|
|
|
|
struct SubActExecShakeHand {
|
|
SubActExec base;
|
|
int64_t field_10;
|
|
uint8_t field_18;
|
|
};
|
|
|
|
struct SubActExecEmbarrassed {
|
|
SubActExec base;
|
|
uint8_t field_10;
|
|
};
|
|
|
|
struct SubActExecAngry {
|
|
SubActExec base;
|
|
};
|
|
|
|
struct SubActExecLaugh {
|
|
SubActExec base;
|
|
};
|
|
|
|
struct SubActExecCountNum {
|
|
SubActExec base;
|
|
int64_t field_10;
|
|
int32_t field_18;
|
|
};
|
|
|
|
struct SubActParam_vtbl {
|
|
void* (*Dispose)(void*, bool);
|
|
};
|
|
|
|
struct SubActParam {
|
|
SubActParam_vtbl* __vftable;
|
|
SubActParamType type;
|
|
};
|
|
|
|
struct RobSubAction;
|
|
|
|
struct RobSubAction_vtbl {
|
|
void(*dispose)(RobSubAction*, bool);
|
|
};
|
|
|
|
struct RobSubAction {
|
|
RobSubAction_vtbl* __vftable;
|
|
|
|
struct Data {
|
|
SubActExec* field_0;
|
|
SubActExec* field_8;
|
|
SubActParam* field_10;
|
|
SubActExec* field_18;
|
|
SubActExecCry cry;
|
|
SubActExecShakeHand shake_hand;
|
|
SubActExecEmbarrassed embarrassed;
|
|
SubActExecAngry angry;
|
|
SubActExecLaugh laugh;
|
|
SubActExecCountNum count_num;
|
|
} data;
|
|
};
|
|
|
|
struct struc_389 {
|
|
float_t frame;
|
|
float_t prev_frame;
|
|
float_t last_set_frame;
|
|
};
|
|
|
|
struct struc_406 {
|
|
float_t frame;
|
|
float_t field_4;
|
|
float_t step;
|
|
};
|
|
|
|
struct RobPartialMotion;
|
|
|
|
struct RobPartialMotion_vtbl {
|
|
RobPartialMotion* (*dispose)(RobPartialMotion*, bool);
|
|
void* (*Reset)(RobPartialMotion*);
|
|
};
|
|
|
|
struct RobPartialMotion {
|
|
RobPartialMotion_vtbl* __vftable;
|
|
|
|
struct Data {
|
|
int32_t motion_id;
|
|
int32_t mottbl_index;
|
|
int32_t state;
|
|
float_t frame;
|
|
float_t play_frame_step;
|
|
float_t frame_count;
|
|
float_t duration;
|
|
float_t step;
|
|
float_t offset;
|
|
float_t field_24;
|
|
struc_389* frame_data;
|
|
struc_406* step_data;
|
|
int32_t field_38;
|
|
} data;
|
|
};
|
|
|
|
struct RobFaceMotion {
|
|
RobPartialMotion base;
|
|
};
|
|
|
|
struct RobHandMotion {
|
|
RobPartialMotion base;
|
|
};
|
|
|
|
struct RobMouthMotion {
|
|
RobPartialMotion base;
|
|
};
|
|
|
|
struct RobEyesMotion {
|
|
RobPartialMotion base;
|
|
};
|
|
|
|
struct RobEyelidMotion {
|
|
RobPartialMotion base;
|
|
};
|
|
|
|
struct rob_chara_data_adjust {
|
|
bool enable;
|
|
float_t frame;
|
|
float_t transition_frame;
|
|
vec3 curr_external_force;
|
|
float_t curr_force;
|
|
float_t curr_strength;
|
|
int32_t motion_id;
|
|
float_t set_frame;
|
|
float_t force_duration;
|
|
int32_t type;
|
|
int32_t cycle_type;
|
|
bool ignore_gravity;
|
|
vec3 external_force;
|
|
vec3 external_force_cycle_strength;
|
|
vec3 external_force_cycle;
|
|
float_t cycle;
|
|
float_t phase;
|
|
float_t force;
|
|
float_t strength;
|
|
float_t strength_transition;
|
|
};
|
|
|
|
struct rob_chara_data_hand_adjust {
|
|
bool enable;
|
|
int16_t scale_select;
|
|
rob_chara_data_hand_adjust_type type;
|
|
float_t current_scale;
|
|
float_t scale;
|
|
float_t duration;
|
|
float_t current_time;
|
|
float_t rotation_blend;
|
|
float_t scale_blend;
|
|
bool enable_scale;
|
|
bool disable_x;
|
|
bool disable_y;
|
|
bool disable_z;
|
|
vec3 offset;
|
|
vec3 field_30;
|
|
float_t arm_length;
|
|
int32_t field_40;
|
|
};
|
|
|
|
struct rob_chara_data_arm_adjust {
|
|
bool enable;
|
|
float_t value;
|
|
float_t prev_value;
|
|
float_t next_value;
|
|
float_t duration;
|
|
float_t frame;
|
|
};
|
|
|
|
struct struc_405 {
|
|
RobFaceMotion face;
|
|
RobHandMotion hand_l;
|
|
RobHandMotion hand_r;
|
|
RobMouthMotion mouth;
|
|
RobEyesMotion eye;
|
|
RobEyelidMotion eyelid;
|
|
object_info head_object;
|
|
object_info hand_l_object;
|
|
object_info hand_r_object;
|
|
object_info face_object;
|
|
int32_t field_1C0;
|
|
float_t time;
|
|
};
|
|
|
|
struct rob_chara_motion {
|
|
int32_t motion_id;
|
|
int32_t prev_motion_id;
|
|
struc_389 frame_data;
|
|
struc_406 step_data;
|
|
float_t step;
|
|
int32_t field_24;
|
|
uint8_t field_28;
|
|
uint8_t field_29;
|
|
uint8_t field_2A;
|
|
int32_t field_2C;
|
|
int32_t field_30;
|
|
int32_t field_34;
|
|
int32_t field_38[32];
|
|
int32_t field_B8[32];
|
|
float_t field_138;
|
|
float_t field_13C;
|
|
int32_t field_140;
|
|
int32_t field_144;
|
|
int32_t field_148;
|
|
int32_t field_14C;
|
|
struc_405 field_150;
|
|
RobHandMotion hand_l;
|
|
RobHandMotion hand_r;
|
|
object_info hand_l_object;
|
|
object_info hand_r_object;
|
|
struc_405 field_3B0;
|
|
rob_chara_data_adjust parts_adjust[13];
|
|
rob_chara_data_adjust parts_adjust_prev[13];
|
|
rob_chara_data_adjust adjust_global;
|
|
rob_chara_data_adjust adjust_global_prev;
|
|
rob_chara_data_hand_adjust hand_adjust[2];
|
|
rob_chara_data_hand_adjust hand_adjust_prev[2];
|
|
rob_chara_data_arm_adjust arm_adjust[2];
|
|
};
|
|
|
|
struct struc_228 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
uint32_t field_8;
|
|
int32_t field_C;
|
|
};
|
|
|
|
struct struc_227 {
|
|
int32_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
};
|
|
|
|
struct mothead_data {
|
|
mothead_data_type type;
|
|
int32_t frame;
|
|
void* data;
|
|
};
|
|
|
|
struct mothead_data2 {
|
|
int32_t type;
|
|
void* data;
|
|
};
|
|
|
|
struct struc_652 {
|
|
int32_t motion_id;
|
|
float_t frame_count;
|
|
float_t field_8;
|
|
int16_t field_C;
|
|
struc_228 field_10;
|
|
struc_228 field_20;
|
|
struc_228 field_30;
|
|
struc_228 field_40;
|
|
int16_t field_50;
|
|
int16_t field_52;
|
|
int16_t field_54;
|
|
int32_t field_58;
|
|
int32_t field_5C;
|
|
int32_t field_60;
|
|
int32_t field_64;
|
|
int32_t field_68;
|
|
int32_t field_6C;
|
|
float_t field_70;
|
|
float_t field_74;
|
|
float_t field_78;
|
|
float_t field_7C;
|
|
float_t field_80;
|
|
int8_t field_84;
|
|
int32_t field_88;
|
|
int32_t field_8C;
|
|
int32_t field_90;
|
|
int16_t field_94;
|
|
int16_t field_96;
|
|
int16_t field_98;
|
|
int32_t field_9C;
|
|
int16_t field_A0;
|
|
int32_t field_A4;
|
|
int64_t field_A8;
|
|
struc_227 field_B0[26];
|
|
int32_t field_1E8;
|
|
float_t field_1EC;
|
|
float_t field_1F0;
|
|
float_t field_1F4;
|
|
float_t field_1F8;
|
|
float_t field_1FC;
|
|
float_t field_200;
|
|
int32_t field_204;
|
|
int32_t field_208;
|
|
int32_t field_20C;
|
|
int64_t field_210;
|
|
float_t field_218;
|
|
float_t field_21C;
|
|
int16_t field_220;
|
|
list_ptr_void field_228;
|
|
int16_t field_238;
|
|
float_t field_23C;
|
|
int32_t field_240;
|
|
int16_t field_244;
|
|
const mothead_data2* field_248;
|
|
int64_t field_250;
|
|
float_t field_258;
|
|
int32_t field_25C;
|
|
struc_526 field_260;
|
|
struc_526 field_268;
|
|
int32_t field_270;
|
|
int16_t field_274;
|
|
int16_t field_276;
|
|
int32_t field_278;
|
|
int32_t field_27C;
|
|
int32_t field_280;
|
|
int16_t field_284;
|
|
int64_t field_288;
|
|
int32_t field_290;
|
|
int32_t field_294;
|
|
int32_t field_298;
|
|
float_t field_29C;
|
|
int8_t field_2A0;
|
|
float_t field_2A4;
|
|
float_t field_2A8;
|
|
float_t field_2AC;
|
|
int64_t field_2B0;
|
|
int16_t field_2B8;
|
|
int32_t field_2BC;
|
|
float_t field_2C0;
|
|
float_t field_2C4;
|
|
int32_t field_2C8;
|
|
int32_t field_2CC;
|
|
int64_t field_2D0;
|
|
int64_t field_2D8;
|
|
int64_t field_2E0;
|
|
int16_t field_2E8;
|
|
int32_t field_2EC;
|
|
int32_t field_2F0;
|
|
struc_526 field_2F4;
|
|
int32_t field_2FC;
|
|
int8_t field_300;
|
|
int32_t field_304;
|
|
int32_t field_308;
|
|
float_t field_30C;
|
|
int32_t field_310;
|
|
int16_t field_314;
|
|
vec3 field_318;
|
|
float_t field_324;
|
|
float_t field_328;
|
|
int32_t iterations;
|
|
};
|
|
|
|
struct struc_377 {
|
|
mothead_data* field_0;
|
|
mothead_data* field_8;
|
|
};
|
|
|
|
struct struc_226 {
|
|
uint8_t field_0[27];
|
|
};
|
|
|
|
struct struc_225 {
|
|
float_t field_0[27];
|
|
};
|
|
|
|
struct struc_224 {
|
|
int32_t field_0[27];
|
|
};
|
|
|
|
struct struc_306 {
|
|
int16_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
int16_t field_C;
|
|
int16_t field_E;
|
|
vec3 field_10;
|
|
vec3 field_1C;
|
|
vec3 field_28;
|
|
int32_t field_34;
|
|
int32_t field_38;
|
|
int32_t field_3C;
|
|
int32_t field_40;
|
|
int32_t field_44;
|
|
int32_t field_48;
|
|
};
|
|
|
|
struct struc_651 {
|
|
struc_377 field_0;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
float_t field_1C;
|
|
vec3 field_20;
|
|
struc_226 field_2C[3];
|
|
struc_225 field_80[3];
|
|
struc_224 field_1C4[3];
|
|
int64_t field_308;
|
|
float_t field_310;
|
|
float_t field_314;
|
|
int8_t field_318;
|
|
int32_t field_31C;
|
|
float_t field_320;
|
|
float_t field_324;
|
|
float_t field_328;
|
|
float_t field_32C;
|
|
float_t field_330;
|
|
float_t field_334;
|
|
int8_t field_338;
|
|
struc_306 field_33C[4];
|
|
};
|
|
|
|
struct struc_223 {
|
|
struc_652 field_0;
|
|
struc_651 field_330;
|
|
int64_t *field_7A0;
|
|
int32_t motion_set_id;
|
|
};
|
|
|
|
struct rob_chara_data_miku_rot {
|
|
int16_t rot_y_int16;
|
|
int16_t field_2;
|
|
int16_t field_4;
|
|
int16_t field_6;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
float_t field_10;
|
|
int32_t field_14;
|
|
vec3 position;
|
|
vec3 field_24;
|
|
vec3 field_30;
|
|
vec3 field_3C;
|
|
vec3 field_48;
|
|
vec3 field_54;
|
|
vec3 field_60;
|
|
mat4 field_6C;
|
|
};
|
|
|
|
struct rob_chara_adjust_data {
|
|
float_t scale;
|
|
bool height_adjust;
|
|
float_t pos_adjust_y;
|
|
vec3 pos_adjust;
|
|
vec3 offset;
|
|
bool offset_x;
|
|
bool offset_y;
|
|
bool offset_z;
|
|
bool get_global_trans;
|
|
vec3 trans;
|
|
mat4 mat;
|
|
float_t left_hand_scale;
|
|
float_t right_hand_scale;
|
|
float_t left_hand_scale_default;
|
|
float_t right_hand_scale_default;
|
|
};
|
|
|
|
struct struc_195 {
|
|
vec3 prev_trans;
|
|
vec3 trans;
|
|
float_t scale;
|
|
float_t field_1C;
|
|
float_t field_20;
|
|
float_t field_24;
|
|
};
|
|
|
|
struct struc_210 {
|
|
vec2 field_0;
|
|
float_t scale;
|
|
};
|
|
|
|
struct struc_215 {
|
|
int64_t field_0;
|
|
float_t field_8;
|
|
};
|
|
|
|
vector_old(struc_215)
|
|
|
|
struct struc_267 {
|
|
float_t field_0;
|
|
int16_t field_4;
|
|
int16_t field_6;
|
|
float_t field_8;
|
|
int16_t field_C;
|
|
int16_t field_E;
|
|
};
|
|
|
|
struct struc_209 {
|
|
int16_t field_0;
|
|
int32_t field_4;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
int32_t field_1C;
|
|
int32_t field_20;
|
|
int32_t field_24;
|
|
int32_t field_28;
|
|
int32_t field_2C;
|
|
int32_t field_30;
|
|
int32_t field_34;
|
|
int32_t field_38;
|
|
int32_t field_3C;
|
|
int32_t field_40;
|
|
int32_t field_44;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
int32_t field_50;
|
|
int32_t field_54;
|
|
int32_t field_58;
|
|
int32_t field_5C;
|
|
int32_t field_60;
|
|
float_t field_64;
|
|
int32_t field_68;
|
|
int32_t field_6C;
|
|
int32_t field_70;
|
|
int32_t field_74;
|
|
mat4 field_78[27];
|
|
mat4 field_738[27];
|
|
struc_195 field_DF8[27];
|
|
struc_195 field_1230[27];
|
|
struc_195 field_1668[27];
|
|
struc_210 field_1AA0[27];
|
|
float_t field_1BE4[27];
|
|
vector_old_struc_215 field_1C50;
|
|
int64_t field_1C68;
|
|
int64_t field_1C70;
|
|
int64_t field_1C78;
|
|
int64_t field_1C80;
|
|
int32_t field_1C88[27];
|
|
int32_t field_1CF4[27];
|
|
int32_t field_1D60[27];
|
|
int32_t field_1DCC;
|
|
int32_t field_1DD0;
|
|
int32_t field_1DD4;
|
|
int32_t field_1DD8;
|
|
int32_t field_1DDC;
|
|
int32_t field_1DE0;
|
|
int32_t field_1DE4;
|
|
int32_t field_1DE8;
|
|
int32_t field_1DEC;
|
|
int32_t field_1DF0;
|
|
int32_t field_1DF4;
|
|
int32_t field_1DF8;
|
|
int32_t field_1DFC;
|
|
int32_t field_1E00;
|
|
int32_t field_1E04;
|
|
int32_t field_1E08;
|
|
int32_t field_1E0C;
|
|
int32_t field_1E10;
|
|
int32_t field_1E14;
|
|
int32_t field_1E18;
|
|
int32_t field_1E1C;
|
|
int32_t field_1E20;
|
|
int32_t field_1E24;
|
|
int32_t field_1E28;
|
|
int32_t field_1E2C;
|
|
int32_t field_1E30;
|
|
int32_t field_1E34;
|
|
int32_t field_1E38;
|
|
int32_t field_1E3C;
|
|
int32_t field_1E40;
|
|
int32_t field_1E44;
|
|
int32_t field_1E48;
|
|
int32_t field_1E4C;
|
|
int32_t field_1E50;
|
|
int32_t field_1E54;
|
|
int32_t field_1E58;
|
|
int32_t field_1E5C;
|
|
int32_t field_1E60;
|
|
int32_t field_1E64;
|
|
int32_t field_1E68;
|
|
int32_t field_1E6C;
|
|
int32_t field_1E70;
|
|
int32_t field_1E74;
|
|
int32_t field_1E78;
|
|
int32_t field_1E7C;
|
|
int32_t field_1E80;
|
|
int32_t field_1E84;
|
|
int32_t field_1E88;
|
|
int32_t field_1E8C;
|
|
int32_t field_1E90;
|
|
int32_t field_1E94;
|
|
int32_t field_1E98;
|
|
int32_t field_1E9C;
|
|
int32_t field_1EA0;
|
|
int32_t field_1EA4;
|
|
int32_t field_1EA8;
|
|
int32_t field_1EAC;
|
|
int32_t field_1EB0;
|
|
struc_267 field_1EB4[4];
|
|
int32_t field_1EF4[4];
|
|
uint8_t field_1F04;
|
|
int32_t field_1F08;
|
|
int32_t field_1F0C;
|
|
int32_t field_1F10;
|
|
int32_t field_1F14;
|
|
int32_t field_1F18;
|
|
int32_t field_1F1C;
|
|
int32_t field_1F20;
|
|
uint8_t field_1F24;
|
|
uint8_t field_1F25;
|
|
uint8_t field_1F26;
|
|
};
|
|
|
|
struct rob_chara_data {
|
|
uint8_t field_0;
|
|
uint8_t field_1;
|
|
uint8_t field_2;
|
|
uint8_t field_3;
|
|
int32_t field_4;
|
|
struc_264 field_8;
|
|
RobSubAction rob_sub_action;
|
|
rob_chara_motion motion;
|
|
struc_223 field_1588;
|
|
rob_chara_data_miku_rot miku_rot;
|
|
rob_chara_adjust_data adjust_data;
|
|
struc_209 field_1E68;
|
|
float_t field_3D90;
|
|
int32_t field_3D94;
|
|
int16_t field_3D98;
|
|
int16_t field_3D9A;
|
|
uint8_t field_3D9C;
|
|
uint8_t field_3D9D;
|
|
int32_t field_3DA0;
|
|
uint8_t field_3DA4;
|
|
int64_t field_3DA8;
|
|
int64_t field_3DB0;
|
|
int32_t field_3DB8;
|
|
int32_t field_3DBC;
|
|
int32_t field_3DC0;
|
|
int32_t field_3DC4;
|
|
int32_t field_3DC8;
|
|
int32_t field_3DCC;
|
|
int32_t field_3DD0;
|
|
float_t field_3DD4;
|
|
int32_t field_3DD8;
|
|
float_t field_3DDC;
|
|
uint8_t field_3DE0;
|
|
};
|
|
|
|
struct struc_242 {
|
|
float_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
float_t field_C;
|
|
float_t field_10;
|
|
float_t field_14;
|
|
float_t field_18;
|
|
vec3 field_1C;
|
|
float_t field_28;
|
|
};
|
|
|
|
struct eyes_adjust {
|
|
bool xrot_adjust;
|
|
eyes_base_adjust_type base_adjust;
|
|
float_t neg;
|
|
float_t pos;
|
|
};
|
|
|
|
struct rob_chara_pv_data_customize_items {
|
|
int32_t head;
|
|
int32_t face;
|
|
int32_t chest;
|
|
int32_t back;
|
|
};
|
|
|
|
struct rob_chara_pv_data {
|
|
rob_chara_type type;
|
|
int8_t field_4;
|
|
int8_t field_5;
|
|
int8_t field_6;
|
|
vec3 field_8;
|
|
int16_t rot_y_int16;
|
|
int16_t field_16;
|
|
struc_242 field_18;
|
|
struc_242 field_44;
|
|
int32_t field_70;
|
|
int32_t motion_face_ids[10];
|
|
int32_t chara_size_index;
|
|
int8_t height_adjust;
|
|
union {
|
|
rob_chara_pv_data_customize_items data;
|
|
int32_t arr[4];
|
|
} customize_items;
|
|
eyes_adjust eyes_adjust;
|
|
};
|
|
|
|
struct touch_area;
|
|
|
|
struct touch_area_vftable {
|
|
touch_area(*dispose)(touch_area*, bool);
|
|
void(*field_8)(touch_area*);
|
|
void(*field_10)(touch_area*);
|
|
void(*field_18)(touch_area*);
|
|
void(*field_20)(touch_area*);
|
|
void(*field_28)(touch_area*);
|
|
void(*field_30)(touch_area*);
|
|
};
|
|
|
|
struct touch_area {
|
|
touch_area_vftable* __vftable;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
float_t field_10;
|
|
float_t field_14;
|
|
float_t field_18;
|
|
float_t field_1C;
|
|
float_t field_20;
|
|
int32_t field_24;
|
|
};
|
|
|
|
struct rob_touch_area {
|
|
touch_area area;
|
|
int64_t field_28;
|
|
uint8_t field_30[3];
|
|
int16_t field_34;
|
|
};
|
|
|
|
vector_old(rob_touch_area)
|
|
|
|
struct rob_touch;
|
|
|
|
struct rob_touch_vftable {
|
|
rob_touch* (*dispose)(rob_touch*, bool);
|
|
};
|
|
|
|
struct rob_touch {
|
|
rob_touch_vftable __vftable;
|
|
uint8_t field_8;
|
|
vector_old_rob_touch_area area;
|
|
};
|
|
|
|
struct struc_307 {
|
|
int64_t field_0;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
int64_t field_10;
|
|
int16_t field_18;
|
|
int16_t field_1A;
|
|
int16_t field_1C;
|
|
int16_t field_1E;
|
|
int64_t field_20;
|
|
rob_chara_bone_data* field_28;
|
|
};
|
|
|
|
struct struc_218 {
|
|
vec3 bone_offset;
|
|
float_t scale;
|
|
rob_bone_index bone_index;
|
|
int32_t ik;
|
|
};
|
|
|
|
struct struc_344 {
|
|
int32_t chara_size_index;
|
|
int32_t field_4;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
};
|
|
|
|
struct chara_init_data {
|
|
int32_t field_0;
|
|
int32_t object_set;
|
|
bone_database_skeleton_type skeleton_type;
|
|
object_info field_C;
|
|
object_info field_10;
|
|
object_info field_14;
|
|
object_info field_18;
|
|
object_info field_1C;
|
|
object_info field_20;
|
|
object_info field_24;
|
|
object_info field_28;
|
|
object_info field_2C;
|
|
object_info field_30;
|
|
object_info field_34;
|
|
object_info field_38;
|
|
object_info field_3C;
|
|
object_info field_40;
|
|
object_info field_44;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
int32_t field_50;
|
|
int32_t field_54;
|
|
int32_t field_58;
|
|
int32_t field_5C;
|
|
int32_t field_60;
|
|
int32_t field_64;
|
|
int32_t field_68;
|
|
int32_t field_6C;
|
|
int32_t field_70;
|
|
int32_t field_74;
|
|
int32_t field_78;
|
|
int32_t field_7C;
|
|
int32_t field_80;
|
|
int32_t field_84;
|
|
int32_t field_88;
|
|
int32_t field_8C;
|
|
int32_t field_90;
|
|
int32_t field_94;
|
|
int32_t field_98;
|
|
int32_t field_9C;
|
|
int32_t field_A0;
|
|
int32_t field_A4;
|
|
int32_t field_A8;
|
|
int32_t field_AC;
|
|
int32_t field_B0;
|
|
int32_t field_B4;
|
|
int32_t field_B8;
|
|
int32_t field_BC;
|
|
int32_t field_C0;
|
|
int32_t field_C4;
|
|
int32_t field_C8;
|
|
int32_t field_CC;
|
|
int32_t field_D0;
|
|
int32_t field_D4;
|
|
int32_t field_D8;
|
|
int32_t field_DC;
|
|
int32_t field_E0;
|
|
int32_t field_E4;
|
|
int32_t field_E8;
|
|
int32_t field_EC;
|
|
int32_t field_F0;
|
|
int32_t field_F4;
|
|
int32_t field_F8;
|
|
int32_t field_FC;
|
|
int32_t field_100;
|
|
int32_t field_104;
|
|
int32_t field_108;
|
|
int32_t field_10C;
|
|
int32_t field_110;
|
|
int32_t field_114;
|
|
int32_t field_118;
|
|
int32_t field_11C;
|
|
int32_t field_120;
|
|
int32_t field_124;
|
|
int32_t field_128;
|
|
int32_t field_12C;
|
|
int32_t field_130;
|
|
int32_t field_134;
|
|
int32_t field_138;
|
|
int32_t field_13C;
|
|
int32_t field_140;
|
|
int32_t field_144;
|
|
int32_t field_148;
|
|
int32_t field_14C;
|
|
int32_t field_150;
|
|
int32_t field_154;
|
|
int32_t field_158;
|
|
int32_t field_15C;
|
|
int32_t field_160;
|
|
int32_t field_164;
|
|
int32_t field_168;
|
|
int32_t field_16C;
|
|
int32_t field_170;
|
|
int32_t field_174;
|
|
int32_t field_178;
|
|
int32_t field_17C;
|
|
int32_t field_180;
|
|
int32_t field_184;
|
|
int32_t field_188;
|
|
int32_t field_18C;
|
|
int32_t field_190;
|
|
int32_t field_194;
|
|
int32_t field_198;
|
|
int32_t field_19C;
|
|
int32_t field_1A0;
|
|
int32_t field_1A4;
|
|
int32_t field_1A8;
|
|
int32_t field_1AC;
|
|
int32_t field_1B0;
|
|
int32_t field_1B4;
|
|
int32_t field_1B8;
|
|
int32_t field_1BC;
|
|
int32_t field_1C0;
|
|
int32_t field_1C4;
|
|
int32_t field_1C8;
|
|
int32_t field_1CC;
|
|
int32_t field_1D0;
|
|
int32_t field_1D4;
|
|
int32_t field_1D8;
|
|
int32_t field_1DC;
|
|
int32_t field_1E0;
|
|
int32_t field_1E4;
|
|
int32_t field_1E8;
|
|
int32_t field_1EC;
|
|
int32_t field_1F0;
|
|
int32_t field_1F4;
|
|
int32_t field_1F8;
|
|
int32_t field_1FC;
|
|
int32_t field_200;
|
|
int32_t field_204;
|
|
int32_t field_208;
|
|
int32_t field_20C;
|
|
int32_t field_210;
|
|
int32_t field_214;
|
|
int32_t field_218;
|
|
int32_t field_21C;
|
|
int32_t field_220;
|
|
int32_t field_224;
|
|
int32_t field_228;
|
|
int32_t field_22C;
|
|
int32_t field_230;
|
|
int32_t field_234;
|
|
int32_t field_238;
|
|
int32_t field_23C;
|
|
int32_t field_240;
|
|
int32_t field_244;
|
|
int32_t field_248;
|
|
int32_t field_24C;
|
|
int32_t field_250;
|
|
int32_t field_254;
|
|
int32_t field_258;
|
|
int32_t field_25C;
|
|
int32_t field_260;
|
|
int32_t field_264;
|
|
int32_t field_268;
|
|
int32_t field_26C;
|
|
int32_t field_270;
|
|
int32_t field_274;
|
|
int32_t field_278;
|
|
int32_t field_27C;
|
|
int32_t field_280;
|
|
int32_t field_284;
|
|
int32_t field_288;
|
|
int32_t field_28C;
|
|
int32_t field_290;
|
|
int32_t field_294;
|
|
int32_t field_298;
|
|
int32_t field_29C;
|
|
int32_t field_2A0;
|
|
int32_t field_2A4;
|
|
int32_t field_2A8;
|
|
int32_t field_2AC;
|
|
int32_t field_2B0;
|
|
int32_t field_2B4;
|
|
int32_t field_2B8;
|
|
int32_t field_2BC;
|
|
int32_t field_2C0;
|
|
int32_t field_2C4;
|
|
int32_t field_2C8;
|
|
int32_t field_2CC;
|
|
int32_t field_2D0;
|
|
int32_t field_2D4;
|
|
int32_t field_2D8;
|
|
int32_t field_2DC;
|
|
int32_t field_2E0;
|
|
int32_t field_2E4;
|
|
int32_t field_2E8;
|
|
int32_t field_2EC;
|
|
int32_t field_2F0;
|
|
int32_t field_2F4;
|
|
int32_t field_2F8;
|
|
int32_t field_2FC;
|
|
int32_t field_300;
|
|
int32_t field_304;
|
|
int32_t field_308;
|
|
int32_t field_30C;
|
|
int32_t field_310;
|
|
int32_t field_314;
|
|
int32_t field_318;
|
|
int32_t field_31C;
|
|
int32_t field_320;
|
|
int32_t field_324;
|
|
int32_t field_328;
|
|
int32_t field_32C;
|
|
int32_t field_330;
|
|
int32_t field_334;
|
|
int32_t field_338;
|
|
int32_t field_33C;
|
|
int32_t field_340;
|
|
int32_t field_344;
|
|
int32_t field_348;
|
|
int32_t field_34C;
|
|
int32_t field_350;
|
|
int32_t field_354;
|
|
int32_t field_358;
|
|
int32_t field_35C;
|
|
int32_t field_360;
|
|
int32_t field_364;
|
|
int32_t field_368;
|
|
int32_t field_36C;
|
|
int32_t field_370;
|
|
int32_t field_374;
|
|
int32_t field_378;
|
|
int32_t field_37C;
|
|
int32_t field_380;
|
|
int32_t field_384;
|
|
int32_t field_388;
|
|
int32_t field_38C;
|
|
int32_t field_390;
|
|
int32_t field_394;
|
|
int32_t field_398;
|
|
int32_t field_39C;
|
|
int32_t field_3A0;
|
|
int32_t field_3A4;
|
|
int32_t field_3A8;
|
|
int32_t field_3AC;
|
|
int32_t field_3B0;
|
|
int32_t field_3B4;
|
|
int32_t field_3B8;
|
|
int32_t field_3BC;
|
|
int32_t field_3C0;
|
|
int32_t field_3C4;
|
|
int32_t field_3C8;
|
|
int32_t field_3CC;
|
|
int32_t field_3D0;
|
|
int32_t field_3D4;
|
|
int32_t field_3D8;
|
|
int32_t field_3DC;
|
|
int32_t field_3E0;
|
|
int32_t field_3E4;
|
|
int32_t field_3E8;
|
|
int32_t field_3EC;
|
|
int32_t field_3F0;
|
|
int32_t field_3F4;
|
|
int32_t field_3F8;
|
|
int32_t field_3FC;
|
|
int32_t field_400;
|
|
int32_t field_404;
|
|
int32_t field_408;
|
|
int32_t field_40C;
|
|
int32_t field_410;
|
|
int32_t field_414;
|
|
int32_t field_418;
|
|
int32_t field_41C;
|
|
int32_t field_420;
|
|
int32_t field_424;
|
|
int32_t field_428;
|
|
int32_t field_42C;
|
|
int32_t field_430;
|
|
int32_t field_434;
|
|
int32_t field_438;
|
|
int32_t field_43C;
|
|
int32_t field_440;
|
|
int32_t field_444;
|
|
int32_t field_448;
|
|
int32_t field_44C;
|
|
int32_t field_450;
|
|
int32_t field_454;
|
|
int32_t field_458;
|
|
int32_t field_45C;
|
|
int32_t field_460;
|
|
int32_t field_464;
|
|
int32_t field_468;
|
|
int32_t field_46C;
|
|
int32_t field_470;
|
|
int32_t field_474;
|
|
int32_t field_478;
|
|
int32_t field_47C;
|
|
int32_t field_480;
|
|
int32_t field_484;
|
|
int32_t field_488;
|
|
int32_t field_48C;
|
|
int32_t field_490;
|
|
int32_t field_494;
|
|
int32_t field_498;
|
|
int32_t field_49C;
|
|
int32_t field_4A0;
|
|
int32_t field_4A4;
|
|
int32_t field_4A8;
|
|
int32_t field_4AC;
|
|
int32_t field_4B0;
|
|
int32_t field_4B4;
|
|
int32_t field_4B8;
|
|
int32_t field_4BC;
|
|
int32_t field_4C0;
|
|
int32_t field_4C4;
|
|
int32_t field_4C8;
|
|
int32_t field_4CC;
|
|
int32_t field_4D0;
|
|
int32_t field_4D4;
|
|
int32_t field_4D8;
|
|
int32_t field_4DC;
|
|
int32_t field_4E0;
|
|
int32_t field_4E4;
|
|
int32_t field_4E8;
|
|
int32_t field_4EC;
|
|
int32_t field_4F0;
|
|
int32_t field_4F4;
|
|
int32_t field_4F8;
|
|
int32_t field_4FC;
|
|
int32_t field_500;
|
|
int32_t field_504;
|
|
int32_t field_508;
|
|
int32_t field_50C;
|
|
int32_t field_510;
|
|
int32_t field_514;
|
|
int32_t field_518;
|
|
int32_t field_51C;
|
|
int32_t field_520;
|
|
int32_t field_524;
|
|
int32_t field_528;
|
|
int32_t field_52C;
|
|
int32_t field_530;
|
|
int32_t field_534;
|
|
int32_t field_538;
|
|
int32_t field_53C;
|
|
int32_t field_540;
|
|
int32_t field_544;
|
|
int32_t field_548;
|
|
int32_t field_54C;
|
|
int32_t field_550;
|
|
int32_t field_554;
|
|
int32_t field_558;
|
|
int32_t field_55C;
|
|
int32_t field_560;
|
|
int32_t field_564;
|
|
int32_t field_568;
|
|
int32_t field_56C;
|
|
int32_t field_570;
|
|
int32_t field_574;
|
|
int32_t field_578;
|
|
int32_t field_57C;
|
|
int32_t field_580;
|
|
int32_t field_584;
|
|
int32_t field_588;
|
|
int32_t field_58C;
|
|
int32_t field_590;
|
|
int32_t field_594;
|
|
int32_t field_598;
|
|
int32_t field_59C;
|
|
int32_t field_5A0;
|
|
int32_t field_5A4;
|
|
int32_t field_5A8;
|
|
int32_t field_5AC;
|
|
int32_t field_5B0;
|
|
int32_t field_5B4;
|
|
int32_t field_5B8;
|
|
int32_t field_5BC;
|
|
int32_t field_5C0;
|
|
int32_t field_5C4;
|
|
int32_t field_5C8;
|
|
int32_t field_5CC;
|
|
int32_t field_5D0;
|
|
int32_t field_5D4;
|
|
int32_t field_5D8;
|
|
int32_t field_5DC;
|
|
int32_t field_5E0;
|
|
int32_t field_5E4;
|
|
int32_t field_5E8;
|
|
int32_t field_5EC;
|
|
int32_t field_5F0;
|
|
int32_t field_5F4;
|
|
int32_t field_5F8;
|
|
int32_t field_5FC;
|
|
int32_t field_600;
|
|
int32_t field_604;
|
|
int32_t field_608;
|
|
int32_t field_60C;
|
|
int32_t field_610;
|
|
int32_t field_614;
|
|
int32_t field_618;
|
|
int32_t field_61C;
|
|
int32_t field_620;
|
|
int32_t field_624;
|
|
int32_t field_628;
|
|
int32_t field_62C;
|
|
int32_t field_630;
|
|
int32_t field_634;
|
|
int32_t field_638;
|
|
int32_t field_63C;
|
|
int32_t field_640;
|
|
int32_t field_644;
|
|
int32_t field_648;
|
|
int32_t field_64C;
|
|
int32_t field_650;
|
|
int32_t field_654;
|
|
int32_t field_658;
|
|
int32_t field_65C;
|
|
int32_t field_660;
|
|
int32_t field_664;
|
|
int32_t field_668;
|
|
int32_t field_66C;
|
|
int32_t field_670;
|
|
int32_t field_674;
|
|
int32_t field_678;
|
|
int32_t field_67C;
|
|
int32_t field_680;
|
|
int32_t field_684;
|
|
int32_t field_688;
|
|
int32_t field_68C;
|
|
int32_t field_690;
|
|
int32_t field_694;
|
|
int32_t field_698;
|
|
int32_t field_69C;
|
|
int32_t field_6A0;
|
|
int32_t field_6A4;
|
|
int32_t field_6A8;
|
|
int32_t field_6AC;
|
|
int32_t field_6B0;
|
|
int32_t field_6B4;
|
|
int32_t field_6B8;
|
|
int32_t field_6BC;
|
|
int32_t field_6C0;
|
|
int32_t field_6C4;
|
|
int32_t field_6C8;
|
|
int32_t field_6CC;
|
|
int32_t field_6D0;
|
|
int32_t field_6D4;
|
|
int32_t field_6D8;
|
|
int32_t field_6DC;
|
|
int32_t field_6E0;
|
|
int32_t field_6E4;
|
|
int32_t field_6E8;
|
|
int32_t field_6EC;
|
|
int32_t field_6F0;
|
|
int32_t field_6F4;
|
|
int32_t field_6F8;
|
|
int32_t field_6FC;
|
|
int32_t field_700;
|
|
int32_t field_704;
|
|
int32_t field_708;
|
|
int32_t field_70C;
|
|
int32_t field_710;
|
|
int32_t field_714;
|
|
int32_t field_718;
|
|
int32_t field_71C;
|
|
int32_t field_720;
|
|
int32_t field_724;
|
|
int32_t field_728;
|
|
int32_t field_72C;
|
|
int32_t field_730;
|
|
int32_t field_734;
|
|
int32_t field_738;
|
|
int32_t field_73C;
|
|
int32_t field_740;
|
|
int32_t field_744;
|
|
int32_t field_748;
|
|
int32_t field_74C;
|
|
int32_t field_750;
|
|
int32_t field_754;
|
|
int32_t field_758;
|
|
int32_t field_75C;
|
|
int32_t field_760;
|
|
int32_t field_764;
|
|
int32_t field_768;
|
|
int32_t field_76C;
|
|
int32_t field_770;
|
|
int32_t field_774;
|
|
int32_t field_778;
|
|
int32_t field_77C;
|
|
int32_t field_780;
|
|
int32_t field_784;
|
|
int32_t field_788;
|
|
int32_t field_78C;
|
|
int32_t field_790;
|
|
int32_t field_794;
|
|
int32_t field_798;
|
|
int32_t field_79C;
|
|
int32_t field_7A0;
|
|
int32_t field_7A4;
|
|
int32_t field_7A8;
|
|
int32_t field_7AC;
|
|
int32_t field_7B0;
|
|
int32_t field_7B4;
|
|
int32_t field_7B8;
|
|
int32_t field_7BC;
|
|
int32_t field_7C0;
|
|
int32_t field_7C4;
|
|
int32_t field_7C8;
|
|
int32_t field_7CC;
|
|
int32_t field_7D0;
|
|
int32_t field_7D4;
|
|
int32_t field_7D8;
|
|
int32_t field_7DC;
|
|
object_info field_7E0;
|
|
object_info field_7E4;
|
|
object_info field_7E8;
|
|
object_info field_7EC;
|
|
object_info field_7F0;
|
|
object_info field_7F4;
|
|
object_info field_7F8;
|
|
object_info field_7FC;
|
|
object_info field_800;
|
|
object_info field_804;
|
|
object_info field_808;
|
|
object_info field_80C;
|
|
object_info field_810;
|
|
object_info field_814;
|
|
object_info field_818;
|
|
uint32_t motion_set;
|
|
int32_t field_820;
|
|
int32_t field_824;
|
|
struc_218* field_828;
|
|
struc_218* field_830;
|
|
uint8_t*** field_838;
|
|
int32_t field_840;
|
|
int32_t field_844;
|
|
struc_344* field_848;
|
|
object_info* head_objects;
|
|
void* field_858;
|
|
void* field_860;
|
|
object_info* face_objects;
|
|
};
|
|
|
|
struct rob_detail;
|
|
|
|
struct rob_detail_vtbl {
|
|
rob_detail* (*dispose)(rob_detail*, bool);
|
|
};
|
|
|
|
struct rob_detail {
|
|
rob_detail_vtbl* __vftable;
|
|
rob_chara* field_8;
|
|
rob_chara_data* field_10;
|
|
};
|
|
|
|
struct rob_chara {
|
|
uint8_t chara_id;
|
|
uint8_t field_1;
|
|
uint8_t field_2;
|
|
uint8_t field_3;
|
|
int32_t field_4;
|
|
int16_t field_8;
|
|
int16_t field_A;
|
|
uint8_t field_C;
|
|
uint8_t field_D;
|
|
chara_index chara_index;
|
|
int32_t module_index;
|
|
int32_t field_18;
|
|
float_t field_1C;
|
|
struc_307* field_20;
|
|
rob_chara_bone_data* bone_data;
|
|
rob_chara_item_equip* item_equip;
|
|
rob_chara_item_cos_data item_cos_data;
|
|
rob_chara_data data;
|
|
rob_chara_data data_prev;
|
|
chara_init_data* chara_init_data;
|
|
rob_detail* rob_detail;
|
|
rob_chara_pv_data pv_data;
|
|
int32_t field_80E4;
|
|
rob_touch rob_touch;
|
|
};
|
|
|
|
struct struc_313 {
|
|
vector_old_uint32_t bitfield;
|
|
size_t motion_bone_count;
|
|
};
|
|
|
|
struct mot {
|
|
uint16_t key_set_count;
|
|
uint16_t frame_count;
|
|
uint16_t field_4;
|
|
mot_key_set* key_sets;
|
|
};
|
|
|
|
struct struc_369 {
|
|
int32_t field_0;
|
|
float_t field_4;
|
|
};
|
|
|
|
struct mot_key_set_file {
|
|
uint16_t info;
|
|
uint16_t frame_count;
|
|
};
|
|
|
|
struct mot_data {
|
|
mot_key_set_file* data_file;
|
|
uint16_t* key_set_types;
|
|
void* key_sets;
|
|
uint16_t* bone_info;
|
|
};
|
|
|
|
struct mot_key_data {
|
|
bool key_sets_ready;
|
|
size_t key_set_count;
|
|
vector_old_mot_key_set key_set;
|
|
mot mot;
|
|
vector_old_float_t key_set_data;
|
|
mot_data* mot_data;
|
|
bone_database_skeleton_type skeleton_type;
|
|
int32_t skeleton_select;
|
|
int32_t motion_id;
|
|
float_t frame;
|
|
struc_369 field_68;
|
|
};
|
|
|
|
struct bone_data {
|
|
bone_database_bone_type type;
|
|
int32_t has_parent;
|
|
motion_bone_index motion_bone_index;
|
|
int32_t mirror;
|
|
int32_t parent;
|
|
int32_t flags;
|
|
int32_t key_set_offset;
|
|
int32_t key_set_count;
|
|
float_t frame;
|
|
vec3 base_translation[2];
|
|
vec3 rotation;
|
|
vec3 ik_target;
|
|
vec3 trans;
|
|
mat4 rot_mat[3];
|
|
vec3 trans_prev[2];
|
|
mat4 rot_mat_prev[3][2];
|
|
mat4* pole_target_mat;
|
|
mat4* parent_mat;
|
|
bone_node* node;
|
|
float_t ik_segment_length[2];
|
|
float_t ik_2nd_segment_length[2];
|
|
float_t arm_length;
|
|
float_t eyes_xrot_adjust_neg;
|
|
float_t eyes_xrot_adjust_pos;
|
|
};
|
|
|
|
vector_old(bone_data)
|
|
|
|
struct struc_400 {
|
|
bool field_0;
|
|
bool field_1;
|
|
bool field_2;
|
|
bool field_3;
|
|
bool field_4;
|
|
float_t frame;
|
|
float_t rot_y;
|
|
float_t prev_rot_y;
|
|
};
|
|
|
|
struct MotionBlend;
|
|
|
|
struct /*VFT*/ MotionBlend_vtbl {
|
|
void* (*Dispose)(MotionBlend*, bool);
|
|
void (*Reset)(MotionBlend*);
|
|
void (*Field10)(MotionBlend*, float_t a2, float_t a3, int32_t a4);
|
|
void (*Step)(MotionBlend*, struc_400*);
|
|
void (*Field20)(MotionBlend*, vector_old_bone_data*, vector_old_bone_data*);
|
|
void (*Blend)(MotionBlend*, bone_data*, bone_data*);
|
|
bool (*Field30)(MotionBlend*);
|
|
};
|
|
|
|
struct MotionBlend {
|
|
MotionBlend_vtbl* __vftable;
|
|
bool enable;
|
|
bool rot_y;
|
|
float_t duration;
|
|
float_t frame;
|
|
float_t step;
|
|
float_t offset;
|
|
float_t blend;
|
|
};
|
|
|
|
struct PartialMotionBlendFreeze {
|
|
MotionBlend base;
|
|
};
|
|
|
|
struct MotionBlendCross {
|
|
MotionBlend base;
|
|
bool field_20;
|
|
bool field_21;
|
|
mat4 field_24;
|
|
mat4 field_64;
|
|
mat4 field_A4;
|
|
mat4 field_E4;
|
|
};
|
|
|
|
struct MotionBlendFreeze {
|
|
MotionBlend base;
|
|
uint8_t field_20;
|
|
uint8_t field_21;
|
|
int32_t field_24;
|
|
float_t field_28;
|
|
float_t field_2C;
|
|
int32_t field_30;
|
|
mat4 field_34;
|
|
mat4 field_74;
|
|
mat4 rot_y;
|
|
mat4 field_F4;
|
|
};
|
|
|
|
struct MotionBlendCombine {
|
|
MotionBlendCross base;
|
|
};
|
|
|
|
struct struc_240 {
|
|
bool(*bone_check_func)(motion_bone_index bone_index);
|
|
struc_313 field_8;
|
|
size_t motion_bone_count;
|
|
};
|
|
|
|
struct mot_play_frame_data {
|
|
float_t frame;
|
|
float_t step;
|
|
float_t step_prev;
|
|
float_t frame_count;
|
|
float_t last_frame;
|
|
float_t field_14;
|
|
int32_t field_18;
|
|
int32_t field_1C;
|
|
float_t field_20;
|
|
float_t field_24;
|
|
bool field_28;
|
|
int32_t field_2C;
|
|
};
|
|
|
|
struct mot_play_data {
|
|
mot_play_frame_data frame_data;
|
|
int32_t field_30;
|
|
bool field_34;
|
|
float_t field_38;
|
|
float_t* field_40;
|
|
float_t* field_48;
|
|
};
|
|
|
|
struct mot_blend {
|
|
struc_240 field_0;
|
|
uint8_t field_30;
|
|
mot_key_data mot_key_data;
|
|
mot_play_data mot_play_data;
|
|
PartialMotionBlendFreeze blend;
|
|
};
|
|
|
|
struct struc_241 {
|
|
float_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
float_t field_C;
|
|
float_t field_10;
|
|
float_t field_14;
|
|
float_t field_18;
|
|
float_t field_1C;
|
|
float_t field_20;
|
|
float_t field_24;
|
|
float_t field_28;
|
|
float_t field_2C;
|
|
float_t field_30;
|
|
float_t field_34;
|
|
float_t field_38;
|
|
float_t field_3C;
|
|
float_t field_40;
|
|
};
|
|
|
|
struct struc_243 {
|
|
float_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
float_t field_C;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
int32_t field_1C;
|
|
float_t field_20;
|
|
float_t field_24;
|
|
};
|
|
|
|
struct struc_258 {
|
|
vector_old_bone_data* field_0;
|
|
mat4 field_8;
|
|
struc_241 field_48;
|
|
uint8_t field_8C;
|
|
uint8_t field_8D;
|
|
uint8_t field_8E;
|
|
uint8_t field_8F;
|
|
uint8_t field_90;
|
|
uint8_t field_91;
|
|
float_t field_94;
|
|
float_t field_98;
|
|
float_t field_9C;
|
|
float_t field_A0;
|
|
float_t field_A4;
|
|
int32_t field_A8;
|
|
int32_t field_AC;
|
|
float_t field_B0;
|
|
vec3 field_B4;
|
|
vec3 field_C0;
|
|
mat4 field_CC;
|
|
mat4 field_10C;
|
|
bool field_14C;
|
|
float_t field_150;
|
|
float_t field_154;
|
|
float_t field_158;
|
|
struc_243 field_15C;
|
|
float_t field_184;
|
|
float_t field_188;
|
|
float_t field_18C;
|
|
bool field_190;
|
|
bool field_191;
|
|
bool field_192;
|
|
bool field_193;
|
|
bool field_194;
|
|
bool field_195;
|
|
float_t field_198;
|
|
float_t field_19C;
|
|
float_t field_1A0;
|
|
int32_t field_1A4;
|
|
int32_t field_1A8;
|
|
float_t field_1AC;
|
|
float_t field_1B0;
|
|
int32_t field_1B4;
|
|
int32_t field_1B8;
|
|
vec2 field_1BC;
|
|
uint8_t field_1C4;
|
|
int32_t field_1C8;
|
|
int32_t field_1CC;
|
|
};
|
|
|
|
struct struc_312 {
|
|
struc_242 field_0;
|
|
struc_242 field_2C;
|
|
uint8_t field_58;
|
|
uint8_t field_59;
|
|
vec3 field_5C;
|
|
vec3 field_68;
|
|
vec3 field_74;
|
|
vec3 field_80;
|
|
float_t field_8C;
|
|
vector_old_bone_data* bones;
|
|
float_t step;
|
|
};
|
|
|
|
struct bone_data_parent {
|
|
rob_chara_bone_data* rob_bone_data;
|
|
bool field_8;
|
|
bool field_9;
|
|
size_t motion_bone_count;
|
|
size_t ik_bone_count;
|
|
size_t chain_pos;
|
|
vector_old_bone_data bones;
|
|
vector_old_uint16_t bone_indices;
|
|
vec3 global_trans;
|
|
vec3 global_rotation;
|
|
uint32_t bone_key_set_count;
|
|
uint32_t global_key_set_count;
|
|
float_t field_78;
|
|
float_t rot_y;
|
|
};
|
|
|
|
struct struc_308 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
uint8_t field_8;
|
|
mat4 mat;
|
|
mat4 field_4C;
|
|
bool field_8C;
|
|
vec3 field_90;
|
|
vec3 field_9C;
|
|
vec3 field_A8;
|
|
float_t rot_y;
|
|
float_t prev_rot_y;
|
|
uint8_t field_BC;
|
|
uint8_t field_BD;
|
|
float_t field_C0;
|
|
float_t field_C4;
|
|
vec3 field_C8;
|
|
};
|
|
|
|
struct motion_blend_mot {
|
|
struc_240 field_0;
|
|
MotionBlendCross cross;
|
|
MotionBlendFreeze freeze;
|
|
MotionBlendCombine combine;
|
|
bone_data_parent bone_data;
|
|
mot_key_data mot_key_data;
|
|
mot_play_data mot_play_data;
|
|
struc_308 field_4F8;
|
|
int32_t field_5CC;
|
|
MotionBlend* blend;
|
|
};
|
|
|
|
vector_old_ptr(motion_blend_mot)
|
|
vector_old(mat4)
|
|
list_ptr(motion_blend_mot)
|
|
list(size_t)
|
|
|
|
struct rob_chara_bone_data_ik_scale {
|
|
float_t ratio0;
|
|
float_t ratio1;
|
|
float_t ratio2;
|
|
float_t ratio3;
|
|
};
|
|
|
|
struct rob_chara_bone_data {
|
|
uint8_t field_0;
|
|
uint8_t field_1;
|
|
size_t object_bone_count;
|
|
size_t total_bone_count;
|
|
size_t motion_bone_count;
|
|
size_t ik_bone_count;
|
|
size_t chain_pos;
|
|
vector_old_mat4 mats;
|
|
vector_old_mat4 mats2;
|
|
vector_old_bone_node nodes;
|
|
bone_database_skeleton_type base_skeleton_type;
|
|
bone_database_skeleton_type skeleton_type;
|
|
vector_old_ptr_motion_blend_mot motions;
|
|
list_size_t motion_indices;
|
|
list_size_t motion_loaded_indices;
|
|
list_ptr_motion_blend_mot motion_loaded;
|
|
mot_blend face;
|
|
mot_blend hand_l;
|
|
mot_blend hand_r;
|
|
mot_blend mouth;
|
|
mot_blend eye;
|
|
mot_blend eyelid;
|
|
bool disable_eye_motion;
|
|
rob_chara_bone_data_ik_scale ik_scale;
|
|
vec3 field_76C;
|
|
vec3 field_778;
|
|
int32_t field_784;
|
|
struc_258 field_788;
|
|
struc_312 field_958;
|
|
};
|
|
|
|
struct opd_blend_data {
|
|
int32_t motion_id;
|
|
float_t frame;
|
|
float_t frame_count;
|
|
bool field_C;
|
|
MotionBlendType type;
|
|
float_t blend;
|
|
};
|
|
|
|
vector_old(opd_blend_data)
|
|
|
|
struct obj_skin_block_node {
|
|
const char* parent_name;
|
|
vec3 position;
|
|
vec3 rotation;
|
|
vec3 scale;
|
|
};
|
|
|
|
struct obj_skin_block_osage_node {
|
|
uint32_t name_index;
|
|
float_t length;
|
|
vec3 rotation;
|
|
};
|
|
|
|
struct obj_skin_block_osage {
|
|
obj_skin_block_node node;
|
|
int32_t start_index;
|
|
int32_t count;
|
|
int32_t external_name_index;
|
|
int32_t name_index;
|
|
obj_skin_block_osage_node* nodes;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
int32_t field_50;
|
|
int32_t field_54;
|
|
};
|
|
|
|
struct obj_skin_block_expression {
|
|
obj_skin_block_node node;
|
|
const char* name;
|
|
uint32_t expression_count;
|
|
const char* expressions[9];
|
|
};
|
|
|
|
struct obj_skin_block_cloth_root_bone_weight {
|
|
const char* bone_name;
|
|
float_t weight;
|
|
uint32_t matrix_index;
|
|
uint32_t reserved;
|
|
};
|
|
|
|
struct obj_skin_block_cloth_root {
|
|
vec3 trans;
|
|
vec3 normal;
|
|
float_t field_18;
|
|
int32_t field_1C;
|
|
int32_t field_20;
|
|
int32_t field_24;
|
|
obj_skin_block_cloth_root_bone_weight field_28[4];
|
|
};
|
|
|
|
|
|
struct obj_skin_block_cloth_node {
|
|
uint32_t flags;
|
|
vec3 trans;
|
|
vec3 trans_prev;
|
|
float_t dist_top;
|
|
float_t dist_bottom;
|
|
float_t dist_right;
|
|
float_t dist_left;
|
|
};
|
|
|
|
struct skin_param_osage_root_coli {
|
|
int32_t type;
|
|
int32_t bone0_index;
|
|
int32_t bone1_index;
|
|
float_t radius;
|
|
vec3 bone0_pos;
|
|
vec3 bone1_pos;
|
|
};
|
|
|
|
vector_old(skin_param_osage_root_coli)
|
|
|
|
struct skin_param_osage_root_boc {
|
|
int32_t ed_node;
|
|
string ed_root;
|
|
int32_t st_node;
|
|
};
|
|
|
|
vector_old(skin_param_osage_root_boc)
|
|
|
|
struct skin_param_osage_root_normal_ref {
|
|
string n;
|
|
string u;
|
|
string d;
|
|
string l;
|
|
string r;
|
|
};
|
|
|
|
vector_old(skin_param_osage_root_normal_ref)
|
|
|
|
struct skin_param_osage_root {
|
|
int32_t field_0;
|
|
float_t force;
|
|
float_t force_gain;
|
|
float_t air_res;
|
|
float_t rot_y;
|
|
float_t rot_z;
|
|
float_t init_rot_y;
|
|
float_t init_rot_z;
|
|
float_t hinge_y;
|
|
float_t hinge_z;
|
|
const char* name;
|
|
vector_old_skin_param_osage_root_coli coli;
|
|
float_t coli_r;
|
|
float_t friction;
|
|
float_t wind_afc;
|
|
int32_t yz_order;
|
|
vector_old_skin_param_osage_root_boc boc;
|
|
int32_t coli_type;
|
|
float_t stiffness;
|
|
float_t move_cancel;
|
|
string colli_tgt_osg;
|
|
vector_old_skin_param_osage_root_normal_ref normal_ref;
|
|
};
|
|
|
|
struct obj_skin_block_cloth {
|
|
const char* mesh_name;
|
|
const char* backface_mesh_name;
|
|
int32_t field_8;
|
|
uint32_t root_count;
|
|
uint32_t nodes_count;
|
|
int32_t field_14;
|
|
mat4* mats;
|
|
obj_skin_block_cloth_root* root;
|
|
obj_skin_block_cloth_node* nodes;
|
|
uint16_t* mesh_indices;
|
|
uint16_t* backface_mesh_indices;
|
|
skin_param_osage_root* skp_root;
|
|
uint32_t reserved;
|
|
};
|
|
|
|
struct obj_skin_block_constraint_orientation {
|
|
vec3 offset;
|
|
};
|
|
|
|
struct obj_skin_block_constraint_up_vector {
|
|
bool active;
|
|
float_t roll;
|
|
vec3 affected_axis;
|
|
vec3 point_at;
|
|
const char* name;
|
|
};
|
|
|
|
struct obj_skin_block_constraint_direction {
|
|
obj_skin_block_constraint_up_vector up_vector;
|
|
vec3 align_axis;
|
|
vec3 target_offset;
|
|
};
|
|
|
|
struct obj_skin_block_constraint_attach_point {
|
|
int32_t affected_by_orientation;
|
|
int32_t affected_by_scaling;
|
|
vec3 offset;
|
|
};
|
|
|
|
struct obj_skin_block_constraint_position {
|
|
obj_skin_block_constraint_up_vector up_vector;
|
|
obj_skin_block_constraint_attach_point constrained_object;
|
|
obj_skin_block_constraint_attach_point constraining_object;
|
|
};
|
|
|
|
struct obj_skin_block_constraint_distance {
|
|
obj_skin_block_constraint_up_vector up_vector;
|
|
float_t distance;
|
|
obj_skin_block_constraint_attach_point constrained_object;
|
|
obj_skin_block_constraint_attach_point constraining_object;
|
|
};
|
|
|
|
struct obj_skin_block_constraint {
|
|
obj_skin_block_node node;
|
|
const char* type;
|
|
const char* name;
|
|
int32_t coupling;
|
|
const char* source_node_name;
|
|
union {
|
|
obj_skin_block_constraint_orientation orientation;
|
|
obj_skin_block_constraint_direction direction;
|
|
obj_skin_block_constraint_position position;
|
|
obj_skin_block_constraint_distance distance;
|
|
};
|
|
};
|
|
|
|
union obj_skin_block_union {
|
|
obj_skin_block_node base;
|
|
obj_skin_block_cloth cloth;
|
|
obj_skin_block_constraint constraint;
|
|
obj_skin_block_expression expression;
|
|
obj_skin_block_osage osage;
|
|
};
|
|
|
|
struct obj_skin_block {
|
|
const char* signature;
|
|
obj_skin_block_union* block;
|
|
};
|
|
|
|
struct rob_chara_item_equip_object;
|
|
struct ExNodeBlock;
|
|
|
|
struct ExNodeBlock_vtbl {
|
|
void* (*Dispose)(ExNodeBlock*, bool dispose);
|
|
void(*Field8)(ExNodeBlock*);
|
|
void(*Field10)(ExNodeBlock*);
|
|
void(*Field18)(ExNodeBlock*, int32_t, bool);
|
|
void(*Field20)(ExNodeBlock*);
|
|
void(*SetOsagePlayData)(ExNodeBlock*);
|
|
void(*Disp)(ExNodeBlock*);
|
|
void(*Reset)(ExNodeBlock*);
|
|
void(*Field40)(ExNodeBlock*);
|
|
void(*Field48)(ExNodeBlock*);
|
|
void(*Field50)(ExNodeBlock*);
|
|
void(*Field58)(ExNodeBlock*);
|
|
};
|
|
|
|
struct ExNodeBlock {
|
|
ExNodeBlock_vtbl* __vftable;
|
|
bone_node* bone_node_ptr;
|
|
ExNodeType type;
|
|
const char* name;
|
|
bone_node* parent_bone_node;
|
|
string parent_name;
|
|
ExNodeBlock* parent_node;
|
|
rob_chara_item_equip_object* item_equip_object;
|
|
bool field_58;
|
|
bool field_59;
|
|
bool field_5A;
|
|
};
|
|
|
|
struct ExNullBlock {
|
|
ExNodeBlock base;
|
|
obj_skin_block_node* node_data;
|
|
};
|
|
|
|
struct rob_osage_node;
|
|
|
|
struct rob_osage_node_data_normal_ref {
|
|
bool field_0;
|
|
int field_4;
|
|
rob_osage_node* n;
|
|
rob_osage_node* u;
|
|
rob_osage_node* d;
|
|
rob_osage_node* l;
|
|
rob_osage_node* r;
|
|
mat4 mat;
|
|
};
|
|
|
|
struct skin_param_hinge {
|
|
float_t ymin;
|
|
float_t ymax;
|
|
float_t zmin;
|
|
float_t zmax;
|
|
};
|
|
|
|
struct skin_param_osage_node {
|
|
float_t coli_r;
|
|
float_t weight;
|
|
float_t inertial_cancel;
|
|
skin_param_hinge hinge;
|
|
};
|
|
|
|
vector_old_ptr(rob_osage_node)
|
|
|
|
struct rob_osage_node_data {
|
|
float_t force;
|
|
vector_old_ptr_rob_osage_node boc;
|
|
rob_osage_node_data_normal_ref normal_ref;
|
|
skin_param_osage_node skp_osg_node;
|
|
};
|
|
|
|
struct opd_vec3_data {
|
|
float_t* x;
|
|
float_t* y;
|
|
float_t* z;
|
|
};
|
|
|
|
vector_old(opd_vec3_data)
|
|
|
|
struct struc_477 {
|
|
float_t length;
|
|
vec3 angle;
|
|
};
|
|
|
|
struct struc_476 {
|
|
struc_477 field_0;
|
|
struc_477 field_10;
|
|
};
|
|
|
|
struct RobOsageNodeResetData {
|
|
vec3 trans;
|
|
vec3 trans_diff;
|
|
vec3 rotation;
|
|
float_t length;
|
|
};
|
|
|
|
struct rob_osage_node {
|
|
float_t length;
|
|
vec3 trans;
|
|
vec3 trans_orig;
|
|
vec3 trans_diff;
|
|
vec3 field_28;
|
|
float_t child_length;
|
|
bone_node* bone_node_ptr;
|
|
mat4* bone_node_mat;
|
|
mat4 mat;
|
|
rob_osage_node* sibling_node;
|
|
float_t distance;
|
|
vec3 field_94;
|
|
RobOsageNodeResetData reset_data;
|
|
float_t field_C8;
|
|
float_t field_CC;
|
|
vec3 external_force;
|
|
float_t force;
|
|
rob_osage_node_data* data_ptr;
|
|
rob_osage_node_data data;
|
|
vector_old_opd_vec3_data opd_data;
|
|
struc_476 field_1B0;
|
|
};
|
|
|
|
vector_old(rob_osage_node)
|
|
|
|
struct skin_param {
|
|
vector_old_skin_param_osage_root_coli coli;
|
|
float_t friction;
|
|
float_t wind_afc;
|
|
float_t air_res;
|
|
vec3 rot;
|
|
vec3 init_rot;
|
|
int32_t coli_type;
|
|
float_t stiffness;
|
|
float_t move_cancel;
|
|
float_t coli_r;
|
|
skin_param_hinge hinge;
|
|
float_t force;
|
|
float_t force_gain;
|
|
vector_old_rob_osage_node* colli_tgt_osg;
|
|
};
|
|
|
|
struct osage_coli {
|
|
int32_t type;
|
|
float_t radius;
|
|
vec3 bone0_pos;
|
|
vec3 bone1_pos;
|
|
vec3 bone_pos_diff;
|
|
float_t bone_pos_diff_length;
|
|
float_t bone_pos_diff_length_squared;
|
|
float_t field_34;
|
|
};
|
|
|
|
vector_old(osage_coli)
|
|
|
|
struct osage_ring_data {
|
|
float_t ring_rectangle_x;
|
|
float_t ring_rectangle_y;
|
|
float_t ring_rectangle_width;
|
|
float_t ring_rectangle_height;
|
|
float_t ring_height;
|
|
float_t ring_out_height;
|
|
bool field_18;
|
|
vector_old_osage_coli coli;
|
|
vector_old_skin_param_osage_root_coli skp_root_coli;
|
|
};
|
|
|
|
struct pair_int32_t_int32_t {
|
|
int32_t key;
|
|
int32_t value;
|
|
};
|
|
|
|
list(RobOsageNodeResetData)
|
|
|
|
struct pair_pair_int32_t_int32_t_list_RobOsageNodeResetData {
|
|
pair_int32_t_int32_t key;
|
|
list_RobOsageNodeResetData value;
|
|
};
|
|
|
|
typedef pair_pair_int32_t_int32_t_list_RobOsageNodeResetData motion_reset_data;
|
|
|
|
tree_def(motion_reset_data)
|
|
|
|
struct osage_setting_osg_cat {
|
|
rob_osage_parts parts;
|
|
size_t exf;
|
|
};
|
|
|
|
struct rob_osage {
|
|
skin_param* skin_param_ptr;
|
|
bone_node_expression_data exp_data;
|
|
vector_old_rob_osage_node nodes;
|
|
rob_osage_node node;
|
|
skin_param skin_param;
|
|
osage_setting_osg_cat osage_setting;
|
|
bool field_2A0;
|
|
bool field_2A1;
|
|
float_t field_2A4;
|
|
osage_coli coli[64];
|
|
osage_coli coli_ring[64];
|
|
vec3 wind_direction;
|
|
float_t field_1EB4;
|
|
int32_t yz_order;
|
|
int32_t field_1EBC;
|
|
mat4* parent_mat_ptr;
|
|
mat4 parent_mat;
|
|
float_t move_cancel;
|
|
bool field_1F0C;
|
|
bool osage_reset;
|
|
bool field_1F0E;
|
|
bool field_1F0F;
|
|
osage_ring_data ring;
|
|
tree_motion_reset_data motion_reset_data;
|
|
list_RobOsageNodeResetData* reset_data_list;
|
|
bool set_external_force;
|
|
vec3 external_force;
|
|
};
|
|
|
|
struct ExOsageBlock {
|
|
ExNodeBlock base;
|
|
size_t index;
|
|
rob_osage rob;
|
|
mat4* mat;
|
|
int32_t field_1FF8;
|
|
float_t step;
|
|
};
|
|
|
|
struct ExConstraintBlock {
|
|
ExNodeBlock base;
|
|
obj_skin_block_constraint_type type;
|
|
bone_node* source_node_bone_node;
|
|
bone_node* direction_up_vector_bone_node;
|
|
obj_skin_block_constraint* cns_data;
|
|
int64_t field_80;
|
|
};
|
|
|
|
struct struc_323 {
|
|
int32_t field_0;
|
|
int64_t field_8;
|
|
int64_t field_10;
|
|
int64_t field_18;
|
|
int64_t field_20;
|
|
};
|
|
|
|
struct ex_expression_block_stack;
|
|
|
|
struct ex_expression_block_stack_number {
|
|
float_t value;
|
|
};
|
|
|
|
struct ex_expression_block_stack_variable {
|
|
float_t* value;
|
|
};
|
|
|
|
struct ex_expression_block_stack_variable_radian {
|
|
float_t* value;
|
|
};
|
|
|
|
struct ex_expression_block_stack_op1 {
|
|
float_t(*func)(float_t v1);
|
|
ex_expression_block_stack* v1;
|
|
};
|
|
|
|
struct ex_expression_block_stack_op2 {
|
|
float_t(*func)(float_t v1, float_t v2);
|
|
ex_expression_block_stack* v1;
|
|
ex_expression_block_stack* v2;
|
|
};
|
|
|
|
struct ex_expression_block_stack_op3 {
|
|
float_t(*func)(float_t v1, float_t v2, float_t v3);
|
|
ex_expression_block_stack* v1;
|
|
ex_expression_block_stack* v2;
|
|
ex_expression_block_stack* v3;
|
|
};
|
|
|
|
struct ex_expression_block_stack {
|
|
ex_expression_block_stack_type type;
|
|
union {
|
|
ex_expression_block_stack_number number;
|
|
ex_expression_block_stack_variable var;
|
|
ex_expression_block_stack_variable_radian var_rad;
|
|
ex_expression_block_stack_op1 op1;
|
|
ex_expression_block_stack_op2 op2;
|
|
ex_expression_block_stack_op3 op3;
|
|
};
|
|
};
|
|
|
|
struct ExExpressionBlock {
|
|
ExNodeBlock base;
|
|
float_t* values[9];
|
|
ex_expression_block_stack_type types[9];
|
|
ex_expression_block_stack* expressions[9];
|
|
ex_expression_block_stack stack_data[384];
|
|
obj_skin_block_expression* exp_data;
|
|
bool field_3D20;
|
|
void(*field_3D28)(bone_node_expression_data*);
|
|
float_t frame;
|
|
bool init;
|
|
};
|
|
|
|
struct struc_342 {
|
|
int32_t field_0;
|
|
vec3 field_4;
|
|
int64_t field_10;
|
|
int64_t field_18;
|
|
int64_t field_20;
|
|
int64_t field_28;
|
|
int32_t field_30;
|
|
vec3 field_34;
|
|
vec3 field_40;
|
|
vec3 field_4C;
|
|
int64_t field_58;
|
|
int64_t field_60;
|
|
int64_t field_68;
|
|
int64_t field_70;
|
|
int64_t field_78;
|
|
int64_t field_80;
|
|
int64_t field_88;
|
|
int64_t field_90;
|
|
int64_t field_98;
|
|
int64_t field_A0;
|
|
int64_t field_A8;
|
|
int64_t field_B0;
|
|
int64_t field_B8;
|
|
int64_t field_C0;
|
|
int64_t field_C8;
|
|
int64_t field_D0;
|
|
int64_t field_D8;
|
|
int64_t field_E0;
|
|
int64_t field_E8;
|
|
};
|
|
|
|
struct CLOTHNode {
|
|
uint32_t flags;
|
|
vec3 trans;
|
|
vec3 trans_orig;
|
|
vec3 field_1C;
|
|
vec3 trans_diff;
|
|
vec3 normal;
|
|
vec3 tangent;
|
|
vec3 binormal;
|
|
float_t tangent_sign;
|
|
vec2 texcoord;
|
|
vec3 field_64;
|
|
float_t dist_top;
|
|
float_t dist_bottom;
|
|
float_t dist_right;
|
|
float_t dist_left;
|
|
__int64 field_80;
|
|
int field_88;
|
|
RobOsageNodeResetData reset_data;
|
|
int field_B4;
|
|
vector_old_opd_vec3_data opd_data;
|
|
struc_476 field_D0;
|
|
};
|
|
|
|
struct CLOTH;
|
|
|
|
struct CLOTH_vtbl {
|
|
CLOTH* (*Init)(CLOTH*);
|
|
CLOTH* (*Dispose)(CLOTH*, bool dispose);
|
|
void(*SetSkinParamColiR)(CLOTH*, float_t coli_r);
|
|
void(*SetSkinParamFriction)(CLOTH*, float_t friction);
|
|
void(*SetSkinParamWindAfc)(CLOTH*, float_t wind_afc);
|
|
void(*SetWindDirection)(CLOTH*, vec3* wind_direction);
|
|
void(*Field_30)(CLOTH*, float_t a2);
|
|
void(*SetSkinParamHinge)(CLOTH*, float_t hinge_y, float_t hinge_z);
|
|
CLOTHNode* (*GetNodes)(CLOTH*);
|
|
void(*Reset)(CLOTH*);
|
|
void(*Field_50)(CLOTH*);
|
|
void(*ResetData)(CLOTH*);
|
|
};
|
|
|
|
vector_old(CLOTHNode)
|
|
|
|
struct struc_341 {
|
|
size_t field_0;
|
|
size_t field_8;
|
|
float_t field_10;
|
|
int32_t field_14;
|
|
};
|
|
|
|
vector_old(struc_341)
|
|
|
|
struct CLOTH {
|
|
CLOTH_vtbl* __vftable;
|
|
int32_t field_8;
|
|
size_t root_count;
|
|
size_t nodes_count;
|
|
vector_old_CLOTHNode nodes;
|
|
vec3 wind_direction;
|
|
float_t field_44;
|
|
bool set_external_force;
|
|
vec3 external_force;
|
|
vector_old_struc_341 field_58;
|
|
skin_param* skin_param_ptr;
|
|
skin_param skin_param;
|
|
osage_coli coli[64];
|
|
osage_coli coli_ring[64];
|
|
osage_ring_data ring;
|
|
mat4* mats;
|
|
};
|
|
|
|
struct obj_bounding_sphere {
|
|
vec3 center;
|
|
float_t radius;
|
|
};
|
|
|
|
struct obj_sub_mesh_attrib_member {
|
|
uint32_t recieve_shadow : 1;
|
|
uint32_t cast_shadow : 1;
|
|
uint32_t transparent : 1;
|
|
uint32_t CLOTH : 1;
|
|
uint32_t dummy : 28;
|
|
};
|
|
|
|
union obj_sub_mesh_attrib {
|
|
obj_sub_mesh_attrib_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_axis_aligned_bounding_box {
|
|
vec3 center;
|
|
vec3 size;
|
|
};
|
|
|
|
struct obj_sub_mesh {
|
|
uint32_t flags;
|
|
obj_bounding_sphere bounding_sphere;
|
|
uint32_t material_index;
|
|
uint8_t uv_index[8];
|
|
uint32_t bone_indices_count;
|
|
uint16_t* bone_indices;
|
|
uint32_t bones_per_vertex;
|
|
obj_primitive_type primitive_type;
|
|
obj_index_format index_format;
|
|
uint32_t indices_count;
|
|
uint16_t* indices;
|
|
obj_sub_mesh_attrib attrib;
|
|
uint32_t reserved[4];
|
|
obj_axis_aligned_bounding_box* axis_aligned_bounding_box;
|
|
uint16_t first_index;
|
|
uint16_t last_index;
|
|
uint32_t indices_offset;
|
|
};
|
|
|
|
struct obj_mesh_vertex_array {
|
|
vec3* position;
|
|
vec3* normal;
|
|
vec4* tangent;
|
|
vec3* binormal;
|
|
vec2* texcoord0;
|
|
vec2* texcoord1;
|
|
vec2* texcoord2;
|
|
vec2* texcoord3;
|
|
vec4* color0;
|
|
vec4* color1;
|
|
vec4* bone_weight;
|
|
vec4* bone_index;
|
|
void* field_60;
|
|
void* field_68;
|
|
void* field_70;
|
|
void* field_78;
|
|
void* field_80;
|
|
void* field_88;
|
|
void* field_90;
|
|
void* field_98;
|
|
};
|
|
|
|
union obj_mesh_vertex_array_union {
|
|
obj_mesh_vertex_array data;
|
|
void* ptr[20];
|
|
};
|
|
|
|
struct obj_mesh_attrib_member {
|
|
uint32_t double_buffer : 1;
|
|
uint32_t billboard_y_axis : 1;
|
|
uint32_t translucent_no_shadow : 1;
|
|
uint32_t billboard : 1;
|
|
uint32_t dummy : 28;
|
|
};
|
|
|
|
union obj_mesh_attrib {
|
|
obj_mesh_attrib_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_mesh {
|
|
uint32_t flags;
|
|
obj_bounding_sphere bounding_sphere;
|
|
uint32_t num_submesh;
|
|
obj_sub_mesh* submesh_array;
|
|
obj_vertex_format vertex_format;
|
|
uint32_t size_vertex;
|
|
uint32_t num_vertex;
|
|
obj_mesh_vertex_array_union vertex;
|
|
obj_mesh_attrib attrib;
|
|
uint32_t vertex_flags;
|
|
uint32_t reserved[6];
|
|
char name[64];
|
|
};
|
|
|
|
struct obj_shader_compo_member {
|
|
uint32_t color : 1;
|
|
uint32_t color_a : 1;
|
|
uint32_t color_l1 : 1;
|
|
uint32_t color_l1_a : 1;
|
|
uint32_t color_l2 : 1;
|
|
uint32_t color_l2_a : 1;
|
|
uint32_t transparency : 1;
|
|
uint32_t specular : 1;
|
|
uint32_t normal_01 : 1;
|
|
uint32_t normal_02 : 1;
|
|
uint32_t envmap : 1;
|
|
uint32_t color_l3 : 1;
|
|
uint32_t color_l3_a : 1;
|
|
uint32_t translucency : 1;
|
|
uint32_t flag_14 : 1;
|
|
uint32_t override_ibl : 1;
|
|
uint32_t dummy : 16;
|
|
};
|
|
|
|
union obj_shader_compo {
|
|
obj_shader_compo_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_material_shader_attrib_member {
|
|
obj_material_vertex_translation_type vtx_trans_type : 2;
|
|
obj_material_color_source_type col_src : 2;
|
|
uint32_t is_lgt_diffuse : 1;
|
|
uint32_t is_lgt_specular : 1;
|
|
uint32_t is_lgt_per_pixel : 1;
|
|
uint32_t is_lgt_double : 1;
|
|
obj_material_bump_map_type bump_map_type : 2;
|
|
uint32_t fresnel_type : 4;
|
|
uint32_t line_light : 4;
|
|
uint32_t recieve_shadow : 1;
|
|
uint32_t cast_shadow : 1;
|
|
obj_material_specular_quality specular_quality : 1;
|
|
obj_material_aniso_direction aniso_direction : 2;
|
|
uint32_t dummy : 9;
|
|
};
|
|
|
|
union obj_material_shader_attrib {
|
|
obj_material_shader_attrib_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_texture_attrib_member {
|
|
uint32_t repeat_u : 1;
|
|
uint32_t repeat_v : 1;
|
|
uint32_t mirror_u : 1;
|
|
uint32_t mirror_v : 1;
|
|
uint32_t ignore_alpha : 1;
|
|
uint32_t blend : 5;
|
|
uint32_t alpha_blend : 5;
|
|
uint32_t border : 1;
|
|
uint32_t clamp2edge : 1;
|
|
uint32_t filter : 3;
|
|
uint32_t mipmap : 2;
|
|
uint32_t mipmap_bias : 7;
|
|
uint32_t flag_29 : 1;
|
|
uint32_t anisotropic_filter : 2;
|
|
};
|
|
|
|
union obj_texture_attrib {
|
|
obj_texture_attrib_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_texture_shader_attrib_member {
|
|
obj_material_texture_type tex_type : 4;
|
|
int32_t uv_idx : 4;
|
|
obj_material_texture_coordinate_translation_type texcoord_trans : 3;
|
|
uint32_t dummy : 21;
|
|
};
|
|
|
|
union obj_texture_shader_attrib {
|
|
obj_texture_shader_attrib_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_material_texture_data {
|
|
obj_texture_attrib attrib;
|
|
uint32_t tex_index;
|
|
obj_texture_shader_attrib shader_info;
|
|
char ex_shader[8];
|
|
float_t weight;
|
|
mat4 tex_coord_mat;
|
|
union {
|
|
uint32_t reserved[8];
|
|
int32_t texture_index;
|
|
};
|
|
};
|
|
|
|
struct obj_material_attrib_member {
|
|
uint32_t alpha_texture : 1;
|
|
uint32_t alpha_material : 1;
|
|
uint32_t punch_through : 1;
|
|
uint32_t double_sided : 1;
|
|
uint32_t normal_dir_light : 1;
|
|
obj_material_blend_factor src_blend_factor : 4;
|
|
obj_material_blend_factor dst_blend_factor : 4;
|
|
uint32_t blend_operation : 3;
|
|
uint32_t zbias : 4;
|
|
uint32_t no_fog : 1;
|
|
uint32_t translucent_priority : 6;
|
|
uint32_t has_fog_height : 1;
|
|
uint32_t flag_28 : 1;
|
|
uint32_t fog_height : 1;
|
|
uint32_t flag_30 : 1;
|
|
uint32_t flag_31 : 1;
|
|
};
|
|
|
|
union obj_material_attrib {
|
|
obj_material_attrib_member m;
|
|
uint32_t w;
|
|
};
|
|
|
|
struct obj_material_color {
|
|
vec4 diffuse;
|
|
vec4 ambient;
|
|
vec4 specular;
|
|
vec4 emission;
|
|
float_t shininess;
|
|
float_t intensity;
|
|
};
|
|
|
|
struct obj_material {
|
|
obj_shader_compo shader_compo;
|
|
union {
|
|
char name[8];
|
|
int32_t index;
|
|
} shader;
|
|
obj_material_shader_attrib shader_info;
|
|
obj_material_texture_data texdata[8];
|
|
obj_material_attrib attrib;
|
|
obj_material_color color;
|
|
vec3 center;
|
|
float_t radius;
|
|
char name[64];
|
|
float_t bump_depth;
|
|
uint32_t reserved[15];
|
|
};
|
|
|
|
struct obj_material_data {
|
|
uint32_t num_of_textures;
|
|
obj_material material;
|
|
};
|
|
|
|
struct obj {
|
|
uint32_t version;
|
|
uint32_t flags;
|
|
obj_bounding_sphere bounding_sphere;
|
|
uint32_t num_mesh;
|
|
obj_mesh* mesh_array;
|
|
uint32_t num_material;
|
|
obj_material_data* material_array;
|
|
uint32_t reserved[10];
|
|
};
|
|
|
|
struct obj_mesh_vertex_buffer {
|
|
int32_t count;
|
|
GLuint buffers[3];
|
|
int32_t index;
|
|
GLenum enum_data;
|
|
};
|
|
|
|
struct obj_vertex_buffer {
|
|
int32_t meshes_count;
|
|
obj_mesh_vertex_buffer* meshes;
|
|
};
|
|
|
|
typedef GLuint obj_mesh_index_buffer;
|
|
|
|
struct obj_index_buffer {
|
|
int32_t meshes_count;
|
|
obj_mesh_index_buffer* meshes;
|
|
};
|
|
|
|
struct obj_skin_osage_node {
|
|
int32_t name_index;
|
|
float_t length;
|
|
int32_t index;
|
|
};
|
|
|
|
struct obj_skin_osage_sibling_info {
|
|
int32_t name_index;
|
|
int32_t sibling_name_index;
|
|
float_t distance;
|
|
};
|
|
|
|
struct obj_skin_ex_data {
|
|
int32_t osage_name_count;
|
|
int32_t osage_node_count;
|
|
const char** field_8;
|
|
obj_skin_osage_node* osage_nodes;
|
|
const char** osage_names;
|
|
obj_skin_block* blocks;
|
|
int32_t bone_names_count;
|
|
const char** bone_names;
|
|
obj_skin_osage_sibling_info* osage_sibling_infos;
|
|
uint32_t cloth_count;
|
|
uint32_t reserved[7];
|
|
};
|
|
|
|
struct obj_skin {
|
|
uint32_t* bone_ids;
|
|
mat4* bone_matrices;
|
|
const char** bone_names;
|
|
obj_skin_ex_data* ex_data;
|
|
uint32_t bone_count;
|
|
int32_t bone_parent_ids_offset;
|
|
int32_t field_28;
|
|
int32_t field_2C;
|
|
int32_t field_30;
|
|
};
|
|
|
|
struct obj_set_info {
|
|
int32_t id;
|
|
string name;
|
|
string object_file_name;
|
|
string texture_file_name;
|
|
string archive_file_name;
|
|
};
|
|
|
|
struct pair_uint32_t_obj_set_info {
|
|
uint32_t id;
|
|
obj_set_info data;
|
|
};
|
|
|
|
vector_old(pair_uint32_t_obj_set_info)
|
|
|
|
struct obj_database {
|
|
vector_old_pair_uint32_t_obj_set_info field_0;
|
|
size_t field_18;
|
|
vector_old_pair_uint32_t_obj_set_info field_20;
|
|
bool field_38;
|
|
};
|
|
|
|
struct obj_set {
|
|
uint32_t signature;
|
|
uint32_t objects_count;
|
|
uint32_t max_object_id;
|
|
obj** objects;
|
|
obj_skin** object_skins;
|
|
const char** object_names;
|
|
uint32_t* object_ids;
|
|
uint32_t* texture_ids;
|
|
uint32_t texture_ids_count;
|
|
uint32_t field_3C;
|
|
uint32_t field_40;
|
|
};
|
|
|
|
struct obj_bounding_box {
|
|
vec3 center;
|
|
vec3 size;
|
|
};
|
|
|
|
struct texture {
|
|
int32_t init_count;
|
|
int32_t id;
|
|
texture_flags flags;
|
|
int16_t width;
|
|
int16_t height;
|
|
GLuint texture;
|
|
GLenum target;
|
|
GLenum internal_format;
|
|
int32_t max_mipmap_level;
|
|
int32_t size;
|
|
};
|
|
|
|
struct RobClothSubMeshArray {
|
|
obj_sub_mesh arr[4];
|
|
};
|
|
|
|
struct struc_295 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
int64_t field_8;
|
|
int64_t field_10;
|
|
};
|
|
|
|
vector_old(struc_295)
|
|
|
|
struct RobClothRoot {
|
|
vec3 trans;
|
|
vec3 normal;
|
|
vec4 tangent;
|
|
bone_node* node[4];
|
|
mat4* node_mat[4];
|
|
mat4* mat[4];
|
|
float_t weight[4];
|
|
mat4 field_98;
|
|
mat4 field_D8;
|
|
mat4 field_118;
|
|
};
|
|
|
|
vector_old(RobClothRoot)
|
|
|
|
struct RobCloth {
|
|
CLOTH base;
|
|
vector_old_RobClothRoot root;
|
|
rob_chara_item_equip_object* itm_eq_obj;
|
|
obj_skin_block_cloth_root* cls_root;
|
|
obj_skin_block_cloth* cls_data;
|
|
float_t move_cancel;
|
|
bool osage_reset;
|
|
obj_mesh mesh[2];
|
|
RobClothSubMeshArray submesh[2];
|
|
obj_axis_aligned_bounding_box axis_aligned_bounding_box;
|
|
obj_mesh_vertex_buffer vertex_buffer[2];
|
|
GLuint index_buffer[2];
|
|
tree_motion_reset_data motion_reset_data;
|
|
list_RobOsageNodeResetData* reset_data_list;
|
|
};
|
|
|
|
struct ExClothBlock {
|
|
ExNodeBlock base;
|
|
RobCloth rob;
|
|
obj_skin_block_cloth* cls_data;
|
|
mat4* mats;
|
|
size_t index;
|
|
};
|
|
|
|
vector_old_ptr(ExNodeBlock)
|
|
vector_old_ptr(ExNullBlock)
|
|
vector_old_ptr(ExOsageBlock)
|
|
vector_old_ptr(ExConstraintBlock)
|
|
vector_old_ptr(ExExpressionBlock)
|
|
vector_old_ptr(ExClothBlock)
|
|
|
|
struct ex_data_name_bone_index {
|
|
const char* name;
|
|
int32_t bone_index;
|
|
};
|
|
|
|
vector_old(ex_data_name_bone_index)
|
|
|
|
struct texture_data_struct {
|
|
int32_t field_0;
|
|
vec3 texture_color_coefficients;
|
|
vec3 texture_color_offset;
|
|
vec3 texture_specular_coefficients;
|
|
vec3 texture_specular_offset;
|
|
};
|
|
|
|
struct rob_chara_item_equip_object {
|
|
size_t index;
|
|
mat4* mats;
|
|
object_info object_info;
|
|
int32_t field_14;
|
|
vector_old_texture_pattern_struct texture_pattern;
|
|
texture_data_struct texture_data;
|
|
bool null_blocks_data_set;
|
|
bone_node_expression_data exp_data;
|
|
float_t alpha;
|
|
obj_flags obj_flags;
|
|
bool disp;
|
|
int32_t field_A4;
|
|
mat4* mat;
|
|
int32_t osage_iterations;
|
|
bone_node* bone_nodes;
|
|
vector_old_ptr_ExNodeBlock node_blocks;
|
|
vector_old_bone_node ex_data_bone_nodes;
|
|
vector_old_mat4 ex_data_matrices;
|
|
vector_old_mat4 field_108;
|
|
vector_old_ex_data_name_bone_index ex_bones;
|
|
int64_t field_138;
|
|
vector_old_ptr_ExNullBlock null_blocks;
|
|
vector_old_ptr_ExOsageBlock osage_blocks;
|
|
vector_old_ptr_ExConstraintBlock constraint_blocks;
|
|
vector_old_ptr_ExExpressionBlock expression_blocks;
|
|
vector_old_ptr_ExClothBlock cloth_blocks;
|
|
int8_t field_1B8;
|
|
size_t frame_count;
|
|
bool use_opd;
|
|
obj_skin_ex_data* skin_ex_data;
|
|
obj_skin* skin;
|
|
rob_chara_item_equip* item_equip;
|
|
};
|
|
|
|
struct rob_chara_item_equip {
|
|
bone_node* bone_nodes;
|
|
mat4* matrices;
|
|
rob_chara_item_equip_object* item_equip_object;
|
|
int32_t field_18[31];
|
|
bool item_equip_range;
|
|
int32_t first_item_equip_object;
|
|
int32_t max_item_equip_object;
|
|
int32_t field_A0;
|
|
shadow_type_enum shadow_type;
|
|
vec3 position;
|
|
int32_t field_B4;
|
|
vector_old_texture_pattern_struct texture_pattern;
|
|
object_info field_D0;
|
|
item_id field_D4;
|
|
bool disable_update;
|
|
int32_t field_DC;
|
|
vec4 texture_color_coefficients;
|
|
float_t wet;
|
|
float_t wind_strength;
|
|
bool chara_color;
|
|
bool npr_flag;
|
|
mat4 mat;
|
|
mat4 field_13C[30];
|
|
int32_t field_8BC;
|
|
int32_t field_8C0;
|
|
int32_t field_8C4;
|
|
int32_t field_8C8;
|
|
int32_t field_8CC;
|
|
int32_t field_8D0;
|
|
int32_t field_8D4;
|
|
int32_t field_8D8;
|
|
int32_t field_8DC;
|
|
int32_t field_8E0;
|
|
int32_t field_8E4;
|
|
int32_t field_8E8;
|
|
int32_t field_8EC;
|
|
int32_t field_8F0;
|
|
int32_t field_8F4;
|
|
int32_t field_8F8;
|
|
int32_t field_8FC;
|
|
int64_t field_900;
|
|
int64_t field_908;
|
|
int64_t field_910;
|
|
int64_t field_918;
|
|
int64_t field_920;
|
|
int64_t field_928;
|
|
int64_t field_930;
|
|
float_t step;
|
|
bool use_opd;
|
|
vector_old_opd_blend_data opd_blend_data;
|
|
bool parts_short;
|
|
bool parts_append;
|
|
bool parts_white_one_l;
|
|
};
|
|
|
|
extern void ExNodeBlock__Field_10(ExNodeBlock* node);
|
|
|
|
extern ExOsageBlock* ExOsageBlock__Dispose(ExOsageBlock* osg, bool dispose);
|
|
extern void ExOsageBlock__Init(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Field_18(ExOsageBlock* osg, int32_t a2, bool a3);
|
|
extern void ExOsageBlock__Field_20(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__SetOsagePlayData(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Disp(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Reset(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Field_40(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Field_48(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Field_50(ExOsageBlock* osg);
|
|
extern void ExOsageBlock__Field_58(ExOsageBlock* osg); |