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 2,334 commits

Export CSV
Display options
Commit details:

April 2023

  • add manual test case 'mask_drawing_order.map'

    Helixhorned 0f598df written 22 Dec 2022 Build 10212
  • in 'msaveloadtext()', prevent read of 'g_skillNames[-1]', fixing issue #225.

    Helixhorned e90e66e written 29 Dec 2022 Build 10212 Fix
    Show details

    Note: 'skill == 0' can be obtained from the command line by either * '-m': "monsters off", or * '-s0': 'ud.m_monsters_off' is *not* set

  • in "draw tsprite before mask?" check, consider tile offsets for sloped sprites.

    Helixhorned 671a7bc written 29 Dec 2022 Build 10212 FixEngine
    Show details

    In 'GetCornerPoints()', fix condition for when to use 'get_floorspr_points()' to include sloped sprites as well.

  • in "draw tsprite before mask?" check, consider offsets for floor sprites.

    Helixhorned 5f5ab3f written 23 Dec 2022 Build 10212 Engine
  • in "draw tsprite before mask?" check, consider xoffset for wall sprites.

    Helixhorned 22d67e2 written 23 Dec 2022 Build 10212 Engine
    Show details

    (More precisely, in renderDrawMasks()'s check "does the maskwall separate the tsprite center from the camera?".) This provides more reasonable rendering order when the sprite (as drawn) is heavily biased to one side of the maskwall. Note [1]: mask/mask intersections are in general problematic since there is no further subdivision. For opaque objects, the OpenGL modes "work around" the issue thanks to the depth buffer. See: - 'mask_drawing_order.map', the STEAM sprites which by position are all on the other side of the right-hand side fence, but as drawn may or may not be more towards one particular side. (The topmost one with xoffset 50 is the first to be drawn behind it; note that 'picanm[STEAM].xofs == -47'.) - Issue #136, the first example screenshot. However, there, the fence intersects the STEAM sprite quite exactly in the middle (as drawn), so note [1] above applies.

  • in 'editorDraw2dSprite()', don't redundantly (over)draw a line.

    Helixhorned f657dab written 23 Dec 2022 Build 10212
  • in 'editorDraw2dSprite()', rename '[xy]2' -> 'd[xy]' + other NIFC tweaks.

    Helixhorned 5bc03f3 written 23 Dec 2022 Build 10212
    Show details

    - pull out repeated expression 'spr->ang + angofs' into local 'ang' - tweak 'editorDraw2dScreen()', too

  • in 'renderDrawMasks()', simplify a condition.

    Helixhorned 7462fa6 written 22 Dec 2022 Build 10212 Engine
  • fix "search for named tile" [S] in the tile selection view.

    Helixhorned 98358b4 written 22 Dec 2022 Build 10212 Fix
  • NIFC tweaks around tile selection.

    Helixhorned a9a7441 written 22 Dec 2022 Build 10212
    Show details

    Background: "search for named tile" does not work as expected.

  • from 'renderDrawMasks()', pull out 'GetCornerPoints()'.

    Helixhorned 6fc2c63 written 21 Dec 2022 Build 10212 Engine
  • in mask/tsprite sorting, NIFC tweaks (round 3: common rendering).

    Helixhorned ddb6a1a written 21 Dec 2022 Build 10212 Engine
    Show details

    Meaning the 'while (maskwallcnt) { ... loop over tpsrites ... }' block in 'renderDrawMasks()' that is not conditional on the rendering mode.

  • in mask/tsprite sorting, NIFC tweaks (round 2: +1 local, +3 functions).

    Helixhorned 13d788c written 21 Dec 2022 Build 10212 FixEngine
    Show details

    - 'PolymostPrepareMasks()' - 'PolymostDrawMasks()' - 'DrawDebugSpriteOutlines()' In passing: - Declare once and reuse 'isPolymost' local - In '#if 0'-d debug code, fix an inconsistency and a call by an obsolete function name

  • in mask/tsprite sorting, NIFC tweaks (round 1: clang-format, locals, const).

    Helixhorned cfb8b5b written 21 Dec 2022 Build 10212 Engine
    Show details

    (NIFC: no intended functional changes)

  • address various UBSan and [-Wunused-but-set-variable] warnings.

    Helixhorned f8e74f3 written 21 Dec 2022 Build 10212 FixEngine
    Show details

    source/mimalloc/src/options.c:228:3: runtime error: call to function mi_log(char*, void*) through pointer to incorrect function type 'void (*)(const char *, void *)' source/build/src/osd.cpp:1755:44: runtime error: null pointer passed as argument 2, which is declared to never be null source/build/src/glbuild.cpp:296:9: runtime error: load of value 4294967295, which is not a valid value for type 'glsamplertype' source/duke3d/src/gamestructures.cpp:355:125: runtime error: member access within null pointer of type 'DukePlayer_t' ---- Note: we are also getting e.g. > source/build/include/compat.h:1008:72: runtime error: store to misaligned address 0x(...) > for type 'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment due to '-fsanitize=alignment' implied by '-fsanitize=undefined'. This is left as-is.

  • pull out 'find_usermaphack()', also handling '!usermaphacks' case.

    Helixhorned c522673 written 21 Dec 2022 Build 10212 FixEngine
    Show details

    Exposed by UBSan, e.g.: source/build/src/engine.cpp:11090:67: runtime error: null pointer passed as argument 2, which is declared to never be null

  • General

    Common.mak: drop 'unsigned-integer-overflow' and 'float-divide-by-zero' from 'ASAN_FLAGS'.

    Helixhorned 7607d82 written 21 Dec 2022 Build 10212 Fix
    Show details

    - 'unsigned-integer-overflow': happens too frequently (and is not UB) - 'float-divide-by-zero': see https://reviews.llvm.org/D63793 and D64317

September 2020

  • General

    sdlayer.cpp: remove an '#ifndef __ANDROID__' block with only commented code in it.

  • General

    sdlayer.cpp: don't print SDL_SetWindowGammaRamp() error if the function was not called.

    Show details

    We may have gotten an error message like: videoSetGamma(): Failed loading udev_device_get_action: (...)/libSDL2-2.0.so.0: undefined symbol: _udev_device_get_action But: 1. The "error" in question did actually happen earlier in SDL, but is harmless because SDL first tries to load a symbol using 'dlsym(RTLD_DEFAULT, ...)' and failing that (as it happens in my case), from an explicitly loaded libudev (which succeeds). 2. The message misleads a user into thinking that it may have something to do with gamma adjustment having no effect. (As is the case for me.)

  • update zpl.h for build and runtime fixes on 32-bit ARM.

    Helixhorned c18af2a 7 Sep, 17:44 Build 9257 Fix
    Show details

July 2016

  • on TROR point insertion, mark more points.

    Helixhorned r5811 4 Jul, 07:09 Build 5811 FixEngine
    Show details

    This fixes a bug reported by Micky C on 2016-01-11 where too few points were marked to be inserted. See AMC TC SVN r2308.

  • pull out some code from M32_InsertPoint() into M32_MarkPointInsertion().

    Helixhorned r5810 4 Jul, 07:09 Build 5811 Engine
  • fix map-text loading.

    Helixhorned r5809 4 Jul, 07:09 Build 5811 Fix
    Show details

    The file descriptor was closed from Lua code, causing the subsequent kfilelength() to fail and attempt an allocation of (size_t)-1 bytes.

  • General

    SDL2 layer: in Mapster32, fix menu Ctrl-F in case NumLock is on.

    Helixhorned r5808 4 Jul, 07:09 Build 5811 FixEngine
  • General

    engine.c: fix potential smostwall[-1] access. Found by ASan.

    Helixhorned r5807 4 Jul, 07:09 Build 5811 FixEngine
  • General

    Fix non-HAVE_CLIPSHAPE_FEATURE build.

    Helixhorned r5806 4 Jul, 07:09 Build 5811 Fix
    Show details

    Used for example with DEBUGGINGAIDS=2, i.e. sanitizers enabled.

November 2015

  • General

    player.c: factor out large A_ShootWithZvel() block into A_ShootHardcoded()

    Helixhorned r5435 written 21 Nov 2015 Build 5454
    Show details

    The block is taken over verbatim; 'vec3_t srcvect' is passed by value. The primary purpose of this is that it's easier to compare custom projectile behavior in A_ShootCustom() with the hardcoded one by reading the code of these two functions. For example, this may be of use to modders wishing to emulate a hardcoded projectile. DONT_BUILD.

  • in drawspritelabel(), use fixed background color.

    Helixhorned r5434 20 Nov, 12:26 Build 5434 FixEngine
    Show details

    Make it always one of the colors that the 2D color cycles to (base color + offset in [0 .. 4]) instead of <base color>-3, as that one might be in a different color ramp.

  • add byte array editorcolors[256] to m32script variables.

    Helixhorned r5433 20 Nov, 12:26 Build 5434 EngineCON
    Show details

    This makes it possible to set up editor colors at startup (from m32_autoexec.cfg). For example: script_expertmode 1 do for i range 256 ifge i 33 { set editorcolors[i] i } script_expertmode 0 Use this method in the description of how to get old-style 2D colors in tiles.cfg and suggest an alternative color index pair.

  • make 'script_expertmode' require an argument (0 or 1) to toggle.

    Helixhorned r5432 20 Nov, 12:26 Build 5434 Engine
    Show details

    Without an argument, it prints the current state.

  • General

    In package/sdk/tiles.cfg, use the right word for "remove commenting".

    Helixhorned r5431 written 15 Nov 2015 Build 5434
    Show details

    DONT_BUILD.

  • changes to aid getting the old color scheme (by customizing).

    Helixhorned r5430 14 Nov, 15:41 Build 5430 Engine
    Show details

    - bump MAX_TILE_GROUP_ENTRIES to MAXUSERTILES - in loadtilegroups(), only assign a tile color if it wasn't already assigned - allow "hidden" tile groups by omitting the hotkey - Tweak the description added to tiles.cfg

  • honor "blocking color" declared with DEF 'spritecol' et al.

    Helixhorned r5429 14 Nov, 15:40 Build 5430 Engine
    Show details

    Meaning tilegroup's 'colors' directive. Also, to the packaged tiles.cfg, add a description of how to emulate the earlier Mapster32 sprite coloring for one tile group.

  • in a.m32, draw color info ("set showpal 1") more informatively.

    Helixhorned r5428 14 Nov, 15:40 Build 5430 Engine
    Show details

    - draw ticks above the palette "ruler" - draw all editor colors (colors in editorcolor[])

  • introduce DEF command "2dcolidxrange <col> <idx> <idxend>".

    Helixhorned r5427 14 Nov, 15:40 Build 5430 Engine
    Show details

    <col> is the editorcolor[] starting index <idx> is the actual color index start <idxend> is the actual color index end So, editor colors from <col> onward will be mapped to [<idx> .. min(<idxend>, 255)]. Takes precedence over '2dcol'.

  • in drawscreen_drawsprite(), "sprite[j]." -> "spr->".

    Helixhorned r5426 14 Nov, 15:40 Build 5430 Engine
    Show details

    Also a similar stylistic tweak in parsetilegroups().

  • formatting changes around 2D sprite/wall color code.

    Helixhorned r5425 14 Nov, 15:40 Build 5430 Engine
  • General

    Fix POLYMER=0 build. DONT_BUILD.

    Helixhorned r5424 14 Nov, 11:54 Build 5430 FixEngine
  • fix variable that is used uninitialized.

    Helixhorned r5423 14 Nov, 09:21 Build 5423 FixEngine
  • General

    premap.c: on prelevel(), clear bits 16 and 32 of effector sprites.

    Helixhorned r5422 14 Nov, 09:21 Build 5423 Engine
  • remove "Ludicrous Zoom!" message when reaching max 2D zoom.

    Helixhorned r5421 14 Nov, 09:21 Build 5423 Engine
    Show details

    The problem is that it stays a few seconds afterwards, obscuring information on the status line.

  • add var 'corruptcheck_game_duke3d' and enable by default.

    Helixhorned r5420 14 Nov, 09:21 Build 5423 FixEngine
    Show details

    Currently, this checks for effector sprites that are not face-aligned. See https://forums.duke4.net/topic/8324-icestation-colossus-map-broken

  • various stylistic tweaks, no functional changes. DONT_BUILD.

    Helixhorned r5413 written 31 Oct 2015 Build 5423 Engine

October 2015

  • in TROR-join sectors [Ctrl+J], print z difference hint.

    Helixhorned r5412 31 Oct, 08:13 Build 5412 Engine
    Show details

    At the very least, this makes it easier to decide for one option ("Connect yellow ceiling w/ blue floor (1) or (v)ice versa?") when one of the differences is zero, which might have occurred from temporarily breaking TROR links.

  • fix fillsector() calls before fade_editor_screen().

    Helixhorned r5411 31 Oct, 08:13 Build 5412 FixEngine
    Show details

    The latter allows one to specify a color to keep, but with r5302 the fillsector() highlights are drawn with transparency, thus making it ineffective. Add an argument to toggle transparency to fillsector() (now fillsector_maybetrans()) and two wrapper functions.

  • don't offer to "Insert outer loop and make red walls" w/ RAlt+RCtrl.

    Helixhorned r5410 31 Oct, 08:13 Build 5412 Engine
    Show details

    This feature only makes sense with the complete de-selection of a set of sectors, i.e. when pressing RAlt to do this, not adding or removing sectors to/from the set of already highlighted ones.

September 2015

August 2015

  • in manual member editing, Shift+ENTER allows toggling individual bits

    Helixhorned r5338 30 Aug, 00:24 Build 5338 Engine
    Show details

    For values that are displayed in hex. Patch by The Mechanic, with modifications.

  • CON

    amend action's viewtype -8 to be more in line with the others.

    Helixhorned r5337 29 Aug, 10:43 Build 5337 CON