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 2013 · select it again to see every year
SVN era · r1519 – r8798 Git era · voidpoint.io, from april 2020
Filters · 2 active

Showing 129 builds · 658 commits

Export CSV
Display options
Commit details:

December 2013 10 builds · 52 commits

Build 4237

31 Dec 2013 · 7 commits · 1 author SVN
Open build
  • General

    Lunatic/m32: include the Lua bytecode into the binary, exit if setup failed.

    Helixhorned r4237 31 Dec, 03:52 Engine
  • add 'engine' module, currently allowing to create custom shade tables.

    Helixhorned r4236 31 Dec, 03:52 Engine
    Show details

    Available in the game and editor. Provide test/shadexfog.lua, containing a function to creating a set of 32 shade tables corresponding to different shades of the same fog palookup table, together with some tests and convenience functions. Also, - Add gv.LUNATIC_CLIENT{,_EDUKE32,_MAPSTER32} - Add LUNATIC_FIRST_TIME in the global env for the game - defs_m32.lua: add reload() convenience function - Failed attempt at recreating the base shade table. It is NOT a linear ramp of the base palette colors to (0,0,0). That is, it's not created by build/util/transpal.exe!

  • General

    build.lua: add a flag toggling multiplication of the color components by 4.

    Helixhorned r4235 31 Dec, 03:51
  • fix setup under Mapster32, remove a few obsolete lines in defs_common.lua.

    Helixhorned r4234 31 Dec, 03:51 FixEngine
  • General

    In the no-netcode build, don't expose four internal engine functions.

    Helixhorned r4233 31 Dec, 03:51 Engine
    Show details

    Also don't compile three multiplayer related OSD commands there.

Open the build to see all 7 commits

Build 4230

28 Dec 2013 · 7 commits · 1 author SVN
Open build
  • allow access to sprite[].yvel through set_yvel() member, document.

    Helixhorned r4230 28 Dec, 09:04 Engine
    Show details

    BUILD_LUNATIC.

  • General

    Remaining sanitizing of .yvel usage plus minor cleanup.

    Helixhorned r4229 28 Dec, 09:04
  • General

    Clean up legacy ROR code and introduce LEGACY_ROR define in game.h.

    Helixhorned r4228 28 Dec, 09:04 Engine
    Show details

    Also, bound-check two .yvel meant as sprite indices in actors.c.

  • General

    Make a couple of player functions take player indices instead of DukePlayer_t *.

    Helixhorned r4227 28 Dec, 09:04
  • General

    Guard retrieval of player index (.yvel) from APLAYER sprite.

    Helixhorned r4226 28 Dec, 09:04 Engine
    Show details

    It is unacceptable that yvel is on one hand modifiable without restriction from scripting, but can be used as an array index without prior bound check in the C code. Because that member has an overloaded meaning and is also used for innocuous purposes such as the green color intensity of an SE light, it's infeasible to restrict access from scripting. Consequently, we must add bound checks on the C side. This is the first part of the effort to make .yvel safe, adding two functions P_Get() and P_GetP(). There are a couple of other uses as some kind of index.

Open the build to see all 7 commits

Build 4223

26 Dec 2013 · 7 commits · 1 author SVN
Open build
  • General

    engine.c: clean up code related to ART loading. BUILD_LUNATIC.

    Helixhorned r4223 26 Dec, 11:45 Engine
  • General

    Don't consider W_FORCEFIELD+2 (surgery instruments) a forcefield picnum.

    Helixhorned r4222 26 Dec, 11:45
  • General

    Clean up code related to forcefield player damage etc.

    Helixhorned r4221 26 Dec, 11:45
  • General

    Rename 'camsprite' to 'g_curViewscreen', other related cleanup.

    Helixhorned r4220 26 Dec, 11:45
  • General

    Add helper utility lunatic/util/cmpart.lua.

    Helixhorned r4219 26 Dec, 11:45
Open the build to see all 7 commits

