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
Fixes the following issues:
- Mario no longer regains his normal cap when doing the picking up cap action (this allowed you to reobtain it by picking up a Wing Cap, for example)
- Mario will now regain his cap from the ground, even without going into the cutscene. Previously, Mario had to enter the cutscene action to get the cap, so it wouldn't activate if Mario jumped into the cap (Klepto and Mr. Blizzard set the flags directly).
Updates libjuice to 1.6.2 and applied some bugfixes to coopnet's peering code.
Confirmed to fix connection issues with DeadParrot's unusual networking topologies.
Only fully tested win64, I cross compiled the rest of the libraries.
Co-authored-by: MysterD <myster@d>
This command sets the RGB values of a material's environment color without setting the alpha. This is important, as functions like `geo_update_layer_transparency()` use the environment color alpha to control a model's overall opacity. However, if one of the model's materials sets its own environment color alpha, then that will take priority. This command allows these models to still use environment colors in their materials.
Currently version checking throws false positives constantly.
This change will set uninitialized variables and require parsing
a version number that starts with v in order to display the
pop-up
Co-authored-by: MysterD <myster@d>
* djui_hud_get_mouse_locked()
Adds a total of 1 function:
# `bool djui_hud_get_mouse_locked()`
Returns the DJUI mouse lock status
Tip: This won't return the true state of mouse lock, so make sure to use `get_first_person_enabled()` and `camera_config_is_mouse_look_enabled()` as well
---
This also fills in some descriptions left out by Isaac in his viewport/scissor functions
* djui_hud_is_mouse_locked()
Same as before but is
* this is better imo
* Fix Eyerok pounding in multiplayer
Eyerok now only enters the double pound state if ALL players stand on the pedestal rather than just one. Players standing on the pedestal will be ignored. I had to write a new function for this, I hope this is acceptable.
* Suggested changes
I didn't want to change the name of arg0 in eyerok_check_mario_relative_z because it was a vanilla function, but I suppose I can.
* Remove interaction limit for PVP
Fixes issues with certain mods
* Fixes for Bowser and Heave Ho
Hopefully this makes things a bit better.
* zip + json properties; check existing file in create file
* smlua_audio_utils_replace_sequence
* audio_stream_load, audio_sample_load, smlua_model_util_get_id
* get_texture_info + can also load PNG files
* smlua_collision_util_get
* add wildcard in properties files + set text mode
* filepath restrictions
* Some mod_storage improvements
- Cache mod storage files into a map to reduce file I/O
- Fix a bug in mod_storage_save
- Add mod_storage_load_all that returns all keys/values as a table
* shutdown; fix buffer overflow; fix warnings; lua table
* reject binary files starting with MZ or ELF
* function members
* better doc
* adding file rewind
* ModFS guide; replace yaml by ini; read string buffer changes
* Update bettercamera.inc.h
Fixes X axis inversion on free cam
* Use PlayerCamState for Free Cam
* Use PlayerCamState for ROM Hack Cam
* Use sMarioCamState to access PlayerCameraState
Probably should've just done this initially.