mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-09 20:24:16 +00:00
Merge remote-tracking branch 'origin/main' into grim-lu
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "GameMessageHandler.h"
|
||||
#include "MissionComponent.h"
|
||||
#include "PacketUtils.h"
|
||||
#include "BitStreamUtils.h"
|
||||
#include "dServer.h"
|
||||
#include "../thirdparty/raknet/Source/RakNetworkFactory.h"
|
||||
#include <future>
|
||||
@@ -43,16 +43,17 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
CBITSTREAM;
|
||||
|
||||
// Get the entity
|
||||
Entity* entity = EntityManager::Instance()->GetEntity(objectID);
|
||||
Entity* entity = Game::entityManager->GetEntity(objectID);
|
||||
|
||||
User* usr = UserManager::Instance()->GetUser(sysAddr);
|
||||
|
||||
if (!entity) {
|
||||
Game::logger->Log("GameMessageHandler", "Failed to find associated entity (%llu), aborting GM (%X)!", objectID, messageID);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (messageID != eGameMessageType::READY_FOR_UPDATES) Game::logger->LogDebug("GameMessageHandler", "received game message ID: %i", messageID);
|
||||
|
||||
switch (messageID) {
|
||||
|
||||
case eGameMessageType::UN_USE_BBB_MODEL: {
|
||||
@@ -74,11 +75,11 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
break;
|
||||
}
|
||||
|
||||
case eGameMessageType::EQUIP_ITEM:
|
||||
case eGameMessageType::EQUIP_INVENTORY:
|
||||
GameMessages::HandleEquipItem(inStream, entity);
|
||||
break;
|
||||
|
||||
case eGameMessageType::UN_EQUIP_ITEM:
|
||||
case eGameMessageType::UN_EQUIP_INVENTORY:
|
||||
GameMessages::HandleUnequipItem(inStream, entity);
|
||||
break;
|
||||
|
||||
@@ -123,9 +124,9 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
|
||||
auto* destroyable = entity->GetComponent<DestroyableComponent>();
|
||||
destroyable->SetImagination(destroyable->GetImagination());
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
|
||||
std::vector<Entity*> racingControllers = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::RACING_CONTROL);
|
||||
std::vector<Entity*> racingControllers = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RACING_CONTROL);
|
||||
for (Entity* racingController : racingControllers) {
|
||||
auto* racingComponent = racingController->GetComponent<RacingControlComponent>();
|
||||
if (racingComponent != nullptr) {
|
||||
@@ -133,12 +134,12 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
}
|
||||
}
|
||||
|
||||
Entity* zoneControl = EntityManager::Instance()->GetZoneControlEntity();
|
||||
Entity* zoneControl = Game::entityManager->GetZoneControlEntity();
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(zoneControl)) {
|
||||
script->OnPlayerLoaded(zoneControl, player);
|
||||
}
|
||||
|
||||
std::vector<Entity*> scriptedActs = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SCRIPT);
|
||||
std::vector<Entity*> scriptedActs = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SCRIPT);
|
||||
for (Entity* scriptEntity : scriptedActs) {
|
||||
if (scriptEntity->GetObjectID() != zoneControl->GetObjectID()) { // Don't want to trigger twice on instance worlds
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(scriptEntity)) {
|
||||
@@ -171,7 +172,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
|
||||
// After we've done our thing, tell the client they're ready
|
||||
GameMessages::SendPlayerReady(entity, sysAddr);
|
||||
GameMessages::SendPlayerReady(dZoneManager::Instance()->GetZoneControlObject(), sysAddr);
|
||||
GameMessages::SendPlayerReady(Game::zoneManager->GetZoneControlObject(), sysAddr);
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -249,11 +250,11 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
dest->SetHealth(4);
|
||||
dest->SetArmor(0);
|
||||
dest->SetImagination(6);
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
}*/
|
||||
break;
|
||||
}
|
||||
case eGameMessageType::HANDLE_HOT_PROPERTY_DATA: {
|
||||
case eGameMessageType::GET_HOT_PROPERTY_DATA: {
|
||||
GameMessages::HandleGetHotPropertyData(inStream, entity, sysAddr);
|
||||
break;
|
||||
}
|
||||
@@ -357,7 +358,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
if (success) {
|
||||
//Broadcast our startSkill:
|
||||
RakNet::BitStream bitStreamLocal;
|
||||
PacketUtils::WriteHeader(bitStreamLocal, eConnectionType::CLIENT, eClientMessageType::GAME_MSG);
|
||||
BitStreamUtils::WriteHeader(bitStreamLocal, eConnectionType::CLIENT, eClientMessageType::GAME_MSG);
|
||||
bitStreamLocal.Write(entity->GetObjectID());
|
||||
|
||||
EchoStartSkill echoStartSkill;
|
||||
@@ -379,7 +380,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
|
||||
case eGameMessageType::SYNC_SKILL: {
|
||||
RakNet::BitStream bitStreamLocal;
|
||||
PacketUtils::WriteHeader(bitStreamLocal, eConnectionType::CLIENT, eClientMessageType::GAME_MSG);
|
||||
BitStreamUtils::WriteHeader(bitStreamLocal, eConnectionType::CLIENT, eClientMessageType::GAME_MSG);
|
||||
bitStreamLocal.Write(entity->GetObjectID());
|
||||
//bitStreamLocal.Write((unsigned short)eGameMessageType::ECHO_SYNC_SKILL);
|
||||
//bitStreamLocal.Write(inStream);
|
||||
@@ -590,7 +591,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
GameMessages::HandleBBBSaveRequest(inStream, entity, sysAddr);
|
||||
break;
|
||||
|
||||
case eGameMessageType::CONTROL_BEHAVIOR:
|
||||
case eGameMessageType::CONTROL_BEHAVIORS:
|
||||
GameMessages::HandleControlBehaviors(inStream, entity, sysAddr);
|
||||
break;
|
||||
|
||||
@@ -603,7 +604,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
break;
|
||||
|
||||
case eGameMessageType::ZONE_PROPERTY_MODEL_ROTATED:
|
||||
EntityManager::Instance()->GetZoneControlEntity()->OnZonePropertyModelRotated(usr->GetLastUsedChar()->GetEntity());
|
||||
Game::entityManager->GetZoneControlEntity()->OnZonePropertyModelRotated(usr->GetLastUsedChar()->GetEntity());
|
||||
break;
|
||||
|
||||
case eGameMessageType::UPDATE_PROPERTY_OR_MODEL_FOR_FILTER_CHECK:
|
||||
@@ -639,11 +640,11 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
GameMessages::HandleRequestDie(inStream, entity, sysAddr);
|
||||
break;
|
||||
|
||||
case eGameMessageType::VEHICLE_NOTIFY_SERVER_ADD_PASSIVE_BOOST_ACTION:
|
||||
case eGameMessageType::NOTIFY_SERVER_VEHICLE_ADD_PASSIVE_BOOST_ACTION:
|
||||
GameMessages::HandleVehicleNotifyServerAddPassiveBoostAction(inStream, entity, sysAddr);
|
||||
break;
|
||||
|
||||
case eGameMessageType::VEHICLE_NOTIFY_SERVER_REMOVE_PASSIVE_BOOST_ACTION:
|
||||
case eGameMessageType::NOTIFY_SERVER_VEHICLE_REMOVE_PASSIVE_BOOST_ACTION:
|
||||
GameMessages::HandleVehicleNotifyServerRemovePassiveBoostAction(inStream, entity, sysAddr);
|
||||
break;
|
||||
|
||||
@@ -711,7 +712,7 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
case eGameMessageType::DISMOUNT_COMPLETE:
|
||||
GameMessages::HandleDismountComplete(inStream, entity, sysAddr);
|
||||
break;
|
||||
case eGameMessageType::DEACTIVATE_BUBBLE_BUFF:
|
||||
case eGameMessageType::DECTIVATE_BUBBLE_BUFF:
|
||||
GameMessages::HandleDeactivateBubbleBuff(inStream, entity);
|
||||
break;
|
||||
case eGameMessageType::ACTIVATE_BUBBLE_BUFF:
|
||||
@@ -723,8 +724,20 @@ void GameMessageHandler::HandleMessage(RakNet::BitStream* inStream, const System
|
||||
case eGameMessageType::REQUEST_ACTIVITY_EXIT:
|
||||
GameMessages::HandleRequestActivityExit(inStream, entity);
|
||||
break;
|
||||
case eGameMessageType::ADD_DONATION_ITEM:
|
||||
GameMessages::HandleAddDonationItem(inStream, entity, sysAddr);
|
||||
break;
|
||||
case eGameMessageType::REMOVE_DONATION_ITEM:
|
||||
GameMessages::HandleRemoveDonationItem(inStream, entity, sysAddr);
|
||||
break;
|
||||
case eGameMessageType::CONFIRM_DONATION_ON_PLAYER:
|
||||
GameMessages::HandleConfirmDonationOnPlayer(inStream, entity);
|
||||
break;
|
||||
case eGameMessageType::CANCEL_DONATION_ON_PLAYER:
|
||||
GameMessages::HandleCancelDonationOnPlayer(inStream, entity);
|
||||
break;
|
||||
default:
|
||||
// Game::logger->Log("GameMessageHandler", "Unknown game message ID: %i", messageID);
|
||||
Game::logger->LogDebug("GameMessageHandler", "Unknown game message ID: %i", messageID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#include "User.h"
|
||||
#include "Entity.h"
|
||||
#include "PacketUtils.h"
|
||||
#include "BitStreamUtils.h"
|
||||
#include "BitStream.h"
|
||||
#include "Game.h"
|
||||
#include "SlashCommandHandler.h"
|
||||
@@ -24,7 +25,7 @@
|
||||
#include "dConfig.h"
|
||||
#include "TeamManager.h"
|
||||
#include "ChatPackets.h"
|
||||
#include "RocketLaunchLupComponent.h"
|
||||
#include "MultiZoneEntranceComponent.h"
|
||||
#include "eUnequippableActiveType.h"
|
||||
#include "eMovementPlatformState.h"
|
||||
#include "LeaderboardManager.h"
|
||||
@@ -76,6 +77,7 @@
|
||||
#include "RacingControlComponent.h"
|
||||
#include "RailActivatorComponent.h"
|
||||
#include "LevelProgressionComponent.h"
|
||||
#include "DonationVendorComponent.h"
|
||||
|
||||
// Message includes:
|
||||
#include "dZoneManager.h"
|
||||
@@ -121,7 +123,7 @@ void GameMessages::SendFireEventClientSide(const LWOOBJID& objectID, const Syste
|
||||
SEND_PACKET;
|
||||
}
|
||||
|
||||
void GameMessages::SendTeleport(const LWOOBJID& objectID, const NiPoint3& pos, const NiQuaternion& rot, const SystemAddress& sysAddr, bool bSetRotation, bool noGravTeleport) {
|
||||
void GameMessages::SendTeleport(const LWOOBJID& objectID, const NiPoint3& pos, const NiQuaternion& rot, const SystemAddress& sysAddr, bool bSetRotation) {
|
||||
CBITSTREAM;
|
||||
CMSGHEADER;
|
||||
bitStream.Write(objectID);
|
||||
@@ -142,7 +144,6 @@ void GameMessages::SendTeleport(const LWOOBJID& objectID, const NiPoint3& pos, c
|
||||
bitStream.Write(pos.y);
|
||||
bitStream.Write(pos.z);
|
||||
bitStream.Write(bUseNavmesh);
|
||||
bitStream.Write(noGravTeleport);
|
||||
|
||||
bitStream.Write(rot.w != 1.0f);
|
||||
if (rot.w != 1.0f) bitStream.Write(rot.w);
|
||||
@@ -174,7 +175,7 @@ void GameMessages::SendPlayAnimation(Entity* entity, const std::u16string& anima
|
||||
bitStream.Write(eGameMessageType::PLAY_ANIMATION);
|
||||
|
||||
bitStream.Write(animationIDLength);
|
||||
PacketUtils::WriteWString(bitStream, animationName, animationIDLength);
|
||||
bitStream.Write(LUWString(animationName, animationIDLength));
|
||||
|
||||
bitStream.Write(bExpectAnimToExist);
|
||||
|
||||
@@ -327,13 +328,6 @@ void GameMessages::SendPlayNDAudioEmitter(Entity* entity, const SystemAddress& s
|
||||
bitStream.Write(static_cast<char>(audioGUID[k]));
|
||||
}
|
||||
|
||||
//PacketUtils::WriteString(bitStream, audioGUID, audioGUID.size());
|
||||
|
||||
//bitStream.Write(uint32_t(audioGUID.size()));
|
||||
//for (char character : audioGUID) {
|
||||
// bitStream.Write(character);
|
||||
//}
|
||||
|
||||
bitStream.Write(uint32_t(0));
|
||||
bitStream.Write0();
|
||||
bitStream.Write0();
|
||||
@@ -976,7 +970,7 @@ void GameMessages::SendStop2DAmbientSound(Entity* entity, bool force, std::strin
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(entity->GetObjectID());
|
||||
bitStream.Write((uint16_t)eGameMessageType::PLAY2_DAMBIENT_SOUND);
|
||||
bitStream.Write((uint16_t)eGameMessageType::STOP2_D_AMBIENT_SOUND);
|
||||
|
||||
uint32_t audioGUIDSize = audioGUID.size();
|
||||
|
||||
@@ -999,7 +993,7 @@ void GameMessages::SendPlay2DAmbientSound(Entity* entity, std::string audioGUID,
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(entity->GetObjectID());
|
||||
bitStream.Write((uint16_t)eGameMessageType::PLAY2_DAMBIENT_SOUND);
|
||||
bitStream.Write((uint16_t)eGameMessageType::PLAY2_D_AMBIENT_SOUND);
|
||||
|
||||
uint32_t audioGUIDSize = audioGUID.size();
|
||||
|
||||
@@ -1018,7 +1012,7 @@ void GameMessages::SendSetNetworkScriptVar(Entity* entity, const SystemAddress&
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(entity->GetObjectID());
|
||||
bitStream.Write((uint16_t)eGameMessageType::SET_NETWORK_SCRIPT_VAR);
|
||||
bitStream.Write((uint16_t)eGameMessageType::SCRIPT_NETWORK_VAR_UPDATE);
|
||||
|
||||
// FIXME: this is a bad place to need to do a conversion because we have no clue whether data is utf8 or plain ascii
|
||||
// an this has performance implications
|
||||
@@ -1103,7 +1097,7 @@ void GameMessages::SendDropClientLoot(Entity* entity, const LWOOBJID& sourceID,
|
||||
|
||||
if (object.type != "Powerup") {
|
||||
for (const auto memberId : team->members) {
|
||||
auto* member = EntityManager::Instance()->GetEntity(memberId);
|
||||
auto* member = Game::entityManager->GetEntity(memberId);
|
||||
|
||||
if (member == nullptr) continue;
|
||||
|
||||
@@ -1292,21 +1286,22 @@ void GameMessages::SendVendorStatusUpdate(Entity* entity, const SystemAddress& s
|
||||
VendorComponent* vendor = static_cast<VendorComponent*>(entity->GetComponent(eReplicaComponentType::VENDOR));
|
||||
if (!vendor) return;
|
||||
|
||||
std::map<LOT, int> vendorItems = vendor->GetInventory();
|
||||
auto vendorItems = vendor->GetInventory();
|
||||
|
||||
bitStream.Write(entity->GetObjectID());
|
||||
bitStream.Write(eGameMessageType::VENDOR_STATUS_UPDATE);
|
||||
|
||||
bitStream.Write(bUpdateOnly);
|
||||
bitStream.Write(static_cast<uint32_t>(vendorItems.size()));
|
||||
bitStream.Write<uint32_t>(vendorItems.size());
|
||||
|
||||
for (std::pair<LOT, int> item : vendorItems) {
|
||||
bitStream.Write(static_cast<int>(item.first));
|
||||
bitStream.Write(static_cast<int>(item.second));
|
||||
|
||||
for (const auto& item : vendorItems) {
|
||||
bitStream.Write(item.lot);
|
||||
bitStream.Write(item.sortPriority);
|
||||
}
|
||||
|
||||
if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) SEND_PACKET_BROADCAST
|
||||
SEND_PACKET;
|
||||
if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) SEND_PACKET_BROADCAST;
|
||||
SEND_PACKET;
|
||||
}
|
||||
|
||||
void GameMessages::SendVendorTransactionResult(Entity* entity, const SystemAddress& sysAddr) {
|
||||
@@ -1651,20 +1646,7 @@ void GameMessages::SendActivitySummaryLeaderboardData(const LWOOBJID& objectID,
|
||||
bitStream.Write(objectID);
|
||||
bitStream.Write(eGameMessageType::SEND_ACTIVITY_SUMMARY_LEADERBOARD_DATA);
|
||||
|
||||
bitStream.Write(leaderboard->GetGameID());
|
||||
bitStream.Write(leaderboard->GetInfoType());
|
||||
|
||||
// Leaderboard is written back as LDF string
|
||||
const auto leaderboardString = leaderboard->ToString();
|
||||
bitStream.Write<uint32_t>(leaderboardString.size());
|
||||
for (const auto c : leaderboardString) {
|
||||
bitStream.Write<uint16_t>(c);
|
||||
}
|
||||
if (!leaderboardString.empty()) bitStream.Write(uint16_t(0));
|
||||
|
||||
bitStream.Write0();
|
||||
bitStream.Write0();
|
||||
|
||||
leaderboard->Serialize(&bitStream);
|
||||
SEND_PACKET;
|
||||
}
|
||||
|
||||
@@ -1672,8 +1654,8 @@ void GameMessages::HandleRequestActivitySummaryLeaderboardData(RakNet::BitStream
|
||||
int32_t gameID = 0;
|
||||
if (inStream->ReadBit()) inStream->Read(gameID);
|
||||
|
||||
int32_t queryType = 1;
|
||||
if (inStream->ReadBit()) inStream->Read(queryType);
|
||||
Leaderboard::InfoType queryType = Leaderboard::InfoType::MyStanding;
|
||||
if (inStream->ReadBit()) inStream->Read<Leaderboard::InfoType>(queryType);
|
||||
|
||||
int32_t resultsEnd = 10;
|
||||
if (inStream->ReadBit()) inStream->Read(resultsEnd);
|
||||
@@ -1686,9 +1668,7 @@ void GameMessages::HandleRequestActivitySummaryLeaderboardData(RakNet::BitStream
|
||||
|
||||
bool weekly = inStream->ReadBit();
|
||||
|
||||
const auto* leaderboard = LeaderboardManager::GetLeaderboard(gameID, (InfoType)queryType, weekly, entity->GetObjectID());
|
||||
SendActivitySummaryLeaderboardData(entity->GetObjectID(), leaderboard, sysAddr);
|
||||
delete leaderboard;
|
||||
LeaderboardManager::SendLeaderboard(gameID, queryType, weekly, entity->GetObjectID(), entity->GetObjectID(), resultsStart, resultsEnd);
|
||||
}
|
||||
|
||||
void GameMessages::HandleActivityStateChangeRequest(RakNet::BitStream* inStream, Entity* entity) {
|
||||
@@ -1711,11 +1691,11 @@ void GameMessages::HandleActivityStateChangeRequest(RakNet::BitStream* inStream,
|
||||
stringValue.push_back(character);
|
||||
}
|
||||
|
||||
auto* assosiate = EntityManager::Instance()->GetEntity(objectID);
|
||||
auto* assosiate = Game::entityManager->GetEntity(objectID);
|
||||
|
||||
Game::logger->Log("Activity State Change", "%s [%i, %i] from %i to %i", GeneralUtils::UTF16ToWTF8(stringValue).c_str(), value1, value2, entity->GetLOT(), assosiate != nullptr ? assosiate->GetLOT() : 0);
|
||||
|
||||
std::vector<Entity*> scriptedActs = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SHOOTING_GALLERY);
|
||||
std::vector<Entity*> scriptedActs = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SHOOTING_GALLERY);
|
||||
for (Entity* scriptEntity : scriptedActs) {
|
||||
scriptEntity->OnActivityStateChangeRequest(objectID, value1, value2, stringValue);
|
||||
}
|
||||
@@ -2136,7 +2116,7 @@ void GameMessages::SendUGCEquipPreCreateBasedOnEditMode(LWOOBJID objectId, const
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(objectId);
|
||||
bitStream.Write(eGameMessageType::HANDLE_UGC_EQUIP_PRE_CREATE_BASED_ON_EDIT_MODE);
|
||||
bitStream.Write(eGameMessageType::HANDLE_UGC_POST_CREATE_BASED_ON_EDIT_MODE);
|
||||
|
||||
bitStream.Write(modelCount);
|
||||
bitStream.Write(model);
|
||||
@@ -2150,7 +2130,7 @@ void GameMessages::SendUGCEquipPostDeleteBasedOnEditMode(LWOOBJID objectId, cons
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(objectId);
|
||||
bitStream.Write(eGameMessageType::HANDLE_UGC_EQUIP_POST_DELETE_BASED_ON_EDIT_MODE);
|
||||
bitStream.Write(eGameMessageType::HANDLE_UGC_POST_DELETE_BASED_ON_EDIT_MODE);
|
||||
|
||||
bitStream.Write(inventoryItem);
|
||||
|
||||
@@ -2200,7 +2180,7 @@ void GameMessages::HandleUnUseModel(RakNet::BitStream* inStream, Entity* entity,
|
||||
|
||||
if (unknown) {
|
||||
CBITSTREAM;
|
||||
PacketUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_SAVE_RESPONSE);
|
||||
BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_SAVE_RESPONSE);
|
||||
bitStream.Write<LWOOBJID>(LWOOBJID_EMPTY); //always zero so that a check on the client passes
|
||||
bitStream.Write(eBlueprintSaveResponseType::PlacementFailed); // Sending a non-zero error code here prevents the client from deleting its in progress build for some reason?
|
||||
bitStream.Write<uint32_t>(0);
|
||||
@@ -2244,7 +2224,7 @@ void GameMessages::HandleQueryPropertyData(RakNet::BitStream* inStream, Entity*
|
||||
Game::logger->Log("HandleQueryPropertyData", "Entity (%i) requesting data", entity->GetLOT());
|
||||
|
||||
/*
|
||||
auto entites = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::PROPERTY_VENDOR);
|
||||
auto entites = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::PROPERTY_VENDOR);
|
||||
|
||||
entity = entites[0];
|
||||
*/
|
||||
@@ -2256,7 +2236,7 @@ void GameMessages::HandleQueryPropertyData(RakNet::BitStream* inStream, Entity*
|
||||
}
|
||||
|
||||
/*
|
||||
entites = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::PROPERTY_MANAGEMENT);
|
||||
entites = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::PROPERTY_MANAGEMENT);
|
||||
|
||||
entity = entites[0];
|
||||
*/
|
||||
@@ -2291,7 +2271,7 @@ void GameMessages::HandleSetBuildMode(RakNet::BitStream* inStream, Entity* entit
|
||||
if (inStream->ReadBit())
|
||||
inStream->Read(startPosition);
|
||||
|
||||
auto* player = EntityManager::Instance()->GetEntity(playerId);
|
||||
auto* player = Game::entityManager->GetEntity(playerId);
|
||||
|
||||
if (startPosition == NiPoint3::ZERO) {
|
||||
startPosition = player->GetPosition();
|
||||
@@ -2339,7 +2319,7 @@ void GameMessages::HandleStartBuildingWithItem(RakNet::BitStream* inStream, Enti
|
||||
|
||||
auto* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
|
||||
auto* player = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
auto* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
|
||||
SendStartArrangingWithItem(
|
||||
player,
|
||||
@@ -2361,25 +2341,25 @@ void GameMessages::HandleStartBuildingWithItem(RakNet::BitStream* inStream, Enti
|
||||
void GameMessages::HandlePropertyEditorBegin(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
PropertyManagementComponent::Instance()->OnStartBuilding();
|
||||
|
||||
dZoneManager::Instance()->GetZoneControlObject()->OnZonePropertyEditBegin();
|
||||
Game::zoneManager->GetZoneControlObject()->OnZonePropertyEditBegin();
|
||||
}
|
||||
|
||||
void GameMessages::HandlePropertyEditorEnd(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
PropertyManagementComponent::Instance()->OnFinishBuilding();
|
||||
|
||||
dZoneManager::Instance()->GetZoneControlObject()->OnZonePropertyEditEnd();
|
||||
Game::zoneManager->GetZoneControlObject()->OnZonePropertyEditEnd();
|
||||
}
|
||||
|
||||
void GameMessages::HandlePropertyContentsFromClient(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
|
||||
Entity* player = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
|
||||
SendGetModelsOnProperty(player->GetObjectID(), PropertyManagementComponent::Instance()->GetModels(), UNASSIGNED_SYSTEM_ADDRESS);
|
||||
}
|
||||
|
||||
void GameMessages::HandlePropertyModelEquipped(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
dZoneManager::Instance()->GetZoneControlObject()->OnZonePropertyModelEquipped();
|
||||
Game::zoneManager->GetZoneControlObject()->OnZonePropertyModelEquipped();
|
||||
}
|
||||
|
||||
void GameMessages::HandlePlacePropertyModel(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
@@ -2452,7 +2432,7 @@ void GameMessages::HandleBBBLoadItemRequest(RakNet::BitStream* inStream, Entity*
|
||||
|
||||
void GameMessages::SendBlueprintLoadItemResponse(const SystemAddress& sysAddr, bool success, LWOOBJID oldItemId, LWOOBJID newItemId) {
|
||||
CBITSTREAM;
|
||||
PacketUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_LOAD_RESPONSE_ITEMID);
|
||||
BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_LOAD_RESPONSE_ITEMID);
|
||||
bitStream.Write(static_cast<uint8_t>(success));
|
||||
bitStream.Write<LWOOBJID>(oldItemId);
|
||||
bitStream.Write<LWOOBJID>(newItemId);
|
||||
@@ -2479,7 +2459,7 @@ void GameMessages::SendUnSmash(Entity* entity, LWOOBJID builderID, float duratio
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(entity->GetObjectID());
|
||||
bitStream.Write(eGameMessageType::UNSMASH);
|
||||
bitStream.Write(eGameMessageType::UN_SMASH);
|
||||
|
||||
bitStream.Write(builderID != LWOOBJID_EMPTY);
|
||||
if (builderID != LWOOBJID_EMPTY) bitStream.Write(builderID);
|
||||
@@ -2605,7 +2585,7 @@ void GameMessages::HandleBBBSaveRequest(RakNet::BitStream* inStream, Entity* ent
|
||||
GeneralUtils::SetBit(blueprintID, eObjectBits::PERSISTENT);
|
||||
|
||||
//We need to get the propertyID: (stolen from Wincent's propertyManagementComp)
|
||||
const auto& worldId = dZoneManager::Instance()->GetZone()->GetZoneID();
|
||||
const auto& worldId = Game::zoneManager->GetZone()->GetZoneID();
|
||||
|
||||
const auto zoneId = worldId.GetMapID();
|
||||
const auto cloneId = worldId.GetCloneID();
|
||||
@@ -2700,7 +2680,7 @@ void GameMessages::HandleBBBSaveRequest(RakNet::BitStream* inStream, Entity* ent
|
||||
|
||||
//Tell the client their model is saved: (this causes us to actually pop out of our current state):
|
||||
CBITSTREAM;
|
||||
PacketUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_SAVE_RESPONSE);
|
||||
BitStreamUtils::WriteHeader(bitStream, eConnectionType::CLIENT, eClientMessageType::BLUEPRINT_SAVE_RESPONSE);
|
||||
bitStream.Write(localId);
|
||||
bitStream.Write(eBlueprintSaveResponseType::EverythingWorked);
|
||||
bitStream.Write<uint32_t>(1);
|
||||
@@ -2736,9 +2716,9 @@ void GameMessages::HandleBBBSaveRequest(RakNet::BitStream* inStream, Entity* ent
|
||||
info.settings.push_back(propertyObjectID);
|
||||
info.settings.push_back(userModelID);
|
||||
|
||||
Entity* newEntity = EntityManager::Instance()->CreateEntity(info, nullptr);
|
||||
Entity* newEntity = Game::entityManager->CreateEntity(info, nullptr);
|
||||
if (newEntity) {
|
||||
EntityManager::Instance()->ConstructEntity(newEntity);
|
||||
Game::entityManager->ConstructEntity(newEntity);
|
||||
|
||||
//Make sure the propMgmt doesn't delete our model after the server dies
|
||||
//Trying to do this after the entity is constructed. Shouldn't really change anything but
|
||||
@@ -2814,9 +2794,9 @@ void GameMessages::HandleEnterProperty(RakNet::BitStream* inStream, Entity* enti
|
||||
return;
|
||||
}
|
||||
|
||||
auto rocketLaunchLupComponent = entity->GetComponent<RocketLaunchLupComponent>();
|
||||
if (rocketLaunchLupComponent != nullptr) {
|
||||
rocketLaunchLupComponent->OnSelectWorld(player, index);
|
||||
auto multiZoneEntranceComponent = entity->GetComponent<MultiZoneEntranceComponent>();
|
||||
if (multiZoneEntranceComponent != nullptr) {
|
||||
multiZoneEntranceComponent->OnSelectWorld(player, index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2934,7 +2914,7 @@ void GameMessages::HandleCinematicUpdate(RakNet::BitStream* inStream, Entity* en
|
||||
inStream->Read<int32_t>(waypoint);
|
||||
}
|
||||
|
||||
std::vector<Entity*> scriptedActs = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SCRIPT);
|
||||
std::vector<Entity*> scriptedActs = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SCRIPT);
|
||||
for (Entity* scriptEntity : scriptedActs) {
|
||||
scriptEntity->OnCinematicUpdate(scriptEntity, entity, event, pathName, pathTime, overallTime, waypoint);
|
||||
}
|
||||
@@ -3314,7 +3294,7 @@ void GameMessages::HandleClientTradeRequest(RakNet::BitStream* inStream, Entity*
|
||||
|
||||
inStream->Read(i64Invitee);
|
||||
|
||||
auto* invitee = EntityManager::Instance()->GetEntity(i64Invitee);
|
||||
auto* invitee = Game::entityManager->GetEntity(i64Invitee);
|
||||
|
||||
if (invitee != nullptr && invitee->IsPlayer()) {
|
||||
character = invitee->GetCharacter();
|
||||
@@ -3477,12 +3457,12 @@ void GameMessages::SendNotifyTamingModelLoadedOnServer(LWOOBJID objectId, const
|
||||
SEND_PACKET;
|
||||
}
|
||||
|
||||
void GameMessages::SendNotifyPetTamingPuzzleSelected(LWOOBJID objectId, std::vector<Brick>& bricks, const SystemAddress& sysAddr) {
|
||||
void GameMessages::SendNotifyPetTamingPuzzleSelected(LWOOBJID objectId, const std::vector<Brick>& bricks, const SystemAddress& sysAddr) {
|
||||
CBITSTREAM;
|
||||
CMSGHEADER;
|
||||
|
||||
bitStream.Write(objectId);
|
||||
bitStream.Write(eGameMessageType::NOTIFY_PET_TAMING_PUZZLE_SELECTED);
|
||||
bitStream.Write(eGameMessageType::NOTIFY_TAMING_PUZZLE_SELECTED);
|
||||
|
||||
bitStream.Write(static_cast<uint32_t>(bricks.size()));
|
||||
for (const auto& brick : bricks) {
|
||||
@@ -3901,7 +3881,7 @@ void GameMessages::HandleMessageBoxResponse(RakNet::BitStream* inStream, Entity*
|
||||
racingControlComponent->HandleMessageBoxResponse(userEntity, iButton, GeneralUtils::UTF16ToWTF8(identifier));
|
||||
}
|
||||
|
||||
for (auto* shootingGallery : EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SHOOTING_GALLERY)) {
|
||||
for (auto* shootingGallery : Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SHOOTING_GALLERY)) {
|
||||
shootingGallery->OnMessageBoxResponse(userEntity, iButton, identifier, userData);
|
||||
}
|
||||
}
|
||||
@@ -4062,7 +4042,7 @@ void GameMessages::HandleDismountComplete(RakNet::BitStream* inStream, Entity* e
|
||||
// If we aren't possessing somethings, the don't do anything
|
||||
if (objectId != LWOOBJID_EMPTY) {
|
||||
auto* possessorComponent = entity->GetComponent<PossessorComponent>();
|
||||
auto* mount = EntityManager::Instance()->GetEntity(objectId);
|
||||
auto* mount = Game::entityManager->GetEntity(objectId);
|
||||
// make sure we have the things we need and they aren't null
|
||||
if (possessorComponent && mount) {
|
||||
if (!possessorComponent->GetIsDismounting()) return;
|
||||
@@ -4087,7 +4067,7 @@ void GameMessages::HandleDismountComplete(RakNet::BitStream* inStream, Entity* e
|
||||
if (possessableComponent) possessableComponent->Dismount();
|
||||
|
||||
// Update the entity that was possessing
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
|
||||
// We aren't mounted so remove the stun
|
||||
GameMessages::SendSetStunned(entity->GetObjectID(), eStateChangeType::POP, UNASSIGNED_SYSTEM_ADDRESS, LWOOBJID_EMPTY, true, false, true, false, false, false, false, true, true, true, true, true, true, true, true, true);
|
||||
@@ -4097,11 +4077,11 @@ void GameMessages::HandleDismountComplete(RakNet::BitStream* inStream, Entity* e
|
||||
|
||||
|
||||
void GameMessages::HandleAcknowledgePossession(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
LWOOBJID objectId{};
|
||||
inStream->Read(objectId);
|
||||
auto* mount = EntityManager::Instance()->GetEntity(objectId);
|
||||
if (mount) EntityManager::Instance()->SerializeEntity(mount);
|
||||
auto* mount = Game::entityManager->GetEntity(objectId);
|
||||
if (mount) Game::entityManager->SerializeEntity(mount);
|
||||
}
|
||||
|
||||
//Racing
|
||||
@@ -4137,13 +4117,13 @@ void GameMessages::HandleRacingClientReady(RakNet::BitStream* inStream, Entity*
|
||||
|
||||
inStream->Read(playerID);
|
||||
|
||||
auto* player = EntityManager::Instance()->GetEntity(playerID);
|
||||
auto* player = Game::entityManager->GetEntity(playerID);
|
||||
|
||||
if (player == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto* racingControlComponent = dZoneManager::Instance()->GetZoneControlObject()->GetComponent<RacingControlComponent>();
|
||||
auto* racingControlComponent = Game::zoneManager->GetZoneControlObject()->GetComponent<RacingControlComponent>();
|
||||
|
||||
if (racingControlComponent == nullptr) {
|
||||
return;
|
||||
@@ -4191,7 +4171,7 @@ void GameMessages::HandleRequestDie(RakNet::BitStream* inStream, Entity* entity,
|
||||
inStream->Read(lootOwnerID);
|
||||
}
|
||||
|
||||
auto* zoneController = dZoneManager::Instance()->GetZoneControlObject();
|
||||
auto* zoneController = Game::zoneManager->GetZoneControlObject();
|
||||
|
||||
auto* racingControlComponent = zoneController->GetComponent<RacingControlComponent>();
|
||||
|
||||
@@ -4201,7 +4181,7 @@ void GameMessages::HandleRequestDie(RakNet::BitStream* inStream, Entity* entity,
|
||||
auto* possessableComponent = entity->GetComponent<PossessableComponent>();
|
||||
|
||||
if (possessableComponent != nullptr) {
|
||||
entity = EntityManager::Instance()->GetEntity(possessableComponent->GetPossessor());
|
||||
entity = Game::entityManager->GetEntity(possessableComponent->GetPossessor());
|
||||
|
||||
if (entity == nullptr) {
|
||||
return;
|
||||
@@ -4228,13 +4208,13 @@ void GameMessages::HandleRacingPlayerInfoResetFinished(RakNet::BitStream* inStre
|
||||
|
||||
inStream->Read(playerID);
|
||||
|
||||
auto* player = EntityManager::Instance()->GetEntity(playerID);
|
||||
auto* player = Game::entityManager->GetEntity(playerID);
|
||||
|
||||
if (player == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto* zoneController = dZoneManager::Instance()->GetZoneControlObject();
|
||||
auto* zoneController = Game::zoneManager->GetZoneControlObject();
|
||||
|
||||
auto* racingControlComponent = zoneController->GetComponent<RacingControlComponent>();
|
||||
|
||||
@@ -4264,7 +4244,7 @@ void GameMessages::HandleUpdatePropertyPerformanceCost(RakNet::BitStream* inStre
|
||||
|
||||
if (performanceCost == 0.0f) return;
|
||||
|
||||
auto zone = dZoneManager::Instance()->GetZone();
|
||||
auto zone = Game::zoneManager->GetZone();
|
||||
const auto& worldId = zone->GetZoneID();
|
||||
const auto cloneId = worldId.GetCloneID();
|
||||
const auto zoneId = worldId.GetMapID();
|
||||
@@ -4292,7 +4272,7 @@ void GameMessages::HandleVehicleNotifyHitImaginationServer(RakNet::BitStream* in
|
||||
if (inStream->ReadBit()) inStream->Read(pickupSpawnerIndex);
|
||||
if (inStream->ReadBit()) inStream->Read(vehiclePosition);
|
||||
|
||||
auto* pickup = EntityManager::Instance()->GetEntity(pickupObjID);
|
||||
auto* pickup = Game::entityManager->GetEntity(pickupObjID);
|
||||
|
||||
if (pickup == nullptr) {
|
||||
return;
|
||||
@@ -4301,7 +4281,7 @@ void GameMessages::HandleVehicleNotifyHitImaginationServer(RakNet::BitStream* in
|
||||
auto* possessableComponent = entity->GetComponent<PossessableComponent>();
|
||||
|
||||
if (possessableComponent != nullptr) {
|
||||
entity = EntityManager::Instance()->GetEntity(possessableComponent->GetPossessor());
|
||||
entity = Game::entityManager->GetEntity(possessableComponent->GetPossessor());
|
||||
|
||||
if (entity == nullptr) {
|
||||
return;
|
||||
@@ -4692,7 +4672,7 @@ void GameMessages::HandleToggleGhostReferenceOverride(RakNet::BitStream* inStrea
|
||||
if (player != nullptr) {
|
||||
player->SetGhostOverride(bOverride);
|
||||
|
||||
EntityManager::Instance()->UpdateGhosting(player);
|
||||
Game::entityManager->UpdateGhosting(player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4707,7 +4687,7 @@ void GameMessages::HandleSetGhostReferencePosition(RakNet::BitStream* inStream,
|
||||
if (player != nullptr) {
|
||||
player->SetGhostOverridePoint(position);
|
||||
|
||||
EntityManager::Instance()->UpdateGhosting(player);
|
||||
Game::entityManager->UpdateGhosting(player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4725,7 +4705,7 @@ void GameMessages::HandleBuyFromVendor(RakNet::BitStream* inStream, Entity* enti
|
||||
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* player = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!player) return;
|
||||
|
||||
auto* propertyVendorComponent = static_cast<PropertyVendorComponent*>(entity->GetComponent(eReplicaComponentType::PROPERTY_VENDOR));
|
||||
@@ -4828,7 +4808,7 @@ void GameMessages::HandleSellToVendor(RakNet::BitStream* inStream, Entity* entit
|
||||
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* player = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!player) return;
|
||||
Character* character = player->GetCharacter();
|
||||
if (!character) return;
|
||||
@@ -4912,7 +4892,7 @@ void GameMessages::HandleBuybackFromVendor(RakNet::BitStream* inStream, Entity*
|
||||
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* player = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!player) return;
|
||||
Character* character = player->GetCharacter();
|
||||
if (!character) return;
|
||||
@@ -4952,7 +4932,7 @@ void GameMessages::HandleBuybackFromVendor(RakNet::BitStream* inStream, Entity*
|
||||
//inv->RemoveItem(count, -1, iObjID);
|
||||
inv->MoveItemToInventory(item, Inventory::FindInventoryTypeForLot(item->GetLot()), count, true, false);
|
||||
character->SetCoins(character->GetCoins() - cost, eLootSourceType::VENDOR);
|
||||
//EntityManager::Instance()->SerializeEntity(player); // so inventory updates
|
||||
//Game::entityManager->SerializeEntity(player); // so inventory updates
|
||||
GameMessages::SendVendorTransactionResult(entity, sysAddr);
|
||||
}
|
||||
|
||||
@@ -4999,7 +4979,7 @@ void GameMessages::HandleFireEventServerSide(RakNet::BitStream* inStream, Entity
|
||||
if (param3IsDefault) inStream->Read(param3);
|
||||
inStream->Read(senderID);
|
||||
|
||||
auto* sender = EntityManager::Instance()->GetEntity(senderID);
|
||||
auto* sender = Game::entityManager->GetEntity(senderID);
|
||||
auto* player = Player::GetPlayer(sysAddr);
|
||||
|
||||
if (!player) {
|
||||
@@ -5030,7 +5010,7 @@ void GameMessages::HandleFireEventServerSide(RakNet::BitStream* inStream, Entity
|
||||
}
|
||||
|
||||
if (mapId == 0) {
|
||||
mapId = dZoneManager::Instance()->GetZoneID().GetMapID(); // Fallback to sending the player back to the same zone.
|
||||
mapId = Game::zoneManager->GetZoneID().GetMapID(); // Fallback to sending the player back to the same zone.
|
||||
}
|
||||
|
||||
Game::logger->Log("FireEventServerSide", "Player %llu has requested zone transfer to (%i, %i).", sender->GetObjectID(), (int)mapId, (int)cloneId);
|
||||
@@ -5073,7 +5053,7 @@ void GameMessages::HandleRebuildCancel(RakNet::BitStream* inStream, Entity* enti
|
||||
RebuildComponent* rebComp = static_cast<RebuildComponent*>(entity->GetComponent(eReplicaComponentType::QUICK_BUILD));
|
||||
if (!rebComp) return;
|
||||
|
||||
rebComp->CancelRebuild(EntityManager::Instance()->GetEntity(userID), eQuickBuildFailReason::CANCELED_EARLY);
|
||||
rebComp->CancelRebuild(Game::entityManager->GetEntity(userID), eQuickBuildFailReason::CANCELED_EARLY);
|
||||
}
|
||||
|
||||
void GameMessages::HandleRequestUse(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
@@ -5089,7 +5069,7 @@ void GameMessages::HandleRequestUse(RakNet::BitStream* inStream, Entity* entity,
|
||||
inStream->Read(objectID);
|
||||
inStream->Read(secondary);
|
||||
|
||||
Entity* interactedObject = EntityManager::Instance()->GetEntity(objectID);
|
||||
Entity* interactedObject = Game::entityManager->GetEntity(objectID);
|
||||
|
||||
if (interactedObject == nullptr) {
|
||||
Game::logger->Log("GameMessages", "Object %llu tried to interact, but doesn't exist!", objectID);
|
||||
@@ -5142,7 +5122,7 @@ void GameMessages::HandlePlayEmote(RakNet::BitStream* inStream, Entity* entity)
|
||||
if (!missionComponent) return;
|
||||
|
||||
if (targetID != LWOOBJID_EMPTY) {
|
||||
auto* targetEntity = EntityManager::Instance()->GetEntity(targetID);
|
||||
auto* targetEntity = Game::entityManager->GetEntity(targetID);
|
||||
|
||||
Game::logger->LogDebug("GameMessages", "Emote target found (%d)", targetEntity != nullptr);
|
||||
|
||||
@@ -5152,7 +5132,7 @@ void GameMessages::HandlePlayEmote(RakNet::BitStream* inStream, Entity* entity)
|
||||
}
|
||||
} else {
|
||||
Game::logger->LogDebug("GameMessages", "Target ID is empty, using backup");
|
||||
const auto scriptedEntities = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SCRIPT);
|
||||
const auto scriptedEntities = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SCRIPT);
|
||||
|
||||
const auto& referencePoint = entity->GetPosition();
|
||||
|
||||
@@ -5180,7 +5160,7 @@ void GameMessages::HandleModularBuildConvertModel(RakNet::BitStream* inStream, E
|
||||
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* character = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* character = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!character) return;
|
||||
InventoryComponent* inv = static_cast<InventoryComponent*>(character->GetComponent(eReplicaComponentType::INVENTORY));
|
||||
if (!inv) return;
|
||||
@@ -5238,7 +5218,7 @@ void GameMessages::HandleRespondToMission(RakNet::BitStream* inStream, Entity* e
|
||||
Game::logger->Log("GameMessages", "Unable to get mission %i for entity %llu to update reward in RespondToMission", missionID, playerID);
|
||||
}
|
||||
|
||||
Entity* offerer = EntityManager::Instance()->GetEntity(receiverID);
|
||||
Entity* offerer = Game::entityManager->GetEntity(receiverID);
|
||||
|
||||
if (offerer == nullptr) {
|
||||
Game::logger->Log("GameMessages", "Unable to get receiver entity %llu for RespondToMission", receiverID);
|
||||
@@ -5246,7 +5226,7 @@ void GameMessages::HandleRespondToMission(RakNet::BitStream* inStream, Entity* e
|
||||
}
|
||||
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(offerer)) {
|
||||
script->OnRespondToMission(offerer, missionID, EntityManager::Instance()->GetEntity(playerID), reward);
|
||||
script->OnRespondToMission(offerer, missionID, Game::entityManager->GetEntity(playerID), reward);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5261,7 +5241,7 @@ void GameMessages::HandleMissionDialogOK(RakNet::BitStream* inStream, Entity* en
|
||||
inStream->Read(iMissionState);
|
||||
inStream->Read(missionID);
|
||||
inStream->Read(responder);
|
||||
player = EntityManager::Instance()->GetEntity(responder);
|
||||
player = Game::entityManager->GetEntity(responder);
|
||||
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(entity)) {
|
||||
script->OnMissionDialogueOK(entity, player, missionID, iMissionState);
|
||||
@@ -5290,7 +5270,7 @@ void GameMessages::HandleRequestLinkedMission(RakNet::BitStream* inStream, Entit
|
||||
inStream->Read(missionId);
|
||||
inStream->Read(bMissionOffered);
|
||||
|
||||
auto* player = EntityManager::Instance()->GetEntity(playerId);
|
||||
auto* player = Game::entityManager->GetEntity(playerId);
|
||||
|
||||
auto* missionOfferComponent = static_cast<MissionOfferComponent*>(entity->GetComponent(eReplicaComponentType::MISSION_OFFER));
|
||||
|
||||
@@ -5303,7 +5283,7 @@ void GameMessages::HandleHasBeenCollected(RakNet::BitStream* inStream, Entity* e
|
||||
LWOOBJID playerID;
|
||||
inStream->Read(playerID);
|
||||
|
||||
Entity* player = EntityManager::Instance()->GetEntity(playerID);
|
||||
Entity* player = Game::entityManager->GetEntity(playerID);
|
||||
if (!player || !entity || entity->GetCollectibleID() == 0) return;
|
||||
|
||||
MissionComponent* missionComponent = static_cast<MissionComponent*>(player->GetComponent(eReplicaComponentType::MISSION));
|
||||
@@ -5417,7 +5397,7 @@ void GameMessages::HandleEquipItem(RakNet::BitStream* inStream, Entity* entity)
|
||||
|
||||
item->Equip();
|
||||
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
}
|
||||
|
||||
void GameMessages::HandleUnequipItem(RakNet::BitStream* inStream, Entity* entity) {
|
||||
@@ -5437,7 +5417,7 @@ void GameMessages::HandleUnequipItem(RakNet::BitStream* inStream, Entity* entity
|
||||
|
||||
item->UnEquip();
|
||||
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
}
|
||||
|
||||
void GameMessages::HandleRemoveItemFromInventory(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
@@ -5522,7 +5502,7 @@ void GameMessages::HandleRemoveItemFromInventory(RakNet::BitStream* inStream, En
|
||||
}
|
||||
|
||||
item->SetCount(item->GetCount() - iStackCount, true);
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
|
||||
auto* missionComponent = entity->GetComponent<MissionComponent>();
|
||||
|
||||
@@ -5556,7 +5536,7 @@ void GameMessages::HandleMoveItemInInventory(RakNet::BitStream* inStream, Entity
|
||||
}
|
||||
|
||||
inv->MoveStack(item, static_cast<eInventoryType>(destInvType), slot);
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
}
|
||||
|
||||
void GameMessages::HandleMoveItemBetweenInventoryTypes(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
@@ -5602,7 +5582,7 @@ void GameMessages::HandleMoveItemBetweenInventoryTypes(RakNet::BitStream* inStre
|
||||
}
|
||||
|
||||
inv->MoveItemToInventory(item, inventoryTypeB, stackCount, showFlyingLoot);
|
||||
EntityManager::Instance()->SerializeEntity(entity);
|
||||
Game::entityManager->SerializeEntity(entity);
|
||||
}
|
||||
|
||||
void GameMessages::HandleBuildModeSet(RakNet::BitStream* inStream, Entity* entity) {
|
||||
@@ -5621,7 +5601,7 @@ void GameMessages::HandleBuildModeSet(RakNet::BitStream* inStream, Entity* entit
|
||||
void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* character = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* character = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!character) return;
|
||||
InventoryComponent* inv = static_cast<InventoryComponent*>(character->GetComponent(eReplicaComponentType::INVENTORY));
|
||||
if (!inv) return;
|
||||
@@ -5632,7 +5612,7 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity*
|
||||
GameMessages::SendModularBuildEnd(character); // i dont know if this does anything but DLUv2 did it
|
||||
|
||||
//inv->UnequipItem(inv->GetItemStackByLOT(6086, eInventoryType::ITEMS)); // take off the thinking cap
|
||||
//EntityManager::Instance()->SerializeEntity(entity);
|
||||
//Game::entityManager->SerializeEntity(entity);
|
||||
|
||||
uint8_t count; // 3 for rockets, 7 for cars
|
||||
|
||||
@@ -5709,7 +5689,7 @@ void GameMessages::HandleModularBuildFinish(RakNet::BitStream* inStream, Entity*
|
||||
void GameMessages::HandleDoneArrangingWithItem(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* character = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* character = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!character) return;
|
||||
InventoryComponent* inv = static_cast<InventoryComponent*>(character->GetComponent(eReplicaComponentType::INVENTORY));
|
||||
if (!inv) return;
|
||||
@@ -5762,9 +5742,9 @@ void GameMessages::HandleDoneArrangingWithItem(RakNet::BitStream* inStream, Enti
|
||||
*/
|
||||
|
||||
if (PropertyManagementComponent::Instance() != nullptr) {
|
||||
const auto& buildAreas = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::BUILD_BORDER);
|
||||
const auto& buildAreas = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::BUILD_BORDER);
|
||||
|
||||
const auto& entities = EntityManager::Instance()->GetEntitiesInGroup("PropertyPlaque");
|
||||
const auto& entities = Game::entityManager->GetEntitiesInGroup("PropertyPlaque");
|
||||
|
||||
Entity* buildArea;
|
||||
|
||||
@@ -5820,7 +5800,7 @@ void GameMessages::HandleDoneArrangingWithItem(RakNet::BitStream* inStream, Enti
|
||||
void GameMessages::HandleModularBuildMoveAndEquip(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* character = EntityManager::Instance()->GetEntity(user->GetLoggedInChar());
|
||||
Entity* character = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!character) return;
|
||||
|
||||
Game::logger->Log("GameMessages", "Build and move");
|
||||
@@ -5853,7 +5833,7 @@ void GameMessages::HandlePickupItem(RakNet::BitStream* inStream, Entity* entity)
|
||||
|
||||
if (team != nullptr) {
|
||||
for (const auto memberId : team->members) {
|
||||
auto* member = EntityManager::Instance()->GetEntity(memberId);
|
||||
auto* member = Game::entityManager->GetEntity(memberId);
|
||||
|
||||
if (member == nullptr || memberId == playerID) continue;
|
||||
|
||||
@@ -5865,12 +5845,12 @@ void GameMessages::HandlePickupItem(RakNet::BitStream* inStream, Entity* entity)
|
||||
void GameMessages::HandleResurrect(RakNet::BitStream* inStream, Entity* entity) {
|
||||
bool immediate = inStream->ReadBit();
|
||||
|
||||
Entity* zoneControl = EntityManager::Instance()->GetZoneControlEntity();
|
||||
Entity* zoneControl = Game::entityManager->GetZoneControlEntity();
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(zoneControl)) {
|
||||
script->OnPlayerResurrected(zoneControl, entity);
|
||||
}
|
||||
|
||||
std::vector<Entity*> scriptedActs = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SCRIPTED_ACTIVITY);
|
||||
std::vector<Entity*> scriptedActs = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SCRIPTED_ACTIVITY);
|
||||
for (Entity* scriptEntity : scriptedActs) {
|
||||
if (scriptEntity->GetObjectID() != zoneControl->GetObjectID()) { // Don't want to trigger twice on instance worlds
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(scriptEntity)) {
|
||||
@@ -5890,7 +5870,7 @@ void GameMessages::HandlePopEquippedItemsState(RakNet::BitStream* inStream, Enti
|
||||
InventoryComponent* inv = static_cast<InventoryComponent*>(entity->GetComponent(eReplicaComponentType::INVENTORY));
|
||||
if (!inv) return;
|
||||
inv->PopEquippedItems();
|
||||
EntityManager::Instance()->SerializeEntity(entity); // so it updates on client side
|
||||
Game::entityManager->SerializeEntity(entity); // so it updates on client side
|
||||
}
|
||||
|
||||
|
||||
@@ -5956,7 +5936,7 @@ void GameMessages::HandleMatchRequest(RakNet::BitStream* inStream, Entity* entit
|
||||
inStream->Read(type);
|
||||
inStream->Read(value);
|
||||
|
||||
std::vector<Entity*> scriptedActs = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SCRIPTED_ACTIVITY);
|
||||
std::vector<Entity*> scriptedActs = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::SCRIPTED_ACTIVITY);
|
||||
if (type == 0) { // join
|
||||
if (value != 0) {
|
||||
for (Entity* scriptedAct : scriptedActs) {
|
||||
@@ -6089,7 +6069,7 @@ void GameMessages::HandleReportBug(RakNet::BitStream* inStream, Entity* entity)
|
||||
|
||||
void
|
||||
GameMessages::HandleClientRailMovementReady(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
const auto possibleRails = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::RAIL_ACTIVATOR);
|
||||
const auto possibleRails = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RAIL_ACTIVATOR);
|
||||
for (const auto* possibleRail : possibleRails) {
|
||||
const auto* rail = possibleRail->GetComponent<RailActivatorComponent>();
|
||||
if (rail != nullptr) {
|
||||
@@ -6101,7 +6081,7 @@ GameMessages::HandleClientRailMovementReady(RakNet::BitStream* inStream, Entity*
|
||||
void GameMessages::HandleCancelRailMovement(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
const auto immediate = inStream->ReadBit();
|
||||
|
||||
const auto possibleRails = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::RAIL_ACTIVATOR);
|
||||
const auto possibleRails = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RAIL_ACTIVATOR);
|
||||
for (const auto* possibleRail : possibleRails) {
|
||||
auto* rail = possibleRail->GetComponent<RailActivatorComponent>();
|
||||
if (rail != nullptr) {
|
||||
@@ -6125,7 +6105,7 @@ void GameMessages::HandlePlayerRailArrivedNotification(RakNet::BitStream* inStre
|
||||
int32_t waypointNumber;
|
||||
inStream->Read(waypointNumber);
|
||||
|
||||
const auto possibleRails = EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::RAIL_ACTIVATOR);
|
||||
const auto possibleRails = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RAIL_ACTIVATOR);
|
||||
for (auto* possibleRail : possibleRails) {
|
||||
for (CppScripts::Script* script : CppScripts::GetEntityScripts(possibleRail)) {
|
||||
script->OnPlayerRailArrived(possibleRail, entity, pathName, waypointNumber);
|
||||
@@ -6218,7 +6198,7 @@ void GameMessages::SendDeactivateBubbleBuffFromServer(LWOOBJID objectId, const S
|
||||
void GameMessages::HandleZoneSummaryDismissed(RakNet::BitStream* inStream, Entity* entity) {
|
||||
LWOOBJID player_id;
|
||||
inStream->Read<LWOOBJID>(player_id);
|
||||
auto target = EntityManager::Instance()->GetEntity(player_id);
|
||||
auto target = Game::entityManager->GetEntity(player_id);
|
||||
entity->TriggerEvent(eTriggerEventType::ZONE_SUMMARY_DISMISSED, target);
|
||||
};
|
||||
|
||||
@@ -6258,7 +6238,108 @@ void GameMessages::HandleRequestActivityExit(RakNet::BitStream* inStream, Entity
|
||||
|
||||
LWOOBJID player_id = LWOOBJID_EMPTY;
|
||||
inStream->Read(player_id);
|
||||
auto player = EntityManager::Instance()->GetEntity(player_id);
|
||||
auto player = Game::entityManager->GetEntity(player_id);
|
||||
if (!entity || !player) return;
|
||||
entity->RequestActivityExit(entity, player_id, canceled);
|
||||
}
|
||||
|
||||
void GameMessages::HandleAddDonationItem(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
uint32_t count = 1;
|
||||
bool hasCount = false;
|
||||
inStream->Read(hasCount);
|
||||
if (hasCount) inStream->Read(count);
|
||||
LWOOBJID itemId = LWOOBJID_EMPTY;
|
||||
inStream->Read(itemId);
|
||||
if (!itemId) return;
|
||||
|
||||
auto* donationVendorComponent = entity->GetComponent<DonationVendorComponent>();
|
||||
if (!donationVendorComponent) return;
|
||||
if (donationVendorComponent->GetActivityID() == 0) {
|
||||
Game::logger->Log("GameMessages", "WARNING: Trying to dontate to a vendor with no activity");
|
||||
return;
|
||||
}
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!player) return;
|
||||
auto* characterComponent = player->GetComponent<CharacterComponent>();
|
||||
if (!characterComponent) return;
|
||||
auto* inventoryComponent = player->GetComponent<InventoryComponent>();
|
||||
if (!inventoryComponent) return;
|
||||
Item* item = inventoryComponent->FindItemById(itemId);
|
||||
if (!item) return;
|
||||
if (item->GetCount() < count) return;
|
||||
characterComponent->SetCurrentInteracting(entity->GetObjectID());
|
||||
inventoryComponent->MoveItemToInventory(item, eInventoryType::DONATION, count, true, false, true);
|
||||
}
|
||||
|
||||
void GameMessages::HandleRemoveDonationItem(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr) {
|
||||
bool confirmed = false;
|
||||
inStream->Read(confirmed);
|
||||
uint32_t count = 1;
|
||||
bool hasCount = false;
|
||||
inStream->Read(hasCount);
|
||||
if (hasCount) inStream->Read(count);
|
||||
LWOOBJID itemId = LWOOBJID_EMPTY;
|
||||
inStream->Read(itemId);
|
||||
if (!itemId) return;
|
||||
|
||||
User* user = UserManager::Instance()->GetUser(sysAddr);
|
||||
if (!user) return;
|
||||
Entity* player = Game::entityManager->GetEntity(user->GetLoggedInChar());
|
||||
if (!player) return;
|
||||
|
||||
auto* inventoryComponent = player->GetComponent<InventoryComponent>();
|
||||
if (!inventoryComponent) return;
|
||||
|
||||
Item* item = inventoryComponent->FindItemById(itemId);
|
||||
if (!item) return;
|
||||
if (item->GetCount() < count) return;
|
||||
inventoryComponent->MoveItemToInventory(item, eInventoryType::BRICKS, count, true, false, true);
|
||||
}
|
||||
|
||||
void GameMessages::HandleConfirmDonationOnPlayer(RakNet::BitStream* inStream, Entity* entity) {
|
||||
auto* inventoryComponent = entity->GetComponent<InventoryComponent>();
|
||||
if (!inventoryComponent) return;
|
||||
auto* missionComponent = entity->GetComponent<MissionComponent>();
|
||||
if (!missionComponent) return;
|
||||
auto* characterComponent = entity->GetComponent<CharacterComponent>();
|
||||
if (!characterComponent || !characterComponent->GetCurrentInteracting()) return;
|
||||
auto* donationEntity = Game::entityManager->GetEntity(characterComponent->GetCurrentInteracting());
|
||||
if (!donationEntity) return;
|
||||
auto* donationVendorComponent = donationEntity->GetComponent<DonationVendorComponent>();
|
||||
if(!donationVendorComponent) return;
|
||||
if (donationVendorComponent->GetActivityID() == 0) {
|
||||
Game::logger->Log("GameMessages", "WARNING: Trying to dontate to a vendor with no activity");
|
||||
return;
|
||||
}
|
||||
auto* inventory = inventoryComponent->GetInventory(eInventoryType::DONATION);
|
||||
if (!inventory) return;
|
||||
auto items = inventory->GetItems();
|
||||
if (!items.empty()) {
|
||||
uint32_t count = 0;
|
||||
for (auto& [itemID, item] : items){
|
||||
count += item->GetCount();
|
||||
item->RemoveFromInventory();
|
||||
}
|
||||
missionComponent->Progress(eMissionTaskType::DONATION, 0, LWOOBJID_EMPTY, "", count);
|
||||
LeaderboardManager::SaveScore(entity->GetObjectID(), donationVendorComponent->GetActivityID(), count);
|
||||
donationVendorComponent->SubmitDonation(count);
|
||||
Game::entityManager->SerializeEntity(donationEntity);
|
||||
}
|
||||
characterComponent->SetCurrentInteracting(LWOOBJID_EMPTY);
|
||||
}
|
||||
|
||||
void GameMessages::HandleCancelDonationOnPlayer(RakNet::BitStream* inStream, Entity* entity) {
|
||||
auto* inventoryComponent = entity->GetComponent<InventoryComponent>();
|
||||
if (!inventoryComponent) return;
|
||||
auto* inventory = inventoryComponent->GetInventory(eInventoryType::DONATION);
|
||||
if (!inventory) return;
|
||||
auto items = inventory->GetItems();
|
||||
for (auto& [itemID, item] : items){
|
||||
inventoryComponent->MoveItemToInventory(item, eInventoryType::BRICKS, item->GetCount(), false, false, true);
|
||||
}
|
||||
auto* characterComponent = entity->GetComponent<CharacterComponent>();
|
||||
if (!characterComponent) return;
|
||||
characterComponent->SetCurrentInteracting(LWOOBJID_EMPTY);
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ enum class eRebuildState : uint32_t;
|
||||
namespace GameMessages {
|
||||
class PropertyDataMessage;
|
||||
void SendFireEventClientSide(const LWOOBJID& objectID, const SystemAddress& sysAddr, std::u16string args, const LWOOBJID& object, int64_t param1, int param2, const LWOOBJID& sender);
|
||||
void SendTeleport(const LWOOBJID& objectID, const NiPoint3& pos, const NiQuaternion& rot, const SystemAddress& sysAddr, bool bSetRotation = false, bool noGravTeleport = true);
|
||||
void SendTeleport(const LWOOBJID& objectID, const NiPoint3& pos, const NiQuaternion& rot, const SystemAddress& sysAddr, bool bSetRotation = false);
|
||||
void SendPlayAnimation(Entity* entity, const std::u16string& animationName, float fPriority = 0.0f, float fScale = 1.0f);
|
||||
void SendPlayerReady(Entity* entity, const SystemAddress& sysAddr);
|
||||
void SendPlayerAllowedRespawn(LWOOBJID entityID, bool doNotPromptRespawn, const SystemAddress& systemAddress);
|
||||
@@ -364,7 +364,7 @@ namespace GameMessages {
|
||||
//Pets:
|
||||
void SendNotifyPetTamingMinigame(LWOOBJID objectId, LWOOBJID petId, LWOOBJID playerTamingId, bool bForceTeleport, ePetTamingNotifyType notifyType, NiPoint3 petsDestPos, NiPoint3 telePos, NiQuaternion teleRot, const SystemAddress& sysAddr);
|
||||
|
||||
void SendNotifyPetTamingPuzzleSelected(LWOOBJID objectId, std::vector<Brick>& bricks, const SystemAddress& sysAddr);
|
||||
void SendNotifyPetTamingPuzzleSelected(LWOOBJID objectId, const std::vector<Brick>& bricks, const SystemAddress& sysAddr);
|
||||
|
||||
void SendNotifyTamingModelLoadedOnServer(LWOOBJID objectId, const SystemAddress& sysAddr);
|
||||
|
||||
@@ -649,6 +649,12 @@ namespace GameMessages {
|
||||
|
||||
void HandleZoneSummaryDismissed(RakNet::BitStream* inStream, Entity* entity);
|
||||
void HandleRequestActivityExit(RakNet::BitStream* inStream, Entity* entity);
|
||||
|
||||
// Donation vendor
|
||||
void HandleAddDonationItem(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr);
|
||||
void HandleRemoveDonationItem(RakNet::BitStream* inStream, Entity* entity, const SystemAddress& sysAddr);
|
||||
void HandleConfirmDonationOnPlayer(RakNet::BitStream* inStream, Entity* entity);
|
||||
void HandleCancelDonationOnPlayer(RakNet::BitStream* inStream, Entity* entity);
|
||||
};
|
||||
|
||||
#endif // GAMEMESSAGES_H
|
||||
|
Reference in New Issue
Block a user