- new language support: Spanish, French, Danish and Norwegian.
- Duke: fixed weapon spread with non-pistol hitscan weapons.
- Duke: Add a myriad of pitch recentering CVARs.
- Duke: fixed potential logic deadlocks with the green slimer.
- fixed lookup table generation for foggy fades.
- Duke: Add CVAR to allow disabling pitch reset with pitch input.
- Duke: Consolidate vehicle code between boat/moto.
- use GAMENAMELOWERCASE for defining GAME_DIR.
- Duke: Remove
everyothertime
global, we can just usePlayClock
. - fixed STAT_ACTORS must handle actors where scale.X is 0 as 'deleted' and destroy them.
- Duke: Make vehicle input functions work on floats and not doubles and FAngles.
- removed the ValidateTarget call from HackSeqCallback to silence warning messages
- Duke: Ensure spawned player actor has view height baked in up until the first
getzrange()
call. - Null the roll angle used for weapon drawing when looking left/right and with Blood's delirium for now.
- Blood: Fix state checks when using TNT while diving underwater.
- Exhumed: Ensure
Player::items[]
is signed. - Blood: Fix palette of actor sprite on 2D automap.
- Blood: Fix shotgun ammo display when player fires a shell, switches weapons, then switches back.
- Repair voxel 2D vector adjustment.
- Blood: Repair velocity scaling in
ConcussSprite()
. - Exhumed: major internal cleanup
- added a font option to have lower case for Latin only.
- Re-calculate the sector for each eye if it has a shift factor applied.
- completed all fonts for all European languages.
- Fix crash in Shadow Warrior when player dies
- Blood: fixed application of push velocity.
- Exhumed: avoid shade hacks with palette emulation on.
- Blood: make sure that tracking condition data is always properly initialized.
- partially Revert "- pass shade values to sky renderer" Duke never did this.
- Blood: reverted GetSpriteExtents to integer math.
- SW: make player sounds always follow the source.
- allow setting Duke's relevant sound properties through SNDINFO.
- Duke: fixed incorrect sector in a few sprites of World Tour E5L1.
- added adaptive layout for RR's summary screen as well. To better handle the spacing for accented characters the text scale was slightly reduced.
- make layout of Duke's summary screen adapt to text and screen size.
- RR: stop the bowling pins' tumbling animation when they come to a rest.
- Duke: added a fully scriptable switch system
- Change string
Ninja Slice Animation
toAlternative Ninja Slice
to better reflect what it does. - Fixed a Mac debug build crash where CallAnimate attempted to pass one too many parameters to the VM.
- Blood: add all statically stored EventObjects to the GC processor.
- moved GetReservedScreenSpace function into the scripted status bar where it belongs.
- split several texture flags off into a surface type value. Using the same field in the TexExtInfo struct as Blood's surfType. This frees up a lot of flags for later use.
- adapted the breakable stuff interface in Duke to Texture IDs.
- preparations and annotations for places in SW where textures are stored in tags.
- tile system refactor. BuildTiles has been replaced with something that better integrates with the underlying texture manager
- added mapSpawned member to DDukeActor
- Exhumed: The ObjectList was not properly garbage collected.
- fixed kill counting in Blood.
- SW: For single player games, call
PlayerDeathReset()
fromTerminateLevel()
and notDoPlayerDeathCheckKeys()
. - SW: Don't call
DoSpawnTeleporterEffect()
upon death. This causes an air bubble to spawn above the player for a single tic, even while on land until the level truly restarts. Since we're restarting, its better to just not do this. - SW: Don't reset player pitch upon death.
- Duke: Always use tsprite pos/angle when used in conjunction with viewvec or viewang.
- rewrote drawtile CVAR handling to render the image larger and allow using aliases.
- SW: do a proper implementation for sprites which do not want texture animations.
- gave all textures that were accessed with their "#0xxxx" name a descriptive names.
- disabled the automatic localization feature in the texture manager.
- rewrote the tile pixel cache to work on texture IDs instead of tile IDs. This allows using the related checking features with other textures as well.
- SW: fixed camera validation
- got rid of gotpic. Now everything uses the 'seen' flag in the texture which indicates that the texture was actually used for hardware rendering since the last check.
- removed canvas hack stuff from Buildtiles after cleaning up the mess in SW.
- initialize all special tiles to their intended type before starting the game.
- do the handling of 90° rotated wall textures in the renderer instead of duplicating the texture.
- Duke: implemented customizable breakable walls and ported all hard coded variants to use this.
- Duke: implemented breakable walls with external definitions.
- Duke: removed the limit of 64 on-state switches from the init code.
- Duke: split the sprite animation code for CON-based actors into a separate function.
- Duke: moved the shadow creation code out of animatesprites into a common subfunction.
- Duke: cleaned up the main thinker loops, using a flag to denote actors that are not on STAT_ACTOR but need to run CON code.
- Duke: gave proper names to ST_160 and ST_161.
- define Duke's skies by name.
- Duke: added generic destructibles
- backported sound volume fix from NBlood.
- Duke: use a flag for outer space textures.
- Duke: exported the tile flag setters to RMAPINFO.
- Change
DCoreActor::oang
to a DRotator namedPrevAngles
. - Change
spritetypebase::angle
to a DRotator namedAngles
. - Duke: gave all switch animation phases proper texture names.
- did a bit of optimization on FGameTexture. Since all material layers except the brightmaps are relatively rare encounters these were taken out of the main texture object and offloaded to a substructure that is only allocated on demand.
- use a sepate file system filter for 'duke-like' games, i.e. Duke, NAM and WW2GI combined.
- replace the homegrown hash chain in the sound engine with a TMap.
- sound system refactor to be based on names instead of indices.
- Duke/RR: Properly fix
movement()
so the player's Z always makes it back to floorz. - Make
stat coord
show full floating point values. - Blood: Fix
gi->WarpToCoords()
that messed up the Z. - SW: Take full advantage of our floating point work for the wall blood drips.
- more Duke/RR scriptifications
- always set the sound listener position to something valid. Otherwise OpenAL throws lots of warning messages.
- Use the interpolated sine table for tangent instead of Cephis math in
TAngle<T>
.