Gennaio 2015 19 build · 77 commit
Build 4877
SVN-
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
Build 4875
SVN-
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 15 build · 89 commit
Build 4873
SVN-
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().
Build 4871
SVN-
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.
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-
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.
Build 4859
SVN-
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.
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.
-
Generale
Add the necessary plumbing to sdlayer to detect mousedown, mouseup, and dragging.
Build 4844
SVN-
fix 'writearraytofile' for 64-bit platforms.
-
Generale
Tweak the behavior of viewscreens to what is more logical IMO.
Mostra dettagli
- 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.
-
Generale
engine.c: clamp all indices for distrecip[] access, as more OOBs were observed.
-
allow passing more than one flag to the 'spriteflags' directive.
Mostra dettagli
These will be bitwise-OR'd.
-
Generale
gamedef.c: factor out some dup'd code into C_BitOrNextValue(), C_FinishBitOr().
Build 4833
SVN-
include wall[].ypanning in wall invalidation logic.
Mostra dettagli
Fixes bug reported here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__213759
-
Generale
menus.c: Reset next-viewscreen-redraw counter from M_CloseMenu().
-
Generale
Minor cleanup around security cameras / viewscreens. DONT_BUILD.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
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-
Generale
Polish up the video menu a bit.
-
Generale
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.
Mostra dettagli
BUILD_LUNATIC.
-
fix handling of 'remappal' attribute for 'makepalookup'.
-
Generale
Pull setting g_noFloorPal[] further down, into makepalookup().
Mostra dettagli
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.
-
Generale
Move g_noFloorPal[] to the engine side and adapt other stuff accordingly.
Mostra dettagli
- '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
-
Generale
engine.c: prevent an oob access of uwall[] in ceilspritescan().
Build 4800
SVN-
Generale
voxmodel.c: fix Polymost rendering of voxels.
Mostra dettagli
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.
-
Generale
M32Script cleanup. Fixes at least one non-minor and one minor bug.
-
Generale
engine.c: minor stylistic changes. DONT_BUILD.
Mostra dettagli
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-
Generale
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.
-
Generale
Remove the structure fields in grpscan.c that blocked my code for allowing NAM, NAPALM, and WWII GI to fall back to GAME.CON.
-
Generale
Remove the blackout when starting a new game on episode 4.
-
Generale
Fix USE_OPENGL=0 build error in r4779.
Novembre 2014 2 build · 88 commit
Build 4784
SVN-
Generale
Fix EVENT_ANIMATESPRITES.
-
Generale
Fix warnings with VS2013 update 4. DONT_BUILD.
-
Generale
Open the load and save menus with the last used slot highlighted. DONT_BUILD.
-
Generale
Fix names of savegames. DONT_BUILD.
-
Generale
Fix displaying a savegame preview shot when in OpenGL and/or when the selected slot is empty. DONT_BUILD.
Build 4777
SVN-
Generale
Fix the crash in the ASM relating to the dynamic allocation of ylookup.
-
Generale
Make sure the mouse is captured when the main menu transitions into MODE_GAME. DONT_BUILD.
-
Generale
Fix mousewheel under SDL 1.2. DONT_BUILD.
-
Generale
Restore SDL 1.2 on Windows to a working state. DONT_BUILD.
-
Generale
Fix POLYMER=0 GTK C++ build. DONT_BUILD.