Commit Graph

342 Commits (9df9f0638b8a781afcbe1892b7c3ec599cc5d03f)

Author SHA1 Message Date
MysterD a0c1f7eee9 Prevent rending of corrupted graphnodes, only run lua GC once per frame 2023-05-16 21:49:13 -07:00
MysterD 3a93423fcc Make certain GraphNodeObject fields mutable again 2023-05-16 00:05:26 -07:00
MysterD 83540a2d01 Fix several more possible crashes from the Lua API 2023-05-15 15:55:16 -07:00
MysterD 4e2ade1bd7 Make GraphNode flags mutable from lua again 2023-05-15 01:19:10 -07:00
MysterD 67b7aab091 Fixed several crashes and errors found in static analysis 2023-05-15 01:15:20 -07:00
MysterD defaf170a3 Merge branch 'dev' of github.com:sm64ex-coop-dev/sm64ex-coop into dev 2023-05-14 12:12:30 -07:00
MysterD fc84a2a56d Prevent crashes and hangs 2023-05-13 03:07:20 -07:00
MysterD ada4421ce5 Prevented hundreds of additional crashes from the Mod API 2023-05-11 20:33:21 -07:00
Isaac0-dev 2d6c3b6cb1 add djui_open_pause_menu() (#391) 2023-05-11 06:10:25 -04:00
MysterD afedaa312d Prevent even more possible crashes from the mod api 2023-05-11 01:46:27 -07:00
MysterD a070b024a5 Fix more possible crashes 2023-05-11 00:19:01 -07:00
MysterD f38adda7ed Fix autogen for AnimationTable 2023-05-10 22:29:39 -07:00
MysterD 3489186355 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 2332077649 Merge branch 'dev' of github.com:sm64ex-coop-dev/sm64ex-coop into dev 2023-05-10 15:21:00 -07:00
Prince Frizzy 9a4598bb3e Name more audio code and variables, Document some others. (#386) 2023-05-10 14:31:58 -07:00
MysterD 8ef52f3acc Prevent several possible crashes and hangs, limit more struct fields to read-only 2023-05-10 13:25:41 -07:00
PeachyPeach 4a8f1dbb5d better kick/punch/trip, gp and flying detection (#388) 2023-05-09 15:38:29 -04:00
MysterD 62e5563168 Fix crash in network_receive_lua_sync_table 2023-05-07 22:46:00 -07:00
MysterD 8311eb23ec Fixed ~240 possible crashes 2023-05-05 23:59:58 -07:00
MysterD a723ea8b03 Re-ran autogen 2023-05-03 01:01:36 -07:00
MysterD e1356acf43 Merge branch 'coop' into dev 2023-05-03 01:01:18 -07:00
Agent X 38cef3b77e 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 65887572e2 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
Marioiscool246 408b2848df Add fov adjustment to djui_hud_world_pos_to_screen_pos (#374)
* Add fov adjustment to djui_hud_world_pos_to_screen_pos
sFOVState is now a global (gFOVState)
djui_hud_world_pos_to_screen_pos now returns false if the position is behind the camera

* Fix aspect ratio parentheses

* Rerun autogen

---------

Co-authored-by: Marioiscool246 <marioiscool101@gmail.com>
2023-04-30 22:54:55 -04:00
PeachyPeach 7d70778a64 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
Isaac0-dev 2ff8cf006c give mods more control over animations (#369)
* give mods more control over animations

- added HOOK_ON_OBJECT_ANIM_UPDATE
- make some animation values mutable

* add to docs
2023-04-29 01:56:18 +02:00
PeachyPeach 717dfde419 Bug fix: level_script_parse (#366)
* Bug fix: level_script_parse

* level_is_vanilla_level
2023-04-29 01:55:29 +02:00
SMS Alfredo 16c468c5dd Expose o->collidedObjs to Lua via obj_get_collided_object function (#362)
* The function

* Autogen

* Add index parameter
2023-04-25 21:43:07 -04:00
MysterD 8e54677c39 Made nametags mod interpolate names and health 2023-04-24 16:45:25 -07:00
PeachyPeach 53cfe50052 djui_hud_set_rotation (#356)
* djui_hud_set_rotation

* some goddard textures
2023-04-24 06:34:21 -04:00
PeachyPeach 8eabb41a2d Adding hazardType to HOOK_ALLOW_HAZARD_SURFACE; more loading info (#355) 2023-04-23 12:11:56 -04:00
PeachyPeach a66293b56a obj_init_animation_with_accel_and_sound + fix collision_find_surface_on_ray parameter names (#352) 2023-04-20 19:43:37 -04:00
Agent X da5a8875a2 Remove Share Lives (#351)
it's a leftover from the very early betas, it isn't needed and isn't even fully functional anyway.
Also potentially fixed mario_get_floor_class crash
2023-04-20 07:02:00 -04:00
MysterD dfbbddf66b Re-ran autogen 2023-04-20 01:28:42 -07:00
Isaac0-dev 3defbf5943 allow interact type to be 0 in hook_mario_action (#350)
* allow interact type to be 0 in hook_mario_action
2023-04-20 01:28:23 -07:00
MysterD 256b4ad16f Restore old version code 2023-04-20 00:51:34 -07:00
MysterD cc17ff7347 Merge branch 'coopnet' into coop 2023-04-19 00:23:37 -07:00
PeachyPeach e7e59d6f60 Expose globally custom behaviors defined with hook_behavior (#345)
* Expose globally custom behaviors defined with hook_behavior; macros for mod strings max length

* fixes

* made customBehaviorIndex a mod field to be more relevant
2023-04-17 21:54:55 -07:00
MysterD e43ef39206 Add lobby descriptions 2023-04-17 16:34:56 -07:00
MysterD f2591bd5b4 Ripped out discord network system, started re-adding invites 2023-04-15 19:53:34 -07:00
MysterD 71b616c76c Ran autogen 2023-04-13 22:39:42 -07:00
PeachyPeach 1d9cabd613 level_script_parse description (#340)
enhanced level_script_parse description
2023-04-10 12:25:26 +02:00
Isaac0-dev fe42d422f2 add a way for Lua mods to detect what OS coop is running on (#338)
* patch for beta 32

* bump version

* fix lakitu cam duplication hopefully

* add a way for Lua mods to see what OS its running on
2023-04-08 19:52:16 -04:00
MysterD 9f9dfa53a3 Removed lag compensation functions that shouldn't be added to the Lua API 2023-04-03 21:56:52 -07:00
MysterD ede53830b6 Improve lag compensation 2023-04-03 13:55:03 -07:00
MysterD 9f60ae5123 Added FONT_TINY 2023-04-02 23:02:14 -07:00
MysterD 103e184270 Make gMarioStates->controller immutable in Lua 2023-04-01 17:16:18 -07:00
MysterD ce46d38417 Added smlua_text_utils_get_language() 2023-04-01 00:04:45 -07:00
MysterD 2fa5d68260 Fix crash when removing a sync objects and iterating at the same time 2023-03-27 20:25:35 -07:00
MysterD c1322b7aa1 Figure out a ping between every player, adjust resend rate based on it 2023-03-27 11:50:32 -07:00
Isaac0-dev ac6f2b2ad0 Beta 32.0.1 (#325)
* patch for beta 32

* require the development flag for Lua profiler

* autogen
2023-03-26 01:15:28 -04:00
Agent X fe61e50af4 Show players on star select toggle (#321)
* Show players on star select toggle

* Make only toggleable by mods

* Allow player list to also be disabled
2023-03-23 21:12:26 -04:00
Agent X 3d80dc7f16 Override envfx from Lua (#316)
* Override envfx from Lua

set_override_envfx(-1) to reset override

* Fix type mismatch
2023-03-23 14:46:15 -04:00
Agent X 2d10c50ccd Make fixed collision rounded corners toggleable (#315) 2023-03-22 21:02:43 -04:00
Agent X 05687b838e Fix compilation warnings and stop demos when hosting (#313)
* [WIP] fix warnings

Committing now as is for Isaac to take a look at this.
Having issues with VERSION_TEXT

* Fix VERSION_TEXT crash and stop demos on host
2023-03-21 22:41:43 -04:00
Isaac0-dev 5911cc4d18 fixes and other improvements (#309)
* HOOK_JOINED_GAME

* expose VERSION_TEXT, and two more adjusments

* show if a constant type is a string with autogen

* fix another blunder by that guy

* should use an or operator here

* fix frame limiter stuff
2023-03-21 19:43:29 -04:00
Agent X 33585f00ea Move everything over (#280) 2023-03-20 22:36:25 -04:00
Agent X ad7a632115 get_ttc_speed_setting and set_ttc_speed_setting (#307) 2023-03-20 20:20:11 -04:00
Agent X 89724f42c7 Merge pull request #304 from Agent-11/server-settings
Add gServerSettings to Lua manual tables
2023-03-20 20:00:21 -04:00
Agent X 7525c58e9f Merge pull request #310 from Agent-11/time
get_time()
2023-03-20 19:59:31 -04:00
Agent X deb6ab7804 Expose sound_banks_enable/disable to Lua (#311) 2023-03-18 17:12:33 -04:00
Agent X f0b7751b4d get_time() 2023-03-14 20:53:23 -04:00
Agent X 92141488ea Add gServerSettings to Lua manual tables 2023-03-07 17:46:09 -05:00
Isaac0-dev 5b1b20a0ae bring back the ability to lose your cap (#229)
* bring back the ability to lose your cap

* run autogen and add "cap" to the mario states guide

* fix some indentation
2023-03-03 01:46:46 -05:00
PeachyPeach 666009f610 Make most used and useful features built-ins (#242)
* made all bools u8 for consistency with fixCollisionBugs
* preview blue coins + visible secrets
* preserve indexing
* star number
* hud cap timer
* red coins radar + secrets radar
* extended pause display
* autogen
* only sDynosBuiltinFuncs is sensitive to indexing
* rebased
2023-02-26 03:15:54 +01:00
Sunk 71a4196caf Add HOOK_BEFORE_SET_MARIO_ACTION (#253)
* Small quality of life changes

Disabled fixed collision in sm74 by default.
Popping should now completely set the popped player's speed to 0.

* Add HOOK_BEFORE_SET_MARIO_ACTION

Param: incoming action
Return: changes incoming action
If the return value is 1, prevent the action from happening entirely.
0 can't be used here since it'll break the title screen.

* Update hooks.md

* Revert "Small quality of life changes"

This reverts commit 05dd235cd0e3633bf1da48bc2f9f0b8a3db087ee.
2023-02-22 20:28:23 -05:00
Isaac0-dev 1c5cadcce2 rerun autogen (#291) 2023-02-22 00:56:30 -05:00
Agent X fb54adfd90 Small improvements to HUD and new functions (#268)
* Small improvements to HUD and new functions

- Split HUD_DISPLAY_FLAG_CAMERA_AND_POWER into HUD_DISPLAY_FLAG_CAMERA and HUD_DISPLAY_FLAG_POWER
- Added hud_is_hidden()
- Added camera_is_frozen()
- Added extra sanity check to hud.c

* Re-add old flags

* Fixes and improvements

* Mod compatibility
2023-02-21 00:23:15 -05:00
Agent X 083dc1a037 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
Isaac0-dev d32e4c7997 ACTIVE_FLAG_DORMANT (#281) 2023-02-18 23:45:13 -05:00
Isaac0-dev 4e104aeb64 expose course_is_main_course() to Lua (#282) 2023-02-18 16:23:51 -05:00
Isaac0-dev 654bc4472a allow mods to hide and move shadows for small objects (#257) 2023-02-18 16:06:03 -05:00
Agent X 17c9b1d5d5 Expose Paintings to Lua (#279)
* Expose paintings to Lua

* Make some "dangerous" fields immutable

I just thought being able to edit paintings IDs from Lua was a little bit too much.
2023-02-16 18:54:38 -05:00
Agent X 2e4f1aa3d6 Add ' and " to gTextures (#273) 2023-02-15 19:45:11 -05:00
Isaac0-dev 04e7c3b99b add a way to create/modify whirlpools (#267) 2023-02-08 16:40:41 -05:00
Agent X 659552fc7b Improvements and optional tweaks (#263)
- Added visibleToEnemies to invisible fields
- Added cur_obj_set_billboard_if_vanilla_cam() which makes trees only billboard if free camera is off
- Added RespawnShellBoxes to gBehaviorValues
- Added pauseExitAnywhere to gLevelValues
- Disabled the power meter chime playing on the main menu whenever disconnecting from a server with low health
2023-02-08 10:51:07 -05:00
Agent X 0f8a53487d Expose version constants to lua (#264) 2023-02-08 10:42:16 -05:00
Isaac0-dev fe02152649 Give Lua mods access to a form of level script preprocessing (#258)
* Give Lua mods access to a form of level script preprocessing

* Disable acts setting
2023-01-31 07:24:56 -05:00
Prince Frizzy 3f78bf00ff Add support for custom cap sequences. (#250) 2023-01-31 05:55:18 -05:00
PeachyPeach 15d1ca06cb added new mods to default; removed visibleToEnemies from lua (#245) 2022-12-17 19:32:55 +01:00
Agent X e743e32787 Add E_MODEL_SSL_TOX_BOX (#247) 2022-12-17 19:29:24 +01:00
SMS Alfredo 3a7034c4ed Character Sound Hook (#223)
* Character Sound Hook

* The rest of autogen to be safe

* Indentation Fix

* Fix more indentation

* Get rid of unneeded auto gen junk

* Run autogen again

* Add HOOK_CHARACTER_SOUND to guide
2022-12-17 19:25:30 +01:00
Isaac0-dev b2e57d4ad3 make fixCollisionBugs an integer again (2) (#241) 2022-11-30 00:44:49 -08:00
Isaac0-dev 2b22b3520f add HOOK_OBJECT_SET_MODEL (#236)
* add HOOK_OBJECT_SET_MODEL
runs whenever a behaviour sets a model.
2022-11-30 00:37:43 -08:00
Prince Frizzy d16468b37e 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
wRadion 2b81b45272 Fixed Vanish floors/ceilings (non-wall surfaces) (#225)
In the vanilla game, vanish does only work with walls specifically, and not floors and ceilings. This is because the check for vanish surfaces was only implemented with the walls. So I simply pasted the same code but with the floors and the ceilings.
2022-11-18 18:39:17 -08:00
Isaac0-dev e8f4b41ac3 Make fixCollisionBugs an integer again (#232)
This is for mod compatibility.
2022-11-14 18:16:17 -05:00
Prince Frizzy 12b9fea632 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
MysterD 4e35b9c4d4 Add ability for mods to signal that a player will not be seen by enemies 2022-11-11 19:02:11 -08:00
SMS Alfredo b4ea13f57d Sample Stop Functions (#224)
Adds in bassh_stop_sample for source and audio_sample_stop for Lua. These functions immediately stop whatever audio the specified sample is playing.

If used in tandem with #223, this allows you to create custom character voice clips without them ever overlapping with each other.
2022-11-02 19:51:34 -07:00
PeachyPeach 340aedd660 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
Isaac0-dev 32e68a81e2 add HOOK_ON_CHAT_MESSAGE (#220)
includes the message string and the mario state of the player
return false to prevent the message from showing (might be possible to make a chat flter with this?)
2022-10-30 17:34:50 -07:00
PeachyPeach 86eb22b6de CAP color; near/far warning fix (#214)
Added CAP color part; Player's cap no longer uses the SHIRT color
    Added METAL color as an alias of CAP color; Metal characters now uses the CAP color to tint the metal texture (was SHIRT color)
    Fixed the cap inside color (was HAIR color)
    Fixed the near/far warning
2022-10-30 17:30:40 -07:00
Sunk 2e41525ea3 Added HOOK_ALLOW_HAZARD_SURFACE and various fixes (#209)
* Fixed naming from ceil to cell

* Added HOOK_ON_QUICKSAND

* Modified hook and removed weird newlines

* Renamed hook and increased usage

HOOK_ALLOW_QUICKSAND -> HOOK_ALLOW_HAZARD_SURFACE
Now also works on lavaboost.
Suggestion by Agent X. May add this hook to the death barrier check.

* Autogen

* Fixed downwarping to quicksand upon popping

As a side effect though, Mario will no longer snap to the floor upon being popped.
2022-10-30 17:25:56 -07:00
Agent X 80cda3546e Why weren't star door models exposed to Lua? (#217) 2022-10-25 13:28:02 -07:00
Isaac0-dev e89349318d just a few more improvements (#207)
Add get_dialog_box_state
    Prevent some attacks from registering as pvp attacks.
    Clean up all cases of camera.lua
    Put gLastCollectedStarOrKey in a better spot.
    Clean up my moderator code a bit, changing gIsModerator to boolean.
    Brang back kicked, banned and full party messages.
    Fixed a warning on older compilers like raspberry pi's and use configAmountofPlayers instead of MAX_PLAYERS
    Fixed compiling with the flag DISCORD_SDK off.
    Added "Fixed Collisions" to the debug menu.
    Added HMC, CCM, RR, BITDW, PSS and TTC to the main menu options.
    Fix my own oversight; Prevent the port from being duplicated in the join menu. (temporary fix)
    Hopefully bring back the crash handler on windows by not checking for termination signals on windows
2022-10-18 15:34:46 -07:00
wRadion a94de7d6af Added `warp_to_warpnode` function (#157)
* Added warp to warp node function

* Added generated docs

* Restored Makefile (will put in other branch)
2022-09-30 20:02:34 -07:00
MysterD 9ef643e63b Reran autogen 2022-09-26 19:30:09 -07:00
Agent X 9191de2436 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 ed9023d781 `save_file_erase_current_backup_save` and more (#189) 2022-09-26 19:14:53 -07:00