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 187 builds · 836 commits

Export CSV
Display options
Commit details:

March 2012 21 builds · 116 commits

Build 2571

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

    When requesting a non-fogged identity lookup from makepalookup(), alias to palookup[0].

    Helixhorned r2571 29 Mar, 14:17 Engine
    Show details

    (That is, the base shade table.) Before, we allocated each palookup buffer. For a vanilla setup, this means that we're now saving 224*32*256 ~= 1.8 megs, which might be interesting for low-memory gadgets.

  • General

    Don't fall back on allocache if malloc'ing a palookup buffer or transluc table fails.

    Helixhorned r2570 29 Mar, 14:17 FixEngine
    Show details

    First, it's unlikely in our day and age. Second, they're always free'd at the end, so allocache'ing them is incorrect.

  • General

    Make makepalookup() accept NULL for 'remapbuf', meaning "use identity mapping".

    Helixhorned r2569 29 Mar, 14:17 Engine
    Show details

    Also, - use this in game.c and astub.c palookup loading code - when makepalookup() is passed a 0 palnum, return early. This means that 'fogpal' will silently fail when attempting to change pal 0. - in 'makepalookup' DEF command, error out if passed a pal of 0.

  • General

    DEF command 'makepalookup', allowing indpt. specification of fog and color remapping.

    Helixhorned r2568 29 Mar, 14:16 Engine
    Show details

    The syntax is as follows: makepalookup { <token-list...> } where valid tokens are * pal <palnum>: the palette number, 1 .. 250 * red <num>, green, blue (or r, g, b): the fog color components on a 0 to 63 scale. Components that are not present are assumed to be 0. * remappal <palnum>: the palette number to take the index remapping from, i.e. 21 for blue -> red. When absent, defaults to 0. * remapself: when present, specifies that the remappal is the same as the 'pal'. This is to prevent textual redundancy when overwriting existing palookups. Examples (best tested with tile #251): 1) makepalookup { pal 200 red 30 remappal 23 } This creates palookup 200 with a fog of (30,0,0) and a blue-to-yellow remapping (assuming it has not been changed before) 2) makepalookup { pal 21 red 30 remapself } This 'fogifies' palookup 21 with a red fog. 3) makepalookup { pal 21 red 30 } This overwrites palookup 21 with a red fog, but clears the blue-to-red remapping. The fog aspect of this command affects the GL modes just like 'fogpal', but the remapping has no effect for hightiles. - Also, silently clamp 'fogpal' r,g,b values to the range 0 .. 63.

  • General

    In OpenGL modes, save savegame screenshots as they appear on the screen.

    Helixhorned r2567 29 Mar, 14:16 Engine
    Show details

    Instead of drawing the rooms and masks with the classic renderer once. The captured scene is transformed to use the base palette, so that the screenshot will also show up in classic. No aspect correction is done.

Build 2566

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

    The obligatory portion of trivial stuff.

    Helixhorned r2566 28 Mar, 12:45
  • Fix a potential uninitialized mem read in debug msg when in void space.

    Helixhorned r2565 28 Mar, 12:45 FixEngine
  • General

    Clean up astub.c in a similar fashion to the preceding changes.

    Helixhorned r2564 28 Mar, 12:44
  • General

    Make g_grpNamePtr memory-clean, extern clearGrpNamePtr().

    Helixhorned r2563 28 Mar, 12:44
  • General

    numgrpfiles --> NUMGRPFILES in Apple/GameListSource.game.m

    Helixhorned r2562 28 Mar, 12:44
Open the build to see all 14 commits

Build 2552

26 Mar 2012 · 11 commits · 1 author SVN
Open build
  • General

    Fix a potential sprintf to a buffer passed to it as a string argument.

    Helixhorned r2552 26 Mar, 15:06 Fix
  • 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 "static inline" helper function "Bstrncpyz" to compat.h.

    Helixhorned r2550 26 Mar, 15:05
  • General

    Factor out various instances of getatoken() into common.c.

    Helixhorned r2549 26 Mar, 15:05
    Show details

    Alongside, these make into into the header: - the 'tokenlist' type (a typedef'd struct) - the T_EOF and T_ERROR enumeration values

  • General

    Guard scriptfile.h with an #ifndef sentinel.

    Helixhorned r2548 26 Mar, 15:04
Open the build to see all 11 commits

Build 2534

25 Mar 2012 · 5 commits · 1 author SVN
Open build
  • more complex gamevar-decl code.

    Helixhorned r2534 25 Mar, 15:01 CON
  • General

    Bound-check the 'picnum' argument to rotatesprite; tweak CON digitalnumber check.

    Helixhorned r2533 25 Mar, 15:01 CON
    Show details

    There are instances where oob picnums may propagate to that function, so protect it. The digitanumber[z] bound check is actually made more permissive, but could also just as well be removed now.

  • General

    Accumulated trivia.

    Helixhorned r2532 25 Mar, 15:01 Engine
    Show details

    - engine.c: move some variables into a lower block - premap.c: clearbufbyte --> Bmemset

  • General

    Take over more correct G_AddGroup from game.c to astub.c.

    Helixhorned r2531 25 Mar, 15:00
    Show details

    The code in the editor was potentially doing a strcat on a strdup'd string. Also, rename AddGamePath to G_AddPath in astub.c and add CODEDUP markers because shared stuff like this ought to be factored out into a separate source file some time.

  • General

    Allow up to 7 skills, coded by M210 and taken over with modifications.

    Helixhorned r2530 25 Mar, 15:00 CON
    Show details

    Skill names are defined via 'defineskillname' as before, but the index of the last non-empty skill name (plus one) is taken as the skill count. So, if you only define the 6th, there will be no effect. Note that currently, there is no way to specify less than four skills because the CON parser doesn't allow the empty string for the name (it'll go beyond the line) and because the default skill names are initialized in EDuke32 too, in addition to the CONs.

Build 2529

25 Mar 2012 · 4 commits · 1 author SVN
Open build
  • General

    Fix an assertion failure with dorotatesprite 4-pixels vline drawing.

    Helixhorned r2529 25 Mar, 06:55 Fix
    Show details
  • General

    Fix static-main-arrays debug build, which is without the clipshape feature.

    Helixhorned r2528 25 Mar, 06:54 Fix
  • General

    Factor out two practically identical instances of ceiling/floor setup code.

    Helixhorned r2527 25 Mar, 06:54
  • General

    Factor out assignment of various globals in 4 instances of wall drawing code.

    Helixhorned r2526 25 Mar, 06:54 Engine
    Show details

    This makes the differences in these codes stand out much more clearly.

Build 2525

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

    Make "LIBS+= $(L_SSP) -Wl,--enable-auto-import" conditional to Windows.

    Helixhorned r2525 24 Mar, 08:59
  • General

    Correct 'nofloorpalrange' range clamping, move one get_hud_pal() farther down.

    Helixhorned r2524 24 Mar, 08:59
    Show details

    The nofloorpalrange beginning and end indices are silently clamped to 1 .. 255.

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

    Make 'nofloorpalrange' def token affect HUD weapons.

    Helixhorned r2518 22 Mar, 15:47
  • 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

    Remove global 'uint8_t *anim_pal' which was only used once as a temporary.

    Helixhorned r2516 22 Mar, 15:47
  • General

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

    Helixhorned r2515 22 Mar, 15:46 Engine
Open the build to see all 9 commits

Build 2505

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

    Probably fix sheared PNG screenshots.

    Helixhorned r2505 20 Mar, 11:32 Fix
    Show details

    We shouldn't assume a particular bytes-per-line value and use ylookup[] instead. Specifically, windowed modes on Windows use a frame buffer that always has odd x dimension.

  • General

    Rename 'numpalookups' to 'numshades' internally.

    Helixhorned r2504 20 Mar, 11:32
  • General

    Weirdness removal in G_LoadExtraPalettes (which reads lookup.dat).

    Helixhorned r2503 20 Mar, 11:31
    Show details

    - replace bit tweaking for big endian archs with clear code - allow palette lookups >= 128, previously we read into a signed byte

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

    Assorted trivia.

    Helixhorned r2501 18 Mar, 16:18
    Show details

    Make some computer Duke opponent variables in player.c static.

  • General

    Input validation: guard makepalookup 'pal', 2dcol 'col'. Add one const.

    Helixhorned r2500 18 Mar, 16:17
  • General

    Use vlineasm4 for the upright-oriented rotatesprite in C-replacements build.

    Helixhorned r2499 18 Mar, 16:17
    Show details

    Gives a couple more fps for scenes where much screen estate is covered by stuff, like when holding the devastator.

  • 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)

