Commit Graph

12598 Commits

Author SHA1 Message Date
Christoph Oelckers 6ba06f5ed0 - ImageScroller WIP commit. 2020-10-08 22:20:41 +02:00
Christoph Oelckers 15eaf86f5a - preparations for the image scroller menu. 2020-10-08 18:02:25 +02:00
Christoph Oelckers 8caaf4fa64 - menu transitions are working again. 2020-10-08 16:33:11 +02:00
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
Christoph Oelckers 968fe10de7 - use unsigned variables for Duke's spinning selector.
The formula depends on unsigned modulo.
2020-10-08 01:49:21 +02:00
Christoph Oelckers cc7290e313 - work on menu transitions. 2020-10-08 01:00:23 +02:00
Christoph Oelckers a7e25a116f - made Exhumed's text menu fully operational. 2020-10-08 00:50:23 +02:00
Christoph Oelckers 56eae0b42d - got the basics working for Exhumed's main menu. 2020-10-08 00:21:07 +02:00
Christoph Oelckers a953404331 - SW's text menus done.
This also copies the Build texture animation info into the texture manager so that the 2D code can access it through existing interfaces.
2020-10-07 23:22:29 +02: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
Christoph Oelckers 6041a3355c - removed the file location reporting for Blood errors because it embeds the full path into the executable, which is not acceptable. 2020-10-07 20:52:25 +02:00
Christoph Oelckers 789eb6d51d - Most of Duke's menus work again. 2020-10-07 20:32:43 +02:00
Christoph Oelckers 2bb38f7d67 - get load and save game menus and related CCMDs working again. 2020-10-07 18:32:57 +02:00
Christoph Oelckers 53c3a6fc9b - silenced some warnings. 2020-10-07 16:02:49 +02: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 38ddbfe65f - activated most of the support code for programmatically created menus again.
Blood's regular menu screens mostly work again
2020-10-07 01:31:41 +02:00
Christoph Oelckers 5726b693bd - added back the menu transition, although it cannot be used yet, and all game specific menu CCMDs. 2020-10-07 01:12:57 +02:00
Christoph Oelckers 0968a9d97e - renamed the Customizer to 'Delegate' because this works very much like a delegate in Objective-C.
- route menu sound calls through the delegate to better deal with differences between games.
2020-10-07 01:00:43 +02:00
Christoph Oelckers 603c3b50ec - reimplemented Blood's menu items. 2020-10-07 00:50:26 +02:00
Christoph Oelckers a7035a932f - added a DrawSelector hook to the customizer. 2020-10-07 00:03:05 +02:00
Christoph Oelckers 06b00887f5 - added a menu control for Blood's dripping blood. 2020-10-06 23:49:34 +02:00
Christoph Oelckers 3ddc544a85 - added a caption drawer control for ListMenus. 2020-10-06 23:11:04 +02:00
Christoph Oelckers 99e6c718d7 - Added Exhumed's Mummy Staff graphics after getting MaxED's ok. 2020-10-06 22:42:55 +02:00
Christoph Oelckers 1ea6084478 - Exhumed also done.
Also using proper assets now.
2020-10-06 22:35:25 +02:00
Christoph Oelckers 17a68bc60a - SW's caption done, too.
In this case the font is squashed to be more narrow because otherwise many texts would not fit anymore.
2020-10-06 22:01:20 +02:00
Christoph Oelckers 5bcb72f7a9 - create names for several of SW's textures.
Not complete, but should cover most that is really needed.
2020-10-06 21:35:26 +02:00
Christoph Oelckers b8941a09ad - we need this... 2020-10-06 21:11:37 +02:00
Christoph Oelckers bec1f67178 - implemented the menu caption for Duke et.al. 2020-10-06 20:49:55 +02:00
Christoph Oelckers d22bdf9dc7 - use an alias for the menu bar texture in Blood.
Direct tile access has been disabled for now, hopefully this can be buried deep in the engine for all eternity.
2020-10-06 20:05:51 +02:00
Christoph Oelckers 55e7e34707 - added texture aliases so that tiles can given real names in the texture manager.
Use this to turn Duke's and RR's tile enums into real names, leaving out RRTILExx - the few that are needed were renamed.
2020-10-06 19:26:22 +02:00
sinisterseed e27077bee1 - added menu entry for the alternative nuke initialization toggle 2020-10-06 18:39:24 +02:00