Disable Gold-only weapons for Regular edition (Tim Beckmann)
fixed compiling with -DNDEBUG
This commit is contained in:
parent
47d9cc1b2c
commit
e681d155d9
8 changed files with 70 additions and 20 deletions
|
@ -31,7 +31,6 @@
|
|||
#include "huddefs.h"
|
||||
#include "ai_sight.h"
|
||||
#include "targeting.h"
|
||||
#include "inventry.h"
|
||||
#include "game_statistics.h"
|
||||
|
||||
#include "particle.h"
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include "game_statistics.h"
|
||||
#include "avp_userprofile.h"
|
||||
#include "huddefs.h"
|
||||
#include "avp_menus.h"
|
||||
|
||||
#include "savegame.h"
|
||||
#include "huffman.hpp"
|
||||
|
|
|
@ -196,6 +196,8 @@ struct Target PlayersTarget;
|
|||
int GrenadeLauncherSelectedAmmo;
|
||||
int LastHand; // For alien claws and two pistols
|
||||
|
||||
int AllowGoldWeapons = 0; // flag to indicate the Gold version weapons should be allowed
|
||||
|
||||
char *GrenadeLauncherBulletNames[6] = {
|
||||
"bulletF", //05_
|
||||
"bulletA", //_
|
||||
|
@ -1637,6 +1639,12 @@ static int RequestChangeOfWeapon(PLAYER_STATUS *playerStatusPtr,PLAYER_WEAPON_DA
|
|||
}
|
||||
}
|
||||
}
|
||||
// Disallow Gold version weapons with regular version
|
||||
if (!AllowGoldWeapons && ((playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_FRISBEE_LAUNCHER) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_MARINE_PISTOL) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_TWO_PISTOLS))) {
|
||||
slotValidity=0;
|
||||
}
|
||||
} while(slotValidity==0);
|
||||
|
||||
if(newSlot != playerStatusPtr->SelectedWeaponSlot)
|
||||
|
@ -1704,6 +1712,12 @@ static int RequestChangeOfWeapon(PLAYER_STATUS *playerStatusPtr,PLAYER_WEAPON_DA
|
|||
}
|
||||
}
|
||||
}
|
||||
// Disallow Gold version weapons with regular version
|
||||
if (!AllowGoldWeapons && ((playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_FRISBEE_LAUNCHER) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_MARINE_PISTOL) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_TWO_PISTOLS))) {
|
||||
slotValidity=0;
|
||||
}
|
||||
} while(slotValidity==0);
|
||||
|
||||
if(newSlot != playerStatusPtr->SelectedWeaponSlot)
|
||||
|
@ -1723,6 +1737,12 @@ static int RequestChangeOfWeapon(PLAYER_STATUS *playerStatusPtr,PLAYER_WEAPON_DA
|
|||
if( (requestedSlot != playerStatusPtr->SelectedWeaponSlot)
|
||||
&&(playerStatusPtr->WeaponSlot[requestedSlot].Possessed == 1) )
|
||||
{
|
||||
// Disallow Gold version weapons with regular version
|
||||
if (!AllowGoldWeapons && ((playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_FRISBEE_LAUNCHER) ||
|
||||
(playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_MARINE_PISTOL) ||
|
||||
(playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_TWO_PISTOLS))) {
|
||||
return 0;
|
||||
}
|
||||
if (playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_PRED_DISC) {
|
||||
if (playerStatusPtr->WeaponSlot[requestedSlot].PrimaryRoundsRemaining==0
|
||||
&& playerStatusPtr->WeaponSlot[requestedSlot].PrimaryMagazinesRemaining==0) {
|
||||
|
@ -1859,6 +1879,12 @@ static int RequestChangeOfWeaponWhilstSwapping(PLAYER_STATUS *playerStatusPtr,PL
|
|||
}
|
||||
}
|
||||
}
|
||||
// Disallow Gold version weapons with regular version
|
||||
if (!AllowGoldWeapons && ((playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_FRISBEE_LAUNCHER) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_MARINE_PISTOL) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_TWO_PISTOLS))) {
|
||||
slotValidity=0;
|
||||
}
|
||||
}
|
||||
while(slotValidity==0);
|
||||
|
||||
|
@ -1923,6 +1949,12 @@ static int RequestChangeOfWeaponWhilstSwapping(PLAYER_STATUS *playerStatusPtr,PL
|
|||
}
|
||||
}
|
||||
}
|
||||
// Disallow Gold version weapons with regular version
|
||||
if (!AllowGoldWeapons && ((playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_FRISBEE_LAUNCHER) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_MARINE_PISTOL) ||
|
||||
(playerStatusPtr->WeaponSlot[newSlot].WeaponIDNumber==WEAPON_TWO_PISTOLS))) {
|
||||
slotValidity=0;
|
||||
}
|
||||
}
|
||||
while(slotValidity==0);
|
||||
|
||||
|
@ -1940,6 +1972,12 @@ static int RequestChangeOfWeaponWhilstSwapping(PLAYER_STATUS *playerStatusPtr,PL
|
|||
if( (requestedSlot != currentSlot)
|
||||
&&(playerStatusPtr->WeaponSlot[requestedSlot].Possessed == 1) )
|
||||
{
|
||||
// Disallow Gold version weapons with regular version
|
||||
if (!AllowGoldWeapons && ((playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_FRISBEE_LAUNCHER) ||
|
||||
(playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_MARINE_PISTOL) ||
|
||||
(playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_TWO_PISTOLS))) {
|
||||
return 0;
|
||||
}
|
||||
if (playerStatusPtr->WeaponSlot[requestedSlot].WeaponIDNumber==WEAPON_PRED_DISC) {
|
||||
if (playerStatusPtr->WeaponSlot[requestedSlot].PrimaryRoundsRemaining==0
|
||||
&& playerStatusPtr->WeaponSlot[requestedSlot].PrimaryMagazinesRemaining==0) {
|
||||
|
|
|
@ -570,20 +570,28 @@ void InitNPCs(RIFFHANDLE h)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* i believe this was added for the gold edition */
|
||||
#if !(PREDATOR_DEMO||MARINE_DEMO||ALIEN_DEMO||REGULAR_EDITION)
|
||||
if(AvP.PlayerType==I_Marine || Load_HNPC[HNPC_Marine])
|
||||
{
|
||||
//need to load the mdisk hierarchy
|
||||
LoadedNPC tempnpc("mdisk.rif");
|
||||
if (tempnpc.IsValid())
|
||||
{
|
||||
newnpcs.add_entry(tempnpc);
|
||||
}
|
||||
extern int AllowGoldWeapons;
|
||||
|
||||
// if the mdisk.rif file exists, add it. Note: Only the Gold version
|
||||
// has this file, so the OpenGameFile is called just to check if it
|
||||
// is available.
|
||||
FILE *rifFile = OpenGameFile(DIRECTORY_FOR_RIFS"mdisk.rif",
|
||||
FILEMODE_READONLY, FILETYPE_PERM);
|
||||
if (rifFile != NULL)
|
||||
{
|
||||
CloseGameFile(rifFile);
|
||||
|
||||
//need to load the mdisk hierarchy
|
||||
LoadedNPC tempnpc("mdisk.rif");
|
||||
if (tempnpc.IsValid())
|
||||
{
|
||||
AllowGoldWeapons = 1;
|
||||
newnpcs.add_entry(tempnpc);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
// see what we already have, unloading what we don't need, and ensuring we don't load a npc twice
|
||||
for (LIF<LoadedNPC> i_loaded_npc(&loaded_npcs); !i_loaded_npc.done(); )
|
||||
|
@ -600,8 +608,10 @@ void InitNPCs(RIFFHANDLE h)
|
|||
i_loaded_npc.delete_current();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if debug
|
||||
if(!KeepMainRifFile)
|
||||
#endif
|
||||
{
|
||||
//at this point we no longer need the main level rif file
|
||||
unload_rif(h);
|
||||
|
@ -637,11 +647,13 @@ void InitNPCs(RIFFHANDLE h)
|
|||
}
|
||||
Set_Progress_Bar_Position(PBAR_NPC_START+PBAR_NPC_INTERVAL);
|
||||
|
||||
#if debug
|
||||
if(KeepMainRifFile)
|
||||
{
|
||||
Env_Chunk = old_env_chunk; // pop Env_Chunk
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
Env_Chunk=0;
|
||||
}
|
||||
|
|
|
@ -228,7 +228,7 @@ namespace AwTl
|
|||
db_log1(("AW: Potential Memory Leaks Detected!!!"));
|
||||
}
|
||||
#ifdef _CPPRTTI
|
||||
#warning "Run-Time Type Identification (RTTI) is enabled"
|
||||
//#warning "Run-Time Type Identification (RTTI) is enabled"
|
||||
for (Iterator itLeak(*this) ; !itLeak.Done() ; itLeak.Next())
|
||||
{
|
||||
db_logf1(("\tAW Object not deallocated: Type: %s RefCnt: %u",typeid(*itLeak.Get()).name(),itLeak.Get()->m_nRefCnt));
|
||||
|
@ -238,7 +238,7 @@ namespace AwTl
|
|||
db_log1(("AW: Object dump complete"));
|
||||
}
|
||||
#else // ! _CPPRTTI
|
||||
#warning "Run-Time Type Identification (RTTI) is not enabled - memory leak checking will not report types"
|
||||
//#warning "Run-Time Type Identification (RTTI) is not enabled - memory leak checking will not report types"
|
||||
unsigned nRefs(0);
|
||||
for (Iterator itLeak(*this) ; !itLeak.Done() ; itLeak.Next())
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define fail if (0)
|
||||
static void fail(...) {}
|
||||
#define list_fail_get_data_from_sentinel NULL
|
||||
#define list_fail_add_entry_after NULL
|
||||
#define list_fail_add_entry_before NULL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue