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

Showing 75 builds · 272 commits

Export CSV
Display options
Commit details:

December 2014 11 builds · 47 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 4871

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

    sounds.c: don't crash S_PlayMusic() if passed null pointer for 'fn'.

    Helixhorned r4871 28 Dec, 14:12 FixCON
    Show details

    This may happen if no title/end music is defined from CON. Thanks to Zaxtor for the bug report.

Build 4863

28 Dec 2014 · 4 commits · 1 author SVN
Open build
  • General

    actors.c: replace hard-coded list with missing check for SFLAG_NODAMAGEPUSH.

    Helixhorned r4863 28 Dec, 12:57
    Show details

    In A_RadiusDamage(). The code snippet that is disabled for such actors increases the damaged actor's .xvel by (4 times the) damage amount and is responsible for the strange effect of enemies becoming faster TOWARDS the player on being hit with an RPG frontally. Thanks to Fox for a keen eye.

  • disable mouse pointer if CROSSHAIR is void. DONT_BUILD.

    Helixhorned r4862 28 Dec, 11:48
  • General

    In G_HandleMirror(), consult g_mirrorCount instead of gotpic[] w/ MIRROR.

    Helixhorned r4861 28 Dec, 07:40
    Show details

    DONT_BUILD.

  • General

    Lunatic translator: add stand-alone option -fnames, generating names.h file.

    Helixhorned r4860 28 Dec, 07:40

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
  • General

    Prettify viewscreen turned to STATIC in breakable cameras mode. DONT_BUILD.

    Helixhorned r4845 written 26 Dec 2014
Open the build to see all 13 commits

Build 4844

26 Dec 2014 · 11 commits · 1 author SVN
Open build
  • fix 'writearraytofile' for 64-bit platforms.

    Helixhorned r4844 26 Dec, 09:30 FixCON
  • 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
  • CON

    allow passing more than one flag to the 'spriteflags' directive.

    Helixhorned r4841 26 Dec, 09:29 CON
    Show details

    These will be bitwise-OR'd.

  • General

    gamedef.c: factor out some dup'd code into C_BitOrNextValue(), C_FinishBitOr().

    Helixhorned r4840 26 Dec, 09:29
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

    menus.c: Reset next-viewscreen-redraw counter from M_CloseMenu().

    Helixhorned r4832 21 Dec, 07:51
  • 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.

  • sync MAXJOYAXES, add lunatic/test/sprite_addtv.con. DONT_BUILD.

    Helixhorned r4829 written 20 Dec 2014 CON

Build 4823

18 Dec 2014 · 9 commits · 2 authors SVN
Open build
  • General

    Makefile.common: in non-release builds, explicitly pass -fno-omit-frame-pointer.

    Helixhorned r4817 written 15 Dec 2014
    Show details

    So that stack traces can be gotten with optimized DEBUGANYWAY builds, e.g. for Linux's 'perf' --> flame graphs. DONT_BUILD.

  • for '(display)rand*', use math.floor(); correct create_additive_trans() help.

    Helixhorned r4816 written 14 Dec 2014
    Show details

    DONT_BUILD.

  • show on-screen errors even in passive menu; fix '(display)rand*' for large values.

    Helixhorned r4815 written 14 Dec 2014 Fix
    Show details

    Also, some minor style cleanup in game.c. DONT_BUILD.

Open the build to see all 9 commits

Build 4814

13 Dec 2014 · 14 commits · 2 authors SVN
Open build
  • expose more members, properly handle setting ud.screen_size.

    Helixhorned r4814 13 Dec, 14:33 CON
    Show details

    BUILD_LUNATIC.

  • DEF

    fix handling of 'remappal' attribute for 'makepalookup'.

    Helixhorned r4813 13 Dec, 14:33 Fix
  • 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
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.

Build 4799

6 Dec 2014 · 8 commits · 1 author SVN
Open build
  • fix tilesizx[]/tilesizy[] access. Can also 'copy' from them.

    Helixhorned r4799 6 Dec, 11:09 FixCON
  • General

    M32Script cleanup. Fixes at least one non-minor and one minor bug.

    Helixhorned r4798 6 Dec, 11:09 FixCON
  • General

    engine.c: minor stylistic changes. DONT_BUILD.

    Helixhorned r4797 written 5 Dec 2014 Engine
    Show details

    Since we're targeting C99/C++ now, we can finally declare variables as close to their use as possible.

  • fix actor[] and player[] indexing after LuaJIT bugfix 66515a054c0826ce.

    Helixhorned r4796 written 5 Dec 2014 Fix
  • implement 'qstrncat' command.

    Helixhorned r4795 written 5 Dec 2014 CON
Open the build to see all 8 commits

November 2014 1 build · 24 commits

