Commit graph

443 commits

Author SHA1 Message Date
MysterD
186149b2dd Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-20 11:22:18 -07:00
MysterD
18d7140954 Add headPos to marioBodyState 2022-04-20 18:21:36 -07:00
PeachyPeach
9e5a45ecdd
Added lua profiler; Added useful object functions; Bug fixes (#65)
Added a basic lua profiler
        If the game is compiled with LUA_PROFILER=1, displays on screen the average execution time per frame of each active lua mod, in microseconds.

    Added object functions
        For some reasons, accessing the object fields obj.o* via lua is rather slow, and can drastically increase execution time of custom behaviors. For basic stuff like setting an object's velocity or moving it, some functions, missing from the original code, have been added:
        s32 obj_is_valid_for_interaction(struct Object *o): returns 1 if an object is valid for interaction, i.e. active, tangible and not interacted.
        s32 obj_check_hitbox_overlap(struct Object *o1, struct Object *o2): returns 1 if two objects hitboxes overlap. Doesn't check tangibility, only hitbox values.
        void obj_set_vel(struct Object *o, f32 vx, f32 vy, f32 vz): sets an object's velocity.
        void obj_move_xyz(struct Object *o, f32 dx, f32 dy, f32 dz): moves an object position by (dx, dy, dz).

    Bug fixes:
        Disable collisions with walls and ceilings after Mario exits a warp pipe to prevent softlocks in narrow places.
        Make the koopa shell exclamation box respawn after some time.
        Quicksand no longer downwarps and instant-kills Mario if he's shocked while being above it.
2022-04-20 11:20:45 -07:00
MysterD
2347ab61c1 Added HOOK_ON_OBJECT_RENDER 2022-04-19 22:36:47 -07:00
MysterD
dd6f6c430e Refactor how objects set their models 2022-04-19 18:47:50 -07:00
MysterD
643850ef2e Custom level example 2022-04-15 22:01:19 -07:00
MysterD
6b67c983ec exposed sequence ids to lua 2022-04-15 21:51:18 -07:00
MysterD
fbce5f23c6 Added ability to set a level to skip credits, fixed SM74 bugs 2022-04-15 18:33:10 -07:00
MysterD
4008d99c75 Moved low gravity and mario run to examples 2022-04-13 01:38:32 -07:00
MysterD
9653a19c7d Improve rom hack camera's collisions in tight spaces and focus underwater. Add HOOK_ON_SET_CAMERA_MODE 2022-04-13 00:10:50 -07:00
MysterD
431af75d88 Add a vanilla-like camera for romhacks 2022-04-11 21:04:15 -07:00
MysterD
ef4a83dc88 Quick fixes for test 2022-04-10 10:11:13 -07:00
MysterD
2c187bba45 Added default volume support for custom sequences 2022-04-10 09:47:17 -07:00
MysterD
9dc78a0971 Added support for custom music 2022-04-10 09:11:45 -07:00
MysterD
957e03cd81 Added HOOK_GET_STAR_COLLECTION_DIALOG 2022-04-10 02:44:11 -07:00
MysterD
958b04378c Add exit castle warp params to Lua 2022-04-10 02:29:44 -07:00
MysterD
15d6dc3a9c Allow ability to disable vanilla course-specific settings for camera 2022-04-10 01:55:11 -07:00
MysterD
3db42f1700 Allow coop mods to use the backup save slot independently of the normal one 2022-04-10 00:30:47 -07:00
MysterD
653ab58a5d Allow course names/acts to be changed from Lua 2022-04-09 23:28:36 -07:00
MysterD
c75e71f24e Unhardcoded all behavior dialogs, allowed replacement of dialogs 2022-04-09 19:50:50 -07:00
MysterD
98f02458e3 Added a way to bind to movtexqc ids through lua, added the rest of the object constants 2022-04-09 01:47:20 -07:00
MysterD
defb7dc830 Made trajectories overridable from Lua 2022-04-08 23:01:41 -07:00
MysterD
ef63435bc1 Un-hardcoded vanilla trajectories 2022-04-08 21:01:17 -07:00
MysterD
72584d5552 Refactored StarPositions 2022-04-08 19:46:01 -07:00
MysterD
37367a9756 Made the entry level configurable by Lua 2022-04-08 19:39:22 -07:00
MysterD
403bf30be9 Added custom level script overrides, warps work now 2022-04-08 19:29:16 -07:00
MysterD
6a7712b1c8 Allow Lua to adjust default star spawn positions 2022-04-08 00:37:20 -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
52e705c9d8 Merge branch 'unstable' into level-scripts 2022-04-06 01:36:33 -07:00
Agent-11 / Agent X
746dd50c5c
Add get/set_environment_region (#56)
Set the water height with a function. Also added an example for it in the documentation.
2022-04-05 15:53:16 -07:00
MysterD
046c595f92 More progress toward custom DynOS levels 2022-04-02 15:14:04 -07:00
MysterD
7e677d4596 Fixed up DynOS collision files 2022-04-01 17:59:40 -07:00
MysterD
784614347b Added big paddle example 2022-03-30 21:36:47 -07:00
MysterD
34d28ffb3c Ran autogen 2022-03-30 20:03:59 -07:00
MysterD
d049c647dd Allow Lua mods to prevent exit to castle/exit course 2022-03-30 20:03:22 -07:00
MysterD
2115e4358d Fix compile errors / run autogen 2022-03-29 21:12:42 -07:00
MysterD
d74f5cfe61 Add custom collisions to DynOS/Lua 2022-03-28 01:02:33 -07:00
MysterD
de048928ce Added ability for Lua mods to adjust gServerSettings 2022-03-26 01:08:15 -07:00
MysterD
4a9e618efe Add set_mario_y_vel_based_on_fspeed() to lua 2022-03-26 00:01:13 -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
MysterD
322e4983ae Add HOOK_ON_PAUSE_EXIT 2022-03-25 23:06:14 -07:00
MysterD
033b11ac22 Make new timers immutable 2022-03-25 21:39:03 -07:00
Isaac
65df754b09
Add save file flag functions to lua api (#41) 2022-03-24 19:30:15 -07:00
Prince Frizzy
a89aa6ced8
A load of fixes and cleanup.. (#39)
Red Coins will now properly play the cutscene for who collected the last red coin.
Secrets will now properly play the cutscene for who collected the last secret.
Treasure Chests will now only play the star cutscene for the person who opened the last chest.
Properly named some unknown Treasure Chest fields.
The Chain Chomp Chain should now properly be despawned for late joiners.
Improved the Big Boo's Haunt Merry-Go-Round checks for Mario.
2022-03-22 19:50:13 -07:00
MysterD
db1c2dd758 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-03-19 00:59:06 -07:00
MysterD
c58702df93 Misc Lua fixes/enhancements
approach_s32 now stays within 32 bits
Fixed SOUND_ARG_LOAD
Added OBJ_COL_FLAGS_*
Added reset_rumble_timers
Added get_hand_foot_pos_*
Added get_water_surface_pseudo_floor
Adjusted new hooks to be called at the appropriate times
2022-03-19 00:56:59 -07:00
mjcox244
509db70385
Add more Example Lua mods (#35) 2022-03-18 21:30:53 -07:00
MysterD
1db8dcc1d9 Added custom player model example 2022-03-17 21:41:46 -07:00
MysterD
11649ce1d8 Added HOOK_ON_OBJECT_UNLOAD, HOOK_ON_SYNC_OBJECT_UNLOAD 2022-03-17 01:43:08 -07:00
MysterD
0cd2a91e9c Added allocate_mario_action() 2022-03-17 01:17:34 -07:00
MysterD
7252d836a9 Added hooks: HOOK_ON_LEVEL_INIT, HOOK_ON_WARP, HOOK_ON_SYNC_VALID 2022-03-16 23:53:01 -07:00
MysterD
580c5baeb3 Add custom box model example 2022-03-16 22:55:16 -07:00
MysterD
469e4ac4e4 Load Super Keeberghrh's ERROR model when DynOS can't find the model 2022-03-16 01:34:18 -07:00
MysterD
edf06bede0 Added ability for mods to load custom geos 2022-03-14 00:11:36 -07:00
MysterD
b695cbd55a Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-03-13 00:25:22 -08:00
Prince Frizzy
84aa5ad890
Fixes for multiple players getting a star cutscene, Even if they didn't spawn it. (#22)
* Fix up star cutscene issues.
2022-03-13 00:22:48 -08:00
Prince Frizzy
75bb9b7912
Update to Refresh 13 (#19)
* Refresh 13

Co-authored-by: n64 <n64>
2022-03-13 00:17:10 -08:00
MysterD
3ce66ac312 Added hook: HOOK_ALLOW_PVP_ATTACK, disabled friendly fire in football 2022-03-12 23:43:47 -08:00
MysterD
e990157986 Fix image 2022-03-12 21:52:38 -08:00
MysterD
4347d12dfc Add spacing to vscode docs 2022-03-12 21:49:05 -08:00
MysterD
b77a2b62c9 Document how to setup vscode 2022-03-12 21:47:48 -08:00
MysterD
08d4818ba7 Added Lua definitions for autocomplete in visual studio code 2022-03-12 21:28:57 -08:00
MysterD
da97153336 Fixed saving/loading of DynOS model pack settings 2022-03-12 17:00:06 -08:00
MysterD
5544be21a3 Added get_temp_object_hitbox() to Lua API 2022-03-11 18:18:41 -08:00
MysterD
24df92fa48 Added DynOS warp functions to Lua API 2022-03-11 18:11:32 -08:00
MysterD
859feb530d Added ability for Lua to show/hide SM64 HUD 2022-03-10 18:33:52 -08:00
MysterD
497a250476 Allowed Lua mods to override player models and palettes 2022-03-10 18:23:25 -08:00
MysterD
4638ff6f22 Added the ability to set surface collisions on custom behaviors 2022-03-09 23:02:20 -08:00
MysterD
d03aacc144 Added ability for Lua to spawn non-synchronized objects 2022-03-09 21:25:34 -08:00
MysterD
3641d5404e Added getter for network area timer 2022-03-09 21:25:21 -08:00
MysterD
1b99e22848 Added the ability to spawn particles from Lua
Added particles to football
Increased the object cap for particles
2022-03-09 21:25:07 -08:00
MysterD
25cd318198 Added football gamemode 2022-03-07 22:23:05 -08:00
PeachyPeach
d37ba32989
Added obj_has_behavior_id and obj_has_model_extended functions; break bhvBreakableBoxSmall objects without a wall collision by setting some flags in oInteractStatus (#12)
* Added obj_has_behavior_id and obj_has_model_extended functions; break bhvBreakableBoxSmall objects without a wall collision by setting some flags in oInteractStatus
2022-03-05 14:39:55 -08:00
MysterD
c2177b4eec Add collision_find_surface_on_ray() 2022-03-05 14:24:58 -08:00
MysterD
2d8715b330 Made adding to behaviors possible in Lua 2022-03-05 01:29:24 -08:00
MysterD
283fbc85a9 Add notes on player indices to Lua docs 2022-03-04 23:20:53 -08:00
MysterD
b3ae635e98 Add custom behavior Lua examples 2022-03-04 23:14:01 -08:00
MysterD
f2247cd973 Documented manually created Lua functions 2022-03-04 23:05:23 -08:00
MysterD
18a5ebafae More lua doc fixes 2022-03-04 22:38:43 -08:00
MysterD
d3b9163507 Add missing AreaTimerType to documentation 2022-03-04 22:31:32 -08:00
MysterD
4d4edf152a Fix Lua documentation autogen links 2022-03-04 22:24:21 -08:00
MysterD
e4f72105a3 Update Lua documentation autogeneration 2022-03-04 22:22:31 -08:00
MysterD
e740529776 Fixed how constants.md autogen'd links 2022-03-04 22:11:10 -08:00
MysterD
e0808374f2 Document hook_behavior() 2022-03-04 21:58:51 -08:00
MysterD
a87116a632 Add networking for custom behaviors 2022-03-04 20:03:00 -08:00
MysterD
bac0879ee7 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable-dev 2022-03-03 19:40:30 -08:00
MysterD
3bc80ad7be Add object animations to Lua, add CPointer allowlist 2022-03-03 18:31:45 -08:00
PeachyPeach
b4507319b9
Added functions: find_ceil_height and obj_set_model_extended (#9)
* Added functions: find_ceil_height and obj_set_model_extended
2022-03-03 16:46:01 -08:00
MysterD
3ad6c721dc Initial custom behavior commit 2022-03-03 01:04:15 -08:00
MysterD
ecc33286ad Ran autogen 2022-03-01 12:06:06 -08:00
PeachyPeachSM64
b8cdcf4795 Added obj_get_* functions; Added set_camera_mode 2022-03-01 12:00:01 -08:00
PeachyPeach
0c42836b81
Added support for X and Y buttons; Re-mapped B button to the actual B button for controllers; Moved particleFlags code so lua scripts can spawn Mario particles with 'before Mario update' and 'after Mario update' hooks (#5) 2022-02-27 14:31:59 -08:00
MysterD
d3b4e1c794 Made certain objects use their dynamically assigned model IDs 2022-02-26 02:14:30 -08:00
MysterD
ccf4952baa Add spawn-stuff lua example 2022-02-26 00:03:21 -08:00
MysterD
fa36ed308e Add more constants to Lua 2022-02-25 22:44:37 -08:00
MysterD
33ced38baa Various Lua object API improvements
Lifted immutablity of most Lua struct fields
Added object constants to Lua API
Added ability to set struct pointers in Lua API
Prevented respawners for Lua-spawned objects
2022-02-25 18:30:05 -08:00
MysterD
e94d002114 Rename spawn sync object Lua function 2022-02-22 23:50:12 -08:00
MysterD
bbeec3c707 Add support for Lua functions inside parameters 2022-02-22 23:34:22 -08:00
MysterD
816df2117f Add obj_behaviors to the Lua API 2022-02-22 22:39:45 -08:00
MysterD
e499f51767 Add Lua wrappers for object_helpers.c 2022-02-22 18:34:51 -08:00
MysterD
44fca9aede Added BehaviorScript pointer handling to Lua API 2022-02-22 18:29:30 -08:00
MysterD
091a859104 Added level models to Lua API 2022-02-22 18:04:12 -08:00
MysterD
94bc7940cc Initial Lua support for spawning objects 2022-02-21 22:46:39 -08:00
MysterD
b3e21d7edc Added object fields to Lua API 2022-02-19 13:51:02 -08:00
MysterD
1269eef048 Ran autogen after refresh 12 merged 2022-02-18 22:43:38 -08:00
MysterD
d32bbacf21 Add ON_HUD_RENDER to Lua hook docs 2022-02-18 19:48:05 -08:00
MysterD
dab7cf4c2b Added player description to player list 2022-02-16 22:30:17 -08:00
MysterD
a44acd51f2 Added HUD rendering to hide-and-seek 2022-02-16 18:10:06 -08:00
MysterD
e536d140bb Added HOOK_ON_INTERACT to Lua API 2022-02-15 22:21:31 -08:00
MysterD
1ea28b9c5a Added rect rendering to Lua API 2022-02-15 22:15:49 -08:00
MysterD
669e17bc18 Added global textures 2022-02-15 22:14:55 -08:00
MysterD
29599a82ec Created TextureInfo struct 2022-02-15 22:13:10 -08:00
MysterD
ded74e7fb5 Added image drawing to Lua API 2022-02-15 22:12:20 -08:00
MysterD
941375718b Added CPointers to Lua/autogen 2022-02-15 22:09:21 -08:00
MysterD
3fcc31e233 Added text rendering to Lua API 2022-02-15 22:08:01 -08:00
MysterD
6d6d94fcde Add Wario's moveset based on steven's mod 2022-02-14 18:26:44 -08:00
MysterD
3436d6d26f Update lua docs 2022-02-13 22:18:03 -08:00
MysterD
434176e7d6 Added a bunch of functions to Lua wrapper 2022-02-04 19:13:15 -08:00
MysterD
f4279924fb Added read-only column to Lua struct documentation 2022-02-04 01:32:19 -08:00
MysterD
ab1e85994e Added hook_on_sync_table_change() to Lua API 2022-02-04 00:15:14 -08:00
MysterD
0935eed3b7 Rewrite of how lua hooks chat commands 2022-02-03 19:50:27 -08:00
MysterD
b6a3733bf0 Added network_get_player_text_color_string() to lua api 2022-02-03 19:05:59 -08:00
MysterD
6fcc60a791 Changed autogeneration of Lua constants to pull directly from src 2022-02-03 00:43:17 -08:00
MysterD
cf34aa0b08 Added support for returning structs from C to Lua 2022-02-03 00:43:08 -08:00
MysterD
fb01338278 Added chat commands to lua mods 2022-02-03 00:42:57 -08:00
MysterD
a3467bb6dc Added chat message creation to Lua 2022-02-03 00:42:48 -08:00
MysterD
271a375510 Added immutable strings to autogen, added djui_popup_create 2022-02-03 00:42:31 -08:00
MysterD
d82dc207aa Adjusted autogen to pull functions directly from src 2022-02-03 00:41:07 -08:00
MysterD
cecb145bbb Added network utils functions to Lua 2022-02-02 20:24:35 -08:00
MysterD
12f66994e6 Added on_player_connected/disconnected hooks 2022-02-02 19:33:36 -08:00
MysterD
c59aeedf78 Added gNetworkPlayers to lua api 2022-02-02 19:24:51 -08:00
MysterD
fcb459d095 Added HOOK_ON_PVP_ATTACK 2022-02-02 19:19:17 -08:00
MysterD
0d7b6daa9b Fixed character sound functions 2022-02-01 21:59:34 -08:00
MysterD
1cce3dd884 Added Sync Tables to lua documentation 2022-02-01 18:52:26 -08:00
MysterD
9a3796f0b8 Added ability for sync tables to contain tables 2022-02-01 18:15:10 -08:00
MysterD
e9d3bf49da Initial foundation for lua networking 2022-01-30 23:11:33 -08:00
MysterD
8688fa4ca4 Added hooks to Lua documentation 2022-01-30 00:07:50 -08:00
MysterD
d5aeec5490 Removed ACT_(MARIO_ACTION) Lua functions from API (useless) 2022-01-29 23:02:36 -08:00
MysterD
4daa658567 Removed unimplemented functions from documentation 2022-01-29 22:59:36 -08:00
MysterD
c170984471 Autogenerated Lua documentation 2022-01-29 22:47:22 -08:00