Commit graph

609 commits

Author SHA1 Message Date
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
alexey.lysiuk
5510df77be - streamlined CMake configuration of game libraries
https://forum.zdoom.org/viewtopic.php?t=67121
2020-01-27 18:11:35 +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
a021b96119 - added the needed parts of GZDoom's render backend to have the postprocessor working.
Not hooked up yet.
2019-12-28 18:20:47 +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
62660e76f3 - sound system rework. Not complete. 2019-12-15 10:00:25 +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