Open the build to see all 7 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

    In undo/redo, always print the revision that got _restored_.

    Helixhorned r2491 17 Mar, 04:35
  • 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())

Build 2484

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

    Make 'Numsprites' also accessible from CON (read-only) under the same name.

    Helixhorned r2484 14 Mar, 15:32 CON
    Show details

    Note the capitalization. I hope that this makes clashes with user variable names less likely.

  • General

    Save 'Numsprites' into savegames and mapstates. Bump savegame minor version.

    Helixhorned r2483 14 Mar, 15:31
  • General

    Fix (still not enabled) undo/redo code compilation.

    Helixhorned r2482 14 Mar, 15:31 Fix
    Show details

    Also include one comment about a currently failing assertion there.

  • General

    Include <assert.h> in compat.h.

    Helixhorned r2481 14 Mar, 15:31
  • 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!)

Open the build to see all 8 commits

Build 2454

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

    Rename ud.clipping to ud.noclip internally for sanity.

    Helixhorned r2454 11 Mar, 10:38 CON
    Show details

    This might now be even more confusing for users reading both the source and CON code (where the access is necessarily still via '.clipping'), but at least reading the source now makes sense :P

  • General

    After executing actor or loadactor CON code, null the instruction pointer.

    Helixhorned r2453 11 Mar, 10:38 FixCON
    Show details

    This is so that in the event of a crash, no CON dump will be printed if no (actor or loadactor) CON code was actually executing at the time of the crash, confusing the users. Note: doesn't apply for event code.

  • General

    Explicitly call A_DeleteSprite() from game code instead of relying on macro expansion.

    Helixhorned r2452 11 Mar, 10:38
  • General

    Remove non-SAMESIZE_ACTOR_T code and remaining #defines.

    Helixhorned r2451 11 Mar, 10:37
    Show details

    We've been running with same-sized actor_t for a while without problems now. In the unlikely event (famous last words) that an issue should pop up later, this revision should be consulted for the differences between the two versions.

  • General

    Remove YES and NO #defines from duke3d.h since they're giving warnings on OS X.

    Helixhorned r2450 11 Mar, 10:37
