Commit graph

1037 commits

Author SHA1 Message Date
MysterD
4b37648487 Improve bettercam's collision detection and avoidance
The precision of ray casting was too low previously, causing the
collision checks to skip right past a wall sometimes. There was also
nothing to prevent the camera from getting too close to a wall
horizontally or vertically.
2020-09-19 19:35:05 -07:00
MysterD
bbdc3180cd Made celebration star appear above correct player
Celebration sparkles appear around all players
2020-09-19 17:28:11 -07:00
MysterD
c013f9d16a Prevent Boos from being brought back from the dead through desync 2020-09-19 17:13:46 -07:00
MysterD
1467e021b3 Fix boo cage desync
The BBH cage could get in a weird state when it was synchronized. By
desynchronizing it, it will perform properly. Weird, I know.
2020-09-19 17:02:01 -07:00
MysterD
9f8fe804ca Prevent mother tuxie softlock
Fixes #6
2020-09-19 16:43:37 -07:00
MysterD
04738fedd9 Prevent new bug where stars just flood out lol 2020-09-19 16:35:32 -07:00
MysterD
7ff4eec4ee Prevented remote players from spawning tons of stars when unlocking door 2020-09-19 16:27:38 -07:00
MysterD
2c46eec6ba Prevented rare unlocking door crash 2020-09-19 16:19:47 -07:00
MysterD
fffad90028 Prevented more NPC dialog soft locks 2020-09-19 16:09:52 -07:00
MysterD
09a1390d8d Allow players to join while server is waiting in level transition 2020-09-19 15:07:27 -07:00
MysterD
74c44d3053 Allow other players to update entities grabbing you
In theory this should fix a rare King Bobomb softlock
2020-09-19 14:30:19 -07:00
MysterD
cc1e0e8407 Synchronized Boo's tangibility field
I believe this fixes #58
2020-09-19 10:38:58 -07:00
MysterD
285b1490f3 Fix bubbled vanilla-camera behavior
Fixes #66
2020-09-19 10:20:46 -07:00
MysterD
6122c4b313 Prevented star from spawning mid-level-change
Now CCM's slide star spawns correctly.
2020-09-19 10:03:36 -07:00
MysterD
5472f3d13a Add development flag for easier testing 2020-09-19 02:12:49 -07:00
MysterD
64732308f4 Prevent useless keep-alive packets 2020-09-19 01:56:45 -07:00
MysterD
c4b82e7082 Rewrote synchronization for treasure chests
Fixes #63
2020-09-19 01:40:42 -07:00
MysterD
cf23ed92a2 Prevented enemies/events from considering disconnected players 2020-09-19 01:05:19 -07:00
MysterD
79d30d3c1c Prevent exclamation box from opening multiple times
Fixes #57
2020-09-19 00:59:54 -07:00
MysterD
4a7b9736b4 Added compile-time flag to disable Discord SDK
In order to support ARM/Mac, discord must be disabled.
To disable compile with:
make DISCORD_SDK=0

