Implement some more trigger event calls and command handlers (#989)

* Implement some trigger event calls
and command handlers

* add zone summary dimissed GM

* break and remove log

* some cleanup in Gather Targets
and blocking out

* fix default value of unlock for play cinematic

* Log on errors
add enum for physics effect type
simplify nipoint3 logic
check arg count
add enum for End behavior

* tryparse for nipoint3

* totally didn't forget to include it

* bleh c++ is blah

* ???

* address feedback

* Fix for #1028
This commit is contained in:
Aaron Kimbrell
2023-03-25 05:26:39 -05:00
committed by GitHub
parent 72ca0f13ff
commit c415d0520a
32 changed files with 461 additions and 152 deletions

View File

@@ -134,24 +134,23 @@ void Spawner::AddEntitySpawnedCallback(std::function<void(Entity*)> callback) {
void Spawner::Reset() {
m_Start = true;
for (auto* node : m_Info.nodes) {
for (const auto& spawned : node->entities) {
auto* entity = EntityManager::Instance()->GetEntity(spawned);
if (entity == nullptr) continue;
entity->Kill();
}
node->entities.clear();
}
DestroyAllEntities();
m_Entities.clear();
m_AmountSpawned = 0;
m_NeedsUpdate = true;
}
void Spawner::DestroyAllEntities(){
for (auto* node : m_Info.nodes) {
for (const auto& element : node->entities) {
auto* entity = EntityManager::Instance()->GetEntity(element);
if (entity == nullptr) continue;
entity->Kill();
}
node->entities.clear();
}
}
void Spawner::SoftReset() {
m_Start = true;
m_AmountSpawned = 0;

View File

@@ -61,6 +61,7 @@ public:
void AddEntitySpawnedCallback(std::function<void(Entity*)> callback);
void SetSpawnLot(LOT lot);
void Reset();
void DestroyAllEntities();
void SoftReset();
void SetRespawnTime(float time);
void SetNumToMaintain(int32_t value);

View File

@@ -182,17 +182,7 @@ void dZoneManager::RemoveSpawner(const LWOOBJID id) {
Game::logger->Log("dZoneManager", "Failed to find spawner entity (%llu)", id);
}
for (auto* node : spawner->m_Info.nodes) {
for (const auto& element : node->entities) {
auto* nodeEntity = EntityManager::Instance()->GetEntity(element);
if (nodeEntity == nullptr) continue;
nodeEntity->Kill();
}
node->entities.clear();
}
spawner->DestroyAllEntities();
spawner->Deactivate();