From 5af435dc4a2c87798f1b72b1e113209e1d1c2de4 Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Sun, 26 Aug 2001 00:11:00 +0000 Subject: Added extra build weapons --- src/game/bg_misc.c | 88 +++++++++++++++++++++++++++++++++++++++++++--------- src/game/bg_pmove.c | 8 ++--- src/game/bg_public.h | 2 ++ src/game/g_client.c | 8 +++-- src/game/g_weapon.c | 40 +++++++++++++++++++++--- 5 files changed, 120 insertions(+), 26 deletions(-) (limited to 'src/game') 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; @@ -2823,6 +2855,18 @@ weaponAttributes_t bg_weapons[ ] = qfalse, //qboolean hasAltMode; 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; @@ -2835,6 +2879,18 @@ weaponAttributes_t bg_weapons[ ] = qfalse, //qboolean hasAltMode; 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; @@ -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" ); -- cgit