From b77604b28ca0219c145e67ba5cddae7880905bbd Mon Sep 17 00:00:00 2001 From: Sara Date: Wed, 22 Oct 2025 15:33:23 +0200 Subject: [PATCH] fix: client node now updates new server on connect --- modules/you_done_it/client_node.cpp | 19 +++++++++++++++++-- modules/you_done_it/client_node.h | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/you_done_it/client_node.cpp b/modules/you_done_it/client_node.cpp index e61d6fec..4726dbb8 100644 --- a/modules/you_done_it/client_node.cpp +++ b/modules/you_done_it/client_node.cpp @@ -1,6 +1,8 @@ #include "client_node.h" -#include "ydi_client.h" -#include +#include "core/config/engine.h" +#include "you_done_it/clue_data.h" +#include "you_done_it/clue_db.h" +#include "you_done_it/ydi_client.h" ClientNode *ClientNode::singleton_instance{ nullptr }; String const ClientNode::sig_connection_changed{ "connection_changed" }; @@ -25,6 +27,9 @@ void ClientNode::process() { if (new_status != this->state) { this->state = new_status; emit_signal(sig_connection_changed, new_status); + if (new_status == NetworkData::CONNECTION_AUTHENTICATED) { + reveal_backlog(); + } } } @@ -35,6 +40,16 @@ void ClientNode::exit_tree() { } } +void ClientNode::reveal_backlog() { + Ref db{ ClueDB::get_singleton() }; + for (int i{ 0 }; i < NetworkData::CLUE_MAX; ++i) { + Ref data{ db->get_clue((NetworkData::ClueID)i) }; + if (data.is_valid() && data->get_revealed()) { + ydi::client::send::reveal_clue(data->get_id()); + } + } +} + void ClientNode::_notification(int what) { if (Engine::get_singleton()->is_editor_hint()) { return; diff --git a/modules/you_done_it/client_node.h b/modules/you_done_it/client_node.h index 983c764b..717a1362 100644 --- a/modules/you_done_it/client_node.h +++ b/modules/you_done_it/client_node.h @@ -10,6 +10,7 @@ class ClientNode : Node { void enter_tree(); void process(); void exit_tree(); + void reveal_backlog(); protected: void _notification(int what);