MysterD
6a1ceab5ca
Made bubble-on-death a server setting
2022-01-14 20:33:06 -08:00
MysterD
625e9b5df9
Fix various bugs with spiny and lakitu
2022-01-14 20:06:26 -08:00
MysterD
839575efe1
Fixed home radius on many enemies, fixed draw distance bug
2022-01-14 16:33:22 -08:00
MysterD
84b9fc8691
Reverted: Removed player offset when changing areas
2021-09-05 15:55:39 -07:00
MysterD
a98538c797
Bumped version to 12
2021-09-05 14:45:26 -07:00
MysterD
8fb46314fa
Resync bouncing fireball to only have one owner
2021-09-05 14:42:53 -07:00
MysterD
3721877b6a
Removed player offset when changing areas
2021-09-05 14:34:17 -07:00
MysterD
4cebce4864
Added Waluigi - model provided by Super Keeberghrh
2021-09-05 14:23:47 -07:00
MysterD
01f1615092
Player bounce improvements: jump height depends on velocity, crouching players cause a twirl
2021-09-01 18:11:01 -07:00
MysterD
628ed5b798
Resync bhv1upHiddenInPoleSpawner to prevent a sync table mismatch
2021-08-30 18:35:47 -07:00
MysterD
b0ba739a6e
Fixed player-in-cutscene position/animations on late-join
2021-08-30 18:31:59 -07:00
MysterD
92692378b4
Added adjustable draw distance for objects
2021-08-30 18:22:36 -07:00
MysterD
f18007cd34
Added 30 or 60 FPS toggle
2021-08-29 20:17:38 -07:00
MysterD
d7d26639a8
Prevented controllers from clearing, fixes movement animations
2021-08-29 14:57:40 -07:00
MysterD
029e1f3a46
Fixed crash in credits
2021-08-29 14:28:46 -07:00
MysterD
1e100a52fe
Fix duplicate packet hash checking
2021-08-29 13:27:16 -07:00
MysterD
f476f6b268
Bumped version to 11
2021-08-28 23:13:37 -07:00
MysterD
96288326b5
Fixed late-join for Act 1 BBH staircase
2021-08-26 18:02:07 -07:00
MysterD
67fac0b112
Made development/debug level switching immediate
2021-08-25 18:11:17 -07:00
MysterD
401e6169d5
Make packet duplication checking more intelligent by checking hashes
2021-08-25 18:05:36 -07:00
MysterD
a081327ef1
Add packet debug sync to make debugging sync ids easier
2021-08-25 18:02:30 -07:00
MysterD
d6150c0b0d
Player-to-player attacks adjusted for metal marios
2021-08-23 21:48:33 -07:00
MysterD
71fb968c56
Made player-to-player attacks easier to land
2021-08-23 21:30:12 -07:00
MysterD
5e8562d194
Fixed coins-inside-boo for BBH in act 2
2021-08-23 20:16:46 -07:00
MysterD
48eb2d0ab0
Removed spawn offset from players during a same-area-warp
2021-08-23 19:47:15 -07:00
MysterD
caa38b2df5
Prevented coin sound spam when entering a level
2021-08-23 19:07:32 -07:00
MysterD
09bfe9cd0e
Prevented softlock when collecting an object that is the focus of a cutscene
2021-08-23 19:03:14 -07:00
MysterD
b2849405b3
Changed all asserts in packet files to soft asserts
2021-08-23 18:58:30 -07:00
MysterD
d471a23a39
Fixed area syncing when two clients enter an area around the same time
2021-08-23 18:44:32 -07:00
MysterD
1952c42769
Fixed being unable to interact with objects when dying outside the castle
2021-08-23 18:32:55 -07:00
MysterD
b53283dbf0
SL: Prevented multiple people from sending snow mount spawns, fixed sinking animation
2021-08-23 18:11:12 -07:00
MysterD
e0cb832c21
Fixed late join sync for goomba triplets
2021-08-23 00:02:46 -07:00
MysterD
9363de073f
Cached network IDs for each area to prevent area swapping from assigning a different set of sync IDs
2021-08-22 16:04:14 -07:00
MysterD
7c9b9a60d5
Bumped version to unstable 10
2021-08-21 15:56:54 -07:00
MysterD
7294e127f5
Fixed over 100 code warnings
2021-08-19 18:16:16 -07:00
MysterD
04d01667c3
Added a callback for area timer objects to only run certain things once per frame
2021-08-19 00:31:20 -07:00
MysterD
667cac9831
Rewrote the core of how the game determines how quickly it should run at
...
Allows vsync to be enabled regardless of the monitor's refresh rate
Automatically drops frames when it needs to
The game no longer runs fast on 144hz monitors
2021-08-18 23:50:40 -07:00
MysterD
b8e70fb46f
Add range checks to model index
2021-08-18 22:58:54 -07:00
MysterD
4688ffe1f0
Added toad player character
2021-08-18 22:55:31 -07:00
MysterD
1d23f07429
Added an argument to backface culling
2021-08-18 22:52:48 -07:00
MysterD
d31eb41e7e
Move character names to character struct
2021-08-18 21:51:55 -07:00
MysterD
8a40aeddea
Refactored how enemies display a cap in their hand
2021-08-18 21:39:39 -07:00
MysterD
3bf9db3bbc
Discord client hotfix
2021-08-16 19:29:37 -07:00
MysterD
e0815520b7
Fix client's vision of server palette
2021-08-15 13:56:11 -07:00
MysterD
1ef97584b2
Bumped version to unst 9
2021-08-15 12:55:39 -07:00
MysterD
43932249c6
Added support for spawning Luigi-versions of metal/vanish/wing cap as items
2021-08-15 11:46:28 -07:00
MysterD
efd22a81ab
Added hacks for fire spitter and skeeter to prevent glitching through the floor on water level change
2021-08-14 20:17:57 -07:00
MysterD
d911c09c25
Added okey-dokey sound and transition to host menu
2021-08-14 18:45:25 -07:00
MysterD
f71cb26f64
Play menu music in main menu
2021-08-14 18:34:22 -07:00
MysterD
ee53beb10b
Coin/star collection packet fixes
...
Added flag to send packet to everyone in the level regardless of area.
Coin collection packets now send to everyone in the level which keeps
coin counts consistent among players.
Star collection packets will no longer collect the wrong star if in a
different area than the originating player.
2021-08-14 17:53:08 -07:00
MysterD
0b88ed7cce
Resynchronized racing penguin for late join
2021-08-14 12:13:55 -07:00
MysterD
ed95bd317b
Resynchronized Koopa the Quick and race timers for late join
2021-08-14 11:48:15 -07:00
MysterD
b0267a5a31
Switch all malloc() calls in djui to calloc(). Possibly fixes menu bug
2021-08-14 11:03:31 -07:00
MysterD
bdabb26f81
Fix display of water droplet splashes
2021-08-12 18:53:17 -07:00
MysterD
68e04a74bc
Fixed late join for items a Boo was carrying
2021-08-12 18:48:17 -07:00
MysterD
3edb08c98d
Allow multiple players to interact with the same BBH cage
2021-08-12 18:18:28 -07:00
MysterD
7e59d34939
Added new MAXIMUM type to network area timer system. Exclamation boxes now reappear at the correct time
2021-08-12 18:13:41 -07:00
MysterD
383feba3b1
DJUI: Made panel movement screen-relative, always force current panel location
2021-08-12 00:15:10 -07:00
MysterD
64ab95efe1
Made inactive players drop held/heldby/ridden objects
2021-08-12 00:02:59 -07:00
MysterD
7ae2239670
Hid HUD while in main menu
2021-08-11 23:30:01 -07:00
MysterD
da31495564
Refactor player sounds, added pitch scale for player sounds
2021-08-11 23:24:53 -07:00
MysterD
142d21426d
Make the join process a bit smoother
2021-08-11 00:39:11 -07:00
MysterD
0ce11ee2b1
Prevent main menu player model from corrupting while joining
2021-08-11 00:23:25 -07:00
MysterD
caf975a793
Player 'enter/leave level' popups now appear for bonus courses
2021-08-10 22:41:43 -07:00
MysterD
22121eea6b
Fixed loading of certain save flags, e.g. lakitu
2021-08-10 22:25:34 -07:00
MysterD
d9ab09ee64
Critical fix to ordered packet system
2021-08-10 22:07:02 -07:00
MysterD
61ed5a774c
Drop all reliable packets that are going to someone that disconnected
2021-08-10 21:06:10 -07:00
MysterD
58914e993f
Prevent sending object-related packets until the area is synchronized
2021-08-10 18:46:33 -07:00
MysterD
fecba91c5e
Rewrite the core of network area timer (yet again)
2021-08-10 18:29:49 -07:00
MysterD
f82b6c7ad0
1-frame smoothing of network area timer
2021-08-10 00:48:39 -07:00
MysterD
7044485431
Make clock fall back to REALTIME when MONOTONIC isn't supported
2021-08-09 23:58:28 -07:00
MysterD
d772764c4e
Fixed cap-on-ground colorization behavior
2021-08-09 23:39:29 -07:00
MysterD
0c61b9fd07
Fixed crash when a hanging player was pushed off of the ceiling
2021-08-09 22:43:09 -07:00
MysterD
024ae36003
Retry Discord lobby creation on failure 5 times before giving up
2021-08-09 22:27:52 -07:00
MysterD
6f9b447468
Add null-checking to intro warp pipes
2021-08-09 22:06:51 -07:00
MysterD
5b0d4c60b3
LOGFILE_ calls now print to the terminal in DEBUG mode again
2021-08-09 00:09:44 -07:00
MysterD
fbbfcd6275
Fix compile error
2021-08-08 23:58:20 -07:00
MysterD
961723f22d
Rewrote logfile API, made discord log to a file
2021-08-08 23:42:20 -07:00
MysterD
83f84fc3c0
Bumped version number to 8
2021-08-08 16:51:44 -07:00
MysterD
a5b8483100
Removed SDL2 API calls from SDL1 backend
2021-08-08 16:50:44 -07:00
MysterD
710a7e4749
Color detached caps according to player palette
2021-08-06 01:02:07 -07:00
MysterD
16fb9d3dff
Add popup to inform a player when other players enter/leave the level they're in
2021-08-05 19:13:12 -07:00
MysterD
723a5cc46e
Prevent transmission of player information when the player was in the main menu
2021-08-05 18:36:01 -07:00
MysterD
dafa5536a1
Move water level syncing from level packets to area packets
2021-08-05 00:40:43 -07:00
MysterD
cbb7eb419c
Prevent level/area/object sync during credits sequence
2021-08-05 00:22:03 -07:00
MysterD
0d05853138
Fix ending cutscene crash and make game playable afterward without rehosting
2021-08-04 23:56:33 -07:00
MysterD
3ba77087e9
Prevent DJUI from creating and removing a panel at the same time
2021-08-04 23:55:46 -07:00
MysterD
4a3b39061f
Force players in the credits sequence into the 'credits' instance
2021-08-04 13:01:59 -07:00
MysterD
8984ec3ba8
Adjust main menu cutscene and camera
2021-08-04 19:15:42 -07:00
MysterD
354146e3ac
Make final Bowser star interactable for all players
2021-08-04 18:55:32 -07:00
MysterD
00da6b48f5
Fade out players when they leave/disconnect
2021-08-04 18:47:59 -07:00
MysterD
ab9056bb68
Make players invisible until their level/area can be verified
2021-08-04 18:15:46 -07:00
MysterD
7c8bddde28
Prevent capless flags from ever being set
2021-08-04 00:05:51 -07:00
MysterD
b1acd644f7
Invalidate area/level sync when unloading the area/level
2021-08-03 23:58:17 -07:00
MysterD
a2546055b2
Delay the display of the join text in star selection screen
2021-08-03 23:44:57 -07:00
MysterD
c5700825a8
Resynchronized WF tower platforms using Network Area Timer
2021-08-03 23:39:28 -07:00
MysterD
e17cba85f3
Allow host to own objects when no one else is connected
2021-08-03 23:26:51 -07:00
MysterD
f8c5fb0725
Resynchronize WF platforms using Network Area Timer
2021-08-03 23:26:32 -07:00
MysterD
6a957757d4
Refactored network area timer system
2021-08-03 19:21:50 -07:00
MysterD
a84e7a73fe
Resync bomp using Network Area Timer
2021-08-03 18:52:48 -07:00
MysterD
a520b25c26
Fixed Network Area Timer system
2021-08-03 18:02:21 -07:00
MysterD
95fa0c626e
Show normal mouse cursor when DJUI panels are closed
2021-08-03 00:12:16 -07:00
MysterD
33c82b7514
Capitalize palette strings
2021-08-02 23:08:00 -07:00
MysterD
f9695ca40c
Copy over an ASCII version of Discord username if a username hasn't been set
2021-08-02 23:07:15 -07:00
MysterD
5625505660
Fix server-override of local player's palette
2021-08-02 23:00:03 -07:00
MysterD
726f10f231
Fixed strange desync when a player left
2021-08-02 22:57:06 -07:00
MysterD
5dba8daa4f
Merge branch 'unstable' into dev/unstable
2021-08-02 22:35:37 -07:00
MysterD
d7b0945410
Added configurable player name, model, and palette
2021-08-02 22:33:38 -07:00
MysterD
4d997ba05e
Fix long-standing chair crash in BBH
2021-08-02 19:45:13 -07:00
MysterD
3d067637b5
Added list of patch names to Discord's activity information
2021-08-02 19:35:32 -07:00
MysterD
68fe7af455
Chat rendering optimizations
2021-08-02 19:22:16 -07:00
MysterD
951d8e6fe7
Prevent segfault when hovering over a DJUI element
2021-08-02 18:57:19 -07:00
MysterD
44850f7b57
Switch from clock() to clock_gettime() due to implementation differences
2021-08-02 11:49:57 -07:00
MysterD
8642479d82
Fix Mac + DISCORD_SDK compilation errors
2021-08-02 02:59:45 -07:00
MysterD
f9a144b6c1
Fix segfault when comparing mods
2021-08-02 00:33:34 -07:00
MysterD
c18413ed2a
Changed gDjuiFonts to an array of pointers (possible Mac compilation fix
2021-08-01 17:29:02 -07:00
MysterD
0b819c01e9
Switch from using clock() to time() for rate limiting (Linux-fix)
2021-08-01 17:04:08 -07:00
MysterD
bb4b666735
Erasing a save slot will now erase the correct slot
2021-08-01 13:45:26 -07:00
MysterD
05432c692a
Updated star count on host/join
2021-08-01 13:40:31 -07:00
MysterD
7a61c61051
Fixed DJUI panels getting stuck when spamming B button
2021-08-01 13:29:21 -07:00
MysterD
a2bb578dbf
Made the 'R Button - Options' text only appear on pause
2021-08-01 13:26:57 -07:00
MysterD
3085b9b749
Changed popup sound
2021-08-01 13:20:22 -07:00
MysterD
aedba38ca5
Made DJUI no longer take priority over arrowkey/enter binds when no panel is active
2021-08-01 13:18:22 -07:00
MysterD
caa13fb69f
Made configfile save on quit button press, panel close, options menu close
2021-08-01 10:53:29 -07:00
MysterD
da13828509
Made rumble strength and deadzone settings apply instantly
2021-08-01 10:44:50 -07:00
MysterD
97d353c7aa
Fixed typo 'play intro cutscene' -> 'skip intro cutscene'
2021-08-01 10:37:51 -07:00
MysterD
26720f9c47
Made camera settings apply instantly
2021-08-01 10:36:50 -07:00
MysterD
1917c6231b
Changing controller/keyboard binds will now apply immediately
2021-08-01 10:23:33 -07:00
MysterD
cd913345ca
Fix spacebar in chat
2021-08-01 10:12:18 -07:00
MysterD
922499dada
Adjusted where selectionbox is defined
2021-07-31 20:53:11 -07:00
MysterD
2580e6a681
Bumped version number to unst 7
2021-07-31 17:27:41 -07:00
MysterD
9699d79dd7
Fix Discord connections on unstable
2021-07-31 17:24:13 -07:00
MysterD
7757a69145
Briefly forgot how IP addresses worked
2021-07-31 03:18:00 -07:00
MysterD
0b3f363130
DJUI: Ignore garbage text inputs if there are no valid characters
2021-07-31 03:02:30 -07:00
MysterD
98b7dba74b
DJUI: Added mouse support to DX11/DX12
2021-07-31 02:30:10 -07:00
MysterD
661f2c28dc
Readded player died popup
2021-07-30 19:37:20 -07:00
MysterD
3ee3f3e5bd
Added simple rate limiting of packets
2021-07-30 19:33:09 -07:00
MysterD
033a9aa1a8
Hide other players in main menu
2021-07-30 18:47:09 -07:00
MysterD
1845f8aaaf
DJUI: Resize HUD scale based on window resolution
2021-07-30 18:41:49 -07:00
MysterD
d615dcfbce
DJUI: Added sounds to popups
2021-07-30 18:22:32 -07:00
MysterD
4e0a3e3e57
Merge branch 'dev/djui' into dev/unstable
2021-07-22 20:38:21 -07:00
MysterD
1ddb27d1ad
DJUI: Default menus to keyboard/gamepad controls
2021-07-21 00:58:19 -07:00
MysterD
64648a8ce3
DJUI: Reimplemented chat
2021-07-21 00:53:28 -07:00
MysterD
321e101b30
Made cheats server-setting, created cheat menu
2021-07-16 18:43:21 -07:00
MysterD
6ad96d5e69
Removed luigi sound config
2021-07-16 18:12:56 -07:00
MysterD
7e1a05a40b
DJUI: Replaced old ingame menu with new DJUI menu
2021-07-15 19:37:09 -07:00
MysterD
c0ec2caac1
DJUI: Made cursor hover location control-configurable
2021-07-15 18:47:19 -07:00
MysterD
a89dd55081
Added knockback strength to host setting menu
2021-07-15 18:33:27 -07:00
MysterD
f44d8ffc4c
DJUI: pressing B or escape will go back one menu
2021-07-15 18:11:37 -07:00
MysterD
3d0d87a4eb
DJUI: Made cursor movement more predictable
2021-07-14 19:25:39 -07:00
MysterD
b0453da5e4
DJUI: Changed quit menu into confirm menu, confirmed save erase
2021-07-14 19:14:07 -07:00
MysterD
28d63b2c87
Added save file selection to host menu
2021-07-14 18:58:52 -07:00
MysterD
f51f60ba24
Prevent the ability to host when Discord failed to initialize
2021-07-12 20:18:15 -07:00
MysterD
3395ba26f4
Added host port inputbox to host menu
2021-07-12 20:06:51 -07:00
MysterD
46f905f4a3
DJUI: Created popup system, re-added missing popup messages
2021-07-12 18:29:39 -07:00
MysterD
4fb951c0bf
Fix commandline params for client/server
2021-07-11 02:04:26 -07:00
MysterD
ec2f07f20d
DJUI: Made join IP inputbox work correctly
2021-07-11 01:21:56 -07:00
MysterD
5c4677ca77
Added a join message screen
...
Displays an animation while joining
Shows version mismatch error in join message screen
Shows mod mismatch error in join message screen (displays mismatching mods now)
Displays party is full / host closed connection in join message screen
Added string builder
2021-07-10 22:30:58 -07:00
MysterD
13d504a953
Replaced old host/join menu with new DJUI menu system
2021-07-04 22:40:04 -07:00
MysterD
733217a07a
Removed old custom menu system
2021-07-01 21:27:57 -07:00
MysterD
58eec0e19f
Removed old chat system
2021-07-01 21:14:11 -07:00
MysterD
1b1ed0038f
DJUI: Added join panel
2021-07-01 21:03:14 -07:00
MysterD
b4418bbd4f
DJUI: Made inputbox usable
...
Added keyboard support to inputbox
Fixed how inputbox text is clipped
Added on_enter_press callback for inputbox
Added ability to set clipboard text
Adjusted how components can be focused, and when they lose focus
Erased most of the text input stuff in controller_keyboard
Disabled major parts of old chat system
Disabled major parts of old menu system
2021-07-01 20:03:54 -07:00
MysterD
e424b9f9f3
DJUI: Started adding inputbox
2021-06-29 19:04:23 -07:00
MysterD
df20408a93
DJUI: Added button style for back button
2021-06-28 18:25:06 -07:00
MysterD
fc1db575bd
DJUI: Make cursor movement more predictable
2021-06-28 18:15:59 -07:00
MysterD
2a4817b29b
DJUI: Adjusted normal font, added missing characters
2021-06-28 18:08:24 -07:00
MysterD
8f5f94f0c7
DJUI: Removed unimplemented Player menu
2021-06-28 00:07:07 -07:00
MysterD
8b7ab3c35c
DJUI: Added host menu
...
Added host message menu
Refactored how panel menus are constructed
Adjusted normal font's line height
Adjusted how text boxes detect max lines
2021-06-28 00:04:48 -07:00
MysterD
4504b2c21b
DJUI: Added controls menu
2021-06-27 15:54:10 -07:00
MysterD
a6c204e1cf
Fixed how players compare their area numbers
2021-06-27 00:40:30 -07:00
MysterD
ad3ee677c6
Fixed cannons, possible fix to star unlocks
2021-06-27 00:33:31 -07:00
MysterD
59eef70183
Prevent player-to-player interactions from messing up other ones
2021-06-26 21:51:00 -07:00
MysterD
974d9b52cf
Prevented initial level dialog from appearing twice
2021-06-26 20:36:18 -07:00
MysterD
3625ad8883
Made clients send keep-alive packets again
2021-06-26 20:25:38 -07:00
MysterD
6c687a5a73
Prevent walking through warp doors
2021-06-26 20:20:19 -07:00
MysterD
b7795fd9d1
Prevent packet_save_set_flag from looping
2021-06-26 16:54:43 -07:00
MysterD
e85e6b9983
Bumped version to unst 6
2021-06-26 15:29:59 -07:00
MysterD
f13b7990a0
More networking adjustments
...
Adjusted when a join request is sent, and who it is sent to
Adjusted default course/act/level/area for new players
Added a sequence id to level area inform
Adjusted reliable packets to be sent half as frequently
2021-06-26 15:28:51 -07:00
MysterD
8b403d4509
DJUI: Added selectionbox
2021-06-26 14:20:39 -07:00
MysterD
1e4acef2e0
DJUI: Added checkbox and camera panel
2021-06-25 23:03:38 -07:00
MysterD
bf54a305d4
Hide cursor regardless of window mode
2021-06-25 15:56:28 -07:00
MysterD
28ce5e9cdf
DJUI: Added sliders, made Sound menu work
2021-06-25 15:50:31 -07:00
MysterD
05c32ea73e
DJUI: Wrote active panel system
2021-06-24 18:15:59 -07:00
MysterD
5131665be2
DJUI: Added 'Three Panel' component
2021-06-23 19:17:46 -07:00
MysterD
56a6532d9c
DJUI: Improved keyboard/gamepad input
2021-06-22 21:35:55 -07:00
MysterD
580f19dcc9
DJUI: Added keyboard/gamepad support
2021-06-22 20:01:16 -07:00
MysterD
a3947b3800
DJUI: started adding options menu
2021-06-22 00:13:37 -07:00
MysterD
dfef74e727
Added custom title font
...
Adjusted text system to have multiple fonts
Added color escape to text
2021-06-21 21:18:27 -07:00
MysterD
7aec232450
Added quit menu
...
create enabled switch to disable interactables
fixed djui_base_destroy()
added on_click() event
2021-06-21 03:11:53 -07:00
MysterD
c0b093b11f
DJUI: Created main menu panel
...
Added ability to make a DjuiBase keep its aspect ration
Added on_render_pre callback
Added ability to display 32b images
Added DjuiFlowLayout
Added logo
2021-06-20 23:34:14 -07:00
MysterD
99308a3145
Many small adjustments to networking code
...
In an attempt to track down an issue that causes packet flooding and
hanging, I've looked at every step of the networking process and tried
to clean up anything strange I saw.
2021-06-20 04:36:33 -07:00
MysterD
ac85a7e4a7
Re-disable Discord until issues are sorted
2021-06-20 00:49:52 -07:00
MysterD
3eef4076b9
Possibly fixed Discord issues
2021-06-19 21:59:06 -07:00
MysterD
5e6eb8e833
DJUI: Added interactable mousedown events
2021-06-19 19:50:59 -07:00
MysterD
6e23c952f9
DJUI: Rendering, interactable, and mouse adjustments
...
Made DJUI render at 60 fps
Added mouse cursor and hooks in SDL for capturing the window-relative mouse position
Started creating an interable system where elements can respond to events such as on_mouse_hover
2021-06-19 18:22:44 -07:00
MysterD
63e9621d56
DJUI: Added drop shadow to text
2021-06-19 01:21:25 -07:00
MysterD
b80cc50cd0
DJUI: Added padding to DjuiBase
2021-06-19 01:10:24 -07:00
MysterD
f27a6b2469
DJUI: Added borders to DjuiBase
2021-06-18 18:53:41 -07:00
MysterD
368157fbcd
DJUI: added ability for x/y/w/h values to be relative to parent's size
2021-06-18 16:16:41 -07:00
MysterD
038c1135b3
Initial DJUI commit
...
The birth of a custom user interface system.
Has the ability to draw things to the screen at native resolution
regardless of window size.
Components can be nested within one another to an arbitrary depth.
Text rendering is completely rewritten.
Text and images can be clipped by their parent container.
2021-06-18 15:23:59 -07:00
MysterD
52d07c4dde
Bump version number to 5
2021-06-15 21:27:59 -07:00
MysterD
939318041e
Bowser, cannon door, and eyerok no longer require server to be in level
...
All have been switched from being owned by the server to being owned by
the player with the lowest global ID in the level.
2021-06-15 21:04:51 -07:00
MysterD
f60b861d73
BBH bookshelf manager no longer requires the server to be in BBH
...
Instead of only allowing the server to update the bookshelf manager, allow the
lowest global ID player to update it.
2021-06-15 21:01:28 -07:00
MysterD
4c401f9ba8
Resynchronized DDD poles to use area timer system
2021-06-15 18:01:03 -07:00
MysterD
4396381d60
Change unstable build disclaimer
2021-06-15 00:20:29 -07:00
MysterD
15f8b12770
Fixed Discord packet system for >2 players
2021-06-15 00:15:03 -07:00
MysterD
10e8af83ba
Fixed how Linux registers the discord executable
2021-06-14 23:31:22 -07:00
MysterD
0c459294bb
Fixed the merry go round in BBH
...
Fixed releasing of sync objects that otherwise don't sync their death events
Fixed using/releasing reserved objects in an area that the server isn't in
2021-06-14 21:06:07 -07:00
MysterD
ef2287a5d5
Resynchronized checkerboard elevators to use area timer
2021-06-14 20:29:08 -07:00
MysterD
e7d0f8ec8b
Resynchronized LLL puzzle pieces
...
Created a timer based on area that is shared. The puzzle pieces will
execute rapidly to catch up to the timer on level join. This keeps them
in sync without constantly needing to acknowledge that a puzzle piece
had moved before continuing.
2021-06-14 20:14:47 -07:00
MysterD
6aded174e9
Synchronized moat draining and cap switch unlocks
2021-06-14 19:59:11 -07:00
MysterD
02fbdca868
Fix bowser key unlock sync
2021-06-14 19:21:47 -07:00
MysterD
8e52960cf7
Added indication of which players are in which acts
2021-06-14 19:11:26 -07:00
MysterD
361a57edb6
Instance levels based on which star was selected
...
Previously the levels were instanced based on "act" which is a concept
that is invisible and unintuitive to the user.
2021-06-14 18:25:24 -07:00
MysterD
cd48d177b0
Additional synchronization + misc fixes
...
Prevented crash that happened when an upstairs painting was entered
Synchronized TTC speed setting
Synchronized WDW water level on late join
Player packets no longer broadcasted to clients in a different location
2021-06-14 18:13:58 -07:00
MysterD
b1ac0c9f7f
Adjusted how "static" sync entities are removed
...
No longer needs hacky stuff like relying on the macro for goomba triplet removal.
Instead we simply keep a list of sync ids of objects that were removed (but were
around at the start of level loading)
2021-06-13 19:00:55 -07:00
MysterD
3ab1b0b4b5
Synchronized red coin count on join.
2021-06-13 18:32:35 -07:00
MysterD
518a1fda4b
Server makes sure the client can receive the packet before sending/tunnelling
2021-06-13 17:57:54 -07:00
MysterD
59d08a90b9
Fixed how "levelAreaMustMatch" packets are sent/processed
...
Instead of the server dropping them immediately, the server only drops the processing. This allows it to broadcast/send the packet to the correct client without the server processing it.
Fixed how "static" level objects were detected. The old way was error prone and would consider spawned objects to be static anyway.
Made ERROR_LOGs always show up, "disabling" logging only turns off INFO_LOGs now.
2021-06-13 17:47:58 -07:00
MysterD
7ae26b3ea0
Complete rewrite of entity ID reservation system
...
Now "syncId"s can only be reserved at ID 127+. This ensures that static level
objects and spawned reserved objects never clash. The server keeps track of
every player's list of reserved IDs, as well as when an ID is used, or when
an entity using that ID is destroyed. This is much more complicated than it
used to be, but this complication is required due to players being allowed to
be in different areas of the game.
2021-06-13 16:04:28 -07:00
MysterD
fde6eaf0a3
Added ordered packet system
...
Now packets can be grouped up and sent separately, but still be processed
sequentially regardless of how much they get scrambled over the network.
If a packet group isn't received for 15 seconds, all unprocessed packets
in that group will be dropped. Packet ordering is required for level and
area synchronization information when someone joins the level late.
2021-06-11 19:37:32 -07:00
MysterD
b6959dc7ea
Informed players of ent deletions in a different area (but same level)
...
Added packet_level_respawn_info to inform the players of entity
deletions in a different area of the same level. Currently it's
massively noisy due to sending out a new packet for each entity
destroyed. This can cause chaos when collecting a series of coins.
Ideally this information would be batched and sent in one big blob every
so often.
2021-06-11 16:19:24 -07:00
MysterD
6bfdcbcb7b
Complete rewrite of level-change/area-change system
...
Now level changes and area changes are separated. Entity deletions are
properly tracked on level change or area change. Late entity
synchronization is now triggered on any area change.
2021-06-11 14:39:25 -07:00
MysterD
0b3a97d405
Improvements to late-join synchronization
...
Removed (slightly) old coin and static ent removal system
Resynchronized respawners
Added packet for macro deletions
better than previous system since the entities don't need a sync id and we can synchronize deletion station across areas
allows the synchronization of odd entities like lines of coins
Added packet for spawn info deletions
Split packet_location_request into multiple files
2021-06-09 22:35:34 -07:00
MysterD
6e7c542068
Synchronized race timers
2021-06-08 22:05:12 -07:00
MysterD
33fbed94e4
Synchronized respawners and entities created after level load
2021-06-08 21:21:52 -07:00
MysterD
5db1a9e827
Synchronize late-join coin collection
2021-06-08 02:26:35 -07:00
MysterD
4be00a2eb1
Late-join synchronized chain chomp and exclamation box
2021-06-08 01:29:21 -07:00
MysterD
050d940d53
Added ability for clients to send packets to each other skipping server
...
Added memory of last reliable packet about each sync object
2021-06-07 23:12:17 -07:00
MysterD
e593bedc77
Keep track of static level spawn removals and sync them on location response
2021-06-07 19:25:31 -07:00
MysterD
bbdc942501
Ripped out level synchronization/warp code
...
Began writing new system that synchronizes course/act/level/area per
player and 'ownership' of that location.
2021-06-07 12:19:59 -07:00
fgsfds
b12bf38abd
sync with stable
2021-04-06 22:56:08 +03:00
fgsfds
4ba30ebd9e
windows: bump SO_SNDBUF size when playing with >4 players
2021-04-06 18:09:07 +03:00
fgsfds
abd3a0a130
add more player colors
2021-04-06 18:08:41 +03:00
fgsfds
10c63a1706
bump unstable version number
2021-04-06 02:30:54 +03:00
fgsfds
511b1352b8
colorize chat messages with player color
2021-04-06 02:30:37 +03:00
fgsfds
109e713689
implement changeable model colors
...
in a very dumb way:
the custom colors are set for lights 3, 4, 5, 6 in a GEO_ASM callback, then copied to lights 1, 2 using gsSPCopyLightEXT
2021-04-06 00:22:42 +03:00
fgsfds
798389b527
added new GBI command: G_COPYMEM
...
exclusively for copying lights around for now; required for my retarded model color implementation
2021-04-06 00:18:04 +03:00
fgsfds
d4cdd89683
everyone except host is luigi
2021-04-05 04:21:23 +03:00
fgsfds
8f4965e05d
partially fix jitter with two of the same model
2021-04-05 04:21:14 +03:00
fgsfds
843a8cd18f
djoslin0's new warp code
2021-04-05 03:21:37 +03:00
Avery
b68d5b107a
make discord max party size equal to MAX_PLAYERS
2021-03-06 21:07:55 -08:00
MysterD
dd90132145
Whoops, actual release
2020-10-18 22:24:37 -07:00
MysterD
a0b5f28b38
Beta 2 release
2020-10-18 22:21:25 -07:00
MysterD
c0652f8a48
Allocate the correct number of controllers on stable branch
2020-10-18 22:15:52 -07:00
MysterD
281e45051b
Prevent racing penguin crash when one player cheats
...
Fixes #87
2020-10-18 18:21:19 -07:00
MysterD
f88aee251e
Keep BETTERCAM/bubbled players within the minimum Y bounds of levels
...
Players/cameras were able to clip inside of island-like levels
previously. I have hardcoded sane minimum Y values for the following
courses: WF, CCM, PSS, BITDW, TTM, RR, BITS
2020-10-18 11:57:45 -07:00
MysterD
4cb49d3946
Misc sync fixes to various enemies
...
Considered nearest player for various things within the following
entities that I missed the first time around: cloud, koopa, monty mole,
moving coin, piranha bubbles, scuttlebug, shock wave, spindrift.
2020-10-17 23:58:24 -07:00
MysterD
cbf8505516
Misc fixes to bub
2020-10-17 23:43:29 -07:00
MysterD
f4263deea9
Fix wiggler softlock and intangibility
2020-10-17 23:38:32 -07:00
MysterD
98cc31d6cb
Do not consider inactive players when bubbled
2020-10-17 23:27:34 -07:00
MysterD
eea5ebb94b
Fixed command-line launch segfault
...
custom_menu_destroy() was causing a segfault when launching the game via
command-line parameters
2020-10-17 23:04:59 -07:00
MysterD
2519c59958
Merge branch 'unstable' of https://github.com/djoslin0/sm64ex-coop into unstable
2020-10-16 23:37:01 -07:00
Victor Diego Alejandro Diaz Urbaneja
26928ac6f5
overlay error ( #88 )
...
* overlay error
fixed compilation error
* Update custom_menu_system.c
Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2020-10-16 23:36:31 -07:00
MysterD
615c19be6f
branch 'unstable' of https://github.com/djoslin0/sm64ex-coop into unstable
2020-10-16 23:33:47 -07:00
MysterD
1564ac7c0f
Translated Luigi sounds through new Character system
2020-10-16 23:33:41 -07:00
MysterD
a5a4c3c324
Make gControllers respect MAX_PLAYERS
...
fixes Linux crash when MAX_PLAYERS is increased
2020-10-16 22:22:28 -07:00
MegaMech
33dda3322c
Added connection transition ( #86 )
...
* Added content to custom_menu_destroy()
* Added connection transition
* Update custom_menu_system.c
Co-authored-by: djoslin0 <djoslin0@users.noreply.github.com>
2020-10-16 21:43:26 -07:00
anzz1
130cfefa82
Fix DISCORD_SDK=0 building ( #85 )
...
Co-authored-by: anzz1 <>
2020-10-16 20:20:14 -07:00
anzz1
d1739648e1
Added Luigi sounds ( #77 )
...
* added a new audio bank 10 for luigi sounds
* made some audio memory buffers larger to fix sound cuts
* added option to enable/disable luigi sounds in the sound options menu
* added Andrat's "90's Classic Luigi Voice Pack" as default luigi sounds
Co-authored-by: anzz1 <>
2020-10-16 11:54:59 -07:00
MysterD
2b0f892251
Misc adjustments to recent PRs
...
Switched from manual checking of Luigi to using new Character structs
Synchronized cap spawning for mario_blow_off_cap()
Added declarations for network_send_death() and network_receive_death()
2020-10-16 03:59:24 -07:00
MysterD
05fd683c64
Fix UNSTABLE_BRANCH checking
2020-10-16 03:56:37 -07:00
anzz1
bc7ec31c02
Enemy hat fixes ( #83 )
...
* Ukiki now steals Mario/Luigi hat correctly
* Klepto now steals Mario/Luigi hat correctly
* Mr. Blizzard now knocks off Mario/Luigi hat correctly
* Fwoosh now knocks off Mario/Luigi hat correctly
Co-authored-by: anzz1 <>
2020-10-16 03:03:25 -07:00
MegaMech
e447332cec
Added server settings: shared lives and skip intro
...
Adds button to the host menu to allow shared lives.
Resolves #37
Buttons are now resizeable. Use gButtonScale.<size> (large, medium, or small).
It could be argued that we don't need the small size. However, it may be beneficial for the future if the menu becomes more complex.
large is the normal default size. Or at least it was the size already being used by sm64ex-coop (0.11111111f)
Note: Buttons for changing menu's should be gButtonScale.large as the menu animation is made for large buttons. To keep consistency it's probably a good idea for buttons that transfer you to a new menu to always be set to large. As such, I didn't feel it necessary to extend this feature to these methods: bhv_menu_button_growing_from_custom and bhv_menu_button_shrinking_to_custom.
Resolves #60
2020-10-16 02:58:57 -07:00
MysterD
c49ba7cdd8
Change version to beta 2, prepare unstable branch
2020-10-16 01:04:07 -07:00
MysterD
9f158de95d
Remove two-player hack for controlled warp
2020-10-15 18:04:53 -07:00
MysterD
48aee0c7be
Enemies drop player when picked up
2020-10-14 23:52:07 -07:00
MysterD
66eb163339
Prevent playing star cutscene when in cutscene
2020-10-14 23:36:19 -07:00
MysterD
71bc444fa2
Desync fixes for hoot, piranha, spiny
2020-10-14 23:25:59 -07:00
MysterD
c50794773c
Allow bubbled players to go through elevators
2020-10-14 23:20:43 -07:00
MysterD
196ac547ef
Bubbled visual improvements (pitch to player)
2020-10-14 23:18:05 -07:00
MysterD
040aa92fd1
Prevent people from hosting a discord game when discord fails
2020-10-14 21:17:28 -07:00
MysterD
8750198750
Prevented vanish cap players from interacting with other players
2020-10-14 20:58:03 -07:00
MysterD
cfd559bc74
Sync riddenObj, prevent remote interaction with shell
2020-10-14 20:50:55 -07:00
MysterD
8fc8ca6ca7
Prevent players from interacting with a shell that someone else is riding
2020-10-14 20:42:04 -07:00
MysterD
cb902c519d
Properly synchronize koopa shells spawned from boxes
2020-10-14 20:34:38 -07:00
MysterD
d882e8a039
Added a way to debug sync object tables through chat
2020-10-14 20:33:23 -07:00
MysterD
16b95fdbca
Prevent cursor from going past array in course completion screen
2020-10-14 20:03:05 -07:00
MysterD
85c05e7d56
Removed two-player hacks for packet_spawn_objects
2020-10-14 00:15:56 -07:00
MysterD
28ad7f91ed
Smooth over transition from sending raw enums
2020-10-13 23:04:08 -07:00
MysterD
55bbe8d4d9
Removed two-player hacks for heldObj and spawning offsets
2020-10-13 22:26:13 -07:00
MysterD
c8a45235ca
Removed two-player hacks from cannon and object packets
...
Increased error checking of get_behavior_from_id
Made failure logging for packet_object a lot better
Changed debug logging to show global index instead of "Server/Client"
Changed debug keyboard binds to support more keyboard types
Made SyncObject's rxEventId de-duplication per-player instead of one-player
Removed sizeof(enum) from packet_read/packet_write
2020-10-13 21:44:27 -07:00
MysterD
aaa7e65b65
Created character struct for mario/luigi asset differences
...
Removed multiple two-player hacks in the process
2020-10-13 18:33:51 -07:00
MysterD
f230d4fe63
Removed two-player hack for held objects
2020-10-13 18:12:33 -07:00
MysterD
9f1d03d5b4
Remove two-player hack for packet_object
2020-10-13 18:11:40 -07:00
MysterD
66af03c41d
Slight improvement to small breakable box sync
2020-10-12 18:10:40 -07:00
MysterD
c214800faf
Standardized de-duplication of reliable packets
2020-10-12 18:40:38 -07:00
MysterD
5d9d5ed9d7
Added ability for client to send a packet to server, and for the server to broadcast to all clients
2020-10-12 18:23:48 -07:00
MysterD
3f798609be
remove unused version call
2020-10-11 20:45:44 -07:00
MysterD
8b6bfc2369
Possible fix for big bully spawn
2020-10-11 19:16:21 -07:00
MysterD
d4f92ed209
Reset override_ownership to null (fixes crash in THI)
2020-10-11 18:54:05 -07:00
MysterD
7bf2ebd7e8
Made version mismatch screen more descriptive
2020-10-11 18:26:10 -07:00
MysterD
342a048e0e
Display instructions on how to fix Discord error to user
2020-10-11 18:11:11 -07:00
MysterD
adb7fe86eb
Fix how scancodes are read for text input
...
May fix issue where spanish keyboards are unable to press enter to chat
2020-10-11 17:20:47 -07:00
MysterD
feb9bead02
Synchronized the controller properly (fixes 64bit-to-32bit communication bug)
2020-10-11 17:20:08 -07:00
MysterD
c0a30c8de6
Establish new versioning system (beta 1)
2020-10-11 15:49:24 -07:00
MysterD
7791e03d6a
Added all levels to support levels!
2020-10-11 14:55:08 -07:00
MysterD
1345b8d9d0
Synchronized Bowser 3 fight platforms
2020-10-11 14:54:16 -07:00
MysterD
b536fcfdb0
Added RR to supported levels
2020-10-11 14:42:04 -07:00
MysterD
13fdf6ceaf
Added TTC to supported levels
2020-10-11 14:40:13 -07:00
MysterD
dbe1e21b87
Synchronized TTC treadmill
2020-10-11 14:39:41 -07:00
MysterD
f64e315c74
Synchronized TTC spinner
2020-10-11 14:39:32 -07:00
MysterD
7167c8537b
Synchronized TTC rotating solid
2020-10-11 14:39:21 -07:00
MysterD
52510de84e
Synchronized TTC pit block
2020-10-11 14:39:07 -07:00
MysterD
4cb089c428
Synchronized TTC pendulum
2020-10-11 14:38:56 -07:00
MysterD
788dc5310c
Synchronized TTC moving bar
2020-10-11 14:38:44 -07:00
MysterD
63af39cd53
Synchronized TTC elevator
2020-10-11 14:38:30 -07:00
MysterD
83baf2eac6
Synchronized TTC cog
2020-10-11 14:38:19 -07:00
MysterD
cbeea0472c
Synchronized TTC 2d rotator
2020-10-11 14:38:07 -07:00
MysterD
e1ca3b963d
Misc gMarioState/gMarioObject cleanup
2020-10-10 16:12:29 -07:00
MysterD
229880cfda
Synchronize burning player smoke + misc version improvements
2020-10-10 15:49:17 -07:00
MysterD
b7cf6cdf5c
Synchronized 'donut platforms'... the slow falling ones in RR
2020-10-10 15:33:17 -07:00
MysterD
736fba54a2
Synchronized swing platform
2020-10-10 15:32:39 -07:00
MysterD
edc275b5e8
Enhancements to networked player infrastructure
2020-10-10 01:18:45 -07:00
MysterD
5282c461fa
Fix typo, whoops.
2020-10-08 23:53:16 -07:00
MysterD
392471eb1f
Bugfix for spiny override ownership
2020-10-08 23:40:01 -07:00
MysterD
2fb2fc81e1
Add THI to supported levels
2020-10-08 23:38:43 -07:00
MysterD
2adea6aad6
Synchronized Wiggler
2020-10-08 23:37:01 -07:00
MysterD
fadea702ff
Synchronized THI top
2020-10-08 23:07:32 -07:00
MysterD
c958837333
Somewhat synchronized fire piranha plants
2020-10-08 23:05:06 -07:00
MysterD
55939e6eda
Synchronized enemy lakitu and spiny
2020-10-08 22:14:17 -07:00
MysterD
3bb96fa609
Synchronized Bubba
2020-10-08 22:05:21 -07:00
MysterD
028990302d
Prevent star dance spam
2020-10-08 21:31:53 -07:00
MysterD
8360df84fe
Add chat message when a player dies
2020-10-08 21:19:16 -07:00
MysterD
ff1b19e2ee
Prevent King Bobomb from grabbing while thrown
2020-10-08 21:13:56 -07:00
MysterD
e4c1640c56
Change disclaimer
2020-10-08 21:03:35 -07:00
MysterD
597cc14ccf
Add TTM to supported levels
2020-10-08 20:57:56 -07:00
MysterD
5924ed9485
Disable force-synchronizing of TTM slide
2020-10-08 20:57:11 -07:00
MysterD
41295fb814
Synchronized Ukiki
2020-10-08 20:56:49 -07:00
MysterD
aa345ede4d
Synchronize Fwoosh
2020-10-08 20:56:34 -07:00
MysterD
ea1553c18d
Koopa shell can only be ridden by one person, and doesn't get accidentally removed
2020-10-06 23:38:56 -07:00
MysterD
d2e1b6e5a0
Possibly fixed rare invisible cannon bug
2020-10-06 21:03:08 -07:00
MysterD
93b2c4213d
Added WDW to supported levels
2020-10-06 20:29:40 -07:00
MysterD
d13127117a
Misc additional player checks
2020-10-06 20:29:23 -07:00
MysterD
349517e9fb
Synchronized WDW water level changers
2020-10-06 20:28:44 -07:00
MysterD
b93e681377
Synchronized Skeeter
2020-10-06 20:28:28 -07:00
MysterD
6d5e1d498e
Synchronized metal boxes
2020-10-06 20:28:17 -07:00
MysterD
8464d6c830
Synchronized Heave Ho
2020-10-06 20:28:06 -07:00
MysterD
2b75690a31
Synchronized WDW express elevator
2020-10-06 20:27:54 -07:00
MysterD
5ad1b60a9f
Synchronized Chuckya
2020-10-06 20:27:24 -07:00
MysterD
938e0a817e
Synchronized WDW arrow lift
2020-10-06 20:27:12 -07:00
MysterD
0b4ed5bf27
Added Snowman's Land to supported levels
2020-10-05 23:13:12 -07:00
MysterD
d56f46a79c
Synchronized SL snow mounds
2020-10-05 23:08:36 -07:00
MysterD
347bd0ed63
Synchronized SL penguin
2020-10-05 23:08:24 -07:00
MysterD
94fe53f4bf
Synchronized Snowman Wind
2020-10-05 23:08:12 -07:00
MysterD
d6a7af8f54
Synchronized Moneybag
2020-10-05 23:07:57 -07:00
MysterD
dd8de27014
Snap players on top of synchronized platforms
2020-10-05 22:05:05 -07:00
MysterD
b6d96adbf0
Prevented Yoshi softlock
2020-10-05 21:04:00 -07:00
MysterD
74852faeaf
Stopped time and show cutscene for all for more stars
2020-10-05 20:36:44 -07:00
MysterD
b63a47f64a
Fix strange behavior when being caught in a whirlpool while an instant warp occurs
2020-10-05 20:20:49 -07:00
MysterD
b831acd59c
Rewrote how RNG is synchronized
...
The old implementation was hacky and often returned desynchronized
results. This implementation gives a seed to each sync object, and
synchronizes that seed. Also allows for a seed to be saved temporarily
based on position and recycled for multiple calls.
2020-10-05 19:15:13 -07:00
MysterD
87074ef098
Fix Bowser cutscene yet again...
2020-10-05 18:16:28 -07:00
MysterD
404d201955
Local unlocking door star spawns again
2020-10-04 23:27:02 -07:00
MysterD
53f7a36819
Prevent multiple star/key unlock animations on the same door
2020-10-04 23:23:17 -07:00
MysterD
e9761cd3e6
Prevent rare bug where a remote player will grab a non-grabbable object momentarily
2020-10-04 23:06:52 -07:00
MysterD
5eb5e678c5
Prevent OOB warp by teleporting one player to the other when OOB is detected
2020-10-04 22:38:54 -07:00
MysterD
104e824a13
Make sure 70 star door is always openable
2020-10-04 22:16:20 -07:00
MysterD
6f23b63e61
Prevent hang due to mirror mario nodes
2020-10-04 22:10:41 -07:00
MysterD
70fdad4e7c
Stop time and show star cutscene for everyone
...
Fixes #72
2020-10-04 21:26:36 -07:00
MysterD
2c7b42b331
Adjusted how de-duplication of star spawns is done for red/hidden stars
2020-10-04 20:52:53 -07:00
MysterD
c98edbcb4b
Add remote players to mirror
2020-10-04 20:18:09 -07:00
MysterD
bb30d28be9
Synchronize intro/bridge lakitu
2020-10-04 19:38:01 -07:00
MysterD
2f1e0473c2
Offset and separate player intro pipes
2020-10-04 19:16:35 -07:00
MysterD
d8bf1c8ef1
Re-enable intro
2020-10-04 19:16:16 -07:00
MysterD
03d40b4ba3
Synchronized Yoshi
2020-10-04 17:57:37 -07:00
MysterD
b89fccbf51
Prevented glitchy remote movement when moving through warp doors
2020-10-04 17:00:52 -07:00
MysterD
0f6fa70523
Gave all doors SyncIDs
2020-10-04 16:51:17 -07:00
MysterD
ed06b57649
Added mod registration system
...
Allows mods to register themselves so that mismatches don't occur. This
does not automagically detect when someone modified the game, so the
mods will have to insert a function like this into their patch:
static void __attribute__((constructor)) _register_this_mod() {
network_register_mod("mod name here");
}
2020-10-04 16:41:55 -07:00
MysterD
259ddac5ba
Fixed WF tower platform synchronization
2020-10-04 14:54:31 -07:00
MysterD
868d006681
Enabled/improved free movement for development purposes
2020-10-04 14:50:52 -07:00
MysterD
edd489eb49
Prevented WF's rotating platform from desyncing angle
2020-10-04 14:32:52 -07:00
MysterD
d7c43aeb95
Removed quit game options from course completion screen
2020-10-04 14:15:06 -07:00
MysterD
f3b6c60f1a
Made piranha plant's hitbox consistent if event is missed
2020-10-04 13:59:14 -07:00
MysterD
d229a69b83
Made picking up / dropping objects immediately sync those objects
2020-10-04 13:54:12 -07:00
MysterD
c56114cfa2
Prevented Bowser from remaining invisible when held
2020-10-04 13:24:44 -07:00
MysterD
303d276274
Possibly fixed King Bobomb grabbing softlock
2020-10-04 13:15:08 -07:00
MysterD
307af17b6f
Fix snowman's lost his head dialog
2020-10-04 12:54:21 -07:00
MysterD
b9813acbc5
Prevent dying/bubbling from replaying intro level cutscene
2020-10-03 10:15:21 -07:00
MysterD
9e2b28008b
Add BITFS to supported levels
2020-10-03 00:21:47 -07:00
MysterD
57b092c26b
Synchronized BITFS platforms
2020-10-03 00:18:18 -07:00
MysterD
c6da1a057a
Added DDD to supported levels
2020-10-02 23:40:28 -07:00
MysterD
931ee9ca13
Prevented bubbled players from interacting with objects
2020-10-02 23:37:15 -07:00
MysterD
fb775165ce
Fixed bug with whirlpools
2020-10-02 23:35:06 -07:00
MysterD
327c735dba
Synchronized DDD's poles
2020-10-02 23:34:33 -07:00
MysterD
b6e5581111
Somewhat synchronized player's interact/used objects
2020-10-02 23:34:19 -07:00
MysterD
5729c3ffac
Synchronized Water Rings
2020-10-02 23:33:21 -07:00
MysterD
8e572f9b9b
Synchronized Sushi
2020-10-02 23:33:07 -07:00
MysterD
0b8aff4103
Synchronized Manta Rays
2020-10-02 23:32:58 -07:00
MysterD
f0eba71c77
Synchronized Bubs
2020-10-02 23:32:47 -07:00
MysterD
6dc5819583
Do a full reset of the camera again. More janky, but prevents camera softlock
2020-10-02 22:20:59 -07:00
MysterD
b673457a48
Synchronized mips/toad star spawning
2020-10-02 21:05:02 -07:00
MysterD
525ef6db17
Synchronized castle water drain pillars
2020-10-01 23:11:16 -07:00
MysterD
1bcaed297c
Resynchronized HMC controllable platform
2020-10-01 22:41:27 -07:00
MysterD
e7ad181428
Applied platform displacement for entities that a player is standing on
2020-10-01 22:41:17 -07:00
MysterD
2c6ab5d4ab
Change how we reset the camera when bubbled/on star collection
2020-10-01 22:00:46 -07:00
MysterD
0a68abc055
Added HMC and COTMC to the supported levels list
2020-10-01 21:35:19 -07:00
MysterD
e7ffd52d45
Made COTMC, TOTWC, VCUTM, WMOTR use the normal death barrier warp
2020-10-01 21:34:46 -07:00
MysterD
e63178ed34
Synchronized Dorrie
2020-10-01 21:27:19 -07:00
MysterD
f6bae3a619
Synchronized Monty Mole
2020-10-01 12:39:06 -07:00
djoslin0
66356133db
Merge pull request #71 from anzz1/patch-2
...
fix copying and erasing saves
2020-10-01 00:05:00 -07:00
MysterD
16a4662ece
Synchronized swoop
2020-10-01 00:04:08 -07:00
MysterD
9cc77a5735
Synchronized snufit
2020-10-01 00:03:59 -07:00
MysterD
5cafdb0aa2
Synchronized HMC controllable platform
2020-10-01 00:03:46 -07:00
MysterD
1051a4adc5
Synchronized HMC boulders
2020-10-01 00:03:31 -07:00
MysterD
2f7d432143
Synchronized Eyerok, add SSL to supported levels
...
Eyerok was synchronized, but I'm still not super pleased with the
result. I had to sacrifice dialog to prevent weird states and he's
completely controlled by the server. His synchronization should be
revisited in the future.
SSL should be fully synchronized now.
2020-09-30 18:20:13 -07:00
MysterD
356029abf6
Forget all reliable packets on network shutdown
...
Prevents strange case where one instance of a game could connect to
itself.
2020-09-29 23:30:51 -07:00
MysterD
3a26c43d14
Prevent star count from flashing in levels
2020-09-29 23:25:28 -07:00
MysterD
76605397af
Prevent vanilla camera from being in a bad state after collecting star
2020-09-29 23:18:17 -07:00
MysterD
5c6d45daa7
Allow warp to take place while paused.
...
Without this change, players would warp to a random node and duplicate
players.
2020-09-29 23:10:37 -07:00
MysterD
a2dc5d6624
Sanity check torsoPos to prevent phantom collisions
2020-09-29 18:05:37 -07:00
MysterD
4ade00ac78
Prevent bug where Luigi can't jump if Mario is holding something
2020-09-29 00:01:18 -07:00
MysterD
9401a79cdc
Fix chat so remote is filled-in and local is non-filled-in star
2020-09-28 20:13:44 -07:00
MysterD
8c7f55a1fb
Synchronize instant warps
2020-09-28 19:58:37 -07:00
MysterD
be6bff6e12
Reset transition timers when forced to warp (fixes screen flashing)
...
Fixes #50
2020-09-27 23:57:52 -07:00
anzz1
4ff85f8719
fix copying and erasing saves
2020-09-27 14:54:13 +03:00
MysterD
a4e3688812
Only override ownership for Bowser when tilting platform
2020-09-27 00:15:43 -07:00
MysterD
2a17d9e831
Make 60 fps behave better for infinite stairs
2020-09-26 22:00:34 -07:00
MysterD
08f72749c9
Fix Toad messages, and likely other things related to behParams
2020-09-26 19:30:22 -07:00
MysterD
b2bd29383b
Continue NPC dialogs after they've started.
2020-09-26 19:08:52 -07:00
MysterD
168a41f0f6
Drop various types of packets if level/area doesn't match
2020-09-26 15:52:00 -07:00
MysterD
e0bdaa1229
Fade remote players into level/area, drop player packets when in different area
2020-09-26 15:13:46 -07:00
MysterD
f5df807a0c
Additional synchronization fixes for end cutscene.
2020-09-26 12:07:43 -07:00
MysterD
389ea20180
Prevent remote camera from messing with local cutscene
2020-09-25 23:17:30 -07:00
MysterD
1e9f8ec5f4
Make bettercam/puppycam respect NO_CAM_COLLISION
2020-09-25 21:40:59 -07:00
MysterD
b594984e45
Prevent bettercam from glitching out when opening one side of a door
2020-09-25 01:03:16 -07:00
MysterD
4d938e635d
Render both sides of open doors
2020-09-24 23:45:28 -07:00
MysterD
7869473e95
Make radius for collecting red coin packets smaller
2020-09-24 23:15:00 -07:00
MysterD
a75113c665
Removed huge/tiny mario and exit anywhere cheats
2020-09-24 23:10:51 -07:00
MysterD
8779460b87
Prevented level transition spam
...
Fixes #50
2020-09-24 22:34:55 -07:00
MysterD
1536ce87c8
Synchronized WDW initial water level
2020-09-24 22:18:04 -07:00
MysterD
333a77b647
Synchronized TTC speed setting
2020-09-24 21:59:03 -07:00
MysterD
8c1ec4beba
Prevent bubbled players from 'dying' to quicksand again
2020-09-24 21:37:07 -07:00
MysterD
9c8a58fa5b
Synchronize warp checkpoints
...
Prevents softlock when dying inside volcano in LLL and pyramid in SSL
2020-09-24 21:34:36 -07:00
MysterD
20631abc7f
Make Bowser 2 less likely to fall through floor
2020-09-24 20:53:32 -07:00
MysterD
44c5b5b02b
Ensure bowser key/star spawns, make bowser intro less glitchy
2020-09-24 20:28:59 -07:00
MysterD
149859e5ab
Allow bubbled players to go through vanish cap walls
2020-09-24 18:54:30 -07:00
MysterD
4ab4a109da
Prevented lava from taking extra lives from bubbled players
2020-09-24 18:32:18 -07:00
MysterD
61847a970d
Enable bettercam/puppycam in Bowser levels
2020-09-24 18:24:58 -07:00
MysterD
39a30093d7
Synchronized pyramid walls
2020-09-24 00:06:14 -07:00
MysterD
262e65f288
Synchronized Spindels
2020-09-24 00:05:59 -07:00
MysterD
e6dd75a44c
Synchronized horizontal Grindels
2020-09-24 00:05:48 -07:00
MysterD
9ef8cda5ee
Synchronized SSL pyramid elevator
2020-09-24 00:05:32 -07:00
MysterD
95b9167287
Synchronized Klepto
2020-09-23 23:18:45 -07:00
MysterD
e1933e5f78
Improvements to Bowser 2 (still not fully supported)
2020-09-23 22:00:20 -07:00
MysterD
999ccccc77
Synchronize peak height to prevent random yelling of remote
2020-09-23 21:13:03 -07:00
MysterD
7d20c6f003
Fix camera stuck in cutscene after star collection
2020-09-23 20:54:59 -07:00
MysterD
20ab5ec9f6
When client selects to save, server will save
2020-09-23 20:44:44 -07:00
MysterD
7fbae9cc05
Made in-level save dialog only show up for the player that collected the star
2020-09-23 20:35:56 -07:00
MysterD
4217306a44
Ignore jump and double jump when looking at attacks
2020-09-23 20:15:29 -07:00
MysterD
e67665ca3f
Made player-to-player attacks more consistent
...
The direction that someone is pushed is based purely on the direction
the attacker is facing.
2020-09-23 20:07:07 -07:00
MysterD
82484b5d08
Synchronized end cutscene, prevented crash
2020-09-23 19:48:24 -07:00
MysterD
29a53cd1c0
Prevent Bowser Bombs from blowing up other bombs in later stages
2020-09-23 18:03:16 -07:00
MysterD
08e8ecfc97
Synchronized fire spitters
2020-09-23 09:29:46 -07:00
MysterD
2b5c830cc4
Sanity check pokey body parts
2020-09-23 09:16:09 -07:00
MysterD
81f2102bb0
Synchronized pyramid top
2020-09-23 09:14:17 -07:00
djoslin0
8d5d79809b
Merge pull request #67 from anzz1/patch-1
...
Custom menu improvements
2020-09-23 00:14:05 -07:00
MysterD
5ee4a1ed0d
Suppress incorrect player connected message
2020-09-23 00:13:34 -07:00
MysterD
c5dcd5de8f
Synchronized Tweester
2020-09-22 23:52:57 -07:00
MysterD
794b9b2656
Synchronized Toxbox
2020-09-22 23:49:57 -07:00
MysterD
608670e0a9
Synchronized Pokey
2020-09-22 23:35:05 -07:00
MysterD
e0736ccc59
Synchronized FlyGuy
2020-09-22 22:31:24 -07:00
MysterD
94b7cf7df6
Increase bettercam's precision
2020-09-22 22:14:43 -07:00
MysterD
5c2673f5af
Change main menu disclaimer
2020-09-22 22:09:05 -07:00
MysterD
e2376a8eaf
Fixed synchronization of rolling log
2020-09-22 21:54:41 -07:00
MysterD
e1cc0aa065
Synchronized bouncing fireball spawners
2020-09-22 21:37:26 -07:00
MysterD
47f5e2315e
Synchronized LLL puzzle
2020-09-22 18:25:17 -07:00
MysterD
c515ccd427
Added 'unsupported level' warning on HUD
2020-09-22 18:05:15 -07:00
anzz1
439b221867
Custom menu improvements
...
* Remove Discord references if DISCORD_SDK=0
* Disallow non-valid ports > 65535
* Only print last attempt's port in direct connection screen if it's non-default
2020-09-22 23:22:58 +03:00
MysterD
4acbbb4db7
Made Discord asserts more descriptive
2020-09-21 23:50:22 -07:00
MysterD
01faa86bf0
Fix deduplication check for spawning stars
...
Stay in level after star option revealed that the deduplication
checking I was doing previously is no longer a valid way to do it.
The old way would prevent a second star from spawning.
2020-09-21 19:11:27 -07:00
MysterD
d3d13c26f8
Prevent drowning alert from playing for remote players
2020-09-21 18:24:17 -07:00
MysterD
5f3895463f
Prevent remote player damage from shaking local screen
2020-09-21 18:22:58 -07:00
MysterD
47122758d8
Prevent chain chomp from hurting people in cutscene
2020-09-21 18:18:19 -07:00
MysterD
378ab6edc1
Resynchronized piranha plants
2020-09-21 18:15:49 -07:00
MysterD
fef41ed741
Fixed copy/paste error
2020-09-21 00:35:04 -07:00
MysterD
fdee4eceea
Synchronize various LLL platforms
2020-09-21 00:32:14 -07:00
MysterD
0052e97605
Synchronized Bullies
2020-09-20 23:30:49 -07:00
MysterD
2a5459b2dc
Disable bettercam's fixed camera at the bridge
2020-09-20 17:58:20 -07:00
MysterD
54cd42608d
Allow players to enter the 70 star door early
2020-09-20 17:54:25 -07:00
MysterD
c5888aff50
Synchronized mips
2020-09-20 17:28:24 -07:00
MysterD
bbe95efaa2
Hotfix for discord servers
2020-09-20 00:47:00 -07:00
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
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
MysterD
163527401e
More level transition synchronization rewrites
...
I believe this fixes #51
2020-09-11 15:32:30 -07:00
MysterD
791423ff98
Properly offset player spawns
2020-09-10 22:18:10 -07:00
MysterD
cb6836f818
Fixed infinite hold by King Bobomb softlock
...
fixes #38
2020-09-10 21:55:03 -07:00
MysterD
71589938df
Fix King Bobomb dialog softlock
...
Fixes #45
2020-09-10 21:26:17 -07:00
MysterD
9cf3932435
Fix coffin crushing softlock
...
Fixes #47
2020-09-10 20:26:02 -07:00
MysterD
114665f6bb
Keep player control of camera for chain-chomp cutscene
...
Fixes #54
2020-09-10 20:02:16 -07:00
MysterD
3e5b08b487
Fixed small crimes against C
2020-09-10 09:43:32 -07:00
MysterD
1e6c734ced
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
e48a9c25ab
Added 'no lives remaining' text
2020-09-08 18:21:09 -07:00
MysterD
42777fbe8f
Changed text on level select screen
2020-09-08 17:33:03 -07:00
MysterD
cf732c7beb
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
58a3156180
Lowered cannon sensitivity
2020-09-08 15:13:49 -07:00
MysterD
ef6ec31075
Prevent ground pound from attacking until they're moving downward
2020-09-08 15:01:31 -07:00
MysterD
a2fe4f80a7
Lower knockback for anything stronger than a kick
2020-09-08 14:57:50 -07:00
MysterD
26726121a5
Players sliding in the same direction will no longer attack each other
...
We check to see what the difference in velocities is, if it's small then
no attack is made. Otherwise, only the player going faster will attack.
2020-09-08 14:43:07 -07:00
MysterD
d1873328a4
Prevent underwater bubble-popping from teleporting the player to the top
2020-09-08 14:03:12 -07:00
MysterD
1e46ed136a
Prevent extra death for bubbled player on area change
2020-09-08 13:53:46 -07:00
MysterD
a7434c9513
Completely disable text saves until they're synchronized
2020-09-08 13:34:35 -07:00
MysterD
a4288fe150
Allow exiting from course at any time
2020-09-08 09:52:48 -07:00