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 668 builds · 2,314 commits

Export CSV
Display options
Commit details:

March 2013 12 builds · 62 commits

Build 3566

15 Mar 2013 · 8 commits · 1 author SVN
Open build
  • General

    Add new LOGO_FLAGS bit 2048, preventing cutscene at E4 beginning if set.

    Helixhorned r3566 15 Mar, 09:56
  • General

    geom.lua: fix copy-paste bugs and clean up code. Remove __eq metamethod.

    Helixhorned r3565 15 Mar, 09:56 Fix
  • allow indexing some weapon/inventory arrays with their names.

    Helixhorned r3564 15 Mar, 09:56
  • General

    Lunatic translator: warn if setting reserved bits in some system gamevar redef.

    Helixhorned r3563 15 Mar, 09:56 CON
  • g_tile access, rudimentary system gamearray support for the translator.

    Helixhorned r3562 15 Mar, 09:56 CON
    Show details

    The only operation for which proper code is generated is reading a single value from a system gamearray.

Open the build to see all 8 commits

Build 3558

13 Mar 2013 · 3 commits · 1 author SVN
Open build
  • replace some allocations by static data, some translator fixes.

    Helixhorned r3558 13 Mar, 03:48 Fix
    Show details

    Fix 'setsprite' and 'music'. A good timing test for actors performance is the starfield of WGR2's E1L1 ("Nexus").

  • also save min, max actor times; fix release build.

    Helixhorned r3557 13 Mar, 03:48 Fix
  • General

    Lunatic translator: handle LOGO_FLAGS.

    Helixhorned r3556 13 Mar, 03:48 CON
    Show details

    This is the only gamevar of its kind that is handled for Lunatic, neither PLR_MORALE nor LOGO_FLAGS are.

Build 3542

3 Mar 2013 · 9 commits · 1 author SVN
Open build
  • General

    Fix starttrack crashing when a "null music" is selected.

    Helixhorned r3542 3 Mar, 08:06 Fix
    Show details

    Introduced with the refactoring in r3490.

  • make con.ai accept literal action/move, check for calling from top.

    Helixhorned r3541 3 Mar, 08:06 Fix
    Show details

    Also, fix con._setgamepalette.

  • General

    Lunatic translator standalone: option specifying a directory for gen'd code.

    Helixhorned r3540 3 Mar, 08:06
    Show details

    The option is -fgendir=<directory>.

  • General

    Lunatic translator standalone: allow specifying list files.

    Helixhorned r3539 3 Mar, 08:06 CON
    Show details

    All non-option positional arguments after an @ sign are taken as list files: hashes at the beginning of a line denote comments, truly empty lines are ignored, all other lines should contain one root CON file name.

  • General

    spriteclip.txt: refer to _clipshape0.map instead of _clipshape_.map.

    Helixhorned r3538 3 Mar, 08:06
Open the build to see all 9 commits

February 2013 16 builds · 85 commits

Build 3533

28 Feb 2013 · 4 commits · 1 author SVN
Open build
  • General

    Lunatic t.: {read,save}gamevar, fix break in nested while, fix rotatesprite16.

    Helixhorned r3533 28 Feb, 09:30 FixCON
  • General

    build.c: initialize g_doHardcodedMovement to 1.

    Helixhorned r3532 28 Feb, 09:30 FixEngine
    Show details

    Fixing movement when not loading a.m32.

  • attach const qualifiers to appropriate function input arguments.

    Helixhorned r3531 28 Feb, 09:30
  • fixups and debugging helpers.

    Helixhorned r3530 28 Feb, 09:30 Fix
    Show details

    - add LuaJIT's 'v' module printing trace info - translator: fix game function name definitions - revert math.fmod -> math.modf, they are different! - disable JIT compilation for a function we're getting strange crashes with - Make some of DukePlayer_t's members 'bool' on the Lua side. It's way too easy to write something like "ps.jetpack_on" where "ps.jetpack_on~=0" was meant. [Background: Kyle873 observed that Duke was always floating.] - Error out if looping in our_module(). I find this behavior more logical than returning true. - fix a couple of missed FORBID variables

Build 3529

28 Feb 2013 · 1 commit · 1 author SVN
Open build
  • General

    Lunatic translator: fix codegen for "break" inside while loops.

    Helixhorned r3529 28 Feb, 09:29 FixCON
    Show details

    Note: usually, languages call this "continue". Jeez, CON...

Build 3528

25 Feb 2013 · 7 commits · 1 author SVN
Open build
  • initialize test Lua state earlier so that 'setdefname' has an effect.

    Helixhorned r3528 25 Feb, 07:31
  • General

    Remove some duplicate or unused control layer defines.

    Helixhorned r3527 25 Feb, 07:31
    Show details

    Notes: - MAXJOYBUTTONS is out of sync between the two definitions - In menus.c, NUMMOUSEFUNCTIONS must equal MAXMOUSEBUTTONS, fail to compile if this becomes false.

  • General

    Lunatic translator: handle RETURN across events.

    Helixhorned r3526 25 Feb, 07:31
  • General

    engine.c: in setpolymost2dview(), set gloy=-1 unconditionally.

    Helixhorned r3525 25 Feb, 07:31 FixEngine
    Show details

    This fixes an update issue: start EDuke32 without warping to a map in Polymost, change to classic, and change to Polymost again. The OSD background will be displaced.

  • sector[]:zrangeat(), 'getzrange' command for the translator.

    Helixhorned r3524 25 Feb, 07:31 FixEngine
    Show details

    Also, fix quote commands there.

Open the build to see all 7 commits

Build 3521

24 Feb 2013 · 6 commits · 1 author SVN
Open build
  • General

    Lunatic Makefile.deps: make game.c depend on defs.ilua.

    Helixhorned r3521 24 Feb, 08:05
    Show details

    Since the size of defs.ilua's bytecode is used in game.c.

  • export C functions that may call into CON events using the Lua C API.

    Helixhorned r3520 24 Feb, 08:05 CON
    Show details

    We must not call these functions using the FFI, since the Lua state is considered locked across such calls.

  • begin fixing up the code because it's now actually live!

    Helixhorned r3519 24 Feb, 08:05 Fix
  • General

    Lunatic translator: keep states, game{vars, arrays} in tables instead of locals.

    Helixhorned r3518 24 Feb, 08:05
    Show details

    Since it's too easy to hit the 200 locals limit.

  • compile defs.ilua as bytecode and load it from the executable.

    Helixhorned r3517 24 Feb, 08:05
Open the build to see all 6 commits

Build 3515

21 Feb 2013 · 6 commits · 1 author SVN
Open build
  • General

    Lunatic translator: eventloadactor.

    Helixhorned r3515 21 Feb, 10:54
  • General

    gameexec.c: factor out 2x used code into VM_KillIt.

    Helixhorned r3514 21 Feb, 10:54
    Show details

    Also, for Lunatic, handle killit from events.

  • General

    Lunatic translator: switch statement.

    Helixhorned r3513 21 Feb, 10:54
  • General

    Lunatic translator: qgetsysstr.

    Helixhorned r3512 21 Feb, 10:53
  • General

    Lunatic translator: fix quote commands, taking care of corner cases. Add test.

    Helixhorned r3511 21 Feb, 10:53 Fix
Open the build to see all 6 commits

Build 3509

19 Feb 2013 · 1 commit · 1 author SVN
Open build
  • add "movement by one" debugging functionality via a.m32.

    Helixhorned r3509 19 Feb, 12:35 FixEngineCON
    Show details

    If m32script gamevar "move_by_one" is nonzero, the some keys move the "player arrow" by increments of 1: - Without SHIFT: LEFT/RIGHT absolute x, DOWN/UP absolute y, A/Z absolute z. - With SHIFT: DOWN/UP (unbounded!) horiz, LEFT/RIGHT angle. This can be useful to debug renderer bugs that show a high sensitivity to the exact location ("are transient in space").

Build 3508

18 Feb 2013 · 11 commits · 1 author SVN
Open build
  • General

    Disable playing RTS sounds until a crash can be resolved.

    Helixhorned r3508 18 Feb, 08:08 Fix
    Show details

    See comments in the source for details.

  • General

    Lunatic translator: qsprintf.

    Helixhorned r3507 18 Feb, 08:07
  • General

    CON qsprintf: fix specifying more than one "%s" conversion.

    Helixhorned r3506 18 Feb, 08:07 FixCON
    Show details

    Also, slightly better, though still inadequate checking.

  • CON

    don't accept read-only vars for first arg of qstrlen.

    Helixhorned r3505 18 Feb, 08:07 CON
  • General

    Lunatic translator: a couple of quote commands, while*n.

    Helixhorned r3504 18 Feb, 08:07
Open the build to see all 11 commits

Build 3492

16 Feb 2013 · 8 commits · 1 author SVN
Open build
Open the build to see all 8 commits

