* 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
* Make them const correct
* Pass the size parameter as a size_t (as it's a memory/buffer-size we're passing here)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4823 4a71c877-e1ca-e34f-864e-861f7616d084
* In function lev_error use ASSERT always (even in non-debug builds as it will still output a message there)
* Don't use a single function levGetErrorData for retrieving the line no & piece of text being parsed, instead use two functions levGetErrorLine and levGetErrorText
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4822 4a71c877-e1ca-e34f-864e-861f7616d084
* Make it return it's result rather than write it in an output pointer (NULL will indicate failure instead of `false`)
* Don't use two nested if-statements, use a single if-statement with double conditions using logical and (&&)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4819 4a71c877-e1ca-e34f-864e-861f7616d084
* Perform non-greedy matching to match string literals (the data type in WRF files)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4813 4a71c877-e1ca-e34f-864e-861f7616d084
* Make log output use LOG_SCRIPT instead of LOG_NEVER and LOG_WARNING
* Some random cleanups
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4788 4a71c877-e1ca-e34f-864e-861f7616d084
* Use strlcpy for copying strings instead of snprintf "%s"
* Don't cast the return value from vsnprintf to (void)
* When we use va_start make sure to use va_end as well...
* Fix indentation
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4785 4a71c877-e1ca-e34f-864e-861f7616d084