Commit Graph

2184 Commits (38cef3b77e308f51c3bfb09f5bd8bf53528f2c63)

Author SHA1 Message Date
MysterD 836ae7692a Deterministically set the syncId of child objects of level objects 2023-03-26 21:35:04 -07:00
MysterD 2daa6edaa4 Deterministically set the sync ID for level objects that spawn from spawninfo, macros, and special 2023-03-26 21:10:38 -07:00
MysterD 3477206253 Remove old sync id reservation system 2023-03-26 19:06:18 -07:00
MysterD 34dd9fee0d Rewrite syncID allocation and memory structure 2023-03-26 18:43:35 -07:00
MysterD bac62f7bca Fix debug builds on linux 2023-03-26 14:53:01 -07:00
Isaac0-dev cc330121b3 fix version string buffer overflow (#327) 2023-03-26 14:52:13 -07:00
Agent X db940ef1dd Beta 32.0.2 (#330) 2023-03-26 15:17:58 -04:00
Agent X 45c2d3852f Fix envfx not resetting (#329) 2023-03-26 12:50:21 -04:00
Isaac0-dev ac6f2b2ad0 Beta 32.0.1 (#325)
* patch for beta 32

* require the development flag for Lua profiler

* autogen
2023-03-26 01:15:28 -04:00
Agent X fe61e50af4 Show players on star select toggle (#321)
* Show players on star select toggle

* Make only toggleable by mods

* Allow player list to also be disabled
2023-03-23 21:12:26 -04:00
Agent X 82dbb19fae Fix extended pause display (#319) 2023-03-23 17:42:53 -04:00
Agent X 3d80dc7f16 Override envfx from Lua (#316)
* Override envfx from Lua

set_override_envfx(-1) to reset override

* Fix type mismatch
2023-03-23 14:46:15 -04:00
Agent X 2d10c50ccd Make fixed collision rounded corners toggleable (#315) 2023-03-22 21:02:43 -04:00
Agent X b53654adad Clean up pause menu code and fix player menu bug (#314)
* Clean up pause menu code and fix player menu bug

* Final fixes to player panel bugs
2023-03-22 18:57:23 -04:00
Agent X 05687b838e Fix compilation warnings and stop demos when hosting (#313)
* [WIP] fix warnings

Committing now as is for Isaac to take a look at this.
Having issues with VERSION_TEXT

* Fix VERSION_TEXT crash and stop demos on host
2023-03-21 22:41:43 -04:00
Isaac0-dev 5911cc4d18 fixes and other improvements (#309)
* HOOK_JOINED_GAME

* expose VERSION_TEXT, and two more adjusments

* show if a constant type is a string with autogen

* fix another blunder by that guy

* should use an or operator here

* fix frame limiter stuff
2023-03-21 19:43:29 -04:00
Agent X 33585f00ea Move everything over (#280) 2023-03-20 22:36:25 -04:00
Agent X 26b8f74f1b Fix NaN position bug with fixed collision (#312)
* Fix fixed collision NaN position

Thanks to @Marioiscool246 for figuring this out.
Sometimes Mario's position will become NaN when doing specific things, this fixes that.

Co-Authored-By: Marioiscool246 <27823923+Marioiscool246@users.noreply.github.com>

* Formatting

Co-Authored-By: Marioiscool246 <27823923+Marioiscool246@users.noreply.github.com>

* Fix ordering

* Final fix(?)

---------

Co-authored-by: Marioiscool246 <27823923+Marioiscool246@users.noreply.github.com>
2023-03-20 21:13:02 -04:00
Agent X ad7a632115 get_ttc_speed_setting and set_ttc_speed_setting (#307) 2023-03-20 20:20:11 -04:00
Agent X c3034da34c Merge pull request #306 from Agent-11/smlua-exec-str
/lua (Run Lua from chat IF you compiled with DEVELOPMENT)
2023-03-20 20:12:52 -04:00
Agent X e088679bbd Merge pull request #301 from Agent-11/hooks
Touch up new hooks
2023-03-20 20:07:14 -04:00
Agent X 5d2d8e2275 Merge pull request #302 from Isaac0-dev/apple
put everyone in the jumbo star cutscene if one person is in it
2023-03-20 20:06:05 -04:00
Agent X 7525c58e9f Merge pull request #310 from Agent-11/time
get_time()
2023-03-20 19:59:31 -04:00
Agent X b8dff78e1d Bug fixes for mostly the title screen (#308)
- Add NULL checks to DynOS warps
- Change checks for skipping interpolation on the original title screen for much better ones
- Interactions are no longer processed if you are on the title screen
- Re-add some of the legacy demo code for the original title screen
- Fix disconnecting on the original title screen
- Fix disconnecting on the act select screen
- Fix interpolation crash
2023-03-18 17:14:01 -04:00
Agent X deb6ab7804 Expose sound_banks_enable/disable to Lua (#311) 2023-03-18 17:12:33 -04:00
Agent X f0b7751b4d get_time() 2023-03-14 20:53:23 -04:00
Agent X 531806e05b Merge branch 'sm64ex-coop-dev:coop' into hooks 2023-03-13 09:15:04 -04:00
Agent X f3bc35f8c5 Add /lua to chat commands with dev flag 2023-03-08 19:26:03 -05:00
Agent X f7a7864c38 Revert "smlua_exec_str (run Lua from string)"
This reverts commit db38b3d55d.
2023-03-08 19:04:32 -05:00
Agent X db38b3d55d smlua_exec_str (run Lua from string)
Seemed useful for debug or any other purposes, why not?
2023-03-08 18:54:06 -05:00
Isaac0-dev 07e0f31a38 bring back vanilla demos (#221)
* Bring back the demos from vanilla

the demo will activate if you are on the level that demo was meant to be from, and the default amount of time has passed

* clean up a bit and check a few things

* reset the demo input table

* config option/prevent demos playing on player menu

* update demo playing

- keep playing level music after demo finishes
- stop the demo if the player changes main menu level
2023-03-03 01:47:03 -05:00
Isaac0-dev 5b1b20a0ae bring back the ability to lose your cap (#229)
* bring back the ability to lose your cap

* run autogen and add "cap" to the mario states guide

* fix some indentation
2023-03-03 01:46:46 -05:00
Isaac0-dev 7bbfaa7851 put everyone in the jumbo star cutscene if one person is in it 2023-03-01 23:23:20 +10:00
Agent X 32c5eab54f Touch up new hooks 2023-02-28 22:39:16 -05:00
eros71 c22c03a823 Remove include duplicate (#298)
Hardcoded.h has been already included in a line before, this last duplicate shouldn't be there.
2023-02-28 20:45:45 -05:00
Isaac0-dev 6bfd524669 fix client crash when incompatible tag is null (#300)
* rerun autogen

* give clients access to mod incompatible tags

And fix a crash when warping to the cake end picture

* whoops

* fix client crash
2023-02-28 20:45:17 -05:00
Isaac0-dev 2d05da83a8 Merge branch 'apple' of https://github.com/Isaac0-dev/sm64ex-coop-broken into apple 2023-02-28 23:21:10 +10:00
Isaac0-dev a1cab41218 fix client crash 2023-02-28 23:20:55 +10:00
Isaac0-dev bfc12168f0 fix crash when incompatible tag is null (#299)
* rerun autogen

* give clients access to mod incompatible tags

And fix a crash when warping to the cake end picture

* whoops
2023-02-28 07:52:47 -05:00
Isaac0-dev 7221259daa Merge branch 'coop' into apple 2023-02-28 22:50:40 +10:00
Isaac0-dev 93ccfb33ec whoops 2023-02-28 22:49:10 +10:00
wRadion 8661555f31 Define HARDCODED_H in header file (#297) 2023-02-27 12:30:03 -05:00
Isaac0-dev 05db6b8995 give clients access to mod incompatible tags (#296)
* rerun autogen

* give clients access to mod incompatible tags

And fix a crash when warping to the cake end picture
2023-02-27 11:22:31 -05:00
Isaac0-dev 977405c8c3 give clients access to mod incompatible tags
And fix a crash when warping to the cake end picture
2023-02-27 22:58:00 +10:00
PeachyPeach 666009f610 Make most used and useful features built-ins (#242)
* made all bools u8 for consistency with fixCollisionBugs
* preview blue coins + visible secrets
* preserve indexing
* star number
* hud cap timer
* red coins radar + secrets radar
* extended pause display
* autogen
* only sDynosBuiltinFuncs is sensitive to indexing
* rebased
2023-02-26 03:15:54 +01:00
Sunk 71a4196caf Add HOOK_BEFORE_SET_MARIO_ACTION (#253)
* Small quality of life changes

Disabled fixed collision in sm74 by default.
Popping should now completely set the popped player's speed to 0.

* Add HOOK_BEFORE_SET_MARIO_ACTION

Param: incoming action
Return: changes incoming action
If the return value is 1, prevent the action from happening entirely.
0 can't be used here since it'll break the title screen.

* Update hooks.md

* Revert "Small quality of life changes"

This reverts commit 05dd235cd0e3633bf1da48bc2f9f0b8a3db087ee.
2023-02-22 20:28:23 -05:00
Sunk a6021ff360 Force the player to stop moving upon being popped (#289) 2023-02-22 15:13:11 -05:00
Prince Frizzy 0db1a7dbc8 Bump version number (#292)
* Fix empty .bhv in Star Road.

* Bump version number.
2023-02-22 01:32:52 -05:00
Isaac0-dev 1c5cadcce2 rerun autogen (#291) 2023-02-22 00:56:30 -05:00
Prince Frizzy 2729565a5f Fix wiggler glitching when being jumped on when small. (#287) 2023-02-21 02:46:59 -05:00
Agent X fb54adfd90 Small improvements to HUD and new functions (#268)
* Small improvements to HUD and new functions

- Split HUD_DISPLAY_FLAG_CAMERA_AND_POWER into HUD_DISPLAY_FLAG_CAMERA and HUD_DISPLAY_FLAG_POWER
- Added hud_is_hidden()
- Added camera_is_frozen()
- Added extra sanity check to hud.c

* Re-add old flags

* Fixes and improvements

* Mod compatibility
2023-02-21 00:23:15 -05:00
Agent X 083dc1a037 area_create_warp_node and area_get_warp_node* (#270)
* area_get_warp_node*

- Added area_get_warp_node to Lua
- Added area_get_warp_node_from_params to Lua

* area_create_warp_node and warp constants

Here you go Isaac!

* Add object param

* Commits work again, pushing everything else
2023-02-20 21:47:32 -05:00
Isaac0-dev 44dbe9cdaa disable interpolation when frame limiter is at 30 (#286)
* fix player connected spam on joining a game

* make it possible to actually disable interpolation

by setting the frame limiter to 30
also move the "Disable Popups" option to misc settings.

* maybe someday ill learn to read.

* one day.
2023-02-20 21:29:23 -05:00
Agent X 160798fe81 Check if env region index is greater than 0 (#285) 2023-02-19 21:20:45 -05:00
Isaac0-dev 01cd85e27c fix player connected spam on joining a game (#284) 2023-02-19 03:47:01 -05:00
Isaac0-dev d32e4c7997 ACTIVE_FLAG_DORMANT (#281) 2023-02-18 23:45:13 -05:00
Isaac0-dev 4e104aeb64 expose course_is_main_course() to Lua (#282) 2023-02-18 16:23:51 -05:00
Isaac0-dev 654bc4472a allow mods to hide and move shadows for small objects (#257) 2023-02-18 16:06:03 -05:00
Blockyyy 260202ab5d This adds gLevelValues.wingCapLookUpReq to lua. (#271)
* added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Added gLevelValues.wingCapLookUpReq

* Changed the look up warp star req

Hidden Palace can only be accessed at 120 stars.
2023-02-18 16:04:22 -05:00
Isaac0-dev b118d55314 CAMERA_MODE_NONE crash fix (#278) 2023-02-16 18:55:05 -05:00
Agent X 17c9b1d5d5 Expose Paintings to Lua (#279)
* Expose paintings to Lua

* Make some "dangerous" fields immutable

I just thought being able to edit paintings IDs from Lua was a little bit too much.
2023-02-16 18:54:38 -05:00
Isaac0-dev e4d7d46163 improve --client flag, fix hud font character width for spaces (#277)
* improve --client flag and domain resolution

* stop using the debug flag for dev binds

* smaller character width with spaces for the hud font
2023-02-16 18:54:23 -05:00
Agent X 2e4f1aa3d6 Add ' and " to gTextures (#273) 2023-02-15 19:45:11 -05:00
Isaac0-dev 04e7c3b99b add a way to create/modify whirlpools (#267) 2023-02-08 16:40:41 -05:00
Agent X 659552fc7b Improvements and optional tweaks (#263)
- Added visibleToEnemies to invisible fields
- Added cur_obj_set_billboard_if_vanilla_cam() which makes trees only billboard if free camera is off
- Added RespawnShellBoxes to gBehaviorValues
- Added pauseExitAnywhere to gLevelValues
- Disabled the power meter chime playing on the main menu whenever disconnecting from a server with low health
2023-02-08 10:51:07 -05:00
Agent X 0f8a53487d Expose version constants to lua (#264) 2023-02-08 10:42:16 -05:00
Isaac0-dev fe02152649 Give Lua mods access to a form of level script preprocessing (#258)
* Give Lua mods access to a form of level script preprocessing

* Disable acts setting
2023-01-31 07:24:56 -05:00
Agent X 573bc8d40e Sanity check. (#259) 2023-01-31 05:55:55 -05:00
Prince Frizzy 3f78bf00ff Add support for custom cap sequences. (#250) 2023-01-31 05:55:18 -05:00
PeachyPeach 15d1ca06cb added new mods to default; removed visibleToEnemies from lua (#245) 2022-12-17 19:32:55 +01:00
Agent X e743e32787 Add E_MODEL_SSL_TOX_BOX (#247) 2022-12-17 19:29:24 +01:00
Agent X 5abecaa67e Expose title screen geo functions to DynOS (#246)
* Expose title screen level/geo stuff

* Move builtin defines
2022-12-17 19:28:19 +01:00
Agent X d03ec2dd9d Small improvements to camera freeze (#244) 2022-12-17 19:26:32 +01:00
SMS Alfredo 3a7034c4ed Character Sound Hook (#223)
* Character Sound Hook

* The rest of autogen to be safe

* Indentation Fix

* Fix more indentation

* Get rid of unneeded auto gen junk

* Run autogen again

* Add HOOK_CHARACTER_SOUND to guide
2022-12-17 19:25:30 +01:00
Isaac0-dev b2e57d4ad3 make fixCollisionBugs an integer again (2) (#241) 2022-11-30 00:44:49 -08:00
Isaac0-dev 2b22b3520f add HOOK_OBJECT_SET_MODEL (#236)
* add HOOK_OBJECT_SET_MODEL
runs whenever a behaviour sets a model.
2022-11-30 00:37:43 -08:00
Prince Frizzy d16468b37e A bunch of LUA autogen additions. (#235)
* A bunch of LUA autogen additions.
- Add support for Vec4f, Vec4s and Mat4 in the autogen.
- Improve error messages for improper argument counts
- Added support for more pointer types in the autogen.

* Fix offsets in sMat4Fields.

* autogen: Rework this at the request of DJ.
2022-11-30 00:37:12 -08:00
PeachyPeach 65f2466b80 Custom palette persistence fix (#233)
Bug:
    Clicking on Palette Preset to cycle through palettes overwrites and erases the custom palette

Fix:
    Added config values coop_custom_palette_* to save the custom palette colors
    Clicking on Edit Palette now sets the current palette to Custom and loads the custom values instead of using the previous preset selected
2022-11-18 18:43:44 -08:00
wRadion 2b81b45272 Fixed Vanish floors/ceilings (non-wall surfaces) (#225)
In the vanilla game, vanish does only work with walls specifically, and not floors and ceilings. This is because the check for vanish surfaces was only implemented with the walls. So I simply pasted the same code but with the floors and the ceilings.
2022-11-18 18:39:17 -08:00
Agent X b467b9c727 Fix 50 coin 1up happening in non courses (#231) 2022-11-14 18:18:58 -05:00
Isaac0-dev e8f4b41ac3 Make fixCollisionBugs an integer again (#232)
This is for mod compatibility.
2022-11-14 18:16:17 -05:00
Agent X 2de8070133 Prevent cap music from playing on disconnect (#227) 2022-11-12 21:38:37 -05:00
Prince Frizzy 12b9fea632 Add some new LUA helper functions and fix some bugs. (#230)
- Add new functions for objects, Feel free to flesh some out if need be.
- Fix long-standing issue with our LUA garbage collection, It will now run after all our hooks do to prevent buildup which causes lag.
2022-11-12 05:01:50 -08:00
MysterD ffe8c47959 Bumped version 2022-11-11 19:03:43 -08:00
MysterD 4e35b9c4d4 Add ability for mods to signal that a player will not be seen by enemies 2022-11-11 19:02:11 -08:00
MysterD e5d282fb82 Fix desync caused by players not knowing each others sync status 2022-11-11 19:01:51 -08:00
SMS Alfredo b4ea13f57d Sample Stop Functions (#224)
Adds in bassh_stop_sample for source and audio_sample_stop for Lua. These functions immediately stop whatever audio the specified sample is playing.

If used in tandem with #223, this allows you to create custom character voice clips without them ever overlapping with each other.
2022-11-02 19:51:34 -07:00
PeachyPeach 340aedd660 djui_hud_render_texture_tile[_interpolated]; increased GFX pool and main memory pool (#211)
djui_hud_render_texture_tile: allows user to draw a part of a texture instead of the whole texture (tilesets)
    increased GFX pool size from 512kB to 4MB
    increased main memory pool size from ~11MB to 32MB
2022-11-02 19:45:20 -07:00
Isaac0-dev 32e68a81e2 add HOOK_ON_CHAT_MESSAGE (#220)
includes the message string and the mario state of the player
return false to prevent the message from showing (might be possible to make a chat flter with this?)
2022-10-30 17:34:50 -07:00
Agent X e9dff53463 Give 1 up when you collect 50 coins and don't have "Leave level" on (#215)
If either Non-Stop or Stay in Level is on for On Star Collect, collecting a multiple of 50 coins should give everyone in the level a life.
    This would act as a solution for the lifes you would normally get after getting a star.

In SM64 when exiting a level, every 50 coins up until 150 you get a 1 up, except you can't exit the level in stay in level or non stop so there's the main problem which this PR addresses
2022-10-30 17:31:08 -07:00
PeachyPeach 86eb22b6de CAP color; near/far warning fix (#214)
Added CAP color part; Player's cap no longer uses the SHIRT color
    Added METAL color as an alias of CAP color; Metal characters now uses the CAP color to tint the metal texture (was SHIRT color)
    Fixed the cap inside color (was HAIR color)
    Fixed the near/far warning
2022-10-30 17:30:40 -07:00
Isaac0-dev 2e072b3184 Fixes and quality of life changes (#213)
Add the Lua Profiler to the debug menu.
    Prevent Mario from sleeping on the main menu.
    Fix IP address string corruption when saving the config file.
    Bring back the Discord fatal message.
2022-10-30 17:29:59 -07:00
Sunk 2e41525ea3 Added HOOK_ALLOW_HAZARD_SURFACE and various fixes (#209)
* Fixed naming from ceil to cell

* Added HOOK_ON_QUICKSAND

* Modified hook and removed weird newlines

* Renamed hook and increased usage

HOOK_ALLOW_QUICKSAND -> HOOK_ALLOW_HAZARD_SURFACE
Now also works on lavaboost.
Suggestion by Agent X. May add this hook to the death barrier check.

* Autogen

* Fixed downwarping to quicksand upon popping

As a side effect though, Mario will no longer snap to the floor upon being popped.
2022-10-30 17:25:56 -07:00
Agent X dd075ce2ee Add - to allowed characters in mod storage (#218)
can't have anything in ex-coop
2022-10-25 13:28:19 -07:00
Agent X 80cda3546e Why weren't star door models exposed to Lua? (#217) 2022-10-25 13:28:02 -07:00
Agent X 3b2b259fad Prevent Mario from trying to move in the main menu (#206)
* Fixing my mistakes

* Re-add stickX/Y resets
2022-10-18 15:35:00 -07:00
Isaac0-dev e89349318d just a few more improvements (#207)
Add get_dialog_box_state
    Prevent some attacks from registering as pvp attacks.
    Clean up all cases of camera.lua
    Put gLastCollectedStarOrKey in a better spot.
    Clean up my moderator code a bit, changing gIsModerator to boolean.
    Brang back kicked, banned and full party messages.
    Fixed a warning on older compilers like raspberry pi's and use configAmountofPlayers instead of MAX_PLAYERS
    Fixed compiling with the flag DISCORD_SDK off.
    Added "Fixed Collisions" to the debug menu.
    Added HMC, CCM, RR, BITDW, PSS and TTC to the main menu options.
    Fix my own oversight; Prevent the port from being duplicated in the join menu. (temporary fix)
    Hopefully bring back the crash handler on windows by not checking for termination signals on windows
2022-10-18 15:34:46 -07:00
Isaac0-dev 57c793f4a5 fix warnings (#203) 2022-09-30 20:02:55 -07:00
wRadion a94de7d6af Added `warp_to_warpnode` function (#157)
* Added warp to warp node function

* Added generated docs

* Restored Makefile (will put in other branch)
2022-09-30 20:02:34 -07:00
MysterD 9ef643e63b Reran autogen 2022-09-26 19:30:09 -07:00
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