Commit graph

404 commits

Author SHA1 Message Date
6fee3f4535 (CANT_REACH): New. Use it instead of CANT_HAPPEN() where possible.
(oops): Cope with NULL argument passed by CANT_REACH().
2006-04-17 17:36:07 +00:00
f576dd6694 (verify_row): uid check was too strict. 2006-04-05 18:47:02 +00:00
11e09910aa Fix the previous revision. 2006-04-05 18:15:07 +00:00
6fdac645ba (bestownedpath, owned_and_navigable): Terrain parameter isn't really
used, remove it.  Use null bigmap argument to ignore terrain (flying),
non-null for navigation.  Callers changed.
2006-04-05 09:50:45 +00:00
abb9ae2338 (bestownedpath): Return NULL on long path instead of "?". Terminate
returned path with 'h'.  This makes BestShipPath() and BestAirPath()
more similar to BestLandPath().  Simplify callers.
2006-04-05 09:30:38 +00:00
9c27a771b3 (BestAirPath): Some callers assumed non-null return value must be the
first argument.  Fix them.  Simplify bestownedpath().
2006-04-05 09:13:03 +00:00
462bc9e7b2 (owned_and_navigable): Rework rev. 1.18: do check the real sector, but
only if it's owned or allied.  Check it before the bmap, and do it
just like shp_check_nav() does (should use common code).
2006-04-05 08:51:50 +00:00
8d68043668 (bestownedpath): Fix test of end sector for terrain string starting
with 'R'.  Broken in 4.2.2.  No such terrain strings occur.
2006-03-29 16:12:00 +00:00
7f37ecb680 (owned_and_navigable): Do not check the real sector, only the bmap.
Checking the real sector leaks information, which can be abused to
test whether an arbitrary sector is unfriendly or an inefficient
harbor or bridge, at the cost of some ship mobility (I think).
Initially broken ca. 1993, went through several changes, but the leak
survived them all.
2006-03-29 16:06:30 +00:00
8383f33229 (as_data): Use void * for userdata member and userdata parameter of
callbacks.  Users changed.
2006-03-28 21:00:00 +00:00
aa5a8ec0dc (bp_init): Use semantically correct return type instead of s_char *.
Caller changed.
2006-03-28 20:42:57 +00:00
bd2673a6e4 Remove superflous casts. 2006-03-28 19:51:48 +00:00
2ff3fe97a2 (unit_map): Don't use snxtsct(), it obeys conditionals. Use
snxtsct_area().  Callers march() and navi() clearly don't want it to
use conditionals.  navi() used to zap them (just removed).  march()
doesn't, which was a bug similar to #785447.  It's less clear for
caller map().  I'd argue that conditionals apply to map's argument,
the unit number, not to the map itself.  draw_map() zaps them anyway.
2006-03-27 18:45:20 +00:00
38f4026aee (unit_map): Simplify. 2006-03-27 18:42:18 +00:00
b49bfd7814 (unit_interdict, knockdown): Simplify. No functional change. 2006-03-26 13:55:29 +00:00
8cd3845b08 Remove useless multiplications with sizeof(char) and sizeof(s_char).
Replace by literal 1 in other contexts.
2006-03-26 10:16:08 +00:00
0d0a305bf3 Remove silly superflous parenthesis. 2006-03-26 07:46:49 +00:00
8054aafb9a (u_char, u_short, u_int): BSDisms. Figuring out whether sys/types.h
defines them would be possible, but isn't worth the trouble.  Replace
by unabbreviated types.
2006-03-25 07:05:34 +00:00
21bf6b41d4 Use NULL instead of (FOO *)0, it's easier to read. 2006-03-23 20:48:49 +00:00
3252f8a907 (dirchar, neighsects, login_coms, lookup_list, g_distptrs, level_easy)
(level_log, levelnames): Internal linkage.
2006-03-23 20:32:29 +00:00
211a56489b (ef_open): Zero cache size (empty EFF_MEM file) can lead to null cache
on some systems, which confuses assertions.  Force non-zero size.
2006-03-06 18:23:41 +00:00
f5a9284867 Update known contributors comment. 2006-02-24 21:35:27 +00:00
7457fef9e7 (update_wantmin, update_policy_check, demand_check, upda): Remove the
ability to switch off demand updates by setting update_wantmin to
zero.  Setting update_demandpolicy to UDDEM_DISABLE does the job.

