Commit graph

73 commits

Author SHA1 Message Date
MysterD
767809f56a Lua mod table and download
Mods are now loaded into a table
Clients now request a mod list from the server, then download each file one at a time before joining
Embedded constants.lua into the program
2022-01-22 23:59:49 -08:00
MysterD
0626c77048 Lua: moved hook functions into their own file 2022-01-21 19:40:26 -08:00
MysterD
34e903b89a Merge branch 'unstable' into lua 2022-01-21 19:19:21 -08:00
MysterD
777b9287e6 Notify players where other players go with a popup 2022-01-21 18:24:53 -08:00
MysterD
05999a9ae8 Added key/bind names to controls menu 2022-01-20 21:46:22 -08:00
MysterD
cc2324d35e Even more Lua improvements
Added support for structs: Surface, GraphNodeObject_sub, Animation
Generated lua wrapper functions for more functions in mario_actions_submerged.c
Fixed play_sound() wrapper to use a vec3f
Extended Moveset:
	ported wall slide and water ground pound
2022-01-20 18:02:12 -08:00
MysterD
68eff636d9 More Lua improvements, ported ACT_ROLL / ACT_ROLL_AIR from extended moveset 2022-01-18 01:48:51 -08:00
MysterD
1a47707be8 Initial LUA support - MarioState read/write 2022-01-16 08:51:29 -08:00
MysterD
a081327ef1 Add packet debug sync to make debugging sync ids easier 2021-08-25 18:02:30 -07:00
MysterD
1b5ceda89d Split luigi/custom character models into custom and zcustom 2021-08-15 01:06:25 -07:00
MysterD
d7b0945410 Added configurable player name, model, and palette 2021-08-02 22:33:38 -07:00
MysterD
4e0a3e3e57 Merge branch 'dev/djui' into dev/unstable 2021-07-22 20:38:21 -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
7e1a05a40b DJUI: Replaced old ingame menu with new DJUI menu 2021-07-15 19:37:09 -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
46f905f4a3 DJUI: Created popup system, re-added missing popup messages 2021-07-12 18:29:39 -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
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
e424b9f9f3 DJUI: Started adding inputbox 2021-06-29 19:04:23 -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
8b403d4509 DJUI: Added selectionbox 2021-06-26 14:20:39 -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
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
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
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
ef2287a5d5 Resynchronized checkerboard elevators to use area timer 2021-06-14 20:29:08 -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
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
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
843a8cd18f djoslin0's new warp code 2021-04-05 03:21:37 +03:00
MysterD
1564ac7c0f Translated Luigi sounds through new Character system 2020-10-16 23:33:41 -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
c0a30c8de6 Establish new versioning system (beta 1) 2020-10-11 15:49:24 -07:00
MysterD
edc275b5e8 Enhancements to networked player infrastructure 2020-10-10 01:18:45 -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
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
9401a79cdc Fix chat so remote is filled-in and local is non-filled-in star 2020-09-28 20:13:44 -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