diff --git a/MultiServer.py b/MultiServer.py
index 577dbf7f..2addd9c7 100644
--- a/MultiServer.py
+++ b/MultiServer.py
@@ -199,7 +199,8 @@ class Context(Node):
"rom_names": list(self.rom_names.items()),
"received_items": tuple((k, v) for k, v in self.received_items.items()),
"hints_used": tuple((key, value) for key, value in self.hints_used.items()),
- "hints": tuple((key, list(value)) for key, value in self.hints.items()),
+ "hints": tuple(
+ (key, list(hint.re_check(self, key[0]) for hint in value)) for key, value in self.hints.items()),
"location_checks": tuple((key, tuple(value)) for key, value in self.location_checks.items()),
"name_aliases": tuple((key, value) for key, value in self.name_aliases.items()),
"client_game_state": tuple((key, value) for key, value in self.client_game_state.items()),
diff --git a/WebHostLib/templates/tracker.html b/WebHostLib/templates/tracker.html
index 890c8528..373902a3 100644
--- a/WebHostLib/templates/tracker.html
+++ b/WebHostLib/templates/tracker.html
@@ -7,9 +7,9 @@
{% endblock %}
{% block body %}
-
+
{% endfor %}
+ {% for team, hints in hints.items() %}
+ {% if hints %}
+
+
+
+
+ Finder |
+ Receiver |
+ Item |
+ Location |
+ Entrance |
+ Found |
+
+
+
+ {%- for hint in hints -%}
+
+ {{ player_names[team, hint.finding_player] }} |
+ {{ player_names[team, hint.receiving_player] }} |
+ {{ hint.item|item_name }} |
+ {{ hint.location|location_name }} |
+ {% if hint.entrance %}{{ hint.entrance }}{% else %}Vanilla{% endif %} |
+ {% if hint.found %}✔{% endif %} |
+
+ {%- endfor -%}
+
+
+
+ {% endif %}
+ {% endfor %}
{% endblock %}
diff --git a/WebHostLib/tracker.py b/WebHostLib/tracker.py
index cdbea5f0..00370d2c 100644
--- a/WebHostLib/tracker.py
+++ b/WebHostLib/tracker.py
@@ -7,13 +7,18 @@ import logging
from uuid import UUID
import Items
+import Regions
from WebHostLib import app, cache, Room
+from Utils import Hint
def get_id(item_name):
return Items.item_table[item_name][3]
+app.jinja_env.filters["location_name"] = lambda location: Regions.lookup_id_to_name.get(location, location)
+app.jinja_env.filters['item_name'] = lambda id: Items.lookup_id_to_name.get(id, id)
+
icons = {
"Progressive Sword":
r"https://gamepedia.cursecdn.com/zelda_gamepedia_en/c/cc/ALttP_Master_Sword_Sprite.png?version=55869db2a20e157cd3b5c8f556097725",
@@ -263,6 +268,10 @@ def get_tracker(tracker: UUID):
for playernumber in range(1, len(team) + 1)}
for teamnumber, team in enumerate(names)}
precollected_items = room.seed.multidata.get("precollected_items", None)
+ hints = {team: set() for team in range(len(names))}
+ for key, hintdata in room.multisave["hints"]:
+ for hint in hintdata:
+ hints[key[0]].add(Hint(*hint))
for (team, player), locations_checked in room.multisave.get("location_checks", {}):
if precollected_items:
@@ -302,4 +311,5 @@ def get_tracker(tracker: UUID):
multi_items=multi_items, checks_done=checks_done, ordered_areas=ordered_areas,
checks_in_area=checks_in_area, activity_timers=activity_timers,
key_locations=key_locations, small_key_ids=small_key_ids, big_key_ids=big_key_ids,
- video=video, big_key_locations = key_locations if use_door_tracker else big_key_locations)
+ video=video, big_key_locations=key_locations if use_door_tracker else big_key_locations,
+ hints=hints)