diff --git a/src/game/behaviors/exclamation_box.inc.c b/src/game/behaviors/exclamation_box.inc.c index 9e861e75..e9821a68 100644 --- a/src/game/behaviors/exclamation_box.inc.c +++ b/src/game/behaviors/exclamation_box.inc.c @@ -12,6 +12,7 @@ struct ObjectHitbox sExclamationBoxHitbox = { /* hurtboxHeight: */ 30, }; +// hack: if any other sync objects get added here we have to check for them (search for hack in this file) struct Struct802C0DF0 sExclamationBoxContents[] = { { 0, 0, 0, MODEL_MARIOS_WING_CAP, bhvWingCap }, { 1, 0, 0, MODEL_MARIOS_METAL_CAP, bhvMetalCap }, { 2, 0, 0, MODEL_MARIOS_CAP, bhvVanishCap }, @@ -132,6 +133,10 @@ void exclamation_box_spawn_contents(struct Struct802C0DF0 *a0, u8 a1) { // send non-star spawn events // stars cant be sent here to due jankiness in oBehParams if (a0->behavior != bhvSpawnedStar) { + // hack: if any other sync objects get spawned here we have to check for them + if (a0->behavior == bhvKoopaShell) { + network_set_sync_id(sp1C); + } struct Object* spawn_objects[] = { sp1C }; u32 models[] = { a0->model }; network_send_spawn_objects(spawn_objects, models, 1); diff --git a/src/game/interaction.c b/src/game/interaction.c index 083a2ae6..3b3a051d 100644 --- a/src/game/interaction.c +++ b/src/game/interaction.c @@ -295,7 +295,10 @@ u32 attack_object(struct Object *o, s32 interaction) { void mario_stop_riding_object(struct MarioState *m) { if (m->riddenObj != NULL && m->playerIndex == 0) { m->riddenObj->oInteractStatus = INT_STATUS_STOP_RIDING; - if (m->playerIndex == 0) { stop_shell_music(); } + if (m->riddenObj->oSyncID != 0) { + network_send_object_reliability(m->riddenObj, TRUE); + } + stop_shell_music(); m->riddenObj = NULL; } }