From 5ddc9d1884fb9db9a9e1eb978e0da7ce78cd6880 Mon Sep 17 00:00:00 2001 From: Amos Date: Fri, 25 Aug 2023 08:47:12 +0200 Subject: [PATCH] Write each field individually Cluster links were written with an additional padding as the struct is 11 in size, so it gets padded to 12. Cluster links now get correctly written to the disk. --- r5dev/game/server/ai_networkmanager.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/r5dev/game/server/ai_networkmanager.cpp b/r5dev/game/server/ai_networkmanager.cpp index cea28593..f31ddfdc 100644 --- a/r5dev/game/server/ai_networkmanager.cpp +++ b/r5dev/game/server/ai_networkmanager.cpp @@ -313,7 +313,15 @@ void CAI_NetworkBuilder::SaveNetworkGraph(CAI_Network* pNetwork) // Disk and memory structs are literally identical here so just directly write. const CAI_ClusterLink* clusterLink = (*g_pAIClusterLinks)[i]; - FileSystem()->Write(clusterLink, sizeof(CAI_ClusterLink), pAIGraph); + + FileSystem()->Write(&clusterLink->prevIndex_MAYBE, sizeof(short), pAIGraph); + FileSystem()->Write(&clusterLink->nextIndex_MAYBE, sizeof(short), pAIGraph); + + FileSystem()->Write(&clusterLink->unk2, sizeof(int), pAIGraph); + FileSystem()->Write(&clusterLink->flags, sizeof(char), pAIGraph); + + FileSystem()->Write(&clusterLink->unk4, sizeof(char), pAIGraph); + FileSystem()->Write(&clusterLink->unk5, sizeof(char), pAIGraph); } timer.End();