- Added Hirogen2's patch for unlimited ammo CVAR.

SVN r1464 (trunk)
This commit is contained in:
Christoph Oelckers 2009-03-06 22:58:34 +00:00
parent ee1806e9b2
commit e57ff454f2
5 changed files with 13 additions and 5 deletions

View file

@ -1,4 +1,7 @@
March 4, 2009 March 6, 2009 (Changes by Graf Zahl)
- Added Hirogen2's patch for unlimited ammo CVAR.
March 4, 2009
- Fixed: You couldn't easily play with the compatibility options menu during - Fixed: You couldn't easily play with the compatibility options menu during
the title screen, because the demo loop reset the server cvars after each the title screen, because the demo loop reset the server cvars after each
attempt to play a demo, even though the demos never actually played. The attempt to play a demo, even though the demos never actually played. The

View file

@ -73,6 +73,7 @@ extern FILE *Logfile;
extern bool insave; extern bool insave;
CVAR (Bool, sv_cheats, false, CVAR_SERVERINFO | CVAR_LATCH) CVAR (Bool, sv_cheats, false, CVAR_SERVERINFO | CVAR_LATCH)
CVAR (Bool, sv_unlimited_pickup, false, CVAR_ARCHIVE | CVAR_SERVERINFO)
CCMD (toggleconsole) CCMD (toggleconsole)
{ {

View file

@ -143,6 +143,7 @@ EXTERN_CVAR (Bool, invertmouse)
EXTERN_CVAR (Bool, lookstrafe) EXTERN_CVAR (Bool, lookstrafe)
EXTERN_CVAR (Int, screenblocks) EXTERN_CVAR (Int, screenblocks)
EXTERN_CVAR (Bool, sv_cheats) EXTERN_CVAR (Bool, sv_cheats)
EXTERN_CVAR (Bool, sv_unlimited_pickup)
extern gameinfo_t SharewareGameInfo; extern gameinfo_t SharewareGameInfo;
extern gameinfo_t RegisteredGameInfo; extern gameinfo_t RegisteredGameInfo;
@ -2369,6 +2370,7 @@ void D_DoomMain (void)
if (Args->CheckParm ("-nomonsters")) flags |= DF_NO_MONSTERS; if (Args->CheckParm ("-nomonsters")) flags |= DF_NO_MONSTERS;
if (Args->CheckParm ("-respawn")) flags |= DF_MONSTERS_RESPAWN; if (Args->CheckParm ("-respawn")) flags |= DF_MONSTERS_RESPAWN;
if (Args->CheckParm ("-fast")) flags |= DF_FAST_MONSTERS; if (Args->CheckParm ("-fast")) flags |= DF_FAST_MONSTERS;
if (Args->CheckParm("-ulp")) sv_unlimited_pickup = true;
devparm = !!Args->CheckParm ("-devparm"); devparm = !!Args->CheckParm ("-devparm");

View file

@ -67,13 +67,14 @@ const PClass *AAmmo::GetParentAmmo () const
// AAmmo :: HandlePickup // AAmmo :: HandlePickup
// //
//=========================================================================== //===========================================================================
EXTERN_CVAR(Bool, sv_unlimited_pickup)
bool AAmmo::HandlePickup (AInventory *item) bool AAmmo::HandlePickup (AInventory *item)
{ {
if (GetClass() == item->GetClass() || if (GetClass() == item->GetClass() ||
(item->IsKindOf (RUNTIME_CLASS(AAmmo)) && static_cast<AAmmo*>(item)->GetParentAmmo() == GetClass())) (item->IsKindOf (RUNTIME_CLASS(AAmmo)) && static_cast<AAmmo*>(item)->GetParentAmmo() == GetClass()))
{ {
if (Amount < MaxAmount) if (Amount < MaxAmount || sv_unlimited_pickup)
{ {
int receiving = item->Amount; int receiving = item->Amount;
@ -84,7 +85,7 @@ bool AAmmo::HandlePickup (AInventory *item)
int oldamount = Amount; int oldamount = Amount;
Amount += receiving; Amount += receiving;
if (Amount > MaxAmount) if (Amount > MaxAmount && !sv_unlimited_pickup)
{ {
Amount = MaxAmount; Amount = MaxAmount;
} }

View file

@ -326,10 +326,11 @@ AAmmo *AWeapon::AddAmmo (AActor *other, const PClass *ammotype, int amount)
// Give the owner some more ammo he already has. // Give the owner some more ammo he already has.
// //
//=========================================================================== //===========================================================================
EXTERN_CVAR(Bool, sv_unlimited_pickup)
bool AWeapon::AddExistingAmmo (AAmmo *ammo, int amount) bool AWeapon::AddExistingAmmo (AAmmo *ammo, int amount)
{ {
if (ammo != NULL && ammo->Amount < ammo->MaxAmount) if (ammo != NULL && (ammo->Amount < ammo->MaxAmount || sv_unlimited_pickup))
{ {
// extra ammo in baby mode and nightmare mode // extra ammo in baby mode and nightmare mode
if (!(ItemFlags&IF_IGNORESKILL)) if (!(ItemFlags&IF_IGNORESKILL))
@ -337,7 +338,7 @@ bool AWeapon::AddExistingAmmo (AAmmo *ammo, int amount)
amount = FixedMul(amount, G_SkillProperty(SKILLP_AmmoFactor)); amount = FixedMul(amount, G_SkillProperty(SKILLP_AmmoFactor));
} }
ammo->Amount += amount; ammo->Amount += amount;
if (ammo->Amount > ammo->MaxAmount) if (ammo->Amount > ammo->MaxAmount && !sv_unlimited_pickup)
{ {
ammo->Amount = ammo->MaxAmount; ammo->Amount = ammo->MaxAmount;
} }