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
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
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
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
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
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
1b45c83d59
- SW: fixed countermeasure for empty lower skills
2021-07-11 08:24:10 +02:00
Mitchell Richters
32283037ed
- Use isWW2GI()
in more places.
2021-07-11 12:42:33 +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
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
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
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
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
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
6018213c71
- Blood: Don't parse BloodBathOnly levels in the INI loader.
...
* Fixes #442 .
2021-06-24 18:21:06 +10: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
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
5b38343407
- fixed sprite exclusion logic in getzrange.
...
This was using the wrong flag.
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
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
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
9c60ab791b
- implemented all needed font overrides for localization.
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
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
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
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
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
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
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
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
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
Rachael Alexanderson
a75ed91796
- this crash was handled by nothing more than an assert...
2021-05-20 11:02:11 -04: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
1d7f4c1f2b
- SW: fix sector property transfers involving a portal.
2021-05-18 00:26:57 +02:00
Christoph Oelckers
395de23b21
- Exhumed: Don't autoaim backwards.
2021-05-16 19:20:36 +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
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
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
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
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
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
03289f5097
- silenced some warnings.
2021-05-12 21:47:32 +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
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
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
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
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
db1cf63e7a
- SW: fixed bad type for ceiling portals.
2021-05-07 00:23:56 +02: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
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
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
d206a767b2
- added render workaround for CP07.
2021-05-03 17:48:35 +02:00
Christoph Oelckers
56fcf904b5
- Backend update from GZDoom.
2021-05-03 14:48:55 +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
8003ab6fa3
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-02 22:37:46 +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
dfd47ea33a
- migrated SW to RMAPINFO as well.
...
Also removed the 'definecutscene' code from the .def parser as this was never meant to be more than a temporary solution.
2021-05-02 17:35:25 +02:00
Christoph Oelckers
4b064b9f34
- migrated Exhumed's level setup to RMAPINFO.
...
This game never had a proper setup so this also fixes the crashes with visiting the multiplayer maps.
2021-05-02 15:54:19 +02:00
Christoph Oelckers
bb9d492db6
- migrated RRRA as well.
2021-05-02 14:01:10 +02:00
Christoph Oelckers
6f4e380728
- migrated RR's cutscene definitions.
...
Also turned several level-specific init options into map flags or map parameters.
2021-05-02 13:12:24 +02:00
Christoph Oelckers
dbd179be5c
- RR progression fixes.
...
* E1L7 abuses an 'end the game' command to progress to E2L1, this needs special treatment.
* handle ENDGAME.MAP more cleanly by injecting an 'engine.con' into the compilation chain to define its map record. The main issue with this is that it needs to be defined before the regular CONs run.
* check the already defined 'clearinventory' and 'clearweapons' flags that are exposed through RMAPINFO (Duke/RR only so far.)
2021-05-02 10:55:22 +02:00
Christoph Oelckers
9bc210fe35
- fixed RR weapon clearing in E2L2 and RRRA E1L3.
2021-05-02 10:37:20 +02:00
Christoph Oelckers
1798380f23
- adapted map transition in Duke/RR.
...
There's still some issues which will be taken care of by adding map flags.
2021-05-02 10:35:43 +02:00
Christoph Oelckers
e9385ed4e8
- adapted Blood to the new level progression features and simplified several parts, particularly the clumsy retrieval of the next level.
...
Some cheats in Duke will not work correctly with this commit!
2021-05-02 09:08:57 +02:00
Christoph Oelckers
93bfc35ad6
- use the volumes to find the starting maps for the menu and the clusters for the cutscenes.
2021-05-02 01:01:30 +02:00
Christoph Oelckers
825963661b
- migrated volumes to the new storage.
2021-05-02 00:35:56 +02:00
Christoph Oelckers
727244d52d
- changed 3 places to call the proper map progression function.
...
These ignored the explicit settings in the map definition.
2021-05-01 23:10:04 +02:00
Christoph Oelckers
f3eb476fbf
- minor cleanup.
2021-05-01 23:09:24 +02:00
Christoph Oelckers
13b21d3ed9
- removed script access to variables that no longer contain what they once did.
2021-05-01 23:08:51 +02:00
Christoph Oelckers
f732d4ec64
- added MAPINFO parser, based on GZDoom's.
...
This isn't hooked up yet, but all necessary structures and fields have been added so that selected pieces can be tested.
2021-05-01 22:52:28 +02:00
Christoph Oelckers
e0ec0f24d0
- fixed Blood's HUD time display.
...
This somehow got lost.
2021-05-01 20:08:51 +02:00
Christoph Oelckers
10395688bf
- must restore the laptop background of Exhumed's LEV20 cutscene each frame.
...
Also fixed the variable names in this function.
2021-04-30 20:08:36 +02:00
Christoph Oelckers
4069a5096a
- scriptified Exhumed's 2D content (minus the programmatic textures.)
2021-04-30 20:08:36 +02:00
Christoph Oelckers
5b54e9c1ad
- removed the 26 factor from Duke's par times.
...
What were they thinking?
2021-04-30 20:08:36 +02:00
Christoph Oelckers
5959543380
- hooked up SW's intermission handling.
2021-04-30 20:08:36 +02:00
Christoph Oelckers
aa148d602c
- scriptified SW's 2D screens.
...
Compiles but not tested yet.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
d5db898236
- fixed bad level number for weapon removal in RRRA.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
fa2bcf563a
- forgot to save these.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
b65dfb6145
- check r_precache in all games.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
eaf5e1fba5
- Cutscene support in Blood.
...
Intro tested, rest to do.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
869dbd70e5
- fixed the design by merging the episode start handler into ShowIntermission.
...
Tying the start-of-episode cutscene to the cluster does not really work because it gets triggered by all maps of the cluster.
All currently existing intro cutscenes are tied to the map anyway.
Also correcting transition movie name for RRRA E2L1.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
6d743ce921
- most of the summary screen is working
2021-04-30 20:08:33 +02:00
Christoph Oelckers
0dc6980e5c
- made episode intro cutscenes a game independent feature.
...
So far only defined for Duke E4 but all the logic is outside the game code now and can be universally handled.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
3c27ec8cbd
- tested all of Duke's and RR's cutscenes.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
1166b00af2
- switched intro movie playing over to the new system
...
Not tested yet.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
e05f900315
- added the data structures to hold the cutscene data.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
21aa5c9234
- added game flags for all supported add-ons.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
88dfb93865
- redid Duke cutscene code to use functions, not classes as exports and added the missing screens.
...
Functions are better because they allow doing more in the internal setup code.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
66799d9a6d
- more screen job setup work.
...
* interface for movie player done.
* first cutscene definition done.
* all converted classes removed from C++ code.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
4ff2010bd1
- moved the entire screen job management to the script side.
...
This isn't hooked up yet and lots of code is commented out, the games won't start with this commit.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
d853b63a1a
- RR summary screen
2021-04-30 20:08:29 +02:00
Christoph Oelckers
c07fcbee08
- migrated level summary screen.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
7fbe153ae7
- more Duke screen porting.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
b0163ff729
- made the end of E1 cutscene a bit more scripting friendly.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
e75f0c17e4
- ported the TitleScreen class.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
1022564cab
- initial framework for scriptification of screen jobs.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
4a7430c8e4
- got rid of JobDesc.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
71e5f9b70f
- changed screen job list to work without per-job completion callbacks.
...
They made things more complex than necessary and do not translate well to scripting.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
fb5e2fe0c0
- use flags instead of bools.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
af3eac8456
- simplified screen job setup where all elements can be skipped in one go.
2021-04-30 20:08:22 +02:00
Mitchell Richters
9bebd7fabf
- Remove max ammo fudging for when showing the magazine amount for Duke since it overrides ammo maximums set from CON.
2021-04-26 12:35:07 +10:00
Christoph Oelckers
8c379f7a44
Merge branch 'master' into newrenderer
2021-04-25 11:33:47 +02:00
Christoph Oelckers
ad28630df6
- offloaded map patches to data files.
...
This is a lot easier to manage than having them in the code.
For now it piggybacks on the map hack feature, later this should use the same scripted approach as GZDoom.
2021-04-24 23:07:35 +02:00
Christoph Oelckers
c05df44ad4
- fixed the check for RR's geometry effect.
...
This always got triggered for Duke which made the entire map render 3 times. The most obvious effect was reduced translucency.
2021-04-23 21:36:51 +02:00
Christoph Oelckers
3766c5aed0
- restored original palette handling for access cards that got broken in 242f958c41
...
Unlike all the other HUD sprites this one works differently.
2021-04-23 19:36:55 +02:00
Christoph Oelckers
bf23d6c3b0
- corrected level number for RR's summary screen.
2021-04-23 16:07:04 +02:00
Christoph Oelckers
14971f9569
Merge branch 'master' into newrenderer
2021-04-22 00:10:37 +02:00
Christoph Oelckers
729928c576
- SW: fixed bad serialization of sector object pointers
2021-04-22 00:03:18 +02:00
Christoph Oelckers
a4f5a32680
- fixed issue with restoring SO sprite array.
...
This array has -1 for empty entries so it cannot be saved partially.
2021-04-22 00:03:17 +02:00
Christoph Oelckers
c3e5cf322e
- SW: cleaned up the depth variable handling in SECT_USER which was endian dependent, including the savegame handler
2021-04-22 00:03:17 +02:00
Christoph Oelckers
c17ec5fa45
- cleanup of savegame framework
2021-04-22 00:03:17 +02:00
Christoph Oelckers
b85da221d7
- SW: save tracks as JSON.
2021-04-22 00:03:17 +02:00
Christoph Oelckers
bb8309831c
- SW: eliminated the int pointer in ANIM.
...
# Conflicts:
# source/games/sw/src/save.cpp
2021-04-22 00:03:16 +02:00
Christoph Oelckers
c49c5fcf1d
- SW: serialize SO interpolations as JSON.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
2d571586bd
- save sector objects as JSON
2021-04-22 00:03:16 +02:00
Christoph Oelckers
e9b1342ffd
- SW: save globals as JSON.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
66e5b9ada7
- SW: save SectUser as JSON, also store in a managed array.
2021-04-22 00:03:16 +02:00
Christoph Oelckers
06b03f7301
- SW: save the player and related data as JSON.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
9bae2295cc
- better USER clearing.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
8fee2b3ed7
- save SW's User array as JSON.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
32955621f8
- removed all parental lock garbage from SW.
...
Better get rid of it as it's a major complication as implemented.
2021-04-22 00:03:15 +02:00
Christoph Oelckers
bbb53bc717
- refactored the main User array into something that's automatically managed.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
cd45a1f035
- made more parts of USER serialization friendly.
2021-04-22 00:03:14 +02:00
Christoph Oelckers
dcb393bc44
- started reorganizing SW's memory management.
...
Need to get rid of all those unmanaged allocations and present game data in an easily serializable form.
This adds a managed TPointer class that replicates the useful parts of std::unique_pointer but steers clear of its properties that often render it useless.
2021-04-22 00:03:14 +02:00
Mitchell Richters
93edeac791
- Clean-up of input functions.
...
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Christoph Oelckers
f51872db25
Merge branch 'master' into newrenderer
2021-04-20 20:46:06 +02:00
Christoph Oelckers
aaad546729
- palookup.
2021-04-20 20:21:51 +02:00
Christoph Oelckers
9e40e49c2c
- generalized the special key handling for skipping cutscenes.
2021-04-20 15:01:26 +02:00
Mitchell Richters
0c5729b0f6
- SW: Ensure all sprite angles are backed up in the ticker.
...
* Fixes #326 .
2021-04-20 21:33:42 +10:00
Mitchell Richters
d34070b8ae
- gameinput.h: Remove precise bool from horizsumfrac()
, look_anghalf()
and looking_arc()
added in a4895cb270
.
...
* It looks terrible to have low precision math versions of look_anghalf and looking_arc since we always interpolate `look_ang` now, so lets just not.
2021-04-20 21:12:17 +10:00
Mitchell Richters
2f696e1a95
Merge branch 'master' into newrenderer
2021-04-19 20:50:37 +10:00
Mitchell Richters
de06030ea0
- gameinput.cpp: Make sethorizon()
, applylook()
and calcviewpitch()
class functions of PlayerHorizon
and PlayerAngle
where appropriate.
2021-04-19 20:50:10 +10:00
Mitchell Richters
1daa346fdd
- Exhumed: Make SB_CENTERVIEW
work properly when cl_syncinput 1
is set.
2021-04-19 20:24:11 +10:00
Mitchell Richters
4eaf05d95e
- Duke: Fix bad vehicle speed clamp change from e79c6bacd3
.
...
- Fixes #325 .
- 🤦
2021-04-19 19:33:13 +10:00
Mitchell Richters
171d541112
Merge branch 'master' into newrenderer
2021-04-18 10:05:10 +10:00
Mitchell Richters
3961fcc28a
- Exhumed: When returning to center after going up/down stairs etc (slope tilting), don't use the backend's aim/look up/down return to center code as it's slower.
2021-04-18 10:04:17 +10:00
Christoph Oelckers
eb912604d2
- RFS compatibility with GDX: The outermost path component can be left out.
2021-04-17 23:59:10 +02:00
Christoph Oelckers
82194bbf6b
Merge branch 'master' into newrenderer
...
# Conflicts:
# source/games/exhumed/src/2d.cpp
2021-04-17 13:22:30 +02:00
Christoph Oelckers
d2c9b5979d
- gave key 7 a proper spawn record using the blue outline as image.
...
A proper definition here is needed to allow dropping this item.
The original code had a picnum of -1 here which caused crashes.
2021-04-17 12:05:37 +02:00
Christoph Oelckers
0cdb7a53ce
- more char removal - mostly weapon.cpp
2021-04-17 10:34:12 +02:00
Christoph Oelckers
9828b0228e
- made type of shade variables consistent.
...
Some were char, some signed char and the initializers needed type casts.
This wasn't serious but created a lot of casting noise.
2021-04-17 10:22:00 +02:00
Christoph Oelckers
ada28d8d04
- Blood: replaced 'unsigned char' with 'uint8_t' and 'signed char' with 'int8_t'.
...
Preparation for getting rid of all those excessively used plain chars which are a menace to code stability.
2021-04-17 10:14:03 +02:00
Christoph Oelckers
839547a9fc
- Blood: gave FXDATA meaningful member names
2021-04-17 10:12:40 +02:00
Christoph Oelckers
42b87362ee
- When keeping around a dummy sprite, make sure that the engine's utilities cannot find it anymore.
...
This was causing issues with the master switch sprites in Duke that have to be kept for sound purposes.
Unfortunately, both hitscan and neartag are far too dumb to analyze sprites they may hit in any way and needed some help skipping such sprites.
2021-04-17 09:37:38 +02:00
Christoph Oelckers
091a9b7fef
- fixed Exhumed laptop cutscene.
2021-04-17 00:01:28 +02:00
Christoph Oelckers
2b9a527aba
- added a 'Start' method to DScreenJob.
...
Since the menu pauses the ticker this is needed to perform initial setup before the first frame.
2021-04-16 23:29:53 +02:00
Christoph Oelckers
49e07a47c6
- now that everything is fixed, the map in Exhumed can be initiated from the console.
2021-04-16 22:40:21 +02:00
Christoph Oelckers
03d517c509
- removed debug assert.
2021-04-16 22:16:21 +02:00
Christoph Oelckers
1852c0b802
- properly pause the screen job player if the menu is open.
...
Still needs a bit of work for movies with embedded streaming sound.
2021-04-16 22:03:01 +02:00
Christoph Oelckers
2942e011bf
- cleaned up the screen job's fade handling, now that the jobs no longer depend on an external timer.
2021-04-16 21:27:54 +02:00
Christoph Oelckers
e580407d7d
- the remaining Exhumed screens.
...
These are not tested yet, a bit more work is needed to allow this.
2021-04-16 20:48:40 +02:00
Christoph Oelckers
a43259c40c
- Exhumed's map.
2021-04-16 20:10:46 +02:00
Christoph Oelckers
fed15a79e4
- Exhumed's intro screens.
2021-04-16 20:08:20 +02:00