Skip to content

Commit 0faa228

Browse files
committed
fix(client): node selector and lobby status
1 parent 3f59297 commit 0faa228

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

client/src/scenes/lobby.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@ void SceneLobby::OnCreate() {
3838
}
3939

4040
void SceneLobby::OnActivate() {
41-
if (status_ == LobbyStatus::kIn) {
42-
return managers_.scenes->GoToScene<SceneGame>();
43-
}
4441
WaitAsync();
4542
}
4643

@@ -138,3 +135,12 @@ void SceneLobby::UpdateStatusText() {
138135
return;
139136
}
140137
}
138+
void SceneLobby::OnDeactivate() {
139+
if (joiningThread_ && joiningThread_->joinable()) {
140+
joiningThread_->join();
141+
}
142+
joiningThread_.reset();
143+
status_ = LobbyStatus::kNone;
144+
mainMessage_ = "";
145+
secondaryMessage_ = "";
146+
}

client/src/scenes/lobby.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class SceneLobby final : public SceneBase {
3232

3333
void OnActivate() override;
3434

35+
void OnDeactivate() override;
36+
3537
private:
3638
/**
3739
* @brief Create the title

client/src/scenes/start/start.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,13 +237,14 @@ void SceneStart::CreateBackButton() {
237237
}
238238

239239
void SceneStart::UpdateSelects() {
240-
if (roomsService_->GetLastRefreshTime() <= lastRefreshTime_) {
240+
auto last_node_id = selectedNode_;
241+
UpdateSelectedNode();
242+
if (roomsService_->GetLastRefreshTime() <= lastRefreshTime_ && last_node_id == selectedNode_) {
241243
return;
242244
}
243245
lastRefreshTime_ = roomsService_->GetLastRefreshTime();
244246
auto rooms = roomsService_->GetRooms();
245247
Select::Update(registry_, GetNodeSelectProps(rooms));
246-
UpdateSelectedNode();
247248
Select::Update(registry_, GetRoomsSelectProps(rooms, selectedNode_));
248249
}
249250

client/src/scenes/start/start.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,5 +139,8 @@ class SceneStart final : public SceneBase {
139139

140140
/// @Selected node
141141
std::optional<services::RoomsService::NodeIdType> selectedNode_;
142+
143+
/// @Last selected node
144+
std::optional<std::string> lastSelectedNodeStrId_;
142145
};
143146
} // namespace rtype::client::scenes

0 commit comments

Comments
 (0)