From 99337e8157b478208171c31d698aebd1a7f8b73b Mon Sep 17 00:00:00 2001 From: Jonaeru Date: Sun, 24 Sep 2023 01:30:11 +0900 Subject: [PATCH 1/3] Add the combat knife in jpn-final --- src/game/bondgun.c | 2 ++ src/game/botinv.c | 4 ++++ src/game/inv.c | 4 ++++ src/game/mplayer/mplayer.c | 4 ++++ src/game/training.c | 4 ++++ src/include/constants.h | 38 +++++++++++++++++++++++++------------- 6 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 4a82c481d..593f712c9 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -5441,10 +5441,12 @@ void bgunTickSwitch2(void) ctrl->switchtoweaponnum = WEAPON_UNARMED; } +#ifdef PLATFORM_N64 #if VERSION == VERSION_JPN_FINAL if (ctrl->switchtoweaponnum == WEAPON_COMBATKNIFE) { ctrl->switchtoweaponnum = WEAPON_UNARMED; } +#endif #endif if (ctrl->dualwielding && !invHasDoubleWeaponIncAllGuns(ctrl->switchtoweaponnum, ctrl->switchtoweaponnum)) { diff --git a/src/game/botinv.c b/src/game/botinv.c index d4d55a538..1726fb884 100644 --- a/src/game/botinv.c +++ b/src/game/botinv.c @@ -56,10 +56,14 @@ struct aibotweaponpreference g_AibotWeaponPreferences[] = { /*0x17*/ { 176, 188, 0, 0, 1, 1, BOTDISTCFG_SHOOTEXPLOSIVE, BOTDISTCFG_SHOOTEXPLOSIVE, 20, 20, 4, 4, 2, 0 }, // WEAPON_DEVASTATOR /*0x18*/ { 160, 188, 0, 0, 1, 1, BOTDISTCFG_SHOOTEXPLOSIVE, BOTDISTCFG_SHOOTEXPLOSIVE, 2, 2, 1, 1, 2, 0 }, // WEAPON_ROCKETLAUNCHER /*0x19*/ { 168, 188, 0, 0, 1, 1, BOTDISTCFG_SHOOTEXPLOSIVE, BOTDISTCFG_SHOOTEXPLOSIVE, 2, 2, 1, 1, 3, 0 }, // WEAPON_SLAYER +#ifndef PLATFORM_N64 // add the combat knife in jpn-final + /*0x1a*/ { 20, 40, 24, 40, 1, 1, BOTDISTCFG_CLOSE, BOTDISTCFG_DEFAULT, 0, 5, 0, 1, 1, 0 }, // WEAPON_COMBATKNIFE +#else #if VERSION == VERSION_JPN_FINAL /*0x1a*/ { 0, 0, 0, 0, 0, 0, BOTDISTCFG_DEFAULT, BOTDISTCFG_DEFAULT, 0, 0, 0, 0, 1, 0 }, // WEAPON_COMBATKNIFE #else /*0x1a*/ { 20, 40, 24, 40, 1, 1, BOTDISTCFG_CLOSE, BOTDISTCFG_DEFAULT, 0, 5, 0, 1, 1, 0 }, // WEAPON_COMBATKNIFE +#endif #endif /*0x1b*/ { 108, 176, 0, 0, 1, 1, BOTDISTCFG_DEFAULT, BOTDISTCFG_DEFAULT, 15, 15, 5, 5, 4, 1 }, // WEAPON_CROSSBOW /*0x1c*/ { 48, 188, 0, 0, 1, 1, BOTDISTCFG_DEFAULT, BOTDISTCFG_CLOSE, 20, 24, 6, 8, 1, 0 }, // WEAPON_TRANQUILIZER diff --git a/src/game/inv.c b/src/game/inv.c index 87b5504b7..f36733b02 100644 --- a/src/game/inv.c +++ b/src/game/inv.c @@ -286,10 +286,12 @@ s32 invAddOneIfCantHaveSlayer(s32 index) index++; } +#ifdef PLATFORM_N64 #if VERSION >= VERSION_JPN_FINAL if (index >= 26) { index++; } +#endif #endif return index; @@ -310,10 +312,12 @@ bool invCanHaveAllGunsWeapon(s32 weaponnum) { bool canhave = true; +#ifdef PLATFORM_N64 #if VERSION == VERSION_JPN_FINAL if (weaponnum == WEAPON_COMBATKNIFE) { canhave = false; } +#endif #endif if (weaponnum == WEAPON_SLAYER) { diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index d8efbd2b8..73d2ea367 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -81,8 +81,12 @@ struct mpweapon g_MpWeapons[NUM_MPWEAPONS] = { /*0x16*/ { WEAPON_DEVASTATOR, AMMOTYPE_DEVASTATOR, 16, 0, 0, 1, MPFEATURE_WEAPON_DEVASTATOR, MODEL_CHRDEVASTATOR, 256 }, /*0x17*/ { WEAPON_ROCKETLAUNCHER, AMMOTYPE_ROCKET, 3, 0, 0, 1, 0, MODEL_CHRDYROCKET, 256 }, /*0x18*/ { WEAPON_SLAYER, AMMOTYPE_ROCKET, 3, 0, 0, 1, MPFEATURE_WEAPON_SLAYER, MODEL_CHRSKROCKET, 256 }, +#ifndef PLATFORM_N64 + /*0x19*/ { WEAPON_COMBATKNIFE, AMMOTYPE_KNIFE, 5, 0, 0, 1, 0, MODEL_CHRKNIFE, 256 }, +#else #if VERSION != VERSION_JPN_FINAL /*0x19*/ { WEAPON_COMBATKNIFE, AMMOTYPE_KNIFE, 5, 0, 0, 1, 0, MODEL_CHRKNIFE, 256 }, +#endif #endif /*0x1a*/ { WEAPON_CROSSBOW, AMMOTYPE_CROSSBOW, 10, 0, 0, 1, MPFEATURE_WEAPON_CROSSBOW, MODEL_CHRCROSSBOW, 256 }, /*0x1b*/ { WEAPON_TRANQUILIZER, AMMOTYPE_SEDATIVE, 50, 0, 0, 1, MPFEATURE_WEAPON_TRANQUILIZER, MODEL_CHRDRUGGUN, 256 }, diff --git a/src/game/training.c b/src/game/training.c index 148c24912..43e5b2c26 100644 --- a/src/game/training.c +++ b/src/game/training.c @@ -70,12 +70,14 @@ u8 ciGetFiringRangeScore(s32 weaponindex) { // Data at firingrangescores is a u8 array where each score uses 2 bits +#ifdef PLATFORM_N64 #if VERSION == VERSION_JPN_FINAL if (weaponindex == frGetWeaponIndexByWeapon(WEAPON_COMBATKNIFE)) { // The knife doesn't exist in the JPN version. // Treat it as completed so unlockables still work. return 3; } +#endif #endif return (g_GameFile.firingrangescores[weaponindex >> 2] >> (weaponindex % 4) * 2) & 3; @@ -205,10 +207,12 @@ bool func0f19cbcc(s32 weapon) bool frIsWeaponAvailable(s32 weapon) { +#ifdef PLATFORM_N64 #if VERSION == VERSION_JPN_FINAL if (weapon == WEAPON_COMBATKNIFE) { return false; } +#endif #endif if (weapon < WEAPON_FALCON2 || weapon > WEAPON_REMOTEMINE diff --git a/src/include/constants.h b/src/include/constants.h index fd520c791..4103cf44e 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2958,6 +2958,7 @@ #define MPWEAPON_DEVASTATOR 0x16 #define MPWEAPON_ROCKETLAUNCHER 0x17 #define MPWEAPON_SLAYER 0x18 +#ifdef PLATFORM_N64 #define MPWEAPON_COMBATKNIFE (VERSION == VERSION_JPN_FINAL ? 0 : 0x19) #define MPWEAPON_CROSSBOW (VERSION == VERSION_JPN_FINAL ? 0x19 : 0x1a) #define MPWEAPON_TRANQUILIZER (VERSION == VERSION_JPN_FINAL ? 0x1a : 0x1b) @@ -2970,22 +2971,33 @@ #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) #define NUM_MPWEAPONS (VERSION == VERSION_JPN_FINAL ? 0x26 : 0x27) -#else // add all classic weapons to multiplayer -#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) +#else // add all classic weapons to multiplayer and add the combat knife in jpn-final +#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_PP9I 0x25 +#define MPWEAPON_CC13 0x26 +#define MPWEAPON_KL01313 0x27 +#define MPWEAPON_KF7SPECIAL 0x28 +#define MPWEAPON_ZZT 0x29 +#define MPWEAPON_DMC 0x2a +#define MPWEAPON_AR53 0x2b +#define MPWEAPON_RCP45 0x2c +#define MPWEAPON_SHIELD 0x2d +#define MPWEAPON_DISABLED 0x2e +#define NUM_MPWEAPONS 0x2f #endif #define MUSICEVENTTYPE_PLAY 1 From e606a58515a058424b685d33fd33b0bd2fc9f1a5 Mon Sep 17 00:00:00 2001 From: Jonaeru Date: Sun, 24 Sep 2023 21:58:08 +0900 Subject: [PATCH 2/3] Add the combat knife in jpn-final, fix #if --- src/game/bondgun.c | 4 +--- src/game/botinv.c | 6 +----- src/game/inv.c | 8 ++------ src/game/mplayer/mplayer.c | 6 +----- src/game/training.c | 8 ++------ src/include/constants.h | 38 +++++++++++++------------------------- 6 files changed, 20 insertions(+), 50 deletions(-) diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 593f712c9..b9d1c412d 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -5441,12 +5441,10 @@ void bgunTickSwitch2(void) ctrl->switchtoweaponnum = WEAPON_UNARMED; } -#ifdef PLATFORM_N64 -#if VERSION == VERSION_JPN_FINAL +#if (VERSION == VERSION_JPN_FINAL) && defined(PLATFORM_N64) if (ctrl->switchtoweaponnum == WEAPON_COMBATKNIFE) { ctrl->switchtoweaponnum = WEAPON_UNARMED; } -#endif #endif if (ctrl->dualwielding && !invHasDoubleWeaponIncAllGuns(ctrl->switchtoweaponnum, ctrl->switchtoweaponnum)) { diff --git a/src/game/botinv.c b/src/game/botinv.c index 1726fb884..77a0522c9 100644 --- a/src/game/botinv.c +++ b/src/game/botinv.c @@ -56,14 +56,10 @@ struct aibotweaponpreference g_AibotWeaponPreferences[] = { /*0x17*/ { 176, 188, 0, 0, 1, 1, BOTDISTCFG_SHOOTEXPLOSIVE, BOTDISTCFG_SHOOTEXPLOSIVE, 20, 20, 4, 4, 2, 0 }, // WEAPON_DEVASTATOR /*0x18*/ { 160, 188, 0, 0, 1, 1, BOTDISTCFG_SHOOTEXPLOSIVE, BOTDISTCFG_SHOOTEXPLOSIVE, 2, 2, 1, 1, 2, 0 }, // WEAPON_ROCKETLAUNCHER /*0x19*/ { 168, 188, 0, 0, 1, 1, BOTDISTCFG_SHOOTEXPLOSIVE, BOTDISTCFG_SHOOTEXPLOSIVE, 2, 2, 1, 1, 3, 0 }, // WEAPON_SLAYER -#ifndef PLATFORM_N64 // add the combat knife in jpn-final - /*0x1a*/ { 20, 40, 24, 40, 1, 1, BOTDISTCFG_CLOSE, BOTDISTCFG_DEFAULT, 0, 5, 0, 1, 1, 0 }, // WEAPON_COMBATKNIFE -#else -#if VERSION == VERSION_JPN_FINAL +#if (VERSION == VERSION_JPN_FINAL) && defined(PLATFORM_N64) /*0x1a*/ { 0, 0, 0, 0, 0, 0, BOTDISTCFG_DEFAULT, BOTDISTCFG_DEFAULT, 0, 0, 0, 0, 1, 0 }, // WEAPON_COMBATKNIFE #else /*0x1a*/ { 20, 40, 24, 40, 1, 1, BOTDISTCFG_CLOSE, BOTDISTCFG_DEFAULT, 0, 5, 0, 1, 1, 0 }, // WEAPON_COMBATKNIFE -#endif #endif /*0x1b*/ { 108, 176, 0, 0, 1, 1, BOTDISTCFG_DEFAULT, BOTDISTCFG_DEFAULT, 15, 15, 5, 5, 4, 1 }, // WEAPON_CROSSBOW /*0x1c*/ { 48, 188, 0, 0, 1, 1, BOTDISTCFG_DEFAULT, BOTDISTCFG_CLOSE, 20, 24, 6, 8, 1, 0 }, // WEAPON_TRANQUILIZER diff --git a/src/game/inv.c b/src/game/inv.c index f36733b02..825e21fe9 100644 --- a/src/game/inv.c +++ b/src/game/inv.c @@ -286,12 +286,10 @@ s32 invAddOneIfCantHaveSlayer(s32 index) index++; } -#ifdef PLATFORM_N64 -#if VERSION >= VERSION_JPN_FINAL +#if (VERSION >= VERSION_JPN_FINAL) && defined(PLATFORM_N64) if (index >= 26) { index++; } -#endif #endif return index; @@ -312,12 +310,10 @@ bool invCanHaveAllGunsWeapon(s32 weaponnum) { bool canhave = true; -#ifdef PLATFORM_N64 -#if VERSION == VERSION_JPN_FINAL +#if (VERSION == VERSION_JPN_FINAL) && defined(PLATFORM_N64) if (weaponnum == WEAPON_COMBATKNIFE) { canhave = false; } -#endif #endif if (weaponnum == WEAPON_SLAYER) { diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index 73d2ea367..5ed36ed9f 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -81,12 +81,8 @@ struct mpweapon g_MpWeapons[NUM_MPWEAPONS] = { /*0x16*/ { WEAPON_DEVASTATOR, AMMOTYPE_DEVASTATOR, 16, 0, 0, 1, MPFEATURE_WEAPON_DEVASTATOR, MODEL_CHRDEVASTATOR, 256 }, /*0x17*/ { WEAPON_ROCKETLAUNCHER, AMMOTYPE_ROCKET, 3, 0, 0, 1, 0, MODEL_CHRDYROCKET, 256 }, /*0x18*/ { WEAPON_SLAYER, AMMOTYPE_ROCKET, 3, 0, 0, 1, MPFEATURE_WEAPON_SLAYER, MODEL_CHRSKROCKET, 256 }, -#ifndef PLATFORM_N64 +#if !((VERSION != VERSION_JPN_FINAL) && defined(PLATFORM_N64)) /*0x19*/ { WEAPON_COMBATKNIFE, AMMOTYPE_KNIFE, 5, 0, 0, 1, 0, MODEL_CHRKNIFE, 256 }, -#else -#if VERSION != VERSION_JPN_FINAL - /*0x19*/ { WEAPON_COMBATKNIFE, AMMOTYPE_KNIFE, 5, 0, 0, 1, 0, MODEL_CHRKNIFE, 256 }, -#endif #endif /*0x1a*/ { WEAPON_CROSSBOW, AMMOTYPE_CROSSBOW, 10, 0, 0, 1, MPFEATURE_WEAPON_CROSSBOW, MODEL_CHRCROSSBOW, 256 }, /*0x1b*/ { WEAPON_TRANQUILIZER, AMMOTYPE_SEDATIVE, 50, 0, 0, 1, MPFEATURE_WEAPON_TRANQUILIZER, MODEL_CHRDRUGGUN, 256 }, diff --git a/src/game/training.c b/src/game/training.c index 43e5b2c26..6816ce312 100644 --- a/src/game/training.c +++ b/src/game/training.c @@ -70,14 +70,12 @@ u8 ciGetFiringRangeScore(s32 weaponindex) { // Data at firingrangescores is a u8 array where each score uses 2 bits -#ifdef PLATFORM_N64 -#if VERSION == VERSION_JPN_FINAL +#if (VERSION == VERSION_JPN_FINAL) && defined(PLATFORM_N64) if (weaponindex == frGetWeaponIndexByWeapon(WEAPON_COMBATKNIFE)) { // The knife doesn't exist in the JPN version. // Treat it as completed so unlockables still work. return 3; } -#endif #endif return (g_GameFile.firingrangescores[weaponindex >> 2] >> (weaponindex % 4) * 2) & 3; @@ -207,12 +205,10 @@ bool func0f19cbcc(s32 weapon) bool frIsWeaponAvailable(s32 weapon) { -#ifdef PLATFORM_N64 -#if VERSION == VERSION_JPN_FINAL +#if (VERSION == VERSION_JPN_FINAL) && defined(PLATFORM_N64) if (weapon == WEAPON_COMBATKNIFE) { return false; } -#endif #endif if (weapon < WEAPON_FALCON2 || weapon > WEAPON_REMOTEMINE diff --git a/src/include/constants.h b/src/include/constants.h index 4103cf44e..d55b65b85 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2958,35 +2958,23 @@ #define MPWEAPON_DEVASTATOR 0x16 #define MPWEAPON_ROCKETLAUNCHER 0x17 #define MPWEAPON_SLAYER 0x18 +#define MPWEAPON_COMBATKNIFE (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0 : 0x19) +#define MPWEAPON_CROSSBOW (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x19 : 0x1a) +#define MPWEAPON_TRANQUILIZER (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x1a : 0x1b) +#define MPWEAPON_GRENADE (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x1b : 0x1c) +#define MPWEAPON_NBOMB (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x1c : 0x1d) +#define MPWEAPON_TIMEDMINE (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x1d : 0x1e) +#define MPWEAPON_PROXIMITYMINE (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x1e : 0x1f) +#define MPWEAPON_REMOTEMINE (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x1f : 0x20) +#define MPWEAPON_LASER (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x20 : 0x21) +#define MPWEAPON_XRAYSCANNER (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x21 : 0x22) +#define MPWEAPON_CLOAKINGDEVICE (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x22 : 0x23) +#define MPWEAPON_COMBATBOOST (VERSION == VERSION_JPN_FINAL && defined(PLATFORM_N64) ? 0x23 : 0x24) #ifdef PLATFORM_N64 -#define MPWEAPON_COMBATKNIFE (VERSION == VERSION_JPN_FINAL ? 0 : 0x19) -#define MPWEAPON_CROSSBOW (VERSION == VERSION_JPN_FINAL ? 0x19 : 0x1a) -#define MPWEAPON_TRANQUILIZER (VERSION == VERSION_JPN_FINAL ? 0x1a : 0x1b) -#define MPWEAPON_GRENADE (VERSION == VERSION_JPN_FINAL ? 0x1b : 0x1c) -#define MPWEAPON_NBOMB (VERSION == VERSION_JPN_FINAL ? 0x1c : 0x1d) -#define MPWEAPON_TIMEDMINE (VERSION == VERSION_JPN_FINAL ? 0x1d : 0x1e) -#define MPWEAPON_PROXIMITYMINE (VERSION == VERSION_JPN_FINAL ? 0x1e : 0x1f) -#define MPWEAPON_REMOTEMINE (VERSION == VERSION_JPN_FINAL ? 0x1f : 0x20) -#define MPWEAPON_LASER (VERSION == VERSION_JPN_FINAL ? 0x20 : 0x21) -#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) #define MPWEAPON_SHIELD (VERSION == VERSION_JPN_FINAL ? 0x24 : 0x25) #define MPWEAPON_DISABLED (VERSION == VERSION_JPN_FINAL ? 0x25 : 0x26) #define NUM_MPWEAPONS (VERSION == VERSION_JPN_FINAL ? 0x26 : 0x27) -#else // add all classic weapons to multiplayer and add the combat knife in jpn-final -#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 +#else // add all classic weapons to multiplayer #define MPWEAPON_PP9I 0x25 #define MPWEAPON_CC13 0x26 #define MPWEAPON_KL01313 0x27 From 9d2957c4193bb01371e65f3839243347f2ea4366 Mon Sep 17 00:00:00 2001 From: Jonaeru Date: Sun, 24 Sep 2023 22:07:53 +0900 Subject: [PATCH 3/3] Add the combat knife in jpn-final, fix conditions --- src/game/mplayer/mplayer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index 5ed36ed9f..879f7ec34 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -81,7 +81,7 @@ struct mpweapon g_MpWeapons[NUM_MPWEAPONS] = { /*0x16*/ { WEAPON_DEVASTATOR, AMMOTYPE_DEVASTATOR, 16, 0, 0, 1, MPFEATURE_WEAPON_DEVASTATOR, MODEL_CHRDEVASTATOR, 256 }, /*0x17*/ { WEAPON_ROCKETLAUNCHER, AMMOTYPE_ROCKET, 3, 0, 0, 1, 0, MODEL_CHRDYROCKET, 256 }, /*0x18*/ { WEAPON_SLAYER, AMMOTYPE_ROCKET, 3, 0, 0, 1, MPFEATURE_WEAPON_SLAYER, MODEL_CHRSKROCKET, 256 }, -#if !((VERSION != VERSION_JPN_FINAL) && defined(PLATFORM_N64)) +#if !((VERSION == VERSION_JPN_FINAL) && defined(PLATFORM_N64)) /*0x19*/ { WEAPON_COMBATKNIFE, AMMOTYPE_KNIFE, 5, 0, 0, 1, 0, MODEL_CHRKNIFE, 256 }, #endif /*0x1a*/ { WEAPON_CROSSBOW, AMMOTYPE_CROSSBOW, 10, 0, 0, 1, MPFEATURE_WEAPON_CROSSBOW, MODEL_CHRCROSSBOW, 256 },