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 1,043 builds · 2,174 commits

Export CSV
Display options
Commit details:

April 2013 14 builds · 28 commits

Build 3701

21 Apr 2013 · 8 commits · 1 author SVN
Open build
  • General

    Classic drawmasks(): if sprite is on other side of maskwall, always draw it first.

    Helixhorned r3701 21 Apr, 12:55 FixEngine
    Show details

    This fixes the bug reported here: http://forums.duke4.net/topic/5340-bug-with-masked-walls/page__view__findpost__p__123233 But I haven't checked the change for any adverse effects.

  • General

    engine.c: stylistic tweaks of drawmasks().

    Helixhorned r3700 21 Apr, 12:55 Engine
  • in tsprite access, fix checking min/max/RO; tweak RESPAWN preview.

    Helixhorned r3699 21 Apr, 12:55 FixEngineCON
    Show details

    This fixes RESPAWN preview wrongly clamping the previewed tsprite z coords to [-524288 .. 524288] (x/y limits). Also, make the previewed tsprites be 33% translucent with the option of 66% translucency by setting 'showrespawn_fulltrans' to 1 in a.m32.

  • in quick tile selection [G], if tile is nonexistent, revert it.

    Helixhorned r3698 21 Apr, 12:55 FixEngine
  • tweak the 'loaded map' message a bit.

    Helixhorned r3697 21 Apr, 12:55 FixEngine
    Show details

    - colorize the trailing part if there is corruption or (new) if sprites were removed - also corrupt-check when loading <V7 map - move start{pos,ang,sectnum} to build.c - remove pointless ...[].extra = -1 before loading map, scantoasc*[] comment

Open the build to see all 8 commits

Build 3688

16 Apr 2013 · 2 commits · 1 author SVN
Open build
  • General

    Mask the seam that shows up when drawing the scuba HUD overlay in OpenGL by drawing SCUBAMASK 3 times... once at the left position + 1, and then at the proper left and right positions. It's definitely a hack, but at least it lives on the game side of things.

    TerminX r3688 16 Apr, 15:37 Engine
Open the build to see all 2 commits

Build 3684

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

    TROR no-SE7 water: spawn splash, reuse calculated other sector number.

    Helixhorned r3683 15 Apr, 03:48 Engine
  • General

    Improve on the code that handles changing sectors of projectiles.

    Helixhorned r3682 15 Apr, 03:48 Engine
    Show details

    - In the A_MoveSprite() code that transports projectiles due to an SE7 (introduced in r1450 / legacy ROR), only report "success" if the transportation succeeded. - Clear newly introduced internal SPRITE_DIDNOSE7WATER flag after checking it.

  • General

    Clean up of mostly actors.c, but some other files along the way too.

    Helixhorned r3679 15 Apr, 03:48 FixEngine
    Show details

    - Rewrite some sprites-of-{stat,sector} loops using the SPRITES_OF, SPRITES_OF_SECT and new SPRITES_OF_SECT_SAFE macros. - In passing, identify some problems and mark them with 'XXX', but don't attempt to fix them yet. - The usual readability improvements...

  • General

    TROR no-SE7 water: handle projectiles.

    Helixhorned r3678 15 Apr, 03:48 Engine
    Show details

    Actually, the tweaked code in VM_Move() is not specific to projectiles, so other sprites now may pass no-SE7 water boundaries too, but it's most noticeable with projectiles.

  • General

    TROR no-SE7 water: allow boundary change only if other-side lotag is other one.

    Helixhorned r3677 15 Apr, 03:48 Engine
    Show details

    That is, if submerging, the lower sector MUST have lotag 2. If emerging, the upper sector MUST have lotag 1. (Previously, emersion happened from ST 2 sectors unconditionally.) This means that the area where submersion or emersion can happen is now the same for the top and bottom parts.

Open the build to see all 8 commits

Build 3669

12 Apr 2013 · 3 commits · 1 author SVN
Open build
  • General

    Fix Mapster32 crash caused by custom s_buildRev strings longer than five characters.

    Hendricks266 r3669 12 Apr, 20:49 FixEngine
    Show details

    (Note: We are still vulnerable to crashes here (and likely in other places), but you have (4096-16) extra characters to work with. We should consider replacing many uses of Bsprintf with Bsnprintf.)

Open the build to see all 3 commits

Build 3660

9 Apr 2013 · 4 commits · 1 author SVN
Open build
  • print the "Saved board" message more persistently.

    Helixhorned r3659 9 Apr, 10:35 Engine
  • new-generation map format, in-memory representation ("map-int VX").

    Helixhorned r3658 9 Apr, 10:35 Engine
    Show details

    The Lunatic build compiles with new structures for sector and wall types. They have separate members for TROR {up,down}{bunch,nextwall}, so there are no conflicts with other uses of members into which they were previously shoehorned. Also, the maximum bunch limit is bumped to 512 in that build. Currently, loading from V7/8/9 and saving to V7 and V8 are supported.

