void setweapon(const char *name, bool force = false) { int gun = getweapon(name); //////////////////////////////////////////////////////////////////////////// if(player1->state!=CS_ALIVE || gun<GUN_FIST || gun>GUN_BOW) return; //////////////////////////////////////////////////////////////////////////// if(force || player1->ammo[gun]) gunselect(gun, player1); else playsound(S_NOAMMO); }
void nextweapon(int dir, bool force = false) { if(player1->state!=CS_ALIVE) return; dir = (dir < 0 ? NUMGUNS-1 : 1); int gun = player1->gunselect; loopi(NUMGUNS) { gun = (gun + dir)%NUMGUNS; if(force || player1->ammo[gun]) break; } if(gun != player1->gunselect) gunselect(gun, player1); else playsound(S_NOAMMO); }
void cycleweapon(int numguns, int *guns, bool force = false) { if(numguns<=0 || player1->state!=CS_ALIVE) return; int offset = 0; loopi(numguns) if(guns[i] == player1->gunselect) { offset = i+1; break; } loopi(numguns) { int gun = guns[(i+offset)%numguns]; if(gun>=0 && gun<NUMGUNS && (force || player1->ammo[gun])) { gunselect(gun, player1); return; } } playsound(S_NOAMMO); }