Cheaper lines (and single lines)
This commit is contained in:
parent
97a5e453ad
commit
7486b68ec3
3 changed files with 23 additions and 1 deletions
|
@ -14,6 +14,8 @@ struct App{
|
|||
std::vector<User*> people_online;
|
||||
libwebsocket * uberclient{nullptr};
|
||||
|
||||
std::vector<AbstractLine> lines;
|
||||
|
||||
simu_type sim;
|
||||
beat_type beat;
|
||||
|
||||
|
@ -29,6 +31,7 @@ struct App{
|
|||
}
|
||||
|
||||
void add_line(AbstractLine const & line){
|
||||
lines.push_back(line);
|
||||
for(auto & l : line.calculate_lines()){
|
||||
sim.lines.push_back(l);
|
||||
}
|
||||
|
|
|
@ -85,3 +85,22 @@ BOOST_FUSION_ADAPT_STRUCT(
|
|||
(IntVec2, position)
|
||||
(ball_info, information)
|
||||
)
|
||||
|
||||
struct cheap_line_type {
|
||||
IntVec2 starting_point;
|
||||
IntVec2 end_point;
|
||||
int line_kind;
|
||||
|
||||
cheap_line_type(AbstractLine const & l)
|
||||
: starting_point(l.starting_point)
|
||||
, end_point(l.end_point)
|
||||
, line_kind(l.line_kind)
|
||||
{}
|
||||
};
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
cheap_line_type,
|
||||
(IntVec2, starting_point)
|
||||
(IntVec2, end_point)
|
||||
(int, line_kind)
|
||||
)
|
||||
|
|
|
@ -32,7 +32,7 @@ websockets::TestProtocol<User> default_protocol{
|
|||
js::Object ret;
|
||||
ret["balls"] = vector_to_json(app->sim.balls, [](ball_type const & b){return cheap_ball_type(b);});
|
||||
if(user.update_lines){
|
||||
ret["lines"] = vector_to_json(app->sim.lines);
|
||||
ret["lines"] = vector_to_json(app->lines, [](AbstractLine const & l){return cheap_line_type(l);});
|
||||
user.update_lines = false;
|
||||
}
|
||||
return write_json(ret);
|
||||
|
|
Reference in a new issue