diff options
-rw-r--r-- | CHANGELOG.md | 37 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | VERSION.yaml | 8 | ||||
-rw-r--r-- | src/game_data.cpp | 29 | ||||
-rw-r--r-- | src/game_data.h | 1 | ||||
-rw-r--r-- | src/version.h | 2 |
6 files changed, 44 insertions, 35 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f0fdc2..9f327ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -1,5 +1,42 @@ | |||
1 | # lingo-ap-tracker Releases | 1 | # lingo-ap-tracker Releases |
2 | 2 | ||
3 | ## v2.0.0 - 2025-04-01 | ||
4 | |||
5 | - Compatibility update for Archipelago 0.6.0. | ||
6 | |||
7 | Download: | ||
8 | [lingo-ap-tracker-v2.0.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v2.0.0-win64.zip)<br/> | ||
9 | Source: [v2.0.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v2.0.0) | ||
10 | |||
11 | ## v1.0.0 - 2025-03-21 | ||
12 | |||
13 | After almost two years of development, we have finally hit version 1! | ||
14 | |||
15 | - The subway map now uses Kinrah's updated map image, including fully separated | ||
16 | paintings for places like The Wondrous and Orange Tower Sixth Floor, as well | ||
17 | as indicators for the color items. | ||
18 | - Paintings have friendly names now instead of the internal game IDs. They are | ||
19 | also distinguished from regular checks by using an owl icon instead of an eye. | ||
20 | - The tracker is now able to read your solved panel state from the multiworld | ||
21 | (requires v5.3.0 of the client). This obsoletes save file parsing and | ||
22 | receiving panel solves by connecting to the game. | ||
23 | - Numerous optimizations to reachability detection and rendering. | ||
24 | - Added a pane that shows all items received, similar to the web tracker. | ||
25 | - Added a pane that shows your currently revealed painting mapping, as well as a | ||
26 | button that reveals it all immediately. | ||
27 | - Added a pane that shows your slot options. | ||
28 | - Postgame shuffle being disabled is handled properly now, and removed locations | ||
29 | are no longer shown. | ||
30 | - Improved support for high-DPI screens. The tracker should no longer appear | ||
31 | "blurry" on a high-DPI screen, and should also be able to react properly to | ||
32 | being moved between screens with different DPIs. | ||
33 | - The update checker is now able to download and install tracker updates in | ||
34 | place. | ||
35 | |||
36 | Download: | ||
37 | [lingo-ap-tracker-v1.0.0-win64.zip](https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v1.0.0-win64.zip)<br/> | ||
38 | Source: [v1.0.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v1.0.0) | ||
39 | |||
3 | ## v0.12.3 - 2025-03-03 | 40 | ## v0.12.3 - 2025-03-03 |
4 | 41 | ||
5 | - Fixed issue with non-ASCII connection details. | 42 | - Fixed issue with non-ASCII connection details. |
diff --git a/VERSION b/VERSION index 1af39b3..6eaf894 100644 --- a/VERSION +++ b/VERSION | |||
@@ -1 +1 @@ | |||
v0.12.3 \ No newline at end of file | v2.0.0 \ No newline at end of file | ||
diff --git a/VERSION.yaml b/VERSION.yaml index c4ad3ec..51a814d 100644 --- a/VERSION.yaml +++ b/VERSION.yaml | |||
@@ -1,8 +1,8 @@ | |||
1 | version: v0.12.3 | 1 | version: v2.0.0 |
2 | packages: | 2 | packages: |
3 | win64: | 3 | win64: |
4 | url: "https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v0.12.3-win64.zip" | 4 | url: "https://files.fourisland.com/releases/lingo-ap-tracker/lingo-ap-tracker-v2.0.0-win64.zip" |
5 | checksum: "0c0d8310d1ecae4f1b8de933661ba14f63aac011cd2b22947aff7085d997f0db" | 5 | checksum: "10ac1945493df38405e480477a6e1c9436c5f27c5281113d1bd0289352463601" |
6 | files: | 6 | files: |
7 | - fmt.dll | 7 | - fmt.dll |
8 | - jpeg62.dll | 8 | - jpeg62.dll |
@@ -20,7 +20,7 @@ packages: | |||
20 | - zlib1.dll | 20 | - zlib1.dll |
21 | - assets/areas.yaml | 21 | - assets/areas.yaml |
22 | - assets/checked.png | 22 | - assets/checked.png |
23 | # TODO: next release will contain the checked owl | 23 | - assets/checked_owl.png |
24 | - assets/ids.yaml | 24 | - assets/ids.yaml |
25 | - assets/lingo_map.png | 25 | - assets/lingo_map.png |
26 | - assets/LL1.yaml | 26 | - assets/LL1.yaml |
diff --git a/src/game_data.cpp b/src/game_data.cpp index 7ce1fb6..94b9888 100644 --- a/src/game_data.cpp +++ b/src/game_data.cpp | |||
@@ -29,7 +29,6 @@ struct GameData { | |||
29 | std::map<std::string, int> painting_by_id_; | 29 | std::map<std::string, int> painting_by_id_; |
30 | 30 | ||
31 | std::vector<int> door_definition_order_; | 31 | std::vector<int> door_definition_order_; |
32 | std::vector<int> room_definition_order_; | ||
33 | 32 | ||
34 | std::map<std::string, int> room_by_painting_; | 33 | std::map<std::string, int> room_by_painting_; |
35 | std::map<int, int> room_by_sunwarp_; | 34 | std::map<int, int> room_by_sunwarp_; |
@@ -92,7 +91,6 @@ struct GameData { | |||
92 | 91 | ||
93 | for (const auto &room_it : lingo_config) { | 92 | for (const auto &room_it : lingo_config) { |
94 | int room_id = AddOrGetRoom(room_it.first.as<std::string>()); | 93 | int room_id = AddOrGetRoom(room_it.first.as<std::string>()); |
95 | room_definition_order_.push_back(room_id); | ||
96 | 94 | ||
97 | for (const auto &entrance_it : room_it.second["entrances"]) { | 95 | for (const auto &entrance_it : room_it.second["entrances"]) { |
98 | int from_room_id = AddOrGetRoom(entrance_it.first.as<std::string>()); | 96 | int from_room_id = AddOrGetRoom(entrance_it.first.as<std::string>()); |
@@ -780,31 +778,6 @@ struct GameData { | |||
780 | } | 778 | } |
781 | } | 779 | } |
782 | 780 | ||
783 | // As a workaround for a generator bug in 0.5.1, we are going to remove the | ||
784 | // panel door requirement on panels that are defined earlier in the file than | ||
785 | // the panel door is. This results in logic that matches the generator, even | ||
786 | // if it is not true to how the game should work. This will be reverted once | ||
787 | // the logic bug is fixed and released. | ||
788 | // See: https://github.com/ArchipelagoMW/Archipelago/pull/4342 | ||
789 | for (Panel& panel : panels_) { | ||
790 | if (panel.panel_door == -1) { | ||
791 | continue; | ||
792 | } | ||
793 | const PanelDoor &panel_door = panel_doors_[panel.panel_door]; | ||
794 | for (int room_id : room_definition_order_) { | ||
795 | if (room_id == panel_door.room) { | ||
796 | // The panel door was defined first (or at the same time as the panel), | ||
797 | // so we're good. | ||
798 | break; | ||
799 | } else if (room_id == panel.room) { | ||
800 | // The panel was defined first, so we have to pretend the panel door is | ||
801 | // not required for this panel. | ||
802 | panel.panel_door = -1; | ||
803 | break; | ||
804 | } | ||
805 | } | ||
806 | } | ||
807 | |||
808 | // Report errors. | 781 | // Report errors. |
809 | for (const std::string &area : malconfigured_areas_) { | 782 | for (const std::string &area : malconfigured_areas_) { |
810 | TrackerLog(fmt::format("Area data not found for: {}", area)); | 783 | TrackerLog(fmt::format("Area data not found for: {}", area)); |
@@ -937,7 +910,7 @@ struct GameData { | |||
937 | if (!panel_doors_by_id_.count(full_name)) { | 910 | if (!panel_doors_by_id_.count(full_name)) { |
938 | int panel_door_id = panel_doors_.size(); | 911 | int panel_door_id = panel_doors_.size(); |
939 | panel_doors_by_id_[full_name] = panel_door_id; | 912 | panel_doors_by_id_[full_name] = panel_door_id; |
940 | panel_doors_.push_back({.room = AddOrGetRoom(room)}); | 913 | panel_doors_.push_back({}); |
941 | } | 914 | } |
942 | 915 | ||
943 | return panel_doors_by_id_[full_name]; | 916 | return panel_doors_by_id_[full_name]; |
diff --git a/src/game_data.h b/src/game_data.h index 44084d9..ac911e5 100644 --- a/src/game_data.h +++ b/src/game_data.h | |||
@@ -86,7 +86,6 @@ struct Door { | |||
86 | }; | 86 | }; |
87 | 87 | ||
88 | struct PanelDoor { | 88 | struct PanelDoor { |
89 | int room; | ||
90 | int ap_item_id = -1; | 89 | int ap_item_id = -1; |
91 | int group_ap_item_id = -1; | 90 | int group_ap_item_id = -1; |
92 | std::vector<ProgressiveRequirement> progressives; | 91 | std::vector<ProgressiveRequirement> progressives; |
diff --git a/src/version.h b/src/version.h index 544d563..8443efb 100644 --- a/src/version.h +++ b/src/version.h | |||
@@ -36,6 +36,6 @@ struct Version { | |||
36 | } | 36 | } |
37 | }; | 37 | }; |
38 | 38 | ||
39 | constexpr const Version kTrackerVersion = Version(1, 0, 0); | 39 | constexpr const Version kTrackerVersion = Version(2, 0, 0); |
40 | 40 | ||
41 | #endif /* end of include guard: VERSION_H_C757E53C */ \ No newline at end of file | 41 | #endif /* end of include guard: VERSION_H_C757E53C */ \ No newline at end of file |