Commit graph

8332 commits

Author SHA1 Message Date
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
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
Mitchell Richters
55cef642b6 - SW: Factor out bob coordinate backups. 2021-07-10 22:01:42 +10:00
Mitchell Richters
9575f8a3d3 - SW: Factor out panel interpolation backups; 2021-07-10 22:01:40 +10:00
Mitchell Richters
4d4946fb6b - SW: Factor out repeated panel coordinate math into inline functions. 2021-07-10 22:01:37 +10:00
Mitchell Richters
27f1e487a2 - SW: Remove fixed-point math from panel x/y coordinate updating. 2021-07-10 22:01:35 +10:00
Dino Bollinger
8dd0f947f7 Remove useless code introduced in bad17f29 2021-07-07 21:31:32 +02:00
Christoph Oelckers
62a5a720e8 - Check for maps with bad setup of their wall lists.
Lo Wang In Time's map 11 does not include wall 0 into its sector, which caused crashes when trying to triangulate this sector.
2021-07-06 10:29:24 +02:00
Christoph Oelckers
64fc0b66b2 - SW: added countermeasure to re-enable lower skills on mods not implementing them.
Aside from spawning the enemies from the lowest supported skill it will also reduce the threat level by reducing health of some enemies or by replacing the harder Ninja variants with the base type.
2021-07-06 10:26:43 +02:00
Christoph Oelckers
e5cb1976d3 - disable texture name truncation for textures/ directory.
Unlike Doom, a similar limit does not exist here and must not be enforced. Any texture from this folder needs to be usable by its full name without extension to be able to replace named tiles.
2021-07-05 22:39:24 +02:00
Mitchell Richters
1dbf34fe56 - Repair some potential issues from 1354d52c05 that might be causing issues with #455. 2021-07-04 21:06:13 +10:00
Christoph Oelckers
5d67987fe1 - don't attempt to decode animation frames at offsets beyond the end of the current page.
Copied from EDuke32.
2021-07-02 20:33:53 +02:00
Mitchell Richters
0724b3326c - SW: Promote PANEL_SPRITEstruct's xorig/yorig values from int to double to match x/ox and y/oy respectively.
* Makes bobbing a touch smoother.
* Removes 47 explicit casts.
2021-06-27 22:40:33 +10:00
Christoph Oelckers
5e96e955f3 - add hitscan only autoaim for SW.
# Conflicts:
#	source/games/sw/src/weapon.cpp
2021-06-26 12:22:10 +02:00
Christoph Oelckers
2af2d29084 - add hitscan only autoaim for SW. 2021-06-26 12:18:27 +02:00
Christoph Oelckers
e9b2bf9e4e - shortened the message for not found game data and restrict to non-Windows systems. 2021-06-26 12:10:46 +02:00
Hugo Locurcio
a10018bc36 Display game data path when no game data files are found
This helps users find the location where they should place
game data files.
2021-06-26 12:06:35 +02:00
Christoph Oelckers
4dd293d551 - zero-terminate the buffer for reading Blood's INI files. 2021-06-26 12:04:21 +02:00
Christoph Oelckers
0f7d3d0cbb - streamlined and fixed game startup with '-map' option.
* Blood: Initialize global pointers in app_init so that they are not NULL.
* consider Mapinfo data when checking for a given level name.
* removed redundant level name output.
2021-06-26 10:11:50 +02:00
Christoph Oelckers
63bc36e3c4 - renamed some constants.
Manually copied from NBlood because the underlying code has changed too much already.
2021-06-24 14:14:16 +02:00
Mitchell Richters
acadd716f8 - For Unix systems, ensure that the root of the player's .config directory is scanned for content, not just subdirectories.
* Fixes #430.
2021-06-24 20:47:14 +10:00
Mitchell Richters
b015bc0685 - Duke (RRRA): Fix alt weapon slot for CHICKEN_WEAPON and CROSSBOW_WEAPON.
* Fixes #440.
2021-06-24 18:56:12 +10:00
Mitchell Richters
39983f8144 - Fix maps loaded from the command line starting with corrupted sectors.
* Starting game same way `map` CCMD does it for now.
2021-06-24 18:50:10 +10:00
Mitchell Richters
9645009b28 - Fix -map command-line argument not working.
* Fixes #441.
2021-06-24 18:49:26 +10:00
Mitchell Richters
6018213c71 - Blood: Don't parse BloodBathOnly levels in the INI loader.
* Fixes #442.
2021-06-24 18:21:06 +10:00
Emile Belanger
b6e76337e0 Fix so small font is displayed correctly 2021-06-20 16:34:26 +02:00
Christoph Oelckers
0069af02e7 - use a slightly higher depth bias for translucent elements.
These can otherwise cause z-fighting when being used with non-translucent floor and wall sprites.
2021-06-13 09:39:07 +02:00
Christoph Oelckers
5556756d43 - map fix for Hickston Swamp (RR mod) E1L3:
Wall sprite is placed in the wrong sector which makes the new renderer's far stricter checks to reduce sprite flicker fail to position it correctly.
2021-06-13 09:32:30 +02:00
Christoph Oelckers
20ca676539 - RR: fixed crash in function that handles acts of mass destruction (like blowing up gas stations.)
With bad setups 'spr' could be left uninitialized. This crashed E1L1 of 'The Hickston Swamp' mod.
2021-06-11 23:20:50 +02:00
Christoph Oelckers
15635ec7c8 - fixed crash when trying to triangulate broken sectors.
In these cases it is possible that the wall index may go below 0.
2021-06-11 23:18:46 +02:00
Christoph Oelckers
d270d75d74 - re-added line of code that got lost during refactoring. 2021-06-10 00:14:04 +02:00
Christoph Oelckers
4b35a30de5 - RR: fixed the bowling lane lights.
Tiles had not been made writable.
Also renamed a few bowling related things.
2021-06-09 23:53:05 +02:00
Christoph Oelckers
1cea743536 - restrict lookup of engine/engine.def to the main game files.
Mods should not use this to load their data.
2021-06-09 08:38:40 +02:00
Christoph Oelckers
9d36e61d3f - depth bias fixes. 2021-06-09 00:47:13 +02:00
Christoph Oelckers
5b38343407 - fixed sprite exclusion logic in getzrange.
This was using the wrong flag.
2021-06-09 00:31:54 +02:00
Christoph Oelckers
a32489be31 - wall sprite positioning tweaks.
Turns out that a distance of one Build unit from a wall alone is not enough to render them glitch-free, some depth bias is still needed.
2021-06-09 00:31:54 +02:00
Christoph Oelckers
89344a6023 - Exhumed: precache all frames of tile animations. 2021-06-02 21:31:38 +02:00
Christoph Oelckers
207298aeb4 - fixed compilation (again.) 2021-06-02 21:00:39 +02:00
NoOneBlood
73683b3ebe Remove viewSetSystemMessage() when setting dude flags via command
# Conflicts:
#	source/blood/src/nnexts.cpp
2021-06-02 20:52:49 +02:00
Christoph Oelckers
86082d4c10 - fixed last commit 2021-06-02 20:52:48 +02:00
NoOneBlood
f433c6ee11 Use dude physics as base for debris physics
Remove dude flags commands
Update kModernSlopeChanger
Add stealth dude flag
Update for sector pause/continue motion