Build 3484

14 Feb 2013 · 4 commits · 1 author SVN
Open build
  • General

    Fix build without Ken's ZIP library (WITHKPLIB not #define'd in compat.h).

    Helixhorned r3484 14 Feb, 08:02 Fix
  • General

    Classic renderer: high-precision sprite drawing, preventing stray lines on top.

    Helixhorned r3483 14 Feb, 08:02 FixEngine
    Show details

    Face- and wall-aligned sprites are drawn using the wall routines in BUILD. However, the per-x-screen-coordinate distance (swall[]) is calculated in a way that potentially incurs great precision loss (for example 5 bits for xdimen=1280, yxaspect=65536). This leads to the starting (top) vertical texture coordinate possibly wrapping to large values, leaving an unsightly "stray line" on top of the sprite from certain viewing angles/horiz values. The approach to fix it has two parts: first, the distance is calculated using float values, preventing the precision loss. Because this doesn't fully prevent the unwanted lines, the texture coords are clamped to the mininum and maximum (0 and UINT32_MAX respectively) when calculating them for sprites. Note that stray lines may still appear at the *bottom* of sprites under certain circumstances, for example when viewing at a y-flipped sprite from above. These should be less noticable in real-world usage though. The feature is guarded by a macro HIGH_PRECISION_SPRITE in case using floating point or 64-bit integers is undesirable/impossible on some platforms.

  • General

    engine.c: factor out calculation of texture coords / addresses in wall drawing.

    Helixhorned r3482 14 Feb, 08:02 Engine
  • General

    engine.c: don't pass [udls]wal to maskwallscan(), use *wall globals instead.

    Helixhorned r3481 14 Feb, 08:01 Engine

Build 3480

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

    Lunatic translator: more of everything...

    Helixhorned r3480 11 Feb, 09:16
  • General

    CON myosx*: move masking orientation with user-bits-mask to G_DrawTileGeneric().

    Helixhorned r3479 11 Feb, 09:16 CON
  • General

    Make g_earthquakeTime into a uint16_t, remove DukePlayer_t's name[] member.

    Helixhorned r3478 11 Feb, 09:16
    Show details

    Bump BYTEVERSION.

Build 3477

10 Feb 2013 · 10 commits · 1 author SVN
Open build
  • input access.

    Helixhorned r3477 10 Feb, 08:24
  • General

    Factor out player[].* allocation into G_MaybeAllocPlayer(), rename 2 functions.

    Helixhorned r3476 10 Feb, 08:24
  • sprite.change{sect,stat}, access to more members, member read test.

    Helixhorned r3475 10 Feb, 08:24 Engine
  • General

    engine.c: in changesprite{sect,stat}, swap second and third early-out tests.

    Helixhorned r3474 10 Feb, 08:24 Engine
    Show details

    That is, first check if the sprite is in the game world and then if it already has the desired sector or status number. This doesn't change anything in our codebase, since the return values of these functions are never examined.

  • General

    Lunatic translator: userdef access.

    Helixhorned r3473 10 Feb, 08:24
Open the build to see all 10 commits

Build 3467

7 Feb 2013 · 9 commits · 1 author SVN
Open build
  • General

    Fix POLYMER=0 build, cleaning up #include discipline on the way.

    Helixhorned r3467 7 Feb, 13:01 FixEngine
    Show details

    Also taking care that the USE_OPENGL=0 build builds.

  • General

    Lunatic (translator): thisprojectile, *shoot.

    Helixhorned r3466 7 Feb, 13:01
  • General

    Rework how the z velocity is passed from *zshoot to A_Shoot().

    Helixhorned r3465 7 Feb, 13:01 CON
    Show details

    Previously, actor[].shootzvel (implementation detail, not available to CON) was checked, and if it was !=0, that was the overridden velocity. The value 0 meant "hardcoded, projectile-dependent velocity". But that neccesiated a hack where if zvel 0 was passed and really meant, it needed to be set to 1 instead. Now we have A_ShootWithZvel() taking an additional last argument plus a macro SHOOT_HARDCODED_ZVEL permissible for that argument.

  • General

    player.c: factor out more identical code into Proj_DoHitscan().

    Helixhorned r3464 7 Feb, 13:01
    Show details

    Also, simplify a couple of other lines.

  • projectiles...

    Helixhorned r3463 7 Feb, 13:01
Open the build to see all 9 commits

Build 3458