Build 4777

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

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

    Helixhorned r4764 written 25 Nov 2014 FixEngine
  • General

    In Lunatic build, make krand() a proper function again, called from Lua/FFI.

    Helixhorned r4759 written 22 Nov 2014
    Show details

    DONT_BUILD.

  • General

    a-c.c: Compile vlineasm4nlogy() only if CLASSIC_NONPOW2_YSIZE_WALLS is #defined.

    Helixhorned r4758 written 22 Nov 2014
    Show details

    Also make three file-scope variables static.

  • 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.

  • do '(very)clean' with a plain "rm -f some/obj/*.o".

    Helixhorned r4756 written 22 Nov 2014
    Show details

    Notes: - In the 'clean' target, the "core*" arg to 'rm' was removed as I find it too unspecific. (Someone could have an unrelated file with that prefix lying around.) - The targets 'clean' and 'veryclean' now echo the commands they are about to execute. Also, in Makefile.common, resurrect sanitized Clang builds if DEBUGANYWAY=2 is passed (previously, that was triggered with RELEASE=0 DEBUGANYWAY=1).

Open the build to see all 81 commits

September 2014 1 build · 9 commits

Build 4593

7 Sep 2014 · 9 commits · 1 author SVN
Open build
  • General

    astub.c: fix warnings with CPLUSPLUS=1 related to forgotten TrackerCast().

    Helixhorned r4593 7 Sep, 11:10 Fix
  • General

    Fix taking over floor pal in the unlikely event that no fog pals are defined.

    Helixhorned r4592 7 Sep, 11:10 Fix
    Show details

    This DOES NOT fix the more complex issue discussed at the forums.

  • on 'clean' target, unconditionally rm -f game Lunatic objects.

    Helixhorned r4591 7 Sep, 11:10
    Show details

    The 'clean' and 'veryclean' targets are usually run without environment options. It is preferable if they clean out all object files that are possible with any.

  • add actor.move() static function and documentation stub.

    Helixhorned r4590 7 Sep, 11:10
  • General

    For usermaps, save and restore currently playing music index with savegames.

    Helixhorned r4589 7 Sep, 11:10
    Show details

    The volume and level number for the music are stored in the last two bytes of the board file name array. No version bump is required.

Open the build to see all 9 commits

August 2014 5 builds · 18 commits

Build 4584

31 Aug 2014 · 9 commits · 1 author SVN
Open build
  • General

    Fix USE_OPENGL=0 build.

    Helixhorned r4584 31 Aug, 04:15 Fix
  • implement 'qsubstr' command. Add source/lunatic/test/qsubstr.con.

    Helixhorned r4583 31 Aug, 04:15 CON
    Show details

    In C-CON's qsubstr, error if <start> is not in [0 .. MAXQUOTELEN-1] or <length> is negative.

  • General

    Fix crash using INTERNAL DEFAULTS after CON error when CON modules were given.

    Helixhorned r4582 31 Aug, 04:15 FixCON
  • ignore internal flag in gamevar redef check; allow "Pals" member.

    Helixhorned r4581 31 Aug, 04:15 CON
  • 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.

Open the build to see all 9 commits

Build 4575

20 Aug 2014 · 1 commit · 1 author SVN
Open build
  • General

    Amend r4378 to hopefully make "stuck in water" fix work properly.

    Helixhorned r4575 20 Aug, 10:58 Fix
    Show details

    NOTE: lizmen may walk on water. I don't yet know why.

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
  • General

    game.c: fix -game_dir and -j by moving G_ExtInit() after G_CheckCommandLine().

    Helixhorned r4571 8 Aug, 13:02 Fix
  • properly initialize values of session (NODEFAULT) gamevars.

    Helixhorned r4570 8 Aug, 13:02 CON
  • 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

    Clean up astub.c:CheckMapCorruption() and some build.c code a little.

    Helixhorned r4568 8 Aug, 13:02
    Show details

    There are no intended changes of functionality, it's readability tweaks only.

  • General

    A couple of Lunatic updates. DONT_BUILD.

    Helixhorned r4567 written 2 Aug 2014 FixCON
    Show details

    - LunaCON: support for setting userdef[].m_volume_number, getting .last_level - bump con_lang.MAXEVENTS - fix compilation of astub.c

Open the build to see all 19 commits

June 2014 1 build · 7 commits

Build 4500

1 Jun 2014 · 12 commits · 3 authors SVN
Open build
  • General

    lunatic/util/build.lua: in readdefs(), add option of requesting picnum->name mapping.

    Helixhorned r4499 1 Jun, 13:50
    Show details

    That is, the reverse of what is returned with the first outarg. Use that in lunatic/util/foreachmap.lua. DONT_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.)

  • General

    Replace two missed literal numbers with SE_* enum labels.

    Helixhorned r4492 written 30 May 2014
  • General

    Bye, bye, B*alloc(), all hail X*alloc()! Replace large portion of the calls...

    Helixhorned r4491 written 29 May 2014
    Show details

    ... and cull code that is dead with the X*alloc() versions since they never return NULL on requesting memory. Use something like git grep '[^Xx]\(m\|c\|re\)alloc *(' and git grep '[^Xx]strdup *(' to see places where I left the B*alloc() calls intact. BUILD_LUNATIC.

Open the build to see all 12 commits

May 2014 10 builds · 23 commits

Build 4488

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

    Miscellaneous cleanup, still with the same suspects...

    Helixhorned r4488 28 May, 15:40
    Show details

    - in mdloadskin() and gloadtile_hi(), use new function check_nonpow2() (bit-twiddling) instead of loop - Replace a couple of missed literals with CACHEAD_* enum labels

  • 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