* 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>
- 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`.
* make Lua calls to interaction functions call interaction hooks
* Revert "make Lua calls to interaction functions call interaction hooks"
This reverts commit 14c597cd340cb19acd72f7e4327f6f078bf09f1d.
* thanks peachy for a far better solution
* don't let mods lie about what interaction it is
* Add a menu where mods can put their options at
* Document mod menu hook functions
* Add HOOK_ON_LANGUAGE_CHANGED
* Add new Cheats mod
* Make player menu disable singleplayer pause
* fix some git merge conflicts that weren't resolved (#55)
and added -latomic to build flags to fix compile warnings while compiling miniaudio
* Remove legacy 'deluxe' field from built-in mods
* Lots of improvements to memory safety
* Abbreviated hex color parsing
Co-Authored-By: Mechstreme <84944335+mechstreme@users.noreply.github.com>
---------
Co-authored-by: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com>
Co-authored-by: Mechstreme <84944335+mechstreme@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.
* Proof of concept for loading rom assets at runtime
* Added skybox textures
* Adjusted format
* Load all texture assets from rom
* Adjusted rom asset loading
* Load all Vtx lists from rom
* clean up toad, wario and his cap conflicts
* Load sound samples from rom
* fix toad sounds
* Loaded sequences from rom
* Load collisions from rom
* Object animations are now loaded from the rom
* Load player animations from rom
* Load goddard anims from rom
* whoops
* fix some compile errors
* drag and drop rom checker, everything works now.
* fix errors due to merge conflicts
* fix compile errors on windows, switch to md5
* fix vertex colors during load
Co-Authored-By: Agent X <44549182+agent-11@users.noreply.github.com>
* Load dialogs from rom
* Loaded course/act names from rom
* Loaded ingame text from rom
* rerun autogen & blacklist smlua_text_utils_init
* fix ttc_seg7_vertex_0700B238 colors
---------
Co-authored-by: MysterD <myster@d>
Co-authored-by: Agent X <44549182+agent-11@users.noreply.github.com>
* Expose save_file_remove_star_flags
* new packet
added a new packet type and two new functions
* oops
* create packet_save_remove_flag.c
move the new network functions to a new file
* Switch u32 to u8
Switched courseStarsToRemove from u32
to u8 for consistency
* fixed the function
-Fixed empty save file marked as existing
-Fixed SAVE_FILE_EXISTS flag being deleted
-Fixed removing ALL flags from the remote saves
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
* 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 customizable dialogs
* remove testing mod
* add HOOK_ON_DIALOG
* Reset dialog overrides in `network_shutdown`
It may have compile errors idk editing code on phone sucks
* typo smh
* copy over the file from original repo so this fork can be synced
* run autogen again
* actually im stupid
* Expose some painting functions to Lua
get_painting_warp_node
initiate_painting_warp
* Change initiate_painting_warp u8 to s16
In initiate_painting_warp, pass in -1 to not override the painting index.
* Add sanity checks to get_painting_warp_node
* Add requested changes
* Initial support for compiling with EU.
* Fix EU text.
* JP now compiles, TODO: Fix Autogen to fix JP and fix text in djui.
* audio: Prevent crash in EU.
* audio: Sync EU audio to 60 Hz instead of 50 Hz
* Add logging and remove sanity check to hopefully track EU crash.
* Various improvements for EU
Improve some memory debugging
Improve sound debugging
Initalize some variables in load.c for the sound system
Synchronize the EU cutscenes with the US version.
* Fix credits music playing in EU, Document some EU audio code.
* Autogen now supports version excluded object fields and functions. Reran autogen in accordance.
* Fix some potentional shifting issues due to version differences.
* Decrease the sleep times in some spots, We do not need them to be so long. (#373)
* Add the region to the version string.
---------
Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>