Build 1954
SVN-
General
fix a typo that made TROR-nextwall corruptions only detected for the ceiling and write an auto-correction routine for inconsistencies with them.
SVN handles and Git names are merged into one person.
fix a typo that made TROR-nextwall corruptions only detected for the ceiling and write an auto-correction routine for inconsistencies with them.
* Clean up after myself. It seems that Polymost isn't very clean with handling texture IDs sometimes, so switching between the two GL renderers could mess them up with the last revision. This is fixed now by always uninitializing Polymer when changing from it to another renderer.
* New shade/visibility calculation code, which is activated with 'r_usenewshading' (on by default), and is closer to the classic look. Also tweak the FOGSCALE macro to have approximately the same fog distance with all renderers. * Mapster32: END modifier to RShift. If it's pressed when RShift is released, sprites which are in grayed out sectors are also selected; Make changing shade affect all highlighted sprites in 3D mode (when aiming at one of them). * some debug code to watch out for suspicious glGenTexture/glDeleteTextures calls, not active.
Janitorial work part 2, perfect for a rainy day. This fixes a lot of leaks, both on the client side as well as for memory allocated by OpenGL. If you had crashes after a few times of restartvid'ing in Polymer, this should fix it.
A bit of cleanup with memory issues.
First, it is now possible to disable the memcache (which is there to cache the texcache) by setting the new cvar 'r_memcache' to 0. Do this if you're constrained on memory or getting crashes when e.g. doing vidrestart often. Also, the memcache will disable itself (and free its storage, if it's there) the first time it fails to allocate. Fix a strcpy with identical arguments in game.c and a couple of uninitialized mem accesses related to Polymer lights.
fix stupid crash with Alt-C (picnum replacer)
Build fix for OSX/PowerPC
Make useractor's <actortype> bit 4 mean 'this actor will not move by itself' to make it possible to have it in a rotating sector with full rounding correction. No token name is provided because the three others come from CON and I don't want to clutter the namespace; fix the editor issue where the box wasn't shown on occasion in the tile selector (8-bit)
VP8 video playback as (side-by-side) replacement of ANM moving pictures.
Usage: For an ANM file <somefile>.anm/ANM, EDuke32 looks for <somefile>.ivf, which is the VP8 stream transported by an IVF container. It can be extracted from a WebM file with e.g. mkvextract tracks <filename>.webm 1:<filename>.ivf (part of Mkvtoolnix, the Matroska toolset) Libvpx is required, and the 'YUV'-->RGB conversion is implemented using a fragment shader, so it's for OpenGL modes only. Also, this commit doesn't enable the code. Unfinished: sound, aspect correction for fullscreen w/ non-square pixels, ... ? --- Make MAXNODESPERLINE in engine_priv.h actually a macro that depends on MAXYSAVES and MAXDIM instead of using the obsolete precomputed value. I think this might have been the cause for the latest patched-up overhead view crash.
Make smostcnt an int32 to prevent overflow (and subsequent crash) with too many saved positions; In Mapster, make it possible to bunch-join an extended with a non-extended floor inner to the first one, so that inner sectors created out of loops can be deleted by joining the sectors then.
* new editor cfg options: corruptcheck_noalreadyrefd (silinces 'already referenced warning'), r_usenewaspect, r_screenxy
* Read-only CON access to sector bunchnums by adding the labels '.ceilingbunch' and '.floorbunch' to the CON sector structure
* Join-bunch functionality in 2d mode ('J'). When applied to two adjacent extended floors with different bunchnums, this makes them equal so that their sectors can be joined in a next step if their ceiling bunchnums are equal. The two floors also must be non-sloped and at the same height.
* slightly tweaked status line, now also displaying the number of bunches * fix a couple of issues unearthed by valgrind and a TROR nextwall corruption when joining sectors
Addresses posts #180 and #181 of the TROR thread. Specifically,
* it is now possible to paste (and have an outer red wall automatically) highlighted sectors into a sector that is extended on one side and non-sloped on the other. For this, the highlighted sectors must be in one connected component. * Make it possible to not display inner gray walls, toggled with Ctrl-Alt-A, but only when no manual grayout (Ctrl-R) is in effect. * bugfix: don't clear original TROR-nextwall link when duplicating extended highlighted sector * m32script: protect wall members relevant to TROR * save autogray (Ctrl-A) and showinnergray (see above) to mapster32.cfg
* New m32script commands:
- sethighlightsector <sectnum> <on?> - updatehighlightsector - collectsectors <<array_to_collect_sectnums>> <initial_sector> <<num_collected_sectors>> <sector_filtering_state> The latter does a breadth-first search starting from an initial sector and collects nextsectors only when the filtering state, given a sectnum as RETURN input, writes a nonzero value into RETURN. As a usage example, a.m32 includes the state 'collect_teleporting_sectors', that collects all sectors containing an SE7 and highlights them afterwards. This way, it should be possible to retrofit old maps with TROR by distributing small scripts that do most of the work (right now, joining has to be done by hand, though). * corruption checker: for the 'nextwall inconsistent with nextsector' corruption, suggest an alternative fix by searching fitting nextwalls and changing the nextwall of the corrupt wall (as opposed to the nextsector). It will display with a leading '?' in the listing, and can be demanded by suffixing 'corruptcheck tryfix' with it. For example, corruptcheck tryfix 9-21 ? would fix some corruptions in Billy Boy's cranium.map without introducing drawing errors. * fix demo playback (tueidj figured this out)
* We cansee() now through TROR portals, making enemies recognize you from above and below
* fixed subway roof interpolation; also small tweak to make this possible: http://forums.duke4.net/topic/3911-true-room-over-room/page__view__findpost__p__99099 * API change: Sect_{Set,Clear}Interpolation now takes sectnums directly
fix MSVC build
* Fix usage of uninitialized array (\!), which could result in TROR connections being deleted at random when deleting sectors. I guess this is a sign of approaching senility :(
* When dragging highlighted sprites, do a setsprite() after each position update. This way, they won't end up on the wrong level * TROR support for SE 31 and 32 in-game, example provided in test map * some uncommited stuff for TROR: SE 6/14
fix highlighted sector deleting and probably a couple of other inconsistencies stemming from that bug
* Make destructable ceilings and floors (SE 13 pointing down) behave well with TROR; also carry sprites and players on the roof of a subway. The latter uses t_data[9] on the pivot sprite.
* Make the minimum resolution possible 640x480. Sometimes you'd accidentally enter something like 'vidmode 800 60' and crashes would ensue... * fix a warning
crash prevention for bad pal sprites (and warning in Mapster 3D mode)
another small fix