(update_policy_check): Fix lower bound for blitz_time.
2006-02-24 19:02:01 +00:00
38fdf1ba43 (config_tables, custom_tables, read_config_tables, read_custom_tables)
(read_config_table_file, read_custom_table_file): Rename.
2006-02-23 18:31:23 +00:00
99a1450c98 (EFF_CUSTOM): New.
(read_config_table_file): Set it.
(show_custom): Show it.
(vers): Use it.
2006-02-23 08:37:46 +00:00
9559abb506 (verify_fail): New.
(verify_row): Use it.
2006-02-19 17:08:35 +00:00
6bd0eabb21 (ef_init): Remove superflous size initialization for tables that are
initialized from builtin config files.
(ef_init_chr): Unused, remove.
2006-02-19 17:07:04 +00:00
fe53057977 (xuheader): Fix misleading diagnostics.
(xundump1): Fix table shrinking.
2006-02-19 17:03:33 +00:00
24910a0681 Fix the previous revision. 2006-02-19 15:42:48 +00:00
3a73dce58e Permit field repetition in each part of vertically split tables,
provided the values all match:
(caseen): New.
(xundump): Initialize and finalize it.
(xundump2): Update it.
(deffld): Deal with repetition.
(fldval_must_match): New, considers repetition as well as NSC_CONST.
(setnum, setstr): Use it.
2006-02-19 15:25:35 +00:00
c12cc62875 (need_uid, is_partial): Rename.
(xuheader1, chkflds): Collect all code dealing with index field of
vertically split tables in chkflds().
2006-02-19 15:15:40 +00:00
9a30f30107 (builtindir): New econfig key, variable and make variable.
(subst.in): Substitute it.  Fix prerequisites.
(read_builtin_tables): New.
(main): Call it.  This doesn't do anything, because no builtin tables
have been defined.
2006-02-19 07:04:30 +00:00
bd65a84eb5 New way to read configuration tables:
(config_tables): New econfig key.
(read_config_tables): New, implements config_tables.
(main): Call it.  Need to call ef_init() and chdir(configdir) first.
(ef_init_srv): Don't call ef_init(), since main() did it already.

Remove old way to do the same:
(ef_load): Remove, along with calls.
(empfile): Set configuration tables' member file back to NULL.
2006-02-18 13:57:52 +00:00
8b97f10ea3 (verify_row): Passed uninitialized val->val_as.sym.len to nstr_exec_val(),
which broke NSC_STRINGY.
2006-02-14 19:54:08 +00:00
c73613ea26 (defellipsis, chkflds, xundump2, need_uid): Use new need_uid to
require index field in all parts of a split table.
2006-02-14 18:04:44 +00:00
fc676cb53a Support vertically split configuration tables (human-readable only):
(ellipsis): New.
(xuheader1): Initialize it.  Compute nflds.  Allow repetition of index
field in continued tables.
(xundump): Don't set nflds.
(xufldname, defellipsis): Accept ... and call new defellipsis().
(xufldname, chkflds): Update and elaborate check for missing fields,
move it to new chkflds().  Require repetition of index field in
continued tables.
(xundump2): New, factored out of xundump().  Parse continued tables.
2006-02-14 07:30:06 +00:00
46fcc27c6f Xdumps don't contain records not in use, cope with that:
(xundump1, setnum, setstr, getobj, cur_id): Delay table lookup until
first field is about to be assigned.
(xundump1): Record largest ID, because it's no longer given by final
value of row.