Build 4216

26 Dec 2013 · 2 commits · 1 author SVN
Open build
  • General

    Consolidate P_AddWeaponNoSwitch into an additional P_AddWeapon argument.

    Helixhorned r4216 26 Dec, 11:45
  • General

    Minor stylistic tweaks of code related to weapon switching.

    Helixhorned r4215 26 Dec, 11:44

Build 4214

24 Dec 2013 · 7 commits · 1 author SVN
Open build
  • General

    premap.c: stylistic cleanup in map loading code.

    Helixhorned r4214 24 Dec, 01:44
  • General

    Factor some code in config.c into OSD_WriteAliases(), move symbol_t to osd.c.

    Helixhorned r4213 24 Dec, 01:44
  • General

    Don't autoexec <mapname>.cfg files for clipshape maps.

    Helixhorned r4212 24 Dec, 01:44
  • don't allow starting demo recording, since gamevar diffing is NYI.

    Helixhorned r4211 24 Dec, 01:44 CON
  • General

    osd.c: patch up a possible oob access of osdtext[].

    Helixhorned r4210 24 Dec, 01:44
Open the build to see all 7 commits

Build 4207

20 Dec 2013 · 7 commits · 1 author SVN
Open build
  • add ceiling-or-floor method set_picnum(). BUILD_LUNATIC.

    Helixhorned r4207 20 Dec, 10:31
  • Add EVENT_DAMAGEHPLANE and document it in Lunatic doc Appendix B.

    Helixhorned r4206 20 Dec, 10:31 CON
    Show details

    Also add test/damagehplane.lua with these demonstrations: - custom breakable ceilings - breakable TROR glass

  • General

    Generalize Sect_DamageCeiling to Sect_DamageCeilingOrFloor, use appropriately.

    Helixhorned r4205 20 Dec, 10:31 Engine
    Show details

    - in the function itself: for floor, currently, do nothing (but this commit is in preparation of the next one, again) - In Proj_MaybeDamageCF(), Proj_MaybeDamageCF2() and the A_RadiusDamage() use if the function, generalize to floors, but with the special case that parallaxed floors keep blocking projectiles, as before (in constrast to parallaxed ceilings). However, Sect_DamageCeilingOrFloor() is only called for non-parallaxed ceilings *and* floors.

  • General

    Minor no-functionality-changing tweaks.

    Helixhorned r4204 20 Dec, 10:31
    Show details

    - factor out: G_WallSpriteDist() - factor out: Proj_MaybeDamageCF() and Proj_MaybeDamageCF2() in preparation for the next commit - Make PROJ_DECAYVELOCITY macro take an arg for readability's sake

  • General

    sector.c: in ST9 handling code, prevent oob for improperly constructed doors.

    Helixhorned r4203 20 Dec, 10:31 Engine
Open the build to see all 7 commits

Build 4199

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

    Various stylistic cleanup.

    Helixhorned r4199 12 Dec, 11:22 Engine
    Show details

    - Move ARRAY_SIZE() macro to compat.h, add another one ARRAY_SSIZE() - In A_RadiusDamage(): note maybe-unaligned access issue, prevent unlikely oob - sector.c: use SPRITES_OF* macros where appropriate

  • add "for s, what in sectorsofbunch(bunchnum, gv.BOTH_CF)" iterator.

    Helixhorned r4198 12 Dec, 11:22
  • General

    a.m32: don't clamp SE50 extra (=horiz) to [-500 500] with KP8/KP5.

    Helixhorned r4197 12 Dec, 11:22 Engine

Build 4196

11 Dec 2013 · 2 commits · 1 author SVN
Open build
  • fix parsing negated labels, getnumber* with neg. 'max'.

    Helixhorned r4196 11 Dec, 13:23 FixEngineCON
    Show details

    Exposed by this snippet from a.m32: getnumber256 .owner "OWNER (projection picnum): " -MAXTILES Now, Alt+KP2 works as expected in 3D mode.

  • statically check some member assignments with literal numbers.

    Helixhorned r4195 11 Dec, 13:23 CON
    Show details

    And issue warnings whenever the assignment would fail (error) at game time.

