Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/environments/mover_trigger_delay_list.cc

Last change on this file was 10696, checked in by snellen, 17 years ago

added all the new mover classes

File size: 2.1 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2007 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
12   main-programmer: Fabian 'x3n' Landau
13   co-programmer:
14*/
15
16#include "mover_trigger_list.h"
17
18
19MoverTriggerDelayList::MoverTriggerDelayList()
20{
21    this->first = 0;
22}
23
24MoverTriggerDelayList::~MoverTriggerDelayList()
25{
26    while (this->first)
27        this->deleteFirstState();
28}
29
30void MoverTriggerDelayList::addState(bool state, bool oldState, float time)
31{
32    if (this->first == 0)
33        this->first = new MoverTriggerDelayListElement(state, oldState, time);
34    else
35    {
36        MoverTriggerDelayListElement *temp = this->first;
37        while (temp->next != 0)
38            temp = temp->next;
39           
40        temp->next = new MoverTriggerDelayListElement(state, oldState, time);
41    }
42}
43
44void MoverTriggerDelayList::deleteFirstState()
45{
46    if (this->first != 0)
47    {
48        MoverTriggerDelayListElement *temp = this->first->next;
49        delete this->first;
50        this->first = temp;
51    }
52}
53
54MoverTriggerDelayListElement *MoverTriggerDelayList::getFirstState()
55{
56    return this->first;
57}
58
59MoverTriggerDelayListElement *MoverTriggerDelayList::getLastState()
60{
61    MoverTriggerDelayListElement *temp = this->first;
62    while (temp != 0)
63    {
64        if (temp->next == 0)
65            return temp;
66           
67        temp = temp->next;
68    }
69           
70    return 0;
71}
72
73bool MoverTriggerDelayList::isEmpty()
74{
75    return (this->first == 0);
76}
77
78////////////////////////////////////////////////////////
79
80
81MoverTriggerDelayListElement::MoverTriggerDelayListElement(bool state, bool oldState, float time)
82{
83    this->state = state;
84    this->oldState = oldState;
85    this->time = time;
86    this->next = 0;
87}
88
89MoverTriggerDelayListElement::~MoverTriggerDelayListElement()
90{
91}
Note: See TracBrowser for help on using the repository browser.