aboutsummaryrefslogtreecommitdiff
path: root/game/prefab/ZapperPoolSubScene.cpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2025-01-08 11:13:40 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2025-01-08 11:13:40 +0100
commit06d41eb2d58de21a8340ca59952b96cabc8caee6 (patch)
tree4daa9f74cb8a088ba17e54d52be307c5b917878f /game/prefab/ZapperPoolSubScene.cpp
parentb8acb539a3580bf0665fe435c55f33ba16cb507e (diff)
pooling working
Diffstat (limited to 'game/prefab/ZapperPoolSubScene.cpp')
-rw-r--r--game/prefab/ZapperPoolSubScene.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/game/prefab/ZapperPoolSubScene.cpp b/game/prefab/ZapperPoolSubScene.cpp
index d7d30ea..923ed57 100644
--- a/game/prefab/ZapperPoolSubScene.cpp
+++ b/game/prefab/ZapperPoolSubScene.cpp
@@ -8,18 +8,12 @@ using namespace std;
ZapperPoolSubScene::ZapperPoolSubScene(Scene & scene)
: controller { scene.new_object("controller") } {
- this->controller.add_component<BehaviorScript>().set_script<ZapperPoolScript>(*this);
Log::logf(Log::DEBUG, "Building zapper pool...");
+ vector<ZapperObject> pool;
for (size_t i = 0; i < this->POOL_SIZE; i++)
- zappers.emplace_back(scene.new_object("zapper"));
-}
-
-OptionalRef<ZapperObject> ZapperPoolSubScene::get_next_zapper() {
- for (ZapperObject & zapper : this->zappers) {
- if (!zapper.active) continue;
- return zapper;
- }
- return {};
+ pool.emplace_back(scene.new_object("zapper"));
+ BehaviorScript & behavior = this->controller.add_component<BehaviorScript>();
+ behavior.set_script<ZapperPoolScript>(std::move(pool));
}