Commit graph

151 commits

Author SHA1 Message Date
MysterD
213af9b2dc Remove djui panels from main djui header 2023-04-01 00:30:35 -07:00
MysterD
f2c0993342 Prevent redirecting mod_list_request packets 2023-03-30 12:16:13 -07:00
Isaac0-dev
ca23c4d5e7
clean up a bit after change server settings/mods while hosting (#334)
* clean up change server settings/mods while hosting

* update discord activity when rehosting

* optimised lakitucam mod
2023-03-30 10:56:46 -07:00
MysterD
341953390c Allow the ability to change server settings/mods while hosting 2023-03-29 17:36:13 -07:00
MysterD
33b5552ea6 Allow pings through unknown players 2023-03-27 22:12:48 -07:00
Agent X
f97cc25732
Make cheats much better and add new ones (#305)
* Make cheats much better and add new ones

Improved some, added some.
- Formatted cheats code to fit with the rest of sm64's naming style of things like structs
- Cheats will now always check for gServerSettings.enableCheats instead of its own variable
- Moon Jump: Increased vertical speed, automatically exit bonks
- God Mode: Tiny code improvements
- Super Speed: Exponentially improved, moved to step code and now works as it always should have
- Rapid Fire (New): When on, A will become rapid fire
- Always Triple Jump (New): When on, Mario will triple jump regardless of forwards velocity
- BLJ Anywhere (New): When on, spam A while BLJing to BLJ anywhere

* Add m->playerIndex == 0 checks
2023-03-27 15:53:12 -07:00
MysterD
73dfbe5e59 Increase max packets per second to 100 2023-03-27 11:59:06 -07:00
MysterD
015a49dc1a Rewrite syncID allocation and memory structure 2023-03-26 18:43:35 -07:00
Agent X
6c9a15cbe9
Fix envfx not resetting (#329) 2023-03-26 12:50:21 -04:00
Agent X
4277230f20
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
751dfe61c7
Move everything over (#280) 2023-03-20 22:36:25 -04:00
Agent X
42b43a9b7e
get_ttc_speed_setting and set_ttc_speed_setting (#307) 2023-03-20 20:20:11 -04:00
Agent X
4fd13c6bda
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
Isaac0-dev
a939ddc07b
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
e387b6b24b
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
Isaac0-dev
89afa8181e
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
Emerald Lockdown
8e9b2c270c
save_file_erase_current_backup_save and more (#189) 2022-09-26 19:14:53 -07:00
MysterD
40a291eb08 Removed extra change_area/level packet that the ripples PR added. It breaks too many things 2022-09-18 18:41:32 -07:00
Isaac0-dev
c7bdeef8d5
multiple improvements (#176) 2022-09-12 20:00:51 -07:00
wRadion
94d5dfcf10
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
b5789a7c54
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
4c429c17a7
Improve cheats (#169)
Cheats suck less now I guess.
2022-08-25 17:41:04 -07:00
TheGag96
dc3ca7c76d
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
HunterHeard
ad5e7402fc
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
MysterD
c214acb33f Change fixCollisionBugs from server setting to mod setting 2022-06-25 01:26:53 -07:00
Agent X
a9bbbacd71
Custom camera cleanup (#133) 2022-06-25 00:54:58 -07:00
MysterD
ecc72d0974 Prevent crashing on level change 2022-06-04 18:46:44 -07:00
MysterD
91ad974684 Whoops2 2022-06-04 00:54:04 -07:00
MysterD
a487978e3d Prevent client from sending sync valid packets improperly 2022-06-04 00:52:38 -07:00
Prince Frizzy
40e1fa9e58
Added a full new custom behavior system (#124) 2022-06-02 12:19:54 -07:00
MysterD
9fd309de56 Added server setting toggle for 'surface cucking' and 'exposed ceilings' vanilla bugs 2022-05-31 01:29:48 -07:00
MysterD
c942b8496a Clear custom actors on disconnect properly 2022-05-30 00:37:14 -07:00
MysterD
51fea7f6f2 Fix warnings on windows 2022-05-29 03:30:41 -07:00
MysterD
32e0c9eda2 Re-request level or area if stuck in invalid state for a while 2022-05-28 00:49:28 -07:00
MysterD
8ce66b76c6 Reload save data on disconnect 2022-05-28 00:40:04 -07:00
MysterD
e5d8e90b2f Cleared controller on disconnect properly 2022-05-28 00:36:55 -07:00
MysterD
aed0d4cb3a Clear controller values on disconnect 2022-05-28 00:22:13 -07:00
MysterD
8bbd16573c Clear custom models on disconnect 2022-05-25 18:07:58 -07:00
Isaac
672af8e2a0
Restore Mario to selected palette when returning to main menu (#105) 2022-05-19 17:07:58 -07:00
Agent X
68d46cdefe
Mouse lock & freeze cam fixes and warp constants (#103) 2022-05-19 17:06:51 -07:00
MysterD
ceaf41ae14 Set discord network system on shutdown 2022-05-11 18:11:53 -07:00
MysterD
37fb101e05 Do more Discord API cleanup on network shutdown 2022-05-11 01:33:56 -07:00
MysterD
a8b94fd225 Merge branch 'coop' of github.com:sm64ex-coop-dev/sm64ex-coop into coop 2022-05-11 01:28:36 -07:00
MysterD
85ad7ed201 Clear network players on disconnect 2022-05-11 01:27:14 -07:00
Isaac
02b99d0443
Crash fix (#87) 2022-05-10 21:20:40 -07:00
MysterD
780249ab21 Moderator cleanup 2022-05-09 23:20:07 -07:00
Isaac
701fddf4dd
Moderator (#80) 2022-05-09 23:11:39 -07:00
MysterD
c5c11a5a40 More work on mod hashing/caching 2022-04-12 19:25:06 -07:00
MysterD
f8ffc23422 Made downloads significantly faster 2022-04-10 21:53:58 -07:00
MysterD
9dc78a0971 Added support for custom music 2022-04-10 09:11:45 -07:00