From 525ef6db17309acc2fb71c43e62ed94688e154d6 Mon Sep 17 00:00:00 2001 From: MysterD Date: Thu, 1 Oct 2020 23:11:16 -0700 Subject: [PATCH] Synchronized castle water drain pillars --- src/game/behaviors/water_pillar.inc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/game/behaviors/water_pillar.inc.c b/src/game/behaviors/water_pillar.inc.c index 0ea6d51a..5eee4deb 100644 --- a/src/game/behaviors/water_pillar.inc.c +++ b/src/game/behaviors/water_pillar.inc.c @@ -7,6 +7,7 @@ void water_level_pillar_undrained(void) { if (cur_obj_is_mario_ground_pounding_platform()) { o->oAction++; spawn_mist_particles(); + network_send_object(o); } break; case 1: @@ -57,9 +58,20 @@ void water_level_pillar_drained(void) { } } +static u8 bhv_water_level_pillar_ignore_if_true(void) { + return (o->oWaterLevelPillarUnkF8) || (o->oAction != 0); +} + void bhv_water_level_pillar_init(void) { if (save_file_get_flags() & SAVE_FLAG_MOAT_DRAINED) o->oWaterLevelPillarUnkF8 = 1; + + struct SyncObject* so = network_init_object(o, SYNC_DISTANCE_ONLY_EVENTS); + so->ignore_if_true = bhv_water_level_pillar_ignore_if_true; + network_init_object_field(o, &o->oAction); + network_init_object_field(o, &o->oPrevAction); + network_init_object_field(o, &o->oTimer); + network_init_object_field(o, &o->oWaterLevelPillarUnkF8); } void bhv_water_level_pillar_loop(void) {