February 2014
-
General
engine.c: in calc_bufplc(), cope with negative lwall[] values.
Show details
This should fix the crash encountered here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__184069 a-c.c also gets a new switch macro, DEBUG_WITH_VALGRIND.
-
implement 'precache'.
-
add option -ferror-nonlocal-userdef, on by default.
Show details
BUILD_LUNATIC.
-
General
sounds.c: do S_MusicVolume() in S_SoundStartup().
Show details
This fixes this initialization issue: http://forums.duke4.net/topic/7144-midi-volume-weirdness/
-
General
Some functionality-conserving cleanup of jaudiolib code.
-
accept empty square brackets for {g,s}etuserdef optional index part.
January 2014
-
Fix compilation of C++ build, but not starting up yet.
Show details
BUILD_LUNATIC.
-
error on userdefs accesses with non-local current player.
Show details
Add lunatic/test/getuserdef.con.
-
General
Get rid of neartag* global variables. LunaCON: fix 'operate'.
-
General
sector.c: factor out goto soup in P_CheckSectors() into function.
-
General
sector.c: cleanup round 3, P_ActivateSwitch() refactoring.
-
General
sector.c and related cleanup, round 2.
Show details
- use SPRITES_OF* iterator macros - new function: E_SpriteIsValid(); add some safety checks (e.g. hitag used as sprite index) - the rest is mostly "the usual code transformations"
-
General
sector.c: cleanup round 1, trivial changes.
-
General
Follow-up to RTS cleanup: factor out 2x almost-same code into G_StartRTS().
-
General
Reincarnate RTS sound functionality together with cleaning up related code.
Show details
- Make Win+F* also make play and RTS sound, since modern OS's window managers like to eat Alt-F*. (Some Win+F* may be inaccessible too, but together all 10 should hopefully be covered.) - Fix an issue where keys other than F1-F10 were considered as starting an RTS sound and crashing EDuke32 in the process
-
General
Fix USE_OPENGL=0 build... again. DONT_BUILD.
-
General
Fix respawn operation with monsters off, rewriting G_OperateRespawns().
Show details
BUILD_LUNATIC.
-
when clearing bunch number of c/f with yax_setbunch(), don't reset xpanning.
Show details
In the non-Lunatic build naturally, since the Lunatic one uses its own member.
-
General
Print "32-bit"/"64-bit" along with the version number in the log.
-
General
Remove "-fpermissive" from C++ builds because we don't need it.
-
gltexinvalidatetype(INVALIDATE_ART) so that loading or unloading an ART set will take effect when using the OpenGL renderers.
-
Don't use SDL_Renderer if it is a software fallback, because that would only waste memory and speed.
-
Eliminate a memory leak when changing resolutions with SDL_Renderer 8-bit mode.
-
Fix "the issue where if you hold down a key and enter the console then release it that the key remains held down until you hit it again outside the console".
-
Introduce support for PlayStation CD-XA audio, a simple ADPCM format.
Show details
It's functional, but due to the odd 37.8 KHz nature of the format, I will need to add a resampler to the audiolib to prevent the aliasing artifacts that occur at present. I also hear clicks/pops every so often, but I do not know if a resampler would fix these as well or if they are a separate problem. Note that you cannot directly use the four XA files on the Total Meltdown disc because they each contain eight songs. They would need to be split using a utility I wrote that is outside the scope of this SVN.
-
Fix a harmless C++ warning. (malloc casting, for those interested)
Show details
EDuke32 has me so accustomed to straight C... using a template and pass-by-reference makes my day.
-
add codegen option -fbad-getactorvar-use-pli for C-CON compatibility.
Show details
Also, improve -Wnumber-conversion warning by printing the resulting number. BUILD_LUNATIC.
-
make wall texture alignment [.]/[,] work with bottom-swapped walls.
Show details
In simple cases, it should be added. Combinations of alignment across TROR boundaries and bottom-swapping will probably not work right.
-
General
Improve determination of when a sprite should be drawn before a masked wall.
Show details
Concretely, in the "behind, outside" case, draw the sprite early if any of its 2 or 4 corner points are behind the masked wall, and inside the cone or on the other outside.
-
don't attempt audio format auto-detection for less than 12 bytes.
-
document engine.*shadetab() functions. DONT_BUILD.
-
in debugging builds, add cvar debug_maskdrawmode.
-
make gv.current{Level,Episode} one-based and document them.
Show details
Also, in LunaCON, make player .palette member read-only. BUILD_LUNATIC.
-
General
Per-map ART tiles: don't back up or restore reserved tiles.
Show details
This prevents a crash and maybe other badnesses when e.g. loading a map with ART tiles, doing something that allocates a reserved tile (such as looking into a viewscreen), then loading another map where the tilesiz* of TILE_VIEWSCR is restored to 0.
-
fix one error message, make -h/--help display usage.
Show details
Actually, right now, any first arg starting with '-' will show the usage.
-
General
Engine-side per-map ART file support.
Show details
When a map named <filename>.map is loaded (<filename> may also contain directory separators), the engine checks for existence of <filename>_XX.art in the virtual file system, where XX is a 0-padded number from 00 to 19. It loads a consecutive sequence of these ART files, i.e. aborts whenever a number in the sequence isn't found (in contrast to normal ART loading). Restrictions: - the per-map ART files must not reside in ZIP files - if a tile number is attempted to be overridden that has a dummytile or is cache1d-locked, per-map ART loading fails On failure, the map is still loaded, but a diagnostic message is output to the log/OSD. Loaded per-map ART data are cleared whenever the map is "left". In particular: - whenever another map is loaded - in the editor: when a new map is started - in the game: after the bonus ending screen of a finished level, after going to the title screen via the menu A final note: file names are supposed to be looked up and compared case-sensitively. That is, <filename> must match EXACTLY between the map's and per-map ART one; 'art' must be lowercase. Otherwise, the cookie monster will come and eat you! BUILD_LUNATIC.
-
for readgamevar, if ud.config.scripthandle < 0, keep value, don't err.
-
General
Stylistic/formatting tweaks in cache1d code.
-
General
Fix the startup window freeze under SDL2+Windows when a Yes/No box was supposed to be displayed.
-
Reintroduce SDL_Renderer for the classic renderer so that the Steam Overlay can function with it.
-
General
Fix a case where the bonus screen would immediately end with an input press because all code between iterations of the bonus screen would execute in less than 1/120th of a second, not leaving any time for totalclock to increment.
Show details
EDuke32. Where our code runs so fast, it breaks old code.
-
General
Fix the display of the multiplayer results screen.
-
General
Run Net_SendClientInfo() after game state creation to properly set up the player's user_name.
-
General
Block off hacks for the primitive splitscreen CON mod with SPLITSCREEN_MOD_HACKS so they are no longer compiled.
Show details
These hacks could no longer be allowed to co-opt the fake multiplayer mode, used for local testing and mod development. I have half a mind to remove the hacks outright because they could be likened to drilling bolts directly into your car engine just so you could mount a bowling ball as a hood ornament. However, I don't want to take away the splitscreen hack mod from anyone who uses it, and the work done on these hacks should be useful if proper splitscreen were implemented internally using per-player input and multiple renderer/audio passes.
-
Add Ken's "todo list from the Build days" alongside his other documentation.
-
General
For DISABLEINLINING=1, apply __fastcall to make up for the lack of inlining.
-
General
Always run tsprites with statnum TSPR_TEMP though EVENT_ANIMATESPRITES, such as the "show opponent's weapon" in multiplayer.
-
General
SDK/Samples: Add "startpos.m32", a helper script for spawn points.
Show details
You can: -Cycle your position through all DM or coop spawn points. -Jump to the primary spawn point. -Dump full spawn point information to the log file.
-
Add EVENT_LOADMAP, EVENT_SAVEMAP, EVENT_PRELOADMAP, and EVENT_PRESAVEMAP.
Show details
Some are more useful than others.
-
General
Allow the episode 4 cutscenes to be skipped in their entirety with one keypress, as in the original DOS game, instead of requiring input for each ANM file.