empserver
18 years agoUse .ig to comment out stuff, it doesn't produce empty lines. v4.2.14
Markus Armbruster [Mon, 22 Mar 2004 10:40:15 +0000 (10:40 +0000)]
Use .ig to comment out stuff, it doesn't produce empty lines.

18 years agoImplement request ig, except for argument.
Markus Armbruster [Mon, 22 Mar 2004 10:34:49 +0000 (10:34 +0000)]
Implement request ig, except for argument.

18 years agoFix markup.
Markus Armbruster [Mon, 22 Mar 2004 10:12:28 +0000 (10:12 +0000)]
Fix markup.

18 years agoThe previous revision screwed up intentation.
Markus Armbruster [Mon, 22 Mar 2004 09:54:58 +0000 (09:54 +0000)]
The previous revision screwed up intentation.

18 years ago4.2.14 last minute changes.
Markus Armbruster [Mon, 22 Mar 2004 09:21:24 +0000 (09:21 +0000)]
4.2.14 last minute changes.

18 years agoCan't use gcc function attribute `format' when s_char is not plain
Markus Armbruster [Mon, 22 Mar 2004 08:51:10 +0000 (08:51 +0000)]
Can't use gcc function attribute `format' when s_char is not plain
char; gcc chokes on it.

18 years ago(configkeys): Rev 1.5 failed to update member km_func for keys s_p_etu
Markus Armbruster [Sat, 20 Mar 2004 21:33:19 +0000 (21:33 +0000)]
(configkeys): Rev 1.5 failed to update member km_func for keys s_p_etu
and adj_update.  From Marc Olzheim.

18 years agoFix RES_POP maximum population formula.
Markus Armbruster [Sat, 20 Mar 2004 21:23:26 +0000 (21:23 +0000)]
Fix RES_POP maximum population formula.

