EDuke32 Changelog Unofficial archive

What changed in EDuke32, build by build

2,117 builds · 8,866 commits · 25 authors · October 2009 – August 2026

Commits per year

Select a year to see its builds
SVN era · r1519 – r8798 Git era · voidpoint.io, from april 2020
Filters · 1 active

Showing 1,043 builds · 2,174 commits

Export CSV
Display options
Commit details:

February 2015 9 builds · 16 commits

January 2015 10 builds · 20 commits

Build 4938

18 Jan 2015 · 3 commits · 1 author SVN
Open build
  • General

    engine.c: in qsetmodeany(), call initsmost() after setting xdim and ydim.

    Helixhorned r4938 18 Jan, 17:54 Engine
    Show details

    This makes sure that the engine arrays have sufficient space allocated for usage in Mapster32's 2D mode, for example from drawmapview().

  • fix build and linking. DONT_BUILD.

    Helixhorned r4937 18 Jan, 16:11 FixEngine
    Show details

    - t{sector,wall}type are simply typedef'd to the non-t versions - make FORCE_INLINE unconditional of DISABLE_INLINING (otherwise there are multiple definitions of these functions) - update lunatic/doc/lpeg-lunatic.patch to apply against the LPeg 0.12 I just downloaded

Open the build to see all 3 commits

Build 4935

18 Jan 2015 · 7 commits · 2 authors SVN
Open build
  • remove unused key* options in mapster32.cfg and corresponding BK_* macros. DONT_BUILD.

    Helixhorned r4934 18 Jan, 14:11 Engine
  • General

    polymost.c: fix possible access of wallchanged[-1]. DONT_BUILD.

    Helixhorned r4932 18 Jan, 12:28 FixEngine
  • General

    engine.c: fix memory leak. DONT_BUILD.

    Helixhorned r4931 18 Jan, 12:22 FixEngine
  • General

    polymost.c: fix C build. DONT_BUILD.

    Helixhorned r4930 18 Jan, 12:21 FixEngine
Open the build to see all 7 commits

Build 4904

10 Jan 2015 · 7 commits · 1 author SVN
Open build
  • fix wall and floor sprites clipping into or z-fighting with surfaces (replaces glDepthRange() hacks for sprites), add r_nofog cvar for debugging, reduce the total number of OpenGL calls by only calling glFogi() to set the fog mode when initializing the renderer or changing r_usenewshading.

    TerminX r4904 10 Jan, 20:56 FixEngine
  • General

    Introduce "twalltype" for temporary uses of walltype where using wall_tracker_hook() would be invalid. This is similar to "tspritetype" and fixes a bunch of problems in the editor that cropped up when changing the tracker sanity checks to an assert that only exists in debug builds (branching upon any write to a sprite, sector or wall had an unacceptable impact on performance).

    TerminX r4903 10 Jan, 20:56 FixEngine
  • General

    Fix Mapster32 bug where pressing "O" on a sprite twice would corrupt your map due to unchecked use of hitscan results.

    TerminX r4901 10 Jan, 20:55 FixEngine
  • General

    Revise C++ structure trackers for performance and introduce "tspritetype", for temporary sprites or other usages where using the trackers would be invalid or undesired. DONT_BUILD.

    TerminX r4898 10 Jan, 20:55 Engine
Open the build to see all 7 commits

Build 4881

6 Jan 2015 · 2 commits · 1 author SVN
Open build
  • General

    engine.c: on non-touch devices, roughly double maximum voxel drawing distance.

    Helixhorned r4881 6 Jan, 11:56 Engine
    Show details

    By setting DISTRECIPSIZ to 131072, as far as I can see the absolute maximum that's possible with the integer scaling convention of the voxel drawing code. BUILD_LUNATIC.

  • make sprite duplication examples in m32script_ex.map work again.

    Helixhorned r4880 6 Jan, 11:56 Engine
    Show details

    - Work around a sequencing issue (assignment of searchstat) in M32_DrawRoomsAndMasks() - When having sprites highlighted and changing shade, since r1943 change every highlighted sprite's shade if one of them is aimed at. With this revision, if SHIFT is pressed while doing that, only change the aimed at sprite's shade - a.m32: Use 'break' from a state instead of 'return'. The former may be "sticky" in a way that is not intended. Needs to be debugged later. - Update instructions in m32script_ex.map DONT_BUILD.

Build 4877

