* Allow multiple returns in autogen functions
* condense function member names
* This shouldn't be here
* Relocate these functions
LVT_FIELD shouldn't be there yet
* multi-return part 2: most functions are usable now
---------
Co-authored-by: PeachyPeachSM64 <72323920+PeachyPeachSM64@users.noreply.github.com>
* Normalize paths in smlua_find_mod_file()
Without normalizing the relative path, the comparison
fails when a mod using require is hosted/joined cross-platform.
Without this fix, any mod using require is effectively not
cross platform. This is critical.
* Address peachy's comment
---------
Co-authored-by: MysterD <myster@d>
When typing ` into the coopnet password inputbox (the same as the console bind)
It would do all of the null checks, then open the console changing the focus,
then call a null function because the null checks are no longer valid.
So I moved the null checks to where they're needed.
Co-authored-by: MysterD <myster@d>
Sorry but me and dj came to an agreement that this just gives people an unfair competitive edge. Mods still have full capability to change camera collision options though.
A validation check in dynos_bin_col.cpp was wrong, which would block otherwise
well formed collision files. Since collisions are parsed as s16, if you reach
the bounds of s16 values will begin to overflow and the validation will catch
it.
To work around this overflow issue, you need to output groups of triangles and
vertices. However the existing check in ValidateColInit() would prevent this
workaround. Now there is essentially no hard-coded limit when it comes to vertex
and triangle counts of collision structs.
Co-authored-by: MysterD <myster@d>
- `djui_hud_render_texture(_tile)` now accepts properly any `TextureInfo`
- Removed `bitSize`, added `format` and `size` to `TextureInfo`
- `texture_to_lua_table` can now convert any `Texture` into an RGBA table
The dynamic lighting engine conflicted with lightmapped graphics. Now
lightmapped graphics will ignore the lighting engine. Making them work
together is something for the future.
Co-authored-by: MysterD <myster@d>
Lua mods in very rare scenarios would send a value of -0 over the
network, and receive MIN_U64 due to an incorrect guess at the
variable type in an LNT.
---------
Co-authored-by: MysterD <myster@d>
An alternative solution to https://github.com/coop-deluxe/sm64coopdx/pull/1014.
Which keeps smooth cursor rendering, while adding safe guards.
This makes djui interactions always update at 30hz instead of 60hz, to avoid more chances of display list corruption.
The cursor gfx is now placed in it's own static buffer to allow it to take up extra room if needed. If the 20 dl command buffer size is too small, we'll hear about it because it'll throw a system error.
I doubt it'll trigger though, in my testing it never needed more than 8.
Prevent the boss camera from using the altered 'grab' version
unless the local player is actually grabbing something
Co-authored-by: MysterD <myster@d>
Move djui_reset_hud_params() to after the djui display list save point
Resetting scissor/viewport before the save point caused the djui menu to rapidly
flicker when interpolating (and an interpolated HUD texture was rendered)
Thanks to PeachyPeach for finding the better fix
Co-authored-by: MysterD <myster@d>
Sorry Isaac, keeping it in key down is better imo because that way you can navigate back in the pause menu using the escape key. I frequently use that and I noticed it completely closed the menu in 1.4