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

Showing 2014 · select it again to see every year
SVN era · r1519 – r8798 Git era · voidpoint.io, from april 2020
Filters · 2 active

Showing 64 builds · 139 commits

Export CSV
Display options
Commit details:

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

August 2014 4 builds · 9 commits

Build 4584

31 Aug 2014 · 9 commits · 1 author SVN
Open build
  • demote wall check "corruptions" introduced in r4569 to level 2.

    Helixhorned r4580 31 Aug, 04:15 FixEngine
    Show details

    The winding of a loop -- with clockdir() -- is determined by examining the two line segments spanned between the points following a leftmost point of the loop. If the loop contains a leftmost point that belongs to the "right" side (as can happen with sliding door constructions), there's a chance that an outer loop is misclassified.

  • General

    Factor out [l]dist() implementations into static inline functions in common.h.

    Helixhorned r4579 31 Aug, 04:15 Engine
    Show details

    And use these in jmact/mathutil.c's FindDistance2D()/FindDistance3D(). The main use is to allow passing dx/dy instead of sprite positions; the code that actually uses this is not committed.

  • introduce two signed integer types, use in engine.c and a-c.c.

    Helixhorned r4578 written 23 Aug 2014 FixEngine
    Show details

    They classify former uses of int64_t into two classes: - coord_t: those that represent coordinates and need 64-bit precision for proper functioning with large values - inthi_t: those that were added for e.g. casts merely to prevent undefined behavior on overflow DONT_BUILD.

  • General

    engine.c: prevent a 64-bit multiply in dosetaspect(). DONT_BUILD.

    Helixhorned r4576 written 23 Aug 2014 Engine
Open the build to see all 9 commits

Build 4573

16 Aug 2014 · 2 commits · 1 author SVN
Open build
  • fix a crash when m32_settings.cfg contains video setting.

    Helixhorned r4573 16 Aug, 11:32 FixEngine
    Show details

    Such as "vid_gamma". In that case, setbrightness() would have been called without basepaltableptr having been initialized. The fix is by moving the preparational setbasepaltable() call from ExtPostStartupWindow() to ExtInit(), just before the OSD command dispatching.

  • fix possible integer overflow in loopinside().

    Helixhorned r4572 16 Aug, 11:32 FixEngine
    Show details

    This could happen when building outside the "classic" grid limits and would then lead to e.g. incorrect loop assignment on sector splitting. Bug reported by MetHy.

Build 4571

8 Aug 2014 · 19 commits · 2 authors SVN
Open build
  • prototypical checker for wall loops, enabled partially.

    Helixhorned r4569 8 Aug, 13:02 FixEngine
    Show details

    Inspired by http://forums.duke4.net/topic/7506-tror-question/page__view__findpost__p__199151 the corruption checker now checks for certain conditions of the loops of each sector. Recall that CW loops are outer and CCW loops are inner. - If a sector has no or more than one outer loop, count that as corruption (level 4 and 3, respectively). - (Disabled) For sectors with exactly one outer loop, check that all inner ones are inside it. This is currently not compiled due to an asymmetry of loopinside() for degenerate cases, similar to pre-r3898 inside().

  • General

    Move implementation details of Mapster32's sound system from m32exec.c into sounds_mapster32.c, and set up a sound system stub in KenBuild Editor.

    Hendricks266 r4563 written 27 Jul 2014 Engine
    Show details

    DONT_BUILD.

Open the build to see all 19 commits

July 2014 3 builds · 3 commits

Build 4538

6 Jul 2014 · 2 commits · 1 author SVN
Open build
  • General

    Extend ebacktrace in two ways.

    Hendricks266 r4538 6 Jul, 15:38 FixEngine
    Show details

    1. The application must specify its proper name and technical name. Instead of eduke32_or_mapster32.crash.log, we now have eduke32.crash.log and mapster32.crash.log. 2. The exception handler will display a message box informing the user of a crash and requesting they send in the crash log. The box has three options: "Quit", the DLL's current behavior, "Continue", which passes the exception to the next handler, and "Ignore", which resumes execution immediately. These should allow the user to skip bogus exceptions picked up by ebacktrace, such as one I get with my laptop that causes EDuke32 no issues.

Open the build to see all 2 commits

June 2014 1 build · 2 commits

Build 4500

1 Jun 2014 · 12 commits · 3 authors SVN
Open build
  • r_npotwallmode, emulating 8-bit for walls w/ nonpow2 height textures.

    Helixhorned r4498 1 Jun, 04:55 Engine
    Show details

    When that mode is enabled (see below for caveats), wall textures that have a non-power-of-two height (call it 'h') will be modified to look like in classic: Let 'H' be the next power of two greater than 'h'. The texture will be uploaded with height 'H', made up from 'h' hlines of the original texture, followed by 'H'-'h' first hlines of the same. No panning "corrections" will take place. The mode is disabled by default. Caveats/notes: * the mode requires that r_hightile is disabled * it is not implemented in Polymer * in the Lunatic build, it is ineffective when a VX map is loaded, as those display walls with NPOT height textures correctly

  • when pasting onto the bottom part of a [2]-wall, take over y-flipping.

    Helixhorned r4493 written 30 May 2014 Engine
    Show details

    Note that x-flipping is determined by the cstat of the upper part of the wall (that is, the wall facing the player, not the nextwall, from which the picnum for the bottom part is taken.)

Open the build to see all 12 commits

May 2014 7 builds · 12 commits

Build 4488

28 May 2014 · 6 commits · 1 author SVN
Open build
  • General

    Factor out commonly occuring hictinting[]-accessing code into three functions.

    Helixhorned r4487 28 May, 15:40 Engine
    Show details

    Note: in polymer.c, this was buggy (but harmless) because .r is a char: if ((uint32_t)hictinting[MAXPALOOKUPS-1].r & 0xFFFFFF00) != 0xFFFFFF00)

  • General

    Replace various GL rendering related literal flags with enum labels.

    Helixhorned r4486 28 May, 15:40 Engine
    Show details

    - pthtyp pth->flags bits - Flags of the <dameth> argument of various functions - hictinting[].f / gloadtile_hi() and daskinloader() <effect> arg bits - hicreplctyp hicr->flags bits - texcacheheader cachead.flags bits

  • General

    polymost.c: stylistic cleanup in gloadtile_hi, uploadtexture, fixtransparency.

    Helixhorned r4485 28 May, 15:40 Engine
  • in NPOT wall ypanning "correction", behave like Polymer in one corner case.

    Helixhorned r4484 28 May, 15:40 Engine
    Show details

    Specifically, the handling of one-way walls ([1] in Mapster32) was slightly different.

Open the build to see all 6 commits

Build 4477

22 May 2014 · 1 commit · 1 author SVN
Open build
  • General

    actors.c: fix a A_CheckSpriteFlags() call for zombie actor to STANDABLE change.

    Helixhorned r4477 22 May, 01:56 FixEngine
    Show details

    This only affects zombie actors in a sector with a parallaxed ceiling. If they have SFLAG_NOSHADE clear, their shade is taken from the ceiling upon changing the statnum. Previously, A_CheckSpriteFlags() received a value that could only be 0 or 1 for the sprite index (typo).