home · contact · privacy
Optimize send_gamestate, don't send any invisible state changes.
[plomrogue2] / rogue_chat.html
index f47cf129c70bd522f7ae4f84e0e96c6ca350e405..0ba8cf08875d23c9c6d452087bc8e0913353b998 100644 (file)
@@ -480,6 +480,10 @@ let server = {
         if (tokens[0] === 'TURN') {
             game.turn_complete = false;
             game.turn = parseInt(tokens[1]);
+        } else if (tokens[0] === 'PSEUDO_FOV_WIPE') {
+            game.portals_new = {};
+            explorer.annotations_new = {};
+            game.things_new = [];
         } else if (tokens[0] === 'THING') {
             let t = game.get_thing_temp(tokens[4], true);
             t.position = parser.parse_yx(tokens[1]);
@@ -517,7 +521,6 @@ let server = {
             game.terrains[tokens[1]] = tokens[2]
         } else if (tokens[0] === 'MAP') {
             game.map_geometry_new = tokens[1];
-            tui.init_keys();
             game.map_size_new = parser.parse_yx(tokens[2]);
             game.map_new = tokens[3]
         } else if (tokens[0] === 'FOV') {
@@ -525,19 +528,17 @@ let server = {
         } else if (tokens[0] === 'MAP_CONTROL') {
             game.map_control_new = tokens[1]
         } else if (tokens[0] === 'GAME_STATE_COMPLETE') {
-            game.turn_complete = true;
             game.portals = game.portals_new;
-            game.portals_new = {};
             game.map_geometry = game.map_geometry_new;
             game.map_size = game.map_size_new;
             game.map = game.map_new;
+            tui.init_keys();
             game.map_control = game.map_control_new;
             explorer.annotations = explorer.annotations_new;
-            explorer.annotations_new = {};
             explorer.info_cached = false;
             game.things = game.things_new;
-            game.things_new = [];
             game.player = game.things[game.player_id];
+            game.turn_complete = true;
             if (tui.mode.name == 'post_login_wait') {
                 tui.switch_mode('play');
             } else {