Decompile mpconfigs segment

This commit is contained in:
Ryan Dwyer committed 2020-04-26 21:48:17 +10:00
1 parent 0ba7d1fb76
commit 15ee3c168e
18 files changed
+3635 -2174

No files matched your search

+12 -2
View File
@@ -67,7 +67,7 @@ CFLAGS := -DVERSION=$(VERSION) \
-I src/include \
-mips2
C_FILES := $(shell find src/boot src/lib src/game src/inflate src/gvars -name '*.c')
C_FILES := $(shell find src/boot src/lib src/game src/inflate src/gvars src/mpconfigs -name '*.c')
O_FILES := $(patsubst src/%.c, $(B_DIR)/%.o, $(C_FILES))
ASSET_AUDIO_FILES := Arecep01M Arecep02M Arecep03M Arecep04M Arecep05M Arecep06M Arlguard1M Arltech01M Arltech02M Arltech03M Arltech04M Arltech05M Arltech06M Ascie2aM Ascie2bM Ascie2cM Ascie2dM Ascie2eM Ascie2fM Ascie2gM Ascie3aM Ascie3bM Ascie3cM Ascie3dM Ascie3eM Ascie3gM Ascien10aM Ascien2_aM Ascien3_aM Ascien4_aM Ascien5_aM Ascien6_aM Ascien7_aM Ascien9_aM AvilgrimM Awepgd01M Awepgd02M Awepgd03M Awepsc01M Awepsc02M Awepsc03M Aa51elv01M Aa51elv02M Aa51elv03M Aa51grd01M Aa51grd02M Aa51grd03M Aa51grd04M Aa51grd05M Aa51grd06M Aa51grd07M Aa51grd08M Aa51grd09M Aa51grd10M Aa51jo1M Aa51jo2M Aa51jo3M Aa51jo4M Aa51jo5M Aa51jo6M Aa51jon01M Aa51jon02M Aa51jon03M Aa51jon04M Aa51jon05M Aa51jon06M Aa51jon07M Aa51jon08M Aa51jon09M Aa51jon10M Aa51jon11M Aa51jon12M Aa51jon14M Aa51jon15M Aa51sci1M Aaf1jo01M Aaf1jo02M Aaf1jo03M Aaf1pr01M Aaf1pr02M Aaf1pr03M Aaf1pr04M Aaf1pr05M Aaf1pr06M Aaf1pr07M Aaf1pr08M Aaf1pr09M Aaf1pr10M Aaf1tr01M Aaf1tr02M Aaf1tr03M Aairbgd01M Aairbgd02M Aairbgd03M Aairbgd04M Aairbgd05M Aairbgd06M Aairbgd07M Aairbgd08M Aairbgd09M Aairbgd10M Aairbgd11M Aairbgd12M Aairbgd13M Aairbgd14M Aairbgd15M Aairbgd16M Aairstw01M Aairstw02M Aairstw03M Aassael01M Aassael02M Aassael03M Aassael04M Aassael05M Aassael06M Absewrk01M Absewrk02M Absewrk03M Absewrk04M Absewrk05M Acetael01M Achdroid1M Achdroid2M Acsec01M Acsec02M Acsec03M Acstan1M Acstan2M Adevr01M Adevr02M Adevr03M Adevr04M Adevr05M Adevr06M Adevr07M Adevr08M Adevr09M Adevr10M Adevr11M Adevr12M Aexec01M Aexec02M Aexec04M Aexec05M Aexec06M Aexec07M Aexec08M Aexec09M Aexec10M Aexec11M Aexec12M Aexec13M Aexec14M Ahelic01M Ahelic02M Ahelic03M Ahologd01M AholohopkM Ainvcar01M Ainvcar02M Ainvcar03M Ainvcar04M Ainvcar05M Ainvcar06M Ainvcar07M Ainvcar08M Ainvcar09M Ainvcar10M Ainvcar11M Ainvcar12M AinvfarrM AinvfemaM AinvfostM AinvgrimM AinvhopkM AinvmaleM Ajoexec01M Ajoexec02M Ajosci01M Ajosci02M Ajosci03M Alabacc1M Alabacc2M Alabacc3M Alabacc4M Alabacc5M Alabacc6M Alabtech1M Alabtech2M Alabtech3M Alabtech5M Alabtech6M Alabtech7M Alabtech8M Alabtech9M Aoffwrk01M Aoffwrk02M Aoffwrk03M Aoffwrk04M Am1_l1_aM Am1_l1_bM Am1_l1_cM Am1_l1_dM Am1_l2_aM Am1_l2_bM Am1_l2_cM Am1_l2_dM Am1_l3_aM Am1_l3_bM Am1_l3_cM Am1_l3_dM Am2_l1_aM Am2_l1_bM Am2_l1_cM Am2_l1_dM Am3_l1_aM Am3_l1_bM Am3_l1_cM Am3_l1_dM Am3_l2_aM Am3_l2_bM Am3_l2_cM Am3_l2_dM Am4_l1_aM Am4_l1_bM Am4_l1_cM Am4_l1_dM Am4_l2_aM Am4_l2_bM Am4_l2_cM Am4_l2_dM Am4_l3_aM Am4_l3_bM Am4_l3_cM Am4_l3_dM Am5_l1_aM Am5_l1_bM Am5_l1_cM Am5_l1_dM Am5_l2_aM Am5_l2_bM Am5_l2_cM Am5_l2_dM Am5_l3_aM Am5_l3_bM Am5_l3_cM Am5_l3_dM Am6_l1_aM Am6_l1_bM Am6_l1_cM Am6_l1_dM Am6_l2_aM Am6_l2_bM Am6_l2_cM Am6_l2_dM Am7_l1_aM Am7_l1_bM Am7_l1_cM Am7_l1_dM Am8_l1_aM Am8_l1_bM Am8_l1_cM Am8_l1_dM Am9_l1_aM Am9_l1_bM Am9_l1_cM Am9_l1_dM Ap1_01_joM Ap1_02_caM Ap1_03_joM Ap1_04_caM Ap1_05_joM Ap1_06_caM Ap1_07_joM Ap1_08_caM Ap2_01_joM Ap2_02_joM Ap2_03_drM Ap2_04_joM Ap2_05_joM Ap2_06_drM Ap2_07_drM Ap3_01_gdM Ap3_02_joM Ap3_03_joM Ap4_01_dvM Ap4_02_joM Ap4_03_dvM Ap4_04_joM Ap4_05_dvM Ap4_06_joM Ap4_07_blM Ap4_08_dvM Ap4_09_dvM Ap5_01_joM Ap5_02_joM Ap5_03_joM Ap6_01_joM Ap6_02_caM Ap6_03_joM Ap6_04_caM Ap6_05_joM Ap6_06_caM Ap7_01_caM Ap7_02_joM Ap7_03_caM Ap7_04_joM Ap8_01_dvM Ap8_02_blM Ap8_03_dvM Ap8_04_blM Ap8_06_blM Ap8_07_trM Ap8_08_dvM Ap8_09_trM Ap8_10_blM Ap9_01_joM Ap9_02_caM Ap9_03_joM Ap10_01_caM Ap10_02_caM Ap10_03_caM Ap10_04_caM Ap10_05_joM Ap10_06_caM Ap10_07_joM Ap10_08_caM Ap10_09_joM Ap11_01_jnM Ap11_02_joM Ap11_03_jnM Ap11_04_joM Ap11_05_jnM Ap11_06_joM Ap11_07_jnM Ap11_08_joM Ap12_01_jnM Ap12_02_joM Ap12_03_jnM Ap12_04_joM Ap12_05_jnM Ap12_06_joM Ap12_07_jnM Ap12_08_joM Ap12_09_jnM Ap12_10_joM Ap13_01_joM Ap13_02_suM Ap13_03_joM Ap13_04_suM Ap13_06_suM Ap14_03_suM Ap14_04_joM Ap14_05_suM Ap14_07_joM Ap15_01_elM Ap15_02_elM Ap15_03_joM Ap15_04_jnM Ap15_05_elM Ap15_06_joM Ap15_07_elM Ap15_08_joM Ap15_09_elM Ap15_10_joM Ap15_11_elM Ap16_01_joM Ap16_02_caM Ap16_04_caM Ap16_05_joM Ap16_06_caM Ap17_01_trM Ap17_02_prM Ap17_03_trM Ap17_04_prM Ap17_05_trM Ap17_06_trM Ap18_01_joM Ap18_02_elM Ap18_03_elM Ap18_04_joM Ap18_05_elM Ap19_01_caM Ap19_02_caM Ap19_03_joM Ap19_04_caM Ap19_05_joM Ap19_06_joM Ap20_01_joM Ap20_02_prM Ap20_03_joM Ap20_04_prM Ap20_05_joM Ap20_06_blM Ap20_07_trM Ap20_08_trM Ap21_01_elM Ap21_02_joM Ap21_03_elM Ap21_04_joM Ap22_01_elM Ap22_02_joM Ap22_03_elM Ap22_04_joM Ap23_01_joM Ap23_02_drM Ap23_03_joM Ap23_04_drM Ap23_05_joM Ap23_06_drM Ap23_07_joM Ap23_08_drM Ap24_01_caM Ap24_02_joM Ap24_03_caM Ap24_04_joM Ap24_05_caM Ap24_06_caM Ap24_07_joM Ap24_08_joM Ap25_01_joM Ap25_02_joM Ap26_01_joM Ap26_02_dvM Ap26_03_joM Ap26_04_dvM Ap26_05_dvM Ap26_06_joM Ap26_07_dvM Ap26_08_dvM Ap27_01_joM Ap27_02_elM Ap27_03_elM Ap27_04_joM Ap27_05_joM Ap27_06_elM Ap28_01_elM Ap28_02_joM Ap28_03_elM Ap28_04_joM Ap28_05_elM Ap28_06_joM Ap29_01_elM Ap29_02_joM Ap29_03_elM Ap29_04_joM Ap29_05_joM Ap29_06_elM Ap29_07_joM Ap29_08_elM Ap29_09_joM Ap29_10_elM Apelelv01M Apelgrd01M Ap29_11_joM Am3l2carrM Aelvcet01M Aelvcet02M Ajorep01M Line truncated
@@ -120,7 +120,8 @@ UCODE_BIN_FILES := \
$(B_DIR)/ucode/gamedata.bin \
$(B_DIR)/ucode/gvars.bin \
$(B_DIR)/ucode/lib.bin \
$(B_DIR)/ucode/inflate.bin
$(B_DIR)/ucode/inflate.bin \
$(B_DIR)/ucode/mpconfigs.bin
default: all
@@ -289,6 +290,15 @@ $(B_DIR)/ucode/gvars.bin: $(B_DIR)/pd.bin
gvars: $(B_DIR)/ucode/gvars.bin
################################################################################
# MpConfigs
$(B_DIR)/ucode/mpconfigs.bin: $(B_DIR)/pd.bin
@mkdir -p $(B_DIR)/ucode
B_DIR=$(B_DIR) tools/extract-segment mpconfigs
mpconfigs: $(B_DIR)/ucode/mpconfigs.bin
################################################################################
# Miscellaneous
+1
View File
@@ -2018,3 +2018,4 @@ bd6e5fc360d5e0c35ea3605e2514f205 build/jap-final/ucode/game.bin
22d5e92bffcc67b222cf3697e96106f6 build/jap-final/ucode/gamedata.bin
843285fdc0e80a77576eeb73940d2fd3 build/jap-final/ucode/inflate.bin
c550660ff4ba024113ddb38103bf79f8 build/jap-final/ucode/lib.bin
c47d9377956666bc0e77d6cba3dc68fb build/jap-final/ucode/mpconfigs.bin
+1
View File
@@ -2016,3 +2016,4 @@ d41d8cd98f00b204e9800998ecf8427e build/ntsc-1.0/files/ob/ob_mid.seg
b21679a1b2dabd721bc4afee11bf5266 build/ntsc-1.0/ucode/gamedata.bin
843285fdc0e80a77576eeb73940d2fd3 build/ntsc-1.0/ucode/inflate.bin
3155eece856e9fbd9bc47d03463cfc1b build/ntsc-1.0/ucode/lib.bin
fe4034c01c91bd10e488fe93389b4104 build/ntsc-1.0/ucode/mpconfigs.bin
+1
View File
@@ -2015,3 +2015,4 @@ daae19f7ce11d3f3e1f98d543ad856f5 build/ntsc-beta/ucode/game.bin
cab47b8c30b1be608c1c5c1db08342de build/ntsc-beta/ucode/gamedata.bin
d13f25c1c59fb96346ac23301ccd9d7d build/ntsc-beta/ucode/inflate.bin
14aa42e2f0f215d931900d25ab70e576 build/ntsc-beta/ucode/lib.bin
8aaec8cc806ec62d2f70eaa08282e9c0 build/ntsc-beta/ucode/mpconfigs.bin
+1
View File
@@ -2016,3 +2016,4 @@ ed0462324d1287de21611707172d316a build/ntsc-final/ucode/game.bin
11c9c4c2737f66e7312949909b894dcc build/ntsc-final/ucode/gamedata.bin
843285fdc0e80a77576eeb73940d2fd3 build/ntsc-final/ucode/inflate.bin
6a227624d708b43a10f220e005aef486 build/ntsc-final/ucode/lib.bin
fe4034c01c91bd10e488fe93389b4104 build/ntsc-final/ucode/mpconfigs.bin
+2019 -2018
View File
File diff suppressed because it is too large. Load diff
+1
View File
@@ -2016,3 +2016,4 @@ d41d8cd98f00b204e9800998ecf8427e build/pal-final/files/ob/ob_mid.seg
1c49c171e829a5407f0ae5fd28a123cd build/pal-final/ucode/gamedata.bin
843285fdc0e80a77576eeb73940d2fd3 build/pal-final/ucode/inflate.bin
b83973db626573e024608444e5d74461 build/pal-final/ucode/lib.bin
7f5540dd6fff2039b2ce05bf57ac5611 build/pal-final/ucode/mpconfigs.bin
+5
View File
@@ -105,6 +105,11 @@ SECTIONS
}
__rompos += SIZEOF(.inflate);
.mpconfigs : AT(__rompos) {
build/ROMID/mpconfigs/mpconfigs.o (.data);
}
__rompos += SIZEOF(.mpconfigs);
__rompos = 0xed83a0;
_filesSegmentRomStart = __rompos;
_filesSegmentRamStart = .;
+117 -118
View File
@@ -11339,18 +11339,18 @@ u16 mpslowmotionoptions[] = {
// 2c7e8
struct menu_item menuitems_mpcombatoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), 0x00000001, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), 0x00000100, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), L_AME(0), menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), 0x00000004, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), 0x00000008, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(228), 0x00000010, menuhandlerMpCheckboxOption }, // "No Player Highlight"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(229), 0x00000020, menuhandlerMpCheckboxOption }, // "No Pickup Highlight"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(228), MPOPTION_NOPLAYERHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Player Highlight"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(229), MPOPTION_NOPICKUPHIGHLIGHT, menuhandlerMpCheckboxOption }, // "No Pickup Highlight"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 2c8d8
@@ -11365,19 +11365,19 @@ struct menu_dialog menudialog_mpcombatoptions = {
// 2c8f0
struct menu_item menuitems_mpbriefcaseoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), 0x00000001, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), 0x00000100, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), L_AME(0), menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), 0x00000004, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), 0x00000008, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), L_ARCH(0), menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(237), L_ASH(0), menuhandlerMpCheckboxOption }, // "Highlight Briefcase"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), L_AREC(0), menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(237), MPOPTION_HTB_HIGHLIGHTBRIEFCASE, menuhandlerMpCheckboxOption }, // "Highlight Briefcase"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_HTB_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 2c9f4
@@ -11420,18 +11420,18 @@ u32 var80086a54 = 0x00000000;
// 2ca78
struct menu_item menuitems_mpcaptureoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), 0x00000001, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), 0x00000100, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), L_AME(0), menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), 0x00000004, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), 0x00000008, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), L_ARCH(0), menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(236), L_ELD(0), menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(236), MPOPTION_CTC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 2cb68
@@ -11473,20 +11473,20 @@ u32 var80086bc4 = 0x00000000;
// 2cbe8
struct menu_item menuitems_mphilloptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), 0x00000001, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), 0x00000100, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), L_AME(0), menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), 0x00000004, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), 0x00000008, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), L_ARCH(0), menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(233), L_SEVXB(0), menuhandlerMpCheckboxOption }, // "Hill on Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(234), L_MP16(0), menuhandlerMpCheckboxOption }, // "Mobile Hill"
{ MENUITEMTYPE_SLIDER, 0, 0x00020000, L_MPMENU(235), 0x0000006e, menuhandlerMpHillTime }, // "Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(233), MPOPTION_KOH_HILLONRADAR, menuhandlerMpCheckboxOption }, // "Hill on Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(234), MPOPTION_KOH_MOBILEHILL, menuhandlerMpCheckboxOption }, // "Mobile Hill"
{ MENUITEMTYPE_SLIDER, 0, 0x00020000, L_MPMENU(235), 0x0000006e, menuhandlerMpHillTime }, // "Time"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 2cd00
@@ -11501,19 +11501,19 @@ struct menu_dialog menudialog_mphilloptions = {
// 2cd18
struct menu_item menuitems_mphackeroptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), 0x00000001, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), 0x00000100, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), L_AME(0), menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), 0x00000004, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), 0x00000008, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), L_ARCH(0), menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(231), 0x00020000, menuhandlerMpCheckboxOption }, // "Highlight Terminal"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), 0x00040000, menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(231), MPOPTION_HTM_HIGHLIGHTTERMINAL, menuhandlerMpCheckboxOption }, // "Highlight Terminal"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_HTM_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 2ce1c
@@ -11555,19 +11555,19 @@ u32 var80086e78 = 0x00000000;
// 2ce9c
struct menu_item menuitems_mppopacapoptions[] = {
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), 0x00000001, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), 0x00000100, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), L_AME(0), menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), 0x00000004, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), 0x00000008, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), L_ARCH(0), menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(230), 0x00080000, menuhandlerMpCheckboxOption }, // "Highlight Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), 0x00100000, menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(222), MPOPTION_ONEHITKILLS, menuhandlerMpOneHitKills }, // "One-Hit Kills"
{ MENUITEMTYPE_DROPDOWN, 0, 0x00020000, L_MPMENU(223), 0x00000000, menuhandlerMpSlowMotion }, // "Slow Motion"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(224), MPOPTION_FASTMOVEMENT, menuhandlerMpCheckboxOption }, // "Fast Movement"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(225), MPOPTION_DISPLAYTEAM, menuhandlerMpDisplayTeam }, // "Display Team"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(226), MPOPTION_NORADAR, menuhandlerMpCheckboxOption }, // "No Radar"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(227), MPOPTION_NOAUTOAIM, menuhandlerMpCheckboxOption }, // "No Auto-Aim"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_OPTIONS(493), MPOPTION_KILLSSCORE, menuhandlerMpCheckboxOption }, // "Kills Score"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(230), MPOPTION_PAC_HIGHLIGHTTARGET, menuhandlerMpCheckboxOption }, // "Highlight Target"
{ MENUITEMTYPE_CHECKBOX, 0, 0x00020000, L_MPMENU(238), MPOPTION_PAC_SHOWONRADAR, menuhandlerMpCheckboxOption }, // "Show on Radar"
{ MENUITEMTYPE_SEPARATOR, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
{ MENUITEMTYPE_SELECTABLE, 0, 0x00000008, L_MPMENU(239), 0x00000000, NULL }, // "Back"
{ MENUITEMTYPE_END, 0, 0x00000000, 0x00000000, 0x00000000, NULL },
};
// 2cfa0
@@ -11667,45 +11667,44 @@ s32 var80087260 = 0x00000000;
u32 var80087264 = 0x00000000;
// 2d288
u16 mpweaponstable[] = {
/*0x00*/ 0x0000, 0x0000, 0x0080, 0x0118, 0x0100,
/*0x01*/ 0x0201, 0x5000, 0x0080, 0x00f5, 0x0100,
/*0x02*/ 0x0301, 0x5000, 0x0085, 0x00fb, 0x0100,
/*0x03*/ 0x0401, 0x5000, 0x0086, 0x00fc, 0x0100,
/*0x04*/ 0x0501, 0x5000, 0x0080, 0x00f6, 0x0100,
/*0x05*/ 0x0601, 0x5c00, 0x0087, 0x00f7, 0x0100,
/*0x06*/ 0x0701, 0x4000, 0x0088, 0x00fa, 0x0100,
/*0x07*/ 0x080a, 0x3200, 0x0080, 0x00f8, 0x0100,
/*0x08*/ 0x090a, 0x3200, 0x0089, 0x00f9, 0x0100,
/*0x09*/ 0x0a02, 0x6400, 0x0080, 0x00fd, 0x0100,
/*0x0a*/ 0x0b02, 0x9600, 0x0080, 0x0102, 0x0100,
/*0x0b*/ 0x0c02, 0x9600, 0x008a, 0x0103, 0x0100,
/*0x0c*/ 0x0d02, 0x9600, 0x008d, 0x0104, 0x0100,
/*0x0d*/ 0x0e02, 0x9600, 0x008b, 0x0105, 0x0100,
/*0x0e*/ 0x0f04, 0x9600, 0x0080, 0x00ff, 0x0100,
/*0x0f*/ 0x1004, 0x9600, 0x008c, 0x0101, 0x0100,
/*0x10*/ 0x1104, 0x6400, 0x0080, 0x00fe, 0x0100,
/*0x11*/ 0x1204, 0x960b, 0x1083, 0x0100, 0x0100,
/*0x12*/ 0x1305, 0x1000, 0x008e, 0x0106, 0x0100,
/*0x13*/ 0x140f, 0xc800, 0x008f, 0x0107, 0x0100,
/*0x14*/ 0x1504, 0x3200, 0x0080, 0x010c, 0x0100,
/*0x15*/ 0x1606, 0x0a00, 0x0081, 0x010b, 0x0100,
/*0x16*/ 0x170b, 0x1000, 0x0090, 0x0109, 0x0100,
/*0x17*/ 0x1808, 0x0300, 0x0080, 0x0108, 0x0100,
/*0x18*/ 0x1908, 0x0300, 0x0084, 0x010a, 0x0100,
/*0x19*/ 0x1a09, 0x0500, 0x0080, 0x010f, 0x0100,
/*0x1a*/ 0x1b03, 0x0a00, 0x0091, 0x010d, 0x0100,
/*0x1b*/ 0x1c13, 0x3200, 0x0082, 0x010e, 0x0100,
/*0x1c*/ 0x1e07, 0x0500, 0x0000, 0x0112, 0x0100,
/*0x1d*/ 0x1f12, 0x0300, 0x0012, 0x0110, 0x0100,
/*0x1e*/ 0x200e, 0x0500, 0x0000, 0x0113, 0x0180,
/*0x1f*/ 0x210d, 0x0500, 0x0013, 0x0114, 0x0180,
/*0x20*/ 0x220c, 0x0500, 0x0014, 0x0115, 0x0180,
/*0x21*/ 0x1d00, 0x0000, 0x00cf, 0x0195, 0x0200,
/*0x22*/ 0x2f00, 0x0000, 0x0095, 0x00f3, 0x0100,
/*0x23*/ 0x3100, 0x0000, 0x0097, 0x012e, 0x0100,
/*0x24*/ 0x2300, 0x0000, 0x0098, 0x012f, 0x0100,
/*0x25*/ 0x5b00, 0x0000, 0x0096, 0x00f4, 0x0100,
/*0x26*/ 0x5c00, 0x0000, 0x0000, 0x0000, 0x0000,
/*0x27*/ 0x0000,
struct mpweapon mpweaponstable[] = {
/*0x00*/ { WEAPON_NONE, 0x00, 0x00, 0x00, 0x0080, MODEL_CHRTT33, 0x01, 0x00 },
/*0x01*/ { WEAPON_FALCON2, 0x01, 0x50, 0x00, 0x0080, MODEL_CHRFALCON2, 0x01, 0x00 },
/*0x02*/ { WEAPON_FALCON2_SILENCER, 0x01, 0x50, 0x00, 0x0085, MODEL_CHRFALCON2SIL, 0x01, 0x00 },
/*0x03*/ { WEAPON_FALCON2_SCOPE, 0x01, 0x50, 0x00, 0x0086, MODEL_CHRFALCON2SCOPE, 0x01, 0x00 },
/*0x04*/ { WEAPON_MAGSEC4, 0x01, 0x50, 0x00, 0x0080, MODEL_CHRLEEGUN1, 0x01, 0x00 },
/*0x05*/ { WEAPON_MAULER, 0x01, 0x5c, 0x00, 0x0087, MODEL_CHRMAULER, 0x01, 0x00 },
/*0x06*/ { WEAPON_PHOENIX, 0x01, 0x40, 0x00, 0x0088, MODEL_CHRMAIANPISTOL, 0x01, 0x00 },
/*0x07*/ { WEAPON_DY357MAGNUM, 0x0a, 0x32, 0x00, 0x0080, MODEL_CHRDY357, 0x01, 0x00 },
/*0x08*/ { WEAPON_DY357LX, 0x0a, 0x32, 0x00, 0x0089, MODEL_CHRDY357TRENT, 0x01, 0x00 },
/*0x09*/ { WEAPON_CMP150, 0x02, 0x64, 0x00, 0x0080, MODEL_CHRCMP150, 0x01, 0x00 },
/*0x0a*/ { WEAPON_CYCLONE, 0x02, 0x96, 0x00, 0x0080, MODEL_CHRCYCLONE, 0x01, 0x00 },
/*0x0b*/ { WEAPON_CALLISTONTG, 0x02, 0x96, 0x00, 0x008a, MODEL_CHRMAIANSMG, 0x01, 0x00 },
/*0x0c*/ { WEAPON_RCP120, 0x02, 0x96, 0x00, 0x008d, MODEL_CHRRCP120, 0x01, 0x00 },
/*0x0d*/ { WEAPON_LAPTOPGUN, 0x02, 0x96, 0x00, 0x008b, MODEL_CHRPCGUN, 0x01, 0x00 },
/*0x0e*/ { WEAPON_DRAGON, 0x04, 0x96, 0x00, 0x0080, MODEL_CHRDRAGON, 0x01, 0x00 },
/*0x0f*/ { WEAPON_K7AVENGER, 0x04, 0x96, 0x00, 0x008c, MODEL_CHRAVENGER, 0x01, 0x00 },
/*0x10*/ { WEAPON_AR34, 0x04, 0x64, 0x00, 0x0080, MODEL_CHRAR34, 0x01, 0x00 },
/*0x11*/ { WEAPON_SUPERDRAGON, 0x04, 0x96, 0x0b, 0x1083, MODEL_CHRSUPERDRAGON, 0x01, 0x00 },
/*0x12*/ { WEAPON_SHOTGUN, 0x05, 0x10, 0x00, 0x008e, MODEL_CHRSHOTGUN, 0x01, 0x00 },
/*0x13*/ { WEAPON_REAPER, 0x0f, 0xc8, 0x00, 0x008f, MODEL_CHRSKMINIGUN, 0x01, 0x00 },
/*0x14*/ { WEAPON_SNIPERRIFLE, 0x04, 0x32, 0x00, 0x0080, MODEL_CHRSNIPERRIFLE, 0x01, 0x00 },
/*0x15*/ { WEAPON_FARSIGHTXR20, 0x06, 0x0a, 0x00, 0x0081, MODEL_CHRZ2020, 0x01, 0x00 },
/*0x16*/ { WEAPON_DEVASTATOR, 0x0b, 0x10, 0x00, 0x0090, MODEL_CHRDEVASTATOR, 0x01, 0x00 },
/*0x17*/ { WEAPON_ROCKETLAUNCHER, 0x08, 0x03, 0x00, 0x0080, MODEL_CHRDYROCKET, 0x01, 0x00 },
/*0x18*/ { WEAPON_SLAYER, 0x08, 0x03, 0x00, 0x0084, MODEL_CHRSKROCKET, 0x01, 0x00 },
/*0x19*/ { WEAPON_COMBATKNIFE, 0x09, 0x05, 0x00, 0x0080, MODEL_CHRKNIFE, 0x01, 0x00 },
/*0x1a*/ { WEAPON_CROSSBOW, 0x03, 0x0a, 0x00, 0x0091, MODEL_CHRCROSSBOW, 0x01, 0x00 },
/*0x1b*/ { WEAPON_TRANQUILIZER, 0x13, 0x32, 0x00, 0x0082, MODEL_CHRDRUGGUN, 0x01, 0x00 },
/*0x1c*/ { WEAPON_GRENADE, 0x07, 0x05, 0x00, 0x0000, MODEL_CHRGRENADE, 0x01, 0x00 },
/*0x1d*/ { WEAPON_NBOMB, 0x12, 0x03, 0x00, 0x0012, MODEL_CHRNBOMB, 0x01, 0x00 },
/*0x1e*/ { WEAPON_TIMEDMINE, 0x0e, 0x05, 0x00, 0x0000, MODEL_CHRTIMEDMINE, 0x01, 0x80 },
/*0x1f*/ { WEAPON_PROXIMITYMINE, 0x0d, 0x05, 0x00, 0x0013, MODEL_CHRPROXIMITYMINE, 0x01, 0x80 },
/*0x20*/ { WEAPON_REMOTEMINE, 0x0c, 0x05, 0x00, 0x0014, MODEL_CHRREMOTEMINE, 0x01, 0x80 },
/*0x21*/ { WEAPON_LASER, 0x00, 0x00, 0x00, 0x00cf, MODEL_CHRLASER, 0x02, 0x00 },
/*0x22*/ { WEAPON_XRAYSCANNER, 0x00, 0x00, 0x00, 0x0095, MODEL_CHRNIGHTSIGHT, 0x01, 0x00 },
/*0x23*/ { WEAPON_CLOAKINGDEVICE, 0x00, 0x00, 0x00, 0x0097, MODEL_CHRCLOAKER, 0x01, 0x00 },
/*0x24*/ { WEAPON_COMBATBOOST, 0x00, 0x00, 0x00, 0x0098, MODEL_CHRSPEEDPILL, 0x01, 0x00 },
/*0x25*/ { WEAPON_MPSHIELD, 0x00, 0x00, 0x00, 0x0096, MODEL_CHRSHIELD, 0x01, 0x00 },
/*0x26*/ { WEAPON_DISABLED, 0x00, 0x00, 0x00, 0x0000, 0, 0x00, 0x00 },
};
+1 -1
View File
@@ -112,7 +112,7 @@ void currentPlayerInsertInvItem(struct invitem *item)
if (override->weapon >= WEAPON_UNARMED && override->weapon <= WEAPON_NECKLACE) {
setflag = false;
}
if (override->weapon == WEAPON_5B) {
if (override->weapon == WEAPON_MPSHIELD) {
setflag = false;
}
if (override->weapon == WEAPON_SUICIDEPILL) {
+10 -10
View File
@@ -1032,7 +1032,7 @@ void scenarioHtbKill(struct mpchr *mpchr, s32 arg1, s32 *score, s32 *arg3)
Gfx *scenarioHtbRadar(Gfx *gdl)
{
if ((g_MpSetup.options & MPOPTION_SHOWONRADAR1) &&
if ((g_MpSetup.options & MPOPTION_HTB_SHOWONRADAR) &&
g_ScenarioData.htb.token != NULL &&
g_ScenarioData.htb.token->type != PROPTYPE_PLAYER &&
g_ScenarioData.htb.token->type != PROPTYPE_CHR) {
@@ -1048,7 +1048,7 @@ Gfx *scenarioHtbRadar(Gfx *gdl)
bool scenarioHtbRadar2(Gfx **gdl, struct prop *prop)
{
if ((g_MpSetup.options & MPOPTION_SHOWONRADAR1) &&
if ((g_MpSetup.options & MPOPTION_HTB_SHOWONRADAR) &&
g_ScenarioData.htb.token &&
prop == g_ScenarioData.htb.token) {
if (prop->type == PROPTYPE_PLAYER || prop->type == PROPTYPE_CHR) {
@@ -1073,7 +1073,7 @@ bool scenarioHtbRadar2(Gfx **gdl, struct prop *prop)
bool scenarioHtbHighlight(struct prop *prop, u32 *colour)
{
if ((g_MpSetup.options & MPOPTION_HIGHLIGHTBRIEFCASE) && prop == g_ScenarioData.htb.token) {
if ((g_MpSetup.options & MPOPTION_HTB_HIGHLIGHTBRIEFCASE) && prop == g_ScenarioData.htb.token) {
colour[0] = 0;
colour[1] = 0xff;
colour[2] = 0;
@@ -1564,7 +1564,7 @@ void scenarioCtcKill(struct mpchr *mpchr, s32 arg1, s32 *score, s32 *arg3)
Gfx *scenarioCtcRadar(Gfx *gdl)
{
if (g_MpSetup.options & MPOPTION_SHOWONRADAR2) {
if (g_MpSetup.options & MPOPTION_CTC_SHOWONRADAR) {
s32 i;
for (i = 0; i < scenarioGetMaxTeams(); i++) {
@@ -1587,7 +1587,7 @@ bool scenarioCtcRadar2(Gfx **gdl, struct prop *prop)
{
s32 i;
if (g_MpSetup.options & MPOPTION_SHOWONRADAR2) {
if (g_MpSetup.options & MPOPTION_CTC_SHOWONRADAR) {
for (i = 0; i < scenarioGetMaxTeams(); i++) {
if (prop == g_ScenarioData.ctc.tokens[i] &&
(g_ScenarioData.ctc.tokens[i]->type == PROPTYPE_CHR || g_ScenarioData.ctc.tokens[i]->type == PROPTYPE_PLAYER)) {
@@ -2796,7 +2796,7 @@ void scenarioKohKill(struct mpchr *mpchr, s32 arg1, s32 *score, s32 *arg3)
Gfx *scenarioKohRadar(Gfx *gdl)
{
if (g_MpSetup.options & MPOPTION_HILLONRADAR && g_ScenarioData.koh.unk08 == 0) {
if (g_MpSetup.options & MPOPTION_KOH_HILLONRADAR && g_ScenarioData.koh.unk08 == 0) {
struct coord dist;
u32 colour;
dist.x = g_ScenarioData.koh.hillpos.x - g_Vars.currentplayer->prop->pos.x;
@@ -4280,7 +4280,7 @@ glabel scenarioHtmRadar
bool scenarioHtmRadar2(Gfx **gdl, struct prop *prop)
{
if ((g_MpSetup.options & MPOPTION_SHOWONRADAR3) && g_ScenarioData.htm.uplink) {
if ((g_MpSetup.options & MPOPTION_HTM_SHOWONRADAR) && g_ScenarioData.htm.uplink) {
if (prop == g_ScenarioData.htm.uplink &&
(prop->type == PROPTYPE_PLAYER || prop->type == PROPTYPE_CHR)) {
struct coord dist;
@@ -4304,7 +4304,7 @@ bool scenarioHtmRadar2(Gfx **gdl, struct prop *prop)
bool scenarioHtmHighlight(struct prop *prop, u32 *colour)
{
if (g_MpSetup.options & MPOPTION_HIGHLIGHTTERMINAL) {
if (g_MpSetup.options & MPOPTION_HTM_HIGHLIGHTTERMINAL) {
bool highlight = false;
if (prop == g_ScenarioData.htm.uplink) {
@@ -4509,7 +4509,7 @@ glabel scenarioPacHighlight
//bool scenarioPacHighlight(struct prop *prop, u32 *colour)
//{
// if ((g_MpSetup.options & MPOPTION_HIGHLIGHTTARGET) &&
// if ((g_MpSetup.options & MPOPTION_PAC_HIGHLIGHTTARGET) &&
// (prop->type == PROPTYPE_PLAYER || prop->type == PROPTYPE_CHR) &&
// g_ScenarioData.pac.victimindex != -1 &&
// prop->chr == g_MpPlayerChrs[g_ScenarioData.pac.victims[g_ScenarioData.pac.victimindex]]) {
@@ -5134,7 +5134,7 @@ glabel scenarioPacRadar2
// while decomp loads the base pac address then uses offsets.
//bool scenarioPacRadar2(Gfx **gdl, struct prop *prop)
//{
// if ((g_MpSetup.options & MPOPTION_SHOWONRADAR4) && g_ScenarioData.pac.victimindex >= 0) {
// if ((g_MpSetup.options & MPOPTION_PAC_SHOWONRADAR) && g_ScenarioData.pac.victimindex >= 0) {
// s32 index = g_ScenarioData.pac.victimindex;
// struct prop *thing = g_MpPlayerChrs[g_ScenarioData.pac.victims[index]]->prop;
//
+12 -12
View File
@@ -3015,18 +3015,18 @@ glabel func0f18a030
);
struct mpweaponset g_MpWeaponSets[] = {
{ /*0x00*/ L_MPWEAPONS(55), { WEAPON_FALCON2, WEAPON_MAGSEC4, WEAPON_PHOENIX, WEAPON_MAULER, WEAPON_5B, WEAPON_5C }, { 0x08, 0x07, 0x00, 0x00 }, 0x02, 0x05, 0x02, 0x08, 0x5b, 0x5c }, // Pistols
{ /*0x01*/ L_MPWEAPONS(54), { WEAPON_FALCON2, WEAPON_CMP150, WEAPON_LAPTOPGUN, WEAPON_AR34, WEAPON_5B, WEAPON_5C }, { 0x0b, 0x00, 0x00, 0x00 }, 0x02, 0x0a, 0x0f, 0x11, 0x5b, 0x5c }, // Automatics
{ /*0x02*/ L_MPWEAPONS(53), { WEAPON_MAGSEC4, WEAPON_DY357MAGNUM, WEAPON_SHOTGUN, WEAPON_RCP120, WEAPON_5B, WEAPON_5C }, { 0x0e, 0x0d, 0x00, 0x00 }, 0x05, 0x08, 0x0f, 0x11, 0x5b, 0x5c }, // Power
{ /*0x03*/ L_MPWEAPONS(52), { WEAPON_PHOENIX, WEAPON_CYCLONE, WEAPON_CALLISTONTG, WEAPON_FARSIGHTXR20, WEAPON_5B, WEAPON_5C }, { 0x01, 0x0a, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // FarSight
{ /*0x04*/ L_MPWEAPONS(51), { WEAPON_FALCON2, WEAPON_CMP150, WEAPON_DRAGON, WEAPON_TRANQUILIZER, WEAPON_5B, WEAPON_5C }, { 0x02, 0x00, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Tranquilizer
{ /*0x05*/ L_MPWEAPONS(50), { WEAPON_MAULER, WEAPON_K7AVENGER, WEAPON_REAPER, WEAPON_SUPERDRAGON, WEAPON_5B, WEAPON_5C }, { 0x03, 0x07, 0x0c, 0x0f }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Heavy
{ /*0x06*/ L_MPWEAPONS(49), { WEAPON_FALCON2_SILENCER, WEAPON_GRENADE, WEAPON_CMP150, WEAPON_DY357LX, WEAPON_5B, WEAPON_5C }, { 0x05, 0x09, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Golden Magnum
{ /*0x07*/ L_MPWEAPONS(48), { WEAPON_DEVASTATOR, WEAPON_DEVASTATOR, WEAPON_SUPERDRAGON, WEAPON_SUPERDRAGON, WEAPON_5B, WEAPON_5C }, { 0x03, 0x10, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Explosive
{ /*0x08*/ L_MPWEAPONS(47), { WEAPON_MAGSEC4, WEAPON_CMP150, WEAPON_AR34, WEAPON_DEVASTATOR, WEAPON_5B, WEAPON_5C }, { 0x10, 0x00, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Grenade Launcher
{ /*0x09*/ L_MPWEAPONS(46), { WEAPON_MAULER, WEAPON_CYCLONE, WEAPON_DRAGON, WEAPON_ROCKETLAUNCHER, WEAPON_5B, WEAPON_5C }, { 0x07, 0x00, 0x00, 0x00 }, 0x02, 0x0b, 0x0f, 0x18, 0x5b, 0x5c }, // Rocket Launcher
{ /*0x0a*/ L_MPWEAPONS(45), { WEAPON_MAGSEC4, WEAPON_LAPTOPGUN, WEAPON_K7AVENGER, WEAPON_PROXIMITYMINE, WEAPON_5B, WEAPON_5C }, { 0x0b, 0x0c, 0x13, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Proximity Mine
{ /*0x0b*/ L_MPWEAPONS(44), { WEAPON_COMBATKNIFE, WEAPON_COMBATKNIFE, WEAPON_TIMEDMINE, WEAPON_CROSSBOW, WEAPON_5B, WEAPON_5C }, { 0x11, 0x00, 0x00, 0x00 }, 0x1a, 0x1a, 0x20, 0x20, 0x5b, 0x5c }, // Close Combat
{ /*0x00*/ L_MPWEAPONS(55), { WEAPON_FALCON2, WEAPON_MAGSEC4, WEAPON_PHOENIX, WEAPON_MAULER, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x08, 0x07, 0x00, 0x00 }, 0x02, 0x05, 0x02, 0x08, 0x5b, 0x5c }, // Pistols
{ /*0x01*/ L_MPWEAPONS(54), { WEAPON_FALCON2, WEAPON_CMP150, WEAPON_LAPTOPGUN, WEAPON_AR34, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x0b, 0x00, 0x00, 0x00 }, 0x02, 0x0a, 0x0f, 0x11, 0x5b, 0x5c }, // Automatics
{ /*0x02*/ L_MPWEAPONS(53), { WEAPON_MAGSEC4, WEAPON_DY357MAGNUM, WEAPON_SHOTGUN, WEAPON_RCP120, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x0e, 0x0d, 0x00, 0x00 }, 0x05, 0x08, 0x0f, 0x11, 0x5b, 0x5c }, // Power
{ /*0x03*/ L_MPWEAPONS(52), { WEAPON_PHOENIX, WEAPON_CYCLONE, WEAPON_CALLISTONTG, WEAPON_FARSIGHTXR20, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x01, 0x0a, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // FarSight
{ /*0x04*/ L_MPWEAPONS(51), { WEAPON_FALCON2, WEAPON_CMP150, WEAPON_DRAGON, WEAPON_TRANQUILIZER, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x02, 0x00, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Tranquilizer
{ /*0x05*/ L_MPWEAPONS(50), { WEAPON_MAULER, WEAPON_K7AVENGER, WEAPON_REAPER, WEAPON_SUPERDRAGON, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x03, 0x07, 0x0c, 0x0f }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Heavy
{ /*0x06*/ L_MPWEAPONS(49), { WEAPON_FALCON2_SILENCER, WEAPON_GRENADE, WEAPON_CMP150, WEAPON_DY357LX, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x05, 0x09, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Golden Magnum
{ /*0x07*/ L_MPWEAPONS(48), { WEAPON_DEVASTATOR, WEAPON_DEVASTATOR, WEAPON_SUPERDRAGON, WEAPON_SUPERDRAGON, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x03, 0x10, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Explosive
{ /*0x08*/ L_MPWEAPONS(47), { WEAPON_MAGSEC4, WEAPON_CMP150, WEAPON_AR34, WEAPON_DEVASTATOR, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x10, 0x00, 0x00, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Grenade Launcher
{ /*0x09*/ L_MPWEAPONS(46), { WEAPON_MAULER, WEAPON_CYCLONE, WEAPON_DRAGON, WEAPON_ROCKETLAUNCHER, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x07, 0x00, 0x00, 0x00 }, 0x02, 0x0b, 0x0f, 0x18, 0x5b, 0x5c }, // Rocket Launcher
{ /*0x0a*/ L_MPWEAPONS(45), { WEAPON_MAGSEC4, WEAPON_LAPTOPGUN, WEAPON_K7AVENGER, WEAPON_PROXIMITYMINE, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x0b, 0x0c, 0x13, 0x00 }, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c }, // Proximity Mine
{ /*0x0b*/ L_MPWEAPONS(44), { WEAPON_COMBATKNIFE, WEAPON_COMBATKNIFE, WEAPON_TIMEDMINE, WEAPON_CROSSBOW, WEAPON_MPSHIELD, WEAPON_DISABLED }, { 0x11, 0x00, 0x00, 0x00 }, 0x1a, 0x1a, 0x20, 0x20, 0x5b, 0x5c }, // Close Combat
};
u32 var800874c8 = 0x00000000;
+209 -12
View File
@@ -1378,6 +1378,68 @@
#define MOVEMODE_GRAB 4
#define MOVEMODE_CUTSCENE 5
#define MPBODY_DARK_COMBAT 0x00
#define MPBODY_DARK_TRENCH 0x01
#define MPBODY_DARK_FROCK 0x02
#define MPBODY_DARK_RIPPED 0x03
#define MPBODY_DARK_AF1 0x04
#define MPBODY_DARK_LEATHER 0x05
#define MPBODY_DARK_NEGOTIATOR 0x06
#define MPBODY_DARKWET 0x07
#define MPBODY_DARKAQUALUNG 0x08
#define MPBODY_DARKSNOW 0x09
#define MPBODY_DARKLAB 0x0a
#define MPBODY_THEKING 0x0b
#define MPBODY_ELVIS1 0x0c
#define MPBODY_ELVISWAISTCOAT 0x0d
#define MPBODY_CARRINGTON 0x0e
#define MPBODY_CARREVENINGSUIT 0x0f
#define MPBODY_MRBLONDE 0x10
#define MPBODY_CASSANDRA 0x11
#define MPBODY_TRENT 0x12
#define MPBODY_JONATHAN 0x13
#define MPBODY_CILABTECH 0x14
#define MPBODY_CIFEMTECH 0x15
#define MPBODY_CISOLDIER 0x16
#define MPBODY_DDSHOCK 0x17
#define MPBODY_FEM_GUARD 0x18
#define MPBODY_DD_SECGUARD 0x19
#define MPBODY_DD_GUARD 0x1a
#define MPBODY_DD_SHOCK_INF 0x1b
#define MPBODY_SECRETARY 0x1c
#define MPBODY_OFFICEWORKER 0x1d
#define MPBODY_OFFICEWORKER2 0x1e
#define MPBODY_NEGOTIATOR 0x1f
#define MPBODY_DDSNIPER 0x20
#define MPBODY_G5_GUARD 0x21
#define MPBODY_G5_SWAT_GUARD 0x22
#define MPBODY_CIAGUY 0x23
#define MPBODY_FBIGUY 0x24
#define MPBODY_AREA51GUARD 0x25
#define MPBODY_A51TROOPER 0x26
#define MPBODY_A51AIRMAN 0x27
#define MPBODY_OVERALL 0x28
#define MPBODY_STRIPES 0x29
#define MPBODY_LABTECH 0x2a
#define MPBODY_FEMLABTECH 0x2b
#define MPBODY_DD_LABTECH 0x2c
#define MPBODY_BIOTECH 0x2d
#define MPBODY_ALASKAN_GUARD 0x2e
#define MPBODY_PILOTAF1 0x2f
#define MPBODY_STEWARD 0x30
#define MPBODY_STEWARDESS 0x31
#define MPBODY_STEWARDESS_COAT 0x32
#define MPBODY_PRESIDENT 0x33
#define MPBODY_NSA_LACKEY 0x34
#define MPBODY_PRES_SECURITY 0x35
#define MPBODY_PRESIDENT_CLONE2 0x36
#define MPBODY_PELAGIC_GUARD 0x37
#define MPBODY_MAIAN_SOLDIER 0x38
#define MPBODY_CONNERY 0x39
#define MPBODY_MOORE 0x3a
#define MPBODY_DALTON 0x3b
#define MPBODY_DJBOND 0x3c
#define MPCONFIG_TEMPLE 0x00
#define MPCONFIG_PISTOLS 0x01
#define MPCONFIG_FARSIGHT 0x02
@@ -1423,6 +1485,82 @@
#define MPCONFIG_CHALLENGE29 0x2a
#define MPCONFIG_CHALLENGE30 0x2b
#define MPHEAD_DARK_COMBAT 0x00
#define MPHEAD_DARK_FROCK 0x01
#define MPHEAD_DARKAQUA 0x02
#define MPHEAD_DARK_SNOW 0x03
#define MPHEAD_ELVIS 0x04
#define MPHEAD_ELVIS_GOGS 0x05
#define MPHEAD_CARRINGTON 0x06
#define MPHEAD_MRBLONDE 0x07
#define MPHEAD_CASSANDRA 0x08
#define MPHEAD_TRENT 0x09
#define MPHEAD_JONATHAN 0x0a
#define MPHEAD_VD 0x0b
#define MPHEAD_PRESIDENT 0x0c
#define MPHEAD_DDSHOCK 0x0d
#define MPHEAD_BIOTECH 0x0e
#define MPHEAD_DDSNIPER 0x0f
#define MPHEAD_A51FACEPLATE 0x10
#define MPHEAD_SECRETARY 0x11
#define MPHEAD_FEM_GUARD 0x12
#define MPHEAD_FEM_GUARD2 0x13
#define MPHEAD_MAIAN_S 0x14
#define MPHEAD_JON 0x15
#define MPHEAD_BEAU1 0x16
#define MPHEAD_ROSS 0x17
#define MPHEAD_MARK2 0x18
#define MPHEAD_CHRIST 0x19
#define MPHEAD_RUSS 0x1a
#define MPHEAD_DARLING 0x1b
#define MPHEAD_BRIAN 0x1c
#define MPHEAD_JAMIE 0x1d
#define MPHEAD_DUNCAN2 0x1e
#define MPHEAD_KEITH 0x1f
#define MPHEAD_STEVEM 0x20
#define MPHEAD_GRANT 0x21
#define MPHEAD_PENNY 0x22
#define MPHEAD_DAVEC 0x23
#define MPHEAD_JONES 0x24
#define MPHEAD_GRAHAM 0x25
#define MPHEAD_ROBERT 0x26
#define MPHEAD_NEIL2 0x27
#define MPHEAD_SHAUN 0x28
#define MPHEAD_ROBIN 0x29
#define MPHEAD_COOK 0x2a
#define MPHEAD_PRYCE 0x2b
#define MPHEAD_SILKE 0x2c
#define MPHEAD_SMITH 0x2d
#define MPHEAD_GARETH 0x2e
#define MPHEAD_MURCHIE 0x2f
#define MPHEAD_WONG 0x30
#define MPHEAD_CARTER 0x31
#define MPHEAD_TINTIN 0x32
#define MPHEAD_MUNTON 0x33
#define MPHEAD_STAMPER 0x34
#define MPHEAD_PHELPS 0x35
#define MPHEAD_ALEX 0x36
#define MPHEAD_JULIANNE 0x37
#define MPHEAD_LAURA 0x38
#define MPHEAD_EDMCG 0x39
#define MPHEAD_ANKA 0x3a
#define MPHEAD_LESLIE_S 0x3b
#define MPHEAD_MATT_C 0x3c
#define MPHEAD_PEER_S 0x3d
#define MPHEAD_EILEEN_T 0x3e
#define MPHEAD_ANDY_R 0x3f
#define MPHEAD_BEN_R 0x40
#define MPHEAD_STEVE_K 0x41
#define MPHEAD_SANCHEZ 0x42
#define MPHEAD_TIM 0x43
#define MPHEAD_KEN 0x44
#define MPHEAD_EILEEN_H 0x45
#define MPHEAD_SCOTT_H 0x46
#define MPHEAD_JOEL 0x47
#define MPHEAD_GRIFFEY 0x48
#define MPHEAD_MOTO 0x49
#define MPHEAD_WINNER 0x4a
#define MPLOCKTYPE_NONE 0
#define MPLOCKTYPE_LASTWINNER 1
#define MPLOCKTYPE_LASTLOSER 2
@@ -1430,6 +1568,7 @@
#define MPLOCKTYPE_PLAYER 4
#define MPLOCKTYPE_CHALLENGE 5
#define MPOPTION_ONEHITKILLS 0x00000001
#define MPOPTION_TEAMSENABLED 0x00000002
#define MPOPTION_NORADAR 0x00000004
#define MPOPTION_NOAUTOAIM 0x00000008
@@ -1437,18 +1576,19 @@
#define MPOPTION_NOPICKUPHIGHLIGHT 0x00000020
#define MPOPTION_SLOWMOTION_ON 0x00000040
#define MPOPTION_SLOWMOTION_SMART 0x00000080
#define MPOPTION_NOPICKUPHIGHLIGHT 0x00000020
#define MPOPTION_FASTMOVEMENT 0x00000100
#define MPOPTION_DISPLAYTEAM 0x00000200
#define MPOPTION_KILLSSCORE 0x00000400
#define MPOPTION_HIGHLIGHTBRIEFCASE 0x00000800
#define MPOPTION_SHOWONRADAR1 0x00001000
#define MPOPTION_SHOWONRADAR2 0x00002000
#define MPOPTION_HILLONRADAR 0x00004000
#define MPOPTION_MOBILEHILL 0x00008000
#define MPOPTION_HIGHLIGHTTERMINAL 0x00020000
#define MPOPTION_SHOWONRADAR3 0x00040000
#define MPOPTION_HIGHLIGHTTARGET 0x00080000
#define MPOPTION_SHOWONRADAR4 0x00100000
#define MPOPTION_HTB_HIGHLIGHTBRIEFCASE 0x00000800
#define MPOPTION_HTB_SHOWONRADAR 0x00001000
#define MPOPTION_CTC_SHOWONRADAR 0x00002000
#define MPOPTION_KOH_HILLONRADAR 0x00004000
#define MPOPTION_KOH_MOBILEHILL 0x00008000
#define MPOPTION_00010000 0x00010000
#define MPOPTION_HTM_HIGHLIGHTTERMINAL 0x00020000
#define MPOPTION_HTM_SHOWONRADAR 0x00040000
#define MPOPTION_PAC_HIGHLIGHTTARGET 0x00080000
#define MPOPTION_PAC_SHOWONRADAR 0x00100000
#define MPPLAYERTITLE_BEGINNER 0
#define MPPLAYERTITLE_TRAINEE 1
@@ -1486,6 +1626,63 @@
#define MPSCENARIO_KINGOFTHEHILL 4
#define MPSCENARIO_CAPTURETHECASE 5
#define MPSIMDIFF_MEAT 0
#define MPSIMDIFF_EASY 1
#define MPSIMDIFF_NORMAL 2
#define MPSIMDIFF_HARD 3
#define MPSIMDIFF_PERFECT 4
#define MPSIMDIFF_DARK 5
#define MPSIMDIFF_OFF 6
#define MPTEAM_0 0
#define MPTEAM_1 1
#define MPTEAM_2 2
#define MPTEAM_3 3
#define MPTEAM_4 4
#define MPTEAM_5 5
#define MPTEAM_6 6
#define MPTEAM_7 7
#define MPWEAPON_NONE 0x00
#define MPWEAPON_FALCON2 0x01
#define MPWEAPON_FALCON2_SILENCER 0x02
#define MPWEAPON_FALCON2_SCOPE 0x03
#define MPWEAPON_MAGSEC4 0x04
#define MPWEAPON_MAULER 0x05
#define MPWEAPON_PHOENIX 0x06
#define MPWEAPON_DY357MAGNUM 0x07
#define MPWEAPON_DY357LX 0x08
#define MPWEAPON_CMP150 0x09
#define MPWEAPON_CYCLONE 0x0a
#define MPWEAPON_CALLISTONTG 0x0b
#define MPWEAPON_RCP120 0x0c
#define MPWEAPON_LAPTOPGUN 0x0d
#define MPWEAPON_DRAGON 0x0e
#define MPWEAPON_K7AVENGER 0x0f
#define MPWEAPON_AR34 0x10
#define MPWEAPON_SUPERDRAGON 0x11
#define MPWEAPON_SHOTGUN 0x12
#define MPWEAPON_REAPER 0x13
#define MPWEAPON_SNIPERRIFLE 0x14
#define MPWEAPON_FARSIGHTXR20 0x15
#define MPWEAPON_DEVASTATOR 0x16
#define MPWEAPON_ROCKETLAUNCHER 0x17
#define MPWEAPON_SLAYER 0x18
#define MPWEAPON_COMBATKNIFE 0x19
#define MPWEAPON_CROSSBOW 0x1a
#define MPWEAPON_TRANQUILIZER 0x1b
#define MPWEAPON_GRENADE 0x1c
#define MPWEAPON_NBOMB 0x1d
#define MPWEAPON_TIMEDMINE 0x1e
#define MPWEAPON_PROXIMITYMINE 0x1f
#define MPWEAPON_REMOTEMINE 0x20
#define MPWEAPON_LASER 0x21
#define MPWEAPON_XRAYSCANNER 0x22
#define MPWEAPON_CLOAKINGDEVICE 0x23
#define MPWEAPON_COMBATBOOST 0x24
#define MPWEAPON_SHIELD 0x25
#define MPWEAPON_DISABLED 0x26
#define MUSIC_NONE 0x00
#define MUSIC_TITLE2 0x01
#define MUSIC_EXTRACTION 0x02
@@ -2407,8 +2604,8 @@
#define WEAPON_ROCKET2 0x58
#define WEAPON_59 0x59
#define WEAPON_5A 0x5a
#define WEAPON_5B 0x5b
#define WEAPON_5C 0x5c
#define WEAPON_MPSHIELD 0x5b
#define WEAPON_DISABLED 0x5c
#define WEAPON_SUICIDEPILL 0x5d
#define WEAPONFLAG_00000010 0x00000010
+1 -1
View File
@@ -360,7 +360,7 @@ extern struct mpscenariooverview g_MpScenarioOverviews[];
extern u32 var8008716c;
extern u32 var800871fc;
extern u32 var80087264;
extern u16 mpweaponstable[];
extern struct mpweapon mpweaponstable[];
extern struct mpweaponset g_MpWeaponSets[12];
extern u32 var800874c8;
extern u32 var800874cc;
+31
View File
@@ -5611,4 +5611,35 @@ struct menuthing {
s8 unk0a;
};
struct mpconfigsim {
u16 mphead;
u8 mpbody;
u8 team;
u8 difficulties[4]; // per player count
};
struct mpconfig {
/*0x00*/ char name[12];
/*0x0c*/ u32 options;
/*0x10*/ u8 scenario;
/*0x11*/ u8 stage;
/*0x12*/ u8 timelimit; // minus 1, 60 = no limit
/*0x13*/ u8 scorelimit; // minus 1, 100 = no limit
/*0x14*/ u16 teamscorelimit; // minus 1, 400 = no limit
/*0x16*/ u16 unk16;
/*0x18*/ u8 weapons[16];
struct mpconfigsim simulants[8];
};
struct mpweapon {
u8 weaponnum;
u8 unk01;
u8 unk02;
u8 unk03;
u16 unk04;
u16 model;
u8 unk08;
u8 unk09;
};
#endif
File diff suppressed because it is too large. Load diff
+4
View File
@@ -28,6 +28,7 @@ def main():
write_binary(fd, 0x39850, get_gamedata())
write_binary(fd, 0x4e850, get_inflate())
write_binary(fd, 0x4fc40, get_gamezips())
write_binary(fd, 0x7d0a40, get_mpconfigs())
write_binary(fd, 0x7f2388, get_fonts())
write_binary(fd, 0x80a250, get_sfxctl())
write_binary(fd, 0x839dd0, get_sfxtbl())
@@ -81,6 +82,9 @@ def get_gamezips():
def get_unknown():
return getfrombaserom(0x157120, 0x69b268)
def get_mpconfigs():
return getfilecontents(bdir() + '/ucode/mpconfigs.bin')
def get_fonts():
return getfrombaserom(0x7f2388, 0x17ec8)
+15
View File
@@ -22,6 +22,7 @@ class Extractor:
self.extract_gamedata()
self.extract_textures()
self.extract_ucodes()
self.extract_mpconfigs()
#
# Audio
@@ -128,6 +129,14 @@ class Extractor:
nullpos = self.rom[address:].index(0)
return str(self.rom[address:address + nullpos], 'utf-8')
#
# MpConfigs
#
def extract_mpconfigs(self):
addr = self.val('mpconfigs')
self.write('ucode/mpconfigs.bin', self.rom[addr:addr+0x68*44])
#
# Fonts
#
@@ -225,6 +234,7 @@ class Extractor:
'game': 0x4fc40,
'files': 0x28080,
'gamedata': 0x39850,
'mpconfigs': 0x7d0a40,
'sfxctl': 0x80a250,
'textures': 0x01d65f40,
},
@@ -232,6 +242,7 @@ class Extractor:
'game': 0x4fc40,
'files': 0x28080,
'gamedata': 0x39850,
'mpconfigs': 0x7d0a40,
'sfxctl': 0x80a250,
'textures': 0x01d65f40,
},
@@ -239,6 +250,7 @@ class Extractor:
'game': 0x43c40,
'files': 0x29160,
'gamedata': 0x30850,
'mpconfigs': 0x785130,
'sfxctl': 0x7be940,
'textures': 0x01d12fe0,
},
@@ -246,6 +258,7 @@ class Extractor:
'game': 0x4fc40,
'files': 0x28910,
'gamedata': 0x39850,
'mpconfigs': 0x7bc240,
'sfxctl': 0x7f87e0,
'textures': 0x01d5ca20,
},
@@ -253,6 +266,7 @@ class Extractor:
'game': 0x4fc40,
'files': 0x29b90,
'gamedata': 0x39850,
'mpconfigs': 0x7bc240,
'sfxctl': 0x7f87e0,
'textures': 0x01d5bb50,
},
@@ -260,6 +274,7 @@ class Extractor:
'game': 0x4fc40,
'files': 0x28800,
'gamedata': 0x39850,
'mpconfigs': 0x7c00d0,
'sfxctl': 0x7fc670,
'textures': 0x01d61f90,
},