# HG changeset patch
# User TDRR <srb2gamer@gmail.com>
# Date 1673058475 14400
#      Fri Jan 06 22:27:55 2023 -0400
# Node ID c6a51c1066a769fe88712d076d542cd242a584f7
# Parent  d71e6eb5bec483faef87665903dd65e9283482be
Added GetMapChecksum ACS function.

diff -r d71e6eb5bec4 -r c6a51c1066a7 src/p_acs.cpp
--- a/src/p_acs.cpp	Fri Dec 16 10:46:24 2022 -0500
+++ b/src/p_acs.cpp	Fri Jan 06 22:27:55 2023 -0400
@@ -5325,7 +5325,7 @@
 	ACSF_GetGamemodeState,
 	ACSF_SetDBEntry,
 	ACSF_GetDBEntry,
-	ACSF_SetDBEntryString,
+	ACSF_SetDBEntryString, // 110
 	ACSF_GetDBEntryString,
 	ACSF_IncrementDBEntry,
 	ACSF_PlayerIsLoggedIn,
@@ -5335,7 +5335,7 @@
 	ACSF_FreeDBResults,
 	ACSF_GetDBResultKeyString,
 	ACSF_GetDBResultValueString,
-	ACSF_GetDBResultValue,
+	ACSF_GetDBResultValue, // 120
 	ACSF_GetDBEntryRank,
 	ACSF_RequestScriptPuke,
 	ACSF_BeginDBTransaction,
@@ -5345,7 +5345,7 @@
 	ACSF_SystemTime,
 	ACSF_GetTimeProperty,
 	ACSF_Strftime,
-	ACSF_SetDeadSpectator,
+	ACSF_SetDeadSpectator, // 130
 	ACSF_SetActivatorToPlayer,
 	ACSF_SetCurrentGamemode,
 	ACSF_GetCurrentGamemode,
@@ -5355,7 +5355,7 @@
 	ACSF_GetPlayerChasecam,
 	ACSF_SetPlayerScore,
 	ACSF_GetPlayerScore,
-	ACSF_InDemoMode,
+	ACSF_InDemoMode,	  // 140
 	ACSF_SetActionScript,
 	ACSF_SetPredictableValue,
 	ACSF_GetPredictableValue,
@@ -5365,12 +5365,13 @@
 	ACSF_NamedSendNetworkString,
 	ACSF_GetChatMessage,
 	ACSF_GetMapRotationSize,
-	ACSF_GetMapRotationInfo,
+	ACSF_GetMapRotationInfo,// 150
 	ACSF_GetCurrentMapPosition,
 	ACSF_GetEventResult,
 	ACSF_GetActorSectorLocation,
 	ACSF_ChangeTeamScore,
 	ACSF_SetGameplaySetting,
+	ACSF_GetMapChecksum,
 
 	// ZDaemon
 	ACSF_GetTeamScore = 19620,	// (int team)
@@ -7884,6 +7885,24 @@
 			}
 			break;
 		}
+		
+		case ACSF_GetMapChecksum:
+		{
+			MapData *pMap = P_OpenMapData(level.mapname, false);
+			if(!pMap)
+				return GlobalACSStrings.AddString("");
+			
+			BYTE checksumRaw[16];
+			pMap->GetChecksum(checksumRaw);
+			
+			char checksumStr[33];
+			checksumStr[32] = '\0';
+			
+			for(size_t i = 0; i < sizeof(checksumRaw); i++)
+				sprintf(&checksumStr[i*2], "%02X", checksumRaw[i]);
+			
+			return GlobalACSStrings.AddString(checksumStr);
+		}
 
 		default:
 			break;
