|
|
@@ -803,7 +803,7 @@ class FF7Data{
|
|
|
info.is_enemy = true;
|
|
|
}
|
|
|
else if ("dw" == alphanumeric_id){
|
|
|
- info.numeric_id = 101;
|
|
|
+ info.numeric_id = 100;
|
|
|
info.name = "Search Crown";
|
|
|
info.name_normal = "search_crown";
|
|
|
info.is_enemy = true;
|
|
|
@@ -881,7 +881,7 @@ class FF7Data{
|
|
|
info.is_enemy = true;
|
|
|
}
|
|
|
else if ("ej" == alphanumeric_id){
|
|
|
- info.numeric_id = 112;
|
|
|
+ info.numeric_id = 113;
|
|
|
info.name = "Spencer";
|
|
|
info.name_normal = "spencer";
|
|
|
info.is_enemy = true;
|
|
|
@@ -1019,19 +1019,19 @@ class FF7Data{
|
|
|
info.is_enemy = true;
|
|
|
}
|
|
|
else if ("fg" == alphanumeric_id){
|
|
|
- info.numeric_id = 139;
|
|
|
+ info.numeric_id = 136;
|
|
|
info.name = "Heg";
|
|
|
info.name_normal = "heg";
|
|
|
info.is_enemy = true;
|
|
|
}
|
|
|
else if ("fh" == alphanumeric_id){
|
|
|
- info.numeric_id = 139;
|
|
|
+ info.numeric_id = 137;
|
|
|
info.name = "Stinger";
|
|
|
info.name_normal = "stinger";
|
|
|
info.is_enemy = true;
|
|
|
}
|
|
|
else if ("fi" == alphanumeric_id){
|
|
|
- info.numeric_id = 139;
|
|
|
+ info.numeric_id = 138;
|
|
|
info.name = "Soul Fire";
|
|
|
info.name_normal = "soul_fire";
|
|
|
info.is_enemy = true;
|
|
|
@@ -3063,4 +3063,386 @@ class FF7Data{
|
|
|
}
|
|
|
return info;
|
|
|
};
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Retrieves a battle model code from an enemy ID.
|
|
|
+ *
|
|
|
+ * @param[in] Enemy ID.
|
|
|
+ * @return The code for the model for the enemy, as in the filename in the .mesh file.
|
|
|
+ */
|
|
|
+ static std::string GetEnemyModelFromEnemyId(const unsigned int id){
|
|
|
+ switch (id){
|
|
|
+ case 0: return "aa_unused_pyramid";
|
|
|
+ case 1: return "ab_unused_pyramid";
|
|
|
+ case 2: return "ac_unused_pyramid";
|
|
|
+ case 3: return "ad_unused_pyramid";
|
|
|
+ case 4: return "ae_unused_pyramid";
|
|
|
+ case 5: return "af_unused_pyramid";
|
|
|
+ case 6: return "ag_unused_pyramid";
|
|
|
+ case 7: return "ah_unused_pyramid";
|
|
|
+ case 8: return "ai_unused_pyramid";
|
|
|
+ case 9: return "aj_unused_pyramid";
|
|
|
+ case 10: return "ak_diamond_weapon";
|
|
|
+ case 11: return "al_ruby_weapon";
|
|
|
+ case 12: return "am_rubys_tentacle";
|
|
|
+ case 13: return "an_emerald_weapon_upper_battle_skeleton";
|
|
|
+ case 14: return "ao_emerald_weapon_lower_battle_skeleton";
|
|
|
+ case 15: return "ap_unknown";
|
|
|
+ case 16: return "aq_mp";
|
|
|
+ case 17: return "ar_guard_hound";
|
|
|
+ case 18: return "as_mono_dive";
|
|
|
+ case 19: return "at_grunt";
|
|
|
+ case 20: return "au_1st_ray";
|
|
|
+ case 21: return "av_sweeper_unidentified_part";
|
|
|
+ case 22: return "aw_guard_scorpion_battle_skeleton";
|
|
|
+ case 23: return "ax_garshtrike";
|
|
|
+ case 24: return "ay_rocket_launcher";
|
|
|
+ case 25: return "az_whole_eater";
|
|
|
+ case 26: return "ba_chuse_tank";
|
|
|
+ case 27: return "bb_blugu";
|
|
|
+ case 28: return "bc_hedgehog_pie";
|
|
|
+ case 29: return "bd_smogger";
|
|
|
+ case 30: return "be_special_combatant";
|
|
|
+ case 31: return "bf_blood_taste";
|
|
|
+ case 32: return "bg_proto_machinegun";
|
|
|
+ case 33: return "bh_air_buster";
|
|
|
+ case 34: return "bi_vice_battle_model";
|
|
|
+ case 35: return "bj_corneos_lackey";
|
|
|
+ case 36: return "bk_scotch";
|
|
|
+ case 37: return "bl_aps_unidentified_part";
|
|
|
+ case 38: return "bm_sahagin";
|
|
|
+ case 39: return "bn_ceasar";
|
|
|
+ case 40: return "bo_eligor";
|
|
|
+ case 41: return "bp_ghost";
|
|
|
+ case 42: return "bq_cripshay";
|
|
|
+ case 43: return "br_deenglow";
|
|
|
+ case 44: return "bs_hell_house_calm_";
|
|
|
+ case 45: return "bt_hell_house_angry";
|
|
|
+ case 46: return "bu_aero_combatant_flying";
|
|
|
+ case 47: return "bv_aero_combatant_downed";
|
|
|
+ case 48: return "bw_turks_reno";
|
|
|
+ case 49: return "bx_renos_pyramid";
|
|
|
+ case 50: return "by_warning_board";
|
|
|
+ case 51: return "bz_machine_gun";
|
|
|
+ case 52: return "ca_laser_cannon";
|
|
|
+ case 53: return "cb_hammer_blaster_upper";
|
|
|
+ case 54: return "cc_hammer_blaster_base";
|
|
|
+ case 55: return "cd_sword_dance";
|
|
|
+ case 56: return "ce_soldier_3rd";
|
|
|
+ case 57: return "cf_mighty_grunt_outer_shell";
|
|
|
+ case 58: return "cg_mighty_grunt_inner";
|
|
|
+ case 59: return "ch_moth_slasher";
|
|
|
+ case 60: return "ci_grenade_combatant";
|
|
|
+ case 61: return "cj_brain_pod";
|
|
|
+ case 62: return "ck_vargid_police";
|
|
|
+ case 63: return "cl_zenene";
|
|
|
+ case 64: return "cm_sample_h0512";
|
|
|
+ case 65: return "cn_sample_h0512opt_";
|
|
|
+ case 66: return "co_hundred_gunner";
|
|
|
+ case 67: return "cp_heli_gunner";
|
|
|
+ case 68: return "cq_rufus";
|
|
|
+ case 69: return "cr_dark_nation";
|
|
|
+ case 70: return "cs_helicopter";
|
|
|
+ case 71: return "ct_motor_ball";
|
|
|
+ case 72: return "cu_devil_ride";
|
|
|
+ case 73: return "cv_custom_sweeper";
|
|
|
+ case 74: return "cw_kalm_fang";
|
|
|
+ case 75: return "cx_prowler";
|
|
|
+ case 76: return "cy_elfadunk";
|
|
|
+ case 77: return "cz_mu";
|
|
|
+ case 78: return "da_mu_rock_only";
|
|
|
+ case 79: return "db_mandragora";
|
|
|
+ case 80: return "dc_levrikon_unidentified_part";
|
|
|
+ case 81: return "dd_midgar_zolom";
|
|
|
+ case 82: return "de_madouge";
|
|
|
+ case 83: return "df_crawler";
|
|
|
+ case 84: return "dg_ark_dragon";
|
|
|
+ case 85: return "dh_castanets";
|
|
|
+ case 86: return "di_zemzelett";
|
|
|
+ case 87: return "dj_nerosuferoth";
|
|
|
+ case 88: return "dk_hell_rider_vr2";
|
|
|
+ case 89: return "dl_formula";
|
|
|
+ case 90: return "dm_capparwire";
|
|
|
+ case 91: return "dn_bottomswell";
|
|
|
+ case 92: return "do_waterpolo";
|
|
|
+ case 93: return "dp_scrutin_eye";
|
|
|
+ case 94: return "dq_marine";
|
|
|
+ case 95: return "dr_jenova_birth";
|
|
|
+ case 96: return "ds_grangalan";
|
|
|
+ case 97: return "dt_grangalan_jr";
|
|
|
+ case 98: return "du_grangalan_jr_jr";
|
|
|
+ case 99: return "dv_beach_plug";
|
|
|
+ case 100: return "dw_search_crown";
|
|
|
+ case 101: return "dx_needle_kiss";
|
|
|
+ case 102: return "dy_bloatfloat";
|
|
|
+ case 103: return "dz_bagnadrana";
|
|
|
+ case 104: return "ea_cokatolis";
|
|
|
+ case 105: return "eb_bomb";
|
|
|
+ case 106: return "ec_death_claw";
|
|
|
+ case 107: return "ed_2faced";
|
|
|
+ case 108: return "ee_bandit";
|
|
|
+ case 109: return "ef_bullmotor";
|
|
|
+ case 110: return "eg_land_worm";
|
|
|
+ case 111: return "eh_dyne";
|
|
|
+ case 112: return "ei_bullmotor";
|
|
|
+ case 113: return "ej_spencer";
|
|
|
+ case 114: return "ek_joker";
|
|
|
+ case 115: return "el_flapbeat";
|
|
|
+ case 116: return "em_harpy";
|
|
|
+ case 117: return "en_grand_horn";
|
|
|
+ case 118: return "eo_gagighandi";
|
|
|
+ case 119: return "ep_touch_me";
|
|
|
+ case 120: return "eq_crown_lance";
|
|
|
+ case 121: return "er_flower_prong_small";
|
|
|
+ case 122: return "es_flower_prong_medium";
|
|
|
+ case 123: return "et_flower_prong_large";
|
|
|
+ case 124: return "eu_slaps";
|
|
|
+ case 125: return "ev_kimara_bug";
|
|
|
+ case 126: return "ew_heavy_tank";
|
|
|
+ case 127: return "ex_turks_reno";
|
|
|
+ case 128: return "ey_turks_rude";
|
|
|
+ case 129: return "ez_skeeskee";
|
|
|
+ case 130: return "fa_griffin";
|
|
|
+ case 131: return "fb_golem";
|
|
|
+ case 132: return "fc_bagrisk";
|
|
|
+ case 133: return "fd_desert_sahagin";
|
|
|
+ case 134: return "fe_gi_spector";
|
|
|
+ case 135: return "ff_sneaky_step";
|
|
|
+ case 136: return "fg_heg";
|
|
|
+ case 137: return "fh_stinger";
|
|
|
+ case 138: return "fi_soul_fire";
|
|
|
+ case 139: return "fj_gi_nattak";
|
|
|
+ case 140: return "fk_nibel_wolf";
|
|
|
+ case 141: return "fl_velcher_task";
|
|
|
+ case 142: return "fm_bahba_velamyu";
|
|
|
+ case 143: return "fn_valron";
|
|
|
+ case 144: return "fo_battery_cap";
|
|
|
+ case 145: return "fp_mirage";
|
|
|
+ case 146: return "fq_dorkey_face";
|
|
|
+ case 147: return "fr_jersey";
|
|
|
+ case 148: return "fs_black_bat";
|
|
|
+ case 149: return "ft_ghirofelgo_wo_chain";
|
|
|
+ case 150: return "fu_ghirofelgos_chain";
|
|
|
+ case 151: return "fv_ying";
|
|
|
+ case 152: return "fw_yang";
|
|
|
+ case 153: return "fx_yingyang_body";
|
|
|
+ case 154: return "fy_lost_number";
|
|
|
+ case 155: return "fz_lost_number_psychic";
|
|
|
+ case 156: return "ga_lost_number_psysic_";
|
|
|
+ case 157: return "gb_dragon";
|
|
|
+ case 158: return "gc_sonic_speed";
|
|
|
+ case 159: return "gd_twin_brain";
|
|
|
+ case 160: return "ge_zuu";
|
|
|
+ case 161: return "gf_kyuvilduns";
|
|
|
+ case 162: return "gg_screamer";
|
|
|
+ case 163: return "gh_materia_keeper";
|
|
|
+ case 164: return "gi_palmer";
|
|
|
+ case 165: return "gj_tiny_bronco";
|
|
|
+ case 166: return "gk_shinra_truck";
|
|
|
+ case 167: return "gl_thunderbird";
|
|
|
+ case 168: return "gm_razor_weed";
|
|
|
+ case 169: return "gn_edgehead";
|
|
|
+ case 170: return "go_bizarre_bug";
|
|
|
+ case 171: return "gp_tail_vault";
|
|
|
+ case 172: return "gq_adamantaimai";
|
|
|
+ case 173: return "gr_attack_squad";
|
|
|
+ case 174: return "gs_foulander";
|
|
|
+ case 175: return "gt_garuda";
|
|
|
+ case 176: return "gu_jayjujayme";
|
|
|
+ case 177: return "gv_rapps";
|
|
|
+ case 178: return "gw_gorkii";
|
|
|
+ case 179: return "gx_shake";
|
|
|
+ case 180: return "gy_chekhov";
|
|
|
+ case 181: return "gz_staniv";
|
|
|
+ case 182: return "ha_godo";
|
|
|
+ case 183: return "hb_toxic_frog";
|
|
|
+ case 184: return "hc_toxic_frog";
|
|
|
+ case 185: return "hd_under_lizard";
|
|
|
+ case 186: return "he_kelzmelzer";
|
|
|
+ case 187: return "hf_dual_horn";
|
|
|
+ case 188: return "hg_tonadu";
|
|
|
+ case 189: return "hh_toxic_frog";
|
|
|
+ case 190: return "hi_jemnezmy";
|
|
|
+ case 191: return "hj_doorbull";
|
|
|
+ case 192: return "hk_ancient_dragon";
|
|
|
+ case 193: return "hl_red_dragon";
|
|
|
+ case 194: return "hm_8_eye";
|
|
|
+ case 195: return "hn_demons_gate";
|
|
|
+ case 196: return "ho_jenova_life";
|
|
|
+ case 197: return "hp_vlakorados";
|
|
|
+ case 198: return "hq_trickplay";
|
|
|
+ case 199: return "hr_trick_plays_attack";
|
|
|
+ case 200: return "hs_boundfat";
|
|
|
+ case 201: return "ht_malldancer";
|
|
|
+ case 202: return "hu_grimguard";
|
|
|
+ case 203: return "hv_hungry";
|
|
|
+ case 204: return "hw_acrophies";
|
|
|
+ case 205: return "hx_ice_golem";
|
|
|
+ case 206: return "hy_shred";
|
|
|
+ case 207: return "hz_lessaloploth";
|
|
|
+ case 208: return "ia_frozen_nail";
|
|
|
+ case 209: return "ib_jumping";
|
|
|
+ case 210: return "ic_snow";
|
|
|
+ case 211: return "id_bandersnatch";
|
|
|
+ case 212: return "ie_magnade";
|
|
|
+ case 213: return "if_magnades_shield";
|
|
|
+ case 214: return "ig_magnades_shield";
|
|
|
+ case 215: return "ih_malboro";
|
|
|
+ case 216: return "ii_blue_dragon";
|
|
|
+ case 217: return "ij_icicle";
|
|
|
+ case 218: return "ik_headbomber";
|
|
|
+ case 219: return "il_stilva";
|
|
|
+ case 220: return "im_zolokalter";
|
|
|
+ case 221: return "in_evilhead";
|
|
|
+ case 222: return "io_cuahl";
|
|
|
+ case 223: return "ip_gigas";
|
|
|
+ case 224: return "iq_grenade";
|
|
|
+ case 225: return "ir_gremlin";
|
|
|
+ case 226: return "is_ironite";
|
|
|
+ case 227: return "it_sculpture";
|
|
|
+ case 228: return "iu_schizo";
|
|
|
+ case 229: return "iv_schizos_head";
|
|
|
+ case 230: return "iw_wind_wing";
|
|
|
+ case 231: return "ix_dragon_rider";
|
|
|
+ case 232: return "iy_killbin";
|
|
|
+ case 233: return "iz_tonberry";
|
|
|
+ case 234: return "ja_jenova_death";
|
|
|
+ case 235: return "jb_roulette_cannon";
|
|
|
+ case 236: return "jc_pedestal";
|
|
|
+ case 237: return "jd_soldier2nd";
|
|
|
+ case 238: return "je_death_machine";
|
|
|
+ case 239: return "jf_slalom";
|
|
|
+ case 240: return "jg_scissors";
|
|
|
+ case 241: return "jh_scissors_upper";
|
|
|
+ case 242: return "ji_scissors_lower";
|
|
|
+ case 243: return "jj_guard_system";
|
|
|
+ case 244: return "jk_quick_machine_gun";
|
|
|
+ case 245: return "jl_rocket_launcher";
|
|
|
+ case 246: return "jm_ghost_ship";
|
|
|
+ case 247: return "jn_corvette";
|
|
|
+ case 248: return "jo_diver_nest";
|
|
|
+ case 249: return "jp_submarine_crew";
|
|
|
+ case 250: return "jq_captain";
|
|
|
+ case 251: return "jr_underwater_mp";
|
|
|
+ case 252: return "js_senior_grunt";
|
|
|
+ case 253: return "jt_hard_attacker";
|
|
|
+ case 254: return "ju_guardian";
|
|
|
+ case 255: return "jv_guardians_hand_right";
|
|
|
+ case 256: return "jw_guardians_hand_left";
|
|
|
+ case 257: return "jx_gun_carrier";
|
|
|
+ case 258: return "jy_carry_armor";
|
|
|
+ case 259: return "jz_carrys_left_arm";
|
|
|
+ case 260: return "ka_carrys_right_arm";
|
|
|
+ case 261: return "kb_rilfsak";
|
|
|
+ case 262: return "kc_diablo";
|
|
|
+ case 263: return "kd_epiolnis";
|
|
|
+ case 264: return "ke_hochu";
|
|
|
+ case 265: return "kf_gas_ducter";
|
|
|
+ case 266: return "kg_wolfmeister";
|
|
|
+ case 267: return "kh_eagle_gun";
|
|
|
+ case 268: return "ki_serpent";
|
|
|
+ case 269: return "kj_poodler";
|
|
|
+ case 270: return "kk_bad_rap";
|
|
|
+ case 271: return "kl_unknown_tongue";
|
|
|
+ case 272: return "km_unknown3_creep";
|
|
|
+ case 273: return "kn_unknown2_needle";
|
|
|
+ case 274: return "ko_turks_reno";
|
|
|
+ case 275: return "kp_turks_rude";
|
|
|
+ case 276: return "kq_hippogriff";
|
|
|
+ case 277: return "kr_head_hunter";
|
|
|
+ case 278: return "ks_spiral";
|
|
|
+ case 279: return "kt_crysales";
|
|
|
+ case 280: return "ku_sea_worm";
|
|
|
+ case 281: return "kv_turks_rude";
|
|
|
+ case 282: return "kw_cmd_grand_horn";
|
|
|
+ case 283: return "kx_cmd_grand_horn";
|
|
|
+ case 284: return "ky_cmd_grand_horn";
|
|
|
+ case 285: return "kz_behemoth";
|
|
|
+ case 286: return "la_cromwell";
|
|
|
+ case 287: return "lb_manhole";
|
|
|
+ case 288: return "lc_manhole_lid";
|
|
|
+ case 289: return "ld_crazy_saw";
|
|
|
+ case 290: return "le_shadow_maker";
|
|
|
+ case 291: return "lf_grosspanzer_big";
|
|
|
+ case 292: return "lg_grosspanzer_small";
|
|
|
+ case 293: return "lh_grosspanzer_mobile";
|
|
|
+ case 294: return "li_gargoyle_stoned";
|
|
|
+ case 295: return "lj_gargoyle";
|
|
|
+ case 296: return "lk_turks_elena";
|
|
|
+ case 297: return "ll_turks_reno";
|
|
|
+ case 298: return "lm_turks_rude";
|
|
|
+ case 299: return "ln_proud_clod";
|
|
|
+ case 300: return "lo_jamar_armor";
|
|
|
+ case 301: return "lp_soldier_1st";
|
|
|
+ case 302: return "lq_xcannon";
|
|
|
+ case 303: return "lr_bubble";
|
|
|
+ case 304: return "ls_maximum_kimaira";
|
|
|
+ case 305: return "lt_hojo";
|
|
|
+ case 306: return "lu_heletic_hojo";
|
|
|
+ case 307: return "lv_hojos_left_arm";
|
|
|
+ case 308: return "lw_hojos_right_arm";
|
|
|
+ case 309: return "lx_lifeform_hojo";
|
|
|
+ case 310: return "ly_magic_pot";
|
|
|
+ case 311: return "lz_christopher";
|
|
|
+ case 312: return "ma_gighee";
|
|
|
+ case 313: return "mb_king_behemoth";
|
|
|
+ case 314: return "mc_allemagne";
|
|
|
+ case 315: return "md_dragon_zombie";
|
|
|
+ case 316: return "me_armored_golem";
|
|
|
+ case 317: return "mf_master_tonberry";
|
|
|
+ case 318: return "mg_pollensalta";
|
|
|
+ case 319: return "mh_mover";
|
|
|
+ case 320: return "mi_iron_man";
|
|
|
+ case 321: return "mj_parasite";
|
|
|
+ case 322: return "mk_dark_dragon";
|
|
|
+ case 323: return "ml_death_dealer";
|
|
|
+ case 324: return "mm_jenova_synthesis";
|
|
|
+ case 325: return "mn_bizarro_sephiroth";
|
|
|
+ case 326: return "mo_bizarro_sephiroth";
|
|
|
+ case 327: return "mp_bizarro_sephiroth";
|
|
|
+ case 328: return "mq_bizarro_sephiroth";
|
|
|
+ case 329: return "mr_bizarro_sephiroth";
|
|
|
+ case 330: return "ms_bizarro_sephiroth";
|
|
|
+ case 331: return "mt_safer_sephiroth";
|
|
|
+ case 332: return "mu_sephiroth";
|
|
|
+ case 333: return "mv_ultima_weapon";
|
|
|
+ case 334: return "mw_ultima_weapon";
|
|
|
+ case 335: return "mx_ultima_weapon_aerial_fights";
|
|
|
+ case 336: return "my_ultima_weapon_aerial_fights";
|
|
|
+ case 337: return "mz_cactuar";
|
|
|
+ case 338: return "na_goblin";
|
|
|
+ case 339: return "nb_chocobo";
|
|
|
+ case 340: return "nc_chocobo";
|
|
|
+ case 341: return "nd_chocobo";
|
|
|
+ case 342: return "ne_chocobo";
|
|
|
+ case 343: return "nf_chocobo";
|
|
|
+ case 344: return "ng_chocobo";
|
|
|
+ case 345: return "nh_chocobo";
|
|
|
+ case 346: return "ni_chocobo";
|
|
|
+ case 347: return "nj_chocobo";
|
|
|
+ case 348: return "nk_chocobo";
|
|
|
+ case 349: return "nl_chocobo";
|
|
|
+ case 350: return "nm_chocobo";
|
|
|
+ case 351: return "nn_chocobo";
|
|
|
+ case 352: return "no_chocobo";
|
|
|
+ case 353: return "np_mystery_ninjayuf";
|
|
|
+ case 354: return "nq_yuffie_as_enemy";
|
|
|
+ case 355: return "nr_yuffie_as_enemy";
|
|
|
+ case 356: return "ns_yuffie_as_enemy";
|
|
|
+ case 357: return "nt_yuffie_as_enemy";
|
|
|
+ case 358: return "nu_yuffie_as_enemy";
|
|
|
+ case 359: return "nv_corneos_lacky";
|
|
|
+ case 360: return "nw_corneos_lacky";
|
|
|
+ case 361: return "nx_corneos_lacky";
|
|
|
+ case 362: return "ny_bad_rap_sample";
|
|
|
+ case 363: return "nz_poodler_sample";
|
|
|
+ case 364: return "oa_cactuer";
|
|
|
+ case 365: return "ob_shinra_trooper";
|
|
|
+ case 366: return "oc_shinra_trooper";
|
|
|
+ case 367: return "od_shinra_trooper";
|
|
|
+ case 368: return "oe_shinra_trooper";
|
|
|
+ case 369: return "of_shinra_trooper";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
};
|