Isaac
7d82923aa4
Fix headless server compile (3) ( #78 )
2022-05-02 19:45:32 -07:00
Agent X
b972bb1be4
Add surface_terrains.h to constants ( #77 )
2022-05-02 17:31:55 -07:00
Agent X
6466fbe457
camera_freeze, camera_unfreeze, djui_hud_get_mouse_x, djui_hud_get_mouse_y, set_override_fov, set_override_near, set_override_far ( #74 )
2022-04-30 17:36:38 -07:00
PeachyPeach
8812fbac8b
HOOK_ALLOW_INTERACT; new HUD functions ( #73 )
...
Added new hook: HOOK_ALLOW_INTERACT:
Called before Mario interacts with an object. Return true to allow the interaction.
The hook signature is bool function(MarioState, Object, InteractionType)
Added new HUD constants:
enum HudDisplayValue:
HUD_DISPLAY_LIVES
HUD_DISPLAY_COINS
HUD_DISPLAY_STARS
HUD_DISPLAY_WEDGES
HUD_DISPLAY_KEYS
HUD_DISPLAY_FLAGS
HUD_DISPLAY_TIMER
enum HudDisplayFlags:
HUD_DISPLAY_FLAGS_NONE
HUD_DISPLAY_FLAGS_LIVES
HUD_DISPLAY_FLAGS_COIN_COUNT
HUD_DISPLAY_FLAGS_STAR_COUNT
HUD_DISPLAY_FLAGS_CAMERA_AND_POWER
HUD_DISPLAY_FLAGS_KEYS
HUD_DISPLAY_FLAGS_UNKNOWN_0020
HUD_DISPLAY_FLAGS_TIMER
HUD_DISPLAY_FLAGS_EMPHASIZE_POWER
Added new HUD functions:
s32 hud_get_value(enum HudDisplayValue type)
void hud_set_value(enum HudDisplayValue type, s32 value)
void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height)
2022-04-30 17:33:38 -07:00
MysterD
a0e15a63db
Check for ACT_FLAG_INTANGIBLE in passes_pvp_interaction_checks()
2022-04-30 17:28:02 -07:00
MysterD
121ae62d4c
WIP: uncapped framerate 11
2022-04-30 17:25:47 -07:00
MysterD
26718d60d6
Fix remote player pole position
2022-04-30 17:11:18 -07:00
MysterD
7c3006025c
WIP: uncapped framerate 10
2022-04-30 17:11:09 -07:00
MysterD
8f35305d33
Bump version
2022-04-29 22:13:16 -07:00
MysterD
180bf952b1
Make djui run at 60fps in the pause menu again
2022-04-29 21:59:09 -07:00
MysterD
b8bfd92061
Force frame limit to sane values
2022-04-29 21:35:10 -07:00
MysterD
2d85ba5a35
Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable
2022-04-29 21:32:18 -07:00
MysterD
582cae97ed
WIP: uncapped framerate 9
2022-04-29 21:28:14 -07:00
MysterD
58cee9098b
Improve reliable packet timer/resend rate
2022-04-29 21:27:23 -07:00
Prince Frizzy
2a405b3233
Add two new LUA util functions. ( #72 )
2022-04-28 20:42:29 -07:00
MysterD
ef51666c98
WIP: uncapped framerate 8
2022-04-28 00:22:15 -07:00
MysterD
803db891d2
WIP: uncapped framerate 7
2022-04-27 21:42:22 -07:00
MysterD
5e17edfd01
WIP: uncapped framerate 6
2022-04-27 21:27:14 -07:00
MysterD
6e47f226c9
WIP: uncapped framerate 5
2022-04-27 19:43:55 -07:00
MysterD
0eece3001f
WIP: uncapped framerate 4
2022-04-27 18:41:05 -07:00
Isaac
da79a14cec
Check if in water before changing camera. ( #71 )
2022-04-27 18:34:31 -07:00
MysterD
02ab54b3ad
WIP: uncapped framerate 3
2022-04-27 18:25:43 -07:00
MysterD
e8fe92bdad
Fix issue where some billboards would randomly be disabled
2022-04-27 18:01:22 -07:00
MysterD
cca8cdc860
WIP: uncapped framerate 2
2022-04-26 22:42:57 -07:00
MysterD
da0d4b3733
WIP: uncapped framerate
2022-04-26 20:00:18 -07:00
MysterD
c0969c7833
Added general purpose profile functions
2022-04-26 18:35:59 -07:00
Prince Frizzy
bf55c2da35
Add error logging to matrix stuff. ( #70 )
2022-04-26 13:49:09 -07:00
PeachyPeach
6726a6280a
Changes in level_info; play_transition; dev-only warp command; bug fix for moving sounds played via lua ( #69 )
...
Improved level_info.c and added functions to LUA:
const char *get_level_name_ascii(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
Return a level name as an ascii string. If charCase is 1, capitalize all letters.
If charCase is -1, decapitalize all letters except the first one of each word.
const u8 *get_level_name_sm64(s16 courseNum, s16 levelNum, s16 areaIndex, s16 charCase):
Return a level name as an sm64 u8 string.
If charCase is 1, capitalize all letters.
If charCase is -1, decapitalize all letters except the first one of each word.
const char *get_level_name(s16 courseNum, s16 levelNum, s16 areaIndex):
Shortcut for get_level_name_ascii(courseNum, levelNum, areaIndex, -1).
const char *get_star_name_ascii(s16 courseNum, s16 starNum, s16 charCase):
Return a star name as an ascii string.
If charCase is 1, capitalize all letters.
If charCase is -1, decapitalize all letters except the first one of each word.
const u8 *get_star_name_sm64(s16 courseNum, s16 starNum, s16 charCase):
Return a star name as an sm64 u8 string.
If charCase is 1, capitalize all letters.
If charCase is -1, decapitalize all letters except the first one of each word.
const char *get_star_name(s16 courseNum, s16 starNum):
Shortcut for get_star_name_ascii(courseNum, starNum, -1).
Added play_transition function to LUA.
I chose to copy the function declaration to smlua_misc_utils.h instead of adding area.h
to the autogen tool, as most structures, variables and functions in area.h aren't meant
to be used by LUA scripts.
Added a dev-only warp chat command.
This command signature is /warp [LEVEL] [AREA] [ACT]. Level can be either a number
or a shorthand name (bob, wf, ccm...). Area and Act are numbers.
This command is available only when building the game with DEBUG and DEVELOPMENT.
This command cannot be used if hosting through Discord.
Fixed a bug with moving sounds when they are played via a lua script.
Bug: Moving sounds (including terrain sounds, flying sound, quicksand sound)
are not played correctly when a lua script play them via a call of
play_sound or play_sound_with_freq_scale. This is due to how the moving
sounds are handled internally. They use the f32 pointer provided to the
play_sound functions to decide if the sound must be kept playing,
stopped or restarted. Most of the time, the pointer provided is the
cameraToObject field of Mario's object graph node. Since smlua uses a
circular buffer for Vec3f conversion, this pointer is lost, and the
sound engine can't decide what to do with the sound, resulting in a
weird and incorrect sound effect.
Fix: play_sound and play_sound_with_freq_scale now calls
smlua_get_vec3f_for_play_sound before filling the sound request queue,
to retrieve the correct pointer from the Vec3f provided by smlua.
2022-04-26 13:48:50 -07:00
MysterD
5983285e4b
Created a minor version number
2022-04-23 15:55:26 -07:00
MysterD
76d32bef42
Fix crash when pausing in an invalid act
2022-04-23 15:54:31 -07:00
MysterD
cc0ed0e8b7
Fix crash in find_surface_on_ray_list()
2022-04-23 15:50:14 -07:00
MysterD
8bce9a53ec
Another download fix, whoopsies
2022-04-23 15:13:28 -07:00
MysterD
1441c7e137
Fix memory corruption in download
2022-04-23 15:08:33 -07:00
MysterD
592df229b6
Prevent DynOS packs from being enabled then disabled on launch
2022-04-23 03:23:30 -07:00
MysterD
9e33ce39e6
Automatically disable billboards when a DynOS model uses more than 6 vertices
2022-04-23 03:05:16 -07:00
MysterD
d73216a899
Fixed rare crash in geo_process_node_and_siblings
2022-04-23 01:12:12 -07:00
MysterD
71105833c5
Made specialTripleJump a field of MarioState instead of a global
2022-04-23 00:35:49 -07:00
MysterD
58282f7752
Sort mods list
2022-04-23 00:30:43 -07:00
MysterD
80a5638bd1
Added more detailed lua error logs
2022-04-23 00:15:08 -07:00
MysterD
faca15ae12
Allow Lua to set fields to nil
2022-04-22 23:49:14 -07:00
MysterD
d206581c87
Fix error cascade when one mod has script errors
2022-04-22 23:42:03 -07:00
MysterD
174e3d97ed
Made Lua errors show a backtrace for almost all cases
2022-04-22 23:31:25 -07:00
MysterD
ba544d6e35
More performance improvements
2022-04-22 20:57:18 -07:00
MysterD
df294c0f64
Fix up DynOS actor override
2022-04-22 18:57:26 -07:00
MysterD
f6ff4a0730
Special stages show their level name in the pause menu again
2022-04-22 18:53:53 -07:00
MysterD
9e71aba050
Move Lua allow lists over to using a hashmap
2022-04-22 18:51:25 -07:00
MysterD
0d29a29c1b
Use binary search for all Lua cobject fields
2022-04-22 18:51:25 -07:00
MysterD
5cfef9abb3
Added gActiveMods global to lua
2022-04-22 18:44:59 -07:00
MysterD
bc7821a1e9
Added custom mod packets
2022-04-22 00:13:58 -07:00
MysterD
ef7dc41560
Added HOOK_ON_DEATH
2022-04-21 18:34:12 -07:00
MysterD
c292793470
Adjustments to reliable packets
2022-04-21 18:33:20 -07:00
MysterD
c8a0e6da10
Fixed player interactions
2022-04-21 00:48:26 -07:00
MysterD
d0c8b2f100
Bump version
2022-04-20 22:11:05 -07:00
MysterD
bdca8006ca
Only have interactions happen for the local player
2022-04-20 22:10:52 -07:00
MysterD
4b63a16056
Added passes_pvp_interaction_checks()
2022-04-20 18:27:34 -07:00
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
137329506980462592
8e75268c04
Ice color palettes ( #66 )
...
Ice color palettes
Co-authored-by: MysteryMeatwad <61129329+MysteryMeatwad@users.noreply.github.com>
2022-04-20 11:21:11 -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
Isaac
950aeb0e28
update console help message ( #68 )
2022-04-20 11:19:00 -07:00
Prince Frizzy
8b9b33f0af
Some bug fixes. ( #67 )
...
* Some bug fixes.
Fix Bully Star Spawning Cutscene to be player dependent.
Add missing line to Makefile.
Fix compile error with Clang in save_file.c
* Fix DDD Chests Star spawining in the wrong location.
2022-04-20 11:18:17 -07:00
MysterD
2347ab61c1
Added HOOK_ON_OBJECT_RENDER
2022-04-19 22:36:47 -07:00
MysterD
78bda75e45
Massive DynOS refactor for performance/organization
2022-04-19 21:06:18 -07:00
MysterD
dd6f6c430e
Refactor how objects set their models
2022-04-19 18:47:50 -07:00
MysterD
8f773ea887
Make DynOS texture lookup use a set for performance
2022-04-19 18:24:26 -07:00
MysterD
97f1182498
Allow custom levels to use any active mod's variables
2022-04-18 23:02:40 -07:00
MysterD
456ec2a2cc
Duplicate path in cache
2022-04-18 22:16:14 -07:00
MysterD
cc79201adf
Whoops
2022-04-18 22:03:37 -07:00
MysterD
46402d585c
Even more mod cache fixes
2022-04-18 21:59:42 -07:00
MysterD
21dc525a75
Slight adjustment to script error message
2022-04-16 22:50:23 -07:00
MysterD
12ea360360
Display a message on screen when script errors are found
2022-04-16 22:47:16 -07:00
MysterD
ef5d1b222b
More mod cache fixes
2022-04-16 22:46:29 -07:00
MysterD
a5da5dcb6d
Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable
2022-04-16 20:39:17 -07:00
MysterD
33d200de07
Sanity check mod_cache_save
2022-04-16 20:38:19 -07:00
MysterD
c25bf4c8d3
Check hook return types before using them
2022-04-16 20:27:51 -07:00
Prince Frizzy
bba1b39424
Matrix Code Cleanup. ( #64 )
2022-04-16 19:48:40 -07:00
Prince Frizzy
f51f1d6c4a
Merge in small changes. ( #63 )
2022-04-16 19:12:12 -07:00
MysterD
42f2a8d289
Maybe fix mac idk
2022-04-16 15:46:05 -07:00
MysterD
cea41c95e0
Maybe fix mac
2022-04-16 15:30:25 -07:00
MysterD
2bcf5ea851
Audio fixes
2022-04-16 22:04:18 -07:00
MysterD
0c2f9e86f6
Fix ext bounds warnings
2022-04-16 21:38:37 -07:00
MysterD
d63d6a1ca5
Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable
2022-04-16 21:35:13 -07:00
MysterD
a68cf17080
Adjust extended bounds values
2022-04-16 21:34:49 -07:00
MysterD
d08507edbb
Yet another mod cache fix
2022-04-16 21:21:31 -07:00
MysterD
bd63218e9a
more
2022-04-16 14:28:15 -07:00
MysterD
ad9e8995d7
Frantic fixing
2022-04-16 13:45:45 -07:00
MysterD
202315f260
Rewrite of hash/cache system
2022-04-16 13:05:10 -07:00
MysterD
55850aa828
Force loading order on hash/normalize path
2022-04-16 00:36:30 -07:00
MysterD
6b67c983ec
exposed sequence ids to lua
2022-04-15 21:51:18 -07:00
MysterD
afbc268b61
Fix memory corruption
2022-04-15 21:47:47 -07:00
MysterD
2e1bb3830d
Fix broken clock
2022-04-15 19:34:47 -07:00
MysterD
ace1bb671b
Fix warnings
2022-04-16 02:24:15 -07:00
MysterD
c996f7b481
Prevent crashes when executing an unimplemented action
2022-04-15 18:36:45 -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
5a260a2840
Fix sequence buffer overrun
2022-04-15 18:32:36 -07:00
MysterD
8d2e732243
Revert "Prevent bettercam from zooming in until player is fully obscured"
...
This reverts commit 250e97aed2
.
2022-04-15 12:09:41 -07:00
MysterD
d4d24ab114
Fix crash in cutscene_enter_painting
2022-04-15 18:26:55 -07:00
MysterD
c9ff077ece
Prevent chat messages on load from crashing
2022-04-15 18:23:46 -07:00
MysterD
250e97aed2
Prevent bettercam from zooming in until player is fully obscured
2022-04-14 21:27:31 -07:00
MysterD
6b46a04030
Fixed wiggler dialog crash
2022-04-14 19:40:37 -07:00
MysterD
105907cd71
Made PVP stunlocks harder
2022-04-14 18:28:08 -07:00
MysterD
bf435d5aa9
Fixed knockback direction
2022-04-14 18:25:42 -07:00
MysterD
1d7dfe4d3c
Reset squish settings on spawn
2022-04-14 18:14:10 -07:00
MysterD
f5e19541e8
Fix crash in bhv_rotating_clock_arm_loop
2022-04-14 00:57:02 -07:00
MysterD
7fc7acbc2e
Mouse controlled camera no longer affects main menu camera
2022-04-14 00:54:32 -07:00
MysterD
1559f4db0b
Bowsers BITDW ground tremor now affects all players
2022-04-14 00:49:55 -07:00
MysterD
b18a0d416d
Fixed tumbling bridge desyncs
2022-04-14 00:45:16 -07:00
MysterD
bf315f266f
Fix memory corruption in sound init
2022-04-13 20:36:52 -07:00
MysterD
757cad4fbc
Fix warnings with EXTERNAL_DATA
2022-04-13 19:50:19 -07:00
MysterD
1508f07fef
Added actor textures to dynos builtin list; added shadow_spike_ext
2022-04-13 19:13:25 -07:00
MysterD
9793b56f84
Fixed crash in act_caught_in_whirlpool
2022-04-13 01:37:07 -07:00
MysterD
ce52fe4c1d
Fixed crash in network_receive_area
2022-04-13 01:34:19 -07:00
MysterD
254486a39f
Fixed crash in haunted bookshelf manager
2022-04-13 01:30:53 -07:00
MysterD
ab933f250e
Fixed crash when pausing in unexpected courses/acts
2022-04-13 01:29:41 -07:00
MysterD
9310370d61
Fixed crash in bhv_animates_on_floor_switch_press_loop
2022-04-13 01:14:25 -07:00
MysterD
f66530dd17
Have levels automatically clean up their loaded graph nodes
2022-04-13 01:09:53 -07:00
MysterD
81870df88b
Remove certain default Lua functions
2022-04-13 00:38:01 -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
e12c7a9640
Merge branch 'level-scripts' into unstable
2022-04-12 21:58:41 -07:00
MysterD
7c54f006d1
Remove discord asserts
2022-04-12 21:57:03 -07:00
MysterD
bf3c3bdccc
More fixes
2022-04-12 19:39:48 -07:00
MysterD
c5c11a5a40
More work on mod hashing/caching
2022-04-12 19:25:06 -07:00
MysterD
97a9360529
Added mod hashing/caching to prevent re-downloading the same mods
2022-04-12 18:38:53 -07:00
MysterD
8a0cd66849
change how downloaded directory mods are saved
2022-04-11 23:33:21 -07:00
MysterD
f2e8683331
Fix downloads
2022-04-11 23:22:43 -07:00
MysterD
cdb1bbe92a
Fix DynOS vertex offset writing
2022-04-11 22:54:36 -07:00
MysterD
f2f911e5b0
Clang/mac fixes
2022-04-11 21:43:55 -07:00
Isaac
f75cffb158
Small changes ( #60 )
...
Prevented camera mode from being reset when someone else bubbles
+ more
2022-04-11 21:25:58 -07:00
MysterD
b4f87e7a50
fix camera change
2022-04-11 21:09:58 -07:00
MysterD
431af75d88
Add a vanilla-like camera for romhacks
2022-04-11 21:04:15 -07:00
MysterD
77bace907c
Fixed incorrect progress for downloading
2022-04-11 19:34:28 -07:00
MysterD
499681ff8d
Fix custom sounds in SM74
2022-04-10 22:48:31 -07:00
MysterD
f8ffc23422
Made downloads significantly faster
2022-04-10 21:53:58 -07:00
MysterD
b60b5e3c07
Possible fix for init_mario_after_warp() crash
2022-04-10 18:19:15 -07:00
MysterD
2b7f12efbe
Fix fanfare spam in sm74
2022-04-10 18:15:22 -07:00
MysterD
9cf97f3406
Quick fix for model loading
2022-04-10 16:35:53 -07:00
MysterD
d92c9dcfd4
Rewrote extended model loading code. Should (hopefully) fix floating player models replacing stars
2022-04-10 16:19:07 -07:00
MysterD
ef4a83dc88
Quick fixes for test
2022-04-10 10:11:13 -07:00
MysterD
d7e57003f1
Bump version
2022-04-10 09:56:56 -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
7de32ee5bb
Add SM74's geo_choose_area
2022-04-10 03:07:55 -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
Prince Frizzy
b230d63b25
Add Preload Option to the Settings. ( #59 )
...
* Add preloading texture option to the Display GUI.
2022-04-09 02:02:42 -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