Commit graph

12398 commits

Author SHA1 Message Date
Mitchell Richters
f35bec4a5d - Fix interpolation issues and do other minor fixes following shift to fixedhoriz and binangle.
* When interpolating on the initial setup, when binangle reached an overflow point when going lower than zero, the engine was spinning the player around clockwise to the new angle (2047, for instance).
* Interpolating after casting as uint64_t with a workflow similar to the original games, the issue went away.
* Cleaned up other interpolation functions to be of a consistent workflow.
* Scale keyboard input turning down to degree speeds.
* Uplift some remaining Q16.16 code in `applylook()` to full BAM precision.
* Move static calculations of aim and look speeds for `sethorizon()` back into function since GameTicRate isn't set right before calculation is done.
* Simplify the angle target setup back to a basic value like before.
* Repair SW interpolation issues of weapon sprite drawer when rotating left/right.
* Fix SW death horizon constant values following change of horizon center to 0.
2020-10-08 21:12:21 +11:00
Mitchell Richters
9bcdeae6cd - InputPacket: Change q16avel to avel, changing type from fixed_t to float. 2020-10-08 14:47:30 +11:00
Mitchell Richters
e53d58bd42 - gamecontrol: Clean up remainder of legacy angle code. 2020-10-08 14:29:50 +11:00
Mitchell Richters
d758a0ae28 - SW: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 14:23:44 +11:00
Mitchell Richters
3bc6777cf4 - Exhumed: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 08:08:40 +11:00
Mitchell Richters
bd68f67460 - Blood: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 07:55:54 +11:00
Mitchell Richters
40cb64cdcf - applylook(): Remove some forgotten debug lines. 2020-10-07 23:40:41 +11:00
Mitchell Richters
babd7b9556 - InputState: Proposed new sensitivity dividers now that mouse input is based on true pitch and true angle. 2020-10-07 23:25:36 +11:00
Mitchell Richters
fca846272e - gamecontrol: Initial setup of PlayerAngle struct and deployment within Duke.
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Mitchell Richters
e2691d4184 - Duke: Clean up a few missed things during f39939d114. 2020-10-07 18:34:52 +11:00
Mitchell Richters
0c55a533be - PlayerHorizon: Change struct functions to declarations and define code in gamecontrol.cpp to reduce binary size. 2020-10-07 18:25:50 +11:00
Mitchell Richters
6a30d6880e - InputPacket: Change q16horz to horz, changing type from fixed_t to float. 2020-10-07 18:22:07 +11:00
Mitchell Richters
d16b4651bb - gamecontrol: Remove old horizon code left behind while cutting over each game. 2020-10-07 18:12:09 +11:00
Mitchell Richters
6476430be6 - SW: Cut q16horiz/q16horizoff over to PlayerHorizon struct. 2020-10-07 18:08:57 +11:00
Mitchell Richters
6da756cc9f - Exhumed: Cut q16horiz over to PlayerHorizon struct. 2020-10-07 17:40:59 +11:00
Mitchell Richters
c03131f8d1 - Blood: Cut q16horiz/q16slopehoriz over to PlayerHorizon struct. 2020-10-07 17:16:58 +11:00
Mitchell Richters
f39939d114 - gamecontrol: Initial setup of PlayerHorizon struct and deployment within Duke.
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00
Mitchell Richters
0e3604ac9e - SW: Remove q16horizbase and apply q16horizoff in draw code like Duke & Blood.
* Standardisation is needed here for upcoming horizon changes.
2020-10-07 13:33:16 +11:00
Mitchell Richters
082336e5f8 - buildhoriz: Implementation of pitch and BAM conversion code.
* Determined maximum horizon able to be handed by engine in Q16.16 format is 280039127.
* Re-did pitch math to work on this known maximum and standardised pitch around -90/90 degrees as it should be.
* Because pitch is now -90/90 and not ~-188/188, m_sensitivity_y probably requires re-scaling.
2020-10-07 13:29:04 +11:00
Mitchell Richters
90e711464a - clamp(): Remove definition in compat.h and uplift definition in templates.h. 2020-10-07 13:29:00 +11:00
Mitchell Richters
8be8bcc87a - Duke/SW: Fix InitTracerTurret() to use player's q16horiz with full precision and replace some manually expressed mulscales with mulscale16() inline from pragmas.h. 2020-10-07 13:28:58 +11:00
Mitchell Richters
09a05f354c - Re-standardise horizon around 0 and not 100.
* Blood had this right. It makes sense that the horizon be based around as it's easier to work with.
* Removed all associated game math to deduct default horizon of 100 when doing weapon zvel etc, meaning actual horizon can just be used.
* Re-did return to center function to work on the already converted pitch. Return speed should be 1:1 with previous code.
2020-10-07 13:28:45 +11:00
Christoph Oelckers
99e6c718d7 - Added Exhumed's Mummy Staff graphics after getting MaxED's ok. 2020-10-06 22:42:55 +02:00
sinisterseed
e27077bee1 - added menu entry for the alternative nuke initialization toggle 2020-10-06 18:39:24 +02:00
Mitchell Richters
bbc60e8424 - Duke: Ensure tripbomb's ammo_count decrements with use.
* Note: Unsure whether `isWW2GI()` was meant to be inversed but do not believe so. Have removed check for now.
* Fixes #104.
2020-10-06 16:31:28 +11:00
Mitchell Richters
478f20b845 - SW: Apply fix from c86af08a19 not to just when stopping operation of remote objects, but all objects.
* Fixes #105.
2020-10-06 16:23:54 +11:00
Mitchell Richters
d5bd7ba309 - Exhumed: Fix positioning of air level meter when underwater.
* Fixes #103.
2020-10-06 16:19:01 +11:00
Christoph Oelckers
afea519b10 - fixed issues with underwater sound pitch.
This would repeatedly lower the pitch until the sound got inaudible.
2020-10-05 16:20:40 +02:00
Christoph Oelckers
dd5c3eee91 - Exhumed: Fully initialize the sfxinfo struct for newly added sounds
This was using its own incomplete code instead of calling AddSoundLump for it.
2020-10-05 00:35:17 +02:00
Christoph Oelckers
46a1fe3826 - updated script definitions to silcence startup warnings. 2020-10-04 20:10:13 +02:00
Christoph Oelckers
dff8339ba3 - backend update from GZDoom. 2020-10-04 19:33:50 +02:00
Christoph Oelckers
58dcf0586b - scale weapons down to the original tile's size.
Needed because hires replacements contain no scaling info.
2020-10-04 15:33:12 +02:00
Christoph Oelckers
393b0a1db2 - added missing punctuation characters to Exhumed's SmallFont.
In particular this provides the required colon and slash characters for the level stats display.
2020-10-03 19:32:42 +02:00
Christoph Oelckers
bd25019b33 - added punctuation characters to SW's BigFont. 2020-10-03 19:03:02 +02:00
Christoph Oelckers
7661720585 - fixed Blood map loading
Whoever designed that map format with its idiotic encryption should burn in Hell >)
It's a needless complication and open invitation for errors.
To avoid follow up problems it now uses its own local struct for loading in the sprites and the global spritetype no longer depends on any map format and can be changed as the need arises.

