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:

November 2013 4 builds · 11 commits

October 2013 5 builds · 8 commits

Build 4125

28 Oct 2013 · 5 commits · 1 author SVN
Open build
  • when failing to load file, don't append '.m32' if already there.

    Helixhorned r4124 28 Oct, 14:26 EngineCON
    Show details

    So that there are no error messages like "M32 file `a.m32.m32' not found." Also, in build.c's 'save as' code, add a bound check that would probably always pass in practice, but looks a bit safer and may fail in very cornerly cases.

  • save r_usetileshades and r_pr_artmapping with mapster32.cfg.

    Helixhorned r4123 28 Oct, 14:26 Engine
  • take initial map file name from ExtPreInit()->G_CheckCommandLine().

    Helixhorned r4121 28 Oct, 14:26 Engine
    Show details

    Instead of directly in build.c:app_main(). Previously, it was possible that an argument to an option, e.g. "WGR2" with "-game_dir WGR2", would get interpreted as the initial map to load. This in turn would attempt to execute WGR2.cfg as sequence of OSD commands -- where that file is an EDuke32 config file instead! Now: maps are passed without any options, e.g. "mapster32 [opts...] debug.map". The map file name is not added to the "additional parameters" for map testing.

Open the build to see all 5 commits

Build 4120

27 Oct 2013 · 9 commits · 1 author SVN
Open build
  • General

    At end of G_RestoreMapState(), update g_player[].ps->i from STAT_PLAYER sprites.

    Helixhorned r4114 written 25 Oct 2013 FixEngine
    Show details

    This fixes a potential crash caused by violating the expected invariant sprite[g_player[player_index].ps->i].yvel == player_index otherwise.

Open the build to see all 9 commits

Build 4096

11 Oct 2013 · 3 commits · 1 author SVN
Open build
  • General

    Fix OpenGL texture cache "leak" and slightly tweak hash string construction.

    Helixhorned r4096 11 Oct, 15:20 FixEngine
    Show details

    The leak happened because a struct was hashed that had uninitialized bytes in padding inserted by the compiler. The hash string in now constructed as concatenation of three CRC32s as 8-byte hex strings, i.e. the individual CRC32s are padded with leading zeros. Note to users: because of the hash change, it's sensible to delete the 'textures' and 'textures.cache' files.

  • fix ANM playback.

    Helixhorned r4094 11 Oct, 15:20 FixEngine
    Show details

    References: - r3742 - r4038 (fixing savegame screenshots, but introducing the now fixed bug)

Open the build to see all 3 commits

September 2013 2 builds · 7 commits

Build 4061