18 years agoDocument all undocumented capabilities and stats. Clarify meaning of
Markus Armbruster [Sat, 20 Mar 2004 21:21:32 +0000 (21:21 +0000)]
Document all undocumented capabilities and stats.  Clarify meaning of
land unit capability `light'.  Closes #781116.

Document submarine's ability to carry landspies.  Closes #907978.

18 years agoSaid `enemy civilians', but code happily lets you shoot your own
Markus Armbruster [Sat, 20 Mar 2004 21:13:38 +0000 (21:13 +0000)]
Said `enemy civilians', but code happily lets you shoot your own
civilians.  Fix.  Closes #905200.

Claimed security troops shoot more than you asked for.  This is
wrong.  They save you mobility.  Fix.  Closes #781117.

18 years agoDelete lie about Steve still heading Wolfpack. Closes #902831.
Markus Armbruster [Sat, 20 Mar 2004 21:02:25 +0000 (21:02 +0000)]
Delete lie about Steve still heading Wolfpack.  Closes #902831.

18 years agoUpdate for 4.2.14.
Markus Armbruster [Wed, 17 Mar 2004 07:29:39 +0000 (07:29 +0000)]
Update for 4.2.14.

18 years agoFix 4.2.10's release date to match doc/CHANGES4.X.
Markus Armbruster [Wed, 17 Mar 2004 07:24:40 +0000 (07:24 +0000)]
Fix 4.2.10's release date to match doc/CHANGES4.X.

18 years ago(lwpStackCheckUsed): Fix confusing output.
Markus Armbruster [Wed, 17 Mar 2004 07:12:31 +0000 (07:12 +0000)]
(lwpStackCheckUsed): Fix confusing output.

18 years agoShould have been removed along with the commands.
Markus Armbruster [Wed, 17 Mar 2004 07:06:45 +0000 (07:06 +0000)]
Should have been removed along with the commands.

18 years agoCommand has been commented out for ages. Remove until it isn't.
Markus Armbruster [Wed, 17 Mar 2004 07:06:45 +0000 (07:06 +0000)]
Command has been commented out for ages.  Remove until it isn't.

18 years agoRegenerated.
Markus Armbruster [Wed, 17 Mar 2004 07:04:15 +0000 (07:04 +0000)]
Regenerated.

18 years ago(main, write_newcap_script): Don't warn when resources were added,
Markus Armbruster [Wed, 17 Mar 2004 06:53:57 +0000 (06:53 +0000)]
(main, write_newcap_script): Don't warn when resources were added,
that's expected nowadays.  Warn when resources were not added.  Don't
mention the ore program, as it doesn't work and we no longer
distribute it.

18 years ago(gen_power): Force mtime update under Windows. From Ron Koenderink.
Markus Armbruster [Wed, 17 Mar 2004 06:40:44 +0000 (06:40 +0000)]
(gen_power): Force mtime update under Windows.  From Ron Koenderink.

18 years agoUpdate to match code. There's currently no command that allows trade
Markus Armbruster [Tue, 16 Mar 2004 21:24:30 +0000 (21:24 +0000)]
Update to match code.  There's currently no command that allows trade
and commodity selectors; comment them out.

18 years ago(loan_ca): Remove selector "sell".
Markus Armbruster [Tue, 16 Mar 2004 21:19:54 +0000 (21:19 +0000)]
(loan_ca): Remove selector "sell".

18 years agoTalks about files that were removed. Remove.
Markus Armbruster [Tue, 16 Mar 2004 20:15:12 +0000 (20:15 +0000)]
Talks about files that were removed.  Remove.

18 years ago(growfood): Simplify. Rev. 1.6 made it less robust against overflow;
Markus Armbruster [Tue, 16 Mar 2004 19:45:38 +0000 (19:45 +0000)]
(growfood): Simplify.  Rev. 1.6 made it less robust against overflow;
fix that.

18 years ago(produce): Fix consumed materials when production hits the 999 limit.
Markus Armbruster [Tue, 16 Mar 2004 19:25:13 +0000 (19:25 +0000)]
(produce): Fix consumed materials when production hits the 999 limit.
This can't happen currently, because produce() never gets called with
work>999.

(produce): Fix rounding of consumed materials on production backlog.
Broken by the previous revision.

18 years ago(buy, move, prod, dodistribute, produce): Obey ITEM_MAX. Previous
Markus Armbruster [Tue, 16 Mar 2004 18:56:14 +0000 (18:56 +0000)]
(buy, move, prod, dodistribute, produce): Obey ITEM_MAX.  Previous
change to move() was incomplete.

18 years ago(play_list): Cast time_t to long for printing.
Markus Armbruster [Fri, 12 Mar 2004 06:14:52 +0000 (06:14 +0000)]
(play_list): Cast time_t to long for printing.

18 years ago(sell): Simplify.
Markus Armbruster [Thu, 11 Mar 2004 22:12:49 +0000 (22:12 +0000)]
(sell): Simplify.

18 years agoFix plague formula. Fix markup.
Markus Armbruster [Thu, 11 Mar 2004 22:10:58 +0000 (22:10 +0000)]
Fix plague formula.  Fix markup.

18 years agoRemove unused variables and such. No functional changes.
Markus Armbruster [Thu, 11 Mar 2004 22:10:19 +0000 (22:10 +0000)]
Remove unused variables and such.  No functional changes.

18 years ago(getvec, putvec): No longer used, remove.
Markus Armbruster [Thu, 11 Mar 2004 22:08:16 +0000 (22:08 +0000)]
(getvec, putvec): No longer used, remove.

18 years ago(produce_sect): Unless player->simulation, work directly on item
Markus Armbruster [Thu, 11 Mar 2004 22:00:58 +0000 (22:00 +0000)]
(produce_sect): Unless player->simulation, work directly on item
arrays instead of copies made by getvec().  This is safe, because the
old code made single copies and always flushed them back into the unit
structures.  Else make copies by hand, not with getvec.
(starv_sects): Replace getvec() by direct, read-only item access.
(upd_buildeff, enlist, materials_charge, materials_cost, produce,
grow_people, growfood, trunc_people, do_feed, feed_people): Change
argument type to match uncopied item arrays.
(growfood): Obey ITEM_MAX.

18 years ago(feed_people): Simplify. No functional changes.
Markus Armbruster [Thu, 11 Mar 2004 20:20:35 +0000 (20:20 +0000)]
(feed_people): Simplify.  No functional changes.

18 years ago(do_fallout, meltitems): Work directly on item arrays instead of
Markus Armbruster [Thu, 11 Mar 2004 18:36:43 +0000 (18:36 +0000)]
(do_fallout, meltitems): Work directly on item arrays instead of
copies made by getvec().  This is safe, because the old code made
single copies and always flushed them back into the unit structures.

(meltitems): Don't claim more items were lost than existed.

18 years ago(upd_ship, upd_land, do_plague): Work directly on item arrays instead
Markus Armbruster [Thu, 11 Mar 2004 18:10:25 +0000 (18:10 +0000)]
(upd_ship, upd_land, do_plague): Work directly on item arrays instead
of copies made by getvec().  This is safe, because the new code
changes the item array precisely when the old code writes back a
changed copy.
(starv_ships, starv_units): Replace getvec() by direct, read-only item
access.
(feed_ship, feed_land): Remove parameter vec, work with sp->shp_item[]
and lp->lnd_item[] instead.
(plague_people): Change argument type to match uncopied item arrays.

18 years ago(infect_people): Remove parameters vec, eff, mobil and work with
Markus Armbruster [Thu, 11 Mar 2004 17:18:05 +0000 (17:18 +0000)]
(infect_people): Remove parameters vec, eff, mobil and work with
sp->sct_item, sp->sct_effic, sp->sct_mobil instead.  This is safe,
because the only caller passed a copy of sp->sct_item created with
getvec(), and infect_people() doesn't change it.  Caller changed.
(infect_people): Rewrite plague risk computation for clarity.

18 years ago(feed_land): Simplify. Amount of food taken from ship could be off by
Markus Armbruster [Thu, 11 Mar 2004 15:27:59 +0000 (15:27 +0000)]
(feed_land): Simplify.  Amount of food taken from ship could be off by
one due to rounding, fix.  However, the fixed code is currently
unreachable, as caller runs resupply_commod() before feed_land().
(feed_ship): Simplify.  No functional changes.

18 years ago(upd_ship, upd_land): Simplify. No functional changes.
Markus Armbruster [Thu, 11 Mar 2004 13:31:28 +0000 (13:31 +0000)]
(upd_ship, upd_land): Simplify.  No functional changes.

18 years ago(shiprepair): Remove parameter vec, work with ship->shp_item[]
Markus Armbruster [Thu, 11 Mar 2004 13:15:02 +0000 (13:15 +0000)]
(shiprepair): Remove parameter vec, work with ship->shp_item[]
instead.  This is safe, because the only caller passed a copy of the
latter created with getvec(), and shiprepair() doesn't change it.
Caller changed.

18 years ago(feed_ship): Work directly on land item arrays instead of copies made
Markus Armbruster [Thu, 11 Mar 2004 13:04:58 +0000 (13:04 +0000)]
(feed_ship): Work directly on land item arrays instead of copies made
by getvec().  This is safe, because the new code changes the item
array precisely when the old code writes back a changed copy.

18 years ago(landrepair): Remove unused parameter `vec'. Caller changed.
Markus Armbruster [Thu, 11 Mar 2004 12:57:33 +0000 (12:57 +0000)]
(landrepair): Remove unused parameter `vec'.  Caller changed.

18 years ago(feed_land): Work directly on ship item arrays instead of copies made
Markus Armbruster [Thu, 11 Mar 2004 12:51:34 +0000 (12:51 +0000)]
(feed_land): Work directly on ship item arrays instead of copies made
by getvec().  This is safe, because the new code changes the item
array precisely when the old code writes back a changed copy.

18 years ago(opt_NEWPOWER, Options, gen_power): Remove nooption NEWPOWER.
Markus Armbruster [Thu, 11 Mar 2004 10:36:55 +0000 (10:36 +0000)]
(opt_NEWPOWER, Options, gen_power): Remove nooption NEWPOWER.

(opt_NEW_STARVE, Options, feed_ship, feed_people): Remove nooption
NEW_STARVE.

(opt_NEW_WORK, Options, move, explore): Remove nooption NEW_WORK.

18 years ago(set_option, delete_option): Gripe about unknown options. If multiple
Markus Armbruster [Thu, 11 Mar 2004 10:07:38 +0000 (10:07 +0000)]
(set_option, delete_option): Gripe about unknown options.  If multiple
options have identical names in Options[], all but the first are
ignored.  This should never happen.

18 years ago(get_materials): Work directly on item arrays instead of copies made
Markus Armbruster [Thu, 11 Mar 2004 09:04:44 +0000 (09:04 +0000)]
(get_materials): Work directly on item arrays instead of copies made
by getvec().  This is safe, because the new code changes the item
array precisely when the old code writes back a changed copy.

18 years ago(opt_GRAB_THINGS, Options, get_materials): Remove option GRAB_THINGS.
Markus Armbruster [Thu, 11 Mar 2004 08:53:27 +0000 (08:53 +0000)]
(opt_GRAB_THINGS, Options, get_materials): Remove option GRAB_THINGS.

18 years ago(dodistribute): Work directly on item arrays instead of copies made by
Markus Armbruster [Wed, 10 Mar 2004 18:32:42 +0000 (18:32 +0000)]
(dodistribute): Work directly on item arrays instead of copies made by
getvec().  This is safe, because the old code made single copies and
always flushed them back into the unit structures.

18 years ago(dodeliver): Remove parameter vec, work with sp->sct_item[] instead.
Markus Armbruster [Wed, 10 Mar 2004 18:25:05 +0000 (18:25 +0000)]
(dodeliver): Remove parameter vec, work with sp->sct_item[] instead.
This is safe, because the only caller passed a copy of the latter
created with getvec(), and dodeliver() doesn't change it.  Caller
changed.  Return value no longer needed, remove.

18 years ago(populace): Remove parameter vec, work with sp->sct_item[] instead.
Markus Armbruster [Wed, 10 Mar 2004 17:59:37 +0000 (17:59 +0000)]
(populace): Remove parameter vec, work with sp->sct_item[] instead.
This is safe, because the only caller passed a copy of the latter
created with getvec(), and populace() doesn't change it.
(tax): Replace getvec() by direct, read-only item access.

18 years ago(pln_equip, mission_pln_equip): Work directly on item arrays instead
Markus Armbruster [Wed, 10 Mar 2004 13:35:54 +0000 (13:35 +0000)]
(pln_equip, mission_pln_equip): Work directly on item arrays instead
of copies made by getvec().  This is safe, because the old code made
single copies and always flushed them back into the unit structures
before flushing those.  Simplify.

18 years ago(pln_equip, mission_pln_equip): Rename item to itype. Use struct
Markus Armbruster [Wed, 10 Mar 2004 13:22:48 +0000 (13:22 +0000)]
(pln_equip, mission_pln_equip): Rename item to itype.  Use struct
ichrstr member i_vtype instead of pointer arithmetic to map from
`struct ichrstr *' to item type.  No functional changes.

