From f8ef6939b0b9e11741719aebb0aeee3072cfec69 Mon Sep 17 00:00:00 2001 From: fgsfds Date: Fri, 8 Sep 2023 22:28:19 +0200 Subject: [PATCH] port: roll back to old variant of #76 --- port/src/preprocess.c | 7 +++++++ src/game/mplayer/mplayer.c | 26 +++++++++++--------------- src/include/constants.h | 20 +++++++++++--------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/port/src/preprocess.c b/port/src/preprocess.c index 010de436c..92711557b 100644 --- a/port/src/preprocess.c +++ b/port/src/preprocess.c @@ -1034,6 +1034,13 @@ void preprocessMpConfigs(u8 *data, u32 size) // TODO: are these required or are they always 0? PD_SWAP_VAL(cfg->setup.fileguid.deviceserial); PD_SWAP_VAL(cfg->setup.fileguid.fileid); + // convert MPWEAPON_ to take classic weapons into account + for (s32 j = 0; j < ARRAYCOUNT(cfg->setup.weapons); ++j) { + // old MPWEAPON_SHIELD (0x24/0x25) and above are affected + if (cfg->setup.weapons[j] >= MPWEAPON_PP9I) { + cfg->setup.weapons[j] += (MPWEAPON_SHIELD - MPWEAPON_PP9I); + } + } } } diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index 83cf94d61..9411147b8 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -95,18 +95,18 @@ struct mpweapon g_MpWeapons[NUM_MPWEAPONS] = { /*0x22*/ { WEAPON_XRAYSCANNER, 0, 0, 0, 0, 1, MPFEATURE_WEAPON_XRAYSCANNER, MODEL_CHRNIGHTSIGHT, 256 }, /*0x23*/ { WEAPON_CLOAKINGDEVICE, 0, 0, 0, 0, 1, MPFEATURE_WEAPON_CLOAKINGDEVICE, MODEL_CHRCLOAKER, 256 }, /*0x24*/ { WEAPON_COMBATBOOST, 0, 0, 0, 0, 1, MPFEATURE_WEAPON_COMBATBOOST, MODEL_CHRSPEEDPILL, 256 }, - /*0x25*/ { WEAPON_MPSHIELD, 0, 0, 0, 0, 1, MPFEATURE_WEAPON_SHIELD, MODEL_CHRSHIELD, 256 }, - /*0x26*/ { WEAPON_DISABLED }, -#ifndef PLATFORM_N64 // add all classic weapons to multiplayer - /*0x27*/ { WEAPON_PP9I, AMMOTYPE_PISTOL, 80, 0, 0, 1, 0, MODEL_CHRWPPK, 256 }, - /*0x28*/ { WEAPON_CC13, AMMOTYPE_PISTOL, 80, 0, 0, 1, 0, MODEL_CHRTT33, 256 }, - /*0x29*/ { WEAPON_KL01313, AMMOTYPE_SMG, 100, 0, 0, 1, 0, MODEL_CHRSKORPION, 256 }, - /*0x2a*/ { WEAPON_KF7SPECIAL, AMMOTYPE_RIFLE, 100, 0, 0, 1, 0, MODEL_CHRKALASH, 256 }, - /*0x2b*/ { WEAPON_ZZT, AMMOTYPE_SMG, 100, 0, 0, 1, 0, MODEL_CHRUZI, 256 }, - /*0x2c*/ { WEAPON_DMC, AMMOTYPE_SMG, 100, 0, 0, 1, 0, MODEL_CHRMP5K, 256 }, - /*0x2d*/ { WEAPON_AR53, AMMOTYPE_RIFLE, 100, 0, 0, 1, 0, MODEL_CHRM16, 256 }, - /*0x2e*/ { WEAPON_RCP45, AMMOTYPE_SMG, 150, 0, 0, 1, 0, MODEL_CHRFNP90, 256 }, +#ifndef PLATFORM_N64 + /*0x25*/ { WEAPON_PP9I, AMMOTYPE_PISTOL, 80, 0, 0, 1, 0, MODEL_CHRWPPK, 256 }, + /*0x26*/ { WEAPON_CC13, AMMOTYPE_PISTOL, 80, 0, 0, 1, 0, MODEL_CHRTT33, 256 }, + /*0x27*/ { WEAPON_KL01313, AMMOTYPE_SMG, 100, 0, 0, 1, 0, MODEL_CHRSKORPION, 256 }, + /*0x28*/ { WEAPON_KF7SPECIAL, AMMOTYPE_RIFLE, 100, 0, 0, 1, 0, MODEL_CHRKALASH, 256 }, + /*0x29*/ { WEAPON_ZZT, AMMOTYPE_SMG, 100, 0, 0, 1, 0, MODEL_CHRUZI, 256 }, + /*0x2a*/ { WEAPON_DMC, AMMOTYPE_SMG, 100, 0, 0, 1, 0, MODEL_CHRMP5K, 256 }, + /*0x2b*/ { WEAPON_AR53, AMMOTYPE_RIFLE, 150, 0, 0, 1, 0, MODEL_CHRM16, 256 }, + /*0x2c*/ { WEAPON_RCP45, AMMOTYPE_SMG, 150, 0, 0, 1, 0, MODEL_CHRFNP90, 256 }, #endif + /*0x2d*/ { WEAPON_MPSHIELD, 0, 0, 0, 0, 1, MPFEATURE_WEAPON_SHIELD, MODEL_CHRSHIELD, 256 }, + /*0x2e*/ { WEAPON_DISABLED }, // 0x25 on N64 }; /** @@ -1154,11 +1154,7 @@ void mpApplyWeaponSet(void) mpSetWeaponSlot(i, random() % numoptions + 1); } -#ifndef PLATFORM_N64 // take into account the new classic weapons slots - mpSetWeaponSlot(i, MPWEAPON_DISABLED - 1); -#else mpSetWeaponSlot(i, mpGetNumWeaponOptions() - 1); -#endif } } diff --git a/src/include/constants.h b/src/include/constants.h index e85af5033..fd520c791 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2970,19 +2970,21 @@ #define MPWEAPON_XRAYSCANNER (VERSION == VERSION_JPN_FINAL ? 0x21 : 0x22) #define MPWEAPON_CLOAKINGDEVICE (VERSION == VERSION_JPN_FINAL ? 0x22 : 0x23) #define MPWEAPON_COMBATBOOST (VERSION == VERSION_JPN_FINAL ? 0x23 : 0x24) +#ifdef PLATFORM_N64 #define MPWEAPON_SHIELD (VERSION == VERSION_JPN_FINAL ? 0x24 : 0x25) #define MPWEAPON_DISABLED (VERSION == VERSION_JPN_FINAL ? 0x25 : 0x26) -#ifdef PLATFORM_N64 #define NUM_MPWEAPONS (VERSION == VERSION_JPN_FINAL ? 0x26 : 0x27) #else // add all classic weapons to multiplayer -#define MPWEAPON_PP9I (VERSION == VERSION_JPN_FINAL ? 0x26 : 0x27) -#define MPWEAPON_CC13 (VERSION == VERSION_JPN_FINAL ? 0x27 : 0x28) -#define MPWEAPON_KL01313 (VERSION == VERSION_JPN_FINAL ? 0x28 : 0x29) -#define MPWEAPON_KF7SPECIAL (VERSION == VERSION_JPN_FINAL ? 0x29 : 0x2a) -#define MPWEAPON_ZZT (VERSION == VERSION_JPN_FINAL ? 0x2a : 0x2b) -#define MPWEAPON_DMC (VERSION == VERSION_JPN_FINAL ? 0x2b : 0x2c) -#define MPWEAPON_AR53 (VERSION == VERSION_JPN_FINAL ? 0x2c : 0x2d) -#define MPWEAPON_RCP45 (VERSION == VERSION_JPN_FINAL ? 0x2d : 0x2e) +#define MPWEAPON_PP9I (VERSION == VERSION_JPN_FINAL ? 0x24 : 0x25) +#define MPWEAPON_CC13 (VERSION == VERSION_JPN_FINAL ? 0x25 : 0x26) +#define MPWEAPON_KL01313 (VERSION == VERSION_JPN_FINAL ? 0x26 : 0x27) +#define MPWEAPON_KF7SPECIAL (VERSION == VERSION_JPN_FINAL ? 0x27 : 0x28) +#define MPWEAPON_ZZT (VERSION == VERSION_JPN_FINAL ? 0x28 : 0x29) +#define MPWEAPON_DMC (VERSION == VERSION_JPN_FINAL ? 0x29 : 0x2a) +#define MPWEAPON_AR53 (VERSION == VERSION_JPN_FINAL ? 0x2a : 0x2b) +#define MPWEAPON_RCP45 (VERSION == VERSION_JPN_FINAL ? 0x2b : 0x2c) +#define MPWEAPON_SHIELD (VERSION == VERSION_JPN_FINAL ? 0x2c : 0x2d) +#define MPWEAPON_DISABLED (VERSION == VERSION_JPN_FINAL ? 0x2d : 0x2e) #define NUM_MPWEAPONS (VERSION == VERSION_JPN_FINAL ? 0x2e : 0x2f) #endif