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:

November 2012 19 builds · 32 commits

Build 3212

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

    Remove many redundant (int16_t) casts and one now incorrect one.

    Helixhorned r3211 18 Nov, 11:01 FixEngine
    Show details

    The redundant ones are in code like this: s->cstat = (int16_t)32768; Because the value is eventually converted to the type of "s->cstat", any casts to integral types having at least as many bits are no-ops, signedness being irrelevant due to (probably any two's complement arch targeting compiler's) bit-pattern preserving semantics of these conversions. The now incorrect one is: if (lotag == (int16_t) 65535), "int32_t lotag" being read from a wall or sprite struct directly earlier. Now, with these members being unsigned, and (int16_t)65535 equalling -1, the check always fails. The correction fixes normal switches having such a lotag ending the level immediately. In short: integer casts before assignments are unnecessary, those in reads highly relevant!

Open the build to see all 3 commits

Build 3207

17 Nov 2012 · 7 commits · 1 author SVN
Open build
  • General

    Engine cleanup: factor out code getting bounds of sprites.

    Helixhorned r3207 17 Nov, 11:46 Engine
  • General

    Clean up base engine functions: tighten scope of locals declarations.

    Helixhorned r3206 17 Nov, 11:46 Engine
  • General

    Clean up engine code by factoring repeated 3-liners into spriteheightofs().

    Helixhorned r3205 17 Nov, 11:46 Engine
    Show details

    This function also changed: it doesn't handle floor-aligned sprites now, and the z offset is returned instead of set by pointer.

  • fix cycling picnum in 3D mode.

    Helixhorned r3203 17 Nov, 11:46 FixEngine
    Show details

    Using non-keypad [-]/[+] or LMB + mousewheel, it was broken when a void tile was in between.

Open the build to see all 7 commits

Build 3192

15 Nov 2012 · 1 commit · 1 author SVN
Open build
  • General

    Add "ulotag" and "uhitag" to get/setactor/wall/sector, which exposes the tags unsigned, without the typecast to int16_t. This might be useful to someone.

    TerminX r3192 15 Nov, 16:54 EngineCON

Build 3189

15 Nov 2012 · 5 commits · 1 author SVN
Open build
Open the build to see all 5 commits

Build 3164

14 Nov 2012 · 3 commits · 1 author SVN
Open build
  • General

    Tools updates:

    Hendricks266 r3163 14 Nov, 22:42 FixEngine
    Show details

    - Eliminate use of the C++ standard library from arttool. I improved some of the program's workings but it continues to corrupt my art files in certain circumstances. (Note: Not a regression; it happens with previous revisions.) - Construct "make utils" for the game side following the pattern of the engine. - Move ivfrate to this new distinction. - Minor Makefile cleanup and tweaks, mainly to facilitate CLANG=1 and to formalize text output in special cases.

Open the build to see all 3 commits

Build 3161

14 Nov 2012 · 3 commits · 1 author SVN
Open build
  • General

    Fix the warnings when building with C++, add MSVC C++ build support. This also changes the internal type of lotags, hitags and cstat type fields to uint16_t instead of int16_t to clean up some dubious behavior wherein the code was using a value of 32768 as a flag in these fields for certain types of things, like invisible sprites (using the value as if it was uint16_t) where it was elsewhere checking if the value was < 0 (using the value as if it was int16_t). This change may break a few specific effects if any part of the relevant code was missed when looking for areas that needed to be addressed.

    TerminX r3159 14 Nov, 15:32 FixEngineCON
    Show details

    I think there's also a fix for the CON precache system breakage in here (lost it in my local tree when I started getting the C++ build working in MSVC, sorry!)

Open the build to see all 3 commits

Build 3157

13 Nov 2012 · 2 commits · 1 author SVN
Open build
  • set first walls more conveniently on split in one special case.

    Helixhorned r3157 13 Nov, 02:50 Engine
    Show details

    Specifically, if the first wall of the sector-to-split is to the left or right of the *start* of the splitting line AND the sector has no TROR extensions, make these two the new nextwalls of the respective split sectors.

Open the build to see all 2 commits

Build 3148