# Conflicts:
#	source/blood/src/db.h
#	source/blood/src/nnexts.cpp
#	source/blood/src/nnexts.h

# Conflicts:
#	source/blood/src/nnexts.cpp
2021-06-02 20:52:48 +02:00
Christoph Oelckers
7fa690082e - fixed cherry picked commit.
# Conflicts:
#	source/core/gamecontrol.h
2021-06-02 20:52:47 +02:00
NoOneBlood
3a59243ea0 - Fixed getPlayeById() function in multiplayer.
- Fixed debris physics flags was not properly reset on level restart.
- Added new modern type "kModernSlopeChanger" that can manipulate sector and sprite slopes.
- Allow to drop items and keys for players in multiplayer (gModernMap only).
- Added event commands to manipulate dude flags.
- Patrol enemies (xsprite.dudeFlag4, gModernMap only):
  - Added path markers following.
  - Added stealth mechanics.
  - Added spot target progress bar.
  - Added alarm dude flag.
  - Added blind dude flag.
  - Added deaf dude flag.
  - Added conditions for kModernCondition related to patrol enemies.
- kModernDamager can work like generator and damage anyone in sectors or in map.
- kSectorDamage is not does the damage if in Off state (gModernMap only).
- Additional options kModernSeqSpawner.
- Effects that created with kModernEffectSpawner now inherits offset of the sprite.
- Added kCmdSectorMotionPause and kCmdSectorMotionContinue event commands that allows to pause or continue sector motion (gModernMap only, WIP).
- Various minor fixes.

# Conflicts:
#	source/blood/src/ai.cpp
#	source/blood/src/common_game.h
#	source/blood/src/eventq.cpp
#	source/blood/src/nnexts.cpp
#	source/blood/src/nnexts.h
#	source/blood/src/triggers.cpp
#	source/blood/src/triggers.h
#	source/blood/src/view.cpp

# Conflicts:
#	source/games/blood/src/ai.cpp
#	source/games/blood/src/nnexts.h

# Conflicts:
#	source/games/blood/src/actor.cpp
#	source/games/blood/src/ai.cpp
2021-06-02 20:51:47 +02:00
Christoph Oelckers
c4fa99c891 - ProcessTouchObjects 2021-06-02 20:44:55 +02:00
Christoph Oelckers
f7668fc074 - first pass over ProcessTouchObject 2021-06-02 20:44:54 +02:00
Christoph Oelckers
a7572bca0a - actImpactMissile. 2021-06-02 20:43:14 +02:00
Christoph Oelckers
f96521a7f4 - fixed: Floor sprites must set their view orientation.
The translucent element sorter needs this to operate properly.
2021-06-02 20:32:35 +02:00
Christoph Oelckers
3c5ef9c8e6 - properly render geometry that's fully shrouded in fog. 2021-06-01 21:48:39 +02:00
Christoph Oelckers
dc846dcd49 - Duke: avoid clipping against self when executing script logic for floor sprites.
A good place to see the result is a kitchen knife in E4L2 that went missing due to the faulty check.
2021-06-01 21:21:39 +02:00
Christoph Oelckers
f0d2aef9d9 - fixed hires replacements for colorized font characters. 2021-06-01 11:29:39 +02:00
Christoph Oelckers
454816299e - reorganized loading of textures.
Due to dependencies on initializing some data in app_init it was not possible to cleanly set up the fonts.
This adds a game-side function for loading the entire palettes before starting with the texture data and another one for loading game-side texture data.
This now allows fully setting up the palettes before starting with the textures and to fully set up the textures before reading the .def files.

All this is needed because to properly initialize, the fonts need to be able to access the fully initialized texture state, including replacements and hires substitutions from the .def files.
2021-06-01 11:05:26 +02:00
Christoph Oelckers
8b507ed606 - enabled the ENDOOM-like text screens when quitting Duke and SW.
Turned out that all they needed was the font.
2021-05-31 23:16:52 +02:00
Christoph Oelckers
1636ddc00e - set the main resource file's index in the file system.
Some checks need this.
2021-05-31 21:20:32 +02:00
Christoph Oelckers
25e57763af - implemented substitution for incomplete fonts. 2021-05-31 21:20:32 +02:00
Christoph Oelckers
9c60ab791b - implemented all needed font overrides for localization. 2021-05-31 21:20:31 +02:00
Christoph Oelckers
d174b61c3c - allow switching between the two Duke BigFonts and fix Y in Duke's BigFont13. 2021-05-31 21:20:31 +02:00
Christoph Oelckers
90bcba302e - layout adjustments for localized texts.
In particular SW's main menu was far too tightly spaced, allowing no room for accents.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
af781e0422 - moved all font setup out of the C++ code.
All internal fonts now get defined through FONTDEFS.
Also fixing a few offsets.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
42b70a7d93 - added internationalized fonts.
This still needs a bit of fixing and tweaking but most is working.
2021-05-31 21:20:30 +02:00
Christoph Oelckers
cd56fd66d2 - RR: fixed advanced notify display's font size.
At some point the scale multiplier must have gotten lost, which with the twice as large fonts in this game resulted in text being too large.
2021-05-31 21:20:28 +02:00
Christoph Oelckers
f97b4e830d - pass fonts instead of indices to Blood's viewDrawText function.
As preparation for building a proper font system.
2021-05-31 21:20:28 +02:00
Christoph Oelckers
d7e1707b37 - removed the Doom specific font init code.
This has no use in Raze and only got in the way by enforcing unwanted defaults.
2021-05-31 21:20:28 +02:00
Christoph Oelckers
a7921e4c01 - use the same formula as Duke to offset SW's shadows in Polymost. 2021-05-29 14:04:57 +02:00
Christoph Oelckers
1ea09cd3d2 - removed bogus assert in SW's track setup.
One of the stock maps (WT $airport map.) triggers this assert so it cannot remain.
2021-05-29 13:22:14 +02:00
Christoph Oelckers
2b8a80c6ce - added the out-of-bounds vertex handler to the secondary triangulator as well.
If SW does this, triangulation must not be attempted as it will inevitably fail.
2021-05-29 13:19:44 +02:00
Christoph Oelckers
db21313c96 - add some hackery to deal with WT's bosses.
This was the result of some gross change to the spawning code which suddenly changed the rules about minibosses.
To reduce the impact, it is only enabled for the "Alien World Order" maps.
2021-05-29 13:12:50 +02:00
Christoph Oelckers
2e9732ce79 - fixed new renderer's use of fog on skies: The palette value from the wall was used instead of the one from the sky plane. 2021-05-29 12:09:16 +02:00
Christoph Oelckers
8fae793341 - defined a new constant, CR_NATIVEPAL, to use the font functions with a predefined palette.
This is mainly for code clarification, the value is the same as CR_UNDEFINED.
2021-05-29 11:47:05 +02:00
Christoph Oelckers
22be26bd2d - font system fixes. 2021-05-28 12:16:07 +02:00
Christoph Oelckers
d44500863b - removed the multiplayer scoreboard screens.
Since there is no plan to keep them in case MP gets implemented there's no need to maintain them.
These should later be replaced by a generic screen using a better font and a layout that takes higher resolutions into account.
2021-05-27 13:33:54 +02:00
Rachael Alexanderson
fd97da05b7 - allow UNC search paths on Windows 2021-05-26 10:47:36 -04:00
Christoph Oelckers
4ff4fa643b - rewrote the default translation handling to be compatible with luminosity translations. 2021-05-25 12:59:09 +02:00
Christoph Oelckers
8b1757eee2 - got rid of most of the font system's baggage that's no longer needed.
Mainly this means that it's no longer necessary to reorder the palette to get working translated glyphs, so the FFontChar1 class and the TranslatedPic member and its invasive handling could all be cleaned out.
All font operations now take place on true color data, with the sole execption of FSpecialFont's 'notranslate' handling.
2021-05-25 12:59:09 +02:00
Christoph Oelckers
9769f346ec - refactored the special fonts away from BuildTranslation so that this function and the entire large heap of ugly baggage it drags in can finally be deleted.
Function is gone, baggage will come next.
2021-05-25 12:59:09 +02:00
Christoph Oelckers
372d425e01 - use luminosity translations for single lump fonts and let them use their original palette. 2021-05-25 12:59:08 +02:00
Christoph Oelckers
377829d6a2 - let hex fonts use the luminosity translations. 2021-05-25 12:59:08 +02:00
Christoph Oelckers
0bab333f36 - redid font translation so that it doesn't need to crush the font characters' color set to the base palette.
Right now it creates a special type of luminance translation that can operate on a true color bitmap.
2021-05-25 12:59:08 +02:00
Christoph Oelckers
0b181c67b9 - don't skip lines when an empty one gets deleted. 2021-05-23 17:22:29 +02:00
Christoph Oelckers
f212421547 - don't let the triangulator choke on empty sectors. 2021-05-23 17:19:01 +02:00
Christoph Oelckers
8aed9063f8 - sector splitting hack for SW $bath.map. 2021-05-23 17:06:47 +02:00
Christoph Oelckers
572f45ca53 - delete lines in proper order when eliminating a pair.
Deleting the lower one first will delete the wrong second one.
2021-05-23 16:36:06 +02:00
Christoph Oelckers
b2545f8042 - PlayMusic script function. 2021-05-23 16:21:04 +02:00
Christoph Oelckers
d98a567597 - halt the game timer when setting up a cutscene and when starting movie playback.
These are both lengthy operations that can take several 100s of milliseconds, so when starting a streaming video they can throw off the timing quite significantly.
With this the intermissiondelay counter could be removed as it was only there to flush the accumulated time before starting video playback.
2021-05-23 14:36:54 +02:00
Christoph Oelckers
cc1def8d77 - fixed: When the node builder is used for triangulation, all zero-length lines must be eliminated first.
These can cause triangulation errors.
2021-05-23 09:16:30 +02:00
Brian Koropoff
bea0379830 Fix off-by-one error in group search
This could be hit when loading raze.pk3 from the build directory while
the file search path contains only one grp file
2021-05-23 08:51:32 +02:00
Brian Koropoff
9394ebe768 Resolve raze.pk3 via search paths
Linux installs typically don't have it next to the program binary
2021-05-23 08:51:32 +02:00
Brian Koropoff
e4e949877d Fix buffer overflow at maploader.cpp:392 2021-05-22 22:31:16 +02:00
Christoph Oelckers
b899b63843 - Raze must still use zmusiclite due to license restrictions... :(
This was a copy/paste error when cleaning up some things in the project file.
2021-05-22 19:23:47 +02:00
Christoph Oelckers
0c6e2f0c9e - silenced some warnings. 2021-05-22 15:34:04 +02:00
Christoph Oelckers
d7a47b2f3a - route all accesses to gameaction from the backend through the sysCallbacks.
gameactions are frontend specific so this needs to be decoupled.
2021-05-22 13:02:34 +02:00
Christoph Oelckers
6ae09f8ec9 - ported Doom's type-on text screens as a screen job overlay. 2021-05-22 12:08:08 +02:00
Christoph Oelckers
5337513044 - ported GZDoom's subtitle drawer to the cutscene framework.
For later use, this isn't used yet.
2021-05-22 10:26:53 +02:00
Christoph Oelckers
f69fe334fc - removed duplicate variable. 2021-05-22 09:22:30 +02:00
Christoph Oelckers
0d793a59fd - moved the cutscene core to 'engine'.
More adjustments for making this code compatible with GZDoom.
2021-05-22 02:15:49 +02:00
Christoph Oelckers
e10bcf6294 - split the screen job code into a generic and a Raze specific part.
Preparations for porting this to GZDoom.
2021-05-22 01:35:50 +02:00
Christoph Oelckers
1dff0502b0 - moved libvpx and libsmackerdec to more fitting places, plus some project cleanup. 2021-05-22 01:06:51 +02:00
Christoph Oelckers
16c6e2db05 - silence float truncation warnings for explicit casts. 2021-05-21 21:06:48 +02:00
Christoph Oelckers
4739c71b39 - PNG 16 bit support from GZDoom. 2021-05-21 21:06:11 +02:00
Christoph Oelckers
264d42179e - optimized the wall drawer a bit to avoid repeated calls to the render API's deoth bias function.
The setters in FRenderState should check if the value actually changes and the wall drawer should only call it for non-translucent wall sprites.
2021-05-21 19:07:22 +02:00
Christoph Oelckers
4bb57cfab5 - fixed flickering floor sprites.
The SetDepthBias call was somehow gotten lost.
2021-05-21 19:03:39 +02:00
Christoph Oelckers
234f303348 - fixed typo in line segment culler. 2021-05-21 18:40:34 +02:00
Christoph Oelckers
f7a424cd06 - fixed precision issues with GetClosestPointOnWall for orthogonal lines.
The math failed for some large wall sprites (e.g. Blood E2M4, sprite #181), and in orthogonal cases it is better anyway to perform direct checks of the coordinates
2021-05-21 18:25:30 +02:00
Christoph Oelckers
b0cc5c14e2 - fixed bad argument count in ScreenJobRunner.Validate call. 2021-05-21 17:32:36 +02:00
Christoph Oelckers
24dbfc7827 - fixed BunchInFront to do a more thorough comparison in case it encounters colinear walls. 2021-05-21 14:32:01 +02:00
Christoph Oelckers
716b8840af - when using the node builder to triangulate sectors we must delete overlapping walls.
The node builder can create bad geometry from them because it does bad ordering when two lines facing in opposite directions overlap.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
079a95a0a3 - use a higher depth bias for non-orthogonal wall sprites.
Due to minor angular inaccuracies they are more sensitive to z-ordering than orthogonal ones when things are closely stacked.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
d572e56839 - removed the indirection for the global arrays.
No idea what part of EDuke32 needed this, but it is not necessary.
2021-05-21 14:32:01 +02:00
Cacodemon345
75ecd173b6 Destroy FStartupScreen before initializing video
Fixes terminal output cutoff on console tab completion on Unix systems.
2021-05-20 19:32:48 +02:00
Christoph Oelckers
be97ee04f9 - re-enable flat sprite rendering.
This was commented out for testing but forgotten afterward.
2021-05-20 19:21:14 +02:00
Christoph Oelckers
5cfd810311 - new renderer: take fog properties for walls and ceilings from the proper elements. 2021-05-20 19:17:21 +02:00
Christoph Oelckers
ec976d9db7 - RR: fixed double negation in pitch math when throwing dynamite. 2021-05-20 19:06:11 +02:00
Christoph Oelckers
e5236d3423 - SW: fixed sector transfers involving a portal for real this time.
It is not enough to just copy the properties - if this happens the entire portal needs to be reinitialized. The only way to do this is to run CollectPortals again to reset all portals in the map.
2021-05-20 18:52:27 +02:00
Christoph Oelckers
b5358bc03c - fixed typo in wall sprite offsetting code. 2021-05-20 18:25:19 +02:00
Rachael Alexanderson
a75ed91796 - this crash was handled by nothing more than an assert... 2021-05-20 11:02:11 -04:00
Christoph Oelckers
d4eb54d686 - render free standing wall sprites without depth bias.
Otherwise they can end up badly ordered with walls.
2021-05-20 12:36:35 +02:00
Christoph Oelckers
e99567cd70 - fixed bad array of arrays access in sector splitting code. 2021-05-20 00:30:54 +02:00
Christoph Oelckers
5ee4bc5cca - Blood: handle title screens so that mods changing the original one still display it.
The rules are:
* If CRC of tile 2518 has changed, use that.
* If CRC of tile 2046 has changed, use that.
* If tile 2518 is not present, use tile 2046
* otherwise use tile 2518.

This allows display of Cryptic Passage's title screen while still using the "with Plasma" version for the regular game.
2021-05-19 00:07:50 +02:00
Christoph Oelckers
5fd41ab910 - new renderer: draw the fog layer for skies.
Code was active but alpha wasn't set.
2021-05-18 00:42:45 +02:00
Christoph Oelckers
1d7f4c1f2b - SW: fix sector property transfers involving a portal. 2021-05-18 00:26:57 +02:00
Christoph Oelckers
eae97ded1b - backend update from GZDoom. 2021-05-17 20:33:40 +02:00
Christoph Oelckers
24ce5d6130 - Exhumed: fix animation stopping for inventory torch item.
I have no idea how the old code could ever work...
2021-05-16 20:25:56 +02:00
Christoph Oelckers
395de23b21 - Exhumed: Don't autoaim backwards. 2021-05-16 19:20:36 +02:00
Christoph Oelckers
5e94eaff8e - new renderer: handle light level underflows. 2021-05-16 18:50:54 +02:00
Christoph Oelckers
a348508779 - handle the wall sprite clipping properly. 2021-05-16 16:00:00 +02:00
Christoph Oelckers
028a196777 - removed deleted files from project. 2021-05-16 12:32:52 +02:00
Christoph Oelckers
5e57b738d5 - removed redundant menu initializsation in M_StartControlPanel.
This was a leftover of early development and is no longer needed.
2021-05-16 12:21:08 +02:00
Christoph Oelckers
5bb438b817 - new renderer: fixed bad positioning when a y-flipped wall sprite had to be clipped to floor or ceiling. 2021-05-16 12:17:26 +02:00
Christoph Oelckers
60fe1d32fb - Blood: unpositioned sounds must be limited to one per channel. 2021-05-16 11:51:51 +02:00
Christoph Oelckers
98ca5d5db4 - added 'load' and 'save' CCMDs. 2021-05-16 11:24:08 +02:00
Christoph Oelckers
7358f4344f - pause the game when app is not active. 2021-05-16 10:53:38 +02:00
Christoph Oelckers
f2d75d4146 - made status bar configurable through rmapinfo. 2021-05-16 10:43:47 +02:00
Christoph Oelckers
ee559b7ba9 - removed all leftover parts of the native status bars. 2021-05-16 10:35:33 +02:00
Christoph Oelckers
83f151529b - fixed SW status bar. 2021-05-16 10:25:56 +02:00
Christoph Oelckers
8d8b3cda46 - scriptified SW's status bar.
Not tested yet. This just compiles without errors.
2021-05-16 09:34:08 +02:00
Christoph Oelckers
f136330628 - removed the native versions of Duke's and RR's status bar. 2021-05-15 17:15:29 +02:00
Christoph Oelckers
781cb32dcf - fixed all issues with Duke's/RR's status bar. 2021-05-15 16:46:08 +02:00
Christoph Oelckers
f84f58e714 - ported Duke and RR status bars.
Compiles but not tested yet.
2021-05-15 14:27:32 +02:00
Christoph Oelckers
d311792e06 - engine side preparations for Duke Statusbar scriptification.
Mainly, gotweapon had to be reverted to a flat bool array to avoid implementing FixedBitArray for the VM.
Also adding a few new tile names and PushV for string arrays.
2021-05-15 10:44:35 +02:00
Christoph Oelckers
845ce63348 - make sure that all objects rendered as shadow reset the object color after the draw call. 2021-05-15 10:40:25 +02:00
Christoph Oelckers
b520d38bc0 - removed the native implementation od Exhumed's status bar. 2021-05-15 10:25:39 +02:00
Christoph Oelckers
663f330684 - fixed GetChunkFrame implementation and one bad GetString call.
Exhumed's status bar is fully working with this.
2021-05-15 10:25:38 +02:00
Christoph Oelckers
b71c725e3e - ported Exhumed's status bar.
Not tested yet.
2021-05-15 10:25:38 +02:00
Christoph Oelckers
5a6121d424 - status bar interface work. 2021-05-15 10:25:38 +02:00
Christoph Oelckers
c716900a3c - handled the remaining arrays that got accessed by the status bar. 2021-05-15 10:25:38 +02:00
Christoph Oelckers
12b7c73393 - turning some of the player arrays into Player members.
For script code we do not want the arrays accessible so all that get accessed need to be moved into the struct first.
2021-05-15 10:25:38 +02:00
Christoph Oelckers
4e182ea5ee - Exhumed: made the status bar independent of static global state.
It will now perform all state change checks itself
2021-05-15 10:25:38 +02:00
Christoph Oelckers
c9361aff76 - Exhumed: moved nPlayerItem into PlayerList 2021-05-15 10:25:37 +02:00
Christoph Oelckers
71f4946879 - Exhumed: changed lung display as well. 2021-05-15 10:25:37 +02:00
Christoph Oelckers
35c07500c3 -Exhumed: changed key display on status bar to be controlled from the status bar itself.
First of 6 externally controlled status bar indicators.
2021-05-15 10:25:37 +02:00
Christoph Oelckers
317238147b - Blood: fixed scriptified MP statusbar code to the point where it compiles.
Mainly to avoid code rot by future changes, this probably cannot remain as it is if MP gets reimplemented.
2021-05-15 10:25:37 +02:00
Christoph Oelckers
55abb261c6 - this was in the wrong place. :( 2021-05-15 10:25:37 +02:00
Christoph Oelckers
db8572dbcc - newrenderer: clip wall angles before doing any math with them.
In some cases these unclipped ranges ended up in other data structures, causing problems with bunch ordering.
2021-05-14 12:56:37 +02:00
Christoph Oelckers
3d6ae40bc0 - normalize all angles to the actual viewing range in the drawer.
This simplifies the debugging of this code a lot because we no longer have to deal with range overflows and can do direct comparisons everywhere.
2021-05-14 10:50:22 +02:00
Christoph Oelckers
5ae1c334fa - Duke: fixed bad check in 'ifnotmoving' CON command. 2021-05-14 10:03:07 +02:00
Christoph Oelckers
645ea1e1ae - SW: better handling for bogus ladders.
If there is no back sector, use the front sector of the wall as the ladder sector.
This at least fixes the badly defined ladder in Wanton Destruction's first map.
2021-05-13 23:28:29 +02:00
Christoph Oelckers
d14d539144 - fixed issues with MAPINFO parser.
These cause problems with map progression, particularly with Exhumed.
2021-05-13 22:49:19 +02:00
Christoph Oelckers
bdfe40af7c - properly terminate base64 data. 2021-05-13 22:28:36 +02:00
Emile Belanger
a6f62773cb Give -1 to model light index otherwise mLightIndex in renderstate ends up getting set to 0 which is a valid light index 2021-05-13 10:04:40 +02:00
Christoph Oelckers
e5dd4a8638 - made the scripted version of Blood's status bar functional. 2021-05-12 21:50:02 +02:00
Christoph Oelckers
778378fd5c - scriptified version of Blood's status bar compiles.
Not tested yet.
2021-05-12 21:50:02 +02:00
Christoph Oelckers
4ad20e4c00 - more preparations for scriptification of Blood's status bar.
* restructured some code that could not be converted as-is due to access to data that should be off-limits to scripts.
* exporting most of PLAYER's member fields.
2021-05-12 21:50:02 +02:00
Christoph Oelckers
5859188d3a - Blood: use names instead of indices to address textures in the status bar drawer.
This is a preparation for scriptification of the status bars. Blood's wasn't using any symbolic constants at all aside from the new HUD fonts.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
acb4830eb5 - ported the BaseStatusBar class to ZScript.
Not hooked up yet, but it compiles.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
cb2bc7967a - fixed the remaining warnings. 2021-05-12 21:50:01 +02:00
Christoph Oelckers
cf22a70d82 - fixed all warnings in Duke. 2021-05-12 21:50:01 +02:00
Christoph Oelckers
694066c4ec - fixed all warnings in Exhumed. 2021-05-12 21:50:01 +02:00
Christoph Oelckers
fb21e39de5 - fixed remaining SW warnings. 2021-05-12 21:50:00 +02:00
Christoph Oelckers
1085b0b7a2 - first batch of SW warning fixes. 2021-05-12 21:49:34 +02:00
Christoph Oelckers
3e2cacfaf6 - silenced warnings in Blood. 2021-05-12 21:49:06 +02:00
Christoph Oelckers
d097c8e635 - removed the non-functional and long abandoned level music alias feature.
With RMAPINFO such a hack is no longer needed for anything.
2021-05-12 21:48:40 +02:00
Christoph Oelckers
783b94f922 - more warning fixes in 'core'. 2021-05-12 21:48:14 +02:00
Christoph Oelckers
1168341d5a - fixed more warnings in 'core'. 2021-05-12 21:47:32 +02:00
Christoph Oelckers
b6dd834420 - fixed warnings in Build code. 2021-05-12 21:47:32 +02:00
Christoph Oelckers
7283de0084 - fixed some very noisy warnings in two headers. 2021-05-12 21:47:32 +02:00
Christoph Oelckers
03289f5097 - silenced some warnings. 2021-05-12 21:47:32 +02:00
Christoph Oelckers
fd6dd7f467 - Skip the load screen if the level is started from the console.
In this case the load screen is not helpful as it blocks the actual level start, requiring closing and reopening the console first before entering any commands that need the level.
2021-05-12 00:36:04 +02:00
Christoph Oelckers
9dd9dc8efd - handle savegame loads like GZDoom.
They are synchronized with the game loop and should not be initiated directly from the menu.
2021-05-12 00:31:49 +02:00
Christoph Oelckers
499ed52972 - route savegame requests through the newwork, just like GZDoom does.
Although a bit overkill for single player saves only, this will ensure consistent behavior between both engines regarding the menu.
2021-05-12 00:21:26 +02:00
Christoph Oelckers
4c161ae403 - SW: fixed signed-ness issues with SOP-related angle checks. 2021-05-12 00:10:02 +02:00
Christoph Oelckers
633d205d80 - SW: fixed ammo pickup amount. 2021-05-12 00:01:19 +02:00
Christoph Oelckers
bde644f77f - SW: replaced some asserts with proper value checks.
These asserts can actually be triggered by some maps with incorrect setups.
2021-05-11 00:59:23 +02:00
Christoph Oelckers
ae94fb921c - SW: Abort GetInput immediately if no valid sprite is attached to the given player. 2021-05-11 00:52:39 +02:00
Christoph Oelckers
5d5af0cb09 - fixed error message spam when trying to load a non-existent voxel using .def. 2021-05-11 00:48:35 +02:00
Christoph Oelckers
3194efc646 - SW: processWeapon must check for valid player sprites.
On map start it can happen that this gets called with an incompletely set up map.
2021-05-11 00:21:50 +02:00
Christoph Oelckers
10a6515b9a - Exhumed: Fixed weapon swaying intensity, introduced by e76f63e2c0
Note that shifting right by 17 bits vs. shifting right by 16 bits and then multiplying the entire result by 0.5 is not the same here!
2021-05-11 00:12:03 +02:00
Christoph Oelckers
c6991add46 - Blood: fixed null pointer crash in actBurnSprite. 2021-05-11 00:02:26 +02:00
Christoph Oelckers
d90b23ba9a - take down the savegame loader's resources in proper order. 2021-05-10 20:14:38 +02:00
Christoph Oelckers
e40ed2262e - cleanup of 'gotpic' handling. 2021-05-10 20:13:28 +02:00
Christoph Oelckers
e74aca291c - position tweaking for Nam's skies.
Why is this such an utter mess to get skies placed correctly? :(
2021-05-10 20:13:28 +02:00
Christoph Oelckers
fc11f9327a - refactored actDamageSprite 2021-05-10 20:13:28 +02:00
Christoph Oelckers
b8dcd09f77 - reformatting. 2021-05-10 20:13:28 +02:00
Christoph Oelckers
965939957e - split up actKillSprite into several smaller functions.
The biggest problem in here was tracking the lifetime of local variables.
2021-05-10 20:13:28 +02:00
Cacodemon345
36b910a253 Fix compilation on OpenBSD 2021-05-10 08:25:14 +02:00
Cacodemon345
ce4b748ff0 Fix compilation with Clang on FreeBSD 2021-05-09 19:52:52 +02:00
Christoph Oelckers
0efe15ae98 - deleted some unused utilities. 2021-05-08 18:06:57 +02:00
Christoph Oelckers
43981bff85 - Duke: fixed mirror setup for new renderer.
A wall must be marked one-way to be used as a mirror.
2021-05-08 16:27:01 +02:00
Christoph Oelckers
de904d3052 . Duke: made the 'lonely effector' error non fatal.
Instead just move the bogus effector sprite out of the way.
2021-05-08 15:41:49 +02:00
Christoph Oelckers
3dfc3e73d2 - only process actually existing mirrors when updating their state. 2021-05-08 15:23:45 +02:00
Kevin Caccamo
6e1554d7ae Fix mirror updates in Shadow Warrior 2021-05-08 14:58:20 +02:00
Christoph Oelckers
8e070343c5 - added default crosshair for Exhumed.
See 1abadb6f1c
2021-05-08 14:49:49 +02:00
Christoph Oelckers
9a5a32c826 - Blood: split out the 'modern dude' part of actKillDude. 2021-05-08 14:43:09 +02:00
Christoph Oelckers
34b7bfc10b - handled the actDrop* functions. 2021-05-08 14:43:08 +02:00
Christoph Oelckers
d1cc7403b3 - actNapalmMove - another previously unnamed function.
# Conflicts:
#	source/games/blood/src/aiunicult.cpp
2021-05-08 14:43:08 +02:00
Christoph Oelckers
23df336ebe - complete cleanup of sub_2A620, now renamed to actRadiusDamage. 2021-05-08 14:43:08 +02:00
Christoph Oelckers
6110ec5cfd - redid ConcussSprite. 2021-05-08 14:43:08 +02:00
Christoph Oelckers
d466ec081a - fixed incorrect order of resource deallocation in savegame reader. 2021-05-08 09:22:08 +02:00
Christoph Oelckers
325af156e7 - fixed loop in ProcessBunch to account for array reallocation. 2021-05-08 09:16:06 +02:00
Christoph Oelckers
df6a9823e3 - fixed incorrect license in sw/d_menu.cpp.
Should be GPL 2+, not GPL 2.
2021-05-08 00:13:50 +02:00
Christoph Oelckers
79823b430c - reinstate the old code for rendering the first portal without stencil
The previous commit fixes the true issue causing the problems - with this back the restriction is not needed anymore.
2021-05-07 00:26:22 +02:00
Christoph Oelckers
db1cf63e7a - SW: fixed bad type for ceiling portals. 2021-05-07 00:23:56 +02:00
Christoph Oelckers
b644000b02 - fixed texture y-flipping on bottom tiers of walls.
The flip flag was taken from the wrong side of the wall.
2021-05-07 00:18:13 +02:00
Christoph Oelckers
29b0106a96 - fixed yet another problem with the local 'sprite' variables in HWWall causing problems.
This variable and its companions in HWFlat and HWSprite have now been renamed to avoid these issues.
2021-05-07 00:09:30 +02:00
Christoph Oelckers
34a5fb5a6a - make testnewrenderer persistent. 2021-05-06 18:12:23 +02:00
Christoph Oelckers
3fce8ab693 - added support for the 3 missing Duke Vacation SSIs. 2021-05-06 17:14:18 +02:00
Christoph Oelckers
d54a8724b5 - default 'testnewrenderer' to false. 2021-05-06 17:04:48 +02:00
Christoph Oelckers
2f9e32f748 Merge branch 'newrenderer' 2021-05-06 17:04:35 +02:00
Christoph Oelckers
72e4220929 - added an option to dump the list of discovered games to a JSON file. 2021-05-06 12:03:33 +02:00
Rachael Alexanderson
7b45144023 - these changes were missing from the last Vulkan update 2021-05-06 04:27:58 -04:00
Christoph Oelckers
c679f83f75 - make all games return to the main menu when the game is ended with F10.
Duke still went to the intro movies which was a bit problematic.
2021-05-04 11:32:09 +02:00
Christoph Oelckers
0659bda6b6 - SW: clear old user content before allocating a new one.
If old data gets in here it may break the game.
https://github.com/coelckers/Raze/issues/349
2021-05-04 11:11:38 +02:00
Christoph Oelckers
a7adef360b - fixed compilation with Clang. 2021-05-04 00:11:43 +02:00
Christoph Oelckers
a303da37a9 - added a mapinfo dumper and used it to verify correctness of the data generated from game-native definitions.
Also simplified the levelnumber setup a bit.
2021-05-03 23:00:24 +02:00
Christoph Oelckers
020a636c2f - removed some more useless stuff from headers. 2021-05-03 19:16:26 +02:00
Christoph Oelckers
0db8fc6163 - removed UNREFERENCED_PARAMETER macro.
Using C++ standard of not naming such parameters instead.
2021-05-03 19:10:53 +02:00
Christoph Oelckers
7d77b2315f - merged the few remaining contents of mmulti.h into d_net.h 2021-05-03 19:01:00 +02:00
Christoph Oelckers
6589222da6 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-03 18:50:41 +02:00
Christoph Oelckers
d206a767b2 - added render workaround for CP07. 2021-05-03 17:48:35 +02:00
Christoph Oelckers
d8b808576f - restrict the sky portal shortcut to skies in scenes where there are no other portals.
This entire setup does not work with sector portals, causing various render glitches in Shadow Warrior's portals. This also applies to skies within portals so it is now restricted to single sky setups.
2021-05-03 14:52:23 +02:00
Christoph Oelckers
56fcf904b5 - Backend update from GZDoom. 2021-05-03 14:48:55 +02:00
Christoph Oelckers
389340f97c - use sections for rendering. 2021-05-03 00:15:09 +02:00
Christoph Oelckers
30b1b046e4 - added an intermediate data structure to decouple the rendering from the immediate map data.
This will be needed for sectors consisting of disjoint parts and for providing some help with addressing rendering anomalies
2021-05-03 00:04:36 +02:00
Christoph Oelckers
f40e52ab34 - fixed issues with validation of command line specified main game GRP file name. 2021-05-02 22:56:53 +02:00
Christoph Oelckers
8003ab6fa3 Merge branch 'scriptable_cutscenes' into newrenderer 2021-05-02 22:37:46 +02:00
Emile Belanger
b83928f437 Clear Viewpointbuffer position so it does not go to infinity 2021-05-02 22:22:43 +02:00
Christoph Oelckers
c9791bc148 - renamed PlayerHorizon function to deconflict with the same-named struct 2021-05-02 21:56:45 +02:00
Christoph Oelckers
698d62bbc6 - merged FixMapInfo into loadcons.
No need to delay the remaining content. The reasons for the separate function no longer exist.
2021-05-02 19:41:24 +02:00
Christoph Oelckers
60d007fa93 - Duke: fixed non-scrolling SE24. 2021-05-02 19:32:20 +02:00
Christoph Oelckers
a1381c0ff2 - fixed Blood cutscene setup to avoid dependency on the sound code initialization.
It now only stores the sound name or ID but not the internal index which is only looked up when needed.
2021-05-02 18:10:59 +02:00
Christoph Oelckers
575a38d835 - added RMAPINFO handler for Blood's message array. 2021-05-02 18:00:11 +02:00
Christoph Oelckers
c1b4fdff83 - added a "clearall" instruction to RMAPINFO.
Since, unlike GZDoom, this format is additive and uses defaults for map progression it would otherwise a bit tricky to compile new episodes without accidentally pulling in some original special features.
2021-05-02 17:42:19 +02:00