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

Export CSV
Display options
Commit details:

February 2015 10 builds · 38 commits

Build 4975

8 Feb 2015 · 4 commits · 1 author SVN
Open build
  • General

    gameexec.c: in VM_Move(), update actor[].{floor,ceiling}z for enemies.

    Helixhorned r4975 8 Feb, 10:48
    Show details

    Previously, that was the case only with DRONE and COMMANDER. This makes non-falling enemies pass properly through TROR bunches.

  • General

    actors.c: style-cleanup A_MoveSpriteClipdist(). DONT_BUILD.

    Helixhorned r4974 8 Feb, 10:48
  • in build.c, prevent oob of wall[] if joining non-adjacent sectors.

    Helixhorned r4973 8 Feb, 10:48 Engine
    Show details

    Also, some minor stylistic cleanup.

  • CON

    Amend retrieval of STR_*TIME for qgetsysstr, fixing LunaCON and possible oob.

    Helixhorned r4972 8 Feb, 10:48 FixCON
    Show details

    - Add declarations of C functions to defs.ilua, names to dynsymlist, fix typo in con_lang.lua, ffi.string() calls in control.lua - Assert that G_LastMapInfoIndex() is always called with ud.last_level >= 1. (A stricter requirement than necessary to prevent follow-up oob accesses, but logically the most meaningful.) - In G_PrintParTime() and G_PrintDesignerTime(), return "<invalid>" if the above does not hold. This can happen from EVENT_NEWGAME, for example. Add a test to lunatic/test/qgetsysstr.con. DONT_BUILD.

Build 4965

7 Feb 2015 · 8 commits · 1 author SVN
Open build
  • fix underallocation of TILE_TILT and tilting at very small resolutions.

    Helixhorned r4965 7 Feb, 09:29 Fix
    Show details

    Since TILE_TILT is only allocated once, it must be done with the maximum possible size.

  • General

    sdlayer.c: minor stylistic simplification of sdlayer_checkversion(). DONT_BUILD.

    Helixhorned r4964 7 Feb, 09:29
  • General

    osd.c: in OSD_HandleChar() for TAB, fix use of uninitialized osd->editor.buf[i].

    Helixhorned r4963 7 Feb, 09:29 Fix
    Show details

    Exposed by Valgrind. DONT_BUILD.

  • make -fbad-getactorvar-use-pli enabled by default. DONT_BUILD.

    Helixhorned r4962 7 Feb, 09:29 CON
  • General

    Make g_player a +1 offset pointer into 'static g_player_s[1 + MAXPLAYER]'.

    Helixhorned r4961 7 Feb, 09:29 Fix
    Show details

    This fixes the out-of-bounds read of former g_player[] in VM_EventCommon_().

Open the build to see all 8 commits

Build 4957

5 Feb 2015 · 7 commits · 1 author SVN
Open build
  • fix typos in control.lua (get/setmusicposition).

    Helixhorned r4957 5 Feb, 08:30 Fix
  • General

    Add SFLAG_NOWATERDIP, unconditionally preventing actors from dipping into ST1 water.

    Helixhorned r4956 5 Feb, 08:30
    Show details

    By default, the following enemies have this flag set: OCTABRAIN, COMMANDER, DRONE. DONT_BUILD.

  • General

    Actor ST1 handling: use A_GetWaterZOffset() with VM_Move(), too. DONT_BUILD.

    Helixhorned r4955 5 Feb, 08:30 Fix
    Show details

    This is where things are changed at last. This fixes lizmen walking on water.

  • General

    Actor ST1 handling: cleanup part 2. DONT_BUILD.

    Helixhorned r4954 5 Feb, 08:30 Fix
    Show details

    Factor out condition for whether a z offset is added or not ("fix for flying/jumping monsters getting stuck in water", etc.) into a function A_GetWaterZOffset() (and a helper A_GetVerticalVel()).

  • General

    Actor ST1 handling: clean up code a bit. (Preparation for real changes.)

    Helixhorned r4953 5 Feb, 08:30
    Show details

    In VM_Fall(), keep a temp preliminary new z position of the actor and assign only when we return. This is to each ease watching its value in GDB. DONT_BUILD.

Open the build to see all 7 commits

January 2015 8 builds · 19 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

  • General

    osdfuncs.c: get rid of a warning with GCC. DONT_BUILD.

    Helixhorned r4936 18 Jan, 16:03

Build 4935

18 Jan 2015 · 7 commits · 2 authors SVN
Open build
  • fix "windowed" modes (r_size >= 12) by reverting r4920; adapt.

    Helixhorned r4935 18 Jan, 15:16 FixCON
    Show details

    In setview(), we now assert windowx2 < xdim. The only calling places where its non-violation is non-trivial to ascertain are (1) showview from CON and (2) draw-to-tile for look-sideways in game.c. AFAICS case 1 should be fine. Case 2 is adapted; see comments there.

  • remove unused key* options in mapster32.cfg and corresponding BK_* macros. DONT_BUILD.

    Helixhorned r4934 18 Jan, 14:11 Engine
  • General

    Fix bsearch() call for user G_LoadMapHack(): don't access nonexistent storage. DONT_BUILD.

    Helixhorned r4933 18 Jan, 12:31 Fix
  • 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
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 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.