13 Sep 2013 · 4 commits · 1 author SVN
Open build
  • in model preprocessing, implement cos/sin by table lookup.

    Helixhorned r4060 13 Sep, 13:23 Engine
    Show details

    This reduces the proportion of time the trig calculations take of the whole preprocessing from 50% to about 13%.

  • make hitscan accept ray as vector, add xmath.kangvec.

    Helixhorned r4059 13 Sep, 13:23 Engine
    Show details

    Also, add hitscan test to test.lua -- a crosshair-like sprite is spawned and continuously updated to the position of where the player aims at.

  • make spriteext[].{x,y,z}off independent of xdimen/viewingrange/aspect.

    Helixhorned r4058 13 Sep, 13:23 FixEngine
    Show details

    The offsets (that will translate the axes for .pitch/.roll rotation) were calculated improperly with screen sizes other than 1280 x 1024 and were dependent on other related variables. The fix proceeded empirically, i.e. mostly trial, error, and some educated guesswork. (It's telling that the magic constant 1280 is needed.) A test for Lunatic is added to test.lua that will rotate SEENINES. Bug pointed out by Mblackwell.

Open the build to see all 4 commits

Build 4050

5 Sep 2013 · 9 commits · 1 author SVN
Open build
  • add option -Lopts=... from command line.

    Helixhorned r4049 5 Sep, 10:37 Engine
    Show details

    Permitting to enable various debugging options. See "eduke32 -debughelp" for which ones those are: they were previously settable from defs_common.lua, and a new option 'strict' has been added that makes accesses to void sprites error. (That is, already "sprite[i]", not "sprite[i].some_member".)

  • General

    A couple of minor changes.

    Helixhorned r4048 5 Sep, 10:37 FixEngine
    Show details

    - engine.c: comment out some unused decls with RELEASE=0 DEBUGANYWAY=1 - Lunatic: update dump.lua and v.lua - Lunatic: test/test_geom.lua: note a perf regression (wrt older LuaJIT, or I mis-configured / built something wrong)

  • fix _digitalnumber, remove player._INPUT_BITS, add sprite.all().

    Helixhorned r4047 5 Sep, 10:37 FixEngine
  • General

    a.m32: add 'moveselsects', moving them so that each sector's 1st pt is at (0,0).

    Helixhorned r4042 5 Sep, 10:37 Engine
Open the build to see all 9 commits

August 2013 5 builds · 13 commits

Build 4036

23 Aug 2013 · 8 commits · 1 author SVN
Open build
  • after auto-inserting inner sector, change sectnums for sprites now in it.

    Helixhorned r4033 23 Aug, 10:01 Engine
    Show details

    (Auto-insertion of an inner sector from a loop happens either because the loop is created in an extended sector, or because it has been punched through a ceiling/floor into the upper/lower neighbor sector.)

  • update documentation a bit.

    Helixhorned r4032 23 Aug, 10:01 Engine
    Show details

    - add gv.GET, gv.WEAPON, gv.RETURN - specify that sprite[].x/y/z and wall[].x/y are 32-bit ints - add an example for con.longjmp() - add an appendix listing the RETURN usage of various events

Open the build to see all 8 commits

Build 4026

19 Aug 2013 · 2 commits · 1 author SVN
Open build
  • allow inserting point on wall line even if a sprite is highlighted.

    Helixhorned r4026 19 Aug, 12:27 Engine
    Show details

    Note: the wall line will not light up periodically, but point insertion will be possible nontheless. A bit inconsistent, but I didn't want to do a full analysis of which side effects allowing a sprite highlight and a line highlight to coexist at the same time would have.

Open the build to see all 2 commits

Build 4023

18 Aug 2013 · 3 commits · 1 author SVN
Open build
  • General

    For Clang debugging build, only pass selected UBSanitizer options.

    Helixhorned r4020 18 Aug, 12:24 Engine
    Show details

    This makes CLANG=1 RELEASE=0 DEBUGANYWAY=2 OPTLEVEL=1 builds definitely pretty playable (only Polymost tested) while having a decent amount of sanitization.

Open the build to see all 3 commits

Build 4017

12 Aug 2013 · 16 commits · 1 author SVN
Open build
  • General

    polymer.c: remove redundant NULL pointer check in polymer_invalidateplanelights().

    Helixhorned r4017 12 Aug, 08:18 FixEngine
    Show details

    Redundant for the same reason as the preceding one: the pointer has already been dereferenced at the point the check is made. Also, all 5 calls of that function pass a valid pointer (provided the pointers from which the expressions are derived are valid). Reported by Stack, too.

  • General

    Mapster32/non-Lua: don't keep tags used for TROR nextwalls when c&p-ing sector.

    Helixhorned r4012 12 Aug, 08:18 Engine
    Show details

    Again, in case a bunch is discarded. The tags would appear as really tagging the walls instead of being "hidden".

  • General

    Mapster32/Lunatic: clear bunchnum and TROR nextwalls when c&p-ing sectors.

    Helixhorned r4011 12 Aug, 08:18 Engine
    Show details

    That is, if a bunch is discarded when copying a sector to the clipboard. (This happens if not all sectors that are part of the bunch are copied.)

  • fix my r_usetileshades==2 sub-method.

    Helixhorned r4010 12 Aug, 08:18 FixEngine
    Show details

    Don't touch TerminX's r_usetileshades==1 or it being the default.

  • Clean up "show height indicators" mode.

    Helixhorned r4007 12 Aug, 08:18 Engine
    Show details

    - For setting 1, don't draw them for red walls whose sector floors have equal height. - Make setting 1 the default, because I consider drawing them for such walls (and white walls) noise (as opposed to information). The "verbose" setting 2 is still available.

Open the build to see all 16 commits

Build 3979

4 Aug 2013 · 5 commits · 1 author SVN
Open build
  • slightly more complete handling of (multi-tile) ART skies.

    Helixhorned r3977 4 Aug, 13:37 Engine
    Show details

    - Use the proper tile sequence when multiple pskies are present in a map. However, there's still only *one* psky chosen at map load time. - Handle three horizfrac cases: * 0, psky always at same level wrt screen * 65536, psky horiz follows camera horiz (e.g. E4L9) * otherwise, fall back to default hard-coded parallax implemented as an angle fraction

  • General

    Clean up parallaxed sky functionality, part 2.

    Helixhorned r3976 4 Aug, 13:37 Engine
    Show details

    - Rename sky_t members: yscale -> horizfrac, bits -> lognumtiles. - Add default sky (8 tiles, horizfrac=32768 (i.e. 1/2 the scene horiz), offsets all zero) and CLOUDYOCEAN sky (8 tiles, horizfrac=65536, offsets all zero) to multipsky[]. - Get rid of "psky_t g_psky", merely maintaining a g_pskyidx instead. Set it up at map load time so as to keep the behavior of the legacy per-map psky: the last sector index with a matching psky ceiling wins. - In mapstate_t, save g_pskyidx too, not (former) pskybits and pskyoffs[]. - Make on-map-load global psky setup consistent for the game and editor by factoring it out into common.c: G_SetupGlobalPsky(). - Remove a couple of useless initializations, add some static assertions. This commit is more likely to introduce subtle differences in behavior. Specifically, getpsky() now always returns the default sky properties instead of the global sky ones (but with all-zero offsets) when no match for a suiting multi-psky is found. This is only likely to affect the yscale/horizfrac of non-multi-pskies when a global non-default multi-psky has been set up. Bump BYTEVERSION again.

  • General

    Clean up parallaxed sky functionality, part 1.

    Helixhorned r3975 4 Aug, 13:37 FixEngine
    Show details

    - Consolidate psky* arrays into a "typedef struct psky_t" "g_psky" and "multipsky[]". - Factor out getting parallaxed sky properties into getpsky(). - Condense initial multi-psky setup by memcpy'ing from multipsky[]. - New function: MultiPsky_TileToIdx(). - Add new define PSKYOFF_MAX and related consistency-checking assertions. - Lower MAXPSKYTILES to 8 to reflect current usage (was 256). - Game: make multi-pskies consider dynamically-remapped MOONSKY1, BIGORBIT1 and LA. (Not very useful as the editor will still only act for the static values -- 80, 84 and 89, respectively.) An attempt has been made to preserve behavior even in strange cases, so this commit is unlikely to introduce regressions. Because of point 6, BYTEVERSION had to be bumped.

Open the build to see all 5 commits

July 2013 4 builds · 5 commits

Build 3963

18 Jul 2013 · 5 commits · 1 author SVN
Open build
  • General

    Polymer/ART mapping: fix formula for globalvisibility.

    Helixhorned r3962 18 Jul, 11:08 FixEngine
    Show details

    Also, very slightly tweak a factor toward a "brighter" (farther visible) scene overall to account for the "circular" nature of the fragment distance (as opposed to an "ortho" distance in Build).

Open the build to see all 5 commits

Build 3955

13 Jul 2013 · 13 commits · 1 author SVN
Open build
  • revamp sector changing/updating functions of sprites.

    Helixhorned r3953 13 Jul, 14:04 Engine
  • General

    game.c: read sprites-on-screen count for DNDEBUG at end of G_DoSpriteAnimations.

    Helixhorned r3952 13 Jul, 14:04 Engine
    Show details

    Because that function might have inserted tsprites itself, e.g. for the fake floor shadow. Also add one "spritesortcnt < MAXSPRITESONSCREEN" bound check in legacy ROR code.

Open the build to see all 13 commits

Build 3942

9 Jul 2013 · 4 commits · 1 author SVN
Open build
  • General

    Polymost "use tile shades": don't confound shade and visibility.

    Helixhorned r3941 9 Jul, 11:23 Engine
    Show details

    That is, for shade of objects, use shade tables. For visibility, use GL fog. Mixing these two does not produce satisfactory results in areas where both shade and visibility darkening are high, such as around the E1L1 restroom.

Open the build to see all 4 commits

Build 3938

7 Jul 2013 · 6 commits · 1 author SVN
Open build
  • retire per-sprite tsprite access for per-tile animation callback reg.

    Helixhorned r3937 7 Jul, 13:59 Engine
    Show details

    Don't yet make this official API though, since there are unresolved issues with newly created tsprites potentially being fed back to the animation loop. Add xmath.angvec(), xmath.bangvec(), tspr:set_sectnum(), tspr:setpos().

Open the build to see all 6 commits

June 2013 10 builds · 14 commits

Build 3913

29 Jun 2013 · 1 commit · 1 author SVN
Open build
  • General

    Fix loading maps in Mapster32, introduced in r3911.

    Helixhorned r3913 29 Jun, 05:15 FixEngine
    Show details

    Also, get rid of the strange filename[len]=255 hack in loadboard() and make its file name arg const char* at last.

Build 3912

28 Jun 2013 · 7 commits · 1 author SVN
Open build
  • General

    Mapster32/Lunatic: ask when a <V10 map would be overwritten with a map-text one.

    Helixhorned r3911 28 Jun, 07:07 Engine
    Show details

    Also, clean up the saving/loading logic a bit: - On load failure, display message with purple color. - Take over the current file name ('boardfilename') only on success. - Check SaveBoard() return values in various places.

Open the build to see all 7 commits