summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c88
-rw-r--r--src/game/bg_pmove.c8
-rw-r--r--src/game/bg_public.h2
-rw-r--r--src/game/g_client.c8
-rw-r--r--src/game/g_weapon.c40
5 files changed, 120 insertions, 26 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 68a00c2e..4741f15d 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -258,15 +258,15 @@ gitem_t bg_itemlist[] =
""
},
-/*QUAKED weapon_abuild (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
+/*QUAKED weapon_dbuild (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/
{
- "weapon_abuild",
+ "weapon_dbuild",
"sound/misc/w_pkup.wav",
{ "models/weapons2/gauntlet/gauntlet.md3",
0, 0, 0},
"icons/iconw_gauntlet",
- "ABuild",
+ "Droid Build",
0,
IT_WEAPON,
WP_DBUILD,
@@ -274,6 +274,22 @@ gitem_t bg_itemlist[] =
""
},
+/*QUAKED weapon_dbuild2 (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
+*/
+ {
+ "weapon_dbuild2",
+ "sound/misc/w_pkup.wav",
+ { "models/weapons2/gauntlet/gauntlet.md3",
+ 0, 0, 0},
+ "icons/iconw_gauntlet",
+ "Droid Build 2",
+ 0,
+ IT_WEAPON,
+ WP_DBUILD2,
+ "",
+ ""
+ },
+
/*QUAKED weapon_hbuild (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/
{
@@ -290,6 +306,22 @@ gitem_t bg_itemlist[] =
""
},
+/*QUAKED weapon_hbuild2 (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
+*/
+ {
+ "weapon_hbuild2",
+ "sound/misc/w_pkup.wav",
+ { "models/weapons2/gauntlet/gauntlet.md3",
+ 0, 0, 0},
+ "icons/iconw_gauntlet",
+ "Human Build 2",
+ 0,
+ IT_WEAPON,
+ WP_HBUILD2,
+ "",
+ ""
+ },
+
/*QUAKED weapon_scanner (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
*/
{
@@ -1127,7 +1159,7 @@ buildableAttributes_t bg_buildableList[ ] =
200, //int splashRadius;
MOD_DSPAWN, //int meansOfDeath;
BIT_DROIDS, //int team;
- ( 1 << WP_DBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_DBUILD )|( 1 << WP_DBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
0, //int turretFireSpeed;
@@ -1151,7 +1183,7 @@ buildableAttributes_t bg_buildableList[ ] =
50, //int splashRadius;
MOD_DSPAWN, //int meansOfDeath;
BIT_DROIDS, //int team;
- ( 1 << WP_DBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_DBUILD )|( 1 << WP_DBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
0, //int turretFireSpeed;
@@ -1175,7 +1207,7 @@ buildableAttributes_t bg_buildableList[ ] =
50, //int splashRadius;
MOD_DSPAWN, //int meansOfDeath;
BIT_DROIDS, //int team;
- ( 1 << WP_DBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_DBUILD )|( 1 << WP_DBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
1500, //int turretFireSpeed;
@@ -1199,7 +1231,7 @@ buildableAttributes_t bg_buildableList[ ] =
50, //int splashRadius;
MOD_DSPAWN, //int meansOfDeath;
BIT_DROIDS, //int team;
- ( 1 << WP_DBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_DBUILD )|( 1 << WP_DBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
-1, //int nextthink;
0, //int turretFireSpeed;
@@ -1223,7 +1255,7 @@ buildableAttributes_t bg_buildableList[ ] =
150, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
0, //int turretFireSpeed;
@@ -1247,7 +1279,7 @@ buildableAttributes_t bg_buildableList[ ] =
50, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
50, //int nextthink;
500, //int turretFireSpeed;
@@ -1271,7 +1303,7 @@ buildableAttributes_t bg_buildableList[ ] =
50, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
50, //int nextthink;
50, //int turretFireSpeed;
@@ -1295,7 +1327,7 @@ buildableAttributes_t bg_buildableList[ ] =
50, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
150, //int nextthink;
4000, //int turretFireSpeed;
@@ -1319,7 +1351,7 @@ buildableAttributes_t bg_buildableList[ ] =
150, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
0, //int turretFireSpeed;
@@ -1343,7 +1375,7 @@ buildableAttributes_t bg_buildableList[ ] =
150, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
-1, //int nextthink;
0, //int turretFireSpeed;
@@ -1367,7 +1399,7 @@ buildableAttributes_t bg_buildableList[ ] =
150, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
0, //int turretFireSpeed;
@@ -1391,7 +1423,7 @@ buildableAttributes_t bg_buildableList[ ] =
150, //int splashRadius;
MOD_HSPAWN, //int meansOfDeath;
BIT_HUMANS, //int team;
- ( 1 << WP_HBUILD ), //weapon_t buildWeapon;
+ ( 1 << WP_HBUILD )|( 1 << WP_HBUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int constructAnim;
100, //int nextthink;
0, //int turretFireSpeed;
@@ -2824,6 +2856,18 @@ weaponAttributes_t bg_weapons[ ] =
qfalse //qboolean synced;
},
{
+ WP_HBUILD2, //int weaponNum;
+ 100, //int price;
+ SLOT_WEAPON, //int slots;
+ "ackit", //char *weaponName;
+ "Adv Construction Kit",//char *weaponHumanName;
+ 0, //int quan;
+ 0, //int clips;
+ 0, //int maxClips;
+ qfalse, //qboolean hasAltMode;
+ qfalse //qboolean synced;
+ },
+ {
WP_DBUILD, //int weaponNum;
100, //int price;
SLOT_WEAPON, //int slots;
@@ -2836,6 +2880,18 @@ weaponAttributes_t bg_weapons[ ] =
qfalse //qboolean synced;
},
{
+ WP_DBUILD2, //int weaponNum;
+ 100, //int price;
+ SLOT_WEAPON, //int slots;
+ "dbuild2", //char *weaponName;
+ "Droid build weapon2",//char *weaponHumanName;
+ 0, //int quan;
+ 0, //int clips;
+ 0, //int maxClips;
+ qfalse, //qboolean hasAltMode;
+ qfalse //qboolean synced;
+ },
+ {
WP_VENOM, //int weaponNum;
100, //int price;
SLOT_WEAPON, //int slots;
@@ -3974,7 +4030,9 @@ qboolean BG_infiniteAmmo( int weapon )
case WP_GRABANDCSAW:
case WP_POUNCE:
case WP_DBUILD:
+ case WP_DBUILD2:
case WP_HBUILD:
+ case WP_HBUILD2:
case WP_SCANNER:
return qtrue;
break;
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index e76918e6..1e722df4 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -2361,13 +2361,11 @@ static void PM_Weapon( void )
addTime = 750;
break;
case WP_DBUILD:
- addTime = 1000;
- break;
+ case WP_DBUILD2:
case WP_HBUILD:
- addTime = 1000;
- break;
+ case WP_HBUILD2:
case WP_SCANNER:
- addTime = 1000; //abritutary since scaner doesn't "fire"
+ addTime = 1000; //abritutary since doesn't "fire"
break;
}
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index 79a3f131..1c068d35 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -348,6 +348,8 @@ typedef enum {
//build weapons must remain in a block
WP_DBUILD,
+ WP_DBUILD2,
+ WP_HBUILD2,
WP_HBUILD,
//ok?
diff --git a/src/game/g_client.c b/src/game/g_client.c
index 66f8afa9..9a6d1226 100644
--- a/src/game/g_client.c
+++ b/src/game/g_client.c
@@ -1392,12 +1392,16 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn ) {
switch( ent->client->pers.pclass )
{
case PCL_D_B_BASE:
+ BG_packWeapon( WP_DBUILD, client->ps.stats );
+ BG_packAmmoArray( WP_DBUILD, client->ps.ammo, client->ps.powerups, 0, 0, 0 );
+ break;
+
case PCL_D_B_LEV1:
case PCL_D_B_LEV21:
case PCL_D_B_LEV22:
case PCL_D_B_LEV23:
- BG_packWeapon( WP_DBUILD, client->ps.stats );
- BG_packAmmoArray( WP_DBUILD, client->ps.ammo, client->ps.powerups, 0, 0, 0 );
+ BG_packWeapon( WP_DBUILD2, client->ps.stats );
+ BG_packAmmoArray( WP_DBUILD2, client->ps.ammo, client->ps.powerups, 0, 0, 0 );
break;
case PCL_D_O_BASE:
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index 3532e3d0..3e2e2caa 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -579,10 +579,20 @@ BUILD GUN
///////build weapons
/*
===============
-Weapon_Abuild_Fire
+Weapon_Dbuild_Fire
===============
*/
-void Weapon_Abuild_Fire( gentity_t *ent )
+void Weapon_Dbuild_Fire( gentity_t *ent )
+{
+ G_AddPredictableEvent( ent, EV_MENU, MN_D_BUILD );
+}
+
+/*
+===============
+Weapon_Dbuild2_Fire
+===============
+*/
+void Weapon_Dbuild2_Fire( gentity_t *ent )
{
G_AddPredictableEvent( ent, EV_MENU, MN_D_BUILD );
}
@@ -596,6 +606,16 @@ void Weapon_Hbuild_Fire( gentity_t *ent )
{
G_AddPredictableEvent( ent, EV_MENU, MN_H_BUILD );
}
+
+/*
+===============
+Weapon_Hbuild2_Fire
+===============
+*/
+void Weapon_Hbuild2_Fire( gentity_t *ent )
+{
+ G_AddPredictableEvent( ent, EV_MENU, MN_H_BUILD );
+}
///////build weapons
/*
@@ -1021,11 +1041,17 @@ void FireWeapon2( gentity_t *ent )
case WP_POUNCE:
break;
case WP_DBUILD:
- Weapon_Abuild_Fire( ent );
+ Weapon_Dbuild_Fire( ent );
+ break;
+ case WP_DBUILD2:
+ Weapon_Dbuild2_Fire( ent );
break;
case WP_HBUILD:
Weapon_Hbuild_Fire( ent );
break;
+ case WP_HBUILD2:
+ Weapon_Hbuild2_Fire( ent );
+ break;
case WP_SCANNER: //scanner doesn't "fire"
default:
// FIXME G_Error( "Bad ent->s.weapon" );
@@ -1104,11 +1130,17 @@ void FireWeapon( gentity_t *ent )
Weapon_Claw_Fire( ent );
break;
case WP_DBUILD:
- Weapon_Abuild_Fire( ent );
+ Weapon_Dbuild_Fire( ent );
+ break;
+ case WP_DBUILD2:
+ Weapon_Dbuild2_Fire( ent );
break;
case WP_HBUILD:
Weapon_Hbuild_Fire( ent );
break;
+ case WP_HBUILD2:
+ Weapon_Hbuild2_Fire( ent );
+ break;
case WP_SCANNER: //scanner doesn't "fire"
default:
// FIXME G_Error( "Bad ent->s.weapon" );