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:
David Markowitz
2026-06-14 20:54:52 -07:00
committed by GitHub
parent 90db1ac699
commit 0101933f5c
67 changed files with 676 additions and 754 deletions

View File

@@ -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());
}