Commit Graph

825 Commits (42d1d681a602e386376a038b7699901184c05b8f)

Author SHA1 Message Date
MysterD 42d1d681a6 Fix bubbled vanilla-camera behavior
Fixes #66
2020-09-19 10:20:46 -07:00
MysterD ae48a9df5f Prevented star from spawning mid-level-change
Now CCM's slide star spawns correctly.
2020-09-19 10:03:36 -07:00
MysterD 67342de794 Add development flag for easier testing 2020-09-19 02:12:49 -07:00
MysterD 587b52f1be Prevent useless keep-alive packets 2020-09-19 01:56:45 -07:00
MysterD fa0f195c92 Rewrote synchronization for treasure chests
Fixes #63
2020-09-19 01:40:42 -07:00
MysterD ee6efd9d05 Prevented enemies/events from considering disconnected players 2020-09-19 01:05:19 -07:00
MysterD a946694da6 Prevent exclamation box from opening multiple times
Fixes #57
2020-09-19 00:59:54 -07:00
MysterD df6cac3cab 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 69742f7f2f Unconnected players are now hidden/intangible 2020-09-18 23:16:07 -07:00
MysterD 28b06da7e1 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 f71c2900a0 Add missing 'Chat' text 2020-09-16 01:01:29 -07:00
MysterD dc1f689a6e Renamed packet_save_file to packet_join 2020-09-15 23:07:00 -07:00
MysterD dc8b84a66d Refactored packet code out of network.c/h 2020-09-15 22:58:16 -07:00
MysterD 12213967cd Added exponential backoff to reliable packets 2020-09-15 22:45:17 -07:00
MysterD efe8c91909 Added chat button bind, prevented chat from disabling other binds 2020-09-15 22:22:39 -07:00
MysterD 663da861cb Fix DirectX builds 2020-09-15 21:48:14 -07:00
MysterD d44ae27393 Prevented chat start event from disabling alt-enter fullscreen 2020-09-15 09:54:04 -07:00
MysterD 7f1a3631b1 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 cd0f889e3d Damn it, fixed Linux builds (this time for real?) 2020-09-14 23:34:19 -07:00
MysterD 6ecddd939a Fixed Linux builds 2020-09-14 23:26:55 -07:00
MysterD e59b057848 Added in-game chat
Fixes #35
2020-09-14 22:05:20 -07:00
MysterD ece4d2bc93 Make C-lib link statically again, force various compiler options better 2020-09-14 18:29:47 -07:00
MysterD 3bab7a7fdb 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 15601ac856 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 12652330f8 Fix Linux build 2020-09-12 19:27:25 -07:00
MysterD cf50e65ab9 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 2d2303a35b 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 dc3914ef09 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 4f919f0aaf Prevented bubbled players from triggering level warps
Fixes #41
2020-09-11 22:58:34 -07:00
MysterD e2f70d4d42 Added Luigi's face in place of 'Mario Cam'
Fixes #42
2020-09-11 22:36:29 -07:00
MysterD 8517419430 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 8ebd8e99fe Fix PSS's secret star collection
Fixes #56
2020-09-11 22:25:49 -07:00
MysterD 52e07ecd49 Prevent two players from holding the same object
Fixes #40
2020-09-11 22:14:42 -07:00
MysterD dc9eba85b9 Added debug level-warping for testing purposes 2020-09-11 20:10:29 -07:00
MysterD aa46ed8ae9 Fix new level transition synchronization softlock 2020-09-11 18:30:34 -07:00
MysterD ea4575194a Revert "Revert "More level transition synchronization rewrites""
This reverts commit a06761ad10.
2020-09-11 18:08:24 -07:00
MysterD a06761ad10 Revert "More level transition synchronization rewrites"
New synchronization caused a softlock on new-level-dialogs

This reverts commit 9db9e6f42d.
2020-09-11 18:02:21 -07:00
MysterD 33d52ef31d Added version checking to clients 2020-09-11 16:19:38 -07:00
MysterD 9db9e6f42d More level transition synchronization rewrites
I believe this fixes #51
2020-09-11 15:32:30 -07:00
MysterD f987521a40 Properly offset player spawns 2020-09-10 22:18:10 -07:00
MysterD 7025183317 Fixed infinite hold by King Bobomb softlock
fixes #38
2020-09-10 21:55:03 -07:00
MysterD a1d21a9602 Fix King Bobomb dialog softlock
Fixes #45
2020-09-10 21:26:17 -07:00
MysterD 975f78cc5e Fix coffin crushing softlock
Fixes #47
2020-09-10 20:26:02 -07:00
MysterD 5146308ba6 Keep player control of camera for chain-chomp cutscene
Fixes #54
2020-09-10 20:02:16 -07:00
MysterD 86c9bbf672 Fixed small crimes against C 2020-09-10 09:43:32 -07:00
MysterD 3102c93d34 Completely rewrote level transition synchronization code
Should be snappier and less prone to crashes. I tested as many scenarios
as I could think of and it has been rock solid. But time will tell.

Also created a new debug log system, just so I could understand what the
hell was going on with this code.
2020-09-10 00:17:30 -07:00
MysterD 0a136e9a51 Added 'no lives remaining' text 2020-09-08 18:21:09 -07:00
MysterD c90323b6c9 Changed text on level select screen 2020-09-08 17:33:03 -07:00
MysterD 6b5dce5755 Eject a player if more than one is in the cannon
Two players in the same cannon was causing softlocks and general
insanity. Now this should be fixed. Also prevented players from being
able to push or attack a player inside of a cannon.
2020-09-08 16:12:11 -07:00
MysterD 75b5b98963 Lowered cannon sensitivity 2020-09-08 15:13:49 -07:00