4 Jan 2015 · 2 commits · 1 author SVN
Open build
  • General

    engine.c: prevent multiple collection of same sector in scansector().

    Helixhorned r4877 4 Jan, 10:45 Engine
    Show details

    Also for polymost_scansector(). These were likely of little consequence because collection in scansector() is the exception than the rule (see added comments), and because the redundant drawwalls() would find the x range done the second and following times. Also, add a bound check for sectorborder[] (the limit was probably rarely hit in practice, but the check is mandatory nontheless) and add functions printscans() and printbunches() in the DEBUGGINGAIDS=2 build.

  • General

    engine.c: in drawmasks(), remove sorting sprites by statnum.

    Helixhorned r4876 4 Jan, 10:45 Engine
    Show details

    There were various issues with that code. - It does not seem to be very meaningful to do so. - It was carried out on the same range as the sprites sorted by z coordinate (those with equal x/y) just a few lines away, effectively overriding it. The former is very meaningful, though. - It led to inconsistencies between editor and game, see http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__214873

Build 4875

4 Jan 2015 · 2 commits · 1 author SVN
Open build
  • General

    Cleanup of various engine functions.

    Helixhorned r4875 4 Jan, 10:45 Engine
    Show details

    - factor out calculation of player-relative and screen+clipped-player-relative coordinates into get_rel_coords() and get_screen_coords(), respectively - the usual beautification stuff, especially since we're now on C99

  • CON

    always return non-negative values from 'clipmove' and related.

    Helixhorned r4874 4 Jan, 10:44 FixEngineCON
    Show details

    Previously, the C function clipmove() returned negative values when hit a wall (32768+wallnum) or sprite (49152+spritenum) because internally, these values were encoded into a *signed* 16-bit integer. This made no difference to C code using it, since it always proceeded by bit checks, but was inconsistent with documentation on CON 'clipmove' on the wiki. The following commands are affected too, since they use the value returned by clipmove(): 'clipmovenoslide', 'movesprite'. Also, the value of actor[].movflag ('htmovflag' from CON). Also, fix 'clipmove*' in LunaCON and add lunatic/test/checknearwall.con as an example of how to implement a being-close-to-a-wall checker as requested in http://forums.duke4.net/topic/7869-determining-closeness-to-a-wall/

December 2014 7 builds · 19 commits

Build 4873

30 Dec 2014 · 2 commits · 1 author SVN
Open build
  • General

    engine.c: fix clipmove() against floor-aligned sprites.

    Helixhorned r4873 30 Dec, 12:05 FixEngine
    Show details

    Introduced in r3207. Oops.

  • General

    engine.c: prevent an oob read of spriteext[] in drawsprite_classic().

    Helixhorned r4872 30 Dec, 12:05 Engine

Build 4857

27 Dec 2014 · 13 commits · 2 authors SVN
Open build
  • disable all loop checks as they spam the log too much. DONT_BUILD.

    Helixhorned r4848 27 Dec, 09:17 Engine
    Show details

    The one introduced with r4569.

  • General

    Propagate 'smoothratio' to scenes drawn from the position of a camera.

    Helixhorned r4847 27 Dec, 09:17 Engine
    Show details

    That is, make interpolation work properly there -- both when 'using' a VIEWSCREEN and when rendering the scene onto a TILE_VIEWSCR. This makes a difference only if the camera is in a moving sector.

  • General

    Minor cleanup, mostly in engine.c:drawalls().

    Helixhorned r4846 27 Dec, 09:17 Engine
Open the build to see all 13 commits

Build 4844

26 Dec 2014 · 11 commits · 1 author SVN
Open build
  • General

    Tweak the behavior of viewscreens to what is more logical IMO.

    Helixhorned r4843 26 Dec, 09:30 FixEngine
    Show details

    - At a given time, at most one viewscreen may display TILE_VIEWSCR, namely that one which is g_curViewscreen - sync kinds of distance to compare against VIEWSCREEN_ACTIVE_DISTANCE (was Manhattan vs. dist(), now both the latter) - fix resetting to VIEWSCREEN tile when player is greater from it than that distance. When the player is closer to it again, it is *not* reset to TILE_VIEWSCR. - more sync'd g_curViewscreen and sprite[i].yvel (for 'i' being the viewscreen sprite) Note: in a multiplayer context, this needs to be thought about once more.

  • General

    engine.c: clamp all indices for distrecip[] access, as more OOBs were observed.

    Helixhorned r4842 26 Dec, 09:29 Engine
  • General

    Convert voxels to models only when starting or changing to Polymost.

    Helixhorned r4836 26 Dec, 09:29 Engine
    Show details

    Analogously to the way models are processed in a deferred manner for Polymer.

  • General

    A couple of miscellaneous cleanups.

    Helixhorned r4835 26 Dec, 09:29 Engine
    Show details

    defs.c: sync some dup'd code for 'definevoxel' and 'voxel' DEF tokens. engine.c: factor out PolymerProcessModels().

  • General

    engine.c: style-cleanup drawvox(). Also clean up ALL of voxmodel.c.

    Helixhorned r4834 26 Dec, 09:29 Engine
    Show details

    No deliberate semantic changes here.

