diff --git a/src/pc/djui/djui_panel_host_message.c b/src/pc/djui/djui_panel_host_message.c index 092bb68b0..ccb05ed98 100644 --- a/src/pc/djui/djui_panel_host_message.c +++ b/src/pc/djui/djui_panel_host_message.c @@ -2,6 +2,7 @@ #include "djui.h" #include "djui_panel.h" #include "djui_panel_menu.h" +#include "djui_panel_modlist.h" #include "pc/network/network.h" #include "pc/utils/misc.h" #include "pc/configfile.h" @@ -28,6 +29,11 @@ void djui_panel_do_host(bool reconnecting, bool playSound) { network_set_system(configNetworkSystem); network_init(NT_SERVER, reconnecting); + djui_panel_modlist_create(NULL); + fake_lvl_init_from_save_file(); + + extern s16 gChangeLevelTransition; + gChangeLevelTransition = gLevelValues.entryLevel; if (gMarioState->marioObj) vec3f_copy(gMarioState->marioObj->header.gfx.cameraToObject, gGlobalSoundSource); if (playSound) { gDelayedInitSound = CHAR_SOUND_OKEY_DOKEY; } diff --git a/src/pc/network/network.c b/src/pc/network/network.c index bad063917..3ba110a69 100644 --- a/src/pc/network/network.c +++ b/src/pc/network/network.c @@ -11,7 +11,6 @@ #include "pc/configfile.h" #include "pc/djui/djui.h" #include "pc/djui/djui_panel.h" -#include "pc/djui/djui_panel_modlist.h" #include "pc/djui/djui_hud_utils.h" #include "pc/djui/djui_panel_main.h" #include "pc/utils/misc.h" @@ -159,26 +158,24 @@ bool network_init(enum NetworkType inNetworkType, bool reconnecting) { gNetworkType = inNetworkType; if (gNetworkType == NT_SERVER) { - extern u8* gOverrideEeprom; - gOverrideEeprom = NULL; - extern s16 gCurrSaveFileNum; gCurrSaveFileNum = configHostSaveSlot; - network_player_connected(NPT_LOCAL, 0, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id()); - - djui_chat_box_create(); - djui_panel_shutdown(); - - fake_lvl_init_from_save_file(); - mods_activate(&gLocalMods); - djui_panel_modlist_create(NULL); smlua_init(); + dynos_behavior_hook_all_custom_behaviors(); - extern s16 gChangeLevelTransition; - gChangeLevelTransition = gLevelValues.entryLevel; + network_player_connected(NPT_LOCAL, 0, configPlayerModel, &configPlayerPalette, configPlayerName, get_local_discord_id()); + extern u8* gOverrideEeprom; + gOverrideEeprom = NULL; + + if (gCurrLevelNum != (s16)gLevelValues.entryLevel) { + extern s16 gChangeLevelTransition; + gChangeLevelTransition = gLevelValues.entryLevel; + } + + djui_chat_box_create(); } configfile_save(configfile_name()); diff --git a/src/pc/network/packets/packet_join.c b/src/pc/network/packets/packet_join.c index 7b314a542..0f1602352 100644 --- a/src/pc/network/packets/packet_join.c +++ b/src/pc/network/packets/packet_join.c @@ -15,6 +15,7 @@ #include "pc/djui/djui.h" #include "pc/djui/djui_panel.h" #include "pc/djui/djui_panel_modlist.h" +#include "pc/djui/djui_panel_playerlist.h" #include "pc/djui/djui_panel_menu.h" #include "pc/djui/djui_panel_join_message.h" #include "pc/utils/string_builder.h"