From a4ef07ef3fec7590c698f77248660aaf908b7f26 Mon Sep 17 00:00:00 2001 From: Joshua Moerman Date: Tue, 9 Apr 2013 11:16:57 +0200 Subject: [PATCH] Only updates lines when changed --- src/app.h | 3 +++ src/basics.h | 1 + src/main.cpp | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/app.h b/src/app.h index 20977a5..32392e6 100644 --- a/src/app.h +++ b/src/app.h @@ -94,6 +94,9 @@ struct App{ for(auto & l : line.calculate_lines()){ sim.lines.push_back(l); } + for(auto & u : people_online){ + u->update_lines = true; + } } void login(User& user){ diff --git a/src/basics.h b/src/basics.h index c7baa29..41223d6 100644 --- a/src/basics.h +++ b/src/basics.h @@ -28,6 +28,7 @@ struct User { unsigned int index{0}; std::string name{"Unknown guest"}; + bool update_lines{true}; Size size{0,0}; Position position{0,0}; diff --git a/src/main.cpp b/src/main.cpp index f6c5ba3..16f3a09 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,7 +31,10 @@ websockets::TestProtocol default_protocol{ [](User& user, basic_websocket_info) -> std::string{ js::Object ret; ret["balls"] = vector_to_json(app->sim.balls); - ret["lines"] = vector_to_json(app->sim.lines); + if(user.update_lines){ + ret["lines"] = vector_to_json(app->sim.lines); + user.update_lines = false; + } return write_json(ret); }, // receive