10 Nov 2012 · 2 commits · 1 author SVN
Open build
  • General

    Lunatic reorganization part 2: split into engine and editor/game parts.

    Helixhorned r3148 10 Nov, 12:59 Engine
    Show details

    On the engine side (functions starting with L_), there are now the basic parts like state creation and running code from strings and files. The game and editor can add to that by e.g. loading whatever they please into the state. Their functions start with El_ and Em_, respectively. The Lua scripts still reside in source/lunatic, even for the common ones. This is because they will be embedded into the binaries as bytecode or compressed source eventually, so their location on disk will be irrelevant.

Open the build to see all 2 commits

Build 3146

10 Nov 2012 · 5 commits · 1 author SVN
Open build
  • General

    Clean up texture loading code etc. in polymost.c, no functional changes.

    Helixhorned r3146 10 Nov, 06:11 Engine
  • fix rotatesprite with no screen scaling and non-widescreen aspects.

    Helixhorned r3144 10 Nov, 06:11 FixEngine
    Show details

    Also, enable showing sprites in Mapster32's overhead view again, since that was one (the only?) use of that code path. The uninitialized read was introduced in r2927.

  • General

    When found a camera sprite for viewscreen, set position etc. immediately.

    Helixhorned r3142 10 Nov, 06:11 FixEngine
    Show details

    Instead of later in P_ProcessInput(). This fixes one drawrooms() call in between where the sectnum is the camera's, but the position the player's, which can lead to a slow "outer view" render in Polymer.

Open the build to see all 5 commits

Build 3138

9 Nov 2012 · 1 commit · 1 author SVN
Open build
  • General

    Add automatic tracking to the sector[], wall[], sprite[] and tsprite[]

    Plagman r3138 9 Nov, 14:31 FixEngine
    Show details

    arrays; any write access to them will run the corresponding hook and write to the [sector/wall/sprite/tsprite]clean array. Note: tsprite and sprite use the same hook and require running a few more instructions per access in order to disambiguiate; this could be made more optimal (like the other arrays) by clearly separating the types in the game code. Note #2: taking a member's address currently marks it dirty because of tons of helper functions across the editor code. I don't know how many read-only accesses we have after taking a member address, but it could also be fixed with some finessing of the code.

Build 3118

4 Nov 2012 · 3 commits · 1 author SVN
Open build
  • General

    Work-in-progress adjustment to the C code to compile under C++. It builds for me without errors using Win32 MinGW-GCC, but it still generates warning soup. No guarantees about MSVC or anything using SDL. Enable C++ by building with CPLUSPLUS=1. C remains the default and should compile with no change in setup.

    Hendricks266 r3116 4 Nov, 18:49 Engine
    Show details

    Credit to Plagman for the idea and doing the work on the game side, which is included in this commit. (Building as C++ will give us features with which we can make improvements and optimizations on the multiplayer code and Polymer.)

Open the build to see all 3 commits

Build 3114

4 Nov 2012 · 3 commits · 1 author SVN
Open build
  • General

    engine.c: add bound-check assert failing for sprites in m32's textured 2D mode.

    Helixhorned r3114 4 Nov, 15:03 Engine
    Show details

    Also, disable drawing sprites in that mode for now.

  • functionality to rotate or scale RShift-highlighted stuff smoothly.

    Helixhorned r3113 4 Nov, 15:03 Engine
    Show details

    This is done by pressing LShift and - holding down the left mouse button for scaling, or - the right mouse button for rotating the highlighted walls/sprites with respect to a pivot point determined as the center of the bounding box of all highlighted points. Note that scaling sectors isn't that easy and the current functionality is very rudimentary: there's no z scaling, no xrepeat correction, and sprites aren't touched expect for their position. The user is responsible to maintain map consistency, for example to prevent wall-lines of the same sector crossing each other.

  • when looking for matching wall in 2nd pt. ins., don't skip gray nextwalls.

    Helixhorned r3112 4 Nov, 15:03 FixEngine
    Show details

    This fixes a bug where it's not possible to split a sector under certain circumstances, reported by Micky C here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__138380 Also, don't allow zero in various 'F functions: Resize selection and Global {shade, visibility} divide.

