December 2014
-
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().
-
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.
-
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.
-
When pressing left or right on a slider that has moved by the mouse to a position between the defined intervals, do not round to the nearest interval and then increment or decrement. Instead, check if rounding will satisfy the movement before moving further.
-
Mouse controls now respect MenuEntry_t's disabled flag.
-
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.
-
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.
-
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.
-
General
Introduce preprocessor token EDUKE32_TOUCH_DEVICES that covers both Android and iOS, and replace selected instances of __ANDROID__ with it.
-
Add scrollbars to the FileSelect menu type.
-
General
Tabs to spaces in menus.c.
-
General
Refactor menus in preparation for touch functionality.
-
disable all loop checks as they spam the log too much. DONT_BUILD.
Show details
The one introduced with r4569.
-
General
Propagate 'smoothratio' to scenes drawn from the position of a camera.
Show details
That is, make interpolation work properly there -- both when 'using' a VIEWSCREEN and when rendering the scene onto a TILE_VIEWSCR. This makes a difference only if the camera is in a moving sector.
-
General
Minor cleanup, mostly in engine.c:drawalls().
-
General
Prettify viewscreen turned to STATIC in breakable cameras mode. DONT_BUILD.
-
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().
-
General
In C-CON build, prevent leak of gamevar/gamearray labels on savegame loading.
Show details
Also, rewrite the loops in Gv_Free() and Gv_Clear() in the plain fashion so that they are correct even if the number of gamearrays exceeds the number of gamevars.
-
General
cache1d.c: Revert changes in r4665 unrelated to unrolling, fixing oob write.
Show details
Specifically, we must make sure that dasizeof <= LZWSIZE (or so) in c1d_{read,write}_compressed() (what the assertion in the last commit was about, and is now redundant). This fixes saving of e.g. large gamearrays with the C-CON build. Bump BYTEVERSION. An alternative for setting dasizeof to 1 would be to factor it and keep dividing as long as it's > LZWSIZE.
-
General
cache1d.c: in (de)compr. funcs, add an bound-checking assert that fails w/ AMC TC.
Show details
Also, formatting.
-
General
Convert voxels to models only when starting or changing to Polymost.
Show details
Analogously to the way models are processed in a deferred manner for Polymer.
-
General
A couple of miscellaneous cleanups.
Show details
defs.c: sync some dup'd code for 'definevoxel' and 'voxel' DEF tokens. engine.c: factor out PolymerProcessModels().
-
General
engine.c: style-cleanup drawvox(). Also clean up ALL of voxmodel.c.
Show details
No deliberate semantic changes here.
-
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.
-
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.