- mouse clicks registered even when the game doesn't have focus
- generally, `SDL_GetMouseState()` and `SDL_GetRelativeMouseState()` functions will not work with the `DXGI` backend, so that's why custom logic exists in `"src/pc/controller/controller_mouse.c"`
- fixing this issue required adding explicit checks for `(GetFocus() == game_window)`
- mouse clicks being registered immediatelly once the window receives focus
- added a check to match the logic of the "SDL2 / OpenGL" version: 1st mouse click only activates the focus, then any following mouse buttons are processed as usual
- detecting whether the primary and secondary mouse buttons were swapped
- `GetKeyState()` seems to work better than `GetAsyncKeyState()` because it does not require extra conditional statement like `(GetSystemMetrics(SM_SWAPBUTTON) != FALSE)`, and also from testing it seems the game will not receive an input when user clicks away to choose a different window
* PvP Rework
This rearranges the damages of last PR. The underused attacks should still see some buffs.
* Adjust how punches apply invincibility
Also increase punch invincibility timer to 12
* EmeraldLoc's easy suggestions
* Rework punching pvp
Punching no longer reduces invincibility frames. Instead, punches can ignore knockback invincibility and the full punch punch kick combo can be done.
* Adjust numbers
Breakdances should not deal 3 damage
* Potential fix for more common tripping
"Trip" here refers to 1 damage kicks
* Add temporary invincibility to rollouts
This is a test to see how different pvp feels with this change. Suggestion by sausrelics.
* Fix invincibility
* Prevent low damage/low knockback kicks altogether
* Update ignored attack list
* Allow dives to be attacked by most actions
A lot of people don't want dives to be entirely invincible and some suggested to make dives be able to only pierce through jump kicks
* Slightly nerf kick knockback
Suggestion by emily
* Rework dive piercing
Instead of all actions being able to hit dives other than jumpkicks, now only slidekicks (and ground pounds) can hit dives.
* Mild kick knockback increase from nerf
* Change direct equality to checking flag
* Decrease dive and punch knockback
* Prevent trades against dives with slidekicks
* Revert "Prevent trades against dives with slidekicks"
This reverts commit 2a2c3266a7.
* Allow ground pounds to always hit a sliding player
* Add server setting to change pvp
* Add pvp settings to config
* Add selection to menu
* Fix issues + autogen
* Rewrite goto statement to not use goto
* Unhardcode exclamation boxes
Part 1 of creating custom exclamation boxes
* Add `set_exclamation_box` and `get_exclamation_box`
Part 2 of creating custom exclamation boxes
* Exclamation box docs
Part 3 of creating exclamation boxes, although this was entirely optional
* Safety check
* Add a warning
* Remake component check
* Update warnings
* Check for subtables not being tables
* Reduce exclamation box size
This matches how many contents could exist in vanilla due to its hardcoded id 99 check. This check allows me to reasonably assume that no romhacks have more than 99 custom contents. Other mods that may use this function really shouldn't need more than 99 contents either.
* Fixed one Yoshi voiceline being stereo instead of mono
* Revert "Fixed one Yoshi voiceline being stereo instead of mono"
This reverts commit 10135bf94c.
* Fixed one Yoshi voiceline being stereo instead of mono
* Updated Toadette's icon to match Toad's
- added the missing limit check for `sCustomModelsCount`
(caused memory overflow into `bbh_seg7_vertex_`)
- changed `LOG_ERROR` to `LOG_LUA_LINE`, so that the mod dev can easily see any missing models
(similar to getting warnings about missing audio files with `audio_sample_load`)
Fixed the issue where the camera wasn't behaving like vanilla in vanilla sm64
Fixed the issue where the camera was just stuck while in water/flying in a romhack
The nametag's scale is now controlled by its depth, matching the player's size
The nametag's color now uses the same function used by chat to retrieve the player color
The nametag will fade away if it gets too close to the camera
* Fixed one Yoshi voiceline being stereo instead of mono
* Revert "Fixed one Yoshi voiceline being stereo instead of mono"
This reverts commit 10135bf94c.
* Fixed one Yoshi voiceline being stereo instead of mono
* Update mtxf_lookat
* Make new mtxf_lookat a little easier to read and add mario specific types
* fix the declaration for mtx[3][3]
* Added negative sign
- fixed "SDL_GetClipboardText" memory leak
- forcing unicode clipboard data format on Windows (UTF-16LE system, UTF-8 in-game)
- all "get_clipboard_text" functions return a zero-width string in case of failure, instead of NULL
Fixed a bug with the [CS] VL-Tone & Cjes Luigi mod when enabled without the Character Select mod enabled would send a wrong error message would say 'Extra Characters requires Character Select to be enabled.' instead of '[CS] VL-Tone & Cjes Luigi requires Character Select to be enabled.'
Three new functions have been added, to be able to change the respective mod menu elements' values:
- update_mod_menu_element_checkbox
- update_mod_menu_element_slider
- update_mod_menu_element_inputbox
* interpolate all fovs
* perfected the fov equation
just the facts
* create fov coefficient function
use it to scale units along with fov
* add get_current_fov
returns the current fov
* Update math_util.c and math_util.h to move toward inlining functions instead of macros for autodoc. Expose some misc functions useful to lua
* Fix formatting
* Fix math_util.c formatting
* Fix formatting for smlua_math_utils.c
* Fix formatting smlua_functions.c
* Fix type redundancy in _Generic macros
* Add checks for including the highly optimized builtin compiler functions for GCC/Clang
* Add compiler checking for absx() to add in the highly optimized GCC/Clang builtins
* Fix repeated use of float built-ins for non floating point numbers
* Fix grammar mistake
* Fix functions to use camelCase as requested.
* Fixed the use of a custom sqrt approximation as modern procs have a built in FSQRT instruction that is faster.
---------
Co-authored-by: js <js@cartbara.columbus.rr.com>