Commit Graph

65 Commits (b3ed387711af6997180bd5e012d38fefb80873cf)

Author SHA1 Message Date
MysterD 1131fb02db Prevented SM64 hang on object count overflow 2022-02-22 01:10:17 -08:00
MysterD 69fb69dfce Fix bugs/warnings from static analysis 2022-02-20 20:04:25 -08:00
Prince Frizzy 32b0c91935
Fixes for Refresh 12 2022-02-19 01:39:38 -05:00
MysterD 265d23892b Fixed crash in star seleciton 2022-02-15 22:03:17 -08:00
MysterD d7d26639a8 Prevented controllers from clearing, fixes movement animations 2021-08-29 14:57:40 -07:00
MysterD 7294e127f5 Fixed over 100 code warnings 2021-08-19 18:16:16 -07:00
MysterD a2546055b2 Delay the display of the join text in star selection screen 2021-08-03 23:44:57 -07:00
MysterD 733217a07a Removed old custom menu system 2021-07-01 21:27:57 -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 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 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
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
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
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
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 040aa92fd1 Prevent people from hosting a discord game when discord fails 2020-10-14 21:17:28 -07:00
MysterD 7bf2ebd7e8 Made version mismatch screen more descriptive 2020-10-11 18:26:10 -07:00
MysterD c0a30c8de6 Establish new versioning system (beta 1) 2020-10-11 15:49:24 -07:00
MysterD 2fb2fc81e1 Add THI to supported levels 2020-10-08 23:38:43 -07:00
MysterD e4c1640c56 Change disclaimer 2020-10-08 21:03:35 -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 9e2b28008b Add BITFS to supported levels 2020-10-03 00:21:47 -07:00
djoslin0 8d5d79809b
Merge pull request #67 from anzz1/patch-1
Custom menu improvements
2020-09-23 00:14:05 -07:00
MysterD 5c2673f5af Change main menu disclaimer 2020-09-22 22:09:05 -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 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 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 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 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 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 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 42777fbe8f Changed text on level select screen 2020-09-08 17:33:03 -07:00
MysterD c12380aff4 Make inside-and-outside painting transition quicker over network 2020-09-08 09:50:34 -07:00
MysterD 975c68ae1e Fix join issue when compiling without DEBUG 2020-09-06 12:46:02 -07:00
MysterD b9750057d5 General network code clean up
Marked globals, rearranged functions, added comments
2020-09-06 11:02:41 -07:00
MysterD bed036bcfb Added coop settings to saved config file
Saves and loads last join IP/port attempt
Made host's port configurable in config file
Made host's save slot configurable in config file
Made host's player interaction setting configurable in config file

Indicated when the client was trying to connect on the join menu.
Fixed join menu display error where the port would disappear
2020-09-06 03:32:34 -07:00
MysterD 7f1a5573aa Add disclaimers to main menu 2020-09-05 21:12:49 -07:00
MysterD 4a2c218f11 Synchronized save files
Now when a client joins, it will request the entire 512 byte EEPROM from
the server and refuse to continue until the server replies with the
contents. Then the client will override all reads and writes to the
EEPROM/save file. Thus, a client will never overwrite their local save.

Fixes #21
2020-09-04 15:07:32 -07:00
MysterD d5005c9f37 Served time for crimes against C
Due to my compile & launch scripts, I was silently ignoring warnings
this whole time. I've fixed my process, and gone back to fixed all of
the warnings I could (even outside of my code).
2020-09-04 01:58:54 -07:00
MysterD 68ad6bc15c Added host/join in-game GUI
Now people aren't forced to launch with command-line parameters,
instead they can host or join a server by selecting buttons in
the main menu.
2020-09-03 18:30:15 -07:00