Open the build to see all 9 commits

Build 2442

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

    Rename SOUNDOWNER's (used in sound_t) member .i to .ow for easier grepping.

    Helixhorned r2442 10 Mar, 13:22
  • General

    With dndebug, show the currently playing sounds.

    Helixhorned r2441 10 Mar, 13:22 Engine
    Show details

    The format is snd #<sound number> inst <instance of that sound>: voice <internal voice handle>, ow <owner's sprite ID/-1> (this is the interesting part)

  • General

    Rename P_ActivateSwitch()'s 3rd argument from 'switchtype' to 'switchissprite'.

    Helixhorned r2440 10 Mar, 13:22
  • General

    Some sound source cleanup, no functional changes.

    Helixhorned r2439 10 Mar, 13:21
    Show details

    - make a couple variables static in sounds_mapster32.c - KHz --> Hz in initialization text

  • General

    Clean up cache1d.c.

    Helixhorned r2438 10 Mar, 13:21
    Show details

    - make some variables static - conditionally compile out some code with DEBUG_ALLOCACHE_AS_MALLOC - exit(1) on failure (instead of exit(0)) - some formatting

Build 2431

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

    OS X: whitespace-cleanup Objective-C files. Also does TAB-->space.

    Helixhorned r2431 8 Mar, 11:16
  • General

    OS X: fix and enable startup windows; enable PPC build in osxbuild.sh.

    Helixhorned r2430 8 Mar, 11:16 Fix
  • General

    OS X Objective-C files: NSApp -> nsapp as before for a PPC linkage fix

    Helixhorned r2429 8 Mar, 11:16 Fix
    Show details

    Note: I'm not really sure whether I'm initializing it in the right places.

  • remove now unused B_ATTRIBUTE_USED macro.

    Helixhorned r2428 8 Mar, 11:15
  • fix mirror-related oob access analogous to r1872's fix for classic.

    Helixhorned r2427 8 Mar, 11:15 FixEngine
    Show details

    When drawing from inside the mirror, there may be no 'bunches' (BUILD lingo, not TROR ones) collected, but following code used the first one unconditionally.

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
  • General

    Formatting; remove 'loop has empty body' warnings with clang.

    Helixhorned r2416 4 Mar, 12:15
    Show details

    I have to admit, I like its grumbling.

  • 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

    ATTRIBUTE((pure)) for Ptile2tile(), add a forgotten comment.

    Helixhorned r2412 4 Mar, 12:14
Open the build to see all 14 commits

Build 2394

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

    Define strtoll to _strtoi64 on MSVC.

    Helixhorned r2394 1 Mar, 15:36
    Show details

    Usage of a search machine by Hendricks.

  • General

    When failing to open a savegame file for writing, print the reason to the log.

    Helixhorned r2393 1 Mar, 15:35

February 2012 24 builds · 82 commits

Build 2392

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

    More rebust (and "correct"/expected) decimal number parsing in CON.

    Helixhorned r2392 29 Feb, 07:27 FixCON
    Show details

    The replacement of atoi with strtol in r2374 had the side-effect that numbers out of the range of a 32-bit integer were being returned as LONG_MAX/LONG_MIN instead of being converted by taking the bits and re-interpreting them (note that it was a coincidence that atoi behaved that way; to be strict, the behavior was undefined and there is no regression). Now, we implement parsing decimal integers using strtoll (with assuming "long long" being the same as int64_t) and check in which range the number falls. If it's in the range (INT32_MAX <= x <= UINT32_MAX), issue a warning; if it's not in (INT32_MIN <= x <= UINT32_MAX), warn too (though this better ought to be an error?). In each case, the bit representation is converted to the CON number type (int32 to assume maximum portability) by re-interpreting the bits [this is the same as an int/int cast, with GCC at least; more generally, it's implementation-defined per C99].