From 27e146d22296de8ae588285499cece6906e5cf73 Mon Sep 17 00:00:00 2001
From: ErikasKontenis <e.kontenis@gmail.com>
Date: Sun, 11 Apr 2021 18:45:57 +0300
Subject: [PATCH] introduce party share exp emblems to be working with otclient

---
 src/const.h    |  9 ++++++++-
 src/player.cpp | 24 ++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/src/const.h b/src/const.h
index 031c372..58aa0de 100644
--- a/src/const.h
+++ b/src/const.h
@@ -242,7 +242,14 @@ enum PartyShields_t : uint8_t {
 	SHIELD_WHITEYELLOW = 1,
 	SHIELD_WHITEBLUE = 2,
 	SHIELD_BLUE = 3,
-	SHIELD_YELLOW = 4
+	SHIELD_YELLOW = 4,
+	SHIELD_BLUE_SHAREDEXP = 5,
+	SHIELD_YELLOW_SHAREDEXP = 6,
+	SHIELD_BLUE_NOSHAREDEXP_BLINK = 7,
+	SHIELD_YELLOW_NOSHAREDEXP_BLINK = 8,
+	SHIELD_BLUE_NOSHAREDEXP = 9,
+	SHIELD_YELLOW_NOSHAREDEXP = 10,
+	SHIELD_GRAY = 11,
 };
 
 enum item_t : uint16_t {
diff --git a/src/player.cpp b/src/player.cpp
index 6e6afcd..87f06e0 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -3678,10 +3678,34 @@ PartyShields_t Player::getPartyShield(const Player* player) const
 
 	if (party) {
 		if (party->getLeader() == player) {
+			if (party->isSharedExperienceActive()) {
+				if (party->isSharedExperienceEnabled()) {
+					return SHIELD_YELLOW_SHAREDEXP;
+				}
+
+				if (party->canUseSharedExperience(player)) {
+					return SHIELD_YELLOW_NOSHAREDEXP;
+				}
+
+				return SHIELD_YELLOW_NOSHAREDEXP_BLINK;
+			}
+
 			return SHIELD_YELLOW;
 		}
 
 		if (player->party == party) {
+			if (party->isSharedExperienceActive()) {
+				if (party->isSharedExperienceEnabled()) {
+					return SHIELD_BLUE_SHAREDEXP;
+				}
+
+				if (party->canUseSharedExperience(player)) {
+					return SHIELD_BLUE_NOSHAREDEXP;
+				}
+
+				return SHIELD_BLUE_NOSHAREDEXP_BLINK;
+			}
+
 			return SHIELD_BLUE;
 		}