diff --git a/config/menus_settings.cfg b/config/menus_settings.cfg index 39d0787f..bcfa5e32 100644 --- a/config/menus_settings.cfg +++ b/config/menus_settings.cfg @@ -251,9 +251,8 @@ menuitemtextinput "Shotgun: " [ fragmessage SHOTGUN ] [ fragmessage SHOTGUN $arg menuitemtextinput "SMG: " [ fragmessage SUBGUN ] [ fragmessage SUBGUN $arg1 ] [] 15 menuitemtextinput "Sniper: " [ fragmessage SNIPER ] [ fragmessage SNIPER $arg1 ] [] 15 menuitemtextinput "AR: " [ fragmessage ASSAULT ] [ fragmessage ASSAULT $arg1 ] [] 15 -//menuitemtextinput "CPistol: " [ fragmessage CPISTOL ] [ fragmessage CPISTOL $arg1 ] [] 15 menuitemtextinput "Akimbo: " [ fragmessage AKIMBO ] [ fragmessage AKIMBO $arg1 ] [] 15 -menuitem [] -1 +menuitem "" -1 menuitem "\f9Gib messages: " -1 menuitemtextinput "Knife: " [ gibmessage KNIFE ] [ gibmessage KNIFE $arg1 ] [] 15 menuitemtextinput "Shotgun: " [ gibmessage SHOTGUN ] [ gibmessage SHOTGUN $arg1 ] [] 15 diff --git a/config/scripts.cfg b/config/scripts.cfg index dc24f9e6..d5cd1357 100644 --- a/config/scripts.cfg +++ b/config/scripts.cfg @@ -187,7 +187,6 @@ loop i $NUM_WEAPONS [ (concatword altaction_ $i) = quicknadethrow ] // Quick nad // Use format to define altaction_N aliases from now on, makes for less edits in the future if weapon IDs change. - Bukz // (format altaction_%1 (getgunindex knife)) = [ if (checkmag (currentprimary)) primary [ if (|| (checkmag PISTOL) (checkmag AKIMBO)) secondary [ if (checkmag GRENADE) grenades ] ] ] // Knife // uncomment to switch to primary/secondary/grenades with MOUSE2 depending on ammo content for each. (format altaction_%1 (getgunindex sniper)) = [ setscope 1; onrelease [ setscope 0 ] ] // Sniper -// (format altaction_%1 (getgunindex cpistol)) = [ setburst 1; onrelease [ setburst 0 ] ] // Combat pistol // TODO uncomment when this becomes a priority/testing, for now lets save an unused alias - Bukz // (format altaction_%1 (getgunindex grenades)) = attack // Grenade // with this comment, you throw the nade and the nade is unselected : Brahma oldsens = $sensitivity diff --git a/source/src/bot/ac_bot.cpp b/source/src/bot/ac_bot.cpp index 6199d44f..56d161a0 100644 --- a/source/src/bot/ac_bot.cpp +++ b/source/src/bot/ac_bot.cpp @@ -22,7 +22,7 @@ extern void spawnstate(playerent *d); void CACBot::Spawn() { // Init all bot variabeles - m_pMyEnt->nextprimary = 2 + rnd(5); // 2011jan18:ft: 2 == GUN_CARBINE, GUN_SHOTGUN, GUN_SUBGUN, GUN_SNIPER, GUN_ASSAULT - if CPISTOL is activated this needs a FIXME to rnd(6) + m_pMyEnt->nextprimary = 2 + rnd(5); // 2 == GUN_CARBINE, GUN_SHOTGUN, GUN_SUBGUN, GUN_SNIPER, GUN_ASSAULT m_pMyEnt->targetyaw = m_pMyEnt->targetpitch = 0.0f; m_pMyEnt->pBot = this; diff --git a/source/src/bot/ac_bot.h b/source/src/bot/ac_bot.h index 55d5cfe4..a2c8d8c9 100644 --- a/source/src/bot/ac_bot.h +++ b/source/src/bot/ac_bot.h @@ -14,7 +14,7 @@ #define AC_BOT_H //#define BOTDEBUG -#define MAX_WEAPONS 10 +#define MAX_WEAPONS 9 // NUM_GUNS class CACBot: public CBot { diff --git a/source/src/bot/ac_bot_ai.cpp b/source/src/bot/ac_bot_ai.cpp index e9234776..a17be56a 100644 --- a/source/src/bot/ac_bot_ai.cpp +++ b/source/src/bot/ac_bot_ai.cpp @@ -24,7 +24,6 @@ weaponinfo_s WeaponInfoTable[MAX_WEAPONS] = { TYPE_AUTO, 0.0f, 25.0f, 3.0f, 60.0f, 10 }, // SUBGUN { TYPE_SNIPER, 10.0f, 125.0f, 3.0f, 200.0f, 3 }, // SNIPER { TYPE_AUTO, 20.0f, 80.0f, 3.0f, 150.0f, 6 }, // ASSAULT - { TYPE_AUTO, 0.0f, 0.0f, 3.0f, 0.0f, 6 }, // CPISTOL { TYPE_GRENADE, 5.0f, 30.0f, 3.0f, 50.0f, 1 }, // GRENADE { TYPE_AUTO, 0.0f, 50.0f, 3.0f, 50.0f, 0 } // AKIMBO }; diff --git a/source/src/clientgame.cpp b/source/src/clientgame.cpp index 3f859330..97198667 100644 --- a/source/src/clientgame.cpp +++ b/source/src/clientgame.cpp @@ -442,7 +442,6 @@ void deathstate(playerent *pl) { if(showscoresondeath) showscores(true); setscope(false); - setburst(false); if(editmode) toggleedit(true); if(pl->team == TEAM_SPECT) spectatemode(SM_FLY); else if(team_isspect(pl->team)) spectatemode(SM_FOLLOW1ST); @@ -458,7 +457,6 @@ void spawnstate(playerent *d) // reset player state not persistent if(d==player1) { setscope(false); - setburst(false); } if(d->deaths==0) d->resetstats(); } @@ -790,7 +788,6 @@ void respawnself() } showscores(false); setscope(false); - setburst(false); lasthit = 0; spawnplayer(player1); player1->lifesequence++; diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index e31356e2..e8727333 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -616,7 +616,6 @@ void parsemessages(int cn, playerent *d, ucharbuf &p, bool demo = false) if(editmode) toggleedit(true); showscores(false); setscope(false); - setburst(false); player1->respawn(); player1->lifesequence = getint(p); player1->health = getint(p); diff --git a/source/src/console.cpp b/source/src/console.cpp index 02c3c5ff..cfc9ba17 100644 --- a/source/src/console.cpp +++ b/source/src/console.cpp @@ -304,7 +304,6 @@ void saycommand(char *init) // turns input to the comman { SDL_EnableUNICODE(saycommandon = (init!=NULL)); setscope(false); - setburst(false); if(!editmode) keyrepeat(saycommandon); copystring(cmdline.buf, init ? escapestring(init, false, true) : ""); DELETEA(cmdaction); diff --git a/source/src/entity.h b/source/src/entity.h index c99e9226..78f34190 100644 --- a/source/src/entity.h +++ b/source/src/entity.h @@ -53,7 +53,7 @@ struct entity : persistent_entity } }; -enum { GUN_KNIFE = 0, GUN_PISTOL, GUN_CARBINE, GUN_SHOTGUN, GUN_SUBGUN, GUN_SNIPER, GUN_ASSAULT, GUN_CPISTOL, GUN_GRENADE, GUN_AKIMBO, NUMGUNS }; +enum { GUN_KNIFE = 0, GUN_PISTOL, GUN_CARBINE, GUN_SHOTGUN, GUN_SUBGUN, GUN_SNIPER, GUN_ASSAULT, GUN_GRENADE, GUN_AKIMBO, NUMGUNS }; #define valid_weapon(g) ((g) >= GUN_KNIFE && (g) < NUMGUNS) #define reloadable_gun(g) ((g) != GUN_KNIFE && (g) != GUN_GRENADE) diff --git a/source/src/hudgun.h b/source/src/hudgun.h index 18fabcfc..5414719c 100644 --- a/source/src/hudgun.h +++ b/source/src/hudgun.h @@ -115,7 +115,6 @@ void preload_hudguns() { loopi(NUMGUNS) { - if(i == GUN_CPISTOL) continue; defformatstring(path)("weapons/%s", guns[i].modelname); loadmodel(path); } diff --git a/source/src/protos.h b/source/src/protos.h index 5a55fdfb..f48a5135 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -915,7 +915,6 @@ extern void addgib(playerent *d); extern playerent *playerincrosshair(); extern int magsize(int gun); extern void setscope(bool activate); -extern void setburst(bool activate); extern void intersectgeometry(const vec &from, vec &to); extern int intersect(playerent *d, const vec &from, const vec &to, vec *end = NULL); extern bool intersect(entity *e, const vec &from, const vec &to, vec *end = NULL); diff --git a/source/src/renderhud.cpp b/source/src/renderhud.cpp index 59bcd6c7..0b6b3191 100644 --- a/source/src/renderhud.cpp +++ b/source/src/renderhud.cpp @@ -187,7 +187,7 @@ void loadcrosshair(const char *type, const char *filename) } else if(strchr(type, '.')) { // old syntax "loadcrosshair filename type", remove this in 2020 - const char *oldcrosshairnames[CROSSHAIR_NUM + 1] = { "default", "teammate", "scope", "knife", "pistol", "carbine", "shotgun", "smg", "sniper", "ar", "cpistol", "grenades", "akimbo", "" }; + const char *oldcrosshairnames[CROSSHAIR_NUM + 1] = { "default", "teammate", "scope", "knife", "pistol", "carbine", "shotgun", "smg", "sniper", "ar", "grenades", "akimbo", "" }; index = getlistindex(filename, oldcrosshairnames, false, 0); if(index > 2) index -= 3; else index += NUMGUNS; @@ -338,7 +338,7 @@ void drawequipicons(playerent *p) // weapons int c = p->weaponsel->type != GUN_GRENADE ? p->weaponsel->type : getprevweaponsel(p), r = 0; - if(c==GUN_AKIMBO || c==GUN_CPISTOL) c = GUN_PISTOL; // same icon for akimb & pistol + if(c==GUN_AKIMBO) c = GUN_PISTOL; // same icon for akimb & pistol if(c>3) { c -= 4; r = 1; } if(p->weaponsel && valid_weapon(p->weaponsel->type)) drawequipicon(HUDPOS_WEAPON*2, 1650, c, r); diff --git a/source/src/rendermodel.cpp b/source/src/rendermodel.cpp index c6be403a..9586e253 100644 --- a/source/src/rendermodel.cpp +++ b/source/src/rendermodel.cpp @@ -916,7 +916,6 @@ void preload_playermodels() if(dynshadow && playermdl) playermdl->genshadows(8.0f, 4.0f); loopi(NUMGUNS) { - if(i == GUN_CPISTOL) continue; defformatstring(vwep)("weapons/%s/world", guns[i].modelname); model *vwepmdl = loadmodel(vwep); if(dynshadow && vwepmdl) vwepmdl->genshadows(8.0f, 4.0f); diff --git a/source/src/server.cpp b/source/src/server.cpp index 88eb4bac..2b8bafaf 100644 --- a/source/src/server.cpp +++ b/source/src/server.cpp @@ -3367,7 +3367,7 @@ void process(ENetPacket *packet, int sender, int chan) case SV_WEAPCHANGE: { int gunselect = getint(p); - if(!valid_weapon(gunselect) || gunselect == GUN_CPISTOL) break; + if(!valid_weapon(gunselect)) break; cl->state.gunselect = gunselect; QUEUE_MSG; break; @@ -3466,7 +3466,7 @@ void process(ENetPacket *packet, int sender, int chan) { int ls = getint(p), gunselect = getint(p); if((cl->state.state!=CS_ALIVE && cl->state.state!=CS_DEAD && cl->state.state!=CS_SPECTATE) || - ls!=cl->state.lifesequence || cl->state.lastspawn<0 || !valid_weapon(gunselect) || gunselect == GUN_CPISTOL) break; + ls!=cl->state.lifesequence || cl->state.lastspawn<0 || !valid_weapon(gunselect)) break; cl->state.lastspawn = -1; cl->state.spawn = sg->gamemillis; cl->autospawn = false; diff --git a/source/src/server.h b/source/src/server.h index a9a29b9f..e24d5d3f 100644 --- a/source/src/server.h +++ b/source/src/server.h @@ -504,7 +504,6 @@ itemstat ammostats[NUMGUNS] = { 60, 90, 90, S_ITEMAMMO }, // subgun { 10, 20, 15, S_ITEMAMMO }, // sniper { 40, 60, 60, S_ITEMAMMO }, // assault - { 30, 45, 75, S_ITEMAMMO }, // cpistol { 1, 0, 3, S_ITEMAMMO }, // grenade {100, 0, 100, S_ITEMAKIMBO} // akimbo }; @@ -531,7 +530,6 @@ guninfo guns[NUMGUNS] = { "subgun", "A-ARD/10 SMG", S_SUBGUN, S_RSUBGUN, 1650, 80, 16, 0, 0, 0, 45, 15, 30, 1, 2, 5, 25, 50, 188, 1, true }, { "sniper", "AD-81 SR", S_SNIPER, S_RSNIPER, 1950, 1500, 82, 25, 0, 0, 50, 50, 5, 4, 4, 10, 85, 85, 100, 1, false }, { "assault", "MTP-57 AR", S_ASSAULT, S_RASSAULT, 2000, 120, 22, 0, 0, 0, 18, 30, 20, 0, 2, 3, 25, 50, 115, 1, true }, - { "cpistol", "nop", S_PISTOL, S_RPISTOL, 1400, 120, 19, 0, 0, 0, 35, 10, 15, 6, 5, 6, 35, 50, 125, 1, false }, // temporary { "grenade", "Grenades", S_NULL, S_NULL, 1000, 650, 200, 0, 20, 6, 1, 1, 1, 3, 1, 0, 0, 0, 0, 3, false }, { "pistol", "Akimbo", S_PISTOL, S_RAKIMBO, 1400, 80, 18, 0, 0, 0, 50, 10, 20, 6, 5, 4, 15, 25, 115, 1, true }, }; @@ -545,8 +543,8 @@ const char *rolenames[CR_NUM + 1] = { "unarmed", "master", "admin", "owner", "" const char *killmessages[2][NUMGUNS] = { - { "", "busted", "picked off", "peppered", "sprayed", "punctured", "shredded", "busted", "", "busted" }, - { "slashed", "", "", "splattered", "", "headshot", "", "", "gibbed", "" } + { "", "busted", "picked off", "peppered", "sprayed", "punctured", "shredded", "", "busted" }, + { "slashed", "", "", "splattered", "", "headshot", "", "gibbed", "" } }; #define C(x) (1<<(SC_##x)) diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index d24f74de..b3ec6b5d 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -14,7 +14,7 @@ struct sgray { sgray sgr[SGRAYS*3]; -int burstshotssettings[NUMGUNS] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; +int burstshotssettings[NUMGUNS] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, }; void updatelastaction(playerent *d, int millis = lastmillis) { @@ -868,7 +868,7 @@ VARP(accuracy,0,0,1); void r_accuracy(int h) { int i = player1->weaponsel->type; - if(accuracy && valid_weapon(i) && i != GUN_CPISTOL) + if(accuracy && valid_weapon(i)) { int x_offset = 2 * HUDPOS_X_BOTTOMLEFT, y_offset = 2 * (h - 1.75 * FONTH); string line; @@ -889,7 +889,7 @@ void r_accuracy(int h) void accuracyinfo() { vector lines; - loopi(NUMGUNS) if(i != GUN_CPISTOL && accuracym[i].shots) + loopi(NUMGUNS) if(accuracym[i].shots) { float acc = 100.0 * accuracym[i].hits / (float)accuracym[i].shots; string line; @@ -1075,7 +1075,6 @@ void weapon::equipplayer(playerent *pl) pl->weapons[GUN_GRENADE] = new grenades(pl); pl->weapons[GUN_KNIFE] = new knife(pl); pl->weapons[GUN_PISTOL] = new pistol(pl); - pl->weapons[GUN_CPISTOL] = new cpistol(pl); pl->weapons[GUN_CARBINE] = new carbine(pl); pl->weapons[GUN_SHOTGUN] = new shotgun(pl); pl->weapons[GUN_SNIPER] = new sniperrifle(pl); @@ -1538,111 +1537,6 @@ int assaultrifle::dynspread() { return shots > 2 ? 55 : ( info.spread + ( shots float assaultrifle::dynrecoil() { return info.recoil + (rnd(8)*-0.01f); } bool assaultrifle::selectable() { return weapon::selectable() && !m_noprimary && this == owner->primweap; } -// combat pistol - -cpistol::cpistol(playerent *owner) : gun(owner, GUN_CPISTOL), bursting(false) {} -bool cpistol::selectable() { return false; /*return weapon::selectable() && !m_noprimary && this == owner->primweap;*/ } -void cpistol::onselecting() { weapon::onselecting(); bursting = false; } -void cpistol::ondeselecting() { bursting = false; } -bool cpistol::reload(bool autoreloaded) -{ - bool r = weapon::reload(autoreloaded); - if(owner==player1 && r) { bursting = false; } - return r; -} - -bool burst = false; -int burstshots = 0; - -bool cpistol::attack(vec &targ) // modded from gun::attack // FIXME -{ - int attackmillis = lastmillis-owner->lastaction - gunwait; - if(attackmillis<0) return false; - gunwait = reloading = 0; - - if (bursting) burst = true; - - if(!owner->attacking) - { - shots = 0; - checkautoreload(); - return false; - } - - attackmillis = lastmillis - min(attackmillis, curtime); - updatelastaction(owner, attackmillis); - if(!mag) - { - audiomgr.playsoundc(S_NOAMMO); - gunwait += 250; - owner->lastattackweapon = NULL; - shots = 0; - checkautoreload(); - return false; - } - - owner->lastattackweapon = this; - shots++; - if (burst) burstshots++; - - if(!burst) owner->attacking = false; - - vec from = owner->o; - vec to = targ; - from.z -= weaponbeloweye; - - attackphysics(from, to); - - hits.setsize(0); - raydamage(from, to, owner); - attackfx(from, to, 0); - - if ( burst && burstshots > 2 ) - { - gunwait = 500; - burstshots = 0; - burst = owner->attacking = false; - } - else if ( burst ) - { - gunwait = 80; - } - else - { - gunwait = info.attackdelay; - } - mag--; - - sendshoot(from, to, attackmillis); - return true; -} - -void cpistol::setburst(bool enable) -{ - if(this == owner->weaponsel && !reloading && owner->state == CS_ALIVE) - { - bursting = enable; - } -} - -void setburst(bool enable) -{ - if(player1->weaponsel->type != GUN_CPISTOL) return; - if(intermission) return; - cpistol *cp = (cpistol *)player1->weaponsel; - cp->setburst(enable); - if (!burst) - { - if ( enable && burstshots == 0 ) attack(true); - } - else - { - if ( burstshots == 0 ) burst = player1->attacking = enable; - } -} - -COMMAND(setburst, "d"); - // pistol pistol::pistol(playerent *owner) : gun(owner, GUN_PISTOL) {} @@ -1751,7 +1645,6 @@ void setscope(bool enable) COMMANDF(setscope, "i", (int *on) { setscope(*on != 0); }); - void shoot(playerent *p, vec &targ) { if(p->state!=CS_ALIVE || p->weaponchanging) return; diff --git a/source/src/weapon.h b/source/src/weapon.h index ab8ebf57..b69ea3ab 100644 --- a/source/src/weapon.h +++ b/source/src/weapon.h @@ -143,18 +143,6 @@ struct assaultrifle : gun bool selectable(); }; -struct cpistol : gun -{ - bool bursting; - cpistol(playerent *owner); - bool reload(bool autoreloaded); - bool selectable(); - void onselecting(); - void ondeselecting(); - bool attack(vec &targ); - void setburst(bool enable); -}; - struct pistol : gun { pistol(playerent *owner);