]> git.pond.sub.org Git - empserver/commitdiff
Remove option TRADESHIPS, customize table ship-chr instead
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 22 May 2011 14:49:17 +0000 (16:49 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 25 Jun 2011 14:52:08 +0000 (16:52 +0200)
Trade ships are now enabled when a ship type with capability trade
exists.  No such type exists by default; to enable trade ships,
deities have to customize table ship-chr.

Before, trade ship types were ignored when option TRADESHIPS was
disabled.  Except for xdump ship-chr, which happily dumped unusable
trade ship types.

19 files changed:
include/econfig-spec.h
info/History.t
info/Options.t
info/Ship-types.t
info/Trade-ships.t
info/payoff.t
info/scuttle.t
info/version.t
src/lib/commands/buil.c
src/lib/commands/orde.c
src/lib/commands/payo.c
src/lib/commands/scra.c
src/lib/commands/scut.c
src/lib/commands/vers.c
src/lib/global/constants.c
src/lib/global/options.c
src/lib/global/ship.config
src/lib/subs/show.c
src/lib/update/nav_ship.c

index e6124145ce6a0ad6cee1da7624ce6d36617fb65f..0b0c8b157977419ec20472822597a10e75beb028 100644 (file)
@@ -190,8 +190,6 @@ EMPCF_OPT("SUPER_BARS", opt_SUPER_BARS,
     "Make bars immune to damage")
 EMPCF_OPT("TECH_POP", opt_TECH_POP,
     "Technology costs more as population rises")
-EMPCF_OPT("TRADESHIPS", opt_TRADESHIPS,
-    "Enable Tradeships")
 EMPCF_OPT("TREATIES", opt_TREATIES,
     "Allow treaties")
 
index e6499bdeabff6b0c08cefd095f69de3749aee9c6..fcf387e1e3755265dcc3cd0eead0b84d53aaeda4 100644 (file)
@@ -238,9 +238,9 @@ RAILWAYS and rollover_avail.  Options SHOWPLANE, SHIPNAMES, NEWPOWER,
 NEW_STARVE, NEW_WORK, ORBIT and PLANENAMES are no longer configurable.
 Options NUKEFAILDETONATE, SLOW_WAR, SNEAK_ATTACK, FUEL, GRAB_THINGS
 and SHIP_DECAY are gone.  Options PINPOINTMISSILE, DEMANDUPDATE,
-UPDATESCHED, DRNUKE, NONUKES, NEUTRON, BIG_CITY, DEFENSE_INFRA,
-NO_LCMS, NO_HCMS and NO_OIL got replaced by more flexible
-configuration.
+UPDATESCHED, DRNUKE, TRADESHIPS, NONUKES, NEUTRON, BIG_CITY,
+DEFENSE_INFRA, NO_LCMS, NO_HCMS and NO_OIL
+got replaced by more flexible configuration.
 
 The xdump command lets client writers access more game more easily.
 
index aff702585dfddb2f54afa49138f4ea3cb267c92f..b3a8eceaa066de41bb9ed02f994c6fc009bec6b2 100644 (file)
@@ -12,7 +12,6 @@ EASY_BRIDGES: bridges can be built from any sector
 SUPER_BARS:    gold bars aren't destroyed by shelling or bombing
 ALL_BLEED:     you get tech bleed from all countries, not just allies
 NOMOBCOST:     ships pay 0 mob to fire. Subs pay 1/2 a sect's movement cost
-TRADESHIPS:    you can build/nav/scuttle trade ships to make money
 RES_POP:       Research affects max sector population.
 NOFOOD:                No food is required.
 BLITZ:         Players get infinite BTU's.
index 53bd43c73be4f11c1f91812cece88d2dfd560a79..8cfa85b5dfdea38d6f32a126dc4f66682d503b43 100644 (file)
@@ -256,7 +256,7 @@ The vessel can be used as a semi-landing craft. (see info assault)
 .L sub-torp
 The vessel can torpedo submarines
 .L trade
-The vessel is a trade ship. (only if TRADESHIPS are enabled)
+The vessel is a trade ship.
 .L supply
 The vessel can supply other units.
 Unless the vessel is a submarine, it can load non-light land units.
index 3a3c69c2051a205b1b05d867f9e1098c1fb4fa77..1548dd672654db8c8ed0ec20142dca255a802cc7 100644 (file)
@@ -2,7 +2,7 @@
 .NA Trade-ships "How to use trade ships"
 .LV Basic
 Trade ships are special ships, with a different function than most Empire
-ships. They are in the game only if the TRADESHIPS option is enabled.
+ships. They are in the game only if the deity enabled them.
 .s1
 Trade ships simulate internal or external trade. In the real world, countries
 make goods that they can make cheaply, ship them somewhere they're expensive,
index e329f4d88811239c56641781c07e294d486d5b6c..34ed6e3c24fbd6f29d34db7620f5c4301400d122 100644 (file)
@@ -35,6 +35,4 @@ shp#     ship type  orig x,y       x,y    dist $$
 1 ship
 .FI
 .s1
-Note that this command is only enabled if the TRADESHIPS option is in use.
-.s1
 .SA "Trade-ships, sonar, torpedo, upgrade, Ships"
index 7c1d7a638f32963ed4610a4e291af6d49c19a54a..d7cde2f8c4d02c3b98d1f8003681b3b07160dcc3 100644 (file)
@@ -13,7 +13,7 @@ be transferred to land (if a unit, or if the ship is in a harbor), or will die
 .s1
 Units on ships may not be scuttled.
 .s1
-Scuttling trade-ships (if the TRADESHIPS option is enabled) has other effects.
+Scuttling trade-ships has other effects.
 See info Trade-ships.
 .s1
 .SA "scrap, Trade-ships, build, ship, plane, land, Ships, Planes, LandUnits"
index 162da8d93c2741da9cd8bdaa0d274684f9b45b54..e76bd6c5c8134fcdee1d74d8d820b7816f81a5a0 100644 (file)
@@ -81,7 +81,7 @@ Options enabled in this game:
 Options disabled in this game:
        AUTO_POWER, BRIDGETOWERS, GO_RENEW, GUINEA_PIGS, HIDDEN, LOANS,
        LOSE_CONTACT, MARKET, MOB_ACCESS, NO_FORT_FIRE, RES_POP, SUPER_BARS,
-       TECH_POP, TRADESHIPS
+       TECH_POP
 
 See "info Options" for a detailed list of options and descriptions.
 
index ae8bfd8dff9e7fbc6930f023246e54336b2e0eef..4c4c0299c06f8e9b80c0c07e40592e96e11d2ad9 100644 (file)
@@ -129,11 +129,8 @@ buil(void)
        break;
     case 's':
        type = ef_elt_byname(EF_SHIP_CHR, p);
-       if (type >= 0) {
+       if (type >= 0)
            rqtech = mchr[type].m_tech;
-           if ((mchr[type].m_flags & M_TRADE) && !opt_TRADESHIPS)
-               type = -1;
-       }
        break;
     case 'l':
        type = ef_elt_byname(EF_LAND_CHR, p);
index 8a96c063429050d9a6f035af659519bad4ee6cae..694bbfc57ab9cc7c64c68f2ac5bb810f61f85bc7 100644 (file)
@@ -131,12 +131,7 @@ orde(void)
            if (!*p || !strcmp(p, "-")) {
                pr("A one-way order has been accepted.\n");
            } else if (!strncmp(p, "s", 1)) {
-               if (opt_TRADESHIPS) {
-                   if (!(mchr[(int)ship.shp_type].m_flags & M_TRADE)) {
-                       pr("You can't auto-scuttle that ship!\n");
-                       return RET_SYN;
-                   }
-               } else {
+               if (!(mchr[(int)ship.shp_type].m_flags & M_TRADE)) {
                    pr("You can't auto-scuttle that ship!\n");
                    return RET_SYN;
                }
index e9b07ba606489c71f5fc420b79038e4a78eca397..1661d93389eb2d4880ed9424aa6dac805de55aa5 100644 (file)
@@ -47,10 +47,6 @@ payo(void)
     int dist;
     float cash = 0.0;
 
-    if (!opt_TRADESHIPS) {
-       pr("Tradeships are not enabled.\n");
-       return RET_FAIL;
-    }
     if (!snxtitem(&ni, EF_SHIP, player->argp[1], NULL))
        return RET_SYN;
 
index 9bad64fca75a034d7a1375ca95e910644816b3ee..d3e4eac42aef354a1cf0a9dd4d6590d5b222a551 100644 (file)
@@ -143,8 +143,7 @@ scra(void)
                   prship(&item.ship));
                continue;
            }
-           if (opt_TRADESHIPS
-               && (mchr[item.ship.shp_type].m_flags & M_TRADE)) {
+           if (mchr[item.ship.shp_type].m_flags & M_TRADE) {
                pr("WARNING: You only collect money from trade ships if you \"scuttle\" them!\n");
                sprintf(prompt,
                        "Are you really sure that you want to scrap %s (n)? ",
index 4e78b634609a30b41fdb515c393b9ccda1033ee2..46a582c533b9459077e2ab12c0547aaa420e3596 100644 (file)
@@ -125,7 +125,7 @@ scut(void)
 
        if (type == EF_SHIP) {
            mp = &mchr[(int)item.ship.shp_type];
-           if (opt_TRADESHIPS && (mp->m_flags & M_TRADE)) {
+           if (mp->m_flags & M_TRADE) {
                if (!scuttle_tradeship(&item.ship, 1))
                    continue;
            }
index cde2ce125f4a6a5096593aca8cfd5ab36ad2f48f..31116dbc9fbd8ae9a96812ffcce81ba39c885d35 100644 (file)
@@ -33,7 +33,7 @@
  *     Ken Stevens
  *     Steve McClure
  *     Ron Koenderink, 2005-2006
- *     Markus Armbruster, 2005-2010
+ *     Markus Armbruster, 2005-2011
  */
 
 #include <config.h>
@@ -44,6 +44,7 @@
 #include "ship.h"
 #include "version.h"
 
+static int have_trade_ships(void);
 static void show_custom(void);
 static void show_opts(int val);
 static char *prwrap(char *, char *, int *);
@@ -156,7 +157,7 @@ vers(void)
           -(etu_per_update / sect_mob_neg_factor));
     pr("\n");
     pr("Ships on autonavigation may use %i cargo holds per ship.\n", TMAX);
-    if (opt_TRADESHIPS) {
+    if (have_trade_ships()) {
        pr("Trade-ships that go at least %d sectors get a return of %.1f%% per sector.\n",
           trade_1_dist, trade_1 * 100.0);
        pr("Trade-ships that go at least %d sectors get a return of %.1f%% per sector.\n",
@@ -231,6 +232,18 @@ vers(void)
     return RET_OK;
 }
 
+static int
+have_trade_ships(void)
+{
+    int i;
+
+    for (i = ef_nelem(EF_SHIP_CHR) - 1; i >= 0; i--) {
+       if (mchr[i].m_flags & M_TRADE)
+           return 1;
+    }
+    return 0;
+}
+
 static void
 show_custom(void)
 {
index 64fcbabbc9aa937eec2a686cce450395b89c6eaa..fafb40559924e1d3cc135597fee2e9ba23a73a05 100644 (file)
@@ -195,7 +195,7 @@ float drnuke_const = 0.0;   /* research must be at least drnuke_const*tech */
                                 * drnuke_const is .25, you need a 75 res to
                                 * build a nuke that takes 300 tech
                                 */
-/* opt_TRADESHIPS */
+/* trade ships */
 int trade_1_dist = 8;          /* less than this gets no money */
 int trade_2_dist = 14;         /* less than this gets trade_1 money */
 int trade_3_dist = 25;         /* less than this gets trade_2 money */
@@ -204,7 +204,6 @@ float trade_2 = 0.035;              /* return on trade_2 distance */
 float trade_3 = 0.050;         /* return on trade_3 distance */
 float trade_ally_bonus = 0.20; /* 20% bonus for trading with allies */
 float trade_ally_cut = 0.10;   /* 10% bonus for ally you trade with */
-/* end opt_TRADESHIPS */
 
 int torpedo_damage = 40;       /* damage is X + 1dX + 1dX, so 40+1d40+1d40 */
 
index 0945cbf180f435023b8356aa21f2e601c65baf9f..a9487ce91dabb08562ff684b37bfc8f03a8886ca 100644 (file)
@@ -60,5 +60,4 @@ int opt_RES_POP = 0;
 int opt_SAIL = 1;
 int opt_SUPER_BARS = 0;
 int opt_TECH_POP = 0;
-int opt_TRADESHIPS = 0;
 int opt_TREATIES = 1;
index 997af0740605f0f0e9e2abc25e626f3a0e1f9f4d..b4bd2a0f52cab5df68ee4b80a25e4b800e4b6b13 100644 (file)
@@ -54,7 +54,8 @@ type name                       l_b h_b tech cost ...
  2  "cs   cargo ship"            60  40   20  500
  3  "os   ore ship"              60  40   20  500
  4  "ss   slave ship"            60  40    0  300
- 5  "ts   trade ship"           200 100   30 1750
+# Uncomment to enable trade ships
+# 5 "ts   trade ship"           200 100   30 1750
  6  "frg  frigate"               30  30    0  600
  7  "oe   oil exploration boat"  25  15   40  800
  8  "od   oil derrick"           60  60   50 1500
@@ -95,7 +96,7 @@ type name                       arm spe vis vrn frn gli nla npl nch nxl ...
  2  "cs   cargo ship"            20  25  35   3   0   0   2   0   0   1
  3  "os   ore ship"              20  25  35   3   0   0   0   0   0   1
  4  "ss   slave ship"            20  10  35   3   0   0   0   0   0   1
- 5  "ts   trade ship"            20  25  35   3   0   0   0   0   0   1
+# 5 "ts   trade ship"            20  25  35   3   0   0   0   0   0   1
  6  "frg  frigate"               50  25  25   3   1   1   2   0   0   1
  7  "oe   oil exploration boat"  10  25  15   2   0   0   0   0   0   0
  8  "od   oil derrick"           30  15  65   3   0   0   0   0   0   2
@@ -136,7 +137,7 @@ type name                       civ mil she gun pet iro dus bar foo oil  lcm hcm
  2  "cs   cargo ship"           600  50 300  50   0   0   0   0 900   0 1400 900  250   0 (supply)
  3  "os   ore ship"              30   5   0   0   0 990 990   0 200   0    0   0   45 990 ()
  4  "ss   slave ship"            20  80   0   0   0   0   0   0 200   0    0   0 1200   0 ()
- 5  "ts   trade ship"            50  50   0   0   0   0   0   0 100   0    0   0    0   0 (trade)
+# 5 "ts   trade ship"            50  50   0   0   0   0   0   0 100   0    0   0    0   0 (trade)
  6  "frg  frigate"                0  60  10   2   0   0   0   0  60   0    0   0    0   0 (semi-land)
  7  "oe   oil exploration boat"  10   5   0   0   0   0   0   0 100   1    0   0    0   0 (oil canal)
  8  "od   oil derrick"          990  80   0   0   0   0   0   0 990 990    0   0  990   0 (oil)
index 0362f6d1667cd8147faef01ed198e275525fd24e..c8f7f791a8d7e10f55a43864f2ce4d04cf1365b1 100644 (file)
@@ -83,8 +83,6 @@ make_mchr_index(struct chr_index chridx[], int tlev)
            continue;
        if (mchr[i].m_tech > tlev)
            continue;
-       if ((mchr[i].m_flags & M_TRADE) && !opt_TRADESHIPS)
-           continue;
        chridx[n].type = i;
        chridx[n].tech = mchr[i].m_tech;
        n++;
index 20b8ba0bfb2d9f22bedf1d99bcc9c7f5ad576f0a..16592dffc17b3227b38e0185d35e107880b96d5d 100644 (file)
@@ -53,8 +53,7 @@ scuttle_it(struct shpstr *sp)
           sp->shp_x, sp->shp_y, sp->shp_uid);
        return;
     }
-    if (CANT_HAPPEN(!opt_TRADESHIPS
-                   || !(mchr[sp->shp_type].m_flags & M_TRADE)))
+    if (CANT_HAPPEN(!(mchr[sp->shp_type].m_flags & M_TRADE)))
        return;
     if (!scuttle_tradeship(sp, 0)) {
        wu(0, sp->shp_own,