Commit graph

12 commits

Author SHA1 Message Date
MysterD
174e3d97ed Made Lua errors show a backtrace for almost all cases 2022-04-22 23:31:25 -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
dd6f6c430e Refactor how objects set their models 2022-04-19 18:47:50 -07:00
MysterD
defb7dc830 Made trajectories overridable from Lua 2022-04-08 23:01:41 -07:00
MysterD
61a1d1fc9c Fix errors pointed out by clang 2022-03-27 17:25:39 -07:00
MysterD
8bc0abb6a2 Remove spawn object field remembering system. Broken and unnecessary 2022-03-24 18:08:05 -07:00
MysterD
03dcb25273 Check types for spawn object transmission 2022-03-21 12:49:37 -07:00
MysterD
41275835e7 Lua : remember up to 16 extra fields to send on spawn lua object 2022-03-21 11:45:19 -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
MysterD
5544be21a3 Added get_temp_object_hitbox() to Lua API 2022-03-11 18:18:41 -08:00
MysterD
1c7451fcfc Prevent spawning objects from lua before the area is synchronized 2022-03-11 01:31:12 -08:00
MysterD
89d44f6501 Moved smlua_XXX_utils.[ch] to src/pc/lua/utils/ 2022-03-09 23:09:33 -08:00
Renamed from src/pc/lua/smlua_obj_utils.c (Browse further)