Build 1914
SVN-
General
I now understand SE0's
SVN handles and Git names are merged into one person.
I now understand SE0's
Make certain sprites in rotating sectors impervious against diverging from their initial position due to roundoff error accumulation. The sprites affected are those with statnums 0, STANDABLE, FX, and FALLER (also SE lights, but that shouldn't be considered permanent) contained in sectors with SE 0, 6 or 14. Fix some interpolation issues with such sprites in passing, though they still jitter on occasion. For usage examples, take a look at the updated trueror1.map.
Implementation note: the so instrumented sprites use actor[].t_data[7] to hold a magic number (0x18190000 + pivot spr idx), and t_data[8] and [9] for the initial coords relative to the pivot point.
fix NOASM=1 build
safer sprintf
* Thin out models in memory by removing unused frames. This saves 200MB with DNE on Polymer.
* fix memory corruption when loading a Polymer savegame using another renderer and then change to Polymer * fix possible crash in OSD_Exec() and uninitialized mem access in game config reader * move makeasmwriteable() to baselayer.c
* Tighter y[ud]most clamping in TROR/classic. This fixes the overdraw bug when standing on the rails in the test map.
* Voxel tweaks: horizontally scale wall-aligned ones by 5/4, make them ignore per-tile yoffset in classic (i.e. emulate Polymost; I think this is more sensible since they're not clipped to floors/ceilings anyway), make Polymost know the voxel scale * Always cull back-facing, one-sided, wall-aligned sprites (classic/Polymost), irrespective of whether it's a sprite, voxel or model. This can lead to falsely not drawing them in certain circumstances, but IMO that's preferable to visible hidden switches etc. * Change defaults for r_novoxmips to 1 and lazytileselector to 0
also fix eduke32 on x86 and include a script for compiling all four versions, packing each into a fat binary and zipping the whole pack.
Replacing 'NSApp' with the value returned from [NSApplication sharedApplication] is the last step to avoid null addresses in the x86 code. Go figure...
A couple more OSX tweaks: pull in 'nibless' SDLMain.m into tree for future hacking, fix backspace ('delete') key in OSD, almost everything to make x86 binaries actually run.
Fix mapster's command-line parsing and copy over some of the 'custom mod dir' logic, currently used in the sound board to also find files outside of GRPs.
A couple of OSX fixes: one 64-bit cleanup, compilation fix on ppc (is that ever used?), nasm command line fix for x86
A couple of tweaks for easier work with TROR:
* When TROR-joining and sectors reachable through former red walls could need displacement, ask the user; if something is wrong with the walls of the two components to join, jump to that place and print coordinates of offending wall and its point2 in the OSD * Ctrl-TAB in 2D mode now toggles filling of the currently aimed-at sector; it's not very in sync with the rest of the controls though (e.g. some commands will potentially affect each sector that contains the crosshair) * Fill sectors slightly different so that highlighted sectors above each other are easier to distinguish * In the editor, always clear the screen to a 'rainbow' of the palette before each frame. This makes no-draw ('HOM') and accidental translucency glitches stand out more clearly * a few misc. tweaks, consistency checks, and fixes
-- TROR:
* Mapster32 now makes sandwiches, too: select all floors of a bunch and 'extend them below'. This will put a new sector between the highlighted ones and the their lower neighbors and displace the z's accordingly. Make sure you have enough headroom. * To facilitate the above, RAlt now has two more modifier keys (checked at release time, as usual): for every sector that would be selected, END will select all sectors whose floor bunchnum equals the first (this is useful for sandwiching), and HOME will select all sectors whose ceiling bunchnum equals it (not very useful, but provided for completeness). * Sloping extended sectors is now checked more rigorously -- misc: * When deleting highlighted sectors with DEL, pressing LShift will now always delete them irrespective whether the mouse pointer is over one of them. This is useful for the cleanup of corrupted maps. * 2D drawing is slightly tweaked so that active walls always display over inactive ones
tweak RShift so that unnecessary gray walls aren't selected; fix ugly bug with TROR joining
game: when entering/leaving water or slime, delay changing palette by one game tic to make it look right
fix crash with RTS playback
set op support for loop highlighting with RCtrl-RShift
join sectors to a new bunch. For this, highlight exactly two connected components having the same outline and being TROR-consistent (same height etc.) and press Ctrl-J. Any ambiguity (connect c/f with f/c?, move which component?) is resolved by asking the user. Warning: hot off the keyboard and likely buggy
Increase default tile cache size to 24M in Mapster32 and add a command-line parameter '-cachesize <kilobytes>'
loop joining/sector splitting with TROR'ed sectors, rendering bugs due to slopes. change keys: [I] toggles invisibility preview, ['I] toggles sprite invisibility bit
Polymost:
* rudimentary TROR support * free mixing of multi- and single-tile pskies * Don't cull models behind you. That is, treat them like floor sprites in that respect. This way large models like corpses don't disappear from the view unexpectedly. Classic: * tweak the last row and column of the translucency table so that e.g. a transparent sprite against a FANSPRITE wall doesn't show up purple (only if Duke3D table is found) Misc.: * fixes TROR-nextwall corruption when deleting sectors * tile selector 'goto' now has also completion * I forgot a file for the non-OpenGL build last time
* Auto-grayout for plain old sectors toggled with Ctrl-A. When it is in effect, _all_ sectors which fall outside the [min ceiling z, max floor z] bounds of all active extended sectors are deactivated.
* make it possible to duplicate from extended sectors; all extensions are cleared from them * lazy hightile loading in tile selector can now be disabled in mapster32.cfg * fixes USE_OPENGL=0 build