mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-06-17 04:04:21 +00:00
chore: cleanup pointer management for LDF data (#1995)
* change network settings from vector to LwoNameValue * move settings on Entity to managed memory * Migrate more members * chore: remove pointer leakage from raw ldf pointers * feedback * fix ci
This commit is contained in:
@@ -38,10 +38,8 @@ void FvPandaSpawnerServer::OnCollisionPhantom(Entity* self, Entity* target) {
|
||||
info.spawnerID = target->GetObjectID();
|
||||
info.pos = self->GetPosition();
|
||||
info.lot = 5643;
|
||||
info.settings = {
|
||||
new LDFData<LWOOBJID>(u"tamer", target->GetObjectID()),
|
||||
new LDFData<std::u16string>(u"groupID", u"panda" + (GeneralUtils::to_u16string(target->GetObjectID())) + u";pandas")
|
||||
};
|
||||
info.settings.Insert<LWOOBJID>(u"tamer", target->GetObjectID());
|
||||
info.settings.Insert<std::u16string>(u"groupID", u"panda" + (GeneralUtils::to_u16string(target->GetObjectID())) + u";pandas");
|
||||
|
||||
auto* panda = Game::entityManager->CreateEntity(info);
|
||||
Game::entityManager->ConstructEntity(panda);
|
||||
|
||||
@@ -66,7 +66,7 @@ void GfBanana::OnHit(Entity* self, Entity* attacker) {
|
||||
info.pos.z -= QuatUtils::Right(rotation).z * 5;
|
||||
info.rot = rotation;
|
||||
info.spawnerID = self->GetObjectID();
|
||||
info.settings = { new LDFData<uint32_t>(u"motionType", 5) };
|
||||
info.settings.Insert<uint32_t>(u"motionType", 5);
|
||||
auto* const newEn = Game::entityManager->CreateEntity(info, nullptr, self);
|
||||
Game::entityManager->ConstructEntity(newEn);
|
||||
}
|
||||
|
||||
@@ -13,14 +13,12 @@ void PetDigBuild::OnQuickBuildComplete(Entity* self, Entity* target) {
|
||||
info.pos = pos;
|
||||
info.rot = self->GetRotation();
|
||||
info.spawnerID = self->GetSpawnerID();
|
||||
info.settings = {
|
||||
new LDFData<LWOOBJID>(u"builder", target->GetObjectID()),
|
||||
new LDFData<LWOOBJID>(u"X", self->GetObjectID())
|
||||
};
|
||||
info.settings.Insert<LWOOBJID>(u"builder", target->GetObjectID());
|
||||
info.settings.Insert<LWOOBJID>(u"X", self->GetObjectID());
|
||||
|
||||
if (!flagNumber.empty()) {
|
||||
info.lot = 7410; // Normal GF treasure
|
||||
info.settings.push_back(new LDFData<std::u16string>(u"groupID", u"Flag" + flagNumber));
|
||||
info.settings.Insert<std::u16string>(u"groupID", u"Flag" + flagNumber);
|
||||
} else {
|
||||
auto* missionComponent = target->GetComponent<MissionComponent>();
|
||||
if (missionComponent != nullptr && missionComponent->GetMissionState(746) == eMissionState::ACTIVE) {
|
||||
|
||||
@@ -261,15 +261,13 @@ void SGCannon::DoSpawnTimerFunc(Entity* self, const std::string& name) {
|
||||
info.spawnerID = self->GetObjectID();
|
||||
info.pos = path->pathWaypoints[0].position;
|
||||
|
||||
info.settings = {
|
||||
new LDFData<SGEnemy>(u"SpawnData", toSpawn),
|
||||
new LDFData<std::string>(u"custom_script_server", "scripts/ai/ACT/SG_TARGET.lua"), // this script is never loaded
|
||||
new LDFData<std::string>(u"custom_script_client", "scripts/client/ai/SG_TARGET_CLIENT.lua"),
|
||||
new LDFData<std::string>(u"attached_path", path->pathName),
|
||||
new LDFData<uint32_t>(u"attached_path_start", 0),
|
||||
new LDFData<std::u16string>(u"groupID", u"SGEnemy"),
|
||||
new LDFData<uint32_t>(u"wave", self->GetVar<uint32_t>(ThisWaveVariable)),
|
||||
};
|
||||
info.settings.Insert<SGEnemy>(u"SpawnData", toSpawn);
|
||||
info.settings.Insert<std::string>(u"custom_script_server", "scripts/ai/ACT/SG_TARGET.lua"); // this script is never loaded;
|
||||
info.settings.Insert<std::string>(u"custom_script_client", "scripts/client/ai/SG_TARGET_CLIENT.lua");
|
||||
info.settings.Insert<std::string>(u"attached_path", path->pathName);
|
||||
info.settings.Insert<uint32_t>(u"attached_path_start", 0);
|
||||
info.settings.Insert<std::u16string>(u"groupID", u"SGEnemy");
|
||||
info.settings.Insert<uint32_t>(u"wave", self->GetVar<uint32_t>(ThisWaveVariable));
|
||||
|
||||
auto* enemy = Game::entityManager->CreateEntity(info, nullptr, self);
|
||||
|
||||
@@ -621,10 +619,11 @@ void SGCannon::OnActivityNotify(Entity* self, GameMessages::ActivityNotify& noti
|
||||
if (!self->GetVar<bool>(GameStartedVariable)) return;
|
||||
|
||||
const auto& params = notify.notification;
|
||||
if (params.empty()) return;
|
||||
const auto itr = params.values.find(u"shot_done");
|
||||
if (itr == params.values.end()) return;
|
||||
|
||||
const auto& param = params[0];
|
||||
if (param->GetValueType() != LDF_TYPE_S32 || param->GetKey() != u"shot_done") return;
|
||||
const auto& param = itr->second;
|
||||
if (param->GetValueType() != LDF_TYPE_S32) return;
|
||||
|
||||
const auto superChargeShotDone = static_cast<LDFData<int32_t>*>(param.get())->GetValue() == GetConstants().cannonSuperChargeSkill;
|
||||
|
||||
|
||||
@@ -6,13 +6,11 @@
|
||||
void RockHydrantSmashable::OnDie(Entity* self, Entity* killer) {
|
||||
const auto hydrantName = self->GetVar<std::u16string>(u"hydrant");
|
||||
|
||||
LDFBaseData* data = new LDFData<std::string>(u"hydrant", GeneralUtils::UTF16ToWTF8(hydrantName));
|
||||
|
||||
EntityInfo info{};
|
||||
info.lot = ROCK_HYDRANT_BROKEN;
|
||||
info.pos = self->GetPosition();
|
||||
info.rot = self->GetRotation();
|
||||
info.settings = { data };
|
||||
info.settings.Insert<std::string>(u"hydrant", GeneralUtils::UTF16ToWTF8(hydrantName));
|
||||
info.spawnerID = self->GetSpawnerID();
|
||||
|
||||
auto* hydrant = Game::entityManager->CreateEntity(info);
|
||||
|
||||
@@ -6,13 +6,11 @@
|
||||
void HydrantSmashable::OnDie(Entity* self, Entity* killer) {
|
||||
const auto hydrantName = self->GetVar<std::u16string>(u"hydrant");
|
||||
|
||||
LDFBaseData* data = new LDFData<std::string>(u"hydrant", GeneralUtils::UTF16ToWTF8(hydrantName));
|
||||
|
||||
EntityInfo info{};
|
||||
info.lot = HYDRANT_BROKEN;
|
||||
info.pos = self->GetPosition();
|
||||
info.rot = self->GetRotation();
|
||||
info.settings = { data };
|
||||
info.settings.Insert<std::string>(u"hydrant", GeneralUtils::UTF16ToWTF8(hydrantName));
|
||||
info.spawnerID = self->GetSpawnerID();
|
||||
|
||||
auto* hydrant = Game::entityManager->CreateEntity(info);
|
||||
|
||||
@@ -10,46 +10,42 @@ void FvRaceServer::OnStartup(Entity* self) {
|
||||
GameMessages::ConfigureRacingControl config;
|
||||
auto& raceSet = config.racingSettings;
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"GameType", u"Racing"));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"GameState", u"Starting"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_Of_PlayersPerTeam", 6));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Minimum_Players_to_Start", 2));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Minimum_Players_for_Group_Achievements", 2));
|
||||
raceSet.Insert<std::u16string>(u"GameType", u"Racing");
|
||||
raceSet.Insert<std::u16string>(u"GameState", u"Starting");
|
||||
raceSet.Insert<int32_t>(u"Number_Of_PlayersPerTeam", 6);
|
||||
raceSet.Insert<int32_t>(u"Minimum_Players_to_Start", 2);
|
||||
raceSet.Insert<int32_t>(u"Minimum_Players_for_Group_Achievements", 2);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Car_Object", 7703));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"Race_PathName", u"MainPath"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Current_Lap", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_of_Laps", 3));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"activityID", 54));
|
||||
raceSet.Insert<int32_t>(u"Car_Object", 7703);
|
||||
raceSet.Insert<std::u16string>(u"Race_PathName", u"MainPath");
|
||||
raceSet.Insert<int32_t>(u"Current_Lap", 1);
|
||||
raceSet.Insert<int32_t>(u"Number_of_Laps", 3);
|
||||
raceSet.Insert<int32_t>(u"activityID", 54);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_1", 100));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_2", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_3", 80));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_4", 70));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_5", 60));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_6", 50));
|
||||
raceSet.Insert<int32_t>(u"Place_1", 100);
|
||||
raceSet.Insert<int32_t>(u"Place_2", 90);
|
||||
raceSet.Insert<int32_t>(u"Place_3", 80);
|
||||
raceSet.Insert<int32_t>(u"Place_4", 70);
|
||||
raceSet.Insert<int32_t>(u"Place_5", 60);
|
||||
raceSet.Insert<int32_t>(u"Place_6", 50);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_1", 15));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_2", 25));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_3", 50));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_4", 85));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_5", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_6", 100));
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_1", 15);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_2", 25);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_3", 50);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_4", 85);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_5", 90);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_6", 100);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_of_Spawn_Groups", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Spawners", 4847));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Spawners", 4848));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Flag", 4850));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Flag", 4851));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Point", 4846));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Point", 4845));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Mark", 4844));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Mark", 4843));
|
||||
raceSet.Insert<int32_t>(u"Number_of_Spawn_Groups", 1);
|
||||
raceSet.Insert<int32_t>(u"Red_Spawners", 4847);
|
||||
raceSet.Insert<int32_t>(u"Blue_Spawners", 4848);
|
||||
raceSet.Insert<int32_t>(u"Blue_Flag", 4850);
|
||||
raceSet.Insert<int32_t>(u"Red_Flag", 4851);
|
||||
raceSet.Insert<int32_t>(u"Red_Point", 4846);
|
||||
raceSet.Insert<int32_t>(u"Blue_Point", 4845);
|
||||
raceSet.Insert<int32_t>(u"Red_Mark", 4844);
|
||||
raceSet.Insert<int32_t>(u"Blue_Mark", 4843);
|
||||
|
||||
const std::vector<Entity*> racingControllers = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RACING_CONTROL);
|
||||
for (auto* const racingController : racingControllers) {
|
||||
auto* racingComponent = racingController->GetComponent<RacingControlComponent>();
|
||||
if (racingComponent) racingComponent->MsgConfigureRacingControl(config);
|
||||
}
|
||||
config.Send(self->GetObjectID());
|
||||
}
|
||||
|
||||
|
||||
@@ -10,46 +10,42 @@ void GfRaceServer::OnStartup(Entity* self) {
|
||||
GameMessages::ConfigureRacingControl config;
|
||||
auto& raceSet = config.racingSettings;
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"GameType", u"Racing"));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"GameState", u"Starting"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_Of_PlayersPerTeam", 6));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Minimum_Players_to_Start", 2));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Minimum_Players_for_Group_Achievements", 2));
|
||||
raceSet.Insert<std::u16string>(u"GameType", u"Racing");
|
||||
raceSet.Insert<std::u16string>(u"GameState", u"Starting");
|
||||
raceSet.Insert<int32_t>(u"Number_Of_PlayersPerTeam", 6);
|
||||
raceSet.Insert<int32_t>(u"Minimum_Players_to_Start", 2);
|
||||
raceSet.Insert<int32_t>(u"Minimum_Players_for_Group_Achievements", 2);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Car_Object", 7703));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"Race_PathName", u"MainPath"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Current_Lap", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_of_Laps", 3));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"activityID", 39));
|
||||
raceSet.Insert<int32_t>(u"Car_Object", 7703);
|
||||
raceSet.Insert<std::u16string>(u"Race_PathName", u"MainPath");
|
||||
raceSet.Insert<int32_t>(u"Current_Lap", 1);
|
||||
raceSet.Insert<int32_t>(u"Number_of_Laps", 3);
|
||||
raceSet.Insert<int32_t>(u"activityID", 39);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_1", 100));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_2", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_3", 80));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_4", 70));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_5", 60));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_6", 50));
|
||||
raceSet.Insert<int32_t>(u"Place_1", 100);
|
||||
raceSet.Insert<int32_t>(u"Place_2", 90);
|
||||
raceSet.Insert<int32_t>(u"Place_3", 80);
|
||||
raceSet.Insert<int32_t>(u"Place_4", 70);
|
||||
raceSet.Insert<int32_t>(u"Place_5", 60);
|
||||
raceSet.Insert<int32_t>(u"Place_6", 50);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_1", 15));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_2", 25));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_3", 50));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_4", 85));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_5", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_6", 100));
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_1", 15);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_2", 25);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_3", 50);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_4", 85);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_5", 90);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_6", 100);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_of_Spawn_Groups", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Spawners", 4847));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Spawners", 4848));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Flag", 4850));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Flag", 4851));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Point", 4846));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Point", 4845));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Mark", 4844));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Mark", 4843));
|
||||
raceSet.Insert<int32_t>(u"Number_of_Spawn_Groups", 1);
|
||||
raceSet.Insert<int32_t>(u"Red_Spawners", 4847);
|
||||
raceSet.Insert<int32_t>(u"Blue_Spawners", 4848);
|
||||
raceSet.Insert<int32_t>(u"Blue_Flag", 4850);
|
||||
raceSet.Insert<int32_t>(u"Red_Flag", 4851);
|
||||
raceSet.Insert<int32_t>(u"Red_Point", 4846);
|
||||
raceSet.Insert<int32_t>(u"Blue_Point", 4845);
|
||||
raceSet.Insert<int32_t>(u"Red_Mark", 4844);
|
||||
raceSet.Insert<int32_t>(u"Blue_Mark", 4843);
|
||||
|
||||
const std::vector<Entity*> racingControllers = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RACING_CONTROL);
|
||||
for (auto* const racingController : racingControllers) {
|
||||
auto* racingComponent = racingController->GetComponent<RacingControlComponent>();
|
||||
if (racingComponent) racingComponent->MsgConfigureRacingControl(config);
|
||||
}
|
||||
config.Send(self->GetObjectID());
|
||||
}
|
||||
|
||||
|
||||
@@ -10,45 +10,41 @@ void NsRaceServer::OnStartup(Entity* self) {
|
||||
GameMessages::ConfigureRacingControl config;
|
||||
auto& raceSet = config.racingSettings;
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"GameType", u"Racing"));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"GameState", u"Starting"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_Of_PlayersPerTeam", 6));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Minimum_Players_to_Start", 2));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Minimum_Players_for_Group_Achievements", 2));
|
||||
raceSet.Insert<std::u16string>(u"GameType", u"Racing");
|
||||
raceSet.Insert<std::u16string>(u"GameState", u"Starting");
|
||||
raceSet.Insert<int32_t>(u"Number_Of_PlayersPerTeam", 6);
|
||||
raceSet.Insert<int32_t>(u"Minimum_Players_to_Start", 2);
|
||||
raceSet.Insert<int32_t>(u"Minimum_Players_for_Group_Achievements", 2);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Car_Object", 7703));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>(u"Race_PathName", u"MainPath"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Current_Lap", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_of_Laps", 3));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"activityID", 42));
|
||||
raceSet.Insert<int32_t>(u"Car_Object", 7703);
|
||||
raceSet.Insert<std::u16string>(u"Race_PathName", u"MainPath");
|
||||
raceSet.Insert<int32_t>(u"Current_Lap", 1);
|
||||
raceSet.Insert<int32_t>(u"Number_of_Laps", 3);
|
||||
raceSet.Insert<int32_t>(u"activityID", 42);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_1", 100));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_2", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_3", 80));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_4", 70));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_5", 60));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Place_6", 50));
|
||||
raceSet.Insert<int32_t>(u"Place_1", 100);
|
||||
raceSet.Insert<int32_t>(u"Place_2", 90);
|
||||
raceSet.Insert<int32_t>(u"Place_3", 80);
|
||||
raceSet.Insert<int32_t>(u"Place_4", 70);
|
||||
raceSet.Insert<int32_t>(u"Place_5", 60);
|
||||
raceSet.Insert<int32_t>(u"Place_6", 50);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_1", 15));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_2", 25));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_3", 50));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_4", 85));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_5", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Num_of_Players_6", 100));
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_1", 15);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_2", 25);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_3", 50);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_4", 85);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_5", 90);
|
||||
raceSet.Insert<int32_t>(u"Num_of_Players_6", 100);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Number_of_Spawn_Groups", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Spawners", 4847));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Spawners", 4848));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Flag", 4850));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Flag", 4851));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Point", 4846));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Point", 4845));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Red_Mark", 4844));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>(u"Blue_Mark", 4843));
|
||||
raceSet.Insert<int32_t>(u"Number_of_Spawn_Groups", 1);
|
||||
raceSet.Insert<int32_t>(u"Red_Spawners", 4847);
|
||||
raceSet.Insert<int32_t>(u"Blue_Spawners", 4848);
|
||||
raceSet.Insert<int32_t>(u"Blue_Flag", 4850);
|
||||
raceSet.Insert<int32_t>(u"Red_Flag", 4851);
|
||||
raceSet.Insert<int32_t>(u"Red_Point", 4846);
|
||||
raceSet.Insert<int32_t>(u"Blue_Point", 4845);
|
||||
raceSet.Insert<int32_t>(u"Red_Mark", 4844);
|
||||
raceSet.Insert<int32_t>(u"Blue_Mark", 4843);
|
||||
|
||||
std::vector<Entity*> racingControllers = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RACING_CONTROL);
|
||||
for (auto* const racingController : racingControllers) {
|
||||
auto* racingComponent = racingController->GetComponent<RacingControlComponent>();
|
||||
if (racingComponent) racingComponent->MsgConfigureRacingControl(config);
|
||||
}
|
||||
config.Send(self->GetObjectID());
|
||||
}
|
||||
|
||||
@@ -9,45 +9,41 @@ void NsWinterRaceServer::OnStartup(Entity* self) {
|
||||
GameMessages::ConfigureRacingControl config;
|
||||
auto& raceSet = config.racingSettings;
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>("GameType", u"Racing"));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>("GameState", u"Starting"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Number_Of_PlayersPerTeam", 6));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Minimum_Players_to_Start", 2));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Minimum_Players_for_Group_Achievments", 2));
|
||||
raceSet.Insert<std::u16string>("GameType", u"Racing");
|
||||
raceSet.Insert<std::u16string>("GameState", u"Starting");
|
||||
raceSet.Insert<int32_t>("Number_Of_PlayersPerTeam", 6);
|
||||
raceSet.Insert<int32_t>("Minimum_Players_to_Start", 2);
|
||||
raceSet.Insert<int32_t>("Minimum_Players_for_Group_Achievments", 2);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Car_Object", 7703));
|
||||
raceSet.push_back(make_unique<LDFData<std::u16string>>("Race_PathName", u"MainPath"));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Current_Lap", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Number_of_Laps", 3));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("activityID", 60));
|
||||
raceSet.Insert<int32_t>("Car_Object", 7703);
|
||||
raceSet.Insert<std::u16string>("Race_PathName", u"MainPath");
|
||||
raceSet.Insert<int32_t>("Current_Lap", 1);
|
||||
raceSet.Insert<int32_t>("Number_of_Laps", 3);
|
||||
raceSet.Insert<int32_t>("activityID", 60);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Place_1", 100));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Place_2", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Place_3", 80));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Place_4", 70));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Place_5", 60));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Place_6", 50));
|
||||
raceSet.Insert<int32_t>("Place_1", 100);
|
||||
raceSet.Insert<int32_t>("Place_2", 90);
|
||||
raceSet.Insert<int32_t>("Place_3", 80);
|
||||
raceSet.Insert<int32_t>("Place_4", 70);
|
||||
raceSet.Insert<int32_t>("Place_5", 60);
|
||||
raceSet.Insert<int32_t>("Place_6", 50);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Num_of_Players_1", 15));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Num_of_Players_2", 25));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Num_of_Players_3", 50));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Num_of_Players_4", 85));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Num_of_Players_5", 90));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Num_of_Players_6", 100));
|
||||
raceSet.Insert<int32_t>("Num_of_Players_1", 15);
|
||||
raceSet.Insert<int32_t>("Num_of_Players_2", 25);
|
||||
raceSet.Insert<int32_t>("Num_of_Players_3", 50);
|
||||
raceSet.Insert<int32_t>("Num_of_Players_4", 85);
|
||||
raceSet.Insert<int32_t>("Num_of_Players_5", 90);
|
||||
raceSet.Insert<int32_t>("Num_of_Players_6", 100);
|
||||
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Number_of_Spawn_Groups", 1));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Red_Spawners", 4847));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Blue_Spawners", 4848));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Blue_Flag", 4850));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Red_Flag", 4851));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Red_Point", 4846));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Blue_Point", 4845));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Red_Mark", 4844));
|
||||
raceSet.push_back(make_unique<LDFData<int32_t>>("Blue_Mark", 4843));
|
||||
raceSet.Insert<int32_t>("Number_of_Spawn_Groups", 1);
|
||||
raceSet.Insert<int32_t>("Red_Spawners", 4847);
|
||||
raceSet.Insert<int32_t>("Blue_Spawners", 4848);
|
||||
raceSet.Insert<int32_t>("Blue_Flag", 4850);
|
||||
raceSet.Insert<int32_t>("Red_Flag", 4851);
|
||||
raceSet.Insert<int32_t>("Red_Point", 4846);
|
||||
raceSet.Insert<int32_t>("Blue_Point", 4845);
|
||||
raceSet.Insert<int32_t>("Red_Mark", 4844);
|
||||
raceSet.Insert<int32_t>("Blue_Mark", 4843);
|
||||
|
||||
const auto racingControllers = Game::entityManager->GetEntitiesByComponent(eReplicaComponentType::RACING_CONTROL);
|
||||
for (auto* const racingController : racingControllers) {
|
||||
auto* const racingComponent = racingController->GetComponent<RacingControlComponent>();
|
||||
if (racingComponent) racingComponent->MsgConfigureRacingControl(config);
|
||||
}
|
||||
config.Send(self->GetObjectID());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user