3 Feb 2013 · 5 commits · 1 author SVN
Open build
  • General

    Lose the packed attribute on / rearrange some game struct types.

    Helixhorned r3458 3 Feb, 04:48
    Show details

    actors.h: remove 'packed' from projectile_t, tiledata_t. In tiledata_t, make .cacherange member an int32_t so that the following member "projectile_t defproj" is aligned on a 4-byte boundary. player.h: remove 'packed' from playerspawn_t, DukeStatus_t, input_t. In Lunatic, correct packing attribute of the base type of the unrestricted actor_t and DukePlayer_t pointer types (the declaration was used without Bump BYTEVERSION.

  • General

    player.c: remove a couple of unnecessary casts.

    Helixhorned r3457 3 Feb, 04:48
  • conditionally compile out more legacy code, remove old mixed mode code.

    Helixhorned r3456 3 Feb, 04:48
  • General

    Lose the 'packed' attribute for types declared in build.h.

    Helixhorned r3455 3 Feb, 04:48
    Show details

    Most of them are already aligned to their natural boundaries, so lowering the alignment to 1 byte can only worsen things by making the C compiler generate poorer (unaligned access) code for some platforms. The layout of structures is not specified by the C Standard, but is rather given by a particular platform + toolchain's ABI (application binary interface). Most ABIs follow the expected pattern "alignment of scalars is their size, alignment of arrays is that of its element type, alignment of structs is the maximum alignment of its members". A couple of links to particular ABIs are given in build.h. Problems are expected with archs that care about unaligned access when a pointer to a non-packed struct is taken that resides in a packed aggregate, but these uses should be weeded out (I'm not sure if there are any in our codebase). The following types are affected, only hitdata_t changes its size: sectortype, walltype, spritetype, spriteext_t, spritesmooth_t, struct validmode_t, picanm_t, palette_t, vec2_t, vec3_t, hitdata_t.

  • General

    Lunatic translator: codegen for actor-tsprite accesses, sync some RO members.

    Helixhorned r3454 3 Feb, 04:48 Engine

Build 3453

1 Feb 2013 · 1 commit · 1 author SVN
Open build
  • General

    Fix all hitscan weapons (not only pistol) wrongly fire without spread at enemies.

    Helixhorned r3453 1 Feb, 11:56 Fix
    Show details

    Introduced in r3358, where I missed a condition inside an 'if'.

Build 3452

1 Feb 2013 · 6 commits · 1 author SVN
Open build
  • provide access to actor-tsprite.

    Helixhorned r3452 1 Feb, 05:05 Engine
  • General

    game.c: In G_DoSpriteAnimations, put t, i and s locals into their blocks.

    Helixhorned r3451 1 Feb, 05:05
    Show details

    And const them appropriately. Also remove #if 0'ed code related to an MSVC pragma.

  • General

    NULL spriteext[].tpsr after each running EVENT_ANIMATESPRITES for a tsprite.

    Helixhorned r3450 1 Feb, 05:05 EngineCON
    Show details

    Meaning that only *ettsprite[THISACTOR] makes sense from CON. It did before too, because .tspr was set before each event run (and not before all runs), only that it was never nulled, which was kind of untidy.

  • remove unused tsprite access via spriteext[].tspr.

    Helixhorned r3449 1 Feb, 05:05 EngineCON
  • General

    Don't set spriteext[].tspr when creating tsprites from the engine.

    Helixhorned r3448 1 Feb, 05:05 EngineCON
    Show details

    Its only use is to have a actor -> tsprite mapping for the EVENT_ANIMATESPRITE event and .tspr will be set before it is run.

Open the build to see all 6 commits

January 2013 14 builds · 80 commits

Build 3439

26 Jan 2013 · 6 commits · 1 author SVN
Open build
  • General

    Lunatic translator: a couple of set-struct commands, "-I" option for default dir.

    Helixhorned r3439 26 Jan, 09:08
  • General

    Don't apply GL fogging to wall lines drawn in game's "light" overhead view.

    Helixhorned r3438 26 Jan, 09:07 Engine
  • prefer to use ctype objects instead of C type strings.

    Helixhorned r3437 26 Jan, 09:07
    Show details

    Pass types via ffi.typeof() instead of declaring them in the global namespace when possible.

  • General

    player.c: return early from various P_Display*() if player's *incs are oob.

    Helixhorned r3436 26 Jan, 09:07
  • use bcarray types to guard accesses to arrays inside structs.

    Helixhorned r3435 26 Jan, 09:07
Open the build to see all 6 commits