* 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.
Fix `textureArray` type to be recognized by autogen.
Painting textures can be replaced with the following code:
```
local tex1 = get_texture_info("texture_bottom")
local tex2 = get_texture_info("texture_top")
gPaintingValues.bob_painting.textureArray[1] = tex1.texture
gPaintingValues.bob_painting.textureArray[2] = tex2.texture
```
Texture format must be RGBA 16-bit for built-in textures or
RGBA 32-bit for mod loaded textures.
* Originals edits
Added VL Tone and CJ Luigi voices. VL is a (slightly, not as much as djoslin toad) pitched up mario voice and CJ uses excoop's original luigi voice.
* Fix some things
Fix one, will fix voice table soon
* Update main.lua
Fix typo
* Fix 3
final fix, with indenting
* update voice pitch code
edits to toad/vl voice pitch code. added three voice files to CJ, now his table is completed.
* pitch table
is a table and it looks better now
* all OBJECT fields are now Lua variables
* add lua variable support to SHOW_DIALOG
* fix object_with_acts
* minor tweak
* Peachy review
---------
Co-authored-by: PeachyPeachSM64 <72323920+PeachyPeachSM64@users.noreply.github.com>
* 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
* De-sort fields + Add `protected`
This fixes the atrocious ordering in autocomplete (a,b,g,r 😭)
also adds the protected scope for read-only fields
_ReadOnlyTable revision
* Restored OOB death (when alone)
also bubbles the player
* Rerun autogen
* Peachy Review
* kill goto
* Curly Brace
improved frame pacing, where frame delaying is done just before displaying the frame.
so, the frame is fully rendered, and then the delay is done to wait the extra time before displaying the frame.
This is a far more reliable and consistent way to manage frame pacing, and it will help to keep the framerate from choking too badly when the game lags a little.
The changes to `gfx_end_frame` is to minimize the steps necessary between delaying and actually displaying the frame. This is an optimization just to increase the accuracy of frame pacing even further.
Also, delta calculation is improved when the number of frames to draw is known.
Djui cursor movement is also updated every frame for smoother movement.
added these new djui hud tools for Lua:
- djui_hud_set_viewport
- djui_hud_reset_viewport
- djui_hud_set_scissor
- djui_hud_reset_scissor
- djui_hud_render_line - this code could already be done exactly. this is just to make rendering lines more efficient.
Also made nametags use a viewport for scaling in the credits.
Shared graph nodes were incorrectly interpolated, only the first object with a shared graph node was interpolated properly.
Thanks to @Cooliokid956 for noticing that most of node types were **never** interpolated.
- Use a double hashmap to store interpolated data for each graph node and object. All translations, rotations and scales are now interpolated correctly.
- Add `GraphNodeScaleXYZ` type to scale to all 3 dimensions; Add `GEO_SCALE_XYZ` command.
gMtxTbl was also reaching it's limit, so dynamic allocation was added.
geo layouts -> geo_* functions only
behaviors -> bhv_* functions only
level scripts -> lvl_* functions only
other -> no function allowed
thanks maniscat for reporting the issue
* wip
* get rid of seg2_dialog_table and fix crashes
* remove unused include
* change more types to s32
* remove dialog tables from eu_translation.h
* fix dialog_table_get signature
* Change `oToadMessageDialogId` to s32
* remove exit from dialog_table_add
* warning
* calloc allocated dialogs
* avoid memcpy on allocation fail
* Move dialog entry text field init to dialog_table_init
* Free original dialog entries' text field
* Put all reset logic in one place
* Run autogen
* Remove ``get_dialog_text_ascii`` from autogen
* minor fix
* free dialog->str if replaced
* nevermind
* remove get_dialog_unmodified from autogen
* Change -1 to DIALOG_NONE
* update stuff to s32
* use growing array functions
* Change limit to something more reasonable
* add null check
* remove explicit cast
* Minor fixes
* more type fix
* peachy review
* Fix weird enums in autogen
* remove extra newline :p
* add dialog restore
* bump max dialogs just a lil bit 🥺
* add lua behavior params
* all OBJECT fields are now Lua variables
* Revert lua behavior params changes
* isaac review
* fix segfault
---------
Co-authored-by: PeachyPeachSM64 <72323920+PeachyPeachSM64@users.noreply.github.com>