Skip to content

Commit

Permalink
fix pins multiple load again because mistakes
Browse files Browse the repository at this point in the history
  • Loading branch information
nbusseneau committed Jul 19, 2024
1 parent 38aa4e3 commit 083cb26
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 17 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Fixed

- Fix public and guild pins being loaded from player save file multiple times due to respawns (for real this time 🤞).

## [0.5.11] - 2024-07-19

### Fixed
Expand Down
28 changes: 11 additions & 17 deletions src/Patches/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,20 @@ private static void SaveSharedPins(Player __instance)
/// <summary>
/// Retrieve shared pins for current world from the player save's custom data.
/// </summary>
[HarmonyPatch(typeof(Player), nameof(Player.Load))]
private class LoadSharedPins
[HarmonyPostfix]
[HarmonyPatch(nameof(Player.Load))]
private static void LoadSharedPins(Player __instance)
{
private static bool s_isFirstSpawn;

private static void Prefix(Player __instance) => s_isFirstSpawn = __instance.m_firstSpawn;

private static void Postfix(Player __instance)
if (__instance != Player.m_localPlayer || !Game.instance.m_firstSpawn) return;
var hasPins = __instance.m_customData.TryGetValue(CurrentWorldPinsCustomDataKey, out var base64Data);
if (hasPins)
{
if (__instance != Player.m_localPlayer || !s_isFirstSpawn) return;
var hasPins = __instance.m_customData.TryGetValue(CurrentWorldPinsCustomDataKey, out var base64Data);
if (hasPins)
{
var zPackage = new ZPackage(base64Data).Decompress();
var sharedPins = zPackage.ReadSharablePinDataList();
MinimapManager.AddPins(sharedPins);
}
// hide pins toggles if no pins are available
MinimapUI.HideTableUI();
var zPackage = new ZPackage(base64Data).Decompress();
var sharedPins = zPackage.ReadSharablePinDataList();
MinimapManager.AddPins(sharedPins);
}
// hide pins toggles if no pins are available
MinimapUI.HideTableUI();
}

[HarmonyPostfix]
Expand Down

0 comments on commit 083cb26

Please sign in to comment.