diff options
Diffstat (limited to 'src/environment.cpp')
-rw-r--r-- | src/environment.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/environment.cpp b/src/environment.cpp index 88f25536f..0b37212e5 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -577,17 +577,21 @@ public: i->timer -= trigger_interval; actual_interval = trigger_interval; } - float intervals = actual_interval / trigger_interval; - if(intervals == 0) - continue; float chance = abm->getTriggerChance(); if(chance == 0) chance = 1; ActiveABM aabm; aabm.abm = abm; - aabm.chance = chance / intervals; - if(aabm.chance == 0) - aabm.chance = 1; + if(abm->getSimpleCatchUp()) { + float intervals = actual_interval / trigger_interval; + if(intervals == 0) + continue; + aabm.chance = chance / intervals; + if(aabm.chance == 0) + aabm.chance = 1; + } else { + aabm.chance = chance; + } // Trigger neighbors std::set<std::string> required_neighbors_s = abm->getRequiredNeighbors(); |