mirror of
				https://github.com/DarkflameUniverse/DarkflameServer.git
				synced 2025-10-31 12:41:55 +00:00 
			
		
		
		
	patch activity id not using overridden id
Update ActivityComponent.h
This commit is contained in:
		| @@ -30,23 +30,11 @@ | ||||
| #include "LeaderboardManager.h" | ||||
|  | ||||
| ActivityComponent::ActivityComponent(Entity* parent, int32_t activityID) : Component(parent) { | ||||
| 	if (activityID > 0) m_ActivityID = activityID; | ||||
| 	else m_ActivityID = parent->GetVar<int32_t>(u"activityID"); | ||||
| 	CDActivitiesTable* activitiesTable = CDClientManager::Instance().GetTable<CDActivitiesTable>(); | ||||
| 	std::vector<CDActivities> activities = activitiesTable->Query([this](CDActivities entry) {return (entry.ActivityID == m_ActivityID); }); | ||||
|  | ||||
| 	for (CDActivities activity : activities) { | ||||
| 		m_ActivityInfo = activity; | ||||
| 		if (static_cast<Leaderboard::Type>(activity.leaderboardType) == Leaderboard::Type::Racing && Game::config->GetValue("solo_racing") == "1") { | ||||
| 			m_ActivityInfo.minTeamSize = 1; | ||||
| 			m_ActivityInfo.minTeams = 1; | ||||
| 		} | ||||
| 		if (m_ActivityInfo.instanceMapID == -1) { | ||||
| 			const auto& transferOverride = parent->GetVarAsString(u"transferZoneID"); | ||||
| 			if (!transferOverride.empty()) { | ||||
| 				GeneralUtils::TryParse(transferOverride, m_ActivityInfo.instanceMapID); | ||||
| 			} | ||||
| 		} | ||||
| 	m_ActivityID = activityID; | ||||
| 	LoadActivityData(activityID); | ||||
| 	if (m_Parent->HasVar(u"activityID")) { | ||||
| 		m_ActivityID = parent->GetVar<int32_t>(u"activityID"); | ||||
| 		LoadActivityData(m_ActivityID); | ||||
| 	} | ||||
|  | ||||
| 	auto* destroyableComponent = m_Parent->GetComponent<DestroyableComponent>(); | ||||
| @@ -74,6 +62,24 @@ ActivityComponent::ActivityComponent(Entity* parent, int32_t activityID) : Compo | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| void ActivityComponent::LoadActivityData(const int32_t activityId) { | ||||
| 	CDActivitiesTable* activitiesTable = CDClientManager::Instance().GetTable<CDActivitiesTable>(); | ||||
| 	std::vector<CDActivities> activities = activitiesTable->Query([activityId](CDActivities entry) {return (entry.ActivityID == activityId); }); | ||||
|  | ||||
| 	for (CDActivities activity : activities) { | ||||
| 		m_ActivityInfo = activity; | ||||
| 		if (static_cast<Leaderboard::Type>(activity.leaderboardType) == Leaderboard::Type::Racing && Game::config->GetValue("solo_racing") == "1") { | ||||
| 			m_ActivityInfo.minTeamSize = 1; | ||||
| 			m_ActivityInfo.minTeams = 1; | ||||
| 		} | ||||
| 		if (m_ActivityInfo.instanceMapID == -1) { | ||||
| 			const auto& transferOverride = m_Parent->GetVarAsString(u"transferZoneID"); | ||||
| 			if (!transferOverride.empty()) { | ||||
| 				GeneralUtils::TryParse(transferOverride, m_ActivityInfo.instanceMapID); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void ActivityComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) { | ||||
| 	outBitStream->Write(m_DirtyActivityInfo); | ||||
|   | ||||
| @@ -152,6 +152,8 @@ class ActivityComponent : public Component { | ||||
| public: | ||||
| 	ActivityComponent(Entity* parent, int32_t activityID); | ||||
|  | ||||
| 	void LoadActivityData(const int32_t activityId); | ||||
|  | ||||
| 	void Update(float deltaTime) override; | ||||
| 	void Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate) override; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 David Markowitz
					David Markowitz