Fixes #62
2020-09-19 00:53:56 -07:00
MysterD
a67a06c17c Unconnected players are now hidden/intangible 2020-09-18 23:16:07 -07:00
MysterD
f8bffd3b2a Added player connected/disconnected events
Changed synchronizing text to be more descriptive
Added 'player connected', 'player disconnected', 'network shutdown' chat messages
Prevented someone from joining through Discord while in another lobby
Added the distinction of sending a packet to all vs to a specific player
Enforced lobby size of 2, multiple joiners in a direct connection will be booted
Stored network destination for each player
Detected network drops
2020-09-18 23:06:26 -07:00
MysterD
6cf5e5da68 Add missing 'Chat' text 2020-09-16 01:01:29 -07:00
MysterD
3a37b79286 Renamed packet_save_file to packet_join 2020-09-15 23:07:00 -07:00
MysterD
2a10cca29a Refactored packet code out of network.c/h 2020-09-15 22:58:16 -07:00
MysterD
eaaab8850f Added exponential backoff to reliable packets 2020-09-15 22:45:17 -07:00
MysterD
275d6444b1 Added chat button bind, prevented chat from disabling other binds 2020-09-15 22:22:39 -07:00
MysterD
a0d5deceff Fix DirectX builds 2020-09-15 21:48:14 -07:00
MysterD
128b3f2b33 Prevented chat start event from disabling alt-enter fullscreen 2020-09-15 09:54:04 -07:00
MysterD
6d89ed5a9f Added warning when Discord isn't detected. Added missing sounds to buttons and events in menu 2020-09-15 09:47:26 -07:00
MysterD
7497e42364 Damn it, fixed Linux builds (this time for real?) 2020-09-14 23:34:19 -07:00
MysterD
a675f4efd5 Fixed Linux builds 2020-09-14 23:26:55 -07:00
MysterD
9a0c07e53c Added in-game chat
Fixes #35
2020-09-14 22:05:20 -07:00
MysterD
5fe5ffda45 Make C-lib link statically again, force various compiler options better 2020-09-14 18:29:47 -07:00
MysterD
5abd0ca1ab Complete rewrite of custom main menu
The vanilla main menu is an awful pile of code that is extremely painful
to make additions to. So I've side-stepped the problem by writing an
entiely new menu system without all of vanilla's quirks. I've separated
the custom menu system from the menus I want to make, which allows for
easy additions and a clear separation of responsibilities.

Along with this rewrite comes a host menu, adding the missing
configuration options in-game.

Fixes #29
2020-09-13 23:57:14 -07:00
MysterD
3e1b193ea8 Add Discord Game SDK networking system
Allows players to host without forwarding their ports or using a program
like Hamachi.
2020-09-13 03:27:35 -07:00
MysterD
fc9d7022b5 Fix Linux build 2020-09-12 19:27:25 -07:00
MysterD
6c8050a564 Abstracted all socket code behind a NetworkSystem
In preparation for other forms of communication, I have abstracted all
of the socket code (which needs direct connections) behind a struct
whose calls can be swapped out for other systems if desired.
2020-09-12 17:56:42 -07:00
MysterD
388470d579 Fixed softlocks when one player runs out of lives, or death by lava
Also bubbles player when falling into quicksand

Fixes #36
2020-09-12 14:32:50 -07:00
MysterD
daa05d98a0 Hacky workaround for BBH camera bug
One specific door didn't reset the vanilla camera when rushing through
an open door.

Fixes #48
2020-09-11 23:48:27 -07:00
MysterD
c0a31ab06c Prevented bubbled players from triggering level warps
Fixes #41
2020-09-11 22:58:34 -07:00
MysterD
5abe3577ae Added Luigi's face in place of 'Mario Cam'
Fixes #42
2020-09-11 22:36:29 -07:00
MysterD
6d438ba760 Fix first-person camera lock bug
Getting kicked in vanilla-cam's first person messed up the camera, this
fixes it.
Fixes #55
2020-09-11 22:32:32 -07:00
MysterD
718974c111 Fix PSS's secret star collection
Fixes #56
2020-09-11 22:25:49 -07:00
MysterD
3070d2bfdb Prevent two players from holding the same object
Fixes #40
2020-09-11 22:14:42 -07:00
MysterD
284ab37406 Added debug level-warping for testing purposes 2020-09-11 20:10:29 -07:00
MysterD
c86c7f7280 Fix new level transition synchronization softlock 2020-09-11 18:30:34 -07:00
MysterD
a6b3ddcc69 Revert "Revert "More level transition synchronization rewrites""
This reverts commit 0667908b86.
2020-09-11 18:08:24 -07:00
MysterD
0667908b86 Revert "More level transition synchronization rewrites"
New synchronization caused a softlock on new-level-dialogs

This reverts commit 163527401e.
2020-09-11 18:02:21 -07:00
MysterD
04c21d91bc Added version checking to clients 2020-09-11 16:19:38 -07:00