Commit Graph

2184 Commits (38cef3b77e308f51c3bfb09f5bd8bf53528f2c63)

Author SHA1 Message Date
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
Agent X 29cd726d18 Color type and palette/color functions (#199)
Added a Color type (typedef u8 Color[3])
Added network_player_color_to_palette and network_player_palette_to_color
Reran autogen
2022-09-26 19:11:51 -07:00
Agent X 41db5bbc66 God mode check for lava wall boost (#201)
* God mode check for lava wall boost

Thanks to Skeltan for finding it

* Prevent potential cutscene breaks
2022-09-26 19:10:39 -07:00
Agent X 05b2dcbefe Expose level_trigger_warp and related constants (#197) 2022-09-19 19:51:27 -07:00
Agent X 337901f3ce Add vanish cap walls to no camera collision check (#196) 2022-09-19 19:34:09 -07:00
Emerald Lockdown c4baafcd05 Remove save_file_erase function (#195) 2022-09-19 19:33:43 -07:00
MysterD 477a601249 Fix crash in rippling paintings 2022-09-18 19:06:52 -07:00
MysterD 66a85b17ab Removed extra change_area/level packet that the ripples PR added. It breaks too many things 2022-09-18 18:41:32 -07:00
Emerald Lockdown adf8868976 Removed artifcat, fix cam (#193) 2022-09-18 18:16:58 -07:00
Agent X e8ac7c15ea HOOK_ON_SCREEN_TRANSITION (#192) 2022-09-18 17:30:29 -07:00
PeachyPeach 95a8199b9b Complete color palettes; gfx macros (#191) 2022-09-18 17:30:13 -07:00
PeachyPeach 08b5af5366 Main menu: separate Rom Hacks from regular mods (#190) 2022-09-18 17:29:05 -07:00
Emerald Lockdown 3ec278639e Removed gChangeAreaIndex as it is unused (and does nothing), and fixed thi and crashes (#187)
* Removed gChangeAreaIndex as it is unused, and fixed thi and crashes

* Fixes

* undo formatting

* Undid stones
2022-09-18 17:28:09 -07:00
PeachyPeach 64ef71e466 Fixed gLevelValues initialization and missing limits (#188) 2022-09-13 14:44:08 -07:00
Agent X 76cb1aeffc Revert "Fix power meter going black when in djui pause (#168)" (#186)
This reverts commit 4e8308199a.
2022-09-13 14:43:06 -07:00
Emerald Lockdown de9bb54423 Remove heal on warp (#181)
* Patch heal on warp

* Remove entirely
2022-09-12 20:01:13 -07:00
Isaac0-dev 184344afc4 multiple improvements (#176) 2022-09-12 20:00:51 -07:00
Emerald Lockdown 3738ab43cf Add network_is_moderator (#180) 2022-09-12 19:58:58 -07:00
Sunk 232b3705d3 Unhardcoded floor and ceiling limits (#179)
* Unhardcoded ceiling and floor limits

* Revert "Unhardcoded ceiling and floor limits"

* Revert "Revert "Unhardcoded ceiling and floor limits""

This reverts commit 71b2da4c4b898cda73f211620d138b346370d2ce.

* Let's try that again
2022-09-12 19:58:01 -07:00
wRadion 3ab27fc072 Scrolling textures (continued) (#175)
* Handle scroll targets as dynamic array + some error handling

* Remove the need to call init (clean automatically scroll targets)

* Free iteratively instead of recursive

* Added comments + handled some potential errors

* Completed comments

* Remove debug print
2022-09-12 19:57:28 -07:00
Agent X ac6254a657 SURFACE_RAYCAST (#177)
* SURFACE_RAYCAST

* Exclude from camera collision
2022-09-12 19:56:24 -07:00
Isaac0-dev 1cc9153bdf fix custom level corruption on network shutdown (#174) 2022-08-25 20:16:01 -07:00
MysterD 6fb6c31569 Bump version 2022-08-25 17:59:43 -07:00
wRadion 92ce6d9e4c Handle RM_Scroll_Texture and editor_Scroll_Texture behaviors from RM2C hacks (#173) 2022-08-25 17:46:33 -07:00
Agent X 3b8a9801d3 Fix star sparkles appearing for everyone (#172)
When collecting a star, originally the sparkles would appear on everyone even if they didn't collect the star, this has been fixed.
2022-08-25 17:42:45 -07:00
Agent X 916d59e9b5 is_transition_playing() (#171)
Can be useful for people making HUD mods or anything like that.
2022-08-25 17:42:30 -07:00
Agent X 4824d2b191 Improve the "Error: network shutdown" popup (#170)
It now only appears when someone stops hosting and you are disconnected from their lobby, I also changed the text to "Disconnected: server closed" in case it wasn't obvious
2022-08-25 17:42:15 -07:00
Agent X 3510edbc85 Improve cheats (#169)
Cheats suck less now I guess.
2022-08-25 17:41:04 -07:00
Agent X 4e8308199a Fix power meter going black when in djui pause (#168) 2022-08-25 17:39:11 -07:00
Agent X a8db460392 Add character head glyphs to gTextures (#167) 2022-08-25 17:38:34 -07:00
Agent X 02a5ea9f85 Fix hex codes being set inproperly (#165) 2022-08-25 17:38:03 -07:00
wRadion 8c6dd80abd Only remove the offset when it\'s not a door warp (#164) 2022-08-25 17:37:30 -07:00
Agent X 9424accf08 Prevent dialog from showing in main menu (#162)
* Prevent dialog from showing in main menu

* Scuttlebug fix
2022-08-25 17:34:27 -07:00
Agent X f586a72370 Small bug fixes to Stop Hosting (#161)
Previously you could exit during the act select screen and even crash the game by entering a door and then pressing Stop Host.
2022-08-25 17:33:47 -07:00
Agent X f1dcc77854 Remove TARGET_WEB (#159)
Just a simple code cleanup opportunity I saw
"I won't be porting this to the web" - djoslin

Compiled and tested everything to see if it works, feel free to check yourself or look over the code

Also, I noticed TARGET_N64 was there too, might do a clean up on that since we all know this isn't getting ported to the N64 anytime soon.
2022-08-25 17:32:20 -07:00
Emerald Lockdown 9565a32811 Added `warp_to_start_level` function (#154)
* Added `warp_to_start_level` function

* Fix include things
2022-08-25 17:27:05 -07:00
Isaac0-dev 878e974626 Improvements (#151)
More lives fixes, death loop fix, add a null check and add get_dialog_id()
add a way to disable rom hack cam collisions
expose more sound management functions
2022-08-25 17:25:54 -07:00
Agent-11 d7fd367720 Fix "join" being cut off on star select 2022-08-23 02:04:53 -04:00
Emerald Lockdown e2b2df2f0d Made ctrl cmd on mac (#148) 2022-08-11 01:24:11 -07:00
Agent X 12cd6adfb7 gsDPSetTextureFilter, refactoring and o.header.gfx.skipInViewCheck (#147)
* Add gsDPSetTextureFilter to DynOS symbols

* Refactor code and fix 2 year oversight

Refactored the main menu background code, now uses vec3f_set instead of manually setting every vector

Also finally fixed the bug where you load in with only 3 lives, this has been in coop for 2 years now and was likely made as a test for syncing live count and was never reversed.

* add skipInViewCheck to GraphNodeObject

* Remove idle set

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-08-11 01:23:54 -07:00
Emerald Lockdown e157412d34 Fixed wall hugging issue (#149) 2022-08-11 01:22:04 -07:00
MysterD aad84a9e7a Prevent softlock when entering a cannon near water (Star Road) 2022-08-07 22:42:25 -07:00
MysterD 713b9d0fc8 Whoops 2022-08-07 22:38:57 -07:00
MysterD 1f0c8d496e Fix crash when hitting escape while a slider is focused 2022-08-07 22:36:35 -07:00
MysterD 7cce6449aa Initialize graphNode->config.camera to NULL (fixes obscure crash) 2022-08-07 22:30:31 -07:00
MysterD 29b5ef0ef6 Re-ran autogen 2022-08-07 20:54:16 -07:00
Emerald Lockdown 1b47507b66 Expose save star flag (#139)
* added save_file_set_star_flags and save_reload
2022-08-07 20:53:42 -07:00
Emerald Lockdown 274d308d9a Exposed save_file_erase and save_file_reload to lua (#137) 2022-08-07 20:52:51 -07:00
MysterD 08c6ff061e Move menu options and debug options to 'misc' 2022-08-07 20:51:34 -07:00
MysterD b7e3727e5b Cleanup random menu stages 2022-08-07 20:44:35 -07:00
Emerald Lockdown 27230cdcfe Customizations to the main menu and a fix for the title screen bug (#130) 2022-08-07 20:14:28 -07:00
MysterD 7e5ebcf064 Re-ran autogen 2022-08-07 15:26:32 -07:00
TheGag96 591c0b58d5 Fix issues Extended Moveset mod (+ extras) (#146)
* Allow Lua action hooks to specify custom functions for more behavior

...like gravity, and update all current mods to match.

Spin jump and wall slide from the Extended Moveset mod now have gravity
code basically matching the original mod.

Currently, any place you'd want to use one of these new action hooks
still requires an O(n) check through all action hook per call. This
should probably be changed.

* Fix some remaining issues with Extended Moveset Lua port

- Remove divergent spin jump code
- Remove divergent roll code
- Remap roll button to Y
- Reimplement dive slide to make dive hop work like the original
- Allow spin from double jump, backflip, side flip

* Fix more issues with Extended Moveset Lua port

- Reimplement all users of update_walking_speed to incorporate the Tight
  Controls edits and modified speed caps
- Fix instances of angle arithmetic to wrap properly across the mod

* Don't chop off group bits of custom action flags; assign missing groups in mods

This fixes the Extended Moveset's underwater actions. Chopping off those
bits was making the game consider the underwater actions to be a part of
the Stationary group, which caused `check_common_stationary_cancels`,
which upwarps Mario to the surface.

* Tweak roll sliding angle tendency

Rolling will now gradually (but fairly quckly) try to tend Mario's
facing angle down the slope.

This is cleaner than my old method that tries to flip Mario's angle
(wrongly) when he begins moving downward, having that logic coexist with
the logic for normal sliding actions that can also tend Mario to face
backward down the slope. Just looks ugly now by comparison.

* Disallow spin jump on slides in Extended Moveset port

This matches the original mod

* Extended Moveset: Crazy Box Bounce check

* Extended Moveset: Fix hugging the wall when spin jumping after wall kick

* Extended Moveset: Fix ledge drop snapping up to ground

Just reimplement `act_air_hit_wall` ourselves.

* Extended Moveset: Add Kaze's walking speed fix

* smlua_hooks.c: Restore option to use old API for hook_mario_action

The intent is to allow mods outside of this repo to continue working.

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-08-07 15:25:00 -07:00
TheGag96 a1bcd19529 Arbitrary shirt, pants, glove colors + settings menu (#145)
* Support for more granular player colors

You can now configure RGB values for shirt, pants, gloves, and shoes.
Due to some limitations, configuring shoes does nothing at the moment.

* Remove paletteIndex and friends

Restructured and filled in some remaining code to account for that.

* Add Edit Palette panel to Player panel

* Change PlayerPalette contents to an enum-indexed array, remove shoes

This gets rid of all the hokey code doing switch cases on the
different parts.

* Fix goof with player model selection box

Should actually have affect now even if a custom palette is being used.

* Fix gap in player color display list commands

The extra space was leftover from when I was trying to get shoes
working. Forgot to clean it up.

* Standardize PlayerParts enum, including for lua constants autogen

* djui_panel_player.c: Properly hook sending palette changes on unpause

Editing the palette and then unpausing should send out the packet to
everyone with the new palette changes (and update the palette preset
selection box), but since we weren't hooking that situation before, it
would stay changed only for you. You would have had to press the Back
button for it to work right.

* Allow Lua mods to continue using `paletteIndex`, `overridePaletteIndex`

This lets mod code like this still work unchanged:

if s.team == 2 then
    np.overridePaletteIndex = 7
elseif s.team == 1 then
    np.overridePaletteIndex = 15
else
    np.overridePaletteIndex = np.paletteIndex
end

It's essentially faked, and would work strangely if the value of either
variable was inspected more closely directly. This should at least
handle the typical use case, though.

Every frame, `overridePaletteIndex` is checked to see if it was modified
from its previous value. If so, `overridePalette` is set to the preset
corresponding to the index. `paletteIndex` contains a special value that
when used to assign to `overridePaletteIndex`, it copies `palette` into
`overridePalette` to restore the real colors, which of course may not
follow the presets at all.

* characters.h: Pack `PlayerPalette` to eliminate size differences between computers

* mario_misc.c: Remove remaining "TODO GAG"
2022-08-07 15:13:19 -07:00
MysterD da132205bd Fix up co-op ripples 2022-08-07 01:10:10 -07:00
HunterHeard 029aca6548 Co-op ripples (#118)
* First attempt

First attempt at having other Mario objects create ripples.

Works very inconsistently, the position of players not currently interacting with the painting seems to influence whether the ripples will work or not

* Moved nearest mario code from geo_painting_update

Instead of using the nearest mario object for geo_painting_update, I use it in painting.c functions that called for gPaintingMarioXYZPos, substituting the nearest Mario object's position instead, as well as using it for the last floor mario was over.

This method still isn't quite perfect and there's a few more things I'd like to fix/change.
1. If a Mario is closer to the painting (perhaps right against the middle) other Mario's can't trigger ripplings at all unless they get closer than the closest Mario
2. I would like for all Entry and Exit ripples to interrupt each other, meaning if multiple Marios jump in, each one triggers a ripple one after the other
3. I want to hear the other player's exit sounds

* Add currPositionValid

Sets currPositionValid to false for NetworkPlayers who are connected, who changed levels to a level different from the local player, and who are not the local player when the local player changes levels.

* Set currPositionValid

Sets currPositionValid to false for update packets that don't match local area.
Sets it to true for update packets that do match local area.

* Send change area/level immediately

Adds a function network_on_loaded_area2() which only sends a change level or area event and doesn't clear the sync ids.
Calls this function almost immediately as opposed to waiting for LOADING_LEVEL_THRESHOLD frames

* Add currPositionValid to NetworkPlayer

currPositionValid (which is used by painting.c to determine if a player should be considered for the closest player to the painting) is a variable that tells you if a network player's marioObj has a position which can be relied upon as a valid position for that player.

network_player_update_course_level sets it to false for a network player if the new location does not match the local player's location.
network_receive_player sets it to false if a network player's update is from a different location than the local player, but sets it to TRUE if the update is from the same location.
update_course does NOT set it to true, because the location is not sure to be valid until we've received a location from the player with the right location attached to it.

* Use currValidPosition correctly

Uses currValidPosition correctly, also add debug text for seeing closest player to painting.

* fix merge

* Fix merge

* Verboser logging and invpos on enter

* Multi collision arrays

* Removed nearest code, added comments

* Added simultaneous ripples on one painting

* Added commented Gamepad from Background line

* Removed debug logging

* renamed secondary network_on_loaded function

* Added early multiple paintings rippling at once

* Added multiple paintings rippling simultaneously

Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2022-08-07 01:08:00 -07:00
Isaac0-dev a30ac0d8ff Lives/Game over fix, exposed initiate_warp() and improved enemy lakitu (#143) 2022-08-05 23:09:13 -07:00
Emerald Lockdown ee810e893b Added Dynos Pack and Player to pause menu (#136)
* Added Dynos Pack and Player to pause menu

* Fixed bodyHeight
2022-08-05 22:23:38 -07:00
Prince Frizzy b87fb12f71 Add some more functions for use in LUA, And expose others. (#129)
* Add some functions, and restore one.
2022-08-05 22:17:05 -07:00
MysterD d3ed4f3362 Add HOOK_USE_ACT_SELECT ; increase MAX_AUDIO_OVERRIDE to 128 2022-08-04 01:12:16 -07:00
MysterD 1e7814dc8e Prevent crash in mod cache 2022-08-04 01:11:51 -07:00
MysterD 8b3c3acd2c Change fixCollisionBugs from server setting to mod setting 2022-06-25 01:26:53 -07:00
Isaac0-dev 3743a924dc Fix collision bug in dark world and edit readme.md (#134) 2022-06-25 00:59:48 -07:00
Agent X 84b8574a08 Custom camera cleanup (#133) 2022-06-25 00:54:58 -07:00
Isaac0-dev 152e4f0450 Fix headless server compile (4) (#132) 2022-06-25 00:54:39 -07:00
MysterD a8244f367c More packet bytesize cleanup 2022-06-06 20:50:00 -07:00
MysterD d30526e999 Whoops 2022-06-06 20:41:46 -07:00
MysterD dc1774aa59 More sync id cleanup 2022-06-06 20:39:18 -07:00
MysterD 04958c072c Fix mod cache issue where server wouldn't update the hash when it should 2022-06-06 19:34:44 -07:00
MysterD fe6bc9405c Refactor sync objects, move syncIds to u32 2022-06-06 19:13:04 -07:00
MysterD fcc65317ca Only use defined signals 2022-06-05 22:57:17 -07:00
MysterD 1a1f593a38 Added ability to have completely custom levels that don't override anything 2022-06-05 21:55:31 -07:00
MysterD e621b2f370 Cleanup 2022-06-05 19:22:11 -07:00
HunterHeard defb1d43d7 Add gamepad number, background options (#122)
Added two options, one which lets user choose which gamepad to use, and one
which allows game to be played with gamepad while in the background.

These two features together allow for "splitscreen" (sort of) multiplayer by
starting up instances and joining them together and selecting different
gamepads for each one.

Gamepad choices are 0-7. If a number is chosen that does not correspond to a
gamepad, the previous gamepad (last number you were on this session that had
a working gamepad) is used.
2022-06-05 19:16:24 -07:00
Isaac0-dev 074c915335 Detect termination signals (#127) 2022-06-05 19:11:15 -07:00
EmeraldLoc 658588b05e Remove act num if set to 0 (#128) 2022-06-05 19:10:34 -07:00
MysterD 349ae6a709 Fix behavior check in packet_object 2022-06-05 00:24:48 -07:00
MysterD 20c972c9fa Fix interpolated shadow corruption 2022-06-04 23:36:41 -07:00
MysterD 14a5a79eeb Prevent crashing on level change 2022-06-04 18:46:44 -07:00
MysterD 5532dea75f Close modfile at the correct time when downloading 2022-06-04 17:58:36 -07:00
MysterD 084ba327fd Close file pointers immediately after reading/writing 2022-06-04 17:33:45 -07:00
MysterD b84645b4d1 Show errno when fail to open file pointer 2022-06-04 17:20:41 -07:00
MysterD 96b536050f Whoops2 2022-06-04 00:54:04 -07:00
MysterD eb1a45346c Whoops 2022-06-04 00:53:27 -07:00
MysterD 5c5e8acd1c Prevent client from sending sync valid packets improperly 2022-06-04 00:52:38 -07:00
MysterD 6e087de181 Changed tree leaf particle check from hardcoded levels, to gEnvFxMode 2022-06-04 00:43:04 -07:00
MysterD 4a93e44779 Allowed LEVEL_ENDING to be overridden by DynOS 2022-06-02 22:06:33 -07:00
MysterD 1f0a55ada1 Unhardcode castle cannon grate star requirement 2022-06-02 21:19:53 -07:00
MysterD bf995d79c1 Sync setHome value in spawn object 2022-06-02 21:02:43 -07:00
MysterD b570091224 Whoops, forgot to save 2022-06-02 19:50:41 -07:00
MysterD bf5c9d7610 Fixed up indentation 2022-06-02 19:46:51 -07:00
MysterD 89a44c00b8 Unhardcoded more bowling ball values 2022-06-02 19:45:01 -07:00
MysterD 12af07a5e9 More custom bhv cleanup 2022-06-02 19:33:28 -07:00
MysterD 03b21082a6 Cleanup ; recursive descent fixes ; fixed behavior override comparisons
Moved dynos parsing for bhvs and models to a common file
Fixed recursive descent to correctly parse the entire expression
Adjusted bhv generation to use recursive descent
Switched all known behavior comparisons to the overridden versions
Fixed issue with Chain Chomp in star road
2022-06-02 19:07:43 -07:00
Prince Frizzy 2a611034a6 Added a full new custom behavior system (#124) 2022-06-02 12:19:54 -07:00
MysterD ebecb79af3 Bumped version 2022-06-01 23:04:41 -07:00
MysterD efaf87ab11 Unhardcoded more values ; generated more tex files ; special set home function ; fixed lua bhv bugs
Unhardcoded KingBobomb values, Mips values, star dialog values
Generated tex files when they're of the form levels/XXX/NUMBER
Now lua behaviors can call cur_obj_set_home_once() to set home correctly
Lua behaviors are now overridden correctly when created through spawn infos
Behavior checks now translate to the overridden behavior before checking
2022-06-01 23:04:21 -07:00
MysterD 1224dec362 Update autogen 2022-06-01 01:00:21 -07:00
MysterD ada0170dbb Fix collision bugs setting now allows for non-axis-aligned walls to be correct 2022-06-01 01:00:00 -07:00
MysterD 64e444e490 Adjust wall normal when colliding with multiple walls 2022-05-31 18:26:27 -07:00
MysterD 57b507ba1d Consider all walls when doing quarter steps (fixCollisionBugs) 2022-05-31 08:44:18 -07:00
MysterD 4add33fa19 Added server setting toggle for 'surface cucking' and 'exposed ceilings' vanilla bugs 2022-05-31 01:29:48 -07:00
MysterD d687b4513c Bump version 2022-05-30 03:08:52 -07:00
MysterD 668544f62d Clear custom actors on disconnect properly 2022-05-30 00:37:14 -07:00
MysterD e719875b48 Fixed crash on warp 2022-05-29 18:16:52 -07:00
MysterD 315420693b Fix bettercam rotation when jumping 2022-05-29 16:43:35 -07:00
MysterD 89462131eb Fix crash, only translate cam space when its valid 2022-05-29 15:34:28 -07:00
MysterD 01dabb442d Revert "Restore local Mario to mirror room (#109)"
This reverts commit a5e9e38713.
2022-05-29 15:33:03 -07:00
MysterD 162aa40f96 Fix warnings on windows 2022-05-29 03:30:41 -07:00
MysterD eeb47f9896 Made capped framerates and vsync smoother 2022-05-28 20:13:02 -07:00
MysterD 1591e406fa Add null checks to spawn_object.c 2022-05-28 01:29:19 -07:00
MysterD 3b02056de8 Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-28 01:26:52 -07:00
MysterD e829943461 Allow set_mario_colors on any layer, add recursive descent to geo parsing, fix color flashing in Arena 2022-05-28 01:26:40 -07:00
137329506980462592 aaf84330f7 Add tired / second punch sound back (#120) 2022-05-28 00:56:48 -07:00
MysterD dc62b609a9 Re-request level or area if stuck in invalid state for a while 2022-05-28 00:49:28 -07:00
MysterD d853acc52a Reload save data on disconnect 2022-05-28 00:40:04 -07:00
MysterD 6ee840b55a Cleared controller on disconnect properly 2022-05-28 00:36:55 -07:00
MysterD 8a02578315 Clear controller values on disconnect 2022-05-28 00:22:13 -07:00
MysterD f5d69402a9 Prevent assert in load_tlut 2022-05-28 00:16:16 -07:00
MysterD 7dd7678f07 Attempt to fix crash that mentions get_mario_spawn_type() 2022-05-28 00:14:57 -07:00
MysterD 5cadf0455a Fixed sync of ttc speed setting and pss slide started 2022-05-27 20:02:19 -07:00
MysterD fe25547c7e Alter fog depth to deal with new near plane value 2022-05-27 19:56:38 -07:00
MysterD 5e4c47a3c4 Made romhack camera's collision response less fancy, just zoom in when we have to 2022-05-25 19:30:38 -07:00
MysterD 6c2d431e65 Made romhack cam snappier, and fixed weird diagonal offset 2022-05-25 19:17:13 -07:00
MysterD aea75678eb Fix crash when issuing /players chat command 2022-05-25 18:20:13 -07:00
MysterD 69a82965da Added null checks to functions in obj_behaviors.c 2022-05-25 18:15:03 -07:00
MysterD 0e2e370f47 Clear custom models on disconnect 2022-05-25 18:07:58 -07:00
MysterD 1e1504b8a6 Bump version 2022-05-25 18:01:48 -07:00
MysterD 79bbd8dd20 Remove debug position stuff for bettercam 2022-05-25 18:01:33 -07:00
MysterD 829b9e856b Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-25 17:49:42 -07:00
MysterD 75ec199b07 Bettercam improvements: no longer sways when close to geo, no longer zooms if player partially visible 2022-05-25 17:47:34 -07:00
PeachyPeach 607e07166c Camera config values for lua (#116)
* Added camera config getters and setters
2022-05-22 18:47:36 -07:00
Amy54Desu df57dddbea Fix Player Limit Settings and Hide Server Only Chat Commands (#114) 2022-05-21 23:07:29 -07:00
MysterD f5e245590f Allow users to select between accurate or fast interpolations 2022-05-21 21:47:53 -07:00
Altiami ac6ce708c3 New render frame interpolation via transformation matrix de-/construction (#98)
This method of interpolation aims to correctly interpolate the render
transformation matrices as best as possible without doing an entirely
new render pass. This is accomplished by deconstructing the matrices
into its composition of transformations, interpolating those simpler
transformations individually, and then reconstructing the
transformation matrix with the interpolated transformations.
2022-05-21 21:46:41 -07:00
MysterD a2786951cc audio_stream_load_url() cleanup 2022-05-21 21:20:02 -07:00
Lord-Giganticus 21b4ed3be8 Add function to load music via https URLs (#100) 2022-05-21 21:17:35 -07:00
MysterD 3980ed9aaa Initialize gGetHostName 2022-05-21 21:13:01 -07:00
Isaac 3d1c57c020 Improvements to domain resolution (#106) 2022-05-21 21:12:32 -07:00
Amy54Desu 89519fec27 Add Act Num to Playerlist (#95) 2022-05-20 11:36:44 -07:00
Marioiscool246 d0e49ba67f Particle sync fixes (#112)
* Fix lingering particles when a player exits an area or disconnects
2022-05-20 11:32:47 -07:00
MysterD 5fc6bb0491 Fix clang/mac compile 2022-05-19 19:42:07 -07:00
Isaac a5e9e38713 Restore local Mario to mirror room (#109) 2022-05-19 17:14:23 -07:00
Isaac e4baa6eb95 Restore Mario to selected palette when returning to main menu (#105) 2022-05-19 17:07:58 -07:00
Agent X 9924d72f27 Mouse lock & freeze cam fixes and warp constants (#103) 2022-05-19 17:06:51 -07:00
Marioiscool246 6b9f95ef43 C-Up Player Head Rotation Fix & Particle Flags Sync Fix (#99)
Local head rotation is now no longer copied to all other players
C-Up mode head rotation now sends to the other players through
the player packet so others can see the head move around

m->particleFlags are now synced to the other players now
2022-05-19 16:52:47 -07:00
PeachyPeach f433dbfcf6 Fixed various audio bugs; DynOS can now detect texture duplicates to decrease generated bin files size (#110)
Fixed the following audio bugs:
    Bug: Rom-hacks sequences don't seem to be affected by volume scaling and
         muting
    Fix: Force the BGM sequences to follow the vanilla behavior:
        Volume can't go higher than default volume
        Volume is reduced to 31% when the game is paused
        Audio is stopped when the game is paused outside the Castle levels
    Bug: (Pointed out by Draco) Mario's voice clips are not replaced by the
         player's character's in the following instances: fall to death
         barrier, "here we go" in the ending cutscene, "let's a go"
         after selecting a star, "okey dokey" after starting the game.
    Fix: The first two ones now call
         play_character_sound(m, CHAR_SOUND_...) instead of
         play_sound(SOUND_MARIO_..., pos). The last two ones couldn't be
         fixed the same way for two reasons: First, the corresponding sounds
         were not referenced in the sound table, second, the sound played is
         always cut-off after a few frames (due to how sm64 resets the sound
         banks after loading a level).

Added SOUND_*_LETS_A_GO and SOUND_*_OKEY_DOKEY sounds for each playable
    character as Bass samples.
    Character Bass sounds work the same way as vanilla sounds (i.e. can be
    played with play_character_sound), but they cannot be prematurely stopped
    by sm64 sound banks shenanigans.
    This fixes the cut-off for both the star select and the castle grounds
    entry, plays the sound corresponding to the player's character, and doesn't
    need to extend or edit the sound table.

DynOS can detect texture duplicates when generating a bin or lvl file.
    When a duplicate is detected, the name of the original texture node is
    written instead of the whole PNG data, decreasing significantly the
    resulting file size.
2022-05-19 16:40:45 -07:00
Isaac d8d8eb731a change text depending on if you are client or server (#92) 2022-05-17 16:24:56 -07:00
MysterD ef4c7d780c Reset hardcoded values on disconnect 2022-05-17 01:22:45 -07:00
PeachyPeach 18503ecc52 Various bug fixes + Added is_game_paused() and more background music functions to lua (#93)
Bug: DynOS models with animations cannot swap animations if they are
     loaded via lua (smlua_model_util_get_id and
     obj_set_model_extended).
Fix: DynOS_Actor_GetActorGfx takes a graph node instead of a georef,
     and checks for DynosValidActors graph nodes if georef is NULL.

Bug: The game can crash when calling obj_set_model_extended inside a
     HOOK_ON_OBJECT_RENDER hook.
Fix: The crash happens in smlua_model_util_load_with_pool_and_cache_id
     due to pool being NULL. If the game can't allocate an
     AllocOnlyPool object, use DynOS to generate the graph node.

Bug: warp_to_level and similar functions don't trigger HOOK_ON_WARP.
Fix: Call HOOK_ON_WARP hooks in DynOS_Warp_UpdateWarp and
     DynOS_Warp_UpdateExit after level and mario initialization.

Bug: The game sometimes calls HOOK_ON_OBJECT_RENDER hooks for
     unintended objects.
Fix: Initialize hookRender field to 0 when creating an object.

Bug: Actions can't apply gfx offsets to characters that have an anim
     offset (Waluigi, Wario)
Fix: Add m->curAnimOffset to gfx.pos[1] instead of setting it to
     m->pos[1] + m->curAnimOffset, except during the jumbo star
     cutscene.
2022-05-14 14:28:25 -07:00
MysterD f9949b64c9 Prevent rendering mirror players - fix crash in mirror room 2022-05-14 02:46:39 -07:00
MysterD e1ab2cfb80 Fix crash when loading custom audio on client 2022-05-13 23:27:49 -07:00
Agent X 90f5fc3a08 djui_hud_get_raw_mouse_x/y, djui_hud_set_mouse_locked (#91) 2022-05-13 19:55:47 -07:00
EmeraldLoc d0c21aa702 Made network_description/player_description hold 1 extra character (#90) 2022-05-13 19:55:38 -07:00
MysterD 83f441cd4e Add djui_hud_world_pos_to_screen_pos, and render interpolated rect/texture 2022-05-13 19:54:49 -07:00
MysterD 9cc68fac94 Make red coin star spawn on late join 2022-05-11 18:22:40 -07:00
MysterD 096c67db9b Prevent packet processing when disconnected 2022-05-11 18:15:46 -07:00
MysterD 394733ffc7 Set discord network system on shutdown 2022-05-11 18:11:53 -07:00
MysterD 934d41a44e Prevent joining a Discord lobby when you're already hosting 2022-05-11 18:10:27 -07:00
MysterD 2c9f42abd6 Do more Discord API cleanup on network shutdown 2022-05-11 01:33:56 -07:00
MysterD 91988cc426 Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-11 01:28:36 -07:00
MysterD aaa8e4b885 Clear network players on disconnect 2022-05-11 01:27:14 -07:00
Isaac 6035d4652b Crash fix (#87) 2022-05-10 21:20:40 -07:00
Isaac 50a4a55647 Prevent spoofing moderator packets (#86) 2022-05-10 02:27:29 -07:00
MysterD 4b7b6926d1 Moderator cleanup 2022-05-09 23:20:07 -07:00
Isaac bf569006b6 Moderator (#80) 2022-05-09 23:11:39 -07:00
MysterD 272cac6376 Merge branch 'audio' into unstable 2022-05-08 16:41:05 -07:00
MysterD bf4f91136b Cleaned up mod_load_files() 2022-05-08 16:34:10 -07:00
MysterD 288d026650 Specify filetypes in audio folder, add audio_custom_shutdown() 2022-05-08 15:44:04 -07:00
PeachyPeach 82aca5404e More rom-hacks globals to lua; more bug fixes (#84)
New gLevelValues exposed to lua:
        pssSlideStarTime: the time limit in frames for PSS-style levels (default: 630)
        pssSlideStarIndex: the index of the star spawned below the time limit for PSS-style levels (default: 1)
        coinsRequiredForCoinStar: number of coins required to spawn the 7th star of a main course (default: 100)
        wingCapDuration: duration in frames of the wing cap (default: 1800)
        metalCapDuration: duration in frames of the metal cap (default: 600)
        vanishCapDuration: duration in frames of the vanish cap (default: 600)
        wingCapDurationTotwc: duration in frames of the wing cap given to the player at the entrance of TOTWC (default: 1200)
        metalCapDurationCotmc: duration in frames of the metal cap given to the player at the entrance of COTMC (default: 600)
        vanishCapDurationVcutm: duration in frames of the vanish cap given to the player at the entrance of VCUTM (default: 600)
    Fixed a bug preventing the level music from restarting after defeating a Boss.
    Fixed some bugs with 3D coins or any model with the geo_rotate_coin function:
        Disable billboard and cylboard attributes.
        Set the pitch and roll to 0 for the model to rotate properly.
        The model no longer rotates every frame (even when the game is paused), but every time the object is updated.
2022-05-08 12:18:25 -07:00
MysterD cd18f5aa6b Various audio fixes, updated audio example 2022-05-08 04:32:18 -07:00
MysterD 6d6995e5da Make bass sound interface easier to handle 2022-05-08 04:04:14 -07:00
MysterD 99e59dd8c1 Re-ran autogen 2022-05-08 00:29:17 -07:00
Beyley Thomas 20167088d6 Add basic Bass audio engine (#58) 2022-05-08 00:25:09 -07:00
MysterD 8c884c8473 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-05-07 21:16:04 -07:00
MysterD f7e450fad0 Fix custom textures with EXTERNAL_DATA 2022-05-07 21:15:38 -07:00
PeachyPeach adc56ff6c5 3-digits orange numbers; Fixed red coins and secrets bugs; Correct red coins display during pause (#82)
Modified number_geo to allow it to display orange numbers from 0 to 999.
    Edited red coins/secrets code:
        Added two fields in the Area struct: numRedCoins and numSecrets
        The number of red coins/secrets in every area is computed during level script processing
        Removed the useless global gRedCoinsCollected
    These changes fix the following bugs:
        Wrong sound effect played and incorrect number displayed when there is more than 8 red coins/5 secrets
        Desynced red coins/secrets counter when going from an area to another
        Remotely spawning red coins/secrets stars in other areas without collecting all red coins/secrets
    Pausing the game now shows the correct number of collected red coins / the total number of red coins in the current area.
2022-05-07 19:09:37 -07:00
MysterD f2e63cfe5d Bump max mod size to 35MB 2022-05-07 17:41:20 -07:00
MysterD 139aabb194 Prevent mod cache from MD5'ing every file on every boot 2022-05-07 17:03:35 -07:00
MysterD 3d29df26f6 Bump version 2022-05-06 22:09:30 -07:00
MysterD ac8d947196 Make the DynOS button more generic 2022-05-06 22:09:14 -07:00
MysterD e1fd969cf3 Add support for custom HUD textures and faster texture packs w/o EXTERNAL_DATA 2022-05-06 22:03:12 -07:00
MysterD 0675cc5f0e Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-05-04 00:14:42 -07:00
MysterD 4dbe04e460 Another snow crash fix 2022-05-04 06:26:40 -07:00
MysterD f3482aa969 Possible fix for crash handler 2022-05-04 06:00:46 -07:00
MysterD f249daaa08 Another possible fix for snow crash 2022-05-04 05:50:30 -07:00
MysterD 73d80fa2d7 Possible fix for crash in gfx_texture_cache_lookup() 2022-05-03 22:11:44 -07:00
MysterD 09daeed1f9 Add null checks to initiate_delayed_warp() 2022-05-03 22:08:30 -07:00
MysterD 1993e2c8b2 Possible fix for snow crash 2022-05-03 22:01:06 -07:00
Isaac a32b913e62 Fix headless server compile (3) (#78) 2022-05-02 19:45:32 -07:00
Agent X 48af31e0bf Add surface_terrains.h to constants (#77) 2022-05-02 17:31:55 -07:00
Agent X cad4930a73 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 5ddf093c26 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 ea17d936b2 Check for ACT_FLAG_INTANGIBLE in passes_pvp_interaction_checks() 2022-04-30 17:28:02 -07:00
MysterD 48427e02a5 WIP: uncapped framerate 11 2022-04-30 17:25:47 -07:00
MysterD 6bfd6ef81d Fix remote player pole position 2022-04-30 17:11:18 -07:00
MysterD 1d67bb3347 WIP: uncapped framerate 10 2022-04-30 17:11:09 -07:00
MysterD 41ccd61684 Bump version 2022-04-29 22:13:16 -07:00
MysterD 3dab069f87 Make djui run at 60fps in the pause menu again 2022-04-29 21:59:09 -07:00
MysterD 2745fb3383 Force frame limit to sane values 2022-04-29 21:35:10 -07:00
MysterD 8cd24d18ac Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-29 21:32:18 -07:00
MysterD c742606452 WIP: uncapped framerate 9 2022-04-29 21:28:14 -07:00
MysterD bde20acb0d Improve reliable packet timer/resend rate 2022-04-29 21:27:23 -07:00
Prince Frizzy 03ee22b232 Add two new LUA util functions. (#72) 2022-04-28 20:42:29 -07:00
MysterD d6245b4d5b WIP: uncapped framerate 8 2022-04-28 00:22:15 -07:00
MysterD d002eeb66b WIP: uncapped framerate 7 2022-04-27 21:42:22 -07:00
MysterD 35aee27cf3 WIP: uncapped framerate 6 2022-04-27 21:27:14 -07:00
MysterD 1b65874f6d WIP: uncapped framerate 5 2022-04-27 19:43:55 -07:00
MysterD b5f7c3a254 WIP: uncapped framerate 4 2022-04-27 18:41:05 -07:00
Isaac b45e8e7e58 Check if in water before changing camera. (#71) 2022-04-27 18:34:31 -07:00
MysterD 5fb91dba5b WIP: uncapped framerate 3 2022-04-27 18:25:43 -07:00
MysterD 56b6e587d8 Fix issue where some billboards would randomly be disabled 2022-04-27 18:01:22 -07:00
MysterD bdb58d0cd5 WIP: uncapped framerate 2 2022-04-26 22:42:57 -07:00
MysterD 83b9609b10 WIP: uncapped framerate 2022-04-26 20:00:18 -07:00
MysterD 70b5ba9579 Added general purpose profile functions 2022-04-26 18:35:59 -07:00
Prince Frizzy 3c38c276c9 Add error logging to matrix stuff. (#70) 2022-04-26 13:49:09 -07:00
PeachyPeach 6d360f259c 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 26b3ec966c Created a minor version number 2022-04-23 15:55:26 -07:00
MysterD a7f76be622 Fix crash when pausing in an invalid act 2022-04-23 15:54:31 -07:00
MysterD 6b008c7518 Fix crash in find_surface_on_ray_list() 2022-04-23 15:50:14 -07:00
MysterD 10305fcd5c Another download fix, whoopsies 2022-04-23 15:13:28 -07:00
MysterD 2827c523ce Fix memory corruption in download 2022-04-23 15:08:33 -07:00
MysterD 40896e09d0 Prevent DynOS packs from being enabled then disabled on launch 2022-04-23 03:23:30 -07:00
MysterD 0f821483b1 Automatically disable billboards when a DynOS model uses more than 6 vertices 2022-04-23 03:05:16 -07:00
MysterD 22f39d3933 Fixed rare crash in geo_process_node_and_siblings 2022-04-23 01:12:12 -07:00
MysterD 37606faead Made specialTripleJump a field of MarioState instead of a global 2022-04-23 00:35:49 -07:00
MysterD 09c258f752 Sort mods list 2022-04-23 00:30:43 -07:00
MysterD 25d9f2c5b8 Added more detailed lua error logs 2022-04-23 00:15:08 -07:00
MysterD 6436c257ac Allow Lua to set fields to nil 2022-04-22 23:49:14 -07:00
MysterD 09217150e1 Fix error cascade when one mod has script errors 2022-04-22 23:42:03 -07:00
MysterD 5ef726c378 Made Lua errors show a backtrace for almost all cases 2022-04-22 23:31:25 -07:00
MysterD 03b81569e9 More performance improvements 2022-04-22 20:57:18 -07:00
MysterD c2d4cd1cc8 Fix up DynOS actor override 2022-04-22 18:57:26 -07:00
MysterD 60a2f1d553 Special stages show their level name in the pause menu again 2022-04-22 18:53:53 -07:00
MysterD d6b2cccff5 Move Lua allow lists over to using a hashmap 2022-04-22 18:51:25 -07:00
MysterD 41fbf6cd7f Use binary search for all Lua cobject fields 2022-04-22 18:51:25 -07:00
MysterD 86889da980 Added gActiveMods global to lua 2022-04-22 18:44:59 -07:00
MysterD 2552d22cf9 Added custom mod packets 2022-04-22 00:13:58 -07:00
MysterD 77ca167564 Added HOOK_ON_DEATH 2022-04-21 18:34:12 -07:00
MysterD 146983769d Adjustments to reliable packets 2022-04-21 18:33:20 -07:00
MysterD 647d7c92b9 Fixed player interactions 2022-04-21 00:48:26 -07:00
MysterD 0e9bbf1ec1 Bump version 2022-04-20 22:11:05 -07:00
MysterD bbefd2eb35 Only have interactions happen for the local player 2022-04-20 22:10:52 -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
137329506980462592 ae961fab33 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 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
Isaac d40a020d04 update console help message (#68) 2022-04-20 11:19:00 -07:00
Prince Frizzy 654d3ddbf8 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 1b291b0941 Added HOOK_ON_OBJECT_RENDER 2022-04-19 22:36:47 -07:00
MysterD a3df8d9c0b Massive DynOS refactor for performance/organization 2022-04-19 21:06:18 -07:00
MysterD cc4e3c6354 Refactor how objects set their models 2022-04-19 18:47:50 -07:00
MysterD 8ddf90a058 Make DynOS texture lookup use a set for performance 2022-04-19 18:24:26 -07:00
MysterD 4159b7c5f5 Allow custom levels to use any active mod's variables 2022-04-18 23:02:40 -07:00
MysterD 47d3aa9220 Duplicate path in cache 2022-04-18 22:16:14 -07:00
MysterD 3025b2ec77 Whoops 2022-04-18 22:03:37 -07:00
MysterD 40b8adaeb9 Even more mod cache fixes 2022-04-18 21:59:42 -07:00
MysterD 01aaed6a8a Slight adjustment to script error message 2022-04-16 22:50:23 -07:00
MysterD 0c696edf0c Display a message on screen when script errors are found 2022-04-16 22:47:16 -07:00
MysterD f2edf202e7 More mod cache fixes 2022-04-16 22:46:29 -07:00
MysterD 63a4ec2fde Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-16 20:39:17 -07:00
MysterD b1349595f7 Sanity check mod_cache_save 2022-04-16 20:38:19 -07:00
MysterD 34f51bbec7 Check hook return types before using them 2022-04-16 20:27:51 -07:00
Prince Frizzy 7bcf0b2c9c Matrix Code Cleanup. (#64) 2022-04-16 19:48:40 -07:00
Prince Frizzy 7c5261554e Merge in small changes. (#63) 2022-04-16 19:12:12 -07:00
MysterD 1856a60800 Maybe fix mac idk 2022-04-16 15:46:05 -07:00
MysterD 2f196067a6 Maybe fix mac 2022-04-16 15:30:25 -07:00
MysterD b7d99d35e2 Audio fixes 2022-04-16 22:04:18 -07:00
MysterD 166aa1b558 Fix ext bounds warnings 2022-04-16 21:38:37 -07:00
MysterD 14f433f414 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-04-16 21:35:13 -07:00
MysterD 720806394d Adjust extended bounds values 2022-04-16 21:34:49 -07:00
MysterD 5767ee27c5 Yet another mod cache fix 2022-04-16 21:21:31 -07:00
MysterD 50a6305728 more 2022-04-16 14:28:15 -07:00
MysterD be5b5efae3 Frantic fixing 2022-04-16 13:45:45 -07:00
MysterD b6be0a0e78 Rewrite of hash/cache system 2022-04-16 13:05:10 -07:00
MysterD 986388db54 Force loading order on hash/normalize path 2022-04-16 00:36:30 -07:00
MysterD 78f3a573ba exposed sequence ids to lua 2022-04-15 21:51:18 -07:00
MysterD e34a468342 Fix memory corruption 2022-04-15 21:47:47 -07:00
MysterD e3edc6fecb Fix broken clock 2022-04-15 19:34:47 -07:00
MysterD 0095a8df5f Fix warnings 2022-04-16 02:24:15 -07:00
MysterD 79ce8bb21d Prevent crashes when executing an unimplemented action 2022-04-15 18:36:45 -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 e1f08bb8ac Fix sequence buffer overrun 2022-04-15 18:32:36 -07:00
MysterD 0a0d9d3aa5 Revert "Prevent bettercam from zooming in until player is fully obscured"
This reverts commit ff957962a9.
2022-04-15 12:09:41 -07:00
MysterD dd830fab6d Fix crash in cutscene_enter_painting 2022-04-15 18:26:55 -07:00
MysterD f9495c85c9 Prevent chat messages on load from crashing 2022-04-15 18:23:46 -07:00
MysterD ff957962a9 Prevent bettercam from zooming in until player is fully obscured 2022-04-14 21:27:31 -07:00
MysterD 6db3e28764 Fixed wiggler dialog crash 2022-04-14 19:40:37 -07:00
MysterD 18ee41f560 Made PVP stunlocks harder 2022-04-14 18:28:08 -07:00
MysterD 9711dbac82 Fixed knockback direction 2022-04-14 18:25:42 -07:00
MysterD b2808711b4 Reset squish settings on spawn 2022-04-14 18:14:10 -07:00
MysterD 7c6f3f34ba Fix crash in bhv_rotating_clock_arm_loop 2022-04-14 00:57:02 -07:00
MysterD 66ddd60ae7 Mouse controlled camera no longer affects main menu camera 2022-04-14 00:54:32 -07:00
MysterD bb113778b3 Bowsers BITDW ground tremor now affects all players 2022-04-14 00:49:55 -07:00
MysterD f5b086e267 Fixed tumbling bridge desyncs 2022-04-14 00:45:16 -07:00
MysterD 3989b37e25 Fix memory corruption in sound init 2022-04-13 20:36:52 -07:00
MysterD 441ddb9496 Fix warnings with EXTERNAL_DATA 2022-04-13 19:50:19 -07:00
MysterD 75a46622f3 Added actor textures to dynos builtin list; added shadow_spike_ext 2022-04-13 19:13:25 -07:00
MysterD 6ece6e9bf5 Fixed crash in act_caught_in_whirlpool 2022-04-13 01:37:07 -07:00
MysterD dfed88003c Fixed crash in network_receive_area 2022-04-13 01:34:19 -07:00
MysterD 86417e600d Fixed crash in haunted bookshelf manager 2022-04-13 01:30:53 -07:00
MysterD cc56c209f3 Fixed crash when pausing in unexpected courses/acts 2022-04-13 01:29:41 -07:00
MysterD e506d99c9c Fixed crash in bhv_animates_on_floor_switch_press_loop 2022-04-13 01:14:25 -07:00
MysterD 882fc8050b Have levels automatically clean up their loaded graph nodes 2022-04-13 01:09:53 -07:00
MysterD 985f623ce1 Remove certain default Lua functions 2022-04-13 00:38:01 -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 cf51175264 Merge branch 'level-scripts' into unstable 2022-04-12 21:58:41 -07:00
MysterD fd54d30130 Remove discord asserts 2022-04-12 21:57:03 -07:00
MysterD a4380da799 More fixes 2022-04-12 19:39:48 -07:00
MysterD dac889cd6f More work on mod hashing/caching 2022-04-12 19:25:06 -07:00
MysterD 36767cacdf Added mod hashing/caching to prevent re-downloading the same mods 2022-04-12 18:38:53 -07:00
MysterD 6b389ac5a5 change how downloaded directory mods are saved 2022-04-11 23:33:21 -07:00
MysterD 0d9ce9e617 Fix downloads 2022-04-11 23:22:43 -07:00
MysterD 95362d7961 Fix DynOS vertex offset writing 2022-04-11 22:54:36 -07:00
MysterD 4610374570 Clang/mac fixes 2022-04-11 21:43:55 -07:00
Isaac 798dd0f342 Small changes (#60)
Prevented camera mode from being reset when someone else bubbles
+ more
2022-04-11 21:25:58 -07:00
MysterD 35a1109c21 fix camera change 2022-04-11 21:09:58 -07:00
MysterD 84e3099d6e Add a vanilla-like camera for romhacks 2022-04-11 21:04:15 -07:00
MysterD 9317f6f6f3 Fixed incorrect progress for downloading 2022-04-11 19:34:28 -07:00
MysterD 9cbe69b1ad Fix custom sounds in SM74 2022-04-10 22:48:31 -07:00
MysterD b66992ffc0 Made downloads significantly faster 2022-04-10 21:53:58 -07:00
MysterD ba53c06b52 Possible fix for init_mario_after_warp() crash 2022-04-10 18:19:15 -07:00
MysterD 7905624cb5 Fix fanfare spam in sm74 2022-04-10 18:15:22 -07:00
MysterD 1bfd8b09f8 Quick fix for model loading 2022-04-10 16:35:53 -07:00
MysterD c297e3f054 Rewrote extended model loading code. Should (hopefully) fix floating player models replacing stars 2022-04-10 16:19:07 -07:00
MysterD 709a145575 Quick fixes for test 2022-04-10 10:11:13 -07:00
MysterD 8e796af01c Bump version 2022-04-10 09:56:56 -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 45c8f9f46f Add SM74's geo_choose_area 2022-04-10 03:07:55 -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
Prince Frizzy d40cb0f43a Add Preload Option to the Settings. (#59)
* Add preloading texture option to the Display GUI.
2022-04-09 02:02:42 -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 2dc50f2909 Fix download of levels 2022-04-08 19:42:51 -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 56a314bab5 Fixed up collision bug, added collision file validation, allowed lua to get builtin collisions 2022-04-08 19:17:57 -07:00
MysterD 420789b570 Split dynos_misc stuff into mgr files 2022-04-08 08:18:06 -07:00
MysterD 837f1e4f71 Function pointer cleanup 2022-04-08 01:46:29 -07:00
MysterD c1f88f2dff Merge branch 'level-scripts' of github.com:sm64ex-coop-dev/sm64ex-coop into level-scripts 2022-04-08 00:54:44 -07:00
MysterD 6500173464 Allow Lua to adjust default star spawn positions 2022-04-08 00:37:20 -07:00
MysterD 87c7deca7f Allow Lua to adjust default star spawn positions 2022-04-08 00:07:06 -07:00
MysterD 652452540c Added vanilla lvl cols to level gen, changed how pointer offsets are saved 2022-04-07 23:06:10 -07:00
MysterD 8d0eff3cb2 Added support for SM76's JUMP_AREA, added missing lvl geos, reordered parsing 2022-04-07 18:34:44 -07:00
MysterD c5f7aecd40 Fixed token corruption in DynOS, added support for runtime LOAD_MODEL_FROM_GEO 2022-04-07 08:21:19 -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 2cc48515a7 Added support for known models and unknown behaviors for level gen 2022-04-06 23:10:39 -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 5da4060f0a Memory management improvements
Log errors on allocation failure
NULL check all display list allocations
Fix reading a freed string
2022-04-06 18:10:22 -07:00
MysterD 6aa29a54e7 Added extended bounds 2022-04-06 08:40:22 -07:00
MysterD 74ee1712fa Merge branch 'unstable' into level-scripts 2022-04-06 01:39:15 -07:00
MysterD 53b48e4eb9 Fix warning 2022-04-06 01:39:02 -07:00
MysterD 2aeb96cc59 Merge branch 'unstable' into level-scripts 2022-04-06 01:36:33 -07:00
Altiami b977f48259 Return TRUE for interactions with Power Stars when Non-stop mode is enabled (#57) 2022-04-06 01:14:47 -07:00
MysterD 431a2b5da8 Merge branch 'level-scripts' of github.com:sm64ex-coop-dev/sm64ex-coop into level-scripts 2022-04-05 23:00:20 -07:00
MysterD 635b23aa6f Added support for custom skyboxes in DynOS level gen 2022-04-05 22:56:03 -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
Prince Frizzy e6f97a3ef7 Add support for dynamic water regions. (#55)
* Add support for dynamic water regions.
2022-04-05 13:44:05 -07:00
MysterD 4cd4849ada Added ability for DynOS levels to call into lua for custom objects 2022-04-04 18:16:36 -07:00
PeachyPeach d34eed7ad0 Set loading order of mods files to alphabetical; Fixed a bug with downloaded mod folders (#54)
Mods as a directory of files depend on loading order for them to work
properly. Currently, the loading order is basically undefined behavior
and unpredictable. The function mod_set_loading_order is here to
specify this order. By default (and for now), the order will be
alphabetical and will follow the ascii table values, meaning digits
come before capital letters and lowercase letters.

Fixed a bug with mods as directories of files when they are downloaded.
The bug was the following: If two selected mods have files with the
same relative filename, they overwrite each other when downloaded,
causing file corruption and making the client game crash when loaded.
To fix it, the mod's directory name is appended to every .lua filename,
so each file has a unique filename when downloaded.
2022-04-04 13:43:29 -07:00
MysterD a495a775be All vanilla levels can be compiled through DynOS now 2022-04-04 01:11:02 -07:00
MysterD 4052347247 More progress toward custom DynOS levels 2022-04-02 15:14:04 -07:00
Isaac f55074a193 Credits skip (you can merge this now) (#52) 2022-03-31 01:52:28 -07:00
MysterD 575f6d9270 Fixed DynOS saving/loading with spaces in pack name 2022-03-31 00:21:48 -07:00
MysterD 25241d836a Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-03-31 00:13:10 -07:00
MysterD a4ed264285 Refactor coop-specific DynOS code 2022-03-30 23:05:53 -07:00
Isaac 6c9eb9a605 Credits skip (#50)
Press the start button to skip the credits.
Works during ACT_END_PEACH_CUTSCENE and ACT_CREDITS_CUTSCENE.
2022-03-30 21:45:37 -07:00
MysterD 6f00bd7bd0 Ran autogen 2022-03-30 20:03:59 -07:00
MysterD 377fcefd86 Allow Lua mods to prevent exit to castle/exit course 2022-03-30 20:03:22 -07:00
MysterD 3fbc324584 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-03-30 19:26:06 -07:00
Prince Frizzy d9fab6d184 Bomb-Omb Buddy sanity improvement (#51) 2022-03-30 19:25:21 -07:00
Prince Frizzy f7ba4c1d0d Grand star fix and etc (#47)
A ton of Bowser fixes, Grand star included.

Fixed Grand Star cutscene syncing.
Partially fix grand star syncing after joining late.
Fix Bowser's intro cutscene always playing even if you joined after the first person.
Hopefully fixed Bowser's state getting interrupted mid-fight just a bit.
Add nothing state sanity check, and send object reliability when cutscene is finished.
Fix ownership override.
2022-03-30 19:03:53 -07:00
MysterD 83c6149821 Resynchronized WDW water level and water diamonds 2022-03-30 18:10:36 -07:00
MysterD a3fb0a0ff7 Force drop objects on instant warp 2022-03-29 22:34:48 -07:00
MysterD 959fc83e44 Allow lua's network_init_object() to use 16 and 8 bit fields 2022-03-29 21:42:41 -07:00
MysterD 27005a76d4 Fixed 'skip intro' setting. Intro lakitu spawns when he's supposed to now 2022-03-29 21:22:08 -07:00
MysterD 16aa75ca93 Fix compile errors / run autogen 2022-03-29 21:12:42 -07:00
MysterD c8d5b7f591 Merge branch 'unstable' of github.com:sm64ex-coop-dev/sm64ex-coop into unstable 2022-03-29 21:07:28 -07:00
MysterD 53586f7bb7 Fixed critical flaw with txEventId/rxEventId, fixed up controllable platform 2022-03-29 20:57:47 -07:00
Prince Frizzy d404d2bb70 Cleanup Deluxe (#45) 2022-03-29 20:45:56 -07:00
Isaac cf77f6d991 Fix camera for bubble in water (#49)
When a player dies in water, the camera continues to use the camera for under water even when you exit the water with the bubble. This commit fixes the issue.
2022-03-29 20:04:01 -07:00
MysterD 61eed28a50 Display the correct hidden number count on late join 2022-03-29 19:49:36 -07:00
MysterD 7ad9875533 Properly forget sync objects even if their syncDeathEvent is false 2022-03-29 19:47:11 -07:00
MysterD acdbdd9dc1 Synchronized tumbling bridge for late joins 2022-03-29 19:34:48 -07:00
MysterD 374eb062d8 Specify sync object field size 2022-03-29 19:29:57 -07:00
MysterD ed3f2c33e7 Desynchronize bouncing fireball spawner - just too noisy 2022-03-29 19:04:50 -07:00
MysterD c386000ff7 Prevent LLL puzzle from dropping more coins on late join 2022-03-29 18:59:05 -07:00
MysterD 5c439df0dc Only send respawn info for macro objects when they are altered 2022-03-29 18:57:48 -07:00
MysterD 778166dc2b Synchronized behParams for macroObjects on late join 2022-03-29 18:52:53 -07:00