November 2012
-
when looking for matching wall in 2nd pt. ins., don't skip gray nextwalls.
Show details
This fixes a bug where it's not possible to split a sector under certain circumstances, reported by Micky C here: http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__138380 Also, don't allow zero in various 'F functions: Resize selection and Global {shade, visibility} divide.
-
General
Work around the transparent line with on-screen chaingun and linear filtering.
Show details
We do this by messing with the GL texture that gets uploaded for CHAINGUN. Since this is implemented on the engine side, the static value for CHAINGUN (2536) is used, and the tile dimensions are compared to 211x55 to have a little confidence that the tile wasn't overridden by a mod. Hack indeed.
-
print determined frame rate to the log.
Show details
Currently, the FPS determination is based on libvpx's vpxdec.c code, which uses the FPS provided in the IVF file in one case, and simply sets it to 30 FPS in the other. For the first case, a "correction" is carried out for something which the comments suggest to originate from other (old?) VPX encoder versions.
-
update structures, find maps case-insensitively in findmaps.sh.
-
draw lines to linking sprites with LShift, jump to them with +[ or +]
Show details
When LShift is pressed and the mouse is over a linking sprite (as determined by the tag labeling system), lines are drawn to all other sprites, and pressing [ or ] will cycle these then. False positives and missed sprites are possible. Additional changes: - consider SE 31 and 32's lotag to NOT be linking, since the ACTIVATOR is what matters. The original maps are inconsistent there. - When pressing Alt+[ or Alt+] and there are no corruptions, say so instead of doing [ or ].
-
make geom.lua work standalone, fix __eq metamethods for dvec[23]_t.
-
when punching loop, fade screen; tweak two messages.
October 2012
-
General
Hopefully fix the projectile breakage, and add some predefined names for working with the built in statnums
-
General
Move win32 "Initialized nedmalloc" message out of the function that prints the Windows version since it doesn't really belong there.
-
General
A pretty useless fix from a newer version of kplib than we forked from. I'm just tired of seeing it in my tree. ;)
-
General
Retire the actorscrptr[], actorLoadEventScrptr[], SpriteFlags[], ActorType[], SpriteCacheList[], ProjectileData[] and DefaultProjectile[] arrays in favor of a tile_t structure exposed as g_tile[]. This consolidates most of the MAXTILES sized arrays on the game side into one place.
-
General
Add EVENT_CHANGEMENU and clean up menus.c a little more.
Show details
This event is useful in certain circumstances where you want to skip a menu/screen value and the design of the monster switch statement would require the M_ChangeMenu() call to be intercepted or the unwanted screen will flash for a split second.
-
General
Two new player structure members: "autostep" and "autostep_sbw".
Show details
These control the maximum difference in height between two sectors that the player will automatically traverse without needing to jump. The latter controls the special case when the player's sector's lotag is ST_1_ABOVE_WATER or p->spritebridge == 1. BYTEVERSION bumped.
-
General
Remove unused variable "doretry" from S_PlaySound().
-
General
Revise grpfiles[] to include the censored South Korean GRP.
-
General
Fix harmless warnings in the Build tools.
-
General
Slight makefile reorganization and cleanup.
Show details
* Centralize optimization strategies in Makefile.common. This required moving detection of $(PLATFORM), which makes sense if we work on the paradigm that Makefile.common is for generic compiler setup and Makefile.shared works with libraries and things closer to the engine and game code itself. * New Makefile variables OPTOPT (Optimization Options) and CUSTOMOPT (Custom Optimizations). OPTOPT by default contains -march, -mtune, etc. Setting this variable from Make invocation will blank these. CUSTOMOPT (Custom Optimizations) works the same but in an additive fashion, overwriting nothing. Technically CUSTOMOPT could stand for (Custom Options) and include any additional parameters sent to both linker and compiler. * Factor out literal names of the main executables. * The build process now prints assembler (if NOASM=0) and linker settings in addition to compiler settings.
-
General
WIP networking updates from Jasper Foreman
-
General
Comment out the A_GetZLimits() call right before the Bassert() in A_MoveSprite(). This call is a problem because the assertion expects "dasectnum" and spr->sectnum to match, but A_GetZLimits() can itself call A_SetSprite() which results in another call to A_MoveSprite() and can potentially change the sectnum again.
Show details
This commit also adds the NOTELEPORT sprite flag, which of course prevents sprites from teleporting.
-
only let emitshadow affect shadows, not lightmaps.
Show details
Lightmaps are already opt-in anyway.
-
add support for negative lights
Show details
And hook them up to cstat 128 (half-submerged, 'c' in mapster).
-
add a prlight flag to make shadow-less spotlights
Show details
And hook it up to SE cstat 64 ('1' in mapster32). This disables both lightmaps and shadow maps for the spotlight; please let me know if you have a usecase where you want lightmaps but no shadow maps for specific lights.
-
General
Remove a debug line I accidentally committed a few days ago.
-
General
Add some CON defines for friendly names to pass to definegamefuncname. Now, instead of "definegamefuncname 36 something" you would "definegamefuncname GAMEFUNC_TURNAROUND something". It's just a little something to make CON files more readable.
-
General
Update xdelta3 to 3.0.4. I haven't actually tested these changes yet but they're directly from upstream.
-
General
Oops! Fix MinGW build issue caused by ripping out nedmalloc
-
General
Remove built-in copy of nedmalloc and update nedmalloc.dll. Note that the built-in copy of nedmalloc hasn't been updated or enabled in a really long time as modern system allocators (Windows 7 and Linux 3.x at least) are no longer consistently beat by nedmalloc (but nor are they consistently faster). So, the dll remains for users of Windows XP because it may still improve performance there (while not likely degrading it on Vista/7).
-
General
Move the Windows screen size based aspect ratio determination code down farther into the initialization and change the printed message to only appear when the calculation fails
-
General
Minor menu cleanups, only half-finished (if that).
-
General
A potential fix for MUSICANDSFX problems after loading a savegame. I was never able to reproduce the issue myself, but something like this seems like a good idea anyway. Thoughts?
-
General
actors.h updates needed for the networking changes I committed a few minutes ago
-
General
Clean up a couple of functions, namely P_IncurDamage()
-
General
Remove some outdated/incorrect code that was causing some issues when multiple copies of a single sound were playing and just one of them needed to be stopped.
-
General
Networking updates. Don't bother testing this to see if things are any better, because they aren't. :p
-
General
Texel-granular hitscan() for wall-aligned sprites.
Show details
The attribute is set per tile from DEF: either texhitscanrange <begintile> <endtile> or tilefromtexture <tile> { ... texhitscan ... } (As a special case, the list may only contain "texhitscan", in which case the texture is not changed.) In passing, do some cleanup for "tilefromtexture" DEF parsing: the list tokens should now be accepted in any order, and errors don't appear in the middle of the list parsing.
-
General
Factor out 2x identical code into G_WeaponHitCeilingOrFloor().
-
General
Clean up G_MoveWeapons(), among other things getting rid of weird indentation.
-
General
Clean up A_MoveSprite(), no functional changes.
-
General
Rearrange G_MoveTransports() code a little to cut down on nested switches.
-
General
Replace all/most literal SE lotags 1/2 with SE_1_ABOVE_WATER or SE_2_UNDERWATER.
Show details
Also catch some other literal SEs and statnums.
-
Prototypical no-SE7 water submersion/emersion.
Show details
Submersion only happens when the upper sector has lotag 1 and its vertical neighbor has lotag 2 (this can be useful to create non-submergible above-water sectors). Currently, only the player is handled. On the implementation side, the water handling code is split into P_Submerge() and P_Emerge() preparing the "teleportation", and P_FinishWaterChange() for the finalization.
-
General
CON access to ud.runkey_mode through get/setuserdef
-
General
Fix setting r_pr_maxlightpasses from .cfg at startup
-
General
Add cvar "cl_runmode" to control ud.runkey_mode. This should fix the "allow walk while running" preference not saving.
-
General
Prevent Windows "case mismatch" spam when loading files from disk with the Windows Explorer "hide extensions for known file types" option enabled. This simply changes the relevant Bstrcmp() calls to Bstrncmp() calls instead, using the length of the string returned by SHGetFileInfo() as the number of bytes to compare.
-
General
Fix the bug I caused with custom projectiles :p
-
General
The other half of the previous commit.
-
General
Fix issue with explosion sound cutoff in E1L2. This implements functionality to stop playback and free up the voice of a currently playing sound of the same ID when there are already MAXSOUNDINSTANCES (currently 8) of the same sound playing, determined by distance/volume and which sound is oldest.
Show details
Initial determination is based purely on distance/volume, and if two qualifying sounds have the same distance/volume the one which started playback first is the one that gets the axe. Feedback from other developers welcome.
-
expose updatesector*, add random walker as timing test for them.
-
various tweaks and API changes/additions.