18 years ago(sd, shp_missile_defense): Replace getvec() by direct, read-only item
Markus Armbruster [Wed, 10 Mar 2004 13:16:46 +0000 (13:16 +0000)]
(sd, shp_missile_defense): Replace getvec() by direct, read-only item
access.  This is correct, because the old code doesn't use the copy
after it changes the original in the unit structure.
(dd): Remove call of getvec() that has no effect.

18 years ago(quiet_bigdef): Work directly on item arrays instead of copies made by
Markus Armbruster [Wed, 10 Mar 2004 12:52:24 +0000 (12:52 +0000)]
(quiet_bigdef): Work directly on item arrays instead of copies made by
getvec().  This is safe, because the old code made single copies and
always flushed them back into the unit structures before flushing
those, in use_ammo(), or discarded both the copy and the unit
structure.

18 years agoSpelling fix. Closes #913151.
Markus Armbruster [Wed, 10 Mar 2004 07:24:56 +0000 (07:24 +0000)]
Spelling fix.  Closes #913151.

18 years agoSpelling fix. Closes #912922.
Markus Armbruster [Wed, 10 Mar 2004 07:20:56 +0000 (07:20 +0000)]
Spelling fix.  Closes #912922.

18 years ago(scra): Work directly on item arrays instead of copies made by
Markus Armbruster [Tue, 9 Mar 2004 19:32:43 +0000 (19:32 +0000)]
(scra): Work directly on item arrays instead of copies made by
getvec().  This is safe, because the old code made single copies and
always flushed them back into the unit structures before flushing
those.  To do: obey ITEM_MAX.