(xuheader1, xundump1, xundump): Move initialization of cur_type to
xundump().
2006-02-13 21:22:05 +00:00
eae1e590cc (xundump1): Don't suppress table growth just because it has NSC_CONST
selectors.  That's wrong for EF_SECTOR_CHR and EF_PRODUCT.  Don't
allow table shrinking just because it has no NSC_CONST selectors.
That's wrong for EF_NEWS_CHR.  Allow it for game state and unit
characteristics.
(has_const): Unused, remove.
2006-02-13 21:16:41 +00:00
1a4deb9fde (setnum): Fix computation of old for cases NSC_XCOORD, NSC_YCOORD. 2006-02-13 20:44:18 +00:00
9e362de34f (xuheader, xundump): Return -2 for empty input, so it can be
distinguished from bad input.
2006-02-13 19:07:31 +00:00
6ed05a024c (setstr): Fix for NSC_STRINGY without terminating zero. 2006-02-13 07:06:47 +00:00
4ff857507e Doc fix. 2006-02-12 23:01:47 +00:00
86a0a43960 (xuheader1): New, factored out of xundump(). 2006-02-12 15:52:10 +00:00
10096cbf98 (xundump): Rev. 1.44 broke ef_load(). Fix. 2006-02-09 18:34:57 +00:00
66669be655 (xundump, xundump1): Fix treatment of empty lines. 2006-02-09 07:10:18 +00:00
Ron Koenderink
f76a128f5c (mtsymset, xutrailer, xundump1): Remove unused variables. 2006-02-09 00:28:28 +00:00
f5621c5a49 Accept fields out of order in human-readable syntax (indexes must
still be in order), support abbreviated field names:
(nxt_sel, nxt_idx, nxtfld, ca4fld): Remove.
(nflds, fldca, fldidx, caflds, getfld): New.
(xundump): Initialize and finalize them.
(xundump1): New, factored out of xundump().
(deffld): Match names, record field order in fldca[], fldidx[] for
getfld().  Use caflds[] to detect duplicates.
(xufldname): Catch negative index.  Used to pass it to deffld(), which
now interprets it as no index.
(setnum, setstr, setsym, mtsymset, add2symset): Use getfld().

(xufld): Improve error message.

(setstr): Fix for NULL strings.

(xuheader): Catch null ef_cadef().

(xuheader): Don't oops when an unexpected table can't be undumped.
2006-02-08 23:23:48 +00:00
28787caa95 Improve error messages. 2006-02-08 22:44:22 +00:00
b11aa718ce The separation between parsing and semantic actions is awkward and
leaks memory; rework it:
(deffld): New; semantic action for field headers.
(xufldname): Use it instead of storing a value for xucolumnheader().
(xucolumnheader): Remove, use xuflds() directly instead.
(setnum, setstr, setsym): New; semantic actions for field values.
(xufld): Use it instead of storing a value for xuloadrow().
(xuloadrow): Remove.  Was incomplete.
(xufldname, xufld, xuflds): Remove parameter values.  Callers
changed.
(cur_type, cur_obj, nxt_sel, nxt_idx, nxtfld, ca4fld, getsymtab): New
helpers.
(xundump): Initialize them.
(enum_value, value, freeflds, xunsymbol): Remove.

(mtsymset, add2symset): New.
(xufld): Use them to build a symbol set along the parse.

(xufldname, xufld, xuheader, xutrailer, xundump): Increment lineno
when and only when a linefeed is consumed, to make sure it is correct.
Move some semantic checks so that errors get reported for the correct
line.

(xundump): Use compare filenames as pointers, not strings, when
checking whether to reset lineno.

(xundump): Keep empfile[type] consistent during parse, to make
ef_ptr() usable.

(xundump): Don't call ep->init() on sentinels.
(xuinitrow): Unused, remove.
2006-02-08 22:32:53 +00:00
054d59b323 (xundump): Precise value for need_sentinel. 2006-02-08 22:02:13 +00:00