Open the build to see all 4 commits

Build 3653

7 Apr 2013 · 5 commits · 1 author SVN
Open build
  • replace DukePlayer_t set-member methods with metatable magic.

    Helixhorned r3653 7 Apr, 08:20 Engine
    Show details

    So that members needing it are checked when they're assigned to using the usual syntax. What kind of check to perform (sector, player, ... x whether negative values are allowed) is written in a declarative fashion inside the C declaration. Also, make Lunatic's MAXQUOTES be C's OBITQUOTEINDEX and bound-check an access of sprite[p->wackedbyplayer] in the C code.

  • General

    a.m32: Don't reposition head light if in void space, fixing crash.

    Helixhorned r3651 7 Apr, 08:20 FixEngine
Open the build to see all 5 commits

Build 3648

5 Apr 2013 · 10 commits · 1 author SVN
Open build
  • General

    a.m32: Implement a Polymer "head light" emanating from your position in 3D mode.

    Helixhorned r3648 5 Apr, 10:53 EngineCON
    Show details

    Toggled with Ctrl+Shift+[KP-]. Variable 'headlight_range' controls its range. For the implementation, a new event EVENT_PREDRAW3DSCREEN was added.

  • custom integer types treated as bitfields.

    Helixhorned r3643 5 Apr, 10:53 Engine
    Show details

    Used for engine struct's (c)stat and actor[].flags members.

Open the build to see all 10 commits

March 2013 12 builds · 18 commits

Build 3610

24 Mar 2013 · 5 commits · 1 author SVN
Open build
  • General

    Implement alpha into rotatesprite (rotatesprite_) on the engine side.

    Hendricks266 r3609 24 Mar, 21:32 Engine
  • General

    Add orientation bit 2048, enumerated as ROTATESPRITE_FULL16, which is a courtesy provided by the engine for the purpose of the game to internally force use of full 32-bit coordinates. With this bit set, all CON screen drawing commands can use rotatesprite16-like coordinates.

    Hendricks266 r3608 24 Mar, 21:31 EngineCON
    Show details

    While the functionality was already internally in place for gametext as one of two hacks using ROTATESPRITE_MAX (the other still used by minitext_() to align with the statusbar) we must codify a bit in the engine for safe external use. (Otherwise, ROTATESPRITE_MAX could/would theoretically increase and leave modders high and dry.) (Dev note: In G_DrawTXDigiNumZ(), ROTATESPRITE_MAX was used to bitshift the value used to calculate digit spacing for no reason I can ascertain other than to introduce rounding errors into the zoom/textscale calculations. It was never used anywhere, so I removed it.) Bonus: The scaling code for digitalnumberz and gametextz has been modified so that the spacing is no longer affected by rounding errors. Try animating the zoom value and compare how the text used to jump but now does not.

Open the build to see all 5 commits

Build 3605

24 Mar 2013 · 4 commits · 1 author SVN
Open build
  • fix assertion failure with overlong walls in rintersect().

    Helixhorned r3605 24 Mar, 11:55 FixEngine
  • return early with 0 from cansee() if either sector is >= MAXSECTORS.

    Helixhorned r3603 24 Mar, 11:55 EngineCON
    Show details

    Previously, only the <0 condition was checked. However, the passed sectnums could be >= MAXSECTORS (at least in C-CON), for example when issuing 'canseespr' on a sprite not in the game world.

Open the build to see all 4 commits

Build 3601

24 Mar 2013 · 9 commits · 1 author SVN
Open build
  • don't wrongly report PANIC corruption with MAXSPRITES sprites present.

    Helixhorned r3599 24 Mar, 11:53 FixEngine
  • General

    Lunatic t.: don't error on changing stat/sect of sprite not in the game world.

    Helixhorned r3598 24 Mar, 11:53 Engine
  • in readgamearray support code, use engine file functions.

    Helixhorned r3594 24 Mar, 11:52 Engine
    Show details

    This is so that files residing in GRPs (or anywhere the engine looks for them) can be read, too.

Open the build to see all 9 commits

Build 3566

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

    Lunatic t.: option for generating code caching sprite/actor/player structs...

    Helixhorned r3561 15 Mar, 09:56 Engine
    Show details

    ...at the beginning of each function called back from C, and each case/default function. Called -fcache-sap. Disabled by default.

  • spritesof{stat,sect} iterators that allow deletion inside the loop.

    Helixhorned r3560 15 Mar, 09:56 Engine
    Show details

    Also, - an optimization for sprite[]:setpos(). Calls to get_sprite_index() seem to be pretty slow (at least when they're not compiled). - add getzrange to the dynsymlists

Open the build to see all 8 commits