Build 3111

3 Nov 2012 · 6 commits · 1 author SVN
Open build
  • General

    Work around the transparent line with on-screen chaingun and linear filtering.

    Helixhorned r3111 3 Nov, 12:32 Engine
    Show details

    We do this by messing with the GL texture that gets uploaded for CHAINGUN. Since this is implemented on the engine side, the static value for CHAINGUN (2536) is used, and the tile dimensions are compared to 211x55 to have a little confidence that the tile wasn't overridden by a mod. Hack indeed.

  • draw lines to linking sprites with LShift, jump to them with +[ or +]

    Helixhorned r3108 3 Nov, 12:32 FixEngine
    Show details

    When LShift is pressed and the mouse is over a linking sprite (as determined by the tag labeling system), lines are drawn to all other sprites, and pressing [ or ] will cycle these then. False positives and missed sprites are possible. Additional changes: - consider SE 31 and 32's lotag to NOT be linking, since the ACTIVATOR is what matters. The original maps are inconsistent there. - When pressing Alt+[ or Alt+] and there are no corruptions, say so instead of doing [ or ].

  • when punching loop, fade screen; tweak two messages.

    Helixhorned r3106 3 Nov, 12:32 Engine
Open the build to see all 6 commits

October 2012 9 builds · 19 commits

Build 3101

28 Oct 2012 · 6 commits · 1 author SVN
Open build
  • General

    Two new player structure members: "autostep" and "autostep_sbw".

    Hendricks266 r3100 28 Oct, 21:29 Engine
    Show details

    These control the maximum difference in height between two sectors that the player will automatically traverse without needing to jump. The latter controls the special case when the player's sector's lotag is ST_1_ABOVE_WATER or p->spritebridge == 1. BYTEVERSION bumped.

  • General

    Slight makefile reorganization and cleanup.

    Hendricks266 r3096 28 Oct, 21:26 Engine
    Show details

    * Centralize optimization strategies in Makefile.common. This required moving detection of $(PLATFORM), which makes sense if we work on the paradigm that Makefile.common is for generic compiler setup and Makefile.shared works with libraries and things closer to the engine and game code itself. * New Makefile variables OPTOPT (Optimization Options) and CUSTOMOPT (Custom Optimizations). OPTOPT by default contains -march, -mtune, etc. Setting this variable from Make invocation will blank these. CUSTOMOPT (Custom Optimizations) works the same but in an additive fashion, overwriting nothing. Technically CUSTOMOPT could stand for (Custom Options) and include any additional parameters sent to both linker and compiler. * Factor out literal names of the main executables. * The build process now prints assembler (if NOASM=0) and linker settings in addition to compiler settings.

Open the build to see all 6 commits

Build 3094

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

    Comment out the A_GetZLimits() call right before the Bassert() in A_MoveSprite(). This call is a problem because the assertion expects "dasectnum" and spr->sectnum to match, but A_GetZLimits() can itself call A_SetSprite() which results in another call to A_MoveSprite() and can potentially change the sectnum again.

    TerminX r3094 24 Oct, 06:21 Engine
    Show details

    This commit also adds the NOTELEPORT sprite flag, which of course prevents sprites from teleporting.

Build 3093

21 Oct 2012 · 1 commit · 1 author SVN
Open build
  • only let emitshadow affect shadows, not lightmaps.

    Plagman r3093 21 Oct, 11:41 Engine
    Show details

    Lightmaps are already opt-in anyway.

Build 3092

20 Oct 2012 · 1 commit · 1 author SVN
Open build
  • add support for negative lights

    Plagman r3092 20 Oct, 21:52 Engine
    Show details

    And hook them up to cstat 128 (half-submerged, 'c' in mapster).

Build 3091

20 Oct 2012 · 1 commit · 1 author SVN
Open build
  • add a prlight flag to make shadow-less spotlights

    Plagman r3091 20 Oct, 20:41 Engine
    Show details

    And hook it up to SE cstat 64 ('1' in mapster32). This disables both lightmaps and shadow maps for the spotlight; please let me know if you have a usecase where you want lightmaps but no shadow maps for specific lights.