diff --git a/src/game/behaviors/bouncing_fireball.inc.c b/src/game/behaviors/bouncing_fireball.inc.c index 9df5b0ec..4c0ed1d8 100644 --- a/src/game/behaviors/bouncing_fireball.inc.c +++ b/src/game/behaviors/bouncing_fireball.inc.c @@ -27,9 +27,15 @@ void bhv_bouncing_fireball_flame_loop(void) { o->oInteractStatus = 0; } +void bhv_bouncing_fireball_override_ownership(u8* shouldOverride, u8* shouldOwn) { + *shouldOverride = TRUE; + *shouldOwn = (get_network_player_smallest_global() == gNetworkPlayerLocal); +} + void bhv_bouncing_fireball_loop(void) { if (!network_sync_object_initialized(o)) { - network_init_object(o, SYNC_DISTANCE_ONLY_EVENTS); + struct SyncObject* so = network_init_object(o, SYNC_DISTANCE_ONLY_EVENTS); + so->override_ownership = bhv_bouncing_fireball_override_ownership; network_init_object_field(o, &o->oAction); network_init_object_field(o, &o->oPrevAction); network_init_object_field(o, &o->oTimer);