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

Showing 8,866 commits

Export CSV
Display options
Commit details:

March 2012

  • General

    Add APPLE_FRAMEWORKS Makefile variable which can be passed to the make invocation.

    Show details

    ex: make APPLE_FRAMEWORKS=~/Library/Frameworks

  • General

    Remove four self-assignments in backtrace.c that were added to avoid an unused parameter warning and add ATTRIBUTE((unused)) to the implicated parameters so they will not trigger the warning because they could not be removed.

  • General

    JFDuke3D port: OS X Startup Window, copied almost verbatim

    Show details

    It needs to have the sound quality box removed and the Game directory box added, possibly among other things.

  • General

    JFDuke3D port: Display DUKETEAM.ANM at the end of episode 3 under v1.3D.

    Hendricks266 r2395 4 Mar, 01:29 Build 2402 Fix
    Show details

    Fix for end-of-game sequence with 1.3D data, by Turrican.

  • General

    Define strtoll to _strtoi64 on MSVC.

    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.

February 2012

  • General

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

    Helixhorned r2392 29 Feb, 07:27 Build 2392 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].

  • General

    Make 'dommxoverlay' and 'beforedrawrooms' static in engine.c.

    Helixhorned r2391 27 Feb, 11:40 Build 2391 Engine
  • General

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

    Helixhorned r2390 27 Feb, 11:40 Build 2390 Engine
    Show details

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

  • zip -r

    Helixhorned r2389 26 Feb, 09:38 Build 2389
  • General

    Fix osxbuild.sh on my setup.

    Helixhorned r2388 26 Feb, 09:32 Build 2389 Fix
  • General

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

    Helixhorned r2387 25 Feb, 07:59 Build 2387 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.

  • General

    Update "osxbuild.sh" to reflect implementation of .app bundles on Mac OS X.

    Hendricks266 r2386 24 Feb, 19:31 Build 2386
  • General

    The Mac OS X build process will now automatically copy the .app bundles to "./" and move the binaries into them.

    Hendricks266 r2385 24 Feb, 18:59 Build 2385
  • General

    add Mac OS X .app bundles to repository

    Hendricks266 r2384 24 Feb, 18:59 Build 2385
  • General

    Add the source .psd files for the EDuke32 logo and program icon to the repository. Though they are .psd, they are effectively vector because they utilize paths.

    Hendricks266 r2383 24 Feb, 18:57 Build 2385
  • General

    cosmetic:

    Hendricks266 r2382 24 Feb, 18:57 Build 2385
    Show details

    * update Windows icons to include 64x64, 128x128, and 256x256 sizes * add "orange_icon.ico" (unused; classic orange color of logo) * remove unused 32x32 "build_icon.bmp" file

  • General

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

    Helixhorned r2381 24 Feb, 11:51 Build 2381 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.

  • General

    Fix user quotes colored with a 2-digit number being wrongly x-aligned.

    Helixhorned r2380 24 Feb, 11:51 Build 2381 Fix
    Show details

    Such game text was shown starting from about the center of the screen. The reason for the bug was this code: t += 1 + isdigit(*(t+2)); The sequence points here are at the beginning and end of this assignment expression, and the updating of t may happen anywhere between these (C99 6.5.16 #3). Please don't write such code. When in doubt, and assignment and reference to the same object should be split!

  • General

    Pull the 'for (' ... ')' out of the TRAVERSE_{CONNECT,SPRITE_*} macros.

    Helixhorned r2379 21 Feb, 11:33 Build 2379
    Show details

    This plays more nicely with automatic formatters. Also indent accordingly.

  • General

    QUOTE_NVG_OFF-p->heat_on --> QUOTE_NVG_OFF-!!p->heat_on in sector.c.

    Helixhorned r2378 21 Feb, 11:33 Build 2379 EngineCON
    Show details

    Because: 1) It used to be like this; 2) guard against bad CON input.

  • General

    Fix potential (certain?) oob access with ST28/SE21.

    Helixhorned r2377 21 Feb, 11:32 Build 2379 FixEngine
    Show details

    Encountered with Scent.map. Since the SE21 are deleted after they have been used, the search for them in the ST28 code in sector.c may come up empty, in which case sector[-1] would be accessed.

  • General

    Fix sprites with picnums >= MAXSPRITES not drawing in classic.

    Helixhorned r2376 21 Feb, 10:24 Build 2376 FixEngine
    Show details

    This was discovered because viewscreens (TILE_VIEWSCR) ceased being drawn with the MAXTILES increase (reported by Hank, who also did the bisect).

  • General

    Uncomment "CrosshairColor" parsing code in config.c.

    Helixhorned r2375 20 Feb, 13:18 Build 2375
    Show details

    Untested, but LeoD says it works.

  • General

    Define Batoi/Batol to strtol(...) in compat.h and use these when necessary.

    Helixhorned r2374 20 Feb, 13:17 Build 2375
    Show details

    That is, everyplace a user input is to be converted. The only remaining instance of atoi() is now atoi(s_buildDate).

  • make neartag accept a sprite-blacklist function and use it in sector.c.

    Helixhorned r2373 20 Feb, 11:54 Build 2373 EngineCON
    Show details

    Internally, the last argument to neartag is now a pointer to a function int32_t (*blacklist_sprite_func)(int32_t i), which is supposed to return 1 if sprite[i] should NOT be considered for hitting. This is now used in the hard-coded neartag() calls in sector.c, but not in any way in CON (there's neither a C blacklist function provided, nor is there a possibility to define one in CON). There, all sprites with picnums >=1 and <=10 (i.e. the effectors) will be blacklisted. This remedies problems where such sprites would get in the way of switches. Note that a whitelist approach (only consider a predefined set, namely those picnums which will be checked afterwards) has back-compatibility implications since people may have used e.g. lotagged window sprites to cover a switch. Also, the >=1 to <=10 range is [sic] (the static, not dynamic values are used), since anyone redefining effector picnums is clearly out of their mind.

  • General

    Make neartag() return void instead of always 0.

    Helixhorned r2372 20 Feb, 11:53 Build 2373
  • General

    polymost.c: More informative failure message for gloadtile_cached().

    Helixhorned r2371 20 Feb, 11:53 Build 2373 Engine
  • General

    Use maps selector: draw files found in ZIPs with pal 8.

    Helixhorned r2370 20 Feb, 11:53 Build 2373
  • General

    cache1d.c: more meaning-preserving transformations, patch up one oob access.

    Helixhorned r2369 20 Feb, 11:52 Build 2373
    Show details

    lzwcompress can access one byte after lzwrawbuf[LZWSIZE] when provided with an uncompleng of LZWSIZE, so we increase that array's size by one.

  • General

    cache1d.c: formatting and trivial changes.

    Helixhorned r2368 20 Feb, 11:52 Build 2373
    Show details

    Remove dfread and kdfwrite, only leave a recipe how to get their source from the respective used functions.

  • General

    cache1d.c: rename three variables, put commented out code at the end.

    Helixhorned r2367 20 Feb, 11:52 Build 2373
  • General

    cache1d.c: allocate internal LZW buffers statically instead of with allocache.

    Helixhorned r2366 20 Feb, 11:52 Build 2373
  • General

    Rebuild nedmalloc.dll using newest git sources

    TerminX r2365 18 Feb, 20:07 Build 2365
  • General

    Make compiler happy: remove 'may be used uninitialized' warning in multivoc.c.

    Helixhorned r2364 18 Feb, 14:15 Build 2364
    Show details

    I'm not getting this warning (synthesis is) but I think it's justified because the VOC block parsing code isn't terribly validating...

  • General

    Fix a potential free() of stack memory in screenshot code. Ouch!

    Helixhorned r2363 18 Feb, 14:15 Build 2364 Fix
  • General

    Comment out unused dfread and kdfwrite functions in cache1d.c.

    Helixhorned r2362 18 Feb, 14:15 Build 2364
  • General

    constify various cache1d and pragmas functions, some copybuf* -> memcpy/move.

    Helixhorned r2361 18 Feb, 14:14 Build 2364
    Show details

    The following functions have const qualifiers attached for the 'destination' arguments: kdfwrite, dfwrite in cache1d.c and copybuf{byte,reverse,} in the pragmas source or headers. A couple uses of the latter ones were replaced with calls to standard library functions.

  • General

    cache1d.c: debugging feature routing all allocache requests to malloc.

    Helixhorned r2360 18 Feb, 09:57 Build 2360
    Show details

    This is useful to debug out-of-bound violations for memory allocated with that function.

  • General

    menus.c: rename _bar to sliderbar.

    Helixhorned r2359 18 Feb, 09:56 Build 2360
  • make aspect ratio also control r_usenewaspect.

    Helixhorned r2358 18 Feb, 09:56 Build 2360 Engine
    Show details

    - RENDERER SETUP is now also accessible from classic, with only 2 options: 'aspect ratio' and 'ambient light level' - remove the latter option from the VIDEO SETUP menu - When compiled with OpenGL, the aspect ratio option cycles between 3 states: r_usenewaspect=1 (the modern way), and r_usenewaspect=0 but r_widescreen=0/1. In non-GL builds, there are only 2 states. - don't display black translucent overlay in COLOR CORRECTION menu

  • General

    Fix non-OpenGL build.

    Helixhorned r2357 18 Feb, 09:56 Build 2360 FixEngine
  • General

    In the user map selector, sort file names case-insensitively on Unix'y systems.

    Helixhorned r2356 18 Feb, 09:56 Build 2360 Engine
    Show details

    This makes more sense because the game selector draws the names with uppercase letters and the hotkeys to jump to a map starting with a particualar letter aren't case sensitive, either. Mapster32's selector will still display maps starting with upper case first.

  • General

    Fix non-asm build, I forgot a line with the preceding change.

    Helixhorned r2355 18 Feb, 09:55 Build 2360 Fix
  • General

    engine.c: more formatting, removing of textually duplicate code.

    Helixhorned r2354 18 Feb, 09:55 Build 2360 Engine
  • General

    engine.c: formatting changes

    Helixhorned r2353 18 Feb, 09:55 Build 2360 Engine
    Show details

    The bulk are whitespace changes; the only exception is a "if (expr) { stmt; }" --> "if (expr) stmt;"

  • General

    osxbuild.sh: detect whether we're keeping the source in SVN or git.

    Helixhorned r2352 16 Feb, 12:29 Build 2352
  • General

    Update samples/trueror1.map with some tests of sprites lying on TROR floors.

    Helixhorned r2351 16 Feb, 11:25 Build 2351 FixEngine
    Show details

    Also, there's a "ladder" that passes through a TROR portal, and the mirror in that map has been fixed for the classic renderer.

  • Fix extended ceiling/floor picnums taking on picnum 0 in Polymer.

    Helixhorned r2350 16 Feb, 11:25 Build 2351 FixEngine
    Show details

    The reason was that drawmasks(), which was where the resetting of the fake RoR textures happened under Polymer, can be called from polymer_displayrooms() when mirrors are present. I was assuming that drawmasks() was only ever called after the 'main' drawrooms and that hence the sequence of fake RoR tile tweaking was set, reset, set, reset, ... which it was not. Now, do the resetting explicitly after every drawmasks() in the editor.

  • General

    When loading a map in-game, clear TROR wall members corresponding to up/down links.

    Helixhorned r2349 16 Feb, 11:25 Build 2351 FixEngineCON
    Show details

    I find this cleaner for two reasons. First, lotags won't get in the way of neartag(), so that doors and switches near constrained TROR walls can be pushed. Second, this removes the information leak so that CON coders aren't tempted to read that values directly before a proper API for that comes along. When writing out a map in-game (e.g. with dndebug), restore the respective members so that it can be loaded in the editor again.