Commit Graph

227 Commits (7e04c8acca685d782f07228bf767a27dfe9de9ab)

Author SHA1 Message Date
MysterD 647d7c92b9 Fixed player interactions 2022-04-21 00:48:26 -07:00
MysterD b531c30a46 Added passes_pvp_interaction_checks() 2022-04-20 18:27:34 -07:00
MysterD 8f5136783c Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-20 11:22:18 -07:00
MysterD 0db8bde5ab Add headPos to marioBodyState 2022-04-20 18:21:36 -07:00
PeachyPeach ee9dbc6e80 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 1b291b0941 Added HOOK_ON_OBJECT_RENDER 2022-04-19 22:36:47 -07:00
MysterD cc4e3c6354 Refactor how objects set their models 2022-04-19 18:47:50 -07:00
MysterD 78f3a573ba exposed sequence ids to lua 2022-04-15 21:51:18 -07:00
MysterD f986102dc4 Added ability to set a level to skip credits, fixed SM74 bugs 2022-04-15 18:33:10 -07:00
MysterD dc4310a152 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 84e3099d6e Add a vanilla-like camera for romhacks 2022-04-11 21:04:15 -07:00
MysterD 709a145575 Quick fixes for test 2022-04-10 10:11:13 -07:00
MysterD 208ae3815e Added default volume support for custom sequences 2022-04-10 09:47:17 -07:00
MysterD 18815bff0b Added support for custom music 2022-04-10 09:11:45 -07:00
MysterD 0e4ab8ec64 Added HOOK_GET_STAR_COLLECTION_DIALOG 2022-04-10 02:44:11 -07:00
MysterD 1873148be8 Add exit castle warp params to Lua 2022-04-10 02:29:44 -07:00
MysterD fbab32369c Allow ability to disable vanilla course-specific settings for camera 2022-04-10 01:55:11 -07:00
MysterD 2d159af4cc Allow coop mods to use the backup save slot independently of the normal one 2022-04-10 00:30:47 -07:00
MysterD 2e8017a39c Allow course names/acts to be changed from Lua 2022-04-09 23:28:36 -07:00
MysterD 37e2593279 Unhardcoded all behavior dialogs, allowed replacement of dialogs 2022-04-09 19:50:50 -07:00
MysterD 47dd967af5 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 38ac873568 Made trajectories overridable from Lua 2022-04-08 23:01:41 -07:00
MysterD 18025909c8 Un-hardcoded vanilla trajectories 2022-04-08 21:01:17 -07:00
MysterD d25159fd77 Refactored StarPositions 2022-04-08 19:46:01 -07:00
MysterD 8805ec2a07 Made the entry level configurable by Lua 2022-04-08 19:39:22 -07:00
MysterD d4f462d491 Added custom level script overrides, warps work now 2022-04-08 19:29:16 -07:00
MysterD 6500173464 Allow Lua to adjust default star spawn positions 2022-04-08 00:37:20 -07:00
MysterD 57531d7453 Add more bhv functions and a func to ge tthe current save 2022-04-07 01:17:48 -07:00
MysterD 54d958a34d Added behavior actions for rom hacks 2022-04-06 18:36:15 -07:00
MysterD 6dd90100ad Adjustments for Lua/Mods 2022-04-06 18:24:50 -07:00
MysterD 2aeb96cc59 Merge branch 'unstable' into level-scripts 2022-04-06 01:36:33 -07:00
Agent-11 / Agent X 058183d020 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 4052347247 More progress toward custom DynOS levels 2022-04-02 15:14:04 -07:00
MysterD 6f00bd7bd0 Ran autogen 2022-03-30 20:03:59 -07:00
MysterD 16aa75ca93 Fix compile errors / run autogen 2022-03-29 21:12:42 -07:00
MysterD 745fce41a8 Add custom collisions to DynOS/Lua 2022-03-28 01:02:33 -07:00
MysterD 5efd8565eb Added ability for Lua mods to adjust gServerSettings 2022-03-26 01:08:15 -07:00
MysterD 7deafce819 Add set_mario_y_vel_based_on_fspeed() to lua 2022-03-26 00:01:13 -07:00
MysterD 2dfb28ddc7 Add gLakituState to Lua 2022-03-25 23:58:10 -07:00
MysterD b38af4b798 Added a bunch of camera functions to Lua 2022-03-25 23:46:37 -07:00
MysterD f8d52343b5 Add HOOK_ON_PAUSE_EXIT 2022-03-25 23:06:14 -07:00
MysterD f38741ba4a Make new timers immutable 2022-03-25 21:39:03 -07:00
Isaac 4f78f507ee Add save file flag functions to lua api (#41) 2022-03-24 19:30:15 -07:00
Prince Frizzy b01553200b 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 9c73f75bed Fix compile error 2022-03-21 13:02:16 -07:00
MysterD c34ffd90e7 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
MysterD d5f225018f Added HOOK_ON_OBJECT_UNLOAD, HOOK_ON_SYNC_OBJECT_UNLOAD 2022-03-17 01:43:08 -07:00
MysterD 7a00461333 Added allocate_mario_action() 2022-03-17 01:17:34 -07:00
MysterD 55ff99cfe2 Added hooks: HOOK_ON_LEVEL_INIT, HOOK_ON_WARP, HOOK_ON_SYNC_VALID 2022-03-16 23:53:01 -07:00
MysterD f74b6a47d0 Load Super Keeberghrh's ERROR model when DynOS can't find the model 2022-03-16 01:34:18 -07:00
MysterD d2522cc955 Added ability for mods to load custom geos 2022-03-14 00:11:36 -07:00
MysterD 5c4bb676a3 Re-ran autogen 2022-03-13 00:25:36 -08:00
MysterD 3cf546923e Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-03-13 00:25:22 -08:00
Prince Frizzy c62e65d7e8 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 43ae67c337 Update to Refresh 13 (#19)
* Refresh 13

Co-authored-by: n64 <n64>
2022-03-13 00:17:10 -08:00
MysterD bdd939f24e Added hook: HOOK_ALLOW_PVP_ATTACK, disabled friendly fire in football 2022-03-12 23:43:47 -08:00
MysterD 12e28f4099 Added Lua definitions for autocomplete in visual studio code 2022-03-12 21:28:57 -08:00
MysterD 2876251fb6 Added DynOS warp functions to Lua API 2022-03-11 18:11:32 -08:00
MysterD dacc7d9b9c Allowed Lua mods to override player models and palettes 2022-03-10 18:23:25 -08:00
MysterD 316bf8afa0 Moved smlua_XXX_utils.[ch] to src/pc/lua/utils/ 2022-03-09 23:09:33 -08:00
MysterD 01cd49273e Added the ability to set surface collisions on custom behaviors 2022-03-09 23:02:20 -08:00
MysterD 9334840448 Added ability for Lua to spawn non-synchronized objects 2022-03-09 21:25:34 -08:00
MysterD ed95ad3cb7 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 151c8b1389 Add more vec3f functions to Lua 2022-03-05 18:10:20 -08:00
MysterD 37d1d70a59 Add collision_find_surface_on_ray() 2022-03-05 14:24:58 -08:00
MysterD d321b34798 Add custom behavior Lua examples 2022-03-04 23:14:01 -08:00
MysterD b9086f9414 Documented manually created Lua functions 2022-03-04 23:05:23 -08:00
MysterD c82debc7fb More lua doc fixes 2022-03-04 22:38:43 -08:00
MysterD a6670df963 Add missing AreaTimerType to documentation 2022-03-04 22:31:32 -08:00
MysterD 68e89ff337 Fix Lua documentation autogen links 2022-03-04 22:24:21 -08:00
MysterD b6004d7358 Update Lua documentation autogeneration 2022-03-04 22:22:31 -08:00
MysterD 6e74c21b0f Fixed how constants.md autogen'd links 2022-03-04 22:11:10 -08:00
MysterD e6fac87fdc Add networking for custom behaviors 2022-03-04 20:03:00 -08:00
MysterD 35774e366e Add define_custom_obj_fields() to Lua 2022-03-04 18:16:54 -08:00
MysterD a562c4be9b Add object animations to Lua, add CPointer allowlist 2022-03-03 18:31:45 -08:00
MysterD 3de0900bbc Initial custom behavior commit 2022-03-03 01:04:15 -08:00
MysterD 394a9feac0 Ran autogen 2022-03-01 12:06:06 -08:00
MysterD 62718d8987 Add more constants to Lua 2022-02-25 22:44:37 -08:00
MysterD a0832d0cfe 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 965e62836f Add support for Lua functions inside parameters 2022-02-22 23:34:22 -08:00
MysterD 3a1ec9c7e2 Add obj_behaviors to the Lua API 2022-02-22 22:39:45 -08:00
MysterD 3852ca19c3 Add Lua wrappers for object_helpers.c 2022-02-22 18:34:51 -08:00
MysterD cba01d0b63 Added BehaviorScript pointer handling to Lua API 2022-02-22 18:29:30 -08:00
MysterD cee83df8c9 Initial Lua support for spawning objects 2022-02-21 22:46:39 -08:00
MysterD 6a15de3443 Fix compile issues for Linux/Mac 2022-02-20 20:23:10 -08:00
MysterD 52f3368756 Added object fields to Lua API 2022-02-19 13:51:02 -08:00
MysterD 688dc5a73d Binary search Lua struct fields 2022-02-18 23:39:18 -08:00
MysterD 6af5fb58d9 Added HUD rendering to hide-and-seek 2022-02-16 18:10:06 -08:00
MysterD a1ec9ad628 Added HOOK_ON_INTERACT to Lua API 2022-02-15 22:21:31 -08:00
MysterD a9e6cd532a Added global textures 2022-02-15 22:14:55 -08:00
MysterD a73b828106 Created TextureInfo struct 2022-02-15 22:13:10 -08:00
MysterD d84d12a433 Added image drawing to Lua API 2022-02-15 22:12:20 -08:00
MysterD 2d70b235ff Added CPointers to Lua/autogen 2022-02-15 22:09:21 -08:00
MysterD 404466fe66 Adjusted function autogen to automatically pull includes 2022-02-15 22:08:24 -08:00
MysterD 7dd18aaa2a Added text rendering to Lua API 2022-02-15 22:08:01 -08:00
MysterD 1fbfed2187 Fixed Wario sounds pitch/speed 2022-02-15 00:51:19 -08:00
MysterD e53c3d5f71 Add Wario's moveset based on steven's mod 2022-02-14 18:26:44 -08:00
MysterD 956efe1e86 Print totals when autogenerating lua documentation 2022-02-05 13:33:22 -08:00
MysterD 410c10f433 Added a bunch of functions to Lua wrapper 2022-02-04 19:13:15 -08:00
MysterD 0831fec716 Added read-only column to Lua struct documentation 2022-02-04 01:32:19 -08:00
MysterD 75d5211fcf Added network_get_player_text_color_string() to lua api 2022-02-03 19:05:59 -08:00
MysterD 4cd13853db Changed autogeneration of Lua constants to pull directly from src 2022-02-03 00:43:17 -08:00
MysterD 3677a1ac7f Added support for returning structs from C to Lua 2022-02-03 00:43:08 -08:00
MysterD 4f3888b7e3 Added chat commands to lua mods 2022-02-03 00:42:57 -08:00
MysterD 92c248d728 Added chat message creation to Lua 2022-02-03 00:42:48 -08:00
MysterD f92ac3b472 Added immutable strings to autogen, added djui_popup_create 2022-02-03 00:42:31 -08:00
MysterD 774ae79c2e Adjusted autogen to pull functions directly from src 2022-02-03 00:41:07 -08:00
MysterD 8c9aae228b Added network utils functions to Lua 2022-02-02 20:24:35 -08:00
MysterD e630cfe8c7 Added on_player_connected/disconnected hooks 2022-02-02 19:33:36 -08:00
MysterD 39cefa6ec4 Added gNetworkPlayers to lua api 2022-02-02 19:24:51 -08:00
MysterD bdb6de75e1 Added HOOK_ON_PVP_ATTACK 2022-02-02 19:19:17 -08:00
MysterD 7bca69b4bb Fixed character sound functions 2022-02-01 21:59:34 -08:00
MysterD 0853986e8d Added ability for sync tables to contain tables 2022-02-01 18:15:10 -08:00
MysterD 97fa7b15ea Refactoring lua sync table 2022-01-31 21:32:57 -08:00
MysterD 598e8b5bed Initial foundation for lua networking 2022-01-30 23:11:33 -08:00
MysterD a854889fa5 Removed ACT_(MARIO_ACTION) Lua functions from API (useless) 2022-01-29 23:02:36 -08:00
MysterD fd88c77dfa Removed unimplemented functions from documentation 2022-01-29 22:59:36 -08:00
MysterD eefb52880c Autogenerated Lua documentation 2022-01-29 22:47:22 -08:00
MysterD b26f3e43fc More improvements to Lua
autogenerated functions for characters.h

Fixes in autogen:
	improvements to LVT/LOT conversion
	improvements to immutability status

Updates to character-movesets.lua, every character has a moveset now

Added .type to stuct Character

Prevented unimplemented actions from crashing the game
2022-01-26 20:35:13 -08:00
MysterD a606c99cd1 More Lua improvements
convert_functions.py no longer hardcodes acceptable LOT_ values
Added characters.h and surface_collision.h to convert_structs.py
Prevented mod filenames with a slash in it from being considered acceptable
Sanitized mod filenames when received from the server
2022-01-25 20:28:34 -08:00
MysterD 5a0a2eb9e0 Lua: autogenerated cobjects 2022-01-25 19:28:10 -08:00
MysterD 776c13e978 More lua improvements
Added hooks: ON_SET_MARIO_ACTION, BEFORE_PHYS_STEP
Working on Luigi's character abilities
Autogen lua functions for surface_collision.h
2022-01-24 19:19:19 -08:00
MysterD b03e32daf1 Added Lua function param count checking 2022-01-23 17:00:13 -08:00
MysterD 90691ee89d Lua mod table and download
Mods are now loaded into a table
Clients now request a mod list from the server, then download each file one at a time before joining
Embedded constants.lua into the program
2022-01-22 23:59:49 -08:00
MysterD bc431deb4e Lua stuff
Added HOOK_BEFORE_MARIO_UPDATE
Added support for Vec3f/Vec3s in autogenerated lua functions
Added more lua functions from mario_actions_submerged.c, and thread6.c
Renamed animation-related fields in CObject wrappers
Moved coss and sins to wrapper

Extended Moveset:
  Fixed rolling angle bug
  Added rumble calls
  Set facing direction when spinning
  Added ledge parkour
  Corrected ground pound animation
2022-01-20 19:04:34 -08:00
MysterD 652e29b679 Even more Lua improvements
Added support for structs: Surface, GraphNodeObject_sub, Animation
Generated lua wrapper functions for more functions in mario_actions_submerged.c
Fixed play_sound() wrapper to use a vec3f
Extended Moveset:
	ported wall slide and water ground pound
2022-01-20 18:02:12 -08:00
MysterD 4ff49cbca7 Even more Lua improvements
Reorganized autogenerated lua functions into their own file
Grouped up COBJECT LVTs
Partially implemented: struct MarioBodyState, Object, ObjectNode, GraphNodeObject
Reimplemented lua function wrappers for: camera.h, mario.h, mario_actions_*.c, mario_step.h
2022-01-19 19:20:57 -08:00