* 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>
* Make dives knockback based on speed
Suggestion from issue #349
* Add `get_local_coopnet_id`
Suggestion from issue #264
* Readd breakdancing as an attack
Suggestion not only from me but also from a few players I talked with. However this was not a suggestion that came from issues.
* Change around pvp damage
Suggestion from issue #343 and some changes from talking with the creator of the suggestion
* Change `get_local_coopnet_id`
The function can now take in any local id and has been renamed to just `get_coopnet_id`
* Suggested fixes
- Only inited `smlua_audio_utils` if needed, since there will probably be plenty of people who play without ever using mods with custom audio.
- Fixed the pause anywhere setting - this ended up not being fully accurate to ex-coop, which it was originally intended to be.
- Stopped regenerating dynos collision bin on start up every time therefore giving a slight start up speed boost for some people.
- Added a config file setting that lets people choose to compress dynos bins on startup (disabled by default).
- Fixed a warning that shows on non macs during compiling.
- Properly fixed the chat box focus.
- Made the public lobby rules panel "temporary".
- Added a cleaner loading screen design.
- Added an ex-coop theme easter egg, can only be activated from the config file.
- Cleaned up the Lua traceback logging, now shows the folder and file the error occurred in, rather than the full path.
- Added a way to set `gCheckingSurfaceCollisionsForCamera`, so mods can specify to surface finding functions to ignore `SURFACE_FLAG_NO_CAM_COLLISION` internally.
- Rewrote the way smlua pushes CObjects/CPointers to Lua. Now using the C Lua API entirely to connect to Lua.
- Fixed a use-after-free bug that could easily crash the game through Lua (explained further in one of my comments below).
- Fixed a common crash in `audio_sanity_check`.
Adding this for collision minimap, but I'm sure it'd be useful for many other mods that deal with collision in this kind of way
exposes a function, obj_get_surface_from_index. pass in an object, and the index of the surface you want. numSurfaces is also added to know when to stop iterating through surfaces
Thanks to peachy for coming up with the better method of doing this
Co-authored-by: PeachyPeach <72323920+PeachyPeachSM64@users.noreply.github.com>
exposed set_menu_mode, create_dialog_box, create_dialog_box_with_response, create_dialog_box_with_var, create_dialog_inverted_box, reset_dialog_render_state
added and exposed get_dialog_response
HOOK_ON_DIALOG can now take an extra return value as a string, which will be used instead of what ever was going to be in the textbox.
Renamed the function interact_unknown_08 to interact_spiny_walking
and added the constant INTERACT_SPINY_WALKING, which has the same value of INTERACT_UNKNOWN_08
INTERACT_UNKNOWN_08 is kept for compatibility with smlua, and behavior dynos bins
* Aglambi (Added romhack camera dpad functionality)
* Remove this random comment on request
* Make dpad camera disabled by default
* Force axis alignment when dpad camera is off
Completely redid the console ui to look more like the rest of coop
Added log_to_console and djui_console_toggle to lua
Made the keybind to activate it the tilda key (~) instead of ctrl+f1
clean up custom level code
fixed a bug where custom level course numbers weren't used by dynos warps
removed a bunch of unused dynos code
fix demos triggering incorrectly
allowed the right Ctrl key to be used when opening the in game console
fixed a softlock that was possible to experience when talking to the snowman in CCM
fixed the bug where you can permanently lose your cap (bug created by my own PR from beta 32)
fix the moderator feature I made a while back; I am amazed it even worked at all before
fixed dynos warp initial actions being skipped (read ec8aabc for explanation)
completely changed the way star names and course names work
* Remove old setting
* Readded setting
* Make setting actually work
* Add override functions
* Reset overrides on network shutdown
* Use djui_is_popup_disabled instead of ternary expression
* Move all the other stuff out of .h file
* Patch out toxic gas camera from romhacks
* Allow toxic gas camera in romhacks to be disabled with camera_allow_toxic_gas_camera()
In romhacks only. Toxic gas camera in vanilla levels will always remain active.
Passing in 0 means enable toxic gas camera.
* Reset gOverrideAllowToxicGasCamera to network_shutdown()
* Swap order
I too have a hard time reading my own code
* Properly set Mario's y vel to 0 on popping
* Change 0 to 0.0f, just in case
* Re-introduce a few vanilla bugs under gBehaviorValues
The Shell Mario glitch was patched as a side effect to patching a different bug, but several romhacks use it so I need it back.
The ability to collect multiple normal caps at once is needed for hat-in-hand using the hat factory glitch.
* Fix Shell Mario fix
Found the actual reason why the glitch doesn't work and figured that this change shouldn't affect anything else, so I removed its entry from gBehaviorValues.
* Add InfiniteRenderDistance to gBehaviorValues
I'm well aware that disabling the infinite render distance will be very desync prone, however a few glitches, most notably cloning and chuckya double jump, need objects load and unload from render distance.
* Allow mods to disable the camera centering from romhack camera
* Allow mods to disable romhack camera centering
Done again
* Update on network shutdown
* Remove a line which I have no idea why it returned
* Add set_exclamation_box_contents()
No way this is memory safe or even well made but I did what I could
* Added (most of) peachy's suggestions
Still need to figure out how to stop the game from reading further than the size of the array without using a hardcoded number
* Added more of peachy's suggestions
I figured a good way to cap how far the exclamation box reads is to pass in the length of the array as well
* Add the ability to change lighting color
Well it's actually multiplying the lighting color and not changing it completely but I think it's better that way.
* Consistency