/* 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_list.h" MoverTriggerDelayList::MoverTriggerDelayList() { this->first = 0; } MoverTriggerDelayList::~MoverTriggerDelayList() { while (this->first) this->deleteFirstState(); } void MoverTriggerDelayList::addState(bool state, bool oldState, float time) { if (this->first == 0) this->first = new MoverTriggerDelayListElement(state, oldState, time); else { MoverTriggerDelayListElement *temp = this->first; while (temp->next != 0) temp = temp->next; temp->next = new MoverTriggerDelayListElement(state, oldState, time); } } void MoverTriggerDelayList::deleteFirstState() { if (this->first != 0) { MoverTriggerDelayListElement *temp = this->first->next; delete this->first; this->first = temp; } } MoverTriggerDelayListElement *MoverTriggerDelayList::getFirstState() { return this->first; } MoverTriggerDelayListElement *MoverTriggerDelayList::getLastState() { MoverTriggerDelayListElement *temp = this->first; while (temp != 0) { if (temp->next == 0) return temp; temp = temp->next; } return 0; } bool MoverTriggerDelayList::isEmpty() { return (this->first == 0); } //////////////////////////////////////////////////////// MoverTriggerDelayListElement::MoverTriggerDelayListElement(bool state, bool oldState, float time) { this->state = state; this->oldState = oldState; this->time = time; this->next = 0; } MoverTriggerDelayListElement::~MoverTriggerDelayListElement() { }