18 years ago(grin): Stop grinding before grind puts more than ITEM_MAX bar
Markus Armbruster [Tue, 9 Mar 2004 19:31:30 +0000 (19:31 +0000)]
(grin): Stop grinding before grind puts more than ITEM_MAX bar
constituents in sector.  Work directly on item arrays instead of
copies made by getvec().  This is safe, because the old code made
single copies and always flushed them back into the unit structures
before flushing those.

18 years ago(improve, shoo, spy, buildeff): Work directly on item arrays instead
Markus Armbruster [Tue, 9 Mar 2004 19:26:02 +0000 (19:26 +0000)]
(improve, shoo, spy, buildeff): Work directly on item arrays instead
of copies made by getvec().  This is safe, because the old code made
single copies and always flushed them back into the unit structures
before flushing those.

18 years ago(buil): Work directly on item arrays instead of copies made by
Markus Armbruster [Tue, 9 Mar 2004 14:52:21 +0000 (14:52 +0000)]
(buil): Work directly on item arrays instead of copies made by
getvec().  This is safe, because the old code made single copies and
always flushed them back into the unit structures before flushing
those.
(build_ship, build_land, build_bridge, build_nuke, build_plane,
build_tower): Change parameter type to match uncopied item arrays.

18 years agoNew option -f.
Markus Armbruster [Tue, 9 Mar 2004 14:38:59 +0000 (14:38 +0000)]
New option -f.

