diff options
Diffstat (limited to 'Archipelago/client.gd')
-rw-r--r-- | Archipelago/client.gd | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/Archipelago/client.gd b/Archipelago/client.gd index a18f528..d3d5053 100644 --- a/Archipelago/client.gd +++ b/Archipelago/client.gd | |||
@@ -141,7 +141,8 @@ var _held_synced_panels = [] | |||
141 | var _solved_panels = [] | 141 | var _solved_panels = [] |
142 | 142 | ||
143 | var _panelsBySolveIndex = {} | 143 | var _panelsBySolveIndex = {} |
144 | const kPANEL_BITFIELDS = 13 # 802 / 64 | 144 | const kPANEL_BITFIELDS = 17 # 800 / 48 |
145 | const kPANEL_BITFIELD_LENGTH = 48 | ||
145 | 146 | ||
146 | signal could_not_connect | 147 | signal could_not_connect |
147 | signal connect_status | 148 | signal connect_status |
@@ -579,9 +580,9 @@ func _on_data(): | |||
579 | elif message["key"].begins_with("Lingo_%d_Panels_" % _slot): | 580 | elif message["key"].begins_with("Lingo_%d_Panels_" % _slot): |
580 | var key_index = int(message["key"].substr(("Lingo_%d_Panels_" % _slot).length())) | 581 | var key_index = int(message["key"].substr(("Lingo_%d_Panels_" % _slot).length())) |
581 | var field_value = int(message["value"]) | 582 | var field_value = int(message["value"]) |
582 | for k in range(0, 64): | 583 | for k in range(0, kPANEL_BITFIELD_LENGTH): |
583 | if field_value & (1 << k) != 0: | 584 | if field_value & (1 << k) != 0: |
584 | var panel_index = key_index * 64 + k | 585 | var panel_index = key_index * kPANEL_BITFIELD_LENGTH + k |
585 | syncSolvedPanel(panel_index) | 586 | syncSolvedPanel(panel_index) |
586 | 587 | ||
587 | elif cmd == "Retrieved": | 588 | elif cmd == "Retrieved": |
@@ -807,8 +808,8 @@ func mapFinishedLoading(): | |||
807 | panel_data.append(0) | 808 | panel_data.append(0) |
808 | 809 | ||
809 | for panel_index in _held_panels: | 810 | for panel_index in _held_panels: |
810 | var key_index = panel_index / 64 | 811 | var key_index = panel_index / kPANEL_BITFIELD_LENGTH |
811 | var field_slot = panel_index % 64 | 812 | var field_slot = panel_index % kPANEL_BITFIELD_LENGTH |
812 | panel_data[key_index] = panel_data[key_index] | (1 << field_slot) | 813 | panel_data[key_index] = panel_data[key_index] | (1 << field_slot) |
813 | 814 | ||
814 | for k in range(0, kPANEL_BITFIELDS): | 815 | for k in range(0, kPANEL_BITFIELDS): |
@@ -1021,8 +1022,8 @@ func solvePanel(panel_index): | |||
1021 | _solved_panels.append(panel_index) | 1022 | _solved_panels.append(panel_index) |
1022 | 1023 | ||
1023 | if _map_loaded: | 1024 | if _map_loaded: |
1024 | var key_index = panel_index / 64 | 1025 | var key_index = panel_index / kPANEL_BITFIELD_LENGTH |
1025 | var field_slot = panel_index % 64 | 1026 | var field_slot = panel_index % kPANEL_BITFIELD_LENGTH |
1026 | setValue("Panels_%d" % key_index, 1 << field_slot, "or") | 1027 | setValue("Panels_%d" % key_index, 1 << field_slot, "or") |
1027 | else: | 1028 | else: |
1028 | _held_panels.append(panel_index) | 1029 | _held_panels.append(panel_index) |