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 2012 · select it again to see every year
SVN era · r1519 – r8798 Git era · voidpoint.io, from april 2020
Filters · 2 active

Showing 149 builds · 270 commits

Export CSV
Display options
Commit details:

March 2012 21 builds · 45 commits

Build 2552

26 Mar 2012 · 11 commits · 1 author SVN
Open build
  • fix specifying a custom configuration file with -cfg.

    Helixhorned r2551 26 Mar, 15:05 FixEngine
    Show details

    We were writing into a string literal. Ouch!

  • General

    Add common.[ch] which should be used for common non-engine types/functions/data.

    Helixhorned r2542 26 Mar, 15:03 Engine
    Show details

    As inauguration, move G_AddGroup, G_AddPath and struct strllist there. The header is located in build/include, because in the future, code that resides closer to (but is not strictly part of) the engine might need to be factored into here. The source file, however, is in the source/ directory.

Open the build to see all 11 commits

Build 2536

25 Mar 2012 · 2 commits · 1 author SVN
Open build
  • cull sprite lights after computing sprite geometry

    Plagman r2536 25 Mar, 17:55 FixEngine
    Show details

    This was broken ever since updatesprite() had been forked off drawsprite() and would cause static lights to never hit static sprites until one or the other changed, after which the light would always get culled against outdated sprite geometry.

  • don't shadow-optimize light culling in cached sprites

    Plagman r2535 25 Mar, 17:55 Engine
    Show details

    Since updatesprite() only happens once for static sprites, avoiding light culling if we hit it in a shadow pass means that sprite will never be lit as long as that happens.

Build 2523

24 Mar 2012 · 1 commit · 1 author SVN
Open build
  • General

    - Makefiles:

    Hendricks266 r2523 24 Mar, 01:30 FixEngine
    Show details

    - Fix typo, correctly adding SDL libs to the tools on OS X so that makesdlkeytrans builds. - Move all mention of $(LIBS) out of build/Makefile into build/Makefile.shared because no linking takes place in the engine itself so LIBS additions were lost. This should fix USE_LIBPNG=1 on Windows at least. - Other assorted cleanup.

Build 2519

22 Mar 2012 · 9 commits · 1 author SVN
Open build
  • General

    Rather trivial changes in engine.c and crc32.c.

    Helixhorned r2519 22 Mar, 15:48 Engine
  • General

    New game def token "nofloorpal <pbeg> <pend>", disabling sprites taking on floor pals.

    Helixhorned r2517 22 Mar, 15:47 Engine
    Show details

    It has always annoyed me how floors with "shirt-color" type palookups like 21 affected the color of its containing sprites and HUD-drawn stuff. This commit allows one to specify an inclusive range of pals for which this should be disabled for sprites (but not for HUD stuff, yet).

  • General

    In Mapster32, remove ReadGamePalette() and GAMEpalette[] and use engine's palette[].

    Helixhorned r2515 22 Mar, 15:46 Engine
  • General

    Make engine.c's loadpalette return -1 if palette.dat is not found.

    Helixhorned r2514 22 Mar, 15:46 Engine
    Show details

    ... and initengine now returns 1 if loadpalette() fails.

Open the build to see all 9 commits

Build 2502

