I notice recently on xatrix server after running round collecting weapons/armour for a bit and getting into a battle then if I say...run out of rockets for the rl and I keep pressing 'fire' it used to default to the railgun as weapon of choice but now when I run out of rockets/shells/grenades I default to the chaingun (if I have picked it up) even after picking up the rg.I usually try and avoid picking up the chain but sometimes I end up with one and it's quite annoying, especially when I am playing without sound to find myself shooting the bloody thing.Is there any way I can make it default to the rail rather than chaingun or is it built into the mod/server settings?
Well low and behold the item lists in g_item.c are capitilized and the lists of items in NoAmmoWeaponChange are not. Using string compare this is not a problem. However now that string compare is not used, the switching becomes case sensitive. So for example the Ripper which is written "Ionripper" in g_items.c is being referenced by NoAmmoWeaponChange as "ionripper" which is why the game never ever switches to the ion ripper.
Quadz, what is the most recent version of Nick's gamex86.dll that you run and do you have a copy of the source?
cvs diff -u -r startcvs diff: Diffing .Index: g_utils.c===================================================================RCS file: /var/cvs/public/quake2plus-tsmod/g_utils.c,vretrieving revision 1.1.1.1retrieving revision 1.2diff -u -r1.1.1.1 -r1.2--- g_utils.c 1 Apr 2007 06:06:44 -0000 1.1.1.1+++ g_utils.c 3 Jul 2007 17:06:44 -0000 1.2@@ -538,7 +538,10 @@ while (1) {- tr = gi.trace (ent->s.origin, ent->mins, ent->maxs, ent->s.origin, NULL, MASK_PLAYERSOLID);+ // OLD: tr = gi.trace (ent->s.origin, ent->mins, ent->maxs, ent->s.origin, NULL, MASK_PLAYERSOLID);++ // %%quadz - SIAMESE SPAWN FIX: band-aid for maps without spawn pads+ tr = gi.trace (ent->s.origin, ent->mins, ent->maxs, ent->s.origin, NULL, CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER); if (!tr.ent) break;Index: g_weapon.c===================================================================RCS file: /var/cvs/public/quake2plus-tsmod/g_weapon.c,vretrieving revision 1.1.1.1retrieving revision 1.2diff -u -r1.1.1.1 -r1.2--- g_weapon.c 1 Apr 2007 06:06:44 -0000 1.1.1.1+++ g_weapon.c 2 Apr 2007 01:12:08 -0000 1.2@@ -1353,6 +1353,7 @@ int len, i; int oldlen = 8000; vec3_t forward, right, up;+ int was_quadded = (ent->dmg > 200); // %%quadz -- add quad trap suction!! O RLY??? YA RLY!! if (ent->timestamp < level.time) {@@ -1518,8 +1519,9 @@ len = VectorLength (vec); if (best->client) {+ int scalar = was_quadded? 1000 : 250; // %%quadz -- add quad trap suction! VectorNormalize (vec);- VectorMA (best->velocity, 250, vec, best->velocity);+ VectorMA (best->velocity, scalar, vec, best->velocity); } else {Index: p_weapon.c===================================================================RCS file: /var/cvs/public/quake2plus-tsmod/p_weapon.c,vretrieving revision 1.1.1.1retrieving revision 1.3diff -u -r1.1.1.1 -r1.3--- p_weapon.c 1 Apr 2007 06:06:44 -0000 1.1.1.1+++ p_weapon.c 3 Jul 2007 17:07:19 -0000 1.3@@ -260,7 +260,7 @@ if ( ent->client->pers.inventory[ITEM_INDEX (FindItem ("cells"))] && ent->client->pers.inventory[ITEM_INDEX (FindItem ("ionripper"))]) {- ent->client->newweapon = FindItem ("ionrippergun");+ ent->client->newweapon = FindItem ("ionripper"); // %%quadz 070620 - fixed typo return; //Nick - 02/11/2005 - Missing? }@@ -1793,7 +1793,7 @@ #define TRAP_TIMER 5.0 #define TRAP_MINSPEED 300-#define TRAP_MAXSPEED 700+#define TRAP_MAXSPEED 1400 // %%quadz: was: 700 void weapon_trap_fire (edict_t *ent, qboolean held) {
Uhhh... are you sure about that?