Gennaio 2015
-
Generale
Revise C++ structure trackers for performance and introduce "tspritetype", for temporary sprites or other usages where using the trackers would be invalid or undesired. DONT_BUILD.
-
Generale
Faster/better optimized access to game structures from C-CON.
-
Generale
Support r_windowpositioning in 8-bit.
-
Generale
Clean up/refactor a few gamevar related functions based on building as C++/C99 and some interesting articles I read about how GCC and Clang optimize switches. Worth a few FPS here.
-
Generale
Minor cleanup and formatting changes. DONT_BUILD.
-
Generale
Make FORCE_INLINE aware of DISABLE_INLINING. DONT_BUILD.
-
Generale
Detect running under Wine. DONT_BUILD.
-
Generale
Identify Windows 10 in the startup window/log. DONT_BUILD.
-
Generale
MSVC C++ build fixes. DONT_BUILD.
-
Generale
Replace hightile grayscale method (usually combined with tints to produce
Mostra dettagli
replacements for the first handful of palette lookups) w8th superior "luma" method. DONT_BUILD.
-
Generale
Fix up weapon switching deficiencies
-
Generale
When using search paths detected from a Megaton installation, also use the SC-55 oggs included with it.
-
Generale
Clean up autodetected game install search paths on all platforms that use them.
Mostra dettagli
This should prevent Lunar Apocalypse from becoming Nuclear Winter with Megaton on Linux and Mac.
-
Disable the spinning nuke icon back button on Android.
-
Generale
Implement UserMapHacks.
-
Generale
Reinstate MD4.
-
Generale
engine.c: fix clipmove() against upper part of wall-aligned sprites.
-
Generale
engine.c: on non-touch devices, roughly double maximum voxel drawing distance.
Mostra dettagli
By setting DISTRECIPSIZ to 131072, as far as I can see the absolute maximum that's possible with the integer scaling convention of the voxel drawing code. BUILD_LUNATIC.
-
make sprite duplication examples in m32script_ex.map work again.
Mostra dettagli
- Work around a sequencing issue (assignment of searchstat) in M32_DrawRoomsAndMasks() - When having sprites highlighted and changing shade, since r1943 change every highlighted sprite's shade if one of them is aimed at. With this revision, if SHIFT is pressed while doing that, only change the aimed at sprite's shade - a.m32: Use 'break' from a state instead of 'return'. The former may be "sticky" in a way that is not intended. Needs to be debugged later. - Update instructions in m32script_ex.map DONT_BUILD.
-
Generale
game.c: revert changes of r4861 ("consult g_mirrorCount instead of gotpic[]").
-
in control/lua, sync ALLOWED_VIEWTYPE with change from r4814 (allow 2).
Mostra dettagli
DONT_BUILD.
-
Generale
engine.c: prevent multiple collection of same sector in scansector().
Mostra dettagli
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.
-
Generale
engine.c: in drawmasks(), remove sorting sprites by statnum.
Mostra dettagli
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
-
Generale
Cleanup of various engine functions.
Mostra dettagli
- 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.
Mostra dettagli
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/
Dicembre 2014
-
Generale
engine.c: fix clipmove() against floor-aligned sprites.
Mostra dettagli
Introduced in r3207. Oops.
-
Generale
engine.c: prevent an oob read of spriteext[] in drawsprite_classic().
-
Generale
sounds.c: don't crash S_PlayMusic() if passed null pointer for 'fn'.
Mostra dettagli
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.
-
Generale
actors.c: replace hard-coded list with missing check for SFLAG_NODAMAGEPUSH.
Mostra dettagli
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.
-
Generale
In G_HandleMirror(), consult g_mirrorCount instead of gotpic[] w/ MIRROR.
Mostra dettagli
DONT_BUILD.
-
Generale
Lunatic translator: add stand-alone option -fnames, generating names.h file.
-
Generale
Fix playing end-of-episode ANMs.
-
Generale
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.
-
Generale
Add the necessary plumbing to sdlayer to detect mousedown, mouseup, and dragging.
-
Generale
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.
-
Generale
Tabs to spaces in menus.c.
-
Generale
Refactor menus in preparation for touch functionality.