diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-25 01:16:40 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-25 01:16:40 +1000 |
commit | 008bd6d3df469f69eaf667bc3ae357a03894bddb (patch) | |
tree | 0aa0548dae863c727cd32fc2b0d562783c7edb4e /source/game/StarParticle.cpp | |
parent | 2bd399fd00d87683e37b41bfc1a25772c6cde71f (diff) |
more!! more!!!!
Diffstat (limited to 'source/game/StarParticle.cpp')
-rw-r--r-- | source/game/StarParticle.cpp | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/source/game/StarParticle.cpp b/source/game/StarParticle.cpp index 250b2a4..ad0c168 100644 --- a/source/game/StarParticle.cpp +++ b/source/game/StarParticle.cpp @@ -45,7 +45,6 @@ Particle::Particle() { trail = false; flippable = true; flip = false; - directives = ""; } Particle::Particle(Json const& config, String const& path) { @@ -69,6 +68,12 @@ Particle::Particle(Json const& config, String const& path) { if (type == Type::Animated) initializeAnimation(); + auto pathEnd = string.find('?'); + if (pathEnd == NPos) + directives = ""; + else + directives.parse(string.substr(pathEnd)); + if (config.contains("color")) color = jsonToColor(config.get("color")); @@ -96,9 +101,11 @@ Particle::Particle(Json const& config, String const& path) { length = config.getFloat("length", 10.0f); destructionAction = DestructionActionNames.getLeft(config.getString("destructionAction", "None")); - destructionImage = config.getString("destructionImage", ""); + String destructionImagePath = config.getString("destructionImage", ""); if (destructionAction == DestructionAction::Image) - destructionImage = AssetPath::relativeTo(path, destructionImage); + destructionImagePath = AssetPath::relativeTo(path, destructionImagePath); + destructionImage = destructionImagePath; + destructionTime = config.getFloat("destructionTime", 0.0f); timeToLive = config.getFloat("timeToLive", 0.0f); @@ -113,7 +120,6 @@ Particle::Particle(Json const& config, String const& path) { ignoreWind = config.getBool("ignoreWind", true); trail = config.getBool("trail", false); - directives = ""; } Json Particle::toJson() const { @@ -134,7 +140,7 @@ Json Particle::toJson() const { {"angularVelocity", angularVelocity * 180.0f / Constants::pi}, {"length", length}, {"destructionAction", DestructionActionNames.getRight(destructionAction)}, - {"destructionImage", destructionImage}, + {"destructionImage", AssetPath::join(destructionImage)}, {"destructionTime", destructionTime}, {"timeToLive", timeToLive}, {"layer", LayerNames.getRight(layer)}, @@ -221,7 +227,7 @@ void Particle::destructionUpdate() { size = 1.0f; color = Color::White; type = Particle::Type::Textured; - string = destructionImage; + image = destructionImage; angularVelocity = 0.0f; length = 0.0f; rotation = 0.0f; @@ -232,7 +238,7 @@ void Particle::destructionUpdate() { void Particle::initializeAnimation() { if (!animation) { animation = Animation(AssetPath::removeDirectives(string)); - animation->addProcessing(AssetPath::getDirectives(string)); + animation->setProcessing(directives); } } |