diff --git a/src/game/interaction.c b/src/game/interaction.c index 985bb8cb..2ed9e9be 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -138,7 +138,7 @@ static u32 sBackwardKnockbackActions[][3] = { static u8 sDisplayingDoorText = FALSE; static u8 sJustTeleported = FALSE; -static u8 sPssSlideStarted = FALSE; +u8 gPssSlideStarted = FALSE; /** * Returns the type of hat Mario is wearing. @@ -2143,13 +2143,13 @@ void pss_begin_slide(UNUSED struct MarioState *m) { if (!(gHudDisplay.flags & HUD_DISPLAY_FLAG_TIMER)) { level_control_timer(TIMER_CONTROL_SHOW); level_control_timer(TIMER_CONTROL_START); - sPssSlideStarted = TRUE; + gPssSlideStarted = TRUE; } } void pss_end_slide(struct MarioState *m) { //! This flag isn't set on death or level entry, allowing double star spawn - if (sPssSlideStarted) { + if (gPssSlideStarted) { u16 slideTime = level_control_timer(TIMER_CONTROL_STOP); if (slideTime < 630) { // PSS secret star uses oBehParams to spawn @@ -2158,7 +2158,7 @@ void pss_end_slide(struct MarioState *m) { spawn_default_star(-6358.0f, -4300.0f, 4700.0f); m->marioObj->oBehParams = tmp; } - sPssSlideStarted = FALSE; + gPssSlideStarted = FALSE; } } diff --git a/src/game/interaction.h b/src/game/interaction.h index 82fc66a3..2cca7925 100644 --- a/src/game/interaction.h +++ b/src/game/interaction.h @@ -97,6 +97,7 @@ #define INT_STATUS_STOP_RIDING (1 << 22) /* 0x00400000 */ #define INT_STATUS_TOUCHED_BOB_OMB (1 << 23) /* 0x00800000 */ +extern u8 gPssSlideStarted; s16 mario_obj_angle_to_object(struct MarioState *m, struct Object *o); void mario_stop_riding_object(struct MarioState *m); diff --git a/src/pc/network/packets/packet_location_request.c b/src/pc/network/packets/packet_location_request.c index 1feb972c..6bcd6e74 100644 --- a/src/pc/network/packets/packet_location_request.c +++ b/src/pc/network/packets/packet_location_request.c @@ -3,9 +3,11 @@ #include "menu/custom_menu_system.h" #include "game/interaction.h" #include "game/object_list_processor.h" +#include "game/object_helpers.h" +#include "game/interaction.h" +#include "game/level_update.h" #include "object_constants.h" #include "object_fields.h" -#include "game/object_helpers.h" #include "behavior_table.h" #include "model_ids.h" //#define DISABLE_MODULE_LOG 1 @@ -183,7 +185,10 @@ void network_send_location_response(u8 destGlobalIndex) { packet_write(&p, &gCurrLevelNum, sizeof(s16)); packet_write(&p, &gCurrAreaIndex, sizeof(s16)); + // level variables packet_write(&p, &gMarioStates[0].numCoins, sizeof(s16)); + packet_write(&p, &gPssSlideStarted, sizeof(u8)); + packet_write(&p, &gHudDisplay.timer, sizeof(u16)); // static spawn removal packet_write(&p, &sStaticSpawnRemovalIndex, sizeof(u8)); @@ -276,6 +281,17 @@ void network_receive_location_response(struct Packet* p) { s16 numCoins; packet_read(p, &numCoins, sizeof(s16)); + u8 pssSlideStarted; + u16 hudDisplayTimer; + packet_read(p, &pssSlideStarted, sizeof(u8)); + packet_read(p, &hudDisplayTimer, sizeof(u16)); + if (pssSlideStarted) { + level_control_timer(TIMER_CONTROL_SHOW); + level_control_timer(TIMER_CONTROL_START); + gPssSlideStarted = TRUE; + gHudDisplay.timer = hudDisplayTimer; + } + u8 staticSpawnRemovals; static_spawn_removal_clear(); diff --git a/src/pc/network/packets/packet_reservation.c b/src/pc/network/packets/packet_reservation.c index a89660d1..1b50f5bc 100644 --- a/src/pc/network/packets/packet_reservation.c +++ b/src/pc/network/packets/packet_reservation.c @@ -9,7 +9,7 @@ #define DISABLE_MODULE_LOG 1 #include "pc/debuglog.h" -#define RESERVATION_COUNT 10 +#define RESERVATION_COUNT 5 void network_send_reservation_request(void) { assert(gNetworkType == NT_CLIENT);