January 2015 19 builds · 77 commits
Build 4877
SVN-
General
engine.c: prevent multiple collection of same sector in scansector().
Show details
Also for polymost_scansector(). These were likely of little consequence because collection in scansector() is the exception than the rule (see added comments), and because the redundant drawwalls() would find the x range done the second and following times. Also, add a bound check for sectorborder[] (the limit was probably rarely hit in practice, but the check is mandatory nontheless) and add functions printscans() and printbunches() in the DEBUGGINGAIDS=2 build.
-
General
engine.c: in drawmasks(), remove sorting sprites by statnum.
Show details
There were various issues with that code. - It does not seem to be very meaningful to do so. - It was carried out on the same range as the sprites sorted by z coordinate (those with equal x/y) just a few lines away, effectively overriding it. The former is very meaningful, though. - It led to inconsistencies between editor and game, see http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__214873
Build 4875
SVN-
General
Cleanup of various engine functions.
Show details
- factor out calculation of player-relative and screen+clipped-player-relative coordinates into get_rel_coords() and get_screen_coords(), respectively - the usual beautification stuff, especially since we're now on C99
-
always return non-negative values from 'clipmove' and related.
Show details
Previously, the C function clipmove() returned negative values when hit a wall (32768+wallnum) or sprite (49152+spritenum) because internally, these values were encoded into a *signed* 16-bit integer. This made no difference to C code using it, since it always proceeded by bit checks, but was inconsistent with documentation on CON 'clipmove' on the wiki. The following commands are affected too, since they use the value returned by clipmove(): 'clipmovenoslide', 'movesprite'. Also, the value of actor[].movflag ('htmovflag' from CON). Also, fix 'clipmove*' in LunaCON and add lunatic/test/checknearwall.con as an example of how to implement a being-close-to-a-wall checker as requested in http://forums.duke4.net/topic/7869-determining-closeness-to-a-wall/
December 2014 15 builds · 89 commits
Build 4873
SVN-
General
engine.c: fix clipmove() against floor-aligned sprites.
Show details
Introduced in r3207. Oops.
-
General
engine.c: prevent an oob read of spriteext[] in drawsprite_classic().
Build 4871
SVN-
General
sounds.c: don't crash S_PlayMusic() if passed null pointer for 'fn'.
Show details
This may happen if no title/end music is defined from CON. Thanks to Zaxtor for the bug report.
Build 4870
SVN-
Amend r4862 so that touch devices, which do not display the crosshair as a cursor, are not completely prevented from using touch input by the lack of a crosshair tile.
-
Fix the Screen Size slider so that it works properly after the screen size has been modified in-game with [-]/[+].
-
Fix selecting "None" for Anisotropy.
-
Fix opening a MenuEntryOptionList when the option's value is "Custom".
-
Convert MenuRange*_t's "displaytype" field to "flags", add a flag to enforce clamping to the defined intervals, and apply this flag to the Screen Size slider.
Build 4864
SVN-
Mouse controls now respect MenuEntry_t's disabled flag.
Build 4863
SVN-
General
actors.c: replace hard-coded list with missing check for SFLAG_NODAMAGEPUSH.
Show details
In A_RadiusDamage(). The code snippet that is disabled for such actors increases the damaged actor's .xvel by (4 times the) damage amount and is responsible for the strange effect of enemies becoming faster TOWARDS the player on being hit with an RPG frontally. Thanks to Fox for a keen eye.
-
disable mouse pointer if CROSSHAIR is void. DONT_BUILD.
-
General
In G_HandleMirror(), consult g_mirrorCount instead of gotpic[] w/ MIRROR.
Show details
DONT_BUILD.
-
General
Lunatic translator: add stand-alone option -fnames, generating names.h file.
Build 4859
SVN-
General
Fix playing end-of-episode ANMs.
-
General
If you save over an autonamed savegame and change the name, don't overwrite your edit with another autofill.
Build 4857
SVN-
Enumify the "status" parameter of M_MenuText into MenuTextFlags_t.
-
Implement mouse/touch/pointer controls for all widgets.
-
Replace the "disabled" member of MenuEntry_t with "flags" so that the other 31 bits can be utilized.
-
Disable normal left-click/touch menu functionality when the mouse is active.
-
General
Add the necessary plumbing to sdlayer to detect mousedown, mouseup, and dragging.
Build 4844
SVN-
fix 'writearraytofile' for 64-bit platforms.
-
General
Tweak the behavior of viewscreens to what is more logical IMO.
Show details
- At a given time, at most one viewscreen may display TILE_VIEWSCR, namely that one which is g_curViewscreen - sync kinds of distance to compare against VIEWSCREEN_ACTIVE_DISTANCE (was Manhattan vs. dist(), now both the latter) - fix resetting to VIEWSCREEN tile when player is greater from it than that distance. When the player is closer to it again, it is *not* reset to TILE_VIEWSCR. - more sync'd g_curViewscreen and sprite[i].yvel (for 'i' being the viewscreen sprite) Note: in a multiplayer context, this needs to be thought about once more.
-
General
engine.c: clamp all indices for distrecip[] access, as more OOBs were observed.
-
allow passing more than one flag to the 'spriteflags' directive.
Show details
These will be bitwise-OR'd.
-
General
gamedef.c: factor out some dup'd code into C_BitOrNextValue(), C_FinishBitOr().
Build 4833
SVN-
include wall[].ypanning in wall invalidation logic.
Show details
Fixes bug reported here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__213759
-
General
menus.c: Reset next-viewscreen-redraw counter from M_CloseMenu().
-
General
Minor cleanup around security cameras / viewscreens. DONT_BUILD.
Show details
The only semantic change is that an out-of-sync instance of a distance to check (viewscreen sprite <-> player sprite) is changed in actors.c:G_MoveStandables(), from 2048 (as in Duke3D 1.5) to 8192, now represented by the define VIEWSCREEN_ACTIVE_DISTANCE. I have not yet observed any change in behavior regarding this change (but there ought to be one). Also, in DNCOORDS display, print 'totalclock' count, too.
-
don't draw masked walls with void tile. DONT_BUILD.
Show details
This prevents displaying W_FORCEFIELD+1 masks (as e.g. in front of viewscreens) completely black with ART mapping. The old behavior, which is inconsistent with classic, is kept for one-sided masked walls, though.
-
sync MAXJOYAXES, add lunatic/test/sprite_addtv.con. DONT_BUILD.
Build 4828
SVN-
Display all hat directions in the joystick buttons menu instead of just up.
-
Bump MAXJOYAXES to 9 to avoid menu corruption, and fix _functio.h, CONFIG_FunctionNameToNum, CONFIG_AnalogNameToNum, so that this does not crash.
-
General
Fix the MAXJOYBUTTONS discrepancy between _control.h and gamedefs.h.
-
Add non-interactive cases to wm_msgbox and wm_ynbox.
-
Output and package the binary as .dol instead of .elf.
Build 4823
SVN-
General
Polish up the video menu a bit.
-
General
Fix "bright red" player color.
-
Add a custom exception handler that saves the crash information to the log and directs the user to submit it to us. DONT_BUILD.
-
Add a console to display startup messages to the screen instead of showing the user a black screen while the game initializes. DONT_BUILD.
-
Work around a performance regression caused by r4080. DONT_BUILD.
Build 4814
SVN-
expose more members, properly handle setting ud.screen_size.
Show details
BUILD_LUNATIC.
-
fix handling of 'remappal' attribute for 'makepalookup'.
-
General
Pull setting g_noFloorPal[] further down, into makepalookup().
Show details
Now passed as last arg 'noFloorPal' to makepalookup(). Used as follows: - from loadlookups(): *false*, i.e. do take over floor pal. - from generatefogpals() [default fog pals] and fillemptylookups(): *true*, i.e. don't take over floor pal - from DEF 'fogpal': true - from DEF 'makepalookup': take over flag from pal from which we are remapping, or set to true if remapping from pal 0 - (CROSSHAIR_PAL: true) This should make the issue reported in http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__197583 resolve in a natural manner.
-
General
Move g_noFloorPal[] to the engine side and adapt other stuff accordingly.
Show details
- 'nofloorpalrange' DEF token: now handled for both game and editor (for the latter, it's effective only for "shade preview" mode, [']+[X]). - in generatefogpals(), assign g_noFloorPal[] = 1 for every generated (default) fog pal; get rid of its return value / g_firstFogPal
-
General
engine.c: prevent an oob access of uwall[] in ceilspritescan().
Build 4800
SVN-
General
voxmodel.c: fix Polymost rendering of voxels.
Show details
This reverts/corrects two semantic changes of r4639 as far as what is now voxmodel.c (formerly part of mdsprite.c) is concerned. One correction ends up having no effect (m->bscale is always 1.f for voxel models, as far as I can see), but is the proper rewrite. Also, in osdcmds.c:registerosdcommands(), tweak two help strings.
Build 4799
SVN-
fix tilesizx[]/tilesizy[] access. Can also 'copy' from them.
-
General
M32Script cleanup. Fixes at least one non-minor and one minor bug.
-
General
engine.c: minor stylistic changes. DONT_BUILD.
Show details
Since we're targeting C99/C++ now, we can finally declare variables as close to their use as possible.
-
fix actor[] and player[] indexing after LuaJIT bugfix 66515a054c0826ce.
-
implement 'qstrncat' command.
Build 4791
SVN-
General
Add dummy command line parameters to allow us to serve as a drop-in replacement for the NAM Steam release's dosbox.exe
-
Detect installation paths of 3DR's Duke Nukem 3D package, the 3DR Anthology, and the NAM Steam release.
-
General
Remove the structure fields in grpscan.c that blocked my code for allowing NAM, NAPALM, and WWII GI to fall back to GAME.CON.
-
General
Remove the blackout when starting a new game on episode 4.
-
General
Fix USE_OPENGL=0 build error in r4779.
November 2014 2 builds · 88 commits
Build 4784
SVN-
General
Fix EVENT_ANIMATESPRITES.
-
General
Fix warnings with VS2013 update 4. DONT_BUILD.
-
General
Open the load and save menus with the last used slot highlighted. DONT_BUILD.
-
General
Fix names of savegames. DONT_BUILD.
-
General
Fix displaying a savegame preview shot when in OpenGL and/or when the selected slot is empty. DONT_BUILD.
Build 4777
SVN-
General
Fix the crash in the ASM relating to the dynamic allocation of ylookup.
-
General
Make sure the mouse is captured when the main menu transitions into MODE_GAME. DONT_BUILD.
-
General
Fix mousewheel under SDL 1.2. DONT_BUILD.
-
General
Restore SDL 1.2 on Windows to a working state. DONT_BUILD.
-
General
Fix POLYMER=0 GTK C++ build. DONT_BUILD.