* Add m4 macros AC_STRLCPY_CHECK and AC_STRLCAT_CHECK for use in the autoconf script
* Don't define our implementation when HAVE_STRLCPY or HAVE_STRLCAT is defined
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4876 4a71c877-e1ca-e34f-864e-861f7616d084
* Don't store whether a research item is possible in a bitflag; use a boolean instead
* Use functions instead of macros to access research->possible
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4872 4a71c877-e1ca-e34f-864e-861f7616d084
Renaming due to name conflict with a gnu extension. Added debug versions of all the
above, that assert if a char* pointer is passed in. This means they cannot be used
with strings shorter than the shortest expected length of void*.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4865 4a71c877-e1ca-e34f-864e-861f7616d084
-counter attacks by long-ranged units (including arty)
-rewrote the way AI handles situations when it loses enemy base location while attacking it
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4863 4a71c877-e1ca-e34f-864e-861f7616d084
-added a way to check map tiles for visibility
-added a function to check for visible droids inside a certain range
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4862 4a71c877-e1ca-e34f-864e-861f7616d084
* Use $@ and $< to refer to the targets and dependencies of make rules
* Don't refer to make rule dependencies and targets by copying them!
* Putting make rules on multiple lines isn't bad, in fact it increases readability!
* Mark phony make rules (i.e. rules who's actions don't produce files) as `.PHONY`
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4846 4a71c877-e1ca-e34f-864e-861f7616d084
* Implement lazy deletion:
* Keep a counter, `resetIterationCount`, and only treat nodes that have it's `iteration` member set to the same value as valid nodes
* "Delete" all current nodes from the table by simply incrementing the `resetIterationCount` counter
* Detect upcoming overflows of `resetIterationCount`, fully clear the node-table and reset the iterator if an overflow is "pending"
Patch #1059 by Dennis Luxen and myself
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4842 4a71c877-e1ca-e34f-864e-861f7616d084
* Use ARRAY_SIZE(nodeArray[x]) to determine the amount of elements in nodeArray[x], instead of ARRAY_SIZE(nodeArray)
* Add Dennis Luxen's comment from patch #1059
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4840 4a71c877-e1ca-e34f-864e-861f7616d084
Part of patch #1059 by Dennis Luxen;
* I ripped out the iteration-counter optimisation to commit it seperately
* Some small modifications for ISO C89 compliance (MSVC requires this)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4839 4a71c877-e1ca-e34f-864e-861f7616d084
reported by Jan Dittberner. Smoke effect coordinates were not properly clipped.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4835 4a71c877-e1ca-e34f-864e-861f7616d084
* Change level_lexer.l:
* Use lev_lval to return token-data in (instead of global vars)
* Use strdup() to return strings to the parser and let the parser take care of memory clean-up (through Bison's %destructor directive)
* Use the token constants as generated by Bison (instead of our own custom enum)
* Rip out the custom state machine-like level parser from levels.c (was function levParse)
* Remove all global variables associated with this parser
* Remove the LP_* enum which was only used by this parser
* Move function lev_error to level_parser.y
* The new parser provides more verbose error messages if parsing fails
NOTE: The previous state machine-parser actually maintained state in two variables, so it was rather overly complex (quadratic complexity if you like)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4830 4a71c877-e1ca-e34f-864e-861f7616d084
* Line out fix: use spaces, not tabs
* Use the yy* macros provided by bison/flex instead of prefix*
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4828 4a71c877-e1ca-e34f-864e-861f7616d084