Commit graph

8210 commits

Author SHA1 Message Date
Christoph Oelckers
8c01c363a9 - replaced remaining access to sprite[] and xsprite[] in processed code.
# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:13:28 +02:00
Christoph Oelckers
c1d52f7393 - replaced all occurences of gDudeExtra and moved that struct into DBloodActor.
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-08-23 19:13:28 +02:00
Christoph Oelckers
4fed1debe4 - moveDude part 1. 2021-08-23 19:13:28 +02:00
Christoph Oelckers
3aa9d6f8be - MoveThing.
# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:12:58 +02:00
Christoph Oelckers
6d958135e0 - give TMap a proper move constructor and assignment operator. 2021-08-23 19:05:31 +02:00
carnivoroussociety
e74e581637 Fix issues with self collision on MoveMissile()
Only with new accurate clipmove() use
2021-08-23 18:40:38 +02:00
Mitchell Richters
4ffd02b1e1 - Blood: Declare qavGetInterpType() as static within qav.cpp. 2021-08-23 21:00:45 +10:00
Mitchell Richters
276c000f9f - Blood: Add mechanism to be able to force QAV interpolation based on picnum for testing purposes and not for end-user usage. 2021-08-23 20:54:30 +10:00
carnivoroussociety
2365be7c95 Add modern map kViewEffectSpotProgress support
Fix kViewEffectShowWeapon positional/angle offset for voodoo doll
2021-08-23 19:28:32 +10:00
Mitchell Richters
1d0924e45a - Fix invocation name in FileSystem::GetLongName() error output.
* Thanks to @Gaerzi for spotting this.
2021-08-23 18:55:42 +10:00
Mitchell Richters
a920fc5aef - Add support for first and last keyword for defineqav parser when process interpolate ignore block. 2021-08-23 15:34:30 +10:00
Mitchell Richters
23be5ffe8c - Add support for all keyword for defineqav parser when process interpolate ignore block, and ensure the lowest value can't be below 0. 2021-08-23 15:06:04 +10:00
Mitchell Richters
e68b793852 - Add some extra safety to defineqav parser to ensure some unsupported actions can't be performed. 2021-08-23 14:19:33 +10:00
Mitchell Richters
62e1fdf709 - Blood: Fix handling of QAVs defined as loopable while interpolating. 2021-08-23 12:05:13 +10:00
Mitchell Richters
ddc7b3d730
Merge branch 'master' into master 2021-08-23 11:40:05 +10:00
Mitchell Richters
ebdc9c31f2 - Blood: Ensure new QAV timer doesn't process while game is paused. 2021-08-23 11:05:08 +10:00
Mitchell Richters
1ee6fd76c4 Merge branch 'blood-qavrework'
# Conflicts:
#	source/core/gamecvars.cpp
#	source/core/gamecvars.h
#	source/games/blood/src/weapon.cpp
2021-08-23 11:02:09 +10:00
Mitchell Richters
d7450e12f0 - Blood: Re-add interpolated weapon QAVs in an externalised, disabled-by-default fashion. 2021-08-23 10:55:08 +10:00
Mitchell Richters
6975997ae3 - Blood: Remove weaponQAV[] array entirely. 2021-08-23 10:49:47 +10:00
Mitchell Richters
5bfdd74844 - Blood: Revert "- Blood: Ensure looped QAVs interpolate using last frame in the array." 2021-08-23 09:32:00 +10:00
Mitchell Richters
916241dcdb - Blood: Implement defineqav DEF parser with hookup to game-side code. 2021-08-23 09:00:47 +10:00
Mitchell Richters
da78160cd1 - Blood: Revert code to dump out QAVs to disk and remove all hard-coded interpolation repairs. 2021-08-22 21:20:15 +10:00
carnivoroussociety
72225c9b8c Added various missing item/ammo types to common_game.h
Renamed kAmmoItemVoodooDoll->kItemAmmoVoodooDoll
Renamed kMissileFireballNapam->kMissileFireballNapalm
2021-08-22 17:49:02 +10:00
Mitchell Richters
499e400cdb - Blood: Add command-line switch to dump repaired QAVs back out to disk so that they can be included in raze.pk3.
* This required restoring the original struct temporarily to ensure contents dumped to disk were 1:1 with how they came in.
2021-08-22 15:22:58 +10:00
Mitchell Richters
907e0974e9 - Add GetLongName() method to FileSystem class. 2021-08-22 15:03:28 +10:00
Mitchell Richters
a681aad281 - Blood: Add interpolation repair and properties for kQAVLITEFLAM (res_id: 5). 2021-08-22 15:03:20 +10:00
Mitchell Richters
6256de8013 - Blood: Extend interpolation repair for kQAVBUNUP (res_id: 16) to add missing tile in first frame. 2021-08-22 11:23:29 +10:00
Mitchell Richters
2edbd3447c - Blood: Extend interpolation properties for kQAVBUNFUSE (res_id: 21) to stop interpolating all tiles after frame 6 and not just tile index 4. 2021-08-22 10:55:01 +10:00
Mitchell Richters
7e8ec89a68 - Blood: Add interpolation repair for kQAVSTAFDOWN (res_id: 119). 2021-08-22 08:18:17 +10:00
Mitchell Richters
a03848d1f8 - Blood: Add interpolation repair for kQAVSTAFIRE4 (res_id: 116). 2021-08-22 08:18:14 +10:00
Mitchell Richters
fb084734e3 - Blood: Add interpolation repair for kQAVVDSPEL1 (res_id: 110). 2021-08-22 08:18:00 +10:00
Mitchell Richters
0172373650 - Blood: Add interpolation repair for kQAVVDDOWN (res_id: 109). 2021-08-22 08:17:50 +10:00
Mitchell Richters
95878bcea1 - Blood: Add interpolation repair for kQAVVDFIRE4 (res_id: 106) and kQAVVDFIRE5 (res_id: 107). 2021-08-22 08:17:47 +10:00
Mitchell Richters
d34fd124b7 - Blood: Add interpolation repair for kQAVVDFIRE3 (res_id: 105). 2021-08-22 08:17:44 +10:00
Mitchell Richters
a3a2cd8da8 - Blood: Add interpolation repair for kQAVVDFIRE1 (res_id: 103) and kQAVVDFIRE2 (res_id: 104). 2021-08-22 08:17:37 +10:00
Mitchell Richters
dd1e716082 - Blood: Extend backported voodoo doll fix from BloodGDX to always use kQAVVDIDLE2 when the player is moving. As kQAVVDIDLE2 has moving frames and is not a static idle animation, call it via StartQAV() so that weaponTimer is started. 2021-08-22 08:17:33 +10:00
Mitchell Richters
cd092153eb - Blood: Mark kQAVVDIDLE2 (res_id: 102) as being loopable. 2021-08-22 08:17:14 +10:00
Mitchell Richters
803e9f8a04 - Blood: Add interpolation repair for kQAVVDIDLE2 (res_id: 102). 2021-08-22 08:16:41 +10:00
Mitchell Richters
1fd66681d2 - Blood: Add interpolation repair for kQAVVDUP (res_id: 100). 2021-08-22 08:15:53 +10:00
Mitchell Richters
3a656c91cb - Blood: Mark kQAVNAPFIRE (res_id: 91) as being loopable. 2021-08-22 08:15:43 +10:00
Mitchell Richters
d4fe734afa - Blood: Add interpolation repair for kQAVNAPUP (res_id: 89). 2021-08-22 08:14:47 +10:00
Mitchell Richters
99ab8fa726 - Blood: Add interpolation repair for kQAV2SGUNPRE (res_id: 86). Thanks again to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 08:14:45 +10:00
Mitchell Richters
ed92ec9af9 - Blood: Add interpolation repair for kQAV2SGUNALT (res_id: 85). Thanks again to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 08:14:42 +10:00
Mitchell Richters
b2637050e8 - Blood: Mark kQAV2SGUNFIR (res_id: 84) as being loopable. 2021-08-22 08:14:33 +10:00
Mitchell Richters
22e348613f - Blood: Add interpolation repair for kQAV2SGUNFIR (res_id: 84). Thanks to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 08:14:05 +10:00
Mitchell Richters
073f0d953f - Blood: Add interpolation repair for kQAV2SGUNUP (res_id: 82). 2021-08-22 08:14:03 +10:00
Mitchell Richters
7bbf478859 - Blood: Add interpolation repair for kQAVSGUNPOST (res_id: 80). Thanks again to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 08:14:00 +10:00
Mitchell Richters
df3bc4d90a - Blood: Add interpolation repair for kQAVSGUNPRE (res_id: 79). Thanks again to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 08:13:58 +10:00
Mitchell Richters
1033049b8c - Blood: Add interpolation repair for kQAVSGUNFIR4 (res_id: 78). Thanks again to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 08:13:49 +10:00
Mitchell Richters
1f6bfd7693 - Blood: Mark kQAVSGUNFIR1 (res_id: 77) as being loopable. 2021-08-22 07:58:40 +10:00
Mitchell Richters
2ff1bdfd7d - Blood: Add interpolation repair for kQAVSGUNFIR1 (res_id: 77). Thanks to @Phredreeke for the tiles with overlays baked in for this to work properly. 2021-08-22 07:58:14 +10:00
Mitchell Richters
5160b7649c - Blood: Add interpolation repair for kQAVSGUNIDL1 (res_id: 75). 2021-08-22 07:58:11 +10:00
Mitchell Richters
7eca7ea166 - Blood: Add interpolation repair for kQAVSGUNUP (res_id: 74). 2021-08-22 07:58:09 +10:00
Mitchell Richters
df5185038f - Blood: Mark kQAV2TOMALT (res_id: 73) as being loopable. 2021-08-22 07:57:57 +10:00
Mitchell Richters
c46c52a724 - Blood: Add interpolation properties for kQAV2TOMFIRE (res_id: 71). 2021-08-22 07:57:57 +10:00
Mitchell Richters
c6c7ae76d6 - Blood: Mark kQAVTOMSPRED (res_id: 67) as being loopable. 2021-08-22 07:57:01 +10:00
Mitchell Richters
6998772487 - Blood: Add interpolation properties for kQAVTOMFIRE (res_id: 66). 2021-08-22 07:56:23 +10:00
Mitchell Richters
3cd868c9f9 - Blood: Add interpolation repair for kQAV2SHOTFIR (res_id: 62). 2021-08-22 07:55:57 +10:00
Mitchell Richters
cdff574ef6 - Blood: Add interpolation repair for kQAV2SHOTF2 (res_id: 61). 2021-08-22 07:55:54 +10:00
Mitchell Richters
bfa509e45e - Blood: Add interpolation properties for kQAVSHOTL1 (res_id: 57). 2021-08-22 07:55:42 +10:00
Mitchell Richters
ba91590028 - Blood: Add interpolation repair for kQAVSHOTUP (res_id: 50). 2021-08-22 07:55:14 +10:00
Mitchell Richters
e00f76b0aa - Blood: Add interpolation repair for kQAVFLAR2FIR (res_id: 48). 2021-08-22 07:55:11 +10:00
Mitchell Richters
e0bcd2d9e9 - Blood: Add interpolation repair for kQAVFLARDOWN (res_id: 44). 2021-08-22 07:55:09 +10:00
Mitchell Richters
37f7bcde20 - Blood: Mark kQAVFLARFIR2 (res_id: 43) as being loopable. 2021-08-22 07:54:08 +10:00
Mitchell Richters
e70b395d76 - Blood: Add interpolation repair for kQAVFLARFIR2 (res_id: 43). 2021-08-22 07:53:38 +10:00
Mitchell Richters
dfa3a52fa8 - Blood: Add interpolation repair for kQAVFLARUP (res_id: 41). 2021-08-22 07:53:35 +10:00
Mitchell Richters
7e3307eb33 - Blood: Add interpolation repair for kQAVREMTHRO (res_id: 39). 2021-08-22 07:53:33 +10:00
Mitchell Richters
6d888bebd9 - Blood: Add interpolation repair for kQAVREMDROP (res_id: 38). 2021-08-22 07:53:30 +10:00
Mitchell Richters
92c5a53074 - Blood: Mark kQAVREMIDLE1 (res_id: 36) and kQAVREMIDLE2 (res_id: 37) as being loopable. 2021-08-22 07:52:55 +10:00
Mitchell Richters
55b6453415 - Blood: Add interpolation repair for kQAVREMDOWN2 (res_id: 34). 2021-08-22 07:51:53 +10:00
Mitchell Richters
226ba1477a - Blood: Add interpolation repair for kQAVREMDOWN1 (res_id: 33). 2021-08-22 07:51:50 +10:00
Mitchell Richters
3cc2a6a486 - Blood: Add interpolation repair for kQAVREMUP1 (res_id: 30) and kQAVREMUP2 (res_id: 31). 2021-08-22 07:51:44 +10:00
Mitchell Richters
679903b90f - Blood: Add interpolation repair for kQAVPROXDOWN (res_id: 26). 2021-08-22 07:51:40 +10:00
Mitchell Richters
34f31e535c - Blood: Add interpolation repair for kQAVPROXUP (res_id: 25). 2021-08-22 07:51:36 +10:00
Mitchell Richters
8944f2e57d - Blood: Add interpolation repair for kQAVBUNTHRO (res_id: 23). 2021-08-22 07:51:34 +10:00
Mitchell Richters
7f9f57e4e6 - Blood: Add interpolation repair for kQAVBUNDROP (res_id: 22). 2021-08-22 07:51:30 +10:00
Mitchell Richters
54cdc8ffc3 - Blood: Add interpolation repair and properties for kQAVBUNFUSE (res_id: 21). 2021-08-22 07:50:45 +10:00
Mitchell Richters
da95af0c04 - Blood: Add interpolation repair for kQAVBUNDOWN2 (res_id: 19). 2021-08-22 07:50:16 +10:00
Mitchell Richters
cb62692e37 - Blood: Add interpolation repair for kQAVBUNUP2 (res_id: 18). 2021-08-22 07:50:14 +10:00
Mitchell Richters
037fcfd446 - Blood: Add interpolation repair for kQAVBUNDOWN (res_id: 17). 2021-08-22 07:50:10 +10:00
Mitchell Richters
33d63724f7 - Blood: Add interpolation repair for kQAVBUNUP (res_id: 16). 2021-08-22 07:50:06 +10:00
Mitchell Richters
28cbec5704 - Blood: Add interpolation repair and properties for kQAVCANFIRE2 (res_id: 12). 2021-08-22 07:49:49 +10:00
Mitchell Richters
bcfcbf2666 - Blood: Add interpolation repair for kQAVCANDOWN (res_id: 11). 2021-08-22 07:48:57 +10:00
Mitchell Richters
f5533374ca - Blood: Disable interpolation for kQAVLITEFLAM (res_id: 5). 2021-08-22 07:48:48 +10:00
Mitchell Richters
6d06f002bc - Blood: Mark kQAVPFORK (res_id: 2) as being loopable. 2021-08-22 07:47:42 +10:00
Mitchell Richters
e273b93d12 - Blood: Overhaul entire QAV interpolation setup in preparation to exposing to DEF parsing. 2021-08-21 21:25:33 +10:00
carnivoroussociety
8ec6cdaf91 Renamed SpidPoisonTarget to SpidPoisonPlayer 2021-08-21 20:53:38 +10:00
carnivoroussociety
44e6ccb3d4 Eliminate misused DemoRecordStatus usages 2021-08-21 20:29:01 +10:00
Mitchell Richters
f67a09680e - Blood: Rename CVAR cl_bloodhudinterp to cl_bloodqavinterp. 2021-08-21 19:55:02 +10:00
carnivoroussociety
1f6181fa99 Renamed untitled spider functions 2021-08-21 19:52:24 +10:00
Mitchell Richters
9251ce11c7 - Blood: Remove unused isOriginalQAV() function from weapon.cpp. 2021-08-21 13:35:41 +10:00
Mitchell Richters
20ea0acbec - Add Contains() method to TArray class, returning a true/false bool as appropriate. 2021-08-21 13:34:58 +10:00
carnivoroussociety
cd53e4c966 Fix teleport triggers not updating player angle 2021-08-21 12:44:01 +10:00
carnivoroussociety
28d7f0de58 Do not use accurate clipmove for flame missiles
Changes gameplay too much
2021-08-19 22:34:49 +10:00
carnivoroussociety
6d4a3243b7 Lower flame damage if using accurate clipmove
The eduke clipmove will cause a higher hit %, lower all flame damage from 8->3 to compensate with overall higher sprite hit result
2021-08-19 22:18:52 +10:00
carnivoroussociety
f0627fa6c2 enginecompatibilitymode -> enginecompatibility_mode 2021-08-19 20:44:13 +10:00
carnivoroussociety
0e0c4e692f Set thing/missile to use accurate clipmove 2021-08-19 20:38:31 +10:00
carnivoroussociety
db9a413f21 Added new cl_bloodvanillaenemies CVAR
GetClosestSpriteSectors(): If newSectCheckMethod is set, then always test midpoints at least once
Use new CVAR for tiny Caleb/burning cultists/Cerberus fixes
Do not use new GetClosestSpriteSectors() fix for teslaHit() if vanilla explosions is set
Do not use GetClosestSpriteSectors() fix for enemies sight scanning if vanilla enemies is set
2021-08-19 14:26:53 +10:00
carnivoroussociety
24b5673130 GetClosestSpriteSectors - Fixed typo with nLength check 2021-08-18 22:34:20 +02:00
carnivoroussociety
440fa3b70e GetClosestSpriteSectors - Fixed typo with nLength check 2021-08-19 03:21:41 +10:00
carnivoroussociety
6606f0bc5a Improved GetClosestSpriteSectors() detection
Enables/disables new sector searching behavior for dude owned explosions
Added new CVAR cl_bloodvanillaexplosions
Swap ExplosBehavior menu settings
2021-08-18 15:52:15 +02:00
Mitchell Richters
968708a649 - Blood: Remove the extern for weaponQAV[] and move kQAVEnd enum into new enum from 9e84dd1ef6051f4e54d99dcfc6e3468560175e16 2021-08-18 20:02:35 +10:00
Mitchell Richters
84496029a9 - Blood: Replace a few missed numerical constants with enums. 2021-08-18 20:02:32 +10:00
Mitchell Richters
77704d54d9 - Blood: Replace all numerical constants in calls to StartQAV() with enum values. 2021-08-18 20:02:30 +10:00
Mitchell Richters
6a2a0da819 - Blood: Replace all numerical constants for player's weaponQav with enum values. 2021-08-18 20:02:27 +10:00
Mitchell Richters
cd5e01818a - Blood: Replace all numerical constants for player's nextWeapon with enum values. 2021-08-18 20:02:24 +10:00
Mitchell Richters
6f08eb2292 - Blood: Replace all numerical constants for player's newWeapon with enum values. 2021-08-18 20:02:22 +10:00
Mitchell Richters
ba94614078 - Blood: Replace all numerical constants for player's curWeapon with enum values. 2021-08-18 20:02:20 +10:00
Mitchell Richters
d939602875 - Blood: Define enum values for weapon numbers. Not in use yet. 2021-08-18 20:02:14 +10:00
Mitchell Richters
6fec5d582e - Blood: Define enum values for QAVs. Not in use yet. 2021-08-18 20:01:34 +10:00
Mitchell Richters
db5aa4ba17 - Blood: Backport voodoo doll fix from BloodGDX. 2021-08-18 20:00:52 +10:00
Mitchell Richters
b01cef7f15 - Blood: Remove lastframetic hack from QAV::Draw() added in 99508e6f15 since we now use proper timing code. 2021-08-18 20:00:49 +10:00
Mitchell Richters
24fbaa527c - Blood: Re-time weapon and scene QAV code based on reworked timer and QAV struct code. 2021-08-18 20:00:44 +10:00
Mitchell Richters
ab502ebc66 - Blood: Ensure looped QAVs interpolate using last frame in the array. 2021-08-18 20:00:36 +10:00
Mitchell Richters
c75778c08d - Blood: Re-time menu's blood dripping based on reworked timer and QAV struct code. 2021-08-18 20:00:32 +10:00
Mitchell Richters
502b76af70 - Blood: Parse the values of the QAV files instead of casting the binary data so we can extend the struct. 2021-08-18 20:00:22 +10:00
Christoph Oelckers
adf9747e5b - Blood: removed redundant STAT_Update call in StartLevel.
This was killing the level times for the 'printstats' display.
2021-08-17 23:44:46 +02:00
carnivoroussociety
a29303cde5 Don't trigger fall scream after player has died 2021-08-16 09:05:51 +02:00
carnivoroussociety
7ac662e0c8 Apply burning bypass to correct sprite type 2021-08-15 12:24:41 +02:00
carnivoroussociety
bd98096527 Fix burning Caleb's state 2021-08-15 12:24:41 +02:00
carnivoroussociety
52025fce68 Fixed burning Caleb state 2021-08-15 12:24:41 +02:00
carnivoroussociety
cd88bb1a67 Fixed burning cultists switching type in water
Fixed glitched burning enemy state
Fixed burning Caleb using innocent burning sprite
2021-08-15 12:24:41 +02:00
Christoph Oelckers
38c9d3f702 - Exhumed: fixed crash when ending the game. 2021-08-14 10:40:14 +02:00
Christoph Oelckers
a5e3a85c98 - changed palette lookup to consider the remapping of color 0 to 255.
This is to ensure that black maps to the proper index, even if there's duplicates.
2021-08-14 10:26:04 +02:00
Christoph Oelckers
bad2c2e55f - backend update from GZDoom
* replacement of 'long' in string code.
* palette removal in V_GetColor.
* fixes to DShape2D buffer management.
2021-08-14 10:04:45 +02:00
Christoph Oelckers
c4c9f4acbe - call ColorMatcher.Pick instead of BestColor when remapping a voxel.
This was the only place in the engine using BestColor directly with the game palette.
2021-08-14 09:49:03 +02:00
Christoph Oelckers
5d3f7947bf - avoid calling the node builder to triangulate degenerate sectors.
This tends to crash.
2021-08-14 09:48:05 +02:00
carnivoroussociety
c3d03f21da Cleaned underwater next/prev weapon fix 2021-08-14 07:59:14 +02:00
carnivoroussociety
1957fc53be Tweaked next/prev weapon behavior underwater 2021-08-14 07:59:14 +02:00
Christoph Oelckers
5aa27bad3b - flag SW's cutscenes as 'boss death only'. 2021-08-13 22:25:13 +02:00
Christoph Oelckers
d5c9768414 - append an empty line to thr RFS file to be parsed.
Looks like the parser needs the last line to be properly terminated.
2021-08-13 21:44:23 +02:00
carnivoroussociety
8765b583f0 Fix spray -> tnt -> spray animation bug 2021-08-12 15:15:35 +02:00
carnivoroussociety
715bca4d53 input.newWeapon -> newWeapon 2021-08-12 13:59:44 +02:00
carnivoroussociety
1a344fe09b Fix ignited spray/TNT issue when going underwater 2021-08-12 13:59:44 +02:00
Christoph Oelckers
23b8707fc2 - added means to define resource IDs in all container formats allowing long file names.
To define these, construct a file name like "basename.{resourceid}.extension", e.g. blaster.{65}.qav will define 'blaster.qav' with a resource ID of 65.
2021-08-11 12:04:53 +02:00
Christoph Oelckers
b2f7eb5b4f - fixed: Raze did not have gl_lights yet, but recent additions need this CVAR.
Put it in v_video.cpp so that it is in a common backend file.
2021-08-11 12:02:56 +02:00
Christoph Oelckers
8106d788f6 - backend update from GZDoom.
Fixes:
* do not strip 'filter' as a directory prefix.
* proper spacing for scaled sheet fonts.
* fix of transparent color in BMF fonts.
* fix restart button on error pane in Windows.
* do not skip over empty 'if's with a condition that would error out.
2021-08-11 10:28:21 +02:00
Mitchell Richters
4a70f6efd0 - Allow ticrate to be specified to timer code, while still defaulting to GameTicRate. Move out I_GetBuildTime() from common code to gamefuncs.h as part of this.
* Allow specification of floating point ticrates as it's possible Blood's QAVs could have a fractional ticrate.
2021-08-05 14:52:55 +10:00
Mitchell Richters
0d9afc1aaf - Extend menu's ImageScroller ZScript class with mAnimated and use with Blood for the help and credits menu. 2021-08-05 14:52:51 +10:00
Mitchell Richters
1ed1222e10 - Extend menu's ListMenu ZScript class with mAnimated already natively available, and use with Blood where BloodDripDrawer is defined.
* Finalises the interpolated blood dripping code changes from 9884d5f396.
2021-08-04 10:31:45 +10:00
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