From: Markus Armbruster Date: Sun, 9 May 2004 20:55:30 +0000 (+0000) Subject: (M_TORP_SHELLS): New. X-Git-Tag: v4.2.15~22 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=d7e697b1f9a798eed412787d5ccd7d919167c7cf (M_TORP_SHELLS): New. (perform_mission, torp, fire_torp, quiet_bigdef, use_ammo): Use it. Closes #917459. --- diff --git a/include/ship.h b/include/ship.h index 1ccb8ee16..9887beb2e 100644 --- a/include/ship.h +++ b/include/ship.h @@ -180,7 +180,7 @@ struct mchrstr { #define M_CHOPPER bit(16) /* can hold choppers */ #define M_OILER bit(17) /* can re-fuel ships */ #define M_SUPPLY bit(18) /* Can supply units/sects/ships */ -/* M_XUNIT will be automatically set in init_global() if m_nland > 0 */ +/* M_UNIT will be automatically set in init_global() if m_nland > 0 */ #define M_UNIT bit(19) /* Can carry units */ #define M_ANTIMISSILE bit(20) /* Shoot down missile */ @@ -218,4 +218,8 @@ struct mlist { #define CN_CONSTRUCTION (2) #define CN_ERROR (-1) +enum { + M_TORP_SHELLS = 3 /* number of shells used by a torpedo */ +}; + #endif /* _SHIP_H_ */ diff --git a/src/lib/commands/mfir.c b/src/lib/commands/mfir.c index 3637f79d9..4d8413d23 100644 --- a/src/lib/commands/mfir.c +++ b/src/lib/commands/mfir.c @@ -811,10 +811,10 @@ quiet_bigdef(int attacker, struct emp_qelem *list, natid own, natid aown, continue; if (mchr[(int)ship.shp_type].m_flags & M_SUB) { - if (shell < 3) + if (shell < M_TORP_SHELLS) shell += supply_commod(ship.shp_own, ship.shp_x, ship.shp_y, - I_SHELL, 3 - shell); - if (shell < 3) + I_SHELL, M_TORP_SHELLS - shell); + if (shell < M_TORP_SHELLS) continue; if (gun < 1) continue; @@ -1008,7 +1008,7 @@ use_ammo(struct emp_qelem *list) item = ship.shp_item; if (mchr[(int)ship.shp_type].m_flags & M_SUB) { shell = item[I_SHELL]; - shell--; + shell -= M_TORP_SHELLS - 1; if (shell < 0) shell = 0; item[I_SHELL] = shell; diff --git a/src/lib/commands/torp.c b/src/lib/commands/torp.c index fa1b01073..01261df8f 100644 --- a/src/lib/commands/torp.c +++ b/src/lib/commands/torp.c @@ -88,11 +88,10 @@ torp(void) if ((mchr[(int)sub.shp_type].m_flags & M_TORP) == 0) continue; shells = sub.shp_item[I_SHELL]; - if (shells < 3) - shells += - supply_commod(sub.shp_own, sub.shp_x, sub.shp_y, I_SHELL, - 3 - shells); - if (sub.shp_item[I_GUN] == 0 || shells < 3) + if (shells < M_TORP_SHELLS) + shells += supply_commod(sub.shp_own, sub.shp_x, sub.shp_y, + I_SHELL, M_TORP_SHELLS - shells); + if (sub.shp_item[I_GUN] == 0 || shells < M_TORP_SHELLS) continue; if (sub.shp_item[I_MILIT] < 1) continue; @@ -116,11 +115,10 @@ torp(void) continue; } shells = sub.shp_item[I_SHELL]; - if (shells < 3) - shells += - supply_commod(sub.shp_own, sub.shp_x, sub.shp_y, I_SHELL, - 3 - shells); - if (sub.shp_item[I_GUN] == 0 || shells < 3) { + if (shells < M_TORP_SHELLS) + shells += supply_commod(sub.shp_own, sub.shp_x, sub.shp_y, + I_SHELL, M_TORP_SHELLS - shells); + if (sub.shp_item[I_GUN] == 0 || shells < M_TORP_SHELLS) { pr("Ship #%d has insufficient armament\n", sub.shp_uid); continue; } @@ -169,7 +167,7 @@ torp(void) techfact(sub.shp_tech, ((double)sub.shp_frnge)); erange = (double)roundrange(erange); pr("Effective torpedo range is %.1f\n", erange); - shells -= 3; + shells -= M_TORP_SHELLS; sub.shp_item[I_SHELL] = shells; putship(sub.shp_uid, &sub); mcp = &mchr[(int)sub.shp_type]; @@ -409,11 +407,11 @@ fire_torp(struct shpstr *sp, struct shpstr *targ, int range, int ntargets) shells = sp->shp_item[I_SHELL]; - if (shells < 3) + if (shells < M_TORP_SHELLS) shells += supply_commod(sp->shp_own, sp->shp_x, sp->shp_y, I_SHELL, - 3 - shells); + M_TORP_SHELLS - shells); - if (sp->shp_item[I_GUN] == 0 || shells < 3) + if (sp->shp_item[I_GUN] == 0 || shells < M_TORP_SHELLS) return 0; if (sp->shp_item[I_MILIT] < 1) @@ -426,7 +424,7 @@ fire_torp(struct shpstr *sp, struct shpstr *targ, int range, int ntargets) return 0; /* All set.. fire! */ - shells -= 3; + shells -= M_TORP_SHELLS; sp->shp_item[I_SHELL] = shells; putship(sp->shp_uid, sp); diff --git a/src/lib/subs/mission.c b/src/lib/subs/mission.c index f9c2f3879..9e9898032 100644 --- a/src/lib/subs/mission.c +++ b/src/lib/subs/mission.c @@ -562,11 +562,11 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, if (gun < 1) continue; shell = sp->shp_item[I_SHELL]; - if (shell < 3) + if (shell < M_TORP_SHELLS) shell += supply_commod(sp->shp_own, sp->shp_x, sp->shp_y, I_SHELL, - 3 - shell); - if (shell < 3) + M_TORP_SHELLS - shell); + if (shell < M_TORP_SHELLS) continue; range = sp->shp_effic * techfact(sp->shp_tech, @@ -579,7 +579,7 @@ perform_mission(coord x, coord y, natid victim, struct emp_qelem *list, if (!line_of_sight((s_char **)0, x, y, gp->x, gp->y)) continue; - sp->shp_item[I_SHELL] = shell - 3; + sp->shp_item[I_SHELL] = shell - M_TORP_SHELLS; mobcost = sp->shp_effic * 0.01 * sp->shp_speed; mobcost = (480.0 / (mobcost + techfact(sp->shp_tech, mobcost)));