Implemented trigger creation & deletion via lua

Triggers now have handles for simple understanding, but there's nothing
preventing multiple triggers from sharing the same name.
This commit is contained in:
Kayne Ruse
2015-02-27 19:35:11 +11:00
parent cb63c9b07c
commit edcb6f05ce
8 changed files with 147 additions and 21 deletions
+13 -14
View File
@@ -29,23 +29,13 @@ TriggerManager::~TriggerManager() {
UnloadAll();
}
int TriggerManager::Create() {
int TriggerManager::Create(std::string handle, Vector2 origin, BoundingBox bounds) {
//implicitly creates the element
TriggerData& triggerData = elementMap[counter];
//no real values set
triggerData.origin = {0, 0};
triggerData.bounds = {0, 0, 0, 0};
return counter++;
}
int TriggerManager::Create(Vector2 origin, BoundingBox bounds) {
//implicitly creates the element
TriggerData& triggerData = elementMap[counter];
triggerData.origin = origin;
triggerData.bounds = bounds;
triggerData.SetHandle(handle);
triggerData.SetOrigin(origin);
triggerData.SetBoundingBox(bounds);
return counter++;
}
@@ -80,6 +70,15 @@ TriggerData* TriggerManager::Get(int uid) {
return &it->second;
}
TriggerData* TriggerManager::Get(std::string handle) {
for (std::map<int, TriggerData>::iterator it = elementMap.begin(); it != elementMap.end(); ++it) {
if (it->second.GetHandle() == handle) {
return &it->second;
}
}
return nullptr;
}
int TriggerManager::GetLoadedCount() {
return elementMap.size();
}