Pull Request #125 was to fix Issue #124. However, as reported by a
user, this fix broke the water. This is a partial reversion of those
changes to get the water working again. The fix from Pull #125 will
need to be examined.
Previously, dAtoi would be called on arbitrary strings delimited
only by the / character. Now, Sim::findObject actually checks that
object handles (strings starting with a digit) actually only contain
digits or slashes.
Specifically:
* Made update bits constants protected so that derived classes can
use them - especially NextFreeMask! IIRC, most classes make these
constants public, though there's no real reason to.
* Made potentialEnterObject virtual so that derived classes can
substitute their own logic.
Before this function would iterate through every server-side object to
find a MissionArea. Now, it stores the server object in a static member
smServerObject. This member is updated in onAdd and onRemove, and returned
by getServerObject.
screenScale represents the current zoom factor, but may need some
revision because I'm not sure if what it's doing is technically correct.
It is used to multiply the culling distance for cells, as well as the
fading distance.
IMPROVEMENT: By default we stop rendering all Player shadows when in
first person and 'renderFirstPerson' is disabled. Added flag
'firstPersonShadows' to disable this behavior.
- Prevent stack corruption in a few places
- Use correct type in printfs
- Reduce type conversions in EngineApi & dAto*
- Fix compilation on GCC
- Tidy up code
- ConsoleValue class is now the base value class.
- ConsoleValueRef is now used to supply function parameters. Values are disposable.
- Script functions return values instead of just strings where possible.
- Variables can be disposable strings
- Bytecode changed
Fix the issues with console method parameters and fields which prevented missions from loading.