From 6082f27b0d51c01e462bfb53d3ee699f6e99067f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Wed, 24 Feb 2021 17:33:48 +1000 Subject: [PATCH] Decompile func0f198e38 --- src/game/game_197600.c | 216 +++++++++++++++++++---------------------- src/include/types.h | 5 +- 2 files changed, 104 insertions(+), 117 deletions(-) diff --git a/src/game/game_197600.c b/src/game/game_197600.c index 6ee5b5642..4d0f323fc 100644 --- a/src/game/game_197600.c +++ b/src/game/game_197600.c @@ -29,100 +29,100 @@ f32 var80087e50[][3] = { }; struct aibotweaponpreference g_AibotWeaponPreferences[] = { - /*0x00*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0 }, // WEAPON_NONE - /*0x01*/ { 13, 13, 13, 13, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, // WEAPON_UNARMED - /*0x02*/ { 56, 60, 84, 88, 1, 1, 0, 4, 0, 30, 0, 10, 0, 0x2000 }, // WEAPON_FALCON2 - /*0x03*/ { 52, 60, 80, 88, 1, 1, 0, 4, 0, 30, 0, 10, 0, 0x2000 }, // WEAPON_FALCON2_SILENCER - /*0x04*/ { 60, 60, 88, 88, 1, 1, 0, 4, 0, 30, 0, 10, 0, 0x2000 }, // WEAPON_FALCON2_SCOPE - /*0x05*/ { 76, 88, 104, 120, 1, 1, 0, 4, 8, 30, 30, 10, 10, 0x2000 }, // WEAPON_MAGSEC4 - /*0x06*/ { 64, 88, 92, 120, 1, 1, 0, 4, 8, 30, 30, 10, 10, 0x2000 }, // WEAPON_MAULER - /*0x07*/ { 72, 76, 100, 120, 1, 1, 0, 4, 8, 30, 30, 10, 10, 0x4000 }, // WEAPON_PHOENIX - /*0x08*/ { 68, 76, 96, 120, 1, 1, 0, 4, 0, 30, 0, 8, 0, 0x6000 }, // WEAPON_DY357MAGNUM - /*0x09*/ { 180, 188, 184, 188, 1, 1, 0, 4, 0, 20, 0, 6, 0, 0x6000 }, // WEAPON_DY357LX - /*0x0a*/ { 116, 128, 136, 152, 1, 1, 0, 8, 8, 100, 100, 30, 30, 0x4000 }, // WEAPON_CMP150 - /*0x0b*/ { 120, 128, 132, 140, 1, 1, 0, 8, 8, 150, 150, 50, 50, 0x4000 }, // WEAPON_CYCLONE - /*0x0c*/ { 152, 176, 0, 0, 1, 1, 0, 8, 8, 100, 70, 25, 15, 0x4000 }, // WEAPON_CALLISTONTG - /*0x0d*/ { 172, 188, 0, 0, 1, 0, 0, 8, 8, 300, 0, 40, 0, 0x4000 }, // WEAPON_RCP120 - /*0x0e*/ { 128, 140, 0, 0, 1, 1, 0, 8, 8, 100, 0, 30, 0, 0x6000 }, // WEAPON_LAPTOPGUN - /*0x0f*/ { 124, 148, 0, 0, 1, 1, 0, 8, 8, 90, 0, 30, 0, 0x2000 }, // WEAPON_DRAGON - /*0x10*/ { 156, 180, 0, 0, 1, 0, 0, 8, 8, 150, 0, 40, 0, 0x4000 }, // WEAPON_K7AVENGER - /*0x11*/ { 148, 176, 0, 0, 1, 0, 0, 8, 8, 120, 0, 40, 0, 0x4000 }, // WEAPON_AR34 - /*0x12*/ { 164, 188, 0, 0, 1, 1, 0, 8, 12, 120, 20, 30, 6, 0x2000 }, // WEAPON_SUPERDRAGON - /*0x13*/ { 140, 156, 0, 0, 1, 1, 0, 4, 4, 18, 18, 8, 8, 0xd000 }, // WEAPON_SHOTGUN - /*0x14*/ { 144, 176, 0, 0, 1, 1, 0, 8, 0, 400, 0, 80, 0, 0x6000 }, // WEAPON_REAPER - /*0x15*/ { 28, 40, 0, 0, 1, 0, 0, 8, 8, 30, 30, 10, 10, 0x4000 }, // WEAPON_SNIPERRIFLE - /*0x16*/ { 188, 188, 0, 0, 1, 0, 0, 13, 4, 16, 0, 4, 0, 0x4000 }, // WEAPON_FARSIGHTXR20 - /*0x17*/ { 176, 188, 0, 0, 1, 1, 0, 12, 12, 20, 20, 4, 4, 0x4000 }, // WEAPON_DEVASTATOR - /*0x18*/ { 160, 188, 0, 0, 1, 1, 0, 12, 12, 2, 2, 1, 1, 0x4000 }, // WEAPON_ROCKETLAUNCHER - /*0x19*/ { 168, 188, 0, 0, 1, 1, 0, 12, 12, 2, 2, 1, 1, 0x6000 }, // WEAPON_SLAYER - /*0x1a*/ { 20, 40, 24, 40, 1, 1, 0, 0, 8, 0, 5, 0, 1, 0x2000 }, // WEAPON_COMBATKNIFE - /*0x1b*/ { 108, 176, 0, 0, 1, 1, 0, 8, 8, 15, 15, 5, 5, 0x9000 }, // WEAPON_CROSSBOW - /*0x1c*/ { 48, 188, 0, 0, 1, 1, 0, 8, 0, 20, 24, 6, 8, 0x2000 }, // WEAPON_TRANQUILIZER - /*0x1d*/ { 112, 112, 0, 0, 1, 1, 0, 8, 0, 0, 0, 0, 0, 0x2000 }, // WEAPON_LASER - /*0x1e*/ { 36, 172, 0, 0, 1, 1, 1, 13, 12, 6, 6, 2, 2, 0x2000 }, // WEAPON_GRENADE - /*0x1f*/ { 32, 188, 0, 0, 1, 1, 1, 13, 12, 3, 3, 1, 1, 0x2000 }, // WEAPON_NBOMB - /*0x20*/ { 12, 12, 0, 0, 0, 0, 1, 12, 8, 5, 5, 1, 1, 0x2000 }, // WEAPON_TIMEDMINE - /*0x21*/ { 40, 176, 0, 0, 0, 0, 1, 12, 8, 5, 5, 1, 1, 0x2000 }, // WEAPON_PROXIMITYMINE - /*0x22*/ { 44, 156, 0, 0, 1, 0, 0, 8, 8, 5, 5, 2, 2, 0x2000 }, // WEAPON_REMOTEMINE - /*0x23*/ { 8, 8, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_COMBATBOOST - /*0x24*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_PP9I - /*0x25*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_CC13 - /*0x26*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KL01313 - /*0x27*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KF7SPECIAL - /*0x28*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_ZZT - /*0x29*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_DMC - /*0x2a*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_AR53 - /*0x2b*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_RCP45 - /*0x2c*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_PSYCHOSISGUN - /*0x2d*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_NIGHTVISION - /*0x2e*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_EYESPY - /*0x2f*/ { 4, 4, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_XRAYSCANNER - /*0x30*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_IRSCANNER - /*0x31*/ { 218, 218, 0, 0, 0, 0, 0, 8, 8, 1200, 0, 0, 0, 0x2000 }, // WEAPON_CLOAKINGDEVICE - /*0x32*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_HORIZONSCANNER - /*0x33*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_TESTER - /*0x34*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_ROCKETLAUNCHER_34 - /*0x35*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_ECMMINE - /*0x36*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_DATAUPLINK - /*0x37*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_RTRACKER - /*0x38*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_PRESIDENTSCANNER - /*0x39*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_DOORDECODER - /*0x3a*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_AUTOSURGEON - /*0x3b*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_EXPLOSIVES - /*0x3c*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_SKEDARBOMB - /*0x3d*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_COMMSRIDER - /*0x3e*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_TRACERBUG - /*0x3f*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_TARGETAMPLIFIER - /*0x40*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_DISGUISE40 - /*0x41*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_DISGUISE41 - /*0x42*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_FLIGHTPLANS - /*0x43*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_RESEARCHTAPE - /*0x44*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_BACKUPDISK - /*0x45*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD45 - /*0x46*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD46 - /*0x47*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD47 - /*0x48*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD48 - /*0x49*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD49 - /*0x4a*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD4A - /*0x4b*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD4B - /*0x4c*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD4C - /*0x4d*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_SUITCASE - /*0x4e*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_BRIEFCASE - /*0x4f*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_SHIELD - /*0x50*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_NECKLACE - /*0x51*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_HAMMER - /*0x52*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_52 - /*0x53*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_ROCKET - /*0x54*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_HOMINGROCKET - /*0x55*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_GRENADEROUND - /*0x56*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_BOLT - /*0x57*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_BRIEFCASE2 - /*0x58*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_ROCKET2 - /*0x59*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_59 - /*0x5a*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_5A - /*0x5b*/ { 220, 220, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_MPSHIELD - /*0x5c*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_DISABLED - /*0x5d*/ { 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0x2000 }, // WEAPON_SUICIDEPILL + /*0x00*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0 }, // WEAPON_NONE + /*0x01*/ { 13, 13, 13, 13, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, // WEAPON_UNARMED + /*0x02*/ { 56, 60, 84, 88, 1, 1, 1, 0, 30, 0, 10, 0, 0x2000 }, // WEAPON_FALCON2 + /*0x03*/ { 52, 60, 80, 88, 1, 1, 1, 0, 30, 0, 10, 0, 0x2000 }, // WEAPON_FALCON2_SILENCER + /*0x04*/ { 60, 60, 88, 88, 1, 1, 1, 0, 30, 0, 10, 0, 0x2000 }, // WEAPON_FALCON2_SCOPE + /*0x05*/ { 76, 88, 104, 120, 1, 1, 1, 2, 30, 30, 10, 10, 0x2000 }, // WEAPON_MAGSEC4 + /*0x06*/ { 64, 88, 92, 120, 1, 1, 1, 2, 30, 30, 10, 10, 0x2000 }, // WEAPON_MAULER + /*0x07*/ { 72, 76, 100, 120, 1, 1, 1, 2, 30, 30, 10, 10, 0x4000 }, // WEAPON_PHOENIX + /*0x08*/ { 68, 76, 96, 120, 1, 1, 1, 0, 30, 0, 8, 0, 0x6000 }, // WEAPON_DY357MAGNUM + /*0x09*/ { 180, 188, 184, 188, 1, 1, 1, 0, 20, 0, 6, 0, 0x6000 }, // WEAPON_DY357LX + /*0x0a*/ { 116, 128, 136, 152, 1, 1, 2, 2, 100, 100, 30, 30, 0x4000 }, // WEAPON_CMP150 + /*0x0b*/ { 120, 128, 132, 140, 1, 1, 2, 2, 150, 150, 50, 50, 0x4000 }, // WEAPON_CYCLONE + /*0x0c*/ { 152, 176, 0, 0, 1, 1, 2, 2, 100, 70, 25, 15, 0x4000 }, // WEAPON_CALLISTONTG + /*0x0d*/ { 172, 188, 0, 0, 1, 0, 2, 2, 300, 0, 40, 0, 0x4000 }, // WEAPON_RCP120 + /*0x0e*/ { 128, 140, 0, 0, 1, 1, 2, 2, 100, 0, 30, 0, 0x6000 }, // WEAPON_LAPTOPGUN + /*0x0f*/ { 124, 148, 0, 0, 1, 1, 2, 2, 90, 0, 30, 0, 0x2000 }, // WEAPON_DRAGON + /*0x10*/ { 156, 180, 0, 0, 1, 0, 2, 2, 150, 0, 40, 0, 0x4000 }, // WEAPON_K7AVENGER + /*0x11*/ { 148, 176, 0, 0, 1, 0, 2, 2, 120, 0, 40, 0, 0x4000 }, // WEAPON_AR34 + /*0x12*/ { 164, 188, 0, 0, 1, 1, 2, 3, 120, 20, 30, 6, 0x2000 }, // WEAPON_SUPERDRAGON + /*0x13*/ { 140, 156, 0, 0, 1, 1, 1, 1, 18, 18, 8, 8, 0xd000 }, // WEAPON_SHOTGUN + /*0x14*/ { 144, 176, 0, 0, 1, 1, 2, 0, 400, 0, 80, 0, 0x6000 }, // WEAPON_REAPER + /*0x15*/ { 28, 40, 0, 0, 1, 0, 2, 2, 30, 30, 10, 10, 0x4000 }, // WEAPON_SNIPERRIFLE + /*0x16*/ { 188, 188, 0, 0, 1, 0, 3, 5, 16, 0, 4, 0, 0x4000 }, // WEAPON_FARSIGHTXR20 + /*0x17*/ { 176, 188, 0, 0, 1, 1, 3, 3, 20, 20, 4, 4, 0x4000 }, // WEAPON_DEVASTATOR + /*0x18*/ { 160, 188, 0, 0, 1, 1, 3, 3, 2, 2, 1, 1, 0x4000 }, // WEAPON_ROCKETLAUNCHER + /*0x19*/ { 168, 188, 0, 0, 1, 1, 3, 3, 2, 2, 1, 1, 0x6000 }, // WEAPON_SLAYER + /*0x1a*/ { 20, 40, 24, 40, 1, 1, 0, 2, 0, 5, 0, 1, 0x2000 }, // WEAPON_COMBATKNIFE + /*0x1b*/ { 108, 176, 0, 0, 1, 1, 2, 2, 15, 15, 5, 5, 0x9000 }, // WEAPON_CROSSBOW + /*0x1c*/ { 48, 188, 0, 0, 1, 1, 2, 0, 20, 24, 6, 8, 0x2000 }, // WEAPON_TRANQUILIZER + /*0x1d*/ { 112, 112, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0x2000 }, // WEAPON_LASER + /*0x1e*/ { 36, 172, 0, 0, 1, 1, 7, 7, 6, 6, 2, 2, 0x2000 }, // WEAPON_GRENADE + /*0x1f*/ { 32, 188, 0, 0, 1, 1, 7, 7, 3, 3, 1, 1, 0x2000 }, // WEAPON_NBOMB + /*0x20*/ { 12, 12, 0, 0, 0, 0, 7, 2, 5, 5, 1, 1, 0x2000 }, // WEAPON_TIMEDMINE + /*0x21*/ { 40, 176, 0, 0, 0, 0, 7, 2, 5, 5, 1, 1, 0x2000 }, // WEAPON_PROXIMITYMINE + /*0x22*/ { 44, 156, 0, 0, 1, 0, 2, 2, 5, 5, 2, 2, 0x2000 }, // WEAPON_REMOTEMINE + /*0x23*/ { 8, 8, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_COMBATBOOST + /*0x24*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_PP9I + /*0x25*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_CC13 + /*0x26*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KL01313 + /*0x27*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KF7SPECIAL + /*0x28*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_ZZT + /*0x29*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_DMC + /*0x2a*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_AR53 + /*0x2b*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_RCP45 + /*0x2c*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_PSYCHOSISGUN + /*0x2d*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_NIGHTVISION + /*0x2e*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_EYESPY + /*0x2f*/ { 4, 4, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_XRAYSCANNER + /*0x30*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_IRSCANNER + /*0x31*/ { 218, 218, 0, 0, 0, 0, 2, 2, 1200, 0, 0, 0, 0x2000 }, // WEAPON_CLOAKINGDEVICE + /*0x32*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_HORIZONSCANNER + /*0x33*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_TESTER + /*0x34*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_ROCKETLAUNCHER_34 + /*0x35*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_ECMMINE + /*0x36*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_DATAUPLINK + /*0x37*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_RTRACKER + /*0x38*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_PRESIDENTSCANNER + /*0x39*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_DOORDECODER + /*0x3a*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_AUTOSURGEON + /*0x3b*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_EXPLOSIVES + /*0x3c*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_SKEDARBOMB + /*0x3d*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_COMMSRIDER + /*0x3e*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_TRACERBUG + /*0x3f*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_TARGETAMPLIFIER + /*0x40*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_DISGUISE40 + /*0x41*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_DISGUISE41 + /*0x42*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_FLIGHTPLANS + /*0x43*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_RESEARCHTAPE + /*0x44*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_BACKUPDISK + /*0x45*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD45 + /*0x46*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD46 + /*0x47*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD47 + /*0x48*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD48 + /*0x49*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD49 + /*0x4a*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD4A + /*0x4b*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD4B + /*0x4c*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_KEYCARD4C + /*0x4d*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_SUITCASE + /*0x4e*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_BRIEFCASE + /*0x4f*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_SHIELD + /*0x50*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_NECKLACE + /*0x51*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_HAMMER + /*0x52*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_52 + /*0x53*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_ROCKET + /*0x54*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_HOMINGROCKET + /*0x55*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_GRENADEROUND + /*0x56*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_BOLT + /*0x57*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_BRIEFCASE2 + /*0x58*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_ROCKET2 + /*0x59*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_59 + /*0x5a*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_5A + /*0x5b*/ { 220, 220, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_MPSHIELD + /*0x5c*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_DISABLED + /*0x5d*/ { 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0x2000 }, // WEAPON_SUICIDEPILL }; void func0f197600(struct chrdata *chr) @@ -1042,26 +1042,14 @@ glabel func0f198df8 /* f198e34: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f198e38 -/* f198e38: 10a00008 */ beqz $a1,.L0f198e5c -/* f198e3c: 0004c900 */ sll $t9,$a0,0x4 -/* f198e40: 00047100 */ sll $t6,$a0,0x4 -/* f198e44: 3c028008 */ lui $v0,%hi(g_AibotWeaponPreferences+0x4) -/* f198e48: 004e1021 */ addu $v0,$v0,$t6 -/* f198e4c: 94427eb4 */ lhu $v0,%lo(g_AibotWeaponPreferences+0x4)($v0) -/* f198e50: 00027d80 */ sll $t7,$v0,0x16 -/* f198e54: 03e00008 */ jr $ra -/* f198e58: 000f1702 */ srl $v0,$t7,0x1c -.L0f198e5c: -/* f198e5c: 3c028008 */ lui $v0,%hi(g_AibotWeaponPreferences+0x4) -/* f198e60: 00591021 */ addu $v0,$v0,$t9 -/* f198e64: 94427eb4 */ lhu $v0,%lo(g_AibotWeaponPreferences+0x4)($v0) -/* f198e68: 00024480 */ sll $t0,$v0,0x12 -/* f198e6c: 00081702 */ srl $v0,$t0,0x1c -/* f198e70: 03e00008 */ jr $ra -/* f198e74: 00000000 */ nop -); +s32 func0f198e38(s32 weaponnum, s32 funcnum) +{ + if (funcnum != FUNC_PRIMARY) { + return g_AibotWeaponPreferences[weaponnum].unk04_06; + } + + return g_AibotWeaponPreferences[weaponnum].unk04_02; +} GLOBAL_ASM( glabel func0f198e78 diff --git a/src/include/types.h b/src/include/types.h index 5b06ae4c4..66c770d05 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6964,9 +6964,8 @@ struct aibotweaponpreference { u8 unk03; u16 unk04_00 : 1; u16 unk04_01 : 1; - u16 unk04_02 : 2; - u16 unk04_04 : 4; - u16 unk04_08 : 4; + u16 unk04_02 : 4; + u16 unk04_06 : 4; u16 unk06; u16 unk08; u16 unk0a;