228 lines
4.6 KiB
C++
228 lines
4.6 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// $Logfile:: /Quake 2 Engine/Sin/code/game/ammo.cpp $
|
|
// $Revision:: 28 $
|
|
// $Author:: Aldie $
|
|
// $Date:: 10/24/98 2:07p $
|
|
//
|
|
// Copyright (C) 1997 by Ritual Entertainment, Inc.
|
|
// All rights reserved.
|
|
//
|
|
// This source is may not be distributed and/or modified without
|
|
// expressly written permission by Ritual Entertainment, Inc.
|
|
//
|
|
// $Log:: /Quake 2 Engine/Sin/code/game/ammo.cpp $
|
|
//
|
|
// 28 10/24/98 2:07p Aldie
|
|
// Moved pickupable function out.
|
|
//
|
|
// 27 10/21/98 9:05p Aldie
|
|
// Added spear ammo
|
|
//
|
|
// 26 10/21/98 5:24p Aldie
|
|
// Don't let mutants pickup ammo
|
|
//
|
|
// 25 10/14/98 1:01a Jimdose
|
|
// change Ammo::Ammo so that it used Set to set amount so that spawnarg values
|
|
// are not cleared out
|
|
//
|
|
// 24 10/05/98 11:59p Aldie
|
|
// Fix spidermines
|
|
//
|
|
// 23 6/28/98 4:13p Markd
|
|
// simplified setup
|
|
//
|
|
// 22 6/25/98 8:47p Markd
|
|
// Added keyed items for Triggers, Rewrote Item class, rewrote every pickup
|
|
// method
|
|
//
|
|
// 21 6/24/98 1:35p Aldie
|
|
// Implementation of inventory system and picking stuff up
|
|
//
|
|
// 20 6/17/98 1:19a Jimdose
|
|
// Moved setOwner to Item.
|
|
// Added EV_Item_Pickup
|
|
//
|
|
// 19 6/10/98 5:10p Markd
|
|
// Using ExpandAlias method
|
|
//
|
|
// 18 6/10/98 1:19p Markd
|
|
// Added SetAmmoName and SetAmmoAmount, removed 357 ammo
|
|
//
|
|
// 17 6/08/98 7:21p Aldie
|
|
// Added SpiderMine ammo
|
|
//
|
|
// 16 5/26/98 4:44p Aldie
|
|
// Added remove ammo
|
|
//
|
|
// 15 5/24/98 8:46p Jimdose
|
|
// Made a lot of functions more str-friendly.
|
|
// Got rid of a lot of char * based strings
|
|
// Cleaned up get spawn arg functions and sound functions
|
|
// sound functions now use consistant syntax
|
|
//
|
|
// 14 5/24/98 4:48p Jimdose
|
|
// Made char *'s const
|
|
//
|
|
// 13 5/08/98 2:55p Markd
|
|
// Put in Ammo pickup sounds
|
|
//
|
|
// 12 4/28/98 5:28p Jimdose
|
|
// Changed rocket and sniper ammo from 20 to 10
|
|
//
|
|
// 11 4/18/98 3:30p Markd
|
|
// Added new shotgun clip type
|
|
//
|
|
// 10 4/07/98 9:18p Jimdose
|
|
// Added Rockets
|
|
//
|
|
// 9 4/07/98 6:42p Jimdose
|
|
// Turned off respawn in singleplayer
|
|
//
|
|
// 8 4/04/98 6:00p Jimdose
|
|
// Made response to EV_Touch be response to EV_Trigger_Effect
|
|
//
|
|
// 7 3/31/98 4:21p Jimdose
|
|
// Changed model names
|
|
//
|
|
// 6 3/30/98 9:54p Jimdose
|
|
// Changed location of .def files
|
|
//
|
|
// 5 3/30/98 2:31p Jimdose
|
|
// Created file
|
|
//
|
|
// DESCRIPTION:
|
|
// Base class for all ammunition for entities derived from the Weapon class.
|
|
//
|
|
|
|
#include "g_local.h"
|
|
#include "item.h"
|
|
#include "ammo.h"
|
|
|
|
CLASS_DECLARATION( Item, Ammo, NULL );
|
|
|
|
ResponseDef Ammo::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
Ammo::Ammo()
|
|
{
|
|
Set( 0 );
|
|
}
|
|
|
|
void Ammo::Setup
|
|
(
|
|
const char *model
|
|
)
|
|
|
|
{
|
|
const char * m;
|
|
m = G_GetSpawnArg( "model" );
|
|
if ( m )
|
|
{
|
|
setModel( m );
|
|
}
|
|
else
|
|
{
|
|
assert( model );
|
|
setModel( model );
|
|
}
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, Bullet10mm, "ammo_10mm" );
|
|
|
|
ResponseDef Bullet10mm::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
Bullet10mm::Bullet10mm()
|
|
{
|
|
Setup( "357.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, Bullet50mm, "ammo_50mm" );
|
|
|
|
ResponseDef Bullet50mm::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
Bullet50mm::Bullet50mm()
|
|
{
|
|
Setup( "50mm.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, BulletPulse, "ammo_pulserifle" );
|
|
|
|
ResponseDef BulletPulse::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
BulletPulse::BulletPulse()
|
|
{
|
|
Setup( "pulse_ammo.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, BulletSniper, "ammo_sniperrifle" );
|
|
|
|
ResponseDef BulletSniper::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
BulletSniper::BulletSniper()
|
|
{
|
|
Setup( "sniper_ammo.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, Rockets, "ammo_rockets" );
|
|
|
|
ResponseDef Rockets::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
Rockets::Rockets()
|
|
{
|
|
Setup( "rockets.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, Spears, "ammo_speargun" );
|
|
|
|
ResponseDef Spears::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
Spears::Spears()
|
|
{
|
|
Setup( "spear_ammo.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, ShotgunClip, "ammo_shotgunclip" );
|
|
|
|
ResponseDef ShotgunClip::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
ShotgunClip::ShotgunClip()
|
|
{
|
|
Setup( "shotgunclip.def" );
|
|
}
|
|
|
|
CLASS_DECLARATION( Ammo, SpiderMines, "ammo_spidermines" );
|
|
|
|
ResponseDef SpiderMines::Responses[] =
|
|
{
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
SpiderMines::SpiderMines()
|
|
{
|
|
Setup( "mine.def" );
|
|
}
|
|
|