Commit graph

88 commits

Author SHA1 Message Date
Dominicentek
2629381971
Customizable dialogs (#411)
* 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
2023-06-18 20:04:39 -07:00
Agent X
f1990c618e
Add tons of new save file / star related functions (#419)
These were needed to port interact_star_or_key to Lua but are also just good to have exposed IMO.
2023-06-18 20:04:02 -07:00
Dominicentek
9a065ffced
Expose save_file_is_cannon_unlocked to smlua (#395)
* Update convert_functions.py

* Update save_file.c

* Update save_file.h

* Update cannon_door.inc.c
2023-05-20 20:06:15 -07:00
MysterD
2083242b66 Fixed several crashes and errors found in static analysis 2023-05-15 01:15:20 -07:00
MysterD
8129ab7665 Prevent crashes and hangs 2023-05-13 03:07:20 -07:00
MysterD
cc1ec3e81f Prevented hundreds of additional crashes from the Mod API 2023-05-11 20:33:21 -07:00
MysterD
f785050ccb Fix more possible crashes 2023-05-11 00:19:01 -07:00
MysterD
af01a214ee Fix autogen for AnimationTable 2023-05-10 22:29:39 -07:00
MysterD
d30b1e61a6 Add a container to animation tables so that we can track their length and stay in bounds 2023-05-10 20:57:35 -07:00
MysterD
5b108e50e6 Merge branch 'coop' into dev 2023-05-03 01:01:18 -07:00
Agent X
52d70e33a5
Expose some painting functions to Lua (#357)
* 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
2023-05-03 00:54:57 -07:00
Prince Frizzy
ee3a7018ab
Adds support for compiling other regions (#378)
* 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>
2023-05-03 00:54:25 -07:00
PeachyPeach
2aa6e1aa08
custom animations no dynos (#371)
Load animations with smlua_anim_util_register_animation and set them with smlua_anim_util_set_animation.
2023-04-28 21:00:17 -07:00
MysterD
4566b7ee14 Ripped out discord network system, started re-adding invites 2023-04-15 19:53:34 -07:00
MysterD
e7ebce5207 Removed lag compensation functions that shouldn't be added to the Lua API 2023-04-03 21:56:52 -07:00
MysterD
fce88728d2 Improve lag compensation 2023-04-03 13:55:03 -07:00
MysterD
6fc711e440 Added smlua_text_utils_get_language() 2023-04-01 00:04:45 -07:00
Agent X
22952dda05
Expose sound_banks_enable/disable to Lua (#311) 2023-03-18 17:12:33 -04:00
Agent X
4aada40a62
area_create_warp_node and area_get_warp_node* (#270)
* area_get_warp_node*

- Added area_get_warp_node to Lua
- Added area_get_warp_node_from_params to Lua

* area_create_warp_node and warp constants

Here you go Isaac!

* Add object param

* Commits work again, pushing everything else
2023-02-20 21:47:32 -05:00
Prince Frizzy
523e7842d9
A bunch of LUA autogen additions. (#235)
* A bunch of LUA autogen additions.
- Add support for Vec4f, Vec4s and Mat4 in the autogen.
- Improve error messages for improper argument counts
- Added support for more pointer types in the autogen.

* Fix offsets in sMat4Fields.

* autogen: Rework this at the request of DJ.
2022-11-30 00:37:12 -08:00
Prince Frizzy
f815a53080
Add some new LUA helper functions and fix some bugs. (#230)
- Add new functions for objects, Feel free to flesh some out if need be.
- Fix long-standing issue with our LUA garbage collection, It will now run after all our hooks do to prevent buildup which causes lag.
2022-11-12 05:01:50 -08:00
PeachyPeach
55ed83ddb8
djui_hud_render_texture_tile[_interpolated]; increased GFX pool and main memory pool (#211)
djui_hud_render_texture_tile: allows user to draw a part of a texture instead of the whole texture (tilesets)
    increased GFX pool size from 512kB to 4MB
    increased main memory pool size from ~11MB to 32MB
2022-11-02 19:45:20 -07:00
MysterD
36270e4301 Reran autogen 2022-09-26 19:30:09 -07:00
Agent X
4b84a87c6f
Mod storage, network_discord_id_from_local_index and other small changes (#200)
* Mod storage & network_discord_id_from_local_index

Introducing mod storage, a key/value system for saving things like high scores or settings or anything like that to AppData\Roaming\sm64ex-coop\sav\mod-name.sav (Windows example)
You can currently save only strings meaning if you want to save a number you'd need to do
mod_storage_save("score", tostring(score))
and then
score = tonumber(mod_storage_load("score"))
To handle types like that.
network_discord_id_from_local_index() returns the discord ID of a player by local index.
Some misc changes I made were removing the unsed ini.h include in save_file.c and making the autogen converters output LF line endings instead of CRLF on windows.

* Prevent getting id if using direct connect

* Update djui_panel_player.c

Why does this bother me?

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-09-26 19:28:26 -07:00
Emerald Lockdown
8e9b2c270c
save_file_erase_current_backup_save and more (#189) 2022-09-26 19:14:53 -07:00
Agent X
6c0757c908
Color type and palette/color functions (#199)
Added a Color type (typedef u8 Color[3])
Added network_player_color_to_palette and network_player_palette_to_color
Reran autogen
2022-09-26 19:11:51 -07:00
Agent X
1241c56ed9
Expose level_trigger_warp and related constants (#197) 2022-09-19 19:51:27 -07:00
Emerald Lockdown
ade3e7b887
Remove save_file_erase function (#195) 2022-09-19 19:33:43 -07:00
Isaac0-dev
d4417171e4
Improvements (#151)
More lives fixes, death loop fix, add a null check and add get_dialog_id()
add a way to disable rom hack cam collisions
expose more sound management functions
2022-08-25 17:25:54 -07:00
Emerald Lockdown
93bdbf81c3
Expose save star flag (#139)
* added save_file_set_star_flags and save_reload
2022-08-07 20:53:42 -07:00
Emerald Lockdown
670acc638e
Exposed save_file_erase and save_file_reload to lua (#137) 2022-08-07 20:52:51 -07:00
Prince Frizzy
913f41f6ae
Add some more functions for use in LUA, And expose others. (#129)
* Add some functions, and restore one.
2022-08-05 22:17:05 -07:00
MysterD
946f16329c Added ability to have completely custom levels that don't override anything 2022-06-05 21:55:31 -07:00
PeachyPeach
27db236b5d
Various bug fixes + Added is_game_paused() and more background music functions to lua (#93)
Bug: DynOS models with animations cannot swap animations if they are
     loaded via lua (smlua_model_util_get_id and
     obj_set_model_extended).
Fix: DynOS_Actor_GetActorGfx takes a graph node instead of a georef,
     and checks for DynosValidActors graph nodes if georef is NULL.

Bug: The game can crash when calling obj_set_model_extended inside a
     HOOK_ON_OBJECT_RENDER hook.
Fix: The crash happens in smlua_model_util_load_with_pool_and_cache_id
     due to pool being NULL. If the game can't allocate an
     AllocOnlyPool object, use DynOS to generate the graph node.

Bug: warp_to_level and similar functions don't trigger HOOK_ON_WARP.
Fix: Call HOOK_ON_WARP hooks in DynOS_Warp_UpdateWarp and
     DynOS_Warp_UpdateExit after level and mario initialization.

Bug: The game sometimes calls HOOK_ON_OBJECT_RENDER hooks for
     unintended objects.
Fix: Initialize hookRender field to 0 when creating an object.

Bug: Actions can't apply gfx offsets to characters that have an anim
     offset (Waluigi, Wario)
Fix: Add m->curAnimOffset to gfx.pos[1] instead of setting it to
     m->pos[1] + m->curAnimOffset, except during the jumbo star
     cutscene.
2022-05-14 14:28:25 -07:00
MysterD
933914d984 Add djui_hud_world_pos_to_screen_pos, and render interpolated rect/texture 2022-05-13 19:54:49 -07:00
MysterD
f2c032c6d8 Specify filetypes in audio folder, add audio_custom_shutdown() 2022-05-08 15:44:04 -07:00
MysterD
ad6642a4bd Add support for custom HUD textures and faster texture packs w/o EXTERNAL_DATA 2022-05-06 22:03:12 -07:00
MysterD
80a5638bd1 Added more detailed lua error logs 2022-04-23 00:15:08 -07:00
MysterD
48cff1c5da Split up functions.md into multiple pages 2022-04-22 18:41:42 -07:00
MysterD
bc7821a1e9 Added custom mod packets 2022-04-22 00:13:58 -07:00
MysterD
dd6f6c430e Refactor how objects set their models 2022-04-19 18:47:50 -07:00
MysterD
9dc78a0971 Added support for custom music 2022-04-10 09:11:45 -07:00
MysterD
653ab58a5d Allow course names/acts to be changed from Lua 2022-04-09 23:28:36 -07:00
MysterD
3731ab31af Add more bhv functions and a func to ge tthe current save 2022-04-07 01:17:48 -07:00
MysterD
2187e7b4b3 Added behavior actions for rom hacks 2022-04-06 18:36:15 -07:00
MysterD
6751829f91 Adjustments for Lua/Mods 2022-04-06 18:24:50 -07:00
MysterD
b7be386200 Add gLakituState to Lua 2022-03-25 23:58:10 -07:00
MysterD
4d9ff3a3b1 Added a bunch of camera functions to Lua 2022-03-25 23:46:37 -07:00
Isaac
65df754b09
Add save file flag functions to lua api (#41) 2022-03-24 19:30:15 -07:00
MysterD
823f28acd3 Fix compile error 2022-03-21 13:02:16 -07:00