Fixes #101
2020-10-03 18:35:47 +02:00
Christoph Oelckers
ddc968f607 - disable palette emulation when map global fog is active.
This doesn't work well together and is pointless anyway as everything needs to be rendered at full brightness.
Fixes #99
2020-10-03 18:04:07 +02:00
Christoph Oelckers
f8caf88089 - backend update. 2020-10-03 17:04:45 +02:00
Christoph Oelckers
89d5d18b9e - these parts were missed somehow. 2020-10-02 22:42:54 +02:00
Christoph Oelckers
e0717e30b4 - savegame version change for the new member in spritetype. 2020-10-02 22:19:32 +02:00
Christoph Oelckers
57945d2baf - eliminated a few overlooked 'long's. 2020-10-02 22:18:08 +02:00
Christoph Oelckers
4e67197838 - added back the hijacked 'detail' member to spritetype.
This changes the Blood map loader to not use the in-game sprite structure for loading a level and moves the qsprite_filler array back into the sprite.
2020-10-02 22:18:08 +02:00
Mitchell Richters
c86af08a19 - SW: Repair occasional locked player angle after player stops operating a sector object. 2020-10-02 19:47:32 +10:00
Mitchell Richters
43e447d40b - Duke: Fix auto-aiming issues for shotgun and chaingun.
Fixes #98.
2020-10-02 17:05:50 +10:00
Christoph Oelckers
49642c3b3c - removed the slowdown killswitch from the ANM player.
This did not play well with SW and is generally not needed.
2020-09-30 00:28:17 +02:00
Christoph Oelckers
51f35550a9 - last but not least, for international display, use ConFont in Exhumed's laptop cutscene. 2020-09-29 23:02:32 +02:00
Christoph Oelckers
75281de42e - Shadow Warrior as well.
For the cookie text display with international characters the text font is used with 50% size to make it fit the available space.
2020-09-29 22:46:50 +02:00
Christoph Oelckers
e8cd336f86 - same procedure for Blood.
This time there were 3 additional texts and the notify display, though, except for multiplayer content that wasn't touched yet.
The result is the same: No need to extend the tiny font with international characters
2020-09-29 22:20:25 +02:00
Christoph Oelckers
4c2ff2950a - for Duke/RR, when not using English force use of the regular text font for drawing the map label on the automap.
This essentially removes the tiny font which is simply too small to ever be able to receive a proper international extension from the equation for localization because the level name display was the only remaining relevant content using this font.
The only other screen where this font is still being used to draw text requiring translated content is the multiplayer summary which will have to be redesigned anyway if multiplayer becomes functional again.
2020-09-29 21:47:32 +02:00
Christoph Oelckers
fe61ff09a4 - added remapping for Cyrillic characters to matching Latin counterparts. 2020-09-29 20:16:31 +02:00
Christoph Oelckers
6488f52055 - fixed: Restarting after dying unset the currently selected skill level. 2020-09-29 18:30:00 +02:00