[Fix] Some obscure bugs like not being able to shoot secondary weapons right away.
This commit is contained in:
parent
090bcb96c8
commit
6dd9de9835
14
src/pilot.c
14
src/pilot.c
@ -270,7 +270,9 @@ static void pilot_shootWeapon(Pilot* p, PilotOutfit* w, const unsigned int t) {
|
|||||||
delay = outfit_delay(w->outfit);
|
delay = outfit_delay(w->outfit);
|
||||||
|
|
||||||
/* Check to see if weapon is ready. */
|
/* Check to see if weapon is ready. */
|
||||||
if((SDL_GetTicks() - w->timer) < (unsigned int)(delay/quantity)) return;
|
if((w->timer > 0) &&
|
||||||
|
(SDL_GetTicks() - w->timer) < (unsigned int)(delay/quantity))
|
||||||
|
return;
|
||||||
/* Regular bolt weapons. */
|
/* Regular bolt weapons. */
|
||||||
if(outfit_isBolt(w->outfit)) {
|
if(outfit_isBolt(w->outfit)) {
|
||||||
/* Enough energy? */
|
/* Enough energy? */
|
||||||
@ -287,7 +289,7 @@ static void pilot_shootWeapon(Pilot* p, PilotOutfit* w, const unsigned int t) {
|
|||||||
|
|
||||||
/** @todo Handle warmup stage. */
|
/** @todo Handle warmup stage. */
|
||||||
w->state = PILOT_OUTFIT_ON;
|
w->state = PILOT_OUTFIT_ON;
|
||||||
w->beamid = beam_start(w->outfit, p->solid, p->solid->dir,
|
w->beamid = beam_start(w->outfit, p->solid->dir,
|
||||||
&p->solid->pos, &p->solid->vel, p->id, t);
|
&p->solid->pos, &p->solid->vel, p->id, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,9 +748,11 @@ int pilot_addOutfit(Pilot* pilot, Outfit* outfit, int quantity) {
|
|||||||
/* since pilot has only one afterburner it's handled at the end. */
|
/* since pilot has only one afterburner it's handled at the end. */
|
||||||
|
|
||||||
/* Grow the outfits. */
|
/* Grow the outfits. */
|
||||||
pilot->outfits = realloc(pilot->outfits, (pilot->noutfits+1)*sizeof(PilotOutfit));
|
pilot->outfits = realloc(pilot->outfits, (pilot->noutfits+1)*sizeof(PilotOutfit));
|
||||||
pilot->outfits[pilot->noutfits].outfit = outfit;
|
pilot->outfits[pilot->noutfits].outfit = outfit;
|
||||||
pilot->outfits[pilot->noutfits].quantity = q;
|
pilot->outfits[pilot->noutfits].quantity = q;
|
||||||
|
pilot->outfits[pilot->noutfits].timer = 0;
|
||||||
|
pilot->outfits[pilot->noutfits].beamid = 0;
|
||||||
|
|
||||||
/* Can't be over max. */
|
/* Can't be over max. */
|
||||||
if(pilot->outfits[pilot->noutfits].quantity > outfit->max) {
|
if(pilot->outfits[pilot->noutfits].quantity > outfit->max) {
|
||||||
|
Loading…
Reference in New Issue
Block a user