Christoph Oelckers
888f8888bb
- backported some fixes in the common backend from GZDoom
2021-08-03 13:00:09 +02:00
Mitchell Richters
17b2154e9a
- Blood: Expose legacy 1.0 weapon handling game option as a CVAR.
2021-08-03 00:47:05 +10:00
alexey.lysiuk
7522a3e359
- added detection of Steam's Powerslave on macOS
2021-07-31 12:51:21 +03:00
alexey.lysiuk
33167b2a0d
- fixed detection of Steam's Duke3D on macOS
2021-07-31 12:47:10 +03:00
Mitchell Richters
a9b75e7e7d
- Blood: Put QAV interpolation code behind a CVAR for now until some final minor issues are resolved.
...
* Thanks to Dzierzan for testing and the reports.
2021-07-31 10:15:51 +10:00
Mitchell Richters
f6c7ed3984
- Blood: Restore originally intended isRunning
code that never worked behind two CVARs to offer an alternative playing experience.
...
* `cl_bloodvanillarun` enables/disables the `isRunning` code that affects AI, bobbing and swaying.
* `cl_bloodvanillabobbing` enables/disables the `isRunning` code that affects bobbing and swaying, allowing only the `isRunning` AI changes.
2021-07-31 10:14:56 +10:00
Mitchell Richters
9884d5f396
- Blood: Perform interpolation of menu's blood dripping.
...
* All supporting code is here, is tested and works, need to determine best how to flag the menu as "Animated" to uncap the frame-rate.
2021-07-31 10:05:25 +10:00
Mitchell Richters
a67c126129
- Blood: Extend 99508e6f15
to find picnum of previous frame in all previous frame's tile indices if the current frame's tile index doesn't match.
...
* Allows more interpolation magic.
* Revealed an issue with `interpolatedanglef()` that was undetected. Removed in place of a binangle version returned as floating point build.
2021-07-29 19:23:00 +10:00
Mitchell Richters
019922dcf1
- Fix constexpr issue with interpolatedanglef()
since fmod()
isn't available as constexpr.
2021-07-29 18:38:07 +10:00
Mitchell Richters
32215ba570
- SW: Tidy some extra panel coordinate math that was missed in 4d4946fb6b
.
2021-07-29 17:53:57 +10:00
Mitchell Richters
99508e6f15
- Blood: Perform interpolation between frames for each tile coordinate when there is more than one frame and the picnum between frames match.
2021-07-29 17:39:22 +10:00
Christoph Oelckers
bd23ea144c
- validate 'nextsector' fields on walls.
...
Build utterly relied on the map having these right and put the entire responsibility on the mapper.
There's maps, however which have bad values here causing either render glitches or crashes so these bad indices need to be fixed.
Two good examples where this causes problems are RR's E3L1 and the second map of SW's Last Warrior mod where this even glitches in Polymost.
2021-07-27 22:12:29 +02:00
Christoph Oelckers
9a8ee00aec
- set currentLevel before calling engineLoadBoard.
...
This is needed if the compatibility patcher needs to alter mapinfo data.
2021-07-27 22:12:29 +02:00
NoOneBlood
a40d036623
Fix max players range check for kModernPlayerControl
...
Add power up control for kModernPlayerControl
2021-07-27 08:05:31 +10:00
Mitchell Richters
1fa0863a52
- Duke: Amend af9f2f3eb6
to not reset the skill if incoming skill is -1;
2021-07-26 19:41:17 +10:00
nukeykt
adb9547ba9
Blood: fix impact sprite OOB issue
2021-07-26 19:19:41 +10:00
nukeykt
ced8a83331
Blood: fix potential view sprite overflows
2021-07-26 16:06:56 +10:00
nukeykt
557cd7e734
Blood: fix view sprites overflow in ROR code
2021-07-26 16:00:13 +10:00
nukeykt
39547e2df5
Blood: fix OOB issue in aiPatrolSetMarker
2021-07-26 15:55:13 +10:00
Christoph Oelckers
1fde9f2173
- workaround to allow playing SW's Last Warrior mod in one go.
...
This disables the boss's death in L4 ending the game and just advances to the next level.
This seems to be the intent with this mod as the second episode starting at L5 is not defined and the first episode's subtitle advertises the full game.
2021-07-26 00:58:00 +02:00
Christoph Oelckers
1a5a2aba2b
- Blood: fixed path validation for cutscene files.
2021-07-25 17:27:52 +02:00
Christoph Oelckers
a12dfbe1d8
- fixed bad operator grouping in cheat code.
2021-07-25 17:17:29 +02:00
Christoph Oelckers
5c5799c21f
- quote argument for sending cheats from the chat editor.
2021-07-25 12:48:27 +02:00
Christoph Oelckers
c69efe5817
- fix crash issue with empty VOCs.
...
Pointer to empty data causes undefined behavior if length is 0.
2021-07-25 12:43:42 +02:00
Christoph Oelckers
dfb18ef9a9
- Duke/RR: Call Bowling lane reset code only when playing RR.
...
This may alter some tile references which will cause problems with hires replacements in Duke .
2021-07-25 12:43:03 +02:00
Christoph Oelckers
c51c6fa524
- adapted the Zip root folder eliminator to deal with archives that do not add proper folder records to their central directory.
2021-07-25 12:18:53 +02:00
Christoph Oelckers
3864dcfc17
- adapted cheat input handler to treat spaces as '0' when entering parts of numeric fields.
2021-07-25 11:59:12 +02:00
Christoph Oelckers
fa586d6d7c
- Blood: fixed parser for 'mario' cheat to treat a leading space for the level number as 0.
2021-07-25 11:53:20 +02:00
Christoph Oelckers
b23db149e3
- use snprintf in condError.
...
While sprintf is generally problematic, it is particularly dangerous here where it is impossible to estimate the length of the messages.
2021-07-25 11:50:23 +02:00
Mitchell Richters
9fad44bab2
- Blood: Replace use of non-standard strupr()
from 754554a493
with an FString object.
2021-07-25 19:44:07 +10:00
Mitchell Richters
3b82a08123
Revert "- Fix non-Windows and non-MSVC builds due to missing header for strupr()
."
...
This reverts commit 2217dcb632
.
2021-07-25 19:38:06 +10:00
sirlemonhead
e4fb67bc25
Rides Again: Possible array index by -1 in Proj_DoHitscan(). Added check to prevent this.
2021-07-25 19:37:02 +10:00
Mitchell Richters
2217dcb632
- Fix non-Windows and non-MSVC builds due to missing header for strupr()
.
2021-07-25 19:27:31 +10:00
Christoph Oelckers
7702b3bb92
- rewrote the sound handling in the patrolling code for Raze's sound backend.
2021-07-25 10:42:15 +02:00
Christoph Oelckers
eae355110f
- use enums instead of #defines.
2021-07-25 10:30:14 +02:00
Christoph Oelckers
cc3e6b74f3
- handle newly activated 'unused' fields properly for serialization.
2021-07-25 10:29:50 +02:00
Christoph Oelckers
b588abbca6
- deleted two unused functions that got back in again by accident.
2021-07-25 08:50:46 +02:00
Mitchell Richters
4298399e00
- Build: Change MAXSPRITESONSCREEN
from constant of 2560 to 1/4 of MAXSPRITES.
...
* Mods like Blood's Eviction are pushing these limits hard. Bumping the onscreen limit resolved recurring crash on `sstation.map` with no apparent ill-effects.
2021-07-25 15:38:51 +10:00
Mitchell Richters
ffe62da3c7
- Blood: Add some nullptr checks to the aiPatrol*()
inline bools.
2021-07-25 15:37:50 +10:00
Mitchell Richters
7329cb8f1f
- Blood: Comment out bonk
code from 754554a493
to get things building for now.
2021-07-25 13:12:29 +10:00
NoOneBlood
754554a493
Increase kMaxSuperXSprites from 128 to 512.
...
Fix mirror (ROR) intialization so it won't crash if more than 1024 sectors used.
Fix random item generator so items that inherits TX ID won't send command at respawn.
Fix for things (400 - 433) that affected by modern physics so it won't return to vanilla physics after getting damage.
Fix kTeleportTarget so teleported sprites won't stuck in floors or ceilings.
Corpses won't gib as gargoyles anymore (gModernMap).
kModernCondition:
- remove bool comparison (condCmpb).
- remove no extra comparison (condCmpne).
- remove "else if" search at level start.
- add global (game) conditions type.
- add more conditions.
- make error report a bit more informative.
Add more options and damage effects for kModernSpriteDamager.
Add more options for kModernMissileGen and allow to spawn projectile on TX ID sprites location.
Add more options and vertical wind processing for kModernWindGen.
Add more options and effects for kModernEffectGen.
Allow kMarkerDudeSpawn to spawn enemies on TX ID sprites location (gModernMap).
Allow kModernCustomDudeSpawn to spawn dude on TX ID sprites location.
Add Screen and Aim trigger flags for sprites that can be triggered with Sight (gModernMap).
Patrolling enemies:
- add turn AI state.
- add "return back" option for path markers.
- add "turning while waiting" option for markers.
- make enemies to hear some sounds assuming that player generates and hears it too.
- add kModernStealthRegion type to affect current spot progress velocity.
- replace AI's CanMove and aiChooseDirection to a better versions.
- make flying enemies to not spin around the marker.
- treat Phantasm as flying enemy!
- allow to continue patrol when falling in water.
Fix compile warnings
Various minor fixes / cleanup.
2021-07-25 13:11:55 +10:00
Mitchell Richters
a55b8f716d
- Blood: Repair some missing nullptr checks causing a crash upon reloading after dying.
...
* Reported by Spill.
2021-07-24 21:39:29 +10:00
Mitchell Richters
ef05eec531
- Change a68d5aae70
to not do a leading zero, but add an extra space of frameDelay
less than 10.
...
* Thanks, Graf. It's better :)
2021-07-24 17:51:14 +10:00
Christoph Oelckers
8e8b3a32fe
- fixed initialization pf upscale state properly.
...
This avoids indirectly calling FlushAll during startup.
2021-07-24 09:10:21 +02:00
Christoph Oelckers
ccce75667e
Revert "- Remove CVAR_NOINITCALL
bit from gl_texture_hqresize*
CVARs."
...
This reverts commit e03d532670
.
2021-07-24 09:08:29 +02:00
Mitchell Richters
e03d532670
- Remove CVAR_NOINITCALL
bit from gl_texture_hqresize*
CVARs.
...
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=72466 .
2021-07-24 15:58:05 +10:00
Mitchell Richters
a68d5aae70
- Add leading zero to statFPS()
output (vid_fps
) so that the text doesn't bounce continually when alternating between 10 ms and <10 ms.
2021-07-24 15:40:47 +10:00
alexey.lysiuk
56d313f08d
- use SDL Vulkan window flag directly
2021-07-21 17:37:52 +03:00
Vanfanel
2aea69b48a
Pass the missing fullscreen flag when creating a Vukan window.
2021-07-21 14:41:28 +03:00
Mitchell Richters
d9a7465c08
- SW: Remove gi->FreeGameData()
from game as its inside code wasn't freeing game data but level data already freed in gi->FreeLevelData()
.
...
* This was causing `GameMain()` to try to call `TerminateLevel()` after tile data had been freed, causing a hard stop.
* Fixes #464 .
2021-07-20 20:11:29 +10:00
Mitchell Richters
c5f63b95e5
- Capitalise CPART07.AR_
and CPART15.AR_
in ProcessOptions()
. The original files are in capitals and this is important as POSIX systems are case-sensitive. We can't cater towards every use-case but this should cover most bases.
...
* Fixes #308 .
2021-07-20 19:06:45 +10:00
Mitchell Richters
af9f2f3eb6
- Duke: Ensure gi->NextLevel()
sets the skill level upon invocation.
2021-07-20 18:55:16 +10:00
Mitchell Richters
675356be1a
- Ensure g_nextskill
is used everywhere so that setting skill for next level works properly.
2021-07-20 18:51:34 +10:00
Mitchell Richters
33845c4a23
- Add skill
CCMD to return player's current skill, while also being able to set skill for next game.
...
* Fixes #332 .
2021-07-20 18:50:58 +10:00
Mitchell Richters
77630dcbc7
- Rename DeferedStartGame()
to DeferredStartGame()
.
2021-07-20 18:43:17 +10:00
Mitchell Richters
4ac1376b9f
- Make naming of multiplayer episode exclusion stuff from d0e6a7ea29
more generic and exclude invalid episodes from "Duke It Out in DC", "Duke Nuclear Winter" and "Duke Caribbean".
2021-07-19 12:24:47 +10:00
Mitchell Richters
0f5243c39e
- Blood: Lock input after setting angle/horizon targets in nnexts.cpp code, then unlock in ProcessInput()
where resetForcedSyncInput()
is called.
2021-07-18 19:26:24 +10:00
Mitchell Richters
ca65c4c9da
- Allow ticker to lock input to player's angle and horizon without having to force use of synchronised input.
2021-07-18 19:25:41 +10:00
Mitchell Richters
58ed7f8745
- Blood: Restore original horizon algorithm in trPlayerCtrlSetLookAngle()
and adjust to Raze's backend input code.
2021-07-18 18:52:21 +10:00
Mitchell Richters
b4af9e87c1
- Blood: Make delirium rotscrnang smoother with use of more precision.
2021-07-18 18:13:48 +10:00
Mitchell Richters
c62e5db2bc
- Blood: Fix angle issues with NHIS.
2021-07-18 17:35:11 +10:00
Mitchell Richters
9432f9ec90
- Blood: Add nullptr check for actor2
in ProcessTouchObjects()
.
...
* Fixes crash during testing of NHIS.
2021-07-18 16:56:49 +10:00
Mitchell Richters
bcff74f5e4
Revert "- Duke: Restore a little bit of original code to make comparisons between us and the source easier."
...
This reverts commit 7607190dad
.
* Not good in hindsight... We need the actual value from the backend to ensure we can match up against `WeaponSel_Next`/`WeaponSel_Prev`/`WeaponSel_Alt` as required.
2021-07-17 22:42:58 +10:00
Christoph Oelckers
4ee93de36c
- added 'endofgame' CCMD.
...
Not really good yet, but it does what's needed, i.e. write out the statistics for the current session.
2021-07-17 09:42:59 +02:00
Mitchell Richters
2a8e636066
- Exhumed: Extend 7b8dcde5d2
by showing the M60's clip/magazine amount available when cl_showmagamt 1
is set.
2021-07-17 14:57:43 +10:00
Mitchell Richters
6940384625
- Exhumed: Move pistol clip/magazine recalculation code that was added in 593bbe10ef
from FillWeapons()
to CheckClip()
.
2021-07-17 14:57:00 +10:00
Mitchell Richters
052429f350
- Exhumed: Change M60's clip/magazine capacity from 99 to 100 to better match the max ammo capacity of the weapon. This does not increase the player's available ammunition.
2021-07-17 14:56:05 +10:00
Mitchell Richters
f9b75b1aa9
- Exhumed: Make FillWeapons()
fill the ammo count to the maximum allowed by the game for all weapons (300).
2021-07-17 14:54:36 +10:00
Mitchell Richters
7607190dad
- Duke: Restore a little bit of original code to make comparisons between us and the source easier.
2021-07-17 12:12:36 +10:00
Mitchell Richters
ec20f66eda
- Duke/RR: Always ensure player's wantweaponfire
is reset to -1
after switching weapon.
...
* Fixes #333 .
2021-07-17 12:12:12 +10:00
Mitchell Richters
0bb0896985
- Duke: Fix BOSS2 (Cycloid Emperor) killing himself issue by removing some lines left behind from a2e3bb5725
.
...
* Fixes #455 .
2021-07-17 10:56:21 +10:00
Mitchell Richters
f022f197ab
- Blood: Repair weapon switching issue by adding missing guard from 6980e8b355
that got lost during e375c799ce
.
...
* Fixes #366 .
2021-07-17 09:14:08 +10:00
Mitchell Richters
d77e143ee8
- allow palette emulation for indexed hightiles.
2021-07-17 07:40:13 +10:00
Christoph Oelckers
3e76f71f02
- support for indexed hightiles.
2021-07-17 07:40:05 +10:00
Mitchell Richters
d0e6a7ea29
- Allow CON-based games to have multiplayer episodes filtered from menu.
...
* Fixes #461 .
* Fixes #462 .
2021-07-16 20:55:29 +02:00
Mitchell Richters
593bbe10ef
- Exhumed: Ensure FillWeapons()
recalculates the pistol clip amount after filling.
...
* When cheating, this wasn't done which lead to the clip having 6 rounds when via modulo it should have only had 3.
2021-07-17 00:11:37 +10:00
Mitchell Richters
7b8dcde5d2
- Exhumed: Make use of cl_showmagamt
.
...
* Fixes #463 .
2021-07-16 23:52:56 +10:00
Mitchell Richters
76554f5f4d
- Repair incorrect method call to IniFile
class from 6576adb80b
.
...
* Fixes #473 .
2021-07-16 23:01:07 +10:00
Christoph Oelckers
a614f741fd
- relaxed consistency checks for VOC files.
...
Rampage Warrior contains a few sounds that failed validation so this check does not exist in the original 3D Realms sound code.
2021-07-14 23:22:41 +02:00
Christoph Oelckers
6576adb80b
- Blood: validate .ini files before using them.
...
They must at least have one "Episode?" section to be accepted.
2021-07-13 12:34:35 +02:00
Christoph Oelckers
7a99b6376e
- forgot to save this...
2021-07-13 12:31:14 +02:00
Christoph Oelckers
b06ad5c77f
- Blood: fixed order of initialization for voxels.
...
Just like Shadow Warrior it needs to load its voxel table before .def files.
2021-07-13 12:11:17 +02:00
Christoph Oelckers
e3737d3330
- fixed texture lookup for hightile lookup.
...
Not all commands had the proper flags to also look in the root folder.
2021-07-13 08:38:24 +02:00
Mitchell Richters
5af06923d8
- Blood: Revise 6018213c71
and use the proper volume flag VF_HIDEFROMSP
to hide multiplayer episodes from the menu.
2021-07-11 22:30:59 +10:00
Mitchell Richters
5441272bec
- SW: Create inline function pspPresentRetractScale()
to scale the rate at which weapons present and retract based on the current tile's height vs. the original asset's height.
...
* Reported to me by @Phredreeke, who had it reported to him from someone else.
* The sword in the widescreen assets pack we load by default has a height of 216px vs 136px of the default tile.
* Because the game presents and retracts weapons at a set rate, the time it took to swap between the sword and other weapons took ~1.58x longer than the original assets.
* This speeds up the present/retract rate based on the loaded asset's height to ensure the weapon switches in the same elapsed time.
* This may be extended to other weapons if required but the sword is the only one I'm aware of that has more height.
* Confirmed no matter what motion the sword was performing, `psp->picndx` was always 2080 so we shouldn't need a hashtable or anything like this.
2021-07-11 19:22:59 +10:00
Christoph Oelckers
8a8379f5fc
- Backend update from GZDoom.
2021-07-11 09:50:36 +02:00
alexey.lysiuk
577c6cb374
- fixed crash when parsing malformed .def file
...
This fixes #439
2021-07-11 10:16:26 +03:00
Christoph Oelckers
a98507f737
- fixed endless loop in replay gain analyzer when getting passed music with an unhandled sample rate.
2021-07-11 09:11:59 +02:00
Christoph Oelckers
1b45c83d59
- SW: fixed countermeasure for empty lower skills
2021-07-11 08:24:10 +02:00
Mitchell Richters
3e30869aeb
- Remove some remains of Redneck Deer Huntin'.
2021-07-11 12:44:31 +10:00
Mitchell Richters
32283037ed
- Use isWW2GI()
in more places.
2021-07-11 12:42:33 +10:00
Mitchell Richters
fe652c9348
- Use isNamWW2GI()
in more places.
2021-07-11 12:41:08 +10:00
Mitchell Richters
aa13b50504
- Use isRR()
in more places.
2021-07-11 12:40:46 +10:00
Mitchell Richters
6894be4ad1
- Use the new isSWALL()
wrapper everywhere.
2021-07-11 12:40:01 +10:00
Mitchell Richters
ffba10a7c5
- SW: Set default skill level to match original release and what the manual says is default.
2021-07-11 12:08:12 +10:00
Mitchell Richters
172b77b9e7
- SW: Ensure PANEL_SPRITEstruct
's ox
/oy
values are in the save data.
2021-07-11 12:05:53 +10:00
Mitchell Richters
9d64779da0
- SW: Replace all uses of NULL
with nullptr
.
2021-07-10 22:25:18 +10:00
Mitchell Richters
e3f2d76378
- SW: Declare and initialise variables in pWeaponBob()
vs declaring and initialising later on to reduce warnings about variables being uninitialised.
2021-07-10 22:16:51 +10:00
Mitchell Richters
b5b9452adb
- Optimise fFindDistance2D()
to multiply by inverse rather than divide by a constant.
2021-07-10 22:08:48 +10:00
Mitchell Richters
5d7938c24e
- SW: Rename cl_smoothsway
to cl_swsmoothsway
and enable by default
2021-07-10 22:07:05 +10:00