18 Mar 2012 · 7 commits · 1 author SVN
Open build
  • General

    Clear up after r2495. (Because I'm a pedantic asshole.)

    Helixhorned r2502 18 Mar, 16:18 FixEngine
    Show details

    - in Mapster, pre-form the default 10 clip map names before returning from G_CheckCommandLine() so it gets loaded even if we passed no cmdline args. - malloc + strlen + strcpy --> strdup - don't need to spank dead variables ;) - we may call calloc with zero size, which isn't bad by itself, but asserting for non-null afterwards is. Allocs of 0 are implementation-defined, and may well return a null pointer (C99 7.20.3).

  • General

    Port tvlineasm2 to C and enable transmaskvline2 code also for all-C builds.

    Helixhorned r2498 18 Mar, 16:17 Engine
    Show details

    With the same setup as before, a screen-filling translucent wall (with nothing drawn behind it) renders at about 7 fps faster (from 60-something fps initially)

  • General

    Port [m]vlineasm4 to C replacements and enable for solid and masked walls.

    Helixhorned r2497 18 Mar, 16:16 Engine
    Show details

    These two functions draw a vertical line 4 neighboring pixels at a time. This gives a significant speed boost for a full screen solid and masked wall scene for x86_64 (where we have plenty of registers), about 60 --> 76 fps.

  • General

    Mapster32 tag-label system: don't consider 'switch' walls with an upwall as linking.

    Helixhorned r2496 18 Mar, 16:16 Engine
Open the build to see all 7 commits

Build 2495

18 Mar 2012 · 3 commits · 1 author SVN
Open build
  • General

    New "-clipmap" command-line switch to specify sector collision clip maps. This switch works in an additive fashion like -mx and -mh. _clipshape0.map through _clipshape9.map remain loaded by default.

    Hendricks266 r2495 18 Mar, 01:50 Engine
    Show details

    Also, a very minor change in the con/def module code. (int --> int32_t)

Open the build to see all 3 commits

Build 2492

17 Mar 2012 · 5 commits · 1 author SVN
Open build
  • General

    Remix undo/redo system, fixing potential access of freed memory.

    Helixhorned r2492 17 Mar, 04:35 FixEngine
    Show details

    A run of consecutive mapstates may share sector/wall/sprite blocks, but the code was deciding whether to free them solely on local properties. Now, save a reference count at the beginning of each such allocated block and free it only if it reaches zero.

  • General

    "Promote" oob sectnum/statnum sprites to corruption level 4.

    Helixhorned r2490 17 Mar, 04:34 FixEngine
    Show details

    Also, always print at least level 5 corruptions (that is, have no instances of completely silent corruptcheck).

  • sprite list consistency checker in corruptcheck.

    Helixhorned r2489 17 Mar, 04:34 FixEngine
    Show details

    This checks for about every possible type of sprite list corruption and reports back with a corruption level 5 if one of the 14 validations fail.

  • General

    Tweak Mapster32's sound index (F2).

    Helixhorned r2488 17 Mar, 04:34 Engine
    Show details

    - start scrolling from about half of the visible page - PGUP/DGDN moves the cursor by 1/4 of the page - code cleanup (we only need one displine[80], use clearkeys())

Open the build to see all 5 commits

Build 2484

14 Mar 2012 · 8 commits · 1 author SVN
Open build
  • General

    When loading map w/ oob sectnum sprites, make them have sect. 0 if updatesector fails.

    Helixhorned r2480 14 Mar, 15:30 Engine
    Show details

    Previously, if the sprite turned really out to be in void space, either freelist inconsistency (before the list rewrite) or oob access (now) would happen. Also add an bound-checking assert() for insertsprite's sectnum argument (it's not a bound check!)

  • fix faulty limit check in duplicate_selected_sprites().

    Helixhorned r2479 14 Mar, 15:30 FixEngine
  • General

    Continuously keep track of the number of sprites in the world.

    Helixhorned r2478 14 Mar, 15:30 Engine
    Show details

    New engine variable 'int32_t Numsprites', not yet saved into savegames or mapstates. (The capitalization is to distinguish it from the often-used 'numsprites' locals or structure member names. In the editor, get rid of updatenumsprites().

  • General

    Remove redundant sprite freelist.

    Helixhorned r2477 14 Mar, 15:29 EngineCON
    Show details

    Previously, the lists starting at headspritestat[MAXSTATUS] and headspritesect[MAXSECTORS] were both used as sprite freelists and were always in complete synchrony. Now, make only the statnum list keep the free sprites. This way, it has no CON compatibility implications because headspritesect[MAXSECTORS] is inaccessible there. Leave the array at its original size for now.

Open the build to see all 8 commits

Build 2443

10 Mar 2012 · 1 commit · 1 author SVN
Open build
  • fix animations that loop to frame 0

    Plagman r2443 10 Mar, 22:52 FixEngine
    Show details

    With VBOs enabled, the virtual pointer to the geometry of frame 0 of a model is always NULL. This was confusing the polymer code responsible for deciding whether to enable smooth animations or not, which meant that any animation that would loop to frame 0 would do it as if animation interpolation was disabled, which looks very choppy.

Build 2424

7 Mar 2012 · 2 commits · 1 author SVN
Open build
  • General

    Optimizations and tweaks for C replacements of mhline and thline.

    Helixhorned r2424 7 Mar, 11:42 FixEngine
    Show details

    Hlines for masked and translucent masked ceiling/floor (sprites). - apply the --> 'do { ... } while (--cnt)' transformation, making these functions iterate cnt+1 times like the asm version. This also fixes an off-by-one issue where sprites or masked ceilings/floors had a one-pixel non-drawn line to the right. - This time, only declare-as-local two 'extern' globals (asm1 and asm2). It seems that I was too eager with "localing" all file-scoped vars earlier. GCC is able to remove the loads from memory inside the loop by itself, whereas clang is not. This is not trivial, since it has to prove that the 'screen' pointer passed to the functions will never alias these globals.

  • General

    Optimize 'rainbow' background drawing in the editor with 8-bit renderer.

    Helixhorned r2423 7 Mar, 11:42 Engine

Build 2416

4 Mar 2012 · 14 commits · 1 author SVN
Open build
  • with r_parallaxskypanning=1, clamp the sky at a constant horizon.

    Helixhorned r2415 4 Mar, 12:15 Engine
    Show details

    See E4L1 for what this means.

  • General

    Fix apparent horizon not being independent of viewingrange (classic/Polymost).

    Helixhorned r2414 4 Mar, 12:14 FixEngine
    Show details

    The apparent horizon (in units proportional to pixels by a constant factor) was being calculated without normalizing to viewingrange, resulting a discrepancy between the drawn and actual up/down angle with non-default viewingranges (e.g. with r_usenewaspect=1, or when setting it from setaspect). This also means that the center-of-aim will now be the same regardless of the aspect. This fixes many derived bugs: * inconsistency w/ crosshair when shooting a gun and aiming up/down (obviously) * bugs resulting from being able to look up/down too far (garbage non-slope texture-mapping and viewing BIGORBIT skies above the borders in classic). Note: mods that had workaround logic for this bug will have to remove it...

  • General

    Tweak 'dncoords' display.

    Helixhorned r2413 4 Mar, 12:14 Engine
    Show details

    added: sector extra; viewingrange and yxaspect before the main drawrooms call removed: randomseed

  • General

    sector.c: fix a possible oob access of a local array.

    Helixhorned r2411 4 Mar, 12:14 FixEngine
  • General

    Make 'double ghoriz' static in polymost.c.

    Helixhorned r2409 4 Mar, 12:13 Engine
Open the build to see all 14 commits

February 2012 15 builds · 29 commits

Build 2390

27 Feb 2012 · 1 commit · 1 author SVN
Open build
  • General

    Significantly speed up non-power-of-two floor sprite texture mapping functions.

    Helixhorned r2390 27 Feb, 11:40 Engine
    Show details

    (Classic renderer). We don't need 64-bit integers; also use the nice asm version of divscale32() if possible.

Build 2387

25 Feb 2012 · 1 commit · 1 author SVN
Open build
  • General

    Try to find another mirror wall if the assigned one breaks.

    Helixhorned r2387 25 Feb, 07:59 FixEngine
    Show details

    This fixes mirrors consisting of more than one walls not drawing when the first assigned mirror wall breaks. It still does not let you have more than one mirror (i.e. mirror sectors) showing up at the same time in the scene. Affects classic and Polymost only.

Build 2381

24 Feb 2012 · 2 commits · 1 author SVN
Open build
  • General

    Do bound check for "quick" sector/wall accesses from CON, i.e. in getvarvar.

    Helixhorned r2381 24 Feb, 11:51 EngineCON
    Show details

    This was causing oob sector accesses with code like this: getwall[hitwall].nextsector temp ifvarvare sector[temp].floorz sector[temp].ceilingz setvar tempb 1 (from DT's HYPERCORE). Also validate quote indices passed to CON's quote and userquote commands at runtime.

Open the build to see all 2 commits