Open the build to see all 11 commits

Build 4833

21 Dec 2014 · 5 commits · 1 author SVN
Open build
  • include wall[].ypanning in wall invalidation logic.

    Helixhorned r4833 21 Dec, 07:51 FixEngine
    Show details
  • General

    Minor cleanup around security cameras / viewscreens. DONT_BUILD.

    Helixhorned r4831 21 Dec, 07:51 Engine
    Show details

    The only semantic change is that an out-of-sync instance of a distance to check (viewscreen sprite <-> player sprite) is changed in actors.c:G_MoveStandables(), from 2048 (as in Duke3D 1.5) to 8192, now represented by the define VIEWSCREEN_ACTIVE_DISTANCE. I have not yet observed any change in behavior regarding this change (but there ought to be one). Also, in DNCOORDS display, print 'totalclock' count, too.

  • don't draw masked walls with void tile. DONT_BUILD.

    Helixhorned r4830 written 20 Dec 2014 Engine
    Show details

    This prevents displaying W_FORCEFIELD+1 masks (as e.g. in front of viewscreens) completely black with ART mapping. The old behavior, which is inconsistent with classic, is kept for one-sided masked walls, though.

Open the build to see all 5 commits

Build 4814

13 Dec 2014 · 14 commits · 2 authors SVN
Open build
  • General

    Pull setting g_noFloorPal[] further down, into makepalookup().

    Helixhorned r4812 13 Dec, 14:33 Engine
    Show details

    Now passed as last arg 'noFloorPal' to makepalookup(). Used as follows: - from loadlookups(): *false*, i.e. do take over floor pal. - from generatefogpals() [default fog pals] and fillemptylookups(): *true*, i.e. don't take over floor pal - from DEF 'fogpal': true - from DEF 'makepalookup': take over flag from pal from which we are remapping, or set to true if remapping from pal 0 - (CROSSHAIR_PAL: true) This should make the issue reported in http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__197583 resolve in a natural manner.

  • General

    Move g_noFloorPal[] to the engine side and adapt other stuff accordingly.

    Helixhorned r4811 13 Dec, 14:33 Engine
    Show details

    - 'nofloorpalrange' DEF token: now handled for both game and editor (for the latter, it's effective only for "shade preview" mode, [']+[X]). - in generatefogpals(), assign g_noFloorPal[] = 1 for every generated (default) fog pal; get rid of its return value / g_firstFogPal

  • General

    engine.c: prevent an oob access of uwall[] in ceilspritescan().

    Helixhorned r4810 13 Dec, 14:33 Engine
  • General

    engine.c: style tweaks (tighter var. declaration) in sprite drawing functions.

    Helixhorned r4809 13 Dec, 14:32 Engine
Open the build to see all 14 commits

Build 4800

6 Dec 2014 · 1 commit · 1 author SVN
Open build
  • General

    voxmodel.c: fix Polymost rendering of voxels.

    Helixhorned r4800 6 Dec, 13:05 FixEngine
    Show details

    This reverts/corrects two semantic changes of r4639 as far as what is now voxmodel.c (formerly part of mdsprite.c) is concerned. One correction ends up having no effect (m->bscale is always 1.f for voxel models, as far as I can see), but is the proper rewrite. Also, in osdcmds.c:registerosdcommands(), tweak two help strings.

November 2014 2 builds · 13 commits

Build 4777

28 Nov 2014 · 81 commits · 3 authors SVN
Open build
  • General

    Fix POLYMER=0 GTK C++ build. DONT_BUILD.

    Hendricks266 r4773 28 Nov, 18:29 FixEngine
  • General

    Fix POLYMER=0 build and a couple of unused-variable warnings with it. DONT_BUILD.

    Helixhorned r4764 written 25 Nov 2014 FixEngine
  • General

    engine.c: in wallscan(), fix oob of umost[] and dmost[] when x2 == xdim-1.

    Helixhorned r4757 written 22 Nov 2014 FixEngine
    Show details

    Analogously treat maskwallscan() and transmaskwallscan(), although I could not get the respective accesses to be oob, too.

  • General

    Fix Mapster32 fullscreen video modes. DONT_BUILD.

    TerminX r4740 written 22 Nov 2014 FixEngine
  • General

    Fix voxels in classic -- my error, confusing divscale() and mulscale() in r4576.

    Helixhorned r4728 written 6 Nov 2014 FixEngine
    Show details

    Optimizations are left to the reader :P. I would prefer to look for ways of giving the compilers hints about loops to unroll instead of having to read the resulting mess of manual unrolling, though.

Open the build to see all 81 commits