/* orxonox - the future of 3D-vertical-scrollers Copyright (C) 2007 orx This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ### File Specific: main-programmer: Fabian 'x3n' Landau co-programmer: */ #include "mover_trigger_pointer_list.h" #include "debug.h" MoverTriggerPointerList::MoverTriggerPointerList() { this->first = 0; } MoverTriggerPointerList::~MoverTriggerPointerList() { MoverTriggerPointerListElement *temp1 = this->first; MoverTriggerPointerListElement *temp2; while (temp1 != 0) { temp2 = temp1->next; delete temp1; temp1 = temp2; } } void MoverTriggerPointerList::addTrigger(MoverTrigger *trigger) { if (trigger) { if (this->first == 0) { this->first = new MoverTriggerPointerListElement(trigger); } else { MoverTriggerPointerListElement *temp = this->first; while (temp->next != 0) temp = temp->next; temp->next = new MoverTriggerPointerListElement(trigger); } } } bool MoverTriggerPointerList::isTriggered() { if (this->first == 0) { return false; } else { bool isTriggered = false; MoverTriggerPointerListElement *temp = this->first; while (temp != 0) { if (temp->trigger->isTriggered()) { isTriggered = true; } else { if (temp->trigger->isObligatory()) return false; } temp = temp->next; } return isTriggered; } } //////////////////////////////////////////////////////// MoverTriggerPointerListElement::MoverTriggerPointerListElement(MoverTrigger *trigger) { this->trigger = trigger; this->next = 0; } MoverTriggerPointerListElement::~MoverTriggerPointerListElement() { }