- Codechange: Change windows unicode handling and allow a pure non-unicode build to function. (r9055)
- Codechange: [win32] Update VS2003 and VS2005 project files to build in UNICODE mode. When making a release it is probably better to make two binaries, one without UNICODE, the other with, guaranteeing full Win9x compatibility (UNICODE with MSLU also works, without it's even better). (r9082)
- Codechange: Be more lenient when trimming UTF-8 strings and don't terminate the string when an invalid encoding is encountered, but only focus on maximum length. (r9083)
- Fix: [win9x] Clipboard paste for Windows95 (doesn't have CF_UNICODETEXT) correctly converts the input to the current locale. (r9084)
- Fix: [win32] Move the initialisation of _codepage (non-UNICODE) to winMain as a dedicated server, or different video driver will not have a win32 messageloop. (r9085)
- Fix: [win32] Rewrite keyboard input and handle all keypresses in a WM_CHAR event. This saves us from doing translation (ToUnicode[Ex], ToAscii[Ex]), and we get free IME-input support as a plus. (r9086)
- Fix: support compilation with the Vista Platform SDK (r8974)
- Fix: resolution doubled in cfg file when fullscreen mode used (r8994)
- Fix: win32 dedicated console now doesn't need an extra 'enter' to fully quit (r9074)
- OS/2 compilation with GCC (thanks to Paul Smedley and TrueBrain for help) (r8042)
- [win32] *nprintf functions are broken, 'len = count' wasn't handled (r8089, r8090)
- MSVC solution files will make openttd THE startup project (r8112)
since it uses UTF16 for file access. To keep os-specific code to a minimum, OpenTTD
uses UTF8 internally everywhere, converting to OS-type when needed (save/load/screenshot/etc.)
This increases the execution speed a lot since GCC can't detect the OTTD macro as an endian conversion
while Apple's code uses the instruction to convert endian instead of a series of instructions to produce the same result
Since we don't have that many endian conversions in the game, overall performance should not increase noteworthy
this increased speed when reading unaligned data (like strings)
test showed this to increase speed by 5,6% when drawing the mini map on PPC OSX
the tradeoff is that now it will crash if a Big Endian computer don't support unaligned reading
but it should easily fixable in stdafx.h if it turns out to be a problem
-Indentation
-Whitespace
-DeMorgan's Law
-Test with NULL or 0 for non-booleans
-'\0' instead of 0 for chars
-Remove redundantly redundant comments (like DoFoo(); // Do foo)
-Join multiple short lines with a single statement
-Split single lines with multiple statements
-Avoid assignments in if
- Benchmark shows that NTP is now around 10x faster than NPF.
- Made IsTunnelTile macro to determine if a tile is a tunnel.
- Added some useful debugging functions for making tiles red / getting accurate timestamps.
- Remove old depot finding algorithm.
- Disable warning for signed/unsigned comparisons.
Added RandomTile/RandomTileSeed functions to generate a random tile.
Changed landscape routines so they don't assume that the Y map side is a power of two. (support for this is not complete, though)
Changed some frequently used map macros to not compute the values each time.
Silence some warnings on MSVC.