Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarWorldClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/StarWorldClient.cpp')
-rw-r--r--source/game/StarWorldClient.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/source/game/StarWorldClient.cpp b/source/game/StarWorldClient.cpp
index 91701e5..269bbca 100644
--- a/source/game/StarWorldClient.cpp
+++ b/source/game/StarWorldClient.cpp
@@ -356,10 +356,11 @@ void WorldClient::render(WorldRenderData& renderData, unsigned bufferTiles) {
playerAimInteractive = entity->entityId();
}
- Maybe<StringList> directives;
- if (auto worldTemplate = m_worldTemplate) {
- if(auto parameters = worldTemplate->worldParameters())
- directives = m_worldTemplate->worldParameters()->globalDirectives;
+ const List<Directives>* directives = nullptr;
+ if (auto& worldTemplate = m_worldTemplate) {
+ if (auto& parameters = worldTemplate->worldParameters())
+ if (auto& globalDirectives = m_worldTemplate->worldParameters()->globalDirectives)
+ directives = &globalDirectives.get();
}
m_entityMap->forAllEntities([&](EntityPtr const& entity) {
if (m_startupHiddenEntities.contains(entity->entityId()))
@@ -1263,10 +1264,11 @@ void WorldClient::handleDamageNotifications() {
auto hitParticles = particlesFromDefinition(damageKind.effects.get(material).get(effectHitType).particles, damageNotification.position);
- Maybe<StringList> directives;
- if (auto worldTemplate = m_worldTemplate) {
- if(auto parameters = worldTemplate->worldParameters())
- directives = m_worldTemplate->worldParameters()->globalDirectives;
+ const List<Directives>* directives = nullptr;
+ if (auto& worldTemplate = m_worldTemplate) {
+ if (auto& parameters = worldTemplate->worldParameters())
+ if (auto& globalDirectives = m_worldTemplate->worldParameters()->globalDirectives)
+ directives = &globalDirectives.get();
}
if (directives) {
int directiveIndex = unsigned(damageNotification.targetEntityId) % directives->size();
@@ -1332,10 +1334,11 @@ void WorldClient::removeEntity(EntityId entityId, bool andDie) {
ClientRenderCallback renderCallback;
entity->destroy(&renderCallback);
- Maybe<StringList> directives;
- if (auto worldTemplate = m_worldTemplate) {
- if(auto parameters = worldTemplate->worldParameters())
- directives = m_worldTemplate->worldParameters()->globalDirectives;
+ const List<Directives>* directives = nullptr;
+ if (auto& worldTemplate = m_worldTemplate) {
+ if (auto& parameters = worldTemplate->worldParameters())
+ if (auto& globalDirectives = m_worldTemplate->worldParameters()->globalDirectives)
+ directives = &globalDirectives.get();
}
if (directives) {
int directiveIndex = unsigned(entity->entityId()) % directives->size();