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 · 2 active

Showing 443 builds · 817 commits

Export CSV
Display options
Commit details:

May 2015 2 builds · 2 commits

Build 5182

10 May 2015 · 1 commit · 1 author SVN
Open build
  • honor r_usenewaspect, especially it being off.

    Helixhorned r5182 10 May, 03:55 EngineCON
    Show details

    For this, add a setaspect_new() setup/restore pair in M32_DrawRoomsAndMasks() like for G_DrawRooms(). With this, changing viewingrange/aspect via m32script (in a.m32: [7] -- [9] on the upper row) can only be done in r_usenewaspect 0, though.

April 2015 2 builds · 6 commits

Build 5159

18 Apr 2015 · 5 commits · 1 author SVN
Open build
  • General

    polymost.c: fix display of floor-aligned sprites ornameted to the ceiling.

    Helixhorned r5158 18 Apr, 14:59 FixEngine
  • General

    polymost.c: split three overlong lines into three each.

    Helixhorned r5157 18 Apr, 14:59 FixEngine
    Show details

    This was formerly "fix multi-tile ceiling skies.", but TX beat me to it and Git automatically figured out how to merge while keeping a linear history. (Our fixes were identical.) Nice!

  • General

    Double the size of clouds[] (holding sectors with CLOUDYSKIES ceilings).

    Helixhorned r5156 18 Apr, 14:59 Engine
    Show details

    Also, make cloudx[] and cloudy[] scalars, as the per-sector values were always identical. In prelevel(), warn if some CLOUDYSKIES-ceiling sectors could not be set up due to reaching the new 256 sector limit.

  • General

    actors.c: fix 3 incorrect '/' -> tabledivide32_noinline rewrites in r4658.

    Helixhorned r5155 18 Apr, 14:59 FixEngine
    Show details

    Division has higher precedence than bitwise-OR. The cases concerned SE3, SE4 and NEON* sprites. Incidental info: the blinking of NEON* sprites can be controlled via their lotag, similarly to how you how you give a "random flash number" as SE4 hitag.

Open the build to see all 5 commits

Build 5134

11 Apr 2015 · 6 commits · 1 author SVN
Open build
Open the build to see all 6 commits

March 2015 1 build · 1 commit

February 2015 5 builds · 9 commits

Build 5025

22 Feb 2015 · 2 commits · 1 author SVN
Open build
  • General

    Classic/Polymost: factor out update of starting sectnum, use updatesectorbreadth().

    Helixhorned r5024 22 Feb, 04:43 Engine
    Show details

    The latter means that running perpendicular thin sector is handled better if there are e.g. TROR sectors in the same x/y space.

Open the build to see all 2 commits

Build 5022

20 Feb 2015 · 3 commits · 1 author SVN
Open build
  • General

    actors.c: make Enforcers and Troopers avoid ST1 sectors as in Duke3D.

    Helixhorned r5021 20 Feb, 14:10 Engine
    Show details

    That is, resurrect the stayput condition for LIZMAN and non-flying LIZTROOP, but only if changing from a non-ST1 sector. DONT_BUILD.

  • General

    Stick update of 'totalclocklock' at beginning of G_DrawRooms() instead of drawrooms().

    Helixhorned r5020 written 19 Feb 2015 FixEngineCON
    Show details

    This fixes engine-side sprite animation in the following scenario: CON code wants to draw a scene from EVENT_DISPLAYREST, but since it covers the whole screen, disables the drawing of the 3D scene beforehand (RETURN set to 1 from EVENT_DISPLAYROOMS). DONT_BUILD.

Open the build to see all 3 commits

Build 5019

19 Feb 2015 · 3 commits · 1 author SVN
Open build
  • in 'for i drawnsprites' handling, back up and restore sprite MAXSPRITES-1.

    Helixhorned r5019 19 Feb, 09:41 FixEngineCON
    Show details

    This fixes the level 5 corruption encountered when issuing that iteration. (Because the last sprite would be changed from e.g. statnum MAXSTATUS to 0.) It is also mandatory anyhow since the last sprite may be contained in the map.

  • style-cleanup check_spritelist_consistency() and VM_Execute(): 'for'.

    Helixhorned r5018 19 Feb, 09:41 Engine
    Show details

    DONT_BUILD.

  • General

    Under conditions of CLASSIC_Z_DIFF_64 (r4960), make some drawvox() vars 64-bit.

    Helixhorned r5017 19 Feb, 09:41 FixEngine
    Show details

    - In drawvox(), make view-relative x and y high-precision on desktops. To a large extent (but not completely), this fixes "stray" fake floor shadow sprites for voxels. - In the mouse picking code for voxels, fix a possible integer overflow. A new engine.c-private function mulscale_triple30() is added. DONT_BUILD.

January 2015 6 builds · 13 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 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