fix: winter race orbs (#1810)

Tested that script is loaded
This commit is contained in:
David Markowitz 2025-06-08 12:14:35 -07:00 committed by GitHub
parent b509fd4f10
commit 37e14979a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 86 additions and 1 deletions

View File

@ -83,6 +83,12 @@ public:
this->value = value;
}
//! Initializer
LDFData(const std::string& key, const T& value) {
this->key = GeneralUtils::ASCIIToUTF16(key);
this->value = value;
}
//! Destructor
~LDFData(void) override {}

View File

@ -336,6 +336,7 @@
#include "NsRaceServer.h"
#include "TrialFactionArmorServer.h"
#include "ImaginationBackPack.h"
#include "NsWinterRaceServer.h"
#include <map>
#include <string>
@ -656,6 +657,7 @@ namespace {
//FB
{"scripts\\ai\\NS\\WH\\L_ROCKHYDRANT_BROKEN.lua", []() {return new RockHydrantBroken();}},
{"scripts\\ai\\NS\\L_NS_WH_FANS.lua", []() {return new WhFans();}},
{"scripts\\ai\\RACING\\TRACK_NS_WINTER\\NS_WINTER_RACE_SERVER.lua", []() {return new NsWinterRaceServer();}},
//WBL
{"scripts\\zone\\LUPs\\WBL_generic_zone.lua", []() {return new WblGenericZone();}},

View File

@ -13,6 +13,12 @@ foreach(file ${DSCRIPTS_SOURCES_AI_RACING_TRACK_NS})
set(DSCRIPTS_SOURCES_AI_RACING ${DSCRIPTS_SOURCES_AI_RACING} "TRACK_NS/${file}")
endforeach()
add_subdirectory(TRACK_NS_WINTER)
foreach(file ${DSCRIPTS_SOURCES_AI_RACING_TRACK_NS_WINTER})
set(DSCRIPTS_SOURCES_AI_RACING ${DSCRIPTS_SOURCES_AI_RACING} "TRACK_NS_WINTER/${file}")
endforeach()
add_subdirectory(TRACK_GF)
foreach(file ${DSCRIPTS_SOURCES_AI_RACING_TRACK_GF})
@ -26,5 +32,5 @@ foreach(file ${DSCRIPTS_SOURCES_AI_RACING_TRACK_FV})
endforeach()
add_library(dScriptsAiRacing OBJECT ${DSCRIPTS_SOURCES_AI_RACING})
target_include_directories(dScriptsAiRacing PUBLIC "." "OBJECTS" "TRACK_NS" "TRACK_GF" "TRACK_FV")
target_include_directories(dScriptsAiRacing PUBLIC "." "OBJECTS" "TRACK_NS" "TRACK_NS_WINTER" "TRACK_GF" "TRACK_FV")
target_precompile_headers(dScriptsAiRacing REUSE_FROM dScriptsBase)

View File

@ -0,0 +1,3 @@
set(DSCRIPTS_SOURCES_AI_RACING_TRACK_NS_WINTER
"NsWinterRaceServer.cpp"
PARENT_SCOPE)

View File

@ -0,0 +1,53 @@
#include "NsWinterRaceServer.h"
#include "GameMessages.h"
#include "RacingControlComponent.h"
using std::unique_ptr;
using std::make_unique;
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.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", 42));
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.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.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));
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);
}
}

View File

@ -0,0 +1,15 @@
// Darkflame Universe
// Copyright 2025
#ifndef NSWINTERRACESERVER_H
#define NSWINTERRACESERVER_H
#include "CppScripts.h"
#include "RaceImaginationServer.h"
class NsWinterRaceServer : public RaceImaginationServer {
public:
void OnStartup(Entity* self) override;
};
#endif //!NSWINTERRACESERVER_H