Build 4194

6 Dec 2013 · 4 commits · 1 author SVN
Open build
  • add target 'print-compiler-options'.

    Helixhorned r4194 6 Dec, 10:56
    Show details

    May come in handy at times. BUILD_LUNATIC.

  • General

    Really fix the Pause key on Windows/SDL2.

    Helixhorned r4193 6 Dec, 10:56 Fix
    Show details

    This requires enabling the same workaround as for Linux. Maybe it's not system-dependent at all.

  • invalidate a wall when its sector's visibility has changed.

    Helixhorned r4192 6 Dec, 10:56 Engine
  • General

    Do not consider system gamearrays for updating from demos.

    Helixhorned r4191 6 Dec, 10:56 FixCON
    Show details

    This generally fixes demo playback. Before, tilesizx[]/tilesizy[] were written into twice as many bytes as needed. Now, don't do that at all.

Build 4190

1 Dec 2013 · 6 commits · 1 author SVN
Open build
Open the build to see all 6 commits

November 2013 6 builds · 39 commits

Build 4184

28 Nov 2013 · 8 commits · 1 author SVN
Open build
  • document a couple of player members, especially some 'bool' ones.

    Helixhorned r4184 28 Nov, 13:18
    Show details

    Important because in Lua, a value of zero yields true in a boolean context. BUILD_LUNATIC.

  • General

    multivoc.c: use a local variable instead of a file-scope one used locally.

    Helixhorned r4183 28 Nov, 13:18
  • General

    a-c.c: Make vector extensions also be compiled with Clang.

    Helixhorned r4182 28 Nov, 13:18 Fix
    Show details

    I was checking for GCC >= 4.7, while Clangs pretends to be GCC 4.2. Use a feature test macro instead. The comment I made in r4161 regarding GCC vs. Clang code was wrong. Now, Clang generates slightly faster code for these cases (solid and masked 4-pixel wide vlines).

  • General

    In P_HandleSharedKeys(), clean up weapon index bound checking.

    Helixhorned r4181 28 Nov, 13:18
    Show details

    In particular, (int32_t)j != -1 is replaced by (uint32_t)j < MAX_WEAPONS to prevent a value >= MAX_WEAPONS to be assigned to p->wantweaponfire (it's used as a weapon index in P_CheckWeapon().

  • General

    Don't assign result of A_PlaySound() to p->scream_voice if the former is >127.

    Helixhorned r4180 28 Nov, 13:18
    Show details

    Because p->scream_voice is an int8_t. This is an unlikely situation (126 voices ought to be playing simultaneously while starting the "scream" sound), but still...

Open the build to see all 8 commits

Build 4176

22 Nov 2013 · 7 commits · 1 author SVN
Open build
  • General

    In fullscreen_tint_gl() disable GL_FOG, preventing nasty flickering.

    Helixhorned r4176 22 Nov, 11:26
    Show details

    Which was especially noticeable in the Lunatic build. Also, use glPushAttrib/glPopAttrib there.

  • General

    Give rotatesprite 'orientation' bits enum names, too.

    Helixhorned r4175 22 Nov, 11:26
  • General

    Use named enum constants for the HUD flags instead of literal numbers.

    Helixhorned r4174 22 Nov, 11:26
  • bump the allowed range for 'r_pr_hudangadd' to [-1024 .. 1024].

    Helixhorned r4173 22 Nov, 11:26
  • handle HUD model 'fov' DEF token.

    Helixhorned r4172 22 Nov, 11:26 Engine
    Show details

    This "simply" requires an appropriate factor in the projection matrix. Also, get rid of a special-case factor for >=1.6 aspects (making HUD models wider then, I think).

Open the build to see all 7 commits

Build 4169

19 Nov 2013 · 2 commits · 1 author SVN
Open build
  • General

    a.m32: add [']+[F] menu function setting xvel=1 on all sel. wall/floor sprites.

    Helixhorned r4169 19 Nov, 11:00 Engine
    Show details

    For sanitizing underwater sections, see r4166. Also, don't print "Menu function executed successfully" when the function printed something itself.

  • General

    Amend r4142: make e.g. 'include a' (names shorter 4 chars) append ".m32".

    Helixhorned r4168 written 18 Nov 2013 Engine
    Show details

    DONT_BUILD.

Build 4167

16 Nov 2013 · 8 commits · 1 author SVN
Open build
  • General

    sdlmusic.c: disable FORK_EXEC_MIDI.

    Helixhorned r4167 16 Nov, 10:47
    Show details

    Also, if it were to be reenabled again, use execv() instead of execvp(), i.e. don't look up $PATH for the executable.

  • make underwater blocking floor sprites w/ xvel 1 NOT act like sprite bridge.

    Helixhorned r4166 16 Nov, 10:47 Engine
    Show details

    Likewise for blocking wall sprites. This makes it possible to construct underwater sections containing complex spritework without losing the "underwater-ness" when over such sprites, in a backward-compatible way. Actually, the check is for bit 1 being set, but all other bits should be considered reserved.

  • General

    lunatic/util/foreachmap.lua: don't expand .xxx after ']'.

    Helixhorned r4165 16 Nov, 10:47 Engine
    Show details

    Add an example searching for all maps containing blocking floor-aligned sprites in underwater sectors.

  • show a message when setting the initial position with SCROLL LOCK.

    Helixhorned r4164 16 Nov, 10:47 Engine
  • fix Ctrl-F/Ctrl-G as "key FIFO" keys, used in Mapster32.

    Helixhorned r4163 16 Nov, 10:47 FixEngine
    Show details

    By detecting them in the SDL_KEYDOWN events. This list is getting a bit ridiculous...

Open the build to see all 8 commits

Build 4145

8 Nov 2013 · 6 commits · 1 author SVN
Open build
  • add two names forgotten for dynsymlist.

    Helixhorned r4145 8 Nov, 10:08
    Show details

    Let's BUILD_LUNATIC to see whether it still works...

  • General

    In C_SetCfgName, don't use unsafe string functions with unknown-length input.

    Helixhorned r4144 8 Nov, 10:08
  • implement 'setcfgname'.

    Helixhorned r4143 8 Nov, 10:08 CON
    Show details

    Factor out a block of code into C_SetCfgName() and use that from lunacon.lua.

  • on 'starttrack' with null music, issue a 'soft' error.

    Helixhorned r4142 8 Nov, 10:08 CON
    Show details

    That is, one that doesn't break the control flow.

  • fix ported A_FurthestVisiblePoint().

    Helixhorned r4141 8 Nov, 10:08 Fix
Open the build to see all 6 commits

Build 4139

4 Nov 2013 · 8 commits · 1 author SVN
Open build
  • OSD

    on non-Windows, make textmode=0 the default, just like in Windows.

    Helixhorned r4139 4 Nov, 14:56 Fix
    Show details

    This fixes some init and update anomalies: before, - init would always be the graphical mode (0), but writing merely "osdtextmode" would switch it - osdtextmode would not get saved to the cfg

  • OSD

    retire OSD_GetFmt(), OSD_GetFmtPtr() and OSD_GetTextPtr() functions.

    Helixhorned r4138 4 Nov, 14:56
    Show details

    These were too much "looking into the implementation of a module" for my taste, hence OSD_GetShadePal() earlier.

  • OSD

    make plain display (osdtextmode=1) colorized, too.

    Helixhorned r4137 4 Nov, 14:56
  • OSD

    factor out getting sh/pal using format+text buffers into OSD_GetShadePal().

    Helixhorned r4136 4 Nov, 14:56
  • General

    textfont.c: make TAB character display blank.

    Helixhorned r4135 4 Nov, 14:56 Fix
    Show details

    This renders tweaks like r4122 unnecessary. Also, note a "bug" with the program generating that C code.

Open the build to see all 8 commits

October 2013 7 builds · 27 commits

Build 4125

28 Oct 2013 · 5 commits · 1 author SVN
Open build
  • General

    In G_SaveMapState, fix 1024-byte write beyond array bound on 64-bit platforms.

    Helixhorned r4125 28 Oct, 14:26 Fix
    Show details

    This was caused by mismatched for types mapstate_t's animateptr[] and the global one (int32_t vs. int32_t *). Bump BYTEVERSION.

  • when failing to load file, don't append '.m32' if already there.

    Helixhorned r4124 28 Oct, 14:26 EngineCON
    Show details

    So that there are no error messages like "M32 file `a.m32.m32' not found." Also, in build.c's 'save as' code, add a bound check that would probably always pass in practice, but looks a bit safer and may fail in very cornerly cases.

  • save r_usetileshades and r_pr_artmapping with mapster32.cfg.

    Helixhorned r4123 28 Oct, 14:26 Engine
  • when printing error line, replace tabs with spaces.

    Helixhorned r4122 28 Oct, 14:26 CON
  • take initial map file name from ExtPreInit()->G_CheckCommandLine().

    Helixhorned r4121 28 Oct, 14:26 Engine
    Show details

    Instead of directly in build.c:app_main(). Previously, it was possible that an argument to an option, e.g. "WGR2" with "-game_dir WGR2", would get interpreted as the initial map to load. This in turn would attempt to execute WGR2.cfg as sequence of OSD commands -- where that file is an EDuke32 config file instead! Now: maps are passed without any options, e.g. "mapster32 [opts...] debug.map". The map file name is not added to the "additional parameters" for map testing.

Build 4120

27 Oct 2013 · 9 commits · 1 author SVN
Open build
  • General

    SDL2/non-Windows: Before showing "simple message box", replace tabs with spaces.

    Helixhorned r4120 27 Oct, 14:12
    Show details

    Because the one implemented on top of X shows a special mark for tabs instead of whitespace. Also, in wm_msgbox(), use vsnprintf.

  • very primitive gamevar handling logic for {save,load}mapstate.

    Helixhorned r4119 27 Oct, 14:12 CON
  • in {save,load}mapstate, warn that saving/restoring gamevars is NYI.

    Helixhorned r4118 27 Oct, 14:12 CON
  • SDL

    Add SDL scancode -> ASCII value translation for the "key FIFO" for ESCAPE.

    Helixhorned r4117 27 Oct, 14:12 Fix
    Show details

    This fixes ESC in certain situations such as the editor map selection menu.

  • SDL

    factor out 2x repeated code into keyascfifo_{isfull,insert}.

    Helixhorned r4116 27 Oct, 14:12
Open the build to see all 9 commits

Build 4108

16 Oct 2013 · 5 commits · 1 author SVN
Open build
  • fix quote and pause keys.

    Helixhorned r4108 16 Oct, 12:43 Fix
    Show details

    - Add SDL scancode -> our key code map for SDL_SCANCODE_APOSTROPHE - Remove duplicate map for SDL_SCANCODE_PAUSE

  • make it possible to build with LuaJIT 2.1, add -Lopts=profile there.

    Helixhorned r4107 16 Oct, 12:43
  • General

    build.lua: add read_basepal().

    Helixhorned r4106 16 Oct, 12:43
  • General

    foreachmap.lua: remove the need for a space for certain '.' accesses.

    Helixhorned r4105 16 Oct, 12:43
    Show details

    That is, now it's not necessary to write e.g. "io. write" -- .xxx is translated to <what>[i].xxx only if it's a matching member name.

  • General

    build.lua: add "artfile" class, allowing to open and get pics from an ART file.

    Helixhorned r4104 16 Oct, 12:42