about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md37
-rw-r--r--VERSION2
-rw-r--r--VERSION.yaml8
-rw-r--r--src/game_data.cpp29
-rw-r--r--src/game_data.h1
-rw-r--r--src/version.h2
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
7Download:
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/>
9Source: [v2.0.0](https://code.fourisland.com/lingo-ap-tracker/tag/?h=v2.0.0)
10
11## v1.0.0 - 2025-03-21
12
13After 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
36Download:
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/>
38Source: [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 @@
1version: v0.12.3 1version: v2.0.0
2packages: 2packages:
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
88struct PanelDoor { 88struct 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
39constexpr const Version kTrackerVersion = Version(1, 0, 0); 39constexpr 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