18 years agoUtility programs `land', `ore' and `perfect' haven't been built by
Markus Armbruster [Tue, 9 Mar 2004 14:22:57 +0000 (14:22 +0000)]
Utility programs `land', `ore' and `perfect' haven't been built by
default for ages (at least 4.2.0 '98).  Unsurprisingly, they don't
compile anymore.  Remove them.

18 years ago(lwpCreate): Avoid harmless compiler warning.
Markus Armbruster [Tue, 9 Mar 2004 13:28:16 +0000 (13:28 +0000)]
(lwpCreate): Avoid harmless compiler warning.

18 years agoThe fix in the previous rev. wasn't complete.
Markus Armbruster [Tue, 9 Mar 2004 13:20:39 +0000 (13:20 +0000)]
The fix in the previous rev. wasn't complete.

18 years ago(mobupdate): Fix argument of time().
Markus Armbruster [Tue, 9 Mar 2004 12:33:17 +0000 (12:33 +0000)]
(mobupdate): Fix argument of time().

18 years agoUse gcc function attribute `format' to catch bad format strings. Fix
Markus Armbruster [Tue, 9 Mar 2004 12:27:40 +0000 (12:27 +0000)]
Use gcc function attribute `format' to catch bad format strings.  Fix
them.  From Marc Olzheim.
Type modifier 'l' was missing in many places, probably rendering the
server useless on 64-bit hosts.
(ef_flush, ef_write, ef_extend, lwpCreate, lwpDestroy): Use conversion
specifier 'p' to print pointers.
(check_market): Fix display of loan amount.
(doland): Fix unescaped '%' (undefined behavior).
(ldump, ndump, pdump, sdump): Don't use flag '0' with conversion
specifier 's' (undefined behavior).
(dump, ldump, lost, ndump, pdump, sdump, empth_create, update_sched):
Cast time_t and pthread_t to long for printing.
(lwpStackCheck, lwpStackCheckUsed, finish_sects): Insert cast to fix
argument type on all platforms.
(prod): Remove extra argument.
(perform_mission, airdamage, retreat_land1, lwpReschedule): Format
string missed arguments.

18 years agoUse `short' instead of `unsigned short' for item storage in places
Markus Armbruster [Sat, 6 Mar 2004 07:16:45 +0000 (07:16 +0000)]
Use `short' instead of `unsigned short' for item storage in places
that were missed in the original changeset.

18 years agoFrom Ron Koenderink:
Markus Armbruster [Fri, 5 Mar 2004 19:58:07 +0000 (19:58 +0000)]
From Ron Koenderink:
(pr_land): Fix display of attack and defense value.
(dounit): New parameter farg.  Callers changed.  Use it to implement
attack and defense value editing.  Closes #872271.
(pr_ship): More space efficient display.
(pr_ship): Display defense value.
(doship): Implement defense value editing.

18 years ago(resupply_commod, s_commod, use_supply, has_supply): Work directly on
Markus Armbruster [Fri, 5 Mar 2004 19:36:24 +0000 (19:36 +0000)]
(resupply_commod, s_commod, use_supply, has_supply): Work directly on
item arrays instead of copies made by getvec().  This is safe, because
the old code made single copies and always flushed them back into the
unit structures before flushing those.

18 years ago(use_supply): Fix the trickery designed to avoid resupply from itself.
Markus Armbruster [Fri, 5 Mar 2004 19:28:05 +0000 (19:28 +0000)]
(use_supply): Fix the trickery designed to avoid resupply from itself.
Currently, use_supply() is only called for artillery, where the
trickery is not needed, so this fix isn't observable.  Not sure whether
it would be needed if use_supply() were called for supply units.

18 years ago(has_supply): Fix the trickery designed to avoid resupply from itself.
Markus Armbruster [Fri, 5 Mar 2004 18:31:22 +0000 (18:31 +0000)]
(has_supply): Fix the trickery designed to avoid resupply from itself.
Not sure the trickery is needed.  Also avoid `might be used
uninitialized' warning.

18 years ago(s_commod): When !ACTUALLY_DOIT, recursive land unit resupply didn't
Markus Armbruster [Fri, 5 Mar 2004 17:10:25 +0000 (17:10 +0000)]
(s_commod): When !ACTUALLY_DOIT, recursive land unit resupply didn't
work, because the effect of the resupply was immediately undone by an
untimely getvec().

18 years ago(s_commod): Don't zap supply unit fuel on recursive resupply. No idea
Markus Armbruster [Fri, 5 Mar 2004 16:36:55 +0000 (16:36 +0000)]
(s_commod): Don't zap supply unit fuel on recursive resupply.  No idea
why it was coded that way; it doesn't make sense.  No supply units
using fuel exist in the stock game.

18 years ago(s_commod): Clarify and comment the trickery required to make the
Markus Armbruster [Fri, 5 Mar 2004 16:30:30 +0000 (16:30 +0000)]
(s_commod): Clarify and comment the trickery required to make the
recursion work.  By the way, resuppling from supply units in unit id
order is a greedy algorithm, which is quite inappropriate for the
problem.

18 years ago(gen_power, addtopow): Call addtopow() directly on item arrays instead
Markus Armbruster [Fri, 5 Mar 2004 13:20:11 +0000 (13:20 +0000)]
(gen_power, addtopow): Call addtopow() directly on item arrays instead
of copies made by getvec().  This is obviously correct, since there
are no writes.

18 years ago(att_move_in_off): Don't put more than ITEM_MAX food into the
Markus Armbruster [Fri, 5 Mar 2004 13:14:28 +0000 (13:14 +0000)]
(att_move_in_off): Don't put more than ITEM_MAX food into the
assaulted sector.  Simplify some more.

18 years ago(att_move_in_off): The lunchbox code was unnecessary general,
Markus Armbruster [Fri, 5 Mar 2004 13:04:12 +0000 (13:04 +0000)]
(att_move_in_off): The lunchbox code was unnecessary general,
therefore had unreachable code.  Which was also buggy.  Simplify.

18 years agoReplace getvec() by direct, read-only item access in some cases where
Markus Armbruster [Fri, 5 Mar 2004 12:05:33 +0000 (12:05 +0000)]
Replace getvec() by direct, read-only item access in some cases where
that's obviously correct.

18 years ago[START_UNITS] (deity_build_land): Replace variable access in disabled
Markus Armbruster [Fri, 5 Mar 2004 11:55:13 +0000 (11:55 +0000)]
[START_UNITS] (deity_build_land): Replace variable access in disabled
code missed in the previous revision.

18 years agoReplace getvec() by direct, read-only item access in some cases where
Markus Armbruster [Fri, 5 Mar 2004 10:38:58 +0000 (10:38 +0000)]
Replace getvec() by direct, read-only item access in some cases where
that's obviously correct.

18 years ago(getilist, att_get_combat): Simplify. No functional changes.
Markus Armbruster [Fri, 5 Mar 2004 08:05:58 +0000 (08:05 +0000)]
(getilist, att_get_combat): Simplify.  No functional changes.

18 years ago(putvec): Saturate and log error on underflow/overflow, don't just
Markus Armbruster [Fri, 5 Mar 2004 07:59:29 +0000 (07:59 +0000)]
(putvec): Saturate and log error on underflow/overflow, don't just
truncate.

18 years ago(sctstr, shpstr, lndstr): Use `short' instead of `unsigned short' for
Markus Armbruster [Fri, 5 Mar 2004 07:56:50 +0000 (07:56 +0000)]
(sctstr, shpstr, lndstr): Use `short' instead of `unsigned short' for
item storage.  Rationale: Permitted values are 0..M, where M depends
on the container.  The largest M is ITEM_MAX (9999).  Benign
overflow/underflow occurs at those limits.  Catastrophic
overflow/underflow occurs at the limits of the underlying data type.
For `unsigned short', any underflow is catastrophic.  For `short',
benign undeflow happens long before catastrophic underflow.  Moreover,
unsigned arithmetic tends to trip up unwary programmers.

18 years ago(deli, do_demo, lnd_sweep, guerrilla): Saturate items at ITEM_MAX.
Markus Armbruster [Fri, 5 Mar 2004 06:48:57 +0000 (06:48 +0000)]
(deli, do_demo, lnd_sweep, guerrilla): Saturate items at ITEM_MAX.
With variables, item increases beyond the capacity of variables
(65535) were ignored here.

This should cover all item changes not going through putvec().

18 years ago(ITEM_MAX): New, value 9999.
Markus Armbruster [Fri, 5 Mar 2004 06:34:34 +0000 (06:34 +0000)]
(ITEM_MAX): New, value 9999.
(give, deliver_it): Use it instead of 9990.
(load_comm_ship, load_comm_land, rese): Use it instead of 9999.
(thre): Use it instead of 10000.
(check_market, explore, move, pln_dropoff): Use it instead of 32767.
(unload_it): Use it instead of 99999 (which couldn't possibly work,
but what do you expect from the autonav code).

18 years ago(load_comm_ship, load_comm_land): Partial rewrite for clarity. Fix
Markus Armbruster [Thu, 4 Mar 2004 20:05:01 +0000 (20:05 +0000)]
(load_comm_ship, load_comm_land): Partial rewrite for clarity.  Fix
`are we loading' tests.  Closes #752493 and #965504.

18 years ago(FALLOUT_MAX): New.
Markus Armbruster [Thu, 4 Mar 2004 16:19:50 +0000 (16:19 +0000)]
(FALLOUT_MAX): New.
(doland, detonate, spread_fallout): Use it.  With variables, fallout
beyond the capacity of variables (65535) was ignored, except in
doland(), where it saturated at 9999, and spread_fallout, where it
could overflow.  Now it always saturates at FALLOUT_MAX.

18 years ago(MINES_MAX): New.
Markus Armbruster [Thu, 4 Mar 2004 15:54:46 +0000 (15:54 +0000)]
(MINES_MAX): New.
(doland, mine, landmine, setsector, pln_dropoff): Use it.  With
variables, mining beyond the capacity of variables (65535) was
ignored.  Now the mines saturate at MINES_MAX.

18 years ago(pln_dropoff): Restructure for clarity and to avoid `might be used
Markus Armbruster [Thu, 4 Mar 2004 15:45:34 +0000 (15:45 +0000)]
(pln_dropoff): Restructure for clarity and to avoid `might be used
uninitialized' warning.

18 years ago(pln_dropoff): The previous revision screwed up output; fix.
Markus Armbruster [Thu, 4 Mar 2004 15:08:00 +0000 (15:08 +0000)]
(pln_dropoff): The previous revision screwed up output; fix.

18 years ago(sctstr): Member sct_che encoded number of che and their target.
Markus Armbruster [Thu, 4 Mar 2004 13:49:25 +0000 (13:49 +0000)]
(sctstr): Member sct_che encoded number of che and their target.
Simplify.  Split into member sct_che (number) and sct_che_target.
Users changed.
(get_che_cnum, set_che_cnum, get_che_value, get_che_value): Che
encoding/decoding functions; remove.
(CHE_MAX): Move from var.h to sect.h.
(prsect, doland): Print / edit the new field.

18 years agoSectors need space for items, deliveries and distribution thresholds.
Markus Armbruster [Wed, 3 Mar 2004 16:54:22 +0000 (16:54 +0000)]
Sectors need space for items, deliveries and distribution thresholds.
To save space, the ancients invented `variables': a collection of
key-value pairs, missing means zero value, space for `enough' keys.
This complicates the code, as assigning to a `variable' can fail for
lack of space.  Over time, `enough' increased, and for quite some time
now `variables' have been *wasting* space.  This changeset replaces
them, except in struct mchrstr, struct lchrstr and struct pchrstr,
where they are read-only, and will be replaced later.  It is only a
first step; further cleanup is required.  To simplify and minimize
this necessarily huge changeset, the new item[] arrays have an unused
slot 0, and the old variable types V_CIVIL, ... are still defined, but
must have the same values as the item types I_CIVIL, ...

18 years ago(plague_people): Log and repair bad plague stage.
Markus Armbruster [Wed, 3 Mar 2004 13:20:46 +0000 (13:20 +0000)]
(plague_people): Log and repair bad plague stage.

18 years ago(genobject, genchrstr): Unused, remove.
Markus Armbruster [Wed, 3 Mar 2004 10:23:07 +0000 (10:23 +0000)]
(genobject, genchrstr): Unused, remove.

18 years ago(fileinit): Invalid cast sct_init(); a call couldn't possibly work.
Markus Armbruster [Wed, 3 Mar 2004 10:17:53 +0000 (10:17 +0000)]
(fileinit): Invalid cast sct_init(); a call couldn't possibly work.
Luckily, it isn't called.  Remove.
(ef_fileinit): Unused, remove.

18 years ago(nameofitem, produce, check, fire_dchrg, send_reacting_units_home,
Markus Armbruster [Wed, 3 Mar 2004 09:39:50 +0000 (09:39 +0000)]
(nameofitem, produce, check, fire_dchrg, send_reacting_units_home,
do_map_set, upd_land, nav_check_atdest, produce, upd_ship): Remove
unused parameters.  Callers changed.

18 years ago(diss, player_coms): Command `dissolve' has been disabled at least
Markus Armbruster [Wed, 3 Mar 2004 08:20:45 +0000 (08:20 +0000)]
(diss, player_coms): Command `dissolve' has been disabled at least
since the days of Chainsaw (early '90s), and the code smells bad.
Bury it.

18 years ago(trade_desc): Ignore non-items when printing load. It used to print
Markus Armbruster [Tue, 2 Mar 2004 20:59:04 +0000 (20:59 +0000)]
(trade_desc): Ignore non-items when printing load.  It used to print
the plague as item, which indexed ichr[] out of bounds, which leads to
crash or bogus output.

18 years ago(genitem, ship, plane, land): Remove unused member sell & equivalents.
Markus Armbruster [Mon, 1 Mar 2004 17:21:40 +0000 (17:21 +0000)]
(genitem, ship, plane, land): Remove unused member sell & equivalents.
(genitem_ca, ship_ca, plane_ca, land_ca): Remove selector "sell".
(comstr, trdstr): Members trd_price, com_price have no effect.  Use
them instead of trd_maxprice, com_maxprice and remove the latter.
(commodity_ca, trade_ca): Remove selector "maxprice".

18 years ago(s_commod): Move initialization of `min' before first use.
Markus Armbruster [Mon, 1 Mar 2004 14:23:44 +0000 (14:23 +0000)]
(s_commod): Move initialization of `min' before first use.
(itemname): Unused, remove.

18 years ago(shp_missile_defense): Move big assignment out of if condition for
Markus Armbruster [Mon, 1 Mar 2004 14:21:11 +0000 (14:21 +0000)]
(shp_missile_defense): Move big assignment out of if condition for
clarity.

18 years ago(carriersatxy): Use `&&' instead of somewhat confusing `&'.
Markus Armbruster [Mon, 1 Mar 2004 14:18:37 +0000 (14:18 +0000)]
(carriersatxy): Use `&&' instead of somewhat confusing `&'.