mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-10 02:08:20 +00:00
Fix race exit dialogue always exiting (#1077)
Fixes #1048 Tested that closing the dialog via esc, the x in the top right, or the big red x doesn't exit the race Tested that the green check button does exit the race
This commit is contained in:
parent
ce931c2cfe
commit
4ff5afd9f7
@ -362,8 +362,7 @@ void RacingControlComponent::OnRacingPlayerInfoResetFinished(Entity* player) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RacingControlComponent::HandleMessageBoxResponse(Entity* player,
|
void RacingControlComponent::HandleMessageBoxResponse(Entity* player, int32_t button, const std::string& id) {
|
||||||
const std::string& id) {
|
|
||||||
auto* data = GetPlayerData(player->GetObjectID());
|
auto* data = GetPlayerData(player->GetObjectID());
|
||||||
|
|
||||||
if (data == nullptr) {
|
if (data == nullptr) {
|
||||||
@ -405,7 +404,7 @@ void RacingControlComponent::HandleMessageBoxResponse(Entity* player,
|
|||||||
missionComponent->Progress(eMissionTaskType::RACING, dZoneManager::Instance()->GetZone()->GetWorldID(), (LWOOBJID)eRacingTaskParam::LAST_PLACE_FINISH); // Finished first place in specific world.
|
missionComponent->Progress(eMissionTaskType::RACING, dZoneManager::Instance()->GetZone()->GetWorldID(), (LWOOBJID)eRacingTaskParam::LAST_PLACE_FINISH); // Finished first place in specific world.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (id == "ACT_RACE_EXIT_THE_RACE?" || id == "Exit") {
|
} else if (id == "ACT_RACE_EXIT_THE_RACE?" && button == m_ActivityExitConfirm) {
|
||||||
auto* vehicle = EntityManager::Instance()->GetEntity(data->vehicleID);
|
auto* vehicle = EntityManager::Instance()->GetEntity(data->vehicleID);
|
||||||
|
|
||||||
if (vehicle == nullptr) {
|
if (vehicle == nullptr) {
|
||||||
|
@ -144,7 +144,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Invoked when the player responds to the GUI.
|
* Invoked when the player responds to the GUI.
|
||||||
*/
|
*/
|
||||||
void HandleMessageBoxResponse(Entity* player, const std::string& id);
|
void HandleMessageBoxResponse(Entity* player, int32_t button, const std::string& id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the racing data from a player's LWOOBJID.
|
* Get the racing data from a player's LWOOBJID.
|
||||||
@ -246,4 +246,9 @@ private:
|
|||||||
float m_EmptyTimer;
|
float m_EmptyTimer;
|
||||||
|
|
||||||
bool m_SoloRacing;
|
bool m_SoloRacing;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value for message box response to know if we are exiting the race via the activity dialogue
|
||||||
|
*/
|
||||||
|
const int32_t m_ActivityExitConfirm = 1;
|
||||||
};
|
};
|
||||||
|
@ -3891,7 +3891,7 @@ void GameMessages::HandleMessageBoxResponse(RakNet::BitStream* inStream, Entity*
|
|||||||
auto* racingControlComponent = entity->GetComponent<RacingControlComponent>();
|
auto* racingControlComponent = entity->GetComponent<RacingControlComponent>();
|
||||||
|
|
||||||
if (racingControlComponent != nullptr) {
|
if (racingControlComponent != nullptr) {
|
||||||
racingControlComponent->HandleMessageBoxResponse(userEntity, GeneralUtils::UTF16ToWTF8(identifier));
|
racingControlComponent->HandleMessageBoxResponse(userEntity, iButton, GeneralUtils::UTF16ToWTF8(identifier));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto* shootingGallery : EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SHOOTING_GALLERY)) {
|
for (auto* shootingGallery : EntityManager::Instance()->GetEntitiesByComponent(eReplicaComponentType::SHOOTING_GALLERY)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user