Febbraio 2014
-
Generale
engine.c: in calc_bufplc(), cope with negative lwall[] values.
Mostra dettagli
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.
Mostra dettagli
BUILD_LUNATIC.
-
Generale
sounds.c: do S_MusicVolume() in S_SoundStartup().
Mostra dettagli
This fixes this initialization issue: http://forums.duke4.net/topic/7144-midi-volume-weirdness/
-
Generale
Some functionality-conserving cleanup of jaudiolib code.
-
accept empty square brackets for {g,s}etuserdef optional index part.
Gennaio 2014
-
Fix compilation of C++ build, but not starting up yet.
Mostra dettagli
BUILD_LUNATIC.
-
error on userdefs accesses with non-local current player.
Mostra dettagli
Add lunatic/test/getuserdef.con.
-
Generale
Get rid of neartag* global variables. LunaCON: fix 'operate'.
-
Generale
sector.c: factor out goto soup in P_CheckSectors() into function.
-
Generale
sector.c: cleanup round 3, P_ActivateSwitch() refactoring.
-
Generale
sector.c and related cleanup, round 2.
Mostra dettagli
- 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"
-
Generale
sector.c: cleanup round 1, trivial changes.
-
Generale
Follow-up to RTS cleanup: factor out 2x almost-same code into G_StartRTS().
-
Generale
Reincarnate RTS sound functionality together with cleaning up related code.
Mostra dettagli
- 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
-
Generale
Fix USE_OPENGL=0 build... again. DONT_BUILD.
-
Generale
Fix respawn operation with monsters off, rewriting G_OperateRespawns().
Mostra dettagli
BUILD_LUNATIC.
-
when clearing bunch number of c/f with yax_setbunch(), don't reset xpanning.
Mostra dettagli
In the non-Lunatic build naturally, since the Lunatic one uses its own member.
-
Generale
Print "32-bit"/"64-bit" along with the version number in the log.
-
Generale
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.
Mostra dettagli
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)
Mostra dettagli
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.
Mostra dettagli
Also, improve -Wnumber-conversion warning by printing the resulting number. BUILD_LUNATIC.
-
make wall texture alignment [.]/[,] work with bottom-swapped walls.
Mostra dettagli
In simple cases, it should be added. Combinations of alignment across TROR boundaries and bottom-swapping will probably not work right.
-
Generale
Improve determination of when a sprite should be drawn before a masked wall.
Mostra dettagli
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.
Mostra dettagli
Also, in LunaCON, make player .palette member read-only. BUILD_LUNATIC.
-
Generale
Per-map ART tiles: don't back up or restore reserved tiles.
Mostra dettagli
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.
Mostra dettagli
Actually, right now, any first arg starting with '-' will show the usage.
-
Generale
Engine-side per-map ART file support.
Mostra dettagli
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.
-
Generale
Stylistic/formatting tweaks in cache1d code.
-
Generale
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.
-
Generale
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.
Mostra dettagli
EDuke32. Where our code runs so fast, it breaks old code.
-
Generale
Fix the display of the multiplayer results screen.
-
Generale
Run Net_SendClientInfo() after game state creation to properly set up the player's user_name.
-
Generale
Block off hacks for the primitive splitscreen CON mod with SPLITSCREEN_MOD_HACKS so they are no longer compiled.
Mostra dettagli
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.
-
Generale
For DISABLEINLINING=1, apply __fastcall to make up for the lack of inlining.
-
Generale
Always run tsprites with statnum TSPR_TEMP though EVENT_ANIMATESPRITES, such as the "show opponent's weapon" in multiplayer.
-
Generale
SDK/Samples: Add "startpos.m32", a helper script for spawn points.
Mostra dettagli
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.
Mostra dettagli
Some are more useful than others.
-
Generale
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.