feature(s1): token changes and fixes (#53)

Co-authored-by: quaK <Joel.rautavuori@gmail.com>
This commit is contained in:
m 2023-02-02 15:28:15 -06:00 committed by GitHub
parent b63fea4f0b
commit a3d4838603
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 162 additions and 43 deletions

View File

@ -14,7 +14,7 @@ namespace xsk::gsc::s1_pc
constexpr usize code_count = 154; constexpr usize code_count = 154;
constexpr usize func_count = 735; constexpr usize func_count = 735;
constexpr usize meth_count = 1389; constexpr usize meth_count = 1389;
constexpr usize token_count = 42844; constexpr usize token_count = 42942;
constexpr u32 max_string_id = 0xA7DC; constexpr u32 max_string_id = 0xA7DC;
class context : public gsc::context class context : public gsc::context

View File

@ -145,21 +145,21 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x0084, "blade_show" }, { 0x0084, "blade_show" },
{ 0x0085, "blockfriendlies" }, { 0x0085, "blockfriendlies" },
{ 0x0086, "blurradius" }, { 0x0086, "blurradius" },
{ 0x0087, "body" }, // 87 confirmed { 0x0087, "body" },
{ 0x0088, "body_animate_jnt" }, // between here { 0x0088, "body_animate_jnt" },
{ 0x0089, "bottomarc" }, { 0x0089, "bottomarc" },
{ 0x008A, "br_rotor1" }, // { 0x008A, "" },
{ 0x008B, "br_rotor2" }, // { 0x008B, "" },
{ 0x008C, "br_rotor3" }, // { 0x008C, "" },
{ 0x008D, "breadcrumbheader" }, // { 0x008D, "" },
{ 0x008E, "buff" }, // { 0x008E, "" },
{ 0x008F, "bullet_hitshield" }, // { 0x008F, "" },
{ 0x0090, "bullethit" }, // { 0x0090, "" },
{ 0x0091, "bulletwhizby" }, // { 0x0091, "" },
{ 0x0092, "c" }, // { 0x0092, "" },
{ 0x0093, "callingcardindex" }, // { 0x0093, "" },
{ 0x0094, "camo" }, // { 0x0094, "" },
{ 0x0095, "__pad95" }, // and here. not sure what the mismatch is // { 0x0095, "" },
{ 0x0096, "cancel_location" }, { 0x0096, "cancel_location" },
{ 0x0097, "canclimbladders" }, { 0x0097, "canclimbladders" },
{ 0x0098, "canjumppath" }, { 0x0098, "canjumppath" },
@ -352,10 +352,10 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x0153, "entitydeleted" }, { 0x0153, "entitydeleted" },
{ 0x0154, "entityoverflow_max" }, { 0x0154, "entityoverflow_max" },
{ 0x0155, "entityoverflow_worst" }, { 0x0155, "entityoverflow_worst" },
{ 0x0156, "equipment" }, // 156 { 0x0156, "equipment" },
{ 0x0157, "equipmentsetups" }, { 0x0157, "equipmentsetups" },
{ 0x0158, "escaped" }, { 0x0158, "escaped" },
{ 0x0159, "__pad159" }, // { 0x0159, "" },
{ 0x015A, "exclusive" }, { 0x015A, "exclusive" },
{ 0x015B, "exo_ability_activate" }, { 0x015B, "exo_ability_activate" },
{ 0x015C, "exo_adrenaline_fire" }, { 0x015C, "exo_adrenaline_fire" },
@ -406,8 +406,7 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x0189, "followmax" }, { 0x0189, "followmax" },
{ 0x018A, "followmin" }, { 0x018A, "followmin" },
{ 0x018B, "font" }, { 0x018B, "font" },
{ 0x018C, "fontscale" },
{ 0x018C, "fontscale" }, // 18B
{ 0x018D, "foot_ik_active" }, { 0x018D, "foot_ik_active" },
{ 0x018E, "foot_ik_blend_in" }, { 0x018E, "foot_ik_blend_in" },
{ 0x018F, "foot_ik_blend_out" }, { 0x018F, "foot_ik_blend_out" },
@ -415,9 +414,8 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x0191, "footstepdetectdist" }, { 0x0191, "footstepdetectdist" },
{ 0x0192, "footstepdetectdistsprint" }, { 0x0192, "footstepdetectdistsprint" },
{ 0x0193, "footstepdetectdistwalk" }, { 0x0193, "footstepdetectdistwalk" },
{ 0x0194, "force_off" }, // huh { 0x0194, "force_off" },
{ 0x0195, "force_on" }, // ^ { 0x0195, "force_on" },
// { 0x0196, "force_fully_on" }, // ^
{ 0x0196, "forcepartyskillignore" }, { 0x0196, "forcepartyskillignore" },
{ 0x0197, "forceragdollimmediate" }, { 0x0197, "forceragdollimmediate" },
{ 0x0198, "forcespectatorclient" }, { 0x0198, "forcespectatorclient" },
@ -492,7 +490,7 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x01DD, "gunshot_teammate" }, { 0x01DD, "gunshot_teammate" },
{ 0x01DE, "hardcoremodeon" }, { 0x01DE, "hardcoremodeon" },
{ 0x01DF, "hasdoublexpitem" }, { 0x01DF, "hasdoublexpitem" },
{ 0x01E0, "hasradar" }, // 1E0 { 0x01E0, "hasradar" },
{ 0x01E1, "hasvalidcostumeselfieimage" }, { 0x01E1, "hasvalidcostumeselfieimage" },
{ 0x01E2, "hat" }, { 0x01E2, "hat" },
{ 0x01E3, "head" }, { 0x01E3, "head" },
@ -538,11 +536,11 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x020B, "insolid" }, { 0x020B, "insolid" },
{ 0x020C, "intermission" }, { 0x020C, "intermission" },
{ 0x020D, "interval" }, { 0x020D, "interval" },
{ 0x020E, "inuse" }, // 20E { 0x020E, "inuse" },
{ 0x020F, "invalid_parent" }, { 0x020F, "invalid_parent" },
{ 0x0210, "__pad210" }, // { 0x0210, "" },
{ 0x0211, "__pad211" }, // { 0x0211, "" },
{ 0x0212, "__pad212" }, // { 0x0212, "" },
{ 0x0213, "isradarblocked" }, { 0x0213, "isradarblocked" },
{ 0x0214, "item" }, { 0x0214, "item" },
{ 0x0215, "j_exo_rcket_arm02" }, { 0x0215, "j_exo_rcket_arm02" },
@ -757,7 +755,7 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x02E6, "origin" }, { 0x02E6, "origin" },
{ 0x02E7, "other" }, { 0x02E7, "other" },
{ 0x02E8, "over" }, { 0x02E8, "over" },
{ 0x02E9, "owner" }, // 2E9 { 0x02E9, "owner" },
{ 0x02EA, "pacifist" }, { 0x02EA, "pacifist" },
{ 0x02EB, "pacifistwait" }, { 0x02EB, "pacifistwait" },
{ 0x02EC, "pain" }, { 0x02EC, "pain" },
@ -844,7 +842,7 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x033D, "primaryattachment2" }, { 0x033D, "primaryattachment2" },
{ 0x033E, "primaryattachment3" }, { 0x033E, "primaryattachment3" },
{ 0x033F, "primaryattachments" }, { 0x033F, "primaryattachments" },
{ 0x0340, "primarycamo" }, // 0x340 { 0x0340, "primarycamo" },
{ 0x0341, "primaryoffhand" }, { 0x0341, "primaryoffhand" },
{ 0x0342, "primaryreticle" }, { 0x0342, "primaryreticle" },
{ 0x0343, "primaryweapon" }, { 0x0343, "primaryweapon" },
@ -944,14 +942,12 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x03A1, "script_vehicle_collision" }, { 0x03A1, "script_vehicle_collision" },
{ 0x03A2, "script_vehicle_collmap" }, { 0x03A2, "script_vehicle_collmap" },
{ 0x03A3, "script_vehicle_corpse" }, { 0x03A3, "script_vehicle_corpse" },
{ 0x03A4, "script_visionset" }, // 3A4 { 0x03A4, "script_visionset" },
// TODO: check which mapent doesn't exist on S1 vs H1??? // { 0x03A5, "" },
// { 0x03A5, "script_water" }, // { 0x03A6, "" },
// { 0x03A6, "script_reverb" }, // { 0x03A7, "" },
// { 0x03A7, "script_zone" }, // { 0x03A8, "" },
// { 0x03A8, "scriptable" }, // { 0x03A9, "" },
// { 0x03A9, "scriptableactor" },
// { 0x03AA, "scripted_viewmodel_anim" },
{ 0x03AA, "scriptedarrivalent" }, { 0x03AA, "scriptedarrivalent" },
{ 0x03AB, "search_end" }, { 0x03AB, "search_end" },
{ 0x03AC, "secondary" }, { 0x03AC, "secondary" },
@ -11135,6 +11131,7 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x2B6E, "dist_ratio_hitguy" }, { 0x2B6E, "dist_ratio_hitguy" },
{ 0x2B6F, "dist_to_next_node" }, { 0x2B6F, "dist_to_next_node" },
{ 0x2B70, "dist2yards" }, { 0x2B70, "dist2yards" },
// { 0x2B71, "" },
{ 0x2B72, "distance_2d_squared" }, { 0x2B72, "distance_2d_squared" },
{ 0x2B73, "distance_check_loop" }, { 0x2B73, "distance_check_loop" },
{ 0x2B74, "distance_from_player" }, { 0x2B74, "distance_from_player" },
@ -16707,8 +16704,12 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x4133, "gettotalpercentcompletesp" }, { 0x4133, "gettotalpercentcompletesp" },
{ 0x4134, "gettotalscore" }, { 0x4134, "gettotalscore" },
{ 0x4135, "gettotalxp" }, { 0x4135, "gettotalxp" },
// { 0x4136, "" },
// { 0x4137, "" },
{ 0x4138, "gettranssplittime" }, { 0x4138, "gettranssplittime" },
{ 0x4139, "gettruenodeangles" }, { 0x4139, "gettruenodeangles" },
{ 0x413A, "getturnanim" },
{ 0x413B, "getturnanimstate" },
{ 0x413C, "gettweakabledvar" }, { 0x413C, "gettweakabledvar" },
{ 0x413D, "gettweakabledvarvalue" }, { 0x413D, "gettweakabledvarvalue" },
{ 0x413E, "gettweakablelastvalue" }, { 0x413E, "gettweakablelastvalue" },
@ -22141,6 +22142,20 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x5671, "left_color_node" }, { 0x5671, "left_color_node" },
{ 0x5672, "left_door_anim" }, { 0x5672, "left_door_anim" },
{ 0x5673, "left_ent" }, { 0x5673, "left_ent" },
{ 0x5674, "left_headlight_tag" },
{ 0x5675, "left_loop_start" },
{ 0x5676, "left_mount_trigger_function" },
{ 0x5677, "left_pivot" },
{ 0x5678, "left_post" },
{ 0x5679, "left_swing_pressed" },
{ 0x567A, "left_swing_released" },
{ 0x567B, "left_swipe_monitor" },
{ 0x567C, "left_tap_monitor" },
// { 0x567D, "" },
// { 0x567E, "" },
{ 0x567F, "lens_left" },
{ 0x5680, "lens_right" },
{ 0x5681, "lensviewmodel" },
{ 0x5682, "lerp" }, { 0x5682, "lerp" },
{ 0x5683, "lerp_angles_function" }, { 0x5683, "lerp_angles_function" },
{ 0x5684, "lerp_anim_weight_on_actor_over_time" }, { 0x5684, "lerp_anim_weight_on_actor_over_time" },
@ -22365,6 +22380,8 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x575F, "ligting_note" }, { 0x575F, "ligting_note" },
{ 0x5760, "limit_player_view" }, { 0x5760, "limit_player_view" },
{ 0x5761, "limitdecimalplaces" }, { 0x5761, "limitdecimalplaces" },
{ 0x5762, "limp_footsteps" },
// { 0x5763, "" },
{ 0x5764, "line_claimed" }, { 0x5764, "line_claimed" },
{ 0x5765, "line_interect_sphere" }, { 0x5765, "line_interect_sphere" },
{ 0x5766, "line_segment_end_point" }, { 0x5766, "line_segment_end_point" },
@ -23020,6 +23037,7 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x59F0, "materiallayering_ng" }, { 0x59F0, "materiallayering_ng" },
{ 0x59F1, "matrix33" }, { 0x59F1, "matrix33" },
{ 0x59F2, "maverick_counter" }, { 0x59F2, "maverick_counter" },
{ 0x59F3, "max" },
{ 0x59F4, "max_accel" }, { 0x59F4, "max_accel" },
{ 0x59F5, "max_active_events" }, { 0x59F5, "max_active_events" },
{ 0x59F6, "max_bob_period" }, { 0x59F6, "max_bob_period" },
@ -33940,6 +33958,8 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x8499, "shouldloopdamagefeedback" }, { 0x8499, "shouldloopdamagefeedback" },
{ 0x849A, "shouldnt_spawn_because_of_script_difficulty" }, { 0x849A, "shouldnt_spawn_because_of_script_difficulty" },
{ 0x849B, "shouldpingobject" }, { 0x849B, "shouldpingobject" },
{ 0x849C, "shouldplayhitreaction" },
// { 0x849D, "" },
{ 0x849E, "shouldplaysplash" }, { 0x849E, "shouldplaysplash" },
{ 0x849F, "shouldpreventearlyuse" }, { 0x849F, "shouldpreventearlyuse" },
{ 0x84A0, "shouldresetgiveuponsuppressiontimer" }, { 0x84A0, "shouldresetgiveuponsuppressiontimer" },
@ -36995,6 +37015,13 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0x908A, "system_message_loop" }, { 0x908A, "system_message_loop" },
{ 0x908B, "system_save_processes" }, { 0x908B, "system_save_processes" },
{ 0x908C, "system_set_detect_ranges" }, { 0x908C, "system_set_detect_ranges" },
{ 0x908D, "system_set_event_distances" },
{ 0x908E, "system_state_check_no_enemy" },
{ 0x908F, "system_state_spotted" },
// { 0x9090, "system_state_spotted_clear" },
{ 0x9091, "t" },
// { 0x9092, "" },
// { 0x9093, "" },
{ 0x9094, "table_combine" }, { 0x9094, "table_combine" },
{ 0x9095, "table_getequipment" }, { 0x9095, "table_getequipment" },
{ 0x9096, "table_getequipmentextra" }, { 0x9096, "table_getequipmentextra" },
@ -41957,12 +41984,104 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0xA3F3, "zoominsound" }, { 0xA3F3, "zoominsound" },
{ 0xA3F4, "zoomout" }, { 0xA3F4, "zoomout" },
{ 0xA3F5, "zoomslam" }, { 0xA3F5, "zoomslam" },
// TODO: label missing gsc names (0xA3F6 - 0xA452) { 0xA3F6, "character/character_atlas_ar" },
{ 0xA3F7, "character/character_atlas_arctic_ar" },
{ 0xA3F8, "character/character_atlas_arctic_smg" },
{ 0xA3F9, "character/character_atlas_bodyguard_smg" },
{ 0xA3FA, "character/character_atlas_elete" },
{ 0xA3FB, "character/character_atlas_mech_pilot" },
{ 0xA3FC, "character/character_atlas_noexo" },
{ 0xA3FD, "character/character_atlas_pmc_estate_smg" },
{ 0xA3FE, "character/character_atlas_security_ar" },
{ 0xA3FF, "character/character_atlas_smg" },
{ 0xA400, "character/character_atlas_smg_lowlod" },
{ 0xA401, "character/character_casual_irons" },
{ 0xA402, "character/character_casual_irons_bet_holo" },
{ 0xA403, "character/character_civ_afr_dark_female_casual" },
{ 0xA404, "character/character_civ_afr_dark_female_dress" },
{ 0xA405, "character/character_civ_afr_dark_male_casual" },
{ 0xA406, "character/character_civ_afr_dark_male_dress" },
{ 0xA407, "character/character_civ_afr_drk_female_cas" },
{ 0xA408, "character/character_civ_afr_lgt_female_cas" },
{ 0xA409, "character/character_civ_afr_light_fem_drs_sml" },
{ 0xA40A, "character/character_civ_afr_light_female_casual" },
{ 0xA40B, "character/character_civ_afr_light_female_dress" },
{ 0xA40C, "character/character_civ_afr_light_male_casual" },
{ 0xA40D, "character/character_civ_afr_light_male_dress" },
{ 0xA40E, "character/character_civ_afr_male_cas_grk" },
{ 0xA40F, "character/character_civ_afr_male_drs_grk" },
{ 0xA410, "character/character_civ_african_male_b" },
{ 0xA411, "character/character_civ_african_male_c" },
{ 0xA412, "character/character_civ_african_male_d" },
{ 0xA413, "character/character_civ_asi_male_casual" },
{ 0xA414, "character/character_civ_asi_male_dress" },
{ 0xA415, "character/character_civ_cau_fem_drs_sml" },
{ 0xA416, "character/character_civ_cau_female_casual" },
{ 0xA417, "character/character_civ_cau_female_dress" },
{ 0xA418, "character/character_civ_cau_male_casual" },
{ 0xA419, "character/character_civ_cau_male_casual_ball1" },
{ 0xA41A, "character/character_civ_cau_male_casual_ball2" },
{ 0xA41B, "character/character_civ_cau_male_casual_grk" },
{ 0xA41C, "character/character_civ_cau_male_dress" },
{ 0xA41D, "character/character_civ_cau_male_dress_grk" },
{ 0xA41E, "character/character_civ_mde_female_casual" },
{ 0xA41F, "character/character_civ_mde_female_dress" },
{ 0xA420, "character/character_civ_mde_male_casual" },
{ 0xA421, "character/character_civ_mde_male_dress" },
{ 0xA422, "character/character_civ_pris_afr_dark_male_lite" },
{ 0xA423, "character/character_civ_pris_cau_male_lite" },
{ 0xA424, "character/character_civ_pris_mde_male_lite" },
{ 0xA425, "character/character_civ_rec_funeral_female_a" },
{ 0xA426, "character/character_civ_rec_funeral_female_b" },
{ 0xA427, "character/character_civ_rec_funeral_female_c" },
{ 0xA428, "character/character_civ_rec_funeral_female_d" },
{ 0xA429, "character/character_civ_rec_funeral_female_wife" },
{ 0xA42A, "character/character_civ_rec_funeral_male" },
{ 0xA42B, "character/character_civ_rec_funeral_male_afr" },
{ 0xA42C, "character/character_civ_rec_funeral_male_afr_a" },
{ 0xA42D, "character/character_civ_rec_funeral_male_afr_b" },
{ 0xA42E, "character/character_civ_rec_funeral_male_afr_c" },
{ 0xA42F, "character/character_civ_rec_funeral_male_afr_d" },
{ 0xA430, "character/character_civ_rec_funeral_male_asi_a" },
{ 0xA431, "character/character_civ_rec_funeral_male_cau_a" },
{ 0xA432, "character/character_civ_rec_funeral_male_cau_b" },
{ 0xA433, "character/character_civ_rec_funeral_male_cau_c" },
{ 0xA434, "character/character_civ_rec_funeral_male_cau_d" },
{ 0xA435, "character/character_civ_rec_funeral_male_cau_e" },
{ 0xA436, "character/character_civ_rec_funeral_male_cau_f" },
{ 0xA437, "character/character_civ_s1_female_a" },
{ 0xA438, "character/character_civ_s1_female_b" },
{ 0xA439, "character/character_civ_s1_female_c" },
{ 0xA43A, "character/character_civ_s1_female_d" },
{ 0xA43B, "character/character_civ_s1_female_dead_a" },
{ 0xA43C, "character/character_civ_s1_female_dead_b" },
{ 0xA43D, "character/character_civ_s1_female_e" },
{ 0xA43E, "character/character_civ_s1_female_f" },
{ 0xA43F, "character/character_civ_s1_female_g" },
{ 0xA440, "character/character_civ_s1_male_a" },
{ 0xA441, "character/character_civ_s1_male_b" },
{ 0xA442, "character/character_civ_s1_male_c" },
{ 0xA443, "character/character_civ_s1_male_d" },
{ 0xA444, "character/character_civ_s1_male_dead_a" },
{ 0xA445, "character/character_civ_s1_male_dead_b" },
{ 0xA446, "character/character_civ_s1_male_dead_c" },
{ 0xA447, "character/character_civ_s1_male_e" },
{ 0xA448, "character/character_civ_s1_male_hostage_lag" },
{ 0xA449, "character/character_civ_s1_worker_a" },
{ 0xA44A, "character/character_civ_s1_worker_b" },
{ 0xA44B, "character/character_civ_s1_worker_hardhat" },
{ 0xA44C, "character/character_civ_scientist_s1_a" },
{ 0xA44D, "character/character_civ_scientist_s1_b" },
{ 0xA44E, "character/character_civ_scientist_s1_c" },
{ 0xA44F, "character/character_civ_scientist_s1_d" },
{ 0xA450, "character/character_civ_scientist_s1_e" },
{ 0xA451, "character/character_civ_scientist_s1_f" },
{ 0xA452, "character/character_civ_seoul_female" },
{ 0xA453, "character/character_civ_seoul_male_a" }, { 0xA453, "character/character_civ_seoul_male_a" },
{ 0xA454, "character/character_civ_seoul_male_b" }, { 0xA454, "character/character_civ_seoul_male_b" },
{ 0xA455, "character/character_civ_seoul_male_d" }, { 0xA455, "character/character_civ_seoul_male_c" },
{ 0xA456, "character/character_civ_seoul_male_e" }, { 0xA456, "character/character_civ_seoul_male_d" },
{ 0xA457, "character/character_civ_seoul_male_f" }, { 0xA457, "character/character_civ_seoul_male_e" },
{ 0xA458, "character/character_civ_seoul_male_principle" }, { 0xA458, "character/character_civ_seoul_male_principle" },
{ 0xA459, "character/character_civilian_africa_male_a" }, { 0xA459, "character/character_civilian_africa_male_a" },
{ 0xA45A, "character/character_civilian_africa_male_b" }, { 0xA45A, "character/character_civilian_africa_male_b" },
@ -42534,8 +42653,8 @@ extern std::array<std::pair<u32, char const*>, token_count> const token_list
{ 0xA690, "xmodelalias/alias_seoul_civilian_body_females" }, { 0xA690, "xmodelalias/alias_seoul_civilian_body_females" },
{ 0xA691, "xmodelalias/alias_seoul_civilian_body_males_a" }, { 0xA691, "xmodelalias/alias_seoul_civilian_body_males_a" },
{ 0xA692, "xmodelalias/alias_seoul_civilian_body_males_b" }, { 0xA692, "xmodelalias/alias_seoul_civilian_body_males_b" },
{ 0xA693, "xmodelalias/alias_seoul_civilian_body_males_d" }, { 0xA693, "xmodelalias/alias_seoul_civilian_body_males_c" },
{ 0xA694, "xmodelalias/alias_seoul_civilian_body_males_f" }, { 0xA694, "xmodelalias/alias_seoul_civilian_body_males_d" },
{ 0xA695, "xmodelalias/alias_seoul_civilian_head_females" }, { 0xA695, "xmodelalias/alias_seoul_civilian_head_females" },
{ 0xA696, "xmodelalias/alias_seoul_civilian_head_males_a" }, { 0xA696, "xmodelalias/alias_seoul_civilian_head_males_a" },
{ 0xA697, "xmodelalias/alias_seoul_civilian_head_males_b" }, { 0xA697, "xmodelalias/alias_seoul_civilian_head_males_b" },