Mitchell Richters
d98813f00f
SW: Allow sector object interpolations to be disabled for debugging.
...
New code is causing some issues. Upstream allow it to be toggled, so let's do that also.
2020-05-22 16:43:34 +02:00
Mitchell Richters
45cc95401f
SW: Make game compile after upstream backports.
2020-05-21 18:47:37 +02:00
Evan Ramos
0ab81904c2
SW: Allow Strafe Left and Right to turn vehicles
2020-05-21 18:47:37 +02:00
Evan Ramos
9d11c7dfb1
SW: Add FOV support.
2020-05-21 18:47:37 +02:00
Evan Ramos
edccdccfb4
SW: Fall back gracefully if map mirror tags are not fully correct
2020-05-21 18:47:37 +02:00
Evan Ramos
e6dd2741f3
SW: Instrument Saveables with debug_break
2020-05-21 18:47:37 +02:00
Evan Ramos
9eefd3d892
SW: Add PanelSpriteFunc values to saveables
2020-05-21 18:47:37 +02:00
NY00123
024d4e7297
SW: Afraid that we should disable almost all kinds of SOs in multiplayer
...
for now, due to possible jitters. Currently leaving remote-controlled SOs.
2020-05-21 18:47:37 +02:00
NY00123
ab99b3b79d
SW: Call FunctionKeys from getinput only if the latter is called
...
from faketimerhandler. This should fix the timing of playing an
RTS file's sound and sending the corresponding message.
2020-05-21 18:47:37 +02:00
NY00123
75c76f073a
SW: Fix aiming in coop view
2020-05-21 18:47:37 +02:00
NY00123
5baba6b9f3
SW: Don't interpolate a non-remote sector object controlled
...
by the player. Make sure looking up/down is still smooth.
2020-05-21 18:47:37 +02:00
NY00123
bdacab366a
SW: Disable interpolation of sector objects that
...
don't move as smooth as possible in multiplayer
2020-05-21 18:47:37 +02:00
NY00123
f3654d80e7
Store sector object interpolation data in saved game
2020-05-21 18:47:37 +02:00
NY00123
27675d9f4f
Remove the preceding sprite interpolation functions, not needed anymore
2020-05-21 18:47:37 +02:00
NY00123
221172311c
SW: Let's make use of interpso.*. Still need to do a few more things.
2020-05-21 18:47:37 +02:00
NY00123
2b1e32bf3d
SW: Add the currently-unused interpso.* files, enabling interpolation
...
of sector objects as whole groups of points and sprite angles.
The following goals are intended to be achieved with this code:
- Make it easy to let the user toggle sector object interpolation.
- Interpolate the angles of sprites carried by sector objects.
- Use the right amount of samples for interpolating a sector object,
depending on the players' locations, as done in the checks within
DoSector. Unfortunately, modifying DoSector itself to
unconditionally call MoveSectorObjects(sop, synctics) technically
changes the way sectors move (in the logical sense), and was
found out to make a specifically constructed user map unbeatable.
- Make it easy to disable interpolation of a whole sector object in
case of a need. This is especially important if such an object
is controlled by a player in multiplayer, mostly since this
isn't compatible with the way player prediction is working.
2020-05-21 18:47:37 +02:00
NY00123
f6a5572775
SW: Add the currently unused InterpolateSO option.
...
A known issue, which also applies to existing settings like the voxel
toggle, is that its value gets written to the saved game, and when such
a game is loaded, the its value gets overwritten by the one in the
saved game. Options should move to settings.cfg later, anyway.
2020-05-21 18:47:37 +02:00
NY00123
890a737152
SW: Add the oangdiff field to USER struct as suggested by Hendricks,
...
and use it in MovePoints. This will be used for interpolating
the angles of sprites carried by SOs soon.
2020-05-21 18:47:37 +02:00
NY00123
d467ce3eb8
SW: Interpolate the player's bob_z, based on suggestion by Striker.
...
Using pp instead of ppp seems to work better with prediction.
2020-05-21 18:47:37 +02:00
NY00123
10e4c3e121
sw/src/draw.cpp: Import from Duke3D the Polymost shadow drawing hacks
2020-05-21 18:47:37 +02:00
NY00123
33043b3b05
sw/src/network.cpp: Fix waitforeverybody in Master/Slave
...
modes. This uses SVN r1135 and r1143 as a reference.
2020-05-21 18:47:37 +02:00
NY00123
dea7c83361
sw/src/network.cpp: Fix sending of messages in Master/Slave.
...
Thanks Dynamo for spotting the bug.
2020-05-21 18:47:37 +02:00
NY00123
63743eea67
sw/src/draw.cpp:analyzesprites: Interpolate other players' sprites, in a
...
similar manner to what's done in Duke3D (with the addition of the angle).
There seem to be some jitters with this, mostly in Master/Slave mode.
Decreasing PAKRATE in mmulti.cpp might also increase the frequency
of this occuring in Peer-2-Peer mode.
2020-05-21 18:47:37 +02:00
NY00123
5a6dd2224f
sw/src/jsector.cpp:JS_DrawCameras: Make camera oscilation
...
less dependent on the frame rate.
It would probably be better to update this from the game loop side,
like in Duke3D, but it's still better than the preceding situation.
2020-05-21 18:47:37 +02:00
Mitchell Richters
471f0df69d
SW: Q16.16 refinements in DoPlayerDeathFollowKiller.
2020-05-21 18:47:37 +02:00
Mitchell Richters
14273dd200
SW: Add GetDeltaQ16Angle.
2020-05-21 18:47:37 +02:00
NY00123
36e6dee64c
Add PedanticQ16AngleFloor to sw/src/game.h and use it in DoPlayerTurn
2020-05-21 18:47:37 +02:00
NY00123
b84975e406
SW: Remove drive_oangvel from PLAYERstruct. We can use local variables instead.
2020-05-21 18:47:37 +02:00
NY00123
6aecd46dbc
SW - Hopefully a better way to decide if getinput should call
...
DoPlayerTurn/DoPlayerHorizon while input is tied to the frame rate:
Introduce the new player flags PF2_INPUT_CAN_TURN and PF2_INPUT_CAN_AIM.
Set PF2_INPUT_CAN_TURN if DoPlayerTurn can be called outside
of getinput. Similarly set PF2_INPUT_CAN_AIM if DoPlayerHorizon
can be called in this manner.
getinput will only call DoPlayerTurn/DoPlayerHorizon
if PF2_INPUT_CAN_TURN/PF2_INPUT_CAN_AIM is set. These flags are reset
right before the call to the player's current DoPlayerAction function.
For one example in which this assists, it's not always the
case that DoPlayerDeathFollowKiller may call DoPlayerTurn,
even if we assume that pp->input.q16angvel is never zero.
2020-05-21 18:47:37 +02:00
NY00123
e3197d206d
SW: Temporarily lock angle and horiz right upon player death
2020-05-21 18:47:37 +02:00
NY00123
bfd79d8bc2
sw/src/draw.cpp:drawscreen: Don't interpolate while the game is paused
2020-05-21 18:47:37 +02:00
NY00123
656e059c86
sw/src/game.cpp: Remove unused ReloadPromptMode variable
2020-05-21 18:47:37 +02:00
NY00123
8d748c19e4
Minor SW cleanup: Have a single declaration of
...
GamePaused within game.h. Do the same with ReloadPrompt.
2020-05-21 18:47:37 +02:00
NY00123
5a0e54b63e
SW: Migrate the player's RevolveAng field to Q16.16 format.
...
This fixes truncations of q16ang in MovePlayer. One known
fixed issue is a minor micro-shaking effect, reproduced
while standing on a non-moving SO (e.g., the bus in level 1).
The latter is also related to the use of camq16ang.
Based in idea on patch from mjr4077au.
2020-05-21 18:47:37 +02:00
NY00123
ef85bc58c3
sw/src/draw.cpp:drawscreen: Use GetQ16AngleFromVect for pointing
...
at a remote-controlled SO. In case PedanticMode == FALSE, this
leads to small improvements with aiming at the car in EXAMPLE.MAP.
2020-05-21 18:47:37 +02:00
NY00123
207240f277
Add GetQ16AngleFromVect wrapper function to sw/src/game.h
2020-05-21 18:47:37 +02:00
NY00123
e2a789b8cc
SW: Lock angle and horiz right after teleporting to sprite
2020-05-21 18:47:37 +02:00
NY00123
8e9130c31a
sw/src/draw.cpp:drawscreen: Removing the check that pp->sop_control
...
is non-null seems to resolve the newly introduced interpolation
issue for looking up/down while controlling a sector object.
We can also remove the PF_DEAD test, since
game.cpp:getinput should lock any kind of aiming.
src/src/game.cpp:getinput: We now, however, need to further
lock turning here while controlling a sector object.
2020-05-21 18:47:37 +02:00
NY00123
4c73c11255
SW: Ensure the player's rendering angle is in sync with a rotating
...
sector. This re-introduces the angle interpolation in drawscreen
while sector object interpolation is in use.
A side-effect of this is that looking up/down is now less smooth
while controlling a sector object (e.g., a turret).
2020-05-21 18:47:37 +02:00
NY00123
0c4deb9298
sw/src/track.cpp:MovePlayer: We also need to update pp->camq16ang here.
...
Note that this angle is currently not interpolated,
as done for the sector.
2020-05-21 18:47:37 +02:00
NY00123
fd6df8e509
sw/src/track.cpp:MovePlayer: Missed this in preceding interpolation fixes
2020-05-21 18:47:37 +02:00
NY00123
1d1aa4581b
sw/src/track.cpp: If interpolation is enabled, also cover
...
the SO's midpoint. Fixes aiming at a remote controlled SO.
2020-05-21 18:47:37 +02:00
Mitchell Richters
979c4846a4
SW: Fixes and cleanups following backporting upstream's input changes.
2020-05-20 14:43:03 +02:00
Mitchell Richters
2c0ad0dd12
SW: Fix compilation after backporting upstream's input changes.
2020-05-20 14:43:03 +02:00
NY00123
3913a05713
Use pragma pack in sw/src/network.h instead of the locally defined
...
PACKED macro. This is more consistent with the current Duke3D codebase,
and further fixes build with older versions of MinGW GCC, in which
attribute packed is broken without specifying -mno-ms-bitfields.
2020-05-20 14:43:03 +02:00
NY00123
ff49bc2209
SW: Remove unused wfe_Clock variable
2020-05-20 14:43:03 +02:00
NY00123
b0318afbdb
Fix usage of possibly wrong address in sw/src/player.cpp:DoPlayerHorizon
2020-05-20 14:43:03 +02:00
NY00123
10a5120e40
sw/src/network.cpp: I think that it's safe to enable
...
the sync check on the slave side in Master/Slave mode.
2020-05-20 14:43:03 +02:00
NY00123
0f761cdc77
SW: This hopefully resolves issues with leaving multiplayer games
2020-05-20 14:43:03 +02:00
NY00123
7749b0f7b9
SW: Interpolate sector objects in non-demo, single player games.
...
Let's see if this is breaking anything.
2020-05-20 14:43:03 +02:00
NY00123
25be14ccc0
Another change modifying saved game format in SW:
...
Increase MAXINTERPOLATIONS from 1024 to MAXSPRITES.
2020-05-20 14:43:03 +02:00
NY00123
bf0ace3748
SW change breaking compatibility with existing saved games:
...
Remove startofdynamicinterpolations and short_startofdynamicinterpolations.
2020-05-20 14:43:03 +02:00
NY00123
18602d41c9
SW: Reset the number of interpolations on level load
2020-05-20 14:43:03 +02:00
NY00123
47ac981a3a
SW: Let's replace the macro PEDANTIC_MODE with variable PedanticMode
2020-05-20 14:43:03 +02:00
NY00123
cc4f1f21f9
Interpolation fixes for SW:
...
draw.cpp: Fix the lack of interpolation while walking on a sector
object, like the bus roof or the floor of the train in Seppuku Station.
track.cpp: Make sure the player's location and angle aren't mistakenly
interpolated while standing on a moving sector object as a consequence.
2020-05-20 14:43:03 +02:00
NY00123
eaefc2576c
SW: Rename q16avel -> q16angvel and q16horz -> q16aimvel.
...
While it is understandable that avel and horz came from Duke3D,
having both q16horiz and q16horz in the updated SW_PACKET struct
can be confusing, and the alternative notation is more consistent
with the original struct field names of angvel and aimvel, as well
as the differing uses of the name angvel still present in player.cpp.
2020-05-20 14:43:03 +02:00
NY00123
952c578957
SW (DoPlayerTurn): The 180-degrees turns should be clockwise
2020-05-20 14:43:03 +02:00
NY00123
d07470ec4a
sw/src/player.cpp:PlayerAutoLook: Modify function to
...
test for PF_MOUSE_AIMING_ON only if PEDANTIC_MODE == FALSE
2020-05-20 14:43:03 +02:00
NY00123
6d9c657b11
SW: This is a better place for a slave which quits to set QuitFlag
2020-05-20 14:43:03 +02:00
NY00123
d50410f06b
SW: With the input tied to frame rate, disable aiming while the
...
player is dead, and also disable horizontal aiming while on a ladder.
2020-05-20 14:43:03 +02:00
NY00123
820e9ef5f9
SW: Use the old interpolation path in drawscreen if player is dead
2020-05-20 14:43:03 +02:00
NY00123
701b33da0d
SW: Make horiz centering a bit less immediate again
2020-05-20 14:43:03 +02:00
Mitchell Richters
cba38c5cfc
SW: Tie player input to frame rate.
2020-05-20 14:43:03 +02:00
Mitchell Richters
8b10f53450
SW: Add and use elapsedInputTicks and scaleAdjustmentToInterval
...
as one more step before tying input to frame rate.
2020-05-20 14:43:03 +02:00
NY00123
8085c8473d
SW: Add the q16ang and q16horiz fields to SW_PACKET. These
...
will be filled by faketimerhandler with the current player's
most recent camq16ang and camq16horiz values, respectively.
2020-05-20 14:43:03 +02:00
NY00123
de0ed067f5
SW: Modify DoPlayerTurn/DoPlayerHorizon to make it possible
...
for them to modify the player's camq16ang/camq16horiz field
instead of q16ang/q16horiz. Additionally, pass to them the
change in angle/horiz via a parameter, as an alternative
to direct access to the corresponding player input field.
2020-05-20 14:43:03 +02:00
NY00123
1f9e319d39
SW - First step in tying player input to frame rate:
...
Add the camq16ang and camq16horiz fields to the player struct.
With the exception of DoPlayerTurn and DoPlayerHorizon, whenever
code in player.cpp updates player's q16ang/q16horiz, also write
the updated values to camq16ang/camq16horiz. These variables'
preceding values are never used in these functions.
2020-05-20 14:43:03 +02:00
NY00123
b447feef91
sw/src/game.cpp:LoadLevel: Rename q16ang -> ang
2020-05-20 14:43:03 +02:00
NY00123
a2a1642f3d
SW: We can revert the change of siang to q16 now
2020-05-20 14:43:03 +02:00
NY00123
1d2aadd229
sw/src/draw.cpp:drawscreen: We can set the pp->si* fields just once,
...
a bit later.
2020-05-20 14:43:03 +02:00
NY00123
2d4766555c
SW: Revert commented out horiz->q16horiz renames in DSPRINTF strings
2020-05-20 14:43:03 +02:00
NY00123
a8a47a9eb0
SW: Fix typo in DoPlayerTeleportToSprite, following the migration to q16 angles
2020-05-20 14:43:03 +02:00
NY00123
4a8ad9b550
Fix multiplayer desync after the change to q16 angle and horiz.
...
Note that this includes non-portable unaligned accesses, but this
already applies to surrounding code. Just add comments for now.
2020-05-20 14:43:03 +02:00
NY00123
6faa73286f
SW: Trim q16 angle and horiz during demo playback/recording.
...
This uses the newly introduced PEDANTIC_MODE macro.
2020-05-20 14:43:03 +02:00
NY00123
8284fcba9a
sw/src/player.cpp:DoPlayerTurn: Increase turning precision
...
with q16 angle. This uses the new NORM_Q16ANGLE macro.
2020-05-20 14:43:03 +02:00
NY00123
1a46afaf27
Fix compatibility with existing demo files after the migration
...
to q16 angle and horiz. The original SW_PACKET structure,
named OLD_SW_PACKET here, is used while accessing demo files.
2020-05-20 14:43:03 +02:00
Mitchell Richters
0431f5ffed
SW: Refinements for Q16.16 implementation.
2020-05-20 14:43:03 +02:00
Mitchell Richters
a4fdabd860
SW: Use Q16.16 for angle.
2020-05-20 14:43:03 +02:00
Mitchell Richters
2bf2055c65
SW: Use Q16.16 for horiz.
2020-05-20 14:43:03 +02:00
NY00123
c32a8cab29
SW: Revert the changes from JFSW commit 7d0deafe81b0ffa30d77cfe242e454f8b4487a1f
...
related to the definitions of RANDOM_NEG in bunny.cpp, ripper.cpp
and ripper2.cpp. Do so in a way that isn't re-introducing compiler
warnings. This partially fixes compatibility with demos made for SW 1.2.
Additionally, replace the 3 separate definitions of RANDOM_NEG
with a common one within game.h.
From-SVN: r8798
2020-05-20 14:43:03 +02:00
NY00123
00daf6295e
SW: Fix a few memory access errors related to demo support
...
From-SVN: r8797
2020-05-20 14:43:03 +02:00
NY00123
6d537f6d75
Pack the struct SW_PACKET. While this makes demo playback
...
functional with existing demo files, the code is known
to be incompatible with demos made for SW 1.2.
From-SVN: r8792
2020-05-20 14:43:03 +02:00
Mitchell Richters
83936bf5eb
Revert "SW: Improve main game loop."
...
This reverts commit e878c5bab8
.
Revert "SW: Use Q16.16 for horiz."
This reverts commit f07a0ae01e
.
Revert "SW: Use Q16.16 for angle."
This reverts commit 1ecc74c2ec
.
Revert "SW: Minor repairs for Q16.16 implementation."
This reverts commit d78d046bad
.
Revert "SW: Process input at frame rate."
This reverts commit c162014dab
.
Revert "SW: Amendments to accommodate changes in master."
This reverts commit eaa51138ad
.
Revert "SW: Fix incorrectly declared function input type."
This reverts commit 1cdd5b08d8
.
Revert "SW: Amend scaleAdjustmentToInterval() with correct value for SW."
This reverts commit d4dd737cd5
.
Revert "SW: Refinements to new input code."
This reverts commit 5ebc65a1fb
.
Revert "SW: Adjust look and snap up/down keys and slightly tune PLAYER_TURN_AMOUNT."
This reverts commit 2852536dbf
.
Revert "SW: Get PLAYER_TURN_SCALE to be just right."
This reverts commit 4630c8a0b7
.
Revert "SW: Make map follow mode work better."
This reverts commit 8e94c48eff
.
Revert "SW: Remove line accidentally left from 'MoveScrollMode2D()'."
This reverts commit 5db8047b41
.
Revert "Fix multiplayer desync after the change to q16 angle and horiz."
This reverts commit 3bc46078b8
.
Revert "SW: Revert commented out horiz->q16horiz renames in DSPRINTF strings"
This reverts commit 537313f620
.
Revert "sw/src/draw.cpp:drawscreen: We can set the pp->si* fields just once,"
This reverts commit d2e9595980
.
Revert "sw/src/game.cpp:LoadLevel: Rename q16ang -> ang"
This reverts commit a178961a3e
.
Revert "SW: Minor tweaks."
This reverts commit 377ba68344
.
Revert "SW: Further refine turning and optimise horizon adjustment."
This reverts commit 039022d9ac
.
Revert "SW: Don't process input at frame rate if ScrollMode2D is true."
This reverts commit 1aa1e62c4d
.
Revert "SW: Use a bit more Q16.16 in places."
This reverts commit 40ca656f38
.
Revert "SW: Use the old interpolation path in drawscreen if player is dead"
This reverts commit 2d73466425
.
Revert "SW: Smooth out 180 degree turn landing and replace some fix16_min/max with fix16_clamp."
This reverts commit 0996e87f79
.
Revert "Change Next/Previous Weapon button handling for Shadow Warrior."
This reverts commit f6b8ca6a22
.
Revert "SW: Make "Center_View" key return smoothly."
This reverts commit 23c401fbc2
.
Revert "SW: Use the old interpolation path in drawscreen if player is dead"
This reverts commit 43ec16eb55
.
Revert "Interpolation fixes for SW:"
This reverts commit ac8a7ecfbd
.
Revert "SW: Reset the number of interpolations on level load"
This reverts commit 04bf8499e7
.
Revert "Another change modifying saved game format in SW:"
This reverts commit e80888523e
.
Revert "SW: Interpolate sector objects in non-demo, single player games."
This reverts commit 996ab77cf4
.
Revert "- fixed merge errors in SW."
This reverts commit b8cfa94568
.
Revert "- fix interpolation stutters when opening console for SW."
This reverts commit 99fdbfb6cb
.
Revert "- reset buttonMap button states after returning from pause for SW (stops keys acting stuck down if down prior to pausing)."
This reverts commit 693b6955da
.
Revert "SW: fix stupid input scaling bug"
This reverts commit 1c79e6e17c
.
Revert "SW: Make vehicle input better."
This reverts commit 670a53c402
.
Revert "SW: Change fix16_from_float() to fix16_from_int() that was changed in 4630c8a0b7
but should have been reverted in 377ba68344e34495638c6fa7685ff78c9a0ed6f8."
This reverts commit 423c9da071
.
Revert "SW: Remove ScrollMode2D extern boolean and move into PLAYERp struct."
This reverts commit 31eb55c1fa
.
2020-05-20 14:43:03 +02:00
Mitchell Richters
31eb55c1fa
SW: Remove ScrollMode2D extern boolean and move into PLAYERp struct.
2020-05-19 12:55:32 +02:00
Mitchell Richters
423c9da071
SW: Change fix16_from_float() to fix16_from_int() that was changed in 4630c8a0b7
but should have been reverted in 377ba68344
.
2020-05-19 12:55:32 +02:00
Mitchell Richters
670a53c402
SW: Make vehicle input better.
...
- Define new boolean 'on_vehicle' in PLAYERp struct for use with interpolating while on vehicle and other checks.
- Move horizon code back into separate DoPlayerHorizon() function. Adjusting horizon while in vehicle must come at the end of the DoPlayerOperate*() function.
- Make DoPlayerHorizon() accessible in game.cpp.
- Change code in DoPlayerHorizon() to process according how 'pp->on_vehicle' is set.
- Make scaleAdjustmentToInterval available outside of getinput().
- Don't process input at frame-rate while on a vehicle. Vehicle code is too difficult to process outside of the game's clock.
Partially based on NY00123's upstream implementation of tying player input to frame-rate.
2020-05-19 12:55:32 +02:00
Mitchell Richters
58bb2e149b
SW: Fix broken interpolation pathway following changes in 43ec16eb55
.
...
What 43ec16eb55
intends to do was already done via 2d73466425
, however I applied the if statement in the opposite order so when it was cherry-picked again, the pathway was actually reversed - interpolating when alive and not when dead.
Rather than re-apply the opposite order, I've made the if statement match upstream for more consistency and to avoid further conflicts.
2020-05-15 15:00:58 +02:00
Richard C. Gobeille
1c79e6e17c
SW: fix stupid input scaling bug
2020-05-11 21:27:29 +02:00
Mitchell Richters
8730bd9dda
- allow game's clock to keep running while paused (restores interpolations/animations in menus).
2020-05-08 21:23:02 +02:00
Mitchell Richters
ca994b31c9
SW: Set certain sync keys prior to checking them in the same function.
...
- Ensures action occurs within the requested frame and not the next.
2020-05-08 10:51:59 +02:00
Mitchell Richters
693b6955da
- reset buttonMap button states after returning from pause for SW (stops keys acting stuck down if down prior to pausing).
2020-05-06 10:51:08 +02:00
Mitchell Richters
99fdbfb6cb
- fix interpolation stutters when opening console for SW.
2020-05-06 10:51:08 +02:00
Christoph Oelckers
b8cfa94568
- fixed merge errors in SW.
2020-05-04 00:04:54 +02:00
NY00123
996ab77cf4
SW: Interpolate sector objects in non-demo, single player games.
...
Let's see if this is breaking anything.
# Conflicts:
# source/sw/src/draw.cpp
# source/sw/src/game.cpp
# source/sw/src/game.h
# source/sw/src/interp.cpp
# source/sw/src/track.cpp
2020-04-16 00:03:05 +02:00
NY00123
e80888523e
Another change modifying saved game format in SW:
...
Increase MAXINTERPOLATIONS from 1024 to MAXSPRITES.
# Conflicts:
# source/sw/src/interp.cpp
# source/sw/src/interp.h
2020-04-16 00:03:04 +02:00
NY00123
04bf8499e7
SW: Reset the number of interpolations on level load
2020-04-16 00:03:04 +02:00
NY00123
ac8a7ecfbd
Interpolation fixes for SW:
...
draw.cpp: Fix the lack of interpolation while walking on a sector
object, like the bus roof or the floor of the train in Seppuku Station.
track.cpp: Make sure the player's location and angle aren't mistakenly
interpolated while standing on a moving sector object as a consequence.
# Conflicts:
# source/sw/src/track.cpp
2020-04-16 00:03:03 +02:00
NY00123
43ec16eb55
SW: Use the old interpolation path in drawscreen if player is dead
...
# Conflicts:
# source/sw/src/draw.cpp
2020-04-16 00:03:02 +02:00
Mitchell Richters
23c401fbc2
SW: Make "Center_View" key return smoothly.
2020-04-14 00:00:22 +02:00
Mitchell Richters
db428a4f03
All Games: Make more precise use of 'scaleAdjustmentToInterval()'.
...
- Inline function returns a double, therefore we should use it and not potentially truncate the mantissa.
- Use divisors to get true numbers of some floats (3.333 -> 10/3, etc).
- Remove a few brackets/parentheses where possible from what are already exceedingly bracketed lines.
2020-04-14 00:00:21 +02:00
Mitchell Richters
f6b8ca6a22
Change Next/Previous Weapon button handling for Shadow Warrior.
...
- Makes consistent with Duke 3D, RR and Blood.
2020-04-13 23:59:49 +02:00
Mitchell Richters
0996e87f79
SW: Smooth out 180 degree turn landing and replace some fix16_min/max with fix16_clamp.
2020-04-13 23:59:17 +02:00
NY00123
2d73466425
SW: Use the old interpolation path in drawscreen if player is dead
2020-04-13 23:59:16 +02:00
NY00123
120abb1029
SW: With the input tied to frame rate, disable aiming while the
...
player is dead, and also disable horizontal aiming while on a ladder.
2020-04-13 23:59:15 +02:00
Mitchell Richters
40ca656f38
SW: Use a bit more Q16.16 in places.
2020-04-13 23:59:14 +02:00
Christoph Oelckers
156a225ff4
- renamed global palookup variable.
...
Since the same word gets used in text messages and local variables in the game code it is easier this way to search for it and facilitate its transition to the translation table management in PaletteContainer.
2020-04-13 23:58:46 +02:00
Christoph Oelckers
fda4293013
- draw the movie franes outside of the tile system to reduce the palette maintenance.
...
The movie code has always been the part causing the most issues because it alters the palettes - the rest treats them as static data.
2020-04-13 23:58:45 +02:00
Christoph Oelckers
fac004b4d2
- palette code cleanup
2020-04-13 23:58:44 +02:00
Christoph Oelckers
57cb22f135
- console code matching with GZDoom
...
Refactored the buttons to be definable locally per game for easier handling of differing input.
2020-04-12 08:30:41 +02:00
Christoph Oelckers
8e87674d4c
- backend code matching with GZDoom
2020-04-12 08:30:40 +02:00
Christoph Oelckers
0ca4bbd0c4
- changed some menu related names to match GZDoom.
2020-04-12 08:30:40 +02:00
Christoph Oelckers
5584c726ba
- file system update and adjustment.
2020-04-12 08:30:40 +02:00
Christoph Oelckers
f671eb622f
- migrated to GZDoom's utility code.
2020-04-12 08:30:39 +02:00
Christoph Oelckers
66ecb05eb8
- use Printf as the only command to print to the console.
...
All uses of OSD_Printf, initprintf etc. have been renamed.
2020-04-12 08:30:38 +02:00
Christoph Oelckers
e2f5e8fe34
- renamed 'common' to 'core'.
...
We'll need 'common' for something else.
2020-04-12 08:30:36 +02:00
Mitchell Richters
c750614211
SW: Workaround for map view showing 1px of non-border at the bottom.
2020-04-09 08:14:10 +02:00
Mitchell Richters
1aa1e62c4d
SW: Don't process input at frame rate if ScrollMode2D is true.
...
- ScrollMode2D was running at the frame rate, turning off vsync made it unacceptable.
2020-04-06 21:28:36 +02:00
Mitchell Richters
039022d9ac
SW: Further refine turning and optimise horizon adjustment.
...
- Move DoPlayerTurn() into getinput(). Vehicle code remains external for now.
- Remove horizAdjust boolean and always do horizon code in getinput(). Eliminates single off frame at start of a new level until DoPlayerMove() is called at least once.
2020-04-05 21:28:25 +02:00
Mitchell Richters
377ba68344
SW: Minor tweaks.
2020-04-05 21:28:25 +02:00
NY00123
a178961a3e
sw/src/game.cpp:LoadLevel: Rename q16ang -> ang
2020-04-05 21:28:25 +02:00
NY00123
d2e9595980
sw/src/draw.cpp:drawscreen: We can set the pp->si* fields just once,
...
a bit later.
2020-04-05 21:28:25 +02:00
NY00123
537313f620
SW: Revert commented out horiz->q16horiz renames in DSPRINTF strings
2020-04-05 21:28:25 +02:00
NY00123
3bc46078b8
Fix multiplayer desync after the change to q16 angle and horiz.
...
Note that this includes non-portable unaligned accesses, but this
already applies to surrounding code. Just add comments for now.
2020-04-05 21:28:25 +02:00
Mitchell Richters
5db8047b41
SW: Remove line accidentally left from 'MoveScrollMode2D()'.
2020-04-02 08:18:23 +02:00
Mitchell Richters
8e94c48eff
SW: Make map follow mode work better.
...
- Input was too fast following input code changes.
- Speed of input can now be changed with toggling the run key.
- Remove function 'MoveScrollMode2D()' and incorporate into 'getinput()' to reduce code duplication.
- Store map follow coordinates in PLAYERp struct and remove old globals.
2020-04-01 13:05:54 +02:00
Mitchell Richters
4630c8a0b7
SW: Get PLAYER_TURN_SCALE to be just right.
...
- Original value was 12 and was far, far too high following the Q16.16 implementation.
- Value of 3 is too fast.
- Value of 2 is too slow.
- Value of 2.4 (12 / 5) feels just right.
2020-03-31 23:15:09 +02:00
Mitchell Richters
2852536dbf
SW: Adjust look and snap up/down keys and slightly tune PLAYER_TURN_AMOUNT.
...
- Look and snap up/down action was too aggressive and unlike vanilla, corrected.
- PLAYER_TURN_AMOUNT was slightly high, unbalancing the axes.
2020-03-31 08:58:56 +02:00
Mitchell Richters
5ebc65a1fb
SW: Refinements to new input code.
...
- videoNextPage() moved to after restoring interpolations.
- Properly use Q16.16 in as many places as possible. This fixes the angle/X-axis issues.
- Remove unnecessary call to timerUpdate() in main loop, only needs calling once and is called by eventhandlers().
2020-03-30 16:20:25 +02:00
ny00123
28e69d0793
Revert the change of call to FAF_DrawRooms into a conditional one,
...
as done in r8766, since this breaks status bar output in tiled
overhead map with Polymost. Do add comment about this for now.
git-svn-id: https://svn.eduke32.com/eduke32@8779 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/draw.cpp
2020-03-30 09:55:30 +02:00
Mitchell Richters
d4dd737cd5
SW: Amend scaleAdjustmentToInterval() with correct value for SW.
2020-03-30 09:52:14 +02:00
Mitchell Richters
1cdd5b08d8
SW: Fix incorrectly declared function input type.
2020-03-30 09:52:14 +02:00
Mitchell Richters
eaa51138ad
SW: Amendments to accommodate changes in master.
2020-03-30 09:52:14 +02:00
Mitchell Richters
c162014dab
SW: Process input at frame rate.
2020-03-30 09:52:14 +02:00
Mitchell Richters
d78d046bad
SW: Minor repairs for Q16.16 implementation.
2020-03-30 09:52:14 +02:00
Mitchell Richters
1ecc74c2ec
SW: Use Q16.16 for angle.
2020-03-30 09:52:14 +02:00
Mitchell Richters
f07a0ae01e
SW: Use Q16.16 for horiz.
2020-03-30 09:52:14 +02:00
Mitchell Richters
e878c5bab8
SW: Improve main game loop.
...
- Remove MoveLoop() as it's only ever called by RunLevel().
- Continuously call getinput() and domovethings() within the game's tic rate.
2020-03-30 09:52:14 +02:00
Christoph Oelckers
41545b644a
- cleaned out most of the software renderer's static global variables.
2020-03-29 16:59:49 +02:00
Christoph Oelckers
621a9338e5
- render camera textures with the hardware renderer.
...
This removes the last active use case for the software renderer and allows rendering the camera views at a higher resolution.
For Shadow Warrior this necessitated a split of JS_DrawMirrors, because it processed cameras and mirrors in the same loop which cannot be done with the hardware renderer.
2020-03-29 14:01:46 +02:00
ny00123
da1d97ba9c
sw/src/draw.cpp: Don't draw rooms if textured overhead map is drawn
...
later. This also turns out to fix a Polymost-specific bug revealed
in SVN r8711. Further remove a call to PicInView which does nothing.
git-svn-id: https://svn.eduke32.com/eduke32@8766 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-20 17:39:35 +01:00
Christoph Oelckers
de2c07aa6a
- revert all consolidation efforts between Duke and RR frontends.
...
Too many problems with different code.
2020-03-18 08:24:31 +01:00
Christoph Oelckers
c9a69d96b2
- SW: copied fix from SWR to always spawn anime girls for the addons.
2020-03-08 20:53:04 +01:00
ny00123
d98bf9ba62
sw/src/draw.cpp:ResizeView: Make map zooming less dependent
...
on the frame rate
git-svn-id: https://svn.eduke32.com/eduke32@8700 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/draw.cpp
2020-03-08 08:02:01 +01:00
ny00123
68f249873c
sw/src/weapon.cpp: Comment out unused MissileSeek and ComboMissileSeek
...
params, but leave them for documentation. Note that currently, the
only use of ComboMissileSeek is in the saveable_weapon_code array.
git-svn-id: https://svn.eduke32.com/eduke32@8698 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:49:24 +01:00
ny00123
cf093e9ea6
SW: Comment out function parameters accessed only in commented out code
...
git-svn-id: https://svn.eduke32.com/eduke32@8697 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:48:28 +01:00
ny00123
4842f18f1b
SW: Mark function parameters as unused in cases we can't easily change
...
the functions' signatures (often due to being used as callbacks/hooks)
git-svn-id: https://svn.eduke32.com/eduke32@8696 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/jnstub.cpp
# source/sw/src/menus.cpp
# source/sw/src/panel.cpp
# source/sw/src/text.cpp
2020-03-07 19:48:14 +01:00
ny00123
3e8dc4e509
SW: Remove a bunch of unused function parameters
...
git-svn-id: https://svn.eduke32.com/eduke32@8694 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/brooms.cpp
# source/sw/src/draw.cpp
# source/sw/src/game.cpp
# source/sw/src/inv.cpp
# source/sw/src/save.cpp
# source/sw/src/spike.cpp
# source/sw/src/text.cpp
# source/sw/src/weapon.cpp
2020-03-07 19:45:38 +01:00
ny00123
f9155048fc
sw/src/weapon.cpp: Remove conditional set of unused variable hsp
...
in InitMineShrap, as well as unused variable sp in TestDontStick
git-svn-id: https://svn.eduke32.com/eduke32@8693 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:38:46 +01:00
ny00123
9c7553c776
sw/src/weapon.cpp: Insert unused SHRAP structs into #if 0 blocks
...
git-svn-id: https://svn.eduke32.com/eduke32@8692 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:38:21 +01:00
Christoph Oelckers
73a4e0d1fe
- made Blood's FullMap flag global and removed the hacks to show the full automap.
...
Also refactor show2dsector into a bit array to get rid of the bit shifting code at play here.
2020-03-07 19:30:18 +01:00
ny00123
14a2560d5f
sw/src/player.cpp: Remove unused globals related to mouse status
...
git-svn-id: https://svn.eduke32.com/eduke32@8690 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:30:18 +01:00
ny00123
f5df1b5a19
sw/src/player.cpp: A bit more complicated cases of unused vars
...
git-svn-id: https://svn.eduke32.com/eduke32@8689 1a8010ca-5511-0410-912e-c29ae57300e0
2020-03-07 19:30:18 +01:00
ny00123
ed6e9df07c
SW: Handle cases in which the result of an expression
...
with (possible) side-effects is written to an unused var.
git-svn-id: https://svn.eduke32.com/eduke32@8688 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/console.cpp
# source/sw/src/jnstub.cpp
# source/sw/src/save.cpp
# source/sw/src/sounds.cpp
# source/sw/src/swconfig.cpp
2020-03-07 19:30:18 +01:00
ny00123
d55871927a
SW: Comment out unused vars, which would become
...
used if previously commented out code was uncommented
(including a few instances of uninitialized var reads).
git-svn-id: https://svn.eduke32.com/eduke32@8686 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/brooms.cpp
# source/sw/src/cheats.cpp
# source/sw/src/draw.cpp
# source/sw/src/game.cpp
# source/sw/src/jnstub.cpp
# source/sw/src/menus.cpp
# source/sw/src/rts.cpp
# source/sw/src/sector.cpp
# source/sw/src/setup.cpp
# source/sw/src/sounds.cpp
# source/sw/src/weapon.cpp
2020-03-07 19:30:17 +01:00
ny00123
896de8aa1c
SW: Remove a ton of unused vars
...
git-svn-id: https://svn.eduke32.com/eduke32@8685 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/anim.cpp
# source/sw/src/border.cpp
# source/sw/src/brooms.cpp
# source/sw/src/config.cpp
# source/sw/src/console.cpp
# source/sw/src/coolie.cpp
# source/sw/src/draw.cpp
# source/sw/src/game.cpp
# source/sw/src/hornet.cpp
# source/sw/src/jbhlp.cpp
# source/sw/src/jnstub.cpp
# source/sw/src/jsector.cpp
# source/sw/src/menus.cpp
# source/sw/src/miscactr.cpp
# source/sw/src/network.cpp
# source/sw/src/ninja.cpp
# source/sw/src/player.cpp
# source/sw/src/save.cpp
# source/sw/src/serp.cpp
# source/sw/src/setup.cpp
# source/sw/src/sounds.cpp
# source/sw/src/sprite.cpp
# source/sw/src/swconfig.cpp
# source/sw/src/weapon.cpp
2020-03-07 19:30:17 +01:00
Christoph Oelckers
2c203fbf80
- more consolidation between RR and Duke.
2020-03-06 19:29:13 +01:00
Christoph Oelckers
375bf639de
- that was stupid.
2020-03-01 18:40:49 +01:00
Christoph Oelckers
ee191f0681
- SW: map cheat partially reimplemented.
2020-03-01 16:33:06 +01:00
Christoph Oelckers
2e8ace603b
- fixed SW sound crash.
2020-03-01 13:10:07 +01:00
Christoph Oelckers
fde633041b
- SW: fixed ownership of non-following sounds.
2020-03-01 10:59:53 +01:00
Christoph Oelckers
809d2fc555
- fixed SW: DoPlayerFall should only stop the scream sound, but nothing else.
2020-03-01 09:59:52 +01:00
Christoph Oelckers
d6b17c0406
- fixed bad vector comparison in SW's sound code.
2020-03-01 09:18:23 +01:00
Christoph Oelckers
61fbbc56c0
- fixed intermittent ambient sounds in SW.
2020-02-29 17:55:31 +01:00
Christoph Oelckers
69e018d0c4
- added serialization of playing sounds.
...
For ambient sounds that can be cleanly restarted a new 'transient' flag was added so that these do not get written out.
Tested on SW so far, other games yet to do.
2020-02-29 12:33:35 +01:00
Christoph Oelckers
4414d59fbc
- added a check to the player sound code to prevent the surfacing sound from blocking out other speech.
...
The start of the third level is badly timed and this will block the introduction line.
2020-02-29 09:30:12 +01:00
Christoph Oelckers
3855eb889e
- SW: fixed ambient sound playback.
...
There was a coordinate and a restarting problem.
2020-02-27 23:11:03 +01:00
Christoph Oelckers
ca18e70f2d
- SW: Do not skip status bar when the menu is up.
2020-02-26 01:06:07 +01:00
Christoph Oelckers
864c3c5766
- SW: Fixed fortune cookie text display.
2020-02-25 21:03:38 +01:00
Christoph Oelckers
8c01061053
- SW: Explicitly call hud_size's callback to reinitialize the status bar when loading a savegame.
...
Since part of the bar's content is stored in a savegame it needs to be manually refreshed after loading or it may display garbage.
2020-02-25 20:51:58 +01:00
Christoph Oelckers
83adb81756
- call the proper functions to stop sounds in Shadow Warrior.
2020-02-23 17:13:18 +01:00
Christoph Oelckers
c35a2e5f11
- do not hold persistent references to sound channels in SW's ambient sound code.
...
For robustness, channels should always be looked up when needed so that the sound engine is free to do with them as it needs.
2020-02-23 15:41:57 +01:00
Christoph Oelckers
9fab46b7d7
- initialize the secret hint system for each level.
2020-02-22 08:57:18 +01:00
Christoph Oelckers
7dc26a3162
- stop all playing sound when starting a new game.
...
- give all bonus screen sounds in Duke the CHANF_UI flag.
2020-02-17 19:43:58 +01:00
Christoph Oelckers
a657b55b50
- give all cutscene sounds in SW the CHANF_UI flag.
2020-02-17 19:12:05 +01:00
Christoph Oelckers
3cd2b92dd1
- pause all game sounds while the menu or console are open and marked SW's UI sounds as such.
2020-02-16 20:08:04 +01:00
Christoph Oelckers
410f5a4545
- clean out stale sprite pointers in User when a sprite gets removed.
...
This was the main reason for those constant crashes, the game was accessing an invalid sprite, treating its data as valid.
Also added a few checks for valid targets in two places where it still crashed.
2020-02-14 21:44:59 +01:00
Christoph Oelckers
071a364d83
- SW: Stop all sound before starting a cutscene
2020-02-14 00:52:57 +01:00
Christoph Oelckers
dff86c7e38
- removed some coordinate fudging for drawing SW's automap background
...
The current code does not need this
2020-02-14 00:41:36 +01:00
Christoph Oelckers
84bf6ad785
- unused code removed
2020-02-14 00:38:22 +01:00
Christoph Oelckers
844dcc22ae
- SW: Don't allow level change via cheat when dead.
2020-02-14 00:37:15 +01:00
Christoph Oelckers
7909f29691
- allow starting Duke, NAM and WW2GI with the RedNukem-based game code for Redneck Rampage.
...
This mainly required some rework of the menu setup to be less explicit about the frontend's menu classes.
2020-02-12 20:25:59 +01:00
Christoph Oelckers
a67c281290
- added StopFX function for Shadow Warrior.
...
Needed by an upstream change.
2020-02-11 19:28:25 +01:00
hendricks266
9269295102
SW: Don't restart the music when loading a save playing the same track
...
git-svn-id: https://svn.eduke32.com/eduke32@8627 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/game.cpp
# source/sw/src/save.cpp
2020-02-11 18:21:58 +01:00
hendricks266
5d475c2788
SW: Add handleevents to end credits
...
From JFSW commit 0c651743f8371fade0231e9c3206ca25e6ae5269
git-svn-id: https://svn.eduke32.com/eduke32@8626 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-11 18:21:00 +01:00
hendricks266
0b23c14b9d
SW: Fix potential blank 3DR logo
...
From JFSW commit 18d1c68893693e68d0ce7d41bd1eacbec5655d4f
git-svn-id: https://svn.eduke32.com/eduke32@8625 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/game.cpp
2020-02-11 18:20:59 +01:00
hendricks266
8e0407a425
SW: Fix potential buffer overrun in colormap
...
From JFSW commit 18d1c68893693e68d0ce7d41bd1eacbec5655d4f
git-svn-id: https://svn.eduke32.com/eduke32@8624 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-11 18:20:22 +01:00
Christoph Oelckers
41f2c62ed1
- use the original Build engine compatibility for Shadow Warrior.
...
The 'modern' code causes problems with the tank in the fourth map and probably elsewhere, too.
2020-02-10 22:38:17 +01:00
Christoph Oelckers
a32bc350f1
- allow all keys to open the menu in Blood's demo loop.
2020-02-10 20:35:21 +01:00
Christoph Oelckers
1054356cef
- fixed CD music playback in SW on maps with no MIDI defined.
2020-02-08 21:37:32 +01:00
Christoph Oelckers
803e57c3b3
- fixed: Reverb must be fully disabled when starting the SW intermission.
2020-02-05 20:25:18 +01:00
Christoph Oelckers
d7e54f83de
- fixed ShadowWarrior's 'map' CCMD.
2020-02-05 18:55:10 +01:00
Christoph Oelckers
a90185bea9
- cleaned up the remaining dependencies on windows.h
...
This file now only gets included by code that really needs it.
2020-02-03 21:30:57 +01:00
hendricks266
060d19ae35
SW: Clamp tsprz of blood pool floor decals
...
git-svn-id: https://svn.eduke32.com/eduke32@8598 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/names2.h
2020-02-02 20:50:39 +01:00
hendricks266
364b41bd55
SW: Clamp tsprz of Bouncing Betty mines to their floorz if beneath the floor
...
This fixes their invisibility in Polymost.
git-svn-id: https://svn.eduke32.com/eduke32@8597 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/draw.cpp
2020-02-02 20:49:54 +01:00
Christoph Oelckers
df36f27b32
- added a few missing voxel checks.
2020-02-02 20:48:40 +01:00
Christoph Oelckers
ca21852945
- hook up -nologo.
2020-02-02 20:44:57 +01:00
hendricks266
5fdd69cbbb
SW: Add Redux's workaround for glitchy fist HUD sprites in widescreen
...
git-svn-id: https://svn.eduke32.com/eduke32@8589 1a8010ca-5511-0410-912e-c29ae57300e0
2020-02-02 20:37:21 +01:00
alexey.lysiuk
d0c58b8e64
- fixed: weapon names were printed instead of ammo in Shadow Warrior
2020-02-02 14:37:07 +02:00
Christoph Oelckers
4d7a43004c
- use the new SW interpolation function for all games.
2020-02-02 10:27:47 +01:00
Christoph Oelckers
f76d139207
- fixed SW's interpolation math.
2020-02-02 09:51:44 +01:00
Christoph Oelckers
a594ba32d4
- added assignment to an unused scratch variable to the InitActor*Noise functions.
...
They are used a state identifiers but identical content-wise so MSVC's linker would merge them all together into one if some code wasn't added to make them different.
A global check for the scratch variable was added in a harmless place to ensure that whole program optimization algorithms won't optimize it out anyway after discovering that the variable is never used.
2020-02-02 08:53:28 +01:00
Christoph Oelckers
0e1eeea037
- use the game palette directly for palette lookups.
...
The setup here is far too messy for having a copy in a better format - it can be changed in some non-obvious places.
2020-02-01 23:05:43 +01:00
Christoph Oelckers
1cce5d8de2
- fixed RR was still generating input events when the game was paused.
2020-02-01 13:07:58 +01:00
Christoph Oelckers
77ad7dfb81
- fixed incomplete savegame restoration from inside the game.
...
This now quits the game loop instead of trying to set up the loaded level from inside it.
2020-02-01 10:50:40 +01:00
Christoph Oelckers
4bf519dcb0
- fixed copy/pasted broken 'map' CCMD.
2020-01-30 20:25:52 +01:00
Christoph Oelckers
a32da009bd
- moved V_Init2 in SW a little further up so that the cache calls are being made with an initialized renderer.
2020-01-29 19:06:26 +01:00
Christoph Oelckers
8657ecb35d
- implemented 'map' CCMD for all games.
2020-01-28 11:20:30 +01:00
Christoph Oelckers
9ca1e56713
- added extended sound lookup as well plus menu options.
2020-01-27 22:29:45 +01:00
Rachael Alexanderson
1c8c2543cb
- fixed: Shadow Warrior: End sequence was still 'hung'
2020-01-27 11:11:21 -05:00
Christoph Oelckers
245aa5d3bc
- reworked global palette state for robustness.
2020-01-26 10:58:00 +01:00
Christoph Oelckers
fd1e63b996
- allow skipping in the end of game sequence.
2020-01-24 21:41:47 +01:00
Christoph Oelckers
08e69b1d2e
- fixed missing messages in Shadow Warrior.
2020-01-24 19:51:06 +01:00
Rachael Alexanderson
69ebd9a95d
- update shadow warrior's PutStringInfo to put newlines in the console automatically (it was this, or update every use of PutStringInfo to have them)
2020-01-23 13:05:09 -05:00
Rachael Alexanderson
52897c0cbb
- complete the "give" commands for Shadow Warrior
...
- add a "levelwarp" cheat for Shadow Warrior
2020-01-23 12:56:19 -05:00
Rachael Alexanderson
ae001b6cda
- oops, missing files
2020-01-23 07:13:20 -05:00
Rachael Alexanderson
0f3b3300fb
- not yet finished: this enables some console cheats in Blood and Shadow Warrior
2020-01-23 05:50:12 -05:00
Christoph Oelckers
b98019a4ba
- added some debug asserts to the savegame symbol code so that it always breaks into the debugger in case of a symbol error.
2020-01-22 22:57:28 +01:00
Christoph Oelckers
6958e0326d
- Shadow Warrior fixes
...
* added missing entries to saveables.
* added several null pointer checks to places where the game crashed.
2020-01-22 22:49:51 +01:00
Christoph Oelckers
dcbb936a9b
- fixed hud_scale for Shadow Warrior.
2020-01-22 15:21:07 +01:00
Christoph Oelckers
6a06f6aef4
- fixed typo in string label.
2020-01-22 13:41:55 +01:00
Christoph Oelckers
9c423ae6a3
- take down the level outside the LoadGame function in ShadowWarrior.
...
With the new savegame system it was done too late which could cause crashes.
2020-01-21 23:36:54 +01:00
Christoph Oelckers
27cc865af7
- null checks in SW.
2020-01-21 22:03:04 +01:00
Christoph Oelckers
493525a58e
- consolidation of engine save code.
...
This had discrepancies between the game modules so now all use the same code to save the common engine state.
2020-01-21 21:51:05 +01:00
Christoph Oelckers
8db6a4331b
- added savepic generation for Blood.
2020-01-14 21:20:46 +01:00
Christoph Oelckers
e30975581b
- enabled savegame pictures in Shadow Warrior.
...
Unlike the original game this enables mirrors - no idea why they were disabled, some limitation of the software renderer, maybe?
2020-01-14 20:44:20 +01:00
Christoph Oelckers
dc5b8d27f8
- infrastructure for savegame pics.
...
Savepic generation implemented for Duke 3D, but results in a black image.
2020-01-12 23:16:21 +01:00
Christoph Oelckers
95f917a408
- added the main vertex buffer and some code to maintain it on systems where persistent mapping is not possible.
...
All games combined there's 11(!!!) scene render blocks, not counting the sub-blocks for ROR and mirrors.
Does it surprise anyone that most of these sub-blocks do not feature all engine capabilities?
2020-01-12 20:28:07 +01:00
Christoph Oelckers
a5f08a4734
- fixed Shadow Warrior save game loading from the main menu.
2020-01-11 18:50:38 +01:00
Christoph Oelckers
b8ac5aea84
Merge branch 'master' of https://github.com/coelckers/Raze
2020-01-07 01:11:33 +01:00
Christoph Oelckers
fb985d2503
- more macOS compilation fixes
...
Still not complete…
2020-01-07 01:11:19 +01:00
Christoph Oelckers
1d315ae67b
- added savegame symbols for the extra gory ninja death.
2020-01-06 21:12:42 +01:00
Christoph Oelckers
134122335b
- first attempt to compile on a Mac
...
This could have gone better, there's far too many warnings here
2020-01-06 02:41:47 +01:00
Christoph Oelckers
93d634813d
- fixed SW's savegame handling.
...
This set up the wrong game state for saves from within the game loop.
2020-01-05 20:41:57 +01:00
Christoph Oelckers
83292c9dd6
- fixed a few issues and added some savegame debug code for Shadow Warrior.
2020-01-05 18:49:19 +01:00
Christoph Oelckers
746aa4da82
- added a ClearScreen function to the 2D drawer to wrap the frequent occurence of this use case.
2020-01-05 10:48:44 +01:00
Christoph Oelckers
e61e77fb82
- handle textures in the render state.
...
This should complete the transition and allow storing the render state in an array so that Polymost can be rewritten to create draw lists instead of actually doing the rendering itself.
2020-01-04 23:58:26 +01:00
Christoph Oelckers
e982c30590
- fixed Shadow Warrior's mirror code.
2020-01-04 23:23:36 +01:00
Christoph Oelckers
e01c161258
- removed some dead variables.
2020-01-01 13:11:44 +01:00
Christoph Oelckers
d464017363
- cleaned up the input code a bit.
2020-01-01 11:35:47 +01:00
Christoph Oelckers
bcb48d8441
- added handling for changing the screen size (dragging the window borders / change scale factor)
2020-01-01 09:49:06 +01:00
Christoph Oelckers
f106505344
- fixed the broken alignment between lines and sectors on the Shadow Warrior automap.
2019-12-31 22:11:04 +01:00
Christoph Oelckers
9543c2cbb9
- fixed the broken automap defaults in Shadow Warrior.
...
Now it will properly reveal the map as the player progresses and not show everything from the start.
2019-12-31 22:05:23 +01:00
Christoph Oelckers
05e381ff6d
- fixed screen clearing for the automap.
...
This should only affect the active window, not the entire screen.
2019-12-31 19:50:27 +01:00
Christoph Oelckers
d3a57e6e74
- route all clearscreen calls that happen after drawing the scene through the 2D drawer.
...
Otherwise they aren't synchronized with the remaining content.
2019-12-31 19:25:49 +01:00
Christoph Oelckers
ad24a1ce31
- place weapon sprites in a separate render list.
...
They need to be drawn in a different pass than the 2D overlay HUD so the backend must have them separately.
2019-12-30 20:16:51 +01:00
hendricks266
6465feb438
Refactor tsprite creation into renderAddTSpriteFromSprite
...
git-svn-id: https://svn.eduke32.com/eduke32@8521 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
# source/duke3d/src/m32exec.cpp
2019-12-29 22:22:19 +01:00
Christoph Oelckers
3a6d0b8f84
- more cleanup.
2019-12-29 17:04:38 +01:00
Christoph Oelckers
2e261a7468
- cleanup and removal of unused code.
...
compat.h probably needs a bit more attention, it's a horrendous mess of the wrong type of "compatibility" concerns.
2019-12-29 16:35:51 +01:00
Christoph Oelckers
7e758a5e48
- hook up the savegame code in Exhumed. Superficially it looks like it works but it will require a lot more testing.
...
- fixed per-frame sound system update in Exhumed.
Sound is still quite broken and will require more work.
2019-12-27 17:07:09 +01:00
Christoph Oelckers
a4c5fbe295
- savegame name generation fix for SW.
2019-12-27 10:48:43 +01:00
Christoph Oelckers
6373b75d22
Merge branch 'master' into powerslave
...
# Conflicts:
# source/common/gamecontrol.cpp
# source/common/version.h
# wadsrc/static/engine/grpinfo.txt
2019-12-26 14:46:14 +01:00
Christoph Oelckers
62e9112133
- renamed the internal resource directory to "engine" and routed most literal mentions of the engine name through version.h
...
All this comes from a time when I didn't use version.h so it's better to do it the same way as GZDoom to allow easy renaming of the engine.
2019-12-26 14:04:53 +01:00
Christoph Oelckers
d8dfe752b5
- fixed handling of music in Redneck Rampage and Shadow Warrior.
...
After merging the CD enabling CVAR they had the same default (off) as Blood which is wrong.
This also addresses other music related issues, like not properly cycling through the RR music.
2019-12-26 13:04:29 +01:00
hendricks266
8e6a54a1e4
Mostly clean up the codebase in preparation for tspritetype != uspritetype
...
Remaining exceptions:
SW - ConnectCopySprite
CON and M32Script - pSprite/pUSprite
git-svn-id: https://svn.eduke32.com/eduke32@8519 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/polymer.h
# source/build/src/engine.cpp
# source/build/src/engine_priv.h
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/duke3d/src/astub.cpp
# source/duke3d/src/game.h
# source/duke3d/src/m32common.cpp
# source/duke3d/src/m32exec.cpp
# source/duke3d/src/m32structures.cpp
# source/kenbuild/src/bstub.cpp
# source/kenbuild/src/game.cpp
# source/sw/src/jnstub.cpp
# source/sw/src/jsector.cpp
2019-12-26 08:58:25 +01:00
hendricks266
3bbecf84c2
SW: Fix FindDistance3D calls to not z>>4 at the call site
...
This is handled by the function itself now.
Fixes the distance issue with the ceiling fan.
git-svn-id: https://svn.eduke32.com/eduke32@8525 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-26 08:54:17 +01:00
hendricks266
ae94566fb5
SW: Draw the crosshair actually centered
...
Thanks to Striker for the tip.
git-svn-id: https://svn.eduke32.com/eduke32@8524 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/draw.cpp
2019-12-26 08:53:36 +01:00
hendricks266
846c7eaff2
SW: Run all allocations through Xmalloc et al
...
git-svn-id: https://svn.eduke32.com/eduke32@8515 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/src/driver_winmm.cpp
# source/audiolib/src/flac.cpp
# source/sw/src/StartupWinController.game.mm
# source/sw/src/bldscript.cpp
# source/sw/src/game.cpp
# source/sw/src/game.h
# source/sw/src/grpscan.cpp
# source/sw/src/jbhlp.cpp
# source/sw/src/rts.cpp
# source/sw/src/scrip2.cpp
# source/sw/src/sounds.cpp
2019-12-26 08:47:09 +01:00
Christoph Oelckers
1a8f11e01d
Merge branch 'master' into powerslave
...
# Conflicts:
# source/build/src/sdlayer.cpp
# source/common/menu/menu.cpp
# source/sw/src/config.cpp
# source/sw/src/game.cpp
2019-12-26 00:21:04 +01:00
Christoph Oelckers
e180d9afd3
Merge commit '40a533402e443a0de1673543642c892ab9c731fd' into powerslave
...
# Conflicts:
# source/audiolib/include/fx_man.h
# source/audiolib/include/multivoc.h
# source/audiolib/src/_multivc.h
# source/audiolib/src/fx_man.cpp
# source/audiolib/src/multivoc.cpp
2019-12-25 19:24:55 +01:00
Christoph Oelckers
120a985b98
- disable palette transparency for color 255 when running an animation.
...
There's several intro cutscenes using the full palette and for these the color must not be nulled as it should for in-game textures.
2019-12-25 14:13:15 +01:00
Christoph Oelckers
b0cefdedce
- plugged all memory leaks that were reported with Shadow Warrior when starting the first level.
2019-12-25 11:26:19 +01:00
Christoph Oelckers
055b310d60
- rewrote all remaining places that used wm_msgbox to throw a fatal error instead so that the global error handler can deal with the messages.
...
This eliminates another piece of hideous code.
This commit also moves the memory error handler to the common code, so that all games can call it if triggered.
2019-12-24 19:59:14 +01:00
Christoph Oelckers
2820dc85a8
- plugged more memory leaks.
...
I can now start the first Duke Nukem level, exit with Alt-F4 and no leaked memory blocks get reported.
2019-12-24 18:53:29 +01:00
Christoph Oelckers
e8d7777f4a
- mouse input works again after cleaning out the remaining cruft of the old input code.
2019-12-24 13:54:50 +01:00
Christoph Oelckers
1b9a2f5932
- disabled the message entering code.
...
This needs to be replaced with the game independent ZDoom version and hooked up properly, but it of low priority because it's a multiplayer only feature.
2019-12-24 13:21:36 +01:00
Christoph Oelckers
a870df840e
- hooked up the input system and did a major cleanup.
...
Much of the old system is no longer needed with all buttons being handled as keys.
Mouse axis movement is not working yet.
2019-12-24 12:59:26 +01:00
Christoph Oelckers
9ab8a8c737
- refactored the coordinate printout to a stat and removed printext256 and the associated font.
2019-12-23 20:55:12 +01:00
Christoph Oelckers
3b98635170
- removed all remaining references to SDL. The Windows version is now fully native.
2019-12-23 20:03:03 +01:00
Christoph Oelckers
62ecedf1f8
- got it to the point where it can render to the GL surface from the native backend.
2019-12-23 19:37:40 +01:00
hendricks266
f4fda7e646
SW: Fix crash issues when Track sprites are set up incorrectly
...
git-svn-id: https://svn.eduke32.com/eduke32@8485 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-22 15:19:55 +01:00
hendricks266
e50cdbad0c
SW, KenBuild: Remove some unnecessary #ifdef RENDERTYPEWIN
...
git-svn-id: https://svn.eduke32.com/eduke32@8482 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/kenbuild/src/config.cpp
# source/sw/src/config.cpp
# source/sw/src/game.cpp
2019-12-22 15:19:15 +01:00
hendricks266
acd56e319a
SW: Add tailspritefree to savegames
...
git-svn-id: https://svn.eduke32.com/eduke32@8481 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/save.cpp
# source/sw/src/sounds.cpp
2019-12-22 15:16:58 +01:00
hendricks266
deec38c827
Expose nextvoxid variable
...
This allows game and defs to not overwrite each other's voxels.
git-svn-id: https://svn.eduke32.com/eduke32@8471 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/kenbuild/src/bstub.cpp
# source/kenbuild/src/game.cpp
# source/sw/src/bldscript.cpp
# source/sw/src/jnstub.cpp
2019-12-22 15:12:49 +01:00
hendricks266
f03bc3656f
SW: Add call to palettePostLoadLookups
...
git-svn-id: https://svn.eduke32.com/eduke32@8469 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/jnstub.cpp
2019-12-22 15:11:13 +01:00
Christoph Oelckers
a38077a17e
- clear the intermittent sound ticker when the sound gets checked.
2019-12-19 12:08:01 +01:00
Christoph Oelckers
c056a53792
- fixed ANM playback in Shadow Warrior and removed the rather pointless caching for the ANM files.
2019-12-19 10:18:05 +01:00
Christoph Oelckers
ef01c34346
- fixed status bar initialization for all games.
...
Also deleted a few obsolete config variables for the old menu.
2019-12-19 09:31:39 +01:00
Christoph Oelckers
e348fcb843
- fixed playback on the wrong sound channel.
2019-12-19 09:29:23 +01:00
Christoph Oelckers
92c8e4c110
- maintain ambient sounds in a separate structure.
2019-12-19 01:20:43 +01:00
Christoph Oelckers
52d13f5ee0
- fixed a few sound issues in Shadow Warrior.
...
Ingame sound appears to be mostly working, menu doesn't yet.
2019-12-18 23:18:23 +01:00
Christoph Oelckers
2cf9a4a626
- removed leftpver music calls as well.
...
The code should now be free of the old audio backend.
2019-12-18 22:32:09 +01:00
Christoph Oelckers
3f9657b96a
- removed all leftover dependencies on the old sound backend.
2019-12-18 22:24:50 +01:00
Christoph Oelckers
591ace496f
- SW sound refactoring complete, not tested yet.
2019-12-18 22:13:19 +01:00
Christoph Oelckers
a087d566ee
- more refactoring on SW's sound system:
...
* removed all cases of getting a sound handle and checking it later.
* In particular, refactor the cases where the handle is stored in a static local variable. These are fundamentally unsafe because nothing maintains these local variables.
* finished rewriting the PlaySound function. Let's hope this is what was intended, the entire coding here was not particularly good, mixing high and low level sound handling all on the same level.
* call the update routine each tic and not merely every 4th or 8th one, this kind of granularity was ok in 1997 but not with a modern sound engine.
2019-12-18 19:17:37 +01:00
Christoph Oelckers
75c76ccf66
- changed SW's PlaySound interface to take pointers to objects instead of pointers to coordinates.
...
With pointers to coordinates the sound engine cannot work, so this had to be changed globally.
2019-12-18 11:09:01 +01:00
Christoph Oelckers
a7075bc1b0
- SW sound WIP
...
* removed old sound loading code, which was the last bit to use cacheAllocateBlock which is also gone now.
* cleanup of player sound code. All game side tracking of the sound resources has been removed.
does not compile yet.
2019-12-17 23:25:07 +01:00
Christoph Oelckers
650b53454d
- cleaned up SW sound code a bit and thinned out the original console code
2019-12-17 21:33:53 +01:00
Christoph Oelckers
fa7638c446
- removed the old sound system header from Duke and RR frontends and fixed every report this produced:
...
* reverb/echo is not yet implemented, so there's two stub functions for now.
* RTS needs to be done differently, because the sound engine cannot play raw buffers without any control data.
2019-12-16 19:18:03 +01:00
Christoph Oelckers
d24bd0fc14
- added refactored sound code to RR frontend.
...
- removed most code using the low level sound interface directly from Duke and RR frontends.
2019-12-16 16:18:47 +01:00
Christoph Oelckers
9b9c009de9
- copybyte is not the same as memcpy.
...
It should be inlined to use it, though, because homegrown loops for this stuff may have been ok in 1995, but not in 2019.
2019-12-15 21:06:41 +01:00
Christoph Oelckers
d23b4a7e33
- hooked up ZDoom' joystick code and removed the remaining parts of the old MACT input library.
2019-12-14 20:15:15 +01:00
Christoph Oelckers
cbfb79977a
- adjustments to make it compile with the new menu code.
2019-12-13 21:01:14 +01:00
Christoph Oelckers
052ed5fff7
Merge branch 'master' into powerslave
2019-12-13 20:43:23 +01:00
Christoph Oelckers
4d28940d2f
- commented stuff out to make it compile.
2019-12-13 00:19:16 +01:00
Christoph Oelckers
3f524d7026
- set currentLevel in SW
2019-12-11 02:30:34 +01:00
Christoph Oelckers
875678f20b
- transitioned Shadow Warrior to the global mapinfo
2019-12-11 02:01:11 +01:00
Christoph Oelckers
0e19d4262e
- savegame and mapinfo cleanup in DN3D and RR frontends.
...
Also added an "end game" flag to the mapinfo. For those who like to assemble single levels into custom episodes. More features for that to come. ;)
2019-12-10 22:22:59 +01:00
Christoph Oelckers
16818d2d71
- exported Shadow Warrior strings to stringtable.
...
The MP obituaries are not handled yet, they were only copied but there's no code using them.
2019-12-09 21:19:05 +01:00
Christoph Oelckers
6ef1f96b40
- added SWP's parser for theme music definitions.
...
Because, why not? The SWCustom I use already contains them.
However, since the original source does not play theme MIDIs - only CDA, there's a switch to disable them.
2019-12-09 20:12:54 +01:00
Christoph Oelckers
e62f6cbc20
- weapon and ammo names are now also localizable.
2019-12-09 19:49:36 +01:00
Christoph Oelckers
da1900dc8a
- same for inventory pickup messages.
2019-12-09 19:00:30 +01:00
Christoph Oelckers
670c8b1408
- use the quote array to store the key, door and fortune cookie messages in Shadow Warrior.
...
This is infinitely better than leaking char pointers.
2019-12-09 18:40:07 +01:00
Christoph Oelckers
ba978ab0d9
- text update and missing includes.
2019-12-09 17:17:15 +01:00
Christoph Oelckers
0604c72586
- code cleanup
...
removed some unused definitions
replaced the copybuf* functions with memcpy. These days doing homegrown copy loops is not efficient anymore.
2019-12-09 01:39:40 +01:00
Christoph Oelckers
66218dd074
- connect SW with statistics code and added missing function for Blood
...
# Conflicts:
# source/blood/src/blood.h
# source/common/menu/messagebox.cpp
# source/sw/src/game.cpp
# source/sw/src/game.h
2019-12-09 01:03:18 +01:00
Christoph Oelckers
9f25c9c117
- some string rework
...
* removed temporary placeholder content from string init function. All this gets properly read from definition files now.
* preinitialize a few quotes that are used for status display purposes and are needed in all games
* only use the global episode name table in Blood to avoid redundancy
* let SW's swcustom parser write to the global tables instead of local ones.
2019-12-09 01:00:46 +01:00
Christoph Oelckers
f2d0665557
- connected the screen size CVAR and slider with Shadow Warrior's internal setting.
2019-12-07 21:39:17 +01:00
Christoph Oelckers
8f90cc8324
- more Shadow Warrior cleanup.
2019-12-07 20:48:16 +01:00
Christoph Oelckers
0157446ad1
- thorough cleanup of the Shadow Warrior music code.
...
This was one huge mess where nothing fit together.
Also added an enhancement that the CD Audio boss theme tracks are also played when CD music is generally off, because these have no equivalent in MIDI. This needs to be checked if it's stylistically ok, though.
2019-12-07 19:57:19 +01:00
Christoph Oelckers
2ed03214b1
- disable the save option in SW's main menu if no game is running.
2019-12-07 15:07:43 +01:00
Christoph Oelckers
9960b505e8
- added captions to SW's game menus.
...
- made Duke Nukem's quote strings localizable.
2019-12-07 12:42:25 +01:00
Christoph Oelckers
a45b1ca637
- fixed anim loading in Shadow Warrior.
2019-12-07 11:48:41 +01:00
Christoph Oelckers
30cbcb54b1
- renamed the remaining file system access wrappers in cache1d.h
2019-12-07 10:31:27 +01:00
Christoph Oelckers
749eda32c5
- moved kopenfilereader into the FileSystem class.
2019-12-07 10:14:51 +01:00
Christoph Oelckers
ef87d2d4f9
- always pause the game when the console is open.
2019-12-07 10:01:03 +01:00
Christoph Oelckers
66756bfa13
- final fixes for Blood's and Duke Nukem's menus.
2019-12-06 18:36:49 +01:00
Christoph Oelckers
7a9138cde0
- made the confirmation screen functional.
...
This works but still needs a bit of visual work.
2019-12-05 23:17:55 +01:00
Christoph Oelckers
db425a1228
- fixed keybinding and mouse cursor display.
...
- fixed some merge issues in Shadow Warrior.
2019-12-05 21:39:02 +01:00
Christoph Oelckers
223c6d628e
Merge branch 'master' into menu_for_real
2019-12-05 21:08:46 +01:00
Christoph Oelckers
169d68f583
- fixed stuff and cleaned out most of the old menu code.
2019-12-05 19:00:40 +01:00
hendricks266
5624c9b5b0
SW: Avoid a one-pixel tall hall of mirrors above the full status bar
...
git-svn-id: https://svn.eduke32.com/eduke32@8355 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-05 17:23:06 +01:00
hendricks266
007d16712c
SW: Draw the status bar under the menu instead of over it
...
git-svn-id: https://svn.eduke32.com/eduke32@8354 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-05 17:23:05 +01:00
hendricks266
22a778a22c
SW: Don't show the status bar during the end of level screen
...
git-svn-id: https://svn.eduke32.com/eduke32@8353 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-05 17:23:04 +01:00
hendricks266
1507e9fd15
SW: Left-pin the mini HUD in widescreen
...
git-svn-id: https://svn.eduke32.com/eduke32@8352 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/text.cpp
2019-12-05 17:23:03 +01:00
Christoph Oelckers
628bd9efc6
Filled in the rest of the menus
...
Sound is only partially functional, video mode completely nonfunctional, but it makes no sense adjusting them to the current backend code when it's due for replacement.
2019-12-05 00:47:05 +01:00
Christoph Oelckers
cb0538d0f2
- mouse aiming cleanup.
...
Reverted this to a sane setting, as it was in the original games and in all other games I have ever seen, i.e. there is a global setting to enable mouse view, and a button to manually trigger it. The toggle can be easily handled by flipping the CVAR directly.
The main problem here was that it triggered a few cases for mouse-less gameplay in the default case with a mouse present, because the mouseaim CVAR was no longer what the game expected.
This misguided change seems to have originated in JFDuke but by now had propagated to all the other games as well, the code was in all 4 frontends.
2019-12-05 01:08:35 +01:00
Christoph Oelckers
3ea526055f
- added a generic message display, using ZDoom's code.
...
This is mainly meant for Nam and WW2GI which have an ugly-as-hell font for these texts.
2019-12-04 23:07:02 +01:00
Christoph Oelckers
6d04f0f159
- added option to print custom messages with Duke Nukem's quote system.
...
- hooked up all front ends with a generic message printing function so that common code can access the native message displays. This is needed for consolidation of some input actions which are mostly identical but print messages.
- preparations for a generic message system.
2019-12-04 21:35:35 +01:00
Christoph Oelckers
4cefc1db83
Merge branch 'master' into menu_for_real
2019-12-04 17:25:40 +01:00
Christoph Oelckers
c561255018
- moved the application of in_mousebias and in_mousedeadzone into the backend code.
...
This piece was repeated 6x for each call to CONTROL_GetInput, creating quite a bit of redundancy.
2019-12-03 20:58:43 +01:00
Christoph Oelckers
6f9494435a
- adjustment for last commit.
2019-12-03 17:40:35 +01:00
hendricks266
c27616508e
SW: Move HIT_PLAX_WALL out of the bit range used for limit raised struct IDs
...
git-svn-id: https://svn.eduke32.com/eduke32@8350 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-03 17:32:50 +01:00
hendricks266
863d35d7c2
SW: Activate ASSERT macro with RELEASE=0 builds
...
git-svn-id: https://svn.eduke32.com/eduke32@8349 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-03 17:32:49 +01:00
hendricks266
823e47f3e8
SW: Fix assertions and OOB so that the player can noclip OOB
...
git-svn-id: https://svn.eduke32.com/eduke32@8348 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-03 17:32:48 +01:00
hendricks266
f19848a1b3
SW: Address Sanitization commenceth
...
git-svn-id: https://svn.eduke32.com/eduke32@8347 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-03 17:32:46 +01:00
hendricks266
820bd2545c
SW: Get widescreen aspect working
...
git-svn-id: https://svn.eduke32.com/eduke32@8346 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-03 17:32:45 +01:00
Christoph Oelckers
65ae00fb74
- completion of controls menu
...
- some message printing cleanup in SW frontend. This still has its native console that needs to be removed.
2019-12-03 00:57:03 +01:00
Christoph Oelckers
79ced02d36
- implemented the Shadow Warrior menu interface.
2019-12-03 00:01:04 +01:00
Christoph Oelckers
51083f6d51
Merge branch 'master' into powerslave
2019-12-02 21:14:08 +01:00
Christoph Oelckers
702f91b6b5
- disconnected Shadow Warrior's menu so it can be replaced.
...
Unlike the other games this was a lot more invasive
2019-12-02 21:05:19 +01:00
Christoph Oelckers
26daff79db
- fixed compile errors and updated string table.
2019-12-02 18:11:10 +01:00
Christoph Oelckers
aed05840ae
- removed the mouseInactiveConditional interface function.
...
This was only a crutch to let the input interface work with the original menus.
Now that the one in Blood is gone, all the conditions are no longer relevant. (Shadow Warrior never got far enough to implement this)
2019-12-01 10:31:44 +01:00
Christoph Oelckers
55ba1116ec
- fixing the last commit.
2019-12-01 09:03:51 +01:00
Christoph Oelckers
8a98f9b3ca
- removed quitevent.
...
This was some meticulously preserved relic of bad old DOS times used to block OS facilities to close an app.
Since this has been worked around at a lower level already the variable was essentially without function but some quite bad code depended on it.
2019-12-01 09:02:17 +01:00
Christoph Oelckers
2a9e4fca46
WIP safety commit
2019-11-30 19:23:54 +01:00
Christoph Oelckers
9cb6c65223
- fixed errors in SW merge.
2019-11-30 10:07:25 +01:00
Christoph Oelckers
3c4c8af20c
Merge branch 'master' into menu_for_real
2019-11-30 09:33:35 +01:00
hendricks266
68668058c9
SW: Fix cheats only granting one Uzi instead of two
...
git-svn-id: https://svn.eduke32.com/eduke32@8343 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-30 09:28:11 +01:00
hendricks266
769b359928
SW: Add Alt Weapon Mode gamefunc and bind it to MOUSE3 by default
...
git-svn-id: https://svn.eduke32.com/eduke32@8342 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/_functio.h
# source/sw/src/function.h
2019-11-30 09:28:10 +01:00
hendricks266
361a964067
SW: Fix NUMGAMEFUNCTIONS and mouse button select menu
...
git-svn-id: https://svn.eduke32.com/eduke32@8340 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/function.h
# source/sw/src/menus.cpp
2019-11-30 09:26:50 +01:00
hendricks266
15b8bc959f
SW: Add Equip Pickups weapon auto-switching toggle
...
git-svn-id: https://svn.eduke32.com/eduke32@8339 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/swconfig.cpp
2019-11-30 09:26:02 +01:00
hendricks266
8d2159ab70
SW: Implement Darts option, including bloody frames
...
git-svn-id: https://svn.eduke32.com/eduke32@8338 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/menus.cpp
# source/sw/src/panel.cpp
# source/sw/src/sprite.cpp
# source/sw/src/swconfig.cpp
2019-11-30 09:24:32 +01:00
hendricks266
69c01587c7
SW: Make quick save and load actually quick
...
git-svn-id: https://svn.eduke32.com/eduke32@8337 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/game.cpp
# source/sw/src/game.h
# source/sw/src/menus.cpp
2019-11-30 09:23:47 +01:00
hendricks266
8b78440f76
SW: Upgrade SoundAngle() from the original 5-bit precision to EDuke32's 7-bit
...
git-svn-id: https://svn.eduke32.com/eduke32@8336 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-30 09:21:40 +01:00
hendricks266
1cac2c76c6
SW: Add debug_break() to _Assert()
...
git-svn-id: https://svn.eduke32.com/eduke32@8335 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-30 09:21:39 +01:00
Christoph Oelckers
d474478800
Merge branch 'master' into powerslave
...
# Conflicts:
# wadsrc/static/demolition/demolition.grpinfo
2019-11-30 01:12:20 +01:00
Christoph Oelckers
07ac12110f
- removed some piece of obsolete code merged from upstream.
2019-11-30 01:07:46 +01:00
Christoph Oelckers
6d110da209
- removed some piece of obsolete code merged from upstream.
2019-11-29 20:14:45 +01:00
Christoph Oelckers
a7bbd7324e
Merge branch 'master' into menu_for_real
2019-11-29 19:55:16 +01:00
hendricks266
f19c9eb840
SW: Clean up startup messages
...
git-svn-id: https://svn.eduke32.com/eduke32@8328 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/game.cpp
# source/sw/src/grpscan.cpp
2019-11-29 17:29:11 +01:00
Christoph Oelckers
5590abd471
Merge branch 'master' into menu_for_real
2019-11-29 00:49:33 +01:00
hendricks266
0dbf0a36a1
SW: Rename the poorly named "Cool Stuff" menu entry to "Credits" and clean it up
...
git-svn-id: https://svn.eduke32.com/eduke32@8326 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-29 00:48:17 +01:00
hendricks266
d4eb10d10d
SW: Fix saves
...
Dynamically-allocated structs strike again.
git-svn-id: https://svn.eduke32.com/eduke32@8325 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/saveable.h
2019-11-29 00:48:16 +01:00
Christoph Oelckers
115675417a
Merge branch 'master' into powerslave
2019-11-28 17:07:11 +01:00
Christoph Oelckers
324056ad88
- more cleanup on music code
...
* removed some redundant functionality (e.g. Shift-F5 to change - use the console for that!)
* removed a few more leftover parts of the old music system
* savegames should not do more than resuming the music at the point of saving. (DN3D and RR only so far. Blood to be done.)
* handle music enabling/disabling in the backend, which simply knows better what to do. This was only working in the menu, so changing the CVAR had no effect.
2019-11-28 03:18:58 +01:00
Christoph Oelckers
8492e3c67a
- migrated SW's savegame code to the same containers as the other front ends.
...
Fortunately everything here was wrapped in macros so that it was relatively simple to change.
2019-11-27 19:31:58 +01:00
Christoph Oelckers
3bb46a4d8d
Merge branch 'master' into menu_for_real
2019-11-27 18:04:44 +01:00
hendricks266
0a70c5e55f
SW: Sanitize all uses of wall.nextwall to prevent OOBs
...
git-svn-id: https://svn.eduke32.com/eduke32@8322 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/jnstub.cpp
# source/sw/src/sector.cpp
2019-11-27 18:04:01 +01:00
Christoph Oelckers
723b210c95
- major work on savegame code
...
Not tested yet!
* Added a JSON-based header to the savegames so that the unified menu can read from a common data source.
* moved loading and saving of frontend independent data to the wrapper so that support is automatic.
2019-11-27 00:41:26 +01:00
Christoph Oelckers
0f4d80b5d3
Merge branch 'master' into menu_for_real
2019-11-26 19:19:21 +01:00
Christoph Oelckers
abdd807e7f
- fixed merge errors.
2019-11-26 19:10:24 +01:00
hendricks266
510e737360
SW: Fix "MV_GetVoice(): bad handle" log spam
...
git-svn-id: https://svn.eduke32.com/eduke32@8311 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/draw.cpp
# source/sw/src/menus.cpp
2019-11-26 18:08:43 +01:00
hendricks266
f411b72783
SW: Fix widescreen flickering in end of level screen
...
git-svn-id: https://svn.eduke32.com/eduke32@8310 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 18:06:41 +01:00
hendricks266
1a0b363ded
SW: Allow the Run key to Walk when AutoRun is enabled
...
git-svn-id: https://svn.eduke32.com/eduke32@8309 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/game.cpp
# source/sw/src/player.cpp
2019-11-26 18:06:40 +01:00
hendricks266
7fb425aebb
SW: Fix non-debug builds on Windows
...
git-svn-id: https://svn.eduke32.com/eduke32@8308 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 18:04:51 +01:00
hendricks266
83cfcb65a8
SW: Update the port credits
...
Still far from perfect.
git-svn-id: https://svn.eduke32.com/eduke32@8307 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 18:04:50 +01:00
hendricks266
9dde07ced9
SW: Copy the sln==1 GetUpperLowerSector case from the editor to the game
...
This avoids upper and lower remaining unmodified.
Sector 469 in Seppuku Station causes it!
git-svn-id: https://svn.eduke32.com/eduke32@8306 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/brooms.cpp
2019-11-26 18:04:48 +01:00
hendricks266
a51e91d4e9
SW: Fix keyboard input
...
git-svn-id: https://svn.eduke32.com/eduke32@8303 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/duke3d/src/config.cpp
# source/duke3d/src/menus.cpp
# source/mact/include/control.h
# source/mact/src/control.cpp
# source/sw/src/config.cpp
# source/sw/src/menus.cpp
2019-11-26 18:03:13 +01:00
hendricks266
383ecda2b2
SW: Avoid an OOB in GetUpperLowerSector
...
git-svn-id: https://svn.eduke32.com/eduke32@8302 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/brooms.cpp
2019-11-26 17:59:30 +01:00
hendricks266
fd3ec56827
SW: Fix OOB access when viewing a mirror
...
git-svn-id: https://svn.eduke32.com/eduke32@8299 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-26 17:58:20 +01:00
hendricks266
2fc49b3489
SW: Fix mouse aiming
...
git-svn-id: https://svn.eduke32.com/eduke32@8298 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/config.cpp
# source/sw/src/game.cpp
2019-11-26 17:58:19 +01:00
hendricks266
92a699b7eb
SW: Fix enough OOBs to get in-game
...
git-svn-id: https://svn.eduke32.com/eduke32@8295 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/_functio.h
# source/sw/src/config.cpp
# source/sw/src/sector.cpp
2019-11-26 17:50:55 +01:00
hendricks266
41194f99f9
SW: Fix playing track 0 when entering the sound settings
...
git-svn-id: https://svn.eduke32.com/eduke32@8294 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/sw/src/menus.cpp
2019-11-26 17:49:49 +01:00
Christoph Oelckers
8d11990494
- more work on making Exhumed compile.
...
Almost done, down to 20 compile errors.
2019-11-24 13:59:36 +01:00
Christoph Oelckers
52cfb7fb92
- completely disconnected the old menu from the rest of the game to allow rebuilding the new one.
...
Sadly this uncovered a few more places where script events are allowed too broad access to the game state.
2019-11-23 23:05:24 +01:00
Christoph Oelckers
728635c1c0
- correct application of in_mouseflip flag.
2019-11-20 23:29:13 +01:00
Christoph Oelckers
200f54ad47
- mouse turning works.
2019-11-20 22:50:37 +01:00
Christoph Oelckers
2da4294ba5
- hooked up the event processing for Shadow Warrior, so keyboard input is working now. Mouse movement is not being processed yet.
...
Also removed some leftover code from the old input system.
2019-11-20 22:01:44 +01:00
Christoph Oelckers
6d40c9202c
- deleted a batch of code from engine.cpp which is only needed for the assembly drawers.
2019-11-20 19:33:36 +01:00
Christoph Oelckers
234283ca8a
- SW: added validation checks to WallSetup.
...
This code wrote to array index -1.
With this change the level finally gets rendered, although it still doesn't work.
2019-11-19 23:04:22 +01:00
Christoph Oelckers
fd31d4fa6a
- replaced 32 bit SDL library - the preincluded one appeared to be broken.
...
- fixed main group autochoice.
- fixed uninitialized player links for Shadow Warrior.
2019-11-19 22:35:52 +01:00
Christoph Oelckers
f24de03501
- fixed auto-picking of game GRPS from the command line.
2019-11-19 21:35:35 +01:00
Christoph Oelckers
557bd201fb
- removed unused code. (MDA screen hack - huh???)
...
- Shadow Warrior updates from SWP.
2019-11-19 20:43:11 +01:00
Christoph Oelckers
5fc81d1bd4
- made brightmaps operational.
...
The logic is not yet optimal but at least it works.
2019-11-10 19:42:26 +01:00
Christoph Oelckers
21ac5e87b5
- added blend table translucency estimation instead of using a lame default.
...
- draw fullscreen blends below the console.
- moved all mouse event processing out of the SDL backend to D_PostEvent.
- removed all remaining code for dealing with mouse buttons directly.
2019-11-10 15:15:14 +01:00
Christoph Oelckers
299f596afc
- Changed EDuke menu to receive all settings storage locations as CVARs.
...
With this out of the way the only part that needs a real replacement immediately is the keybinds menu.
2019-11-09 19:15:03 +01:00
hendricks266
dc10a8b03d
SW, KenBuild: Replace strupr with Bstrupr
...
git-svn-id: https://svn.eduke32.com/eduke32@8283 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/kenbuild/src/kdmeng.cpp
# source/sw/src/bldscript.cpp
# source/sw/src/jbhlp.cpp
2019-11-08 17:42:09 +01:00
hendricks266
fbb75aae0b
SW: Replace UCHAR with unsigned char
...
git-svn-id: https://svn.eduke32.com/eduke32@8282 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-08 17:41:40 +01:00
hendricks266
125ec7ad2c
SW: Replace MAXLONG with INT32_MAX
...
git-svn-id: https://svn.eduke32.com/eduke32@8281 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-08 17:41:39 +01:00
Christoph Oelckers
9aa275f996
- got rid of some editor-only code and the entire buildvfs header
...
Nearly all file write access now uses the FileWriter class, which is UTF-8-safe on all platforms - unlike stdio.
2019-11-08 02:02:54 +01:00