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:

December 2012 13 builds · 20 commits

Build 3266

10 Dec 2012 · 4 commits · 1 author SVN
Open build
Open the build to see all 4 commits

Build 3261

9 Dec 2012 · 6 commits · 1 author SVN
Open build
  • General

    Initialize BADGUY sprite flags for hardcoded enemies.

    Helixhorned r3257 9 Dec, 05:24 Engine
    Show details

    ... instead of switch/case-ing them in A_CheckEnemyTile(). Because this requires bumping BYTEVERSION, we also get rid of the excess trailing bytes in the save game's "rest" data. (See r3052.)

Open the build to see all 6 commits

November 2012 11 builds · 24 commits

Build 3231

25 Nov 2012 · 8 commits · 1 author SVN
Open build
  • General

    Misc. engine cleanups, no functional changes.

    Helixhorned r3229 25 Nov, 05:19 Engine
  • General

    engine.c: factor out 2 pract. ident. pieces of code into try_facespr_intersect.

    Helixhorned r3228 25 Nov, 05:18 Engine
    Show details

    The two uses are from hitscan and neartag. The functionality is reproduced exactly (assuming I made no mistake), down to different distance checking (<= vs. <).

Open the build to see all 8 commits

Build 3212

18 Nov 2012 · 3 commits · 1 author SVN
Open build
  • General

    Remove many redundant (int16_t) casts and one now incorrect one.

    Helixhorned r3211 18 Nov, 11:01 FixEngine
    Show details

    The redundant ones are in code like this: s->cstat = (int16_t)32768; Because the value is eventually converted to the type of "s->cstat", any casts to integral types having at least as many bits are no-ops, signedness being irrelevant due to (probably any two's complement arch targeting compiler's) bit-pattern preserving semantics of these conversions. The now incorrect one is: if (lotag == (int16_t) 65535), "int32_t lotag" being read from a wall or sprite struct directly earlier. Now, with these members being unsigned, and (int16_t)65535 equalling -1, the check always fails. The correction fixes normal switches having such a lotag ending the level immediately. In short: integer casts before assignments are unnecessary, those in reads highly relevant!

Open the build to see all 3 commits

Build 3207

17 Nov 2012 · 7 commits · 1 author SVN
Open build
  • General

    Engine cleanup: factor out code getting bounds of sprites.

    Helixhorned r3207 17 Nov, 11:46 Engine
  • General

    Clean up base engine functions: tighten scope of locals declarations.

    Helixhorned r3206 17 Nov, 11:46 Engine
  • General

    Clean up engine code by factoring repeated 3-liners into spriteheightofs().

    Helixhorned r3205 17 Nov, 11:46 Engine
    Show details

    This function also changed: it doesn't handle floor-aligned sprites now, and the z offset is returned instead of set by pointer.

  • fix cycling picnum in 3D mode.

    Helixhorned r3203 17 Nov, 11:46 FixEngine
    Show details

    Using non-keypad [-]/[+] or LMB + mousewheel, it was broken when a void tile was in between.

Open the build to see all 7 commits

Build 3189

15 Nov 2012 · 5 commits · 1 author SVN
Open build
Open the build to see all 5 commits

Build 3157

13 Nov 2012 · 2 commits · 1 author SVN
Open build
  • set first walls more conveniently on split in one special case.

    Helixhorned r3157 13 Nov, 02:50 Engine
    Show details

    Specifically, if the first wall of the sector-to-split is to the left or right of the *start* of the splitting line AND the sector has no TROR extensions, make these two the new nextwalls of the respective split sectors.

Open the build to see all 2 commits

Build 3148

10 Nov 2012 · 2 commits · 1 author SVN
Open build
  • General

    Lunatic reorganization part 2: split into engine and editor/game parts.

    Helixhorned r3148 10 Nov, 12:59 Engine
    Show details

    On the engine side (functions starting with L_), there are now the basic parts like state creation and running code from strings and files. The game and editor can add to that by e.g. loading whatever they please into the state. Their functions start with El_ and Em_, respectively. The Lua scripts still reside in source/lunatic, even for the common ones. This is because they will be embedded into the binaries as bytecode or compressed source eventually, so their location on disk will be irrelevant.

Open the build to see all 2 commits

Build 3146

10 Nov 2012 · 5 commits · 1 author SVN
Open build
  • General

    Clean up texture loading code etc. in polymost.c, no functional changes.

    Helixhorned r3146 10 Nov, 06:11 Engine
  • fix rotatesprite with no screen scaling and non-widescreen aspects.

    Helixhorned r3144 10 Nov, 06:11 FixEngine
    Show details

    Also, enable showing sprites in Mapster32's overhead view again, since that was one (the only?) use of that code path. The uninitialized read was introduced in r2927.

  • General

    When found a camera sprite for viewscreen, set position etc. immediately.

    Helixhorned r3142 10 Nov, 06:11 FixEngine
    Show details

    Instead of later in P_ProcessInput(). This fixes one drawrooms() call in between where the sectnum is the camera's, but the position the player's, which can lead to a slow "outer view" render in Polymer.

Open the build to see all 5 commits

Build 3114

4 Nov 2012 · 3 commits · 1 author SVN
Open build
  • General

    engine.c: add bound-check assert failing for sprites in m32's textured 2D mode.

    Helixhorned r3114 4 Nov, 15:03 Engine
    Show details

    Also, disable drawing sprites in that mode for now.

  • functionality to rotate or scale RShift-highlighted stuff smoothly.

    Helixhorned r3113 4 Nov, 15:03 Engine
    Show details

    This is done by pressing LShift and - holding down the left mouse button for scaling, or - the right mouse button for rotating the highlighted walls/sprites with respect to a pivot point determined as the center of the bounding box of all highlighted points. Note that scaling sectors isn't that easy and the current functionality is very rudimentary: there's no z scaling, no xrepeat correction, and sprites aren't touched expect for their position. The user is responsible to maintain map consistency, for example to prevent wall-lines of the same sector crossing each other.

  • when looking for matching wall in 2nd pt. ins., don't skip gray nextwalls.

    Helixhorned r3112 4 Nov, 15:03 FixEngine
    Show details

    This fixes a bug where it's not possible to split a sector under certain circumstances, reported by Micky C here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__138380 Also, don't allow zero in various 'F functions: Resize selection and Global {shade, visibility} divide.

Build 3111

3 Nov 2012 · 6 commits · 1 author SVN
Open build
  • General

    Work around the transparent line with on-screen chaingun and linear filtering.

    Helixhorned r3111 3 Nov, 12:32 Engine
    Show details

    We do this by messing with the GL texture that gets uploaded for CHAINGUN. Since this is implemented on the engine side, the static value for CHAINGUN (2536) is used, and the tile dimensions are compared to 211x55 to have a little confidence that the tile wasn't overridden by a mod. Hack indeed.

  • draw lines to linking sprites with LShift, jump to them with +[ or +]

    Helixhorned r3108 3 Nov, 12:32 FixEngine
    Show details

    When LShift is pressed and the mouse is over a linking sprite (as determined by the tag labeling system), lines are drawn to all other sprites, and pressing [ or ] will cycle these then. False positives and missed sprites are possible. Additional changes: - consider SE 31 and 32's lotag to NOT be linking, since the ACTIVATOR is what matters. The original maps are inconsistent there. - When pressing Alt+[ or Alt+] and there are no corruptions, say so instead of doing [ or ].

  • when punching loop, fade screen; tweak two messages.

    Helixhorned r3106 3 Nov, 12:32 Engine
Open the build to see all 6 commits

October 2012 4 builds · 13 commits

Build 3078

14 Oct 2012 · 7 commits · 1 author SVN
Open build
  • General

    Texel-granular hitscan() for wall-aligned sprites.

    Helixhorned r3078 14 Oct, 13:41 Engine
    Show details

    The attribute is set per tile from DEF: either texhitscanrange <begintile> <endtile> or tilefromtexture <tile> { ... texhitscan ... } (As a special case, the list may only contain "texhitscan", in which case the texture is not changed.) In passing, do some cleanup for "tilefromtexture" DEF parsing: the list tokens should now be accepted in any order, and errors don't appear in the middle of the list parsing.

  • Prototypical no-SE7 water submersion/emersion.

    Helixhorned r3072 14 Oct, 13:41 Engine
    Show details

    Submersion only happens when the upper sector has lotag 1 and its vertical neighbor has lotag 2 (this can be useful to create non-submergible above-water sectors). Currently, only the player is handled. On the implementation side, the water handling code is split into P_Submerge() and P_Emerge() preparing the "teleportation", and P_FinishWaterChange() for the finalization.

Open the build to see all 7 commits

Build 3052

3 Oct 2012 · 3 commits · 1 author SVN
Open build
  • General

    In savegames, store dummy constant-length block instead of a _prlight array.

    Helixhorned r3052 3 Oct, 08:29 Engine
    Show details

    sizeof(_prlight) differs across compilers, and besides, Polymer lights were not loaded anyway (they're restored live in-game later). The savegame version was not bumped, but only savegames made with builds where sizeof(_prlight)==261 (like synthesis) will stay compatible! Report and helpful debugging information by LeoD.

Open the build to see all 3 commits

Build 3049

1 Oct 2012 · 13 commits · 1 author SVN
Open build
  • make 'corruptcheck_noalreadyrefd' a separate OSD command.

    Helixhorned r3047 1 Oct, 10:52 FixEngine
    Show details

    Instead of having 'noalreadyrefd' as a 'corruptcheck' subcommand. This way, TAB completion can be had.

  • factor out some code (3x) into GetSaveBoardFilename().

    Helixhorned r3046 1 Oct, 10:52 Engine
  • General

    Factor out prepare/finish parts from load{old,}board(), misc. cleanup.

    Helixhorned r3044 1 Oct, 10:52 Engine
    Show details

    This means that loadoldboard() now should also initialize Polymer map info after loading a v5/v6 map. Make the variables holding a file descriptor an int32_t instead of int16_t.

  • General

    A bit stylistic Polymost code cleanup.

    Helixhorned r3041 1 Oct, 10:52 Engine
  • General

    Add compilation switch MODEL_OCCLUSION_CHECKING to polymost.h, leave it enabled.

    Helixhorned r3040 1 Oct, 10:52 Engine
Open the build to see all 13 commits

September 2012 4 builds · 9 commits

Build 3034

28 Sep 2012 · 4 commits · 1 author SVN
Open build
  • General

    engine.c: Split CLASSIC_NONPOW2_YSIZE into _WALLS and _SPRITES, enable the second

    Helixhorned r3034 28 Sep, 08:20 Engine
  • General

    engine.c: add compilation switches for non-pow2 ysize functions, disable for now.

    Helixhorned r3031 28 Sep, 08:20 FixEngine
    Show details

    Previously, we used them in our builds for sprites, but MSVC builds don't have the ASM ported to MASM, and thus the workaround of ignoring the linking errors was not safe.

Open the build to see all 4 commits

Build 3030

26 Sep 2012 · 3 commits · 1 author SVN
Open build
  • General

    foreachmap.lua: add option of only printing matching file names (like grep -l)

    Helixhorned r3030 26 Sep, 15:54 Engine
    Show details

    Also, add convenience wrapper script findmaps.sh for quickly searching for sprites/walls/sectors satisfying a certain condition in all map files under a given directory.

  • add check for sprites being out of the maximal grid range (+-524288).

    Helixhorned r3029 26 Sep, 15:53 Engine
    Show details

    Requested auto-correction will place such sprites at their sector's first point.

Open the build to see all 3 commits