Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/world_entities/environments/mover_trigger_pointer_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.2 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_pointer_list.h"
17#include "debug.h"
18
19
20MoverTriggerPointerList::MoverTriggerPointerList()
21{
22    this->first = 0;
23}
24
25MoverTriggerPointerList::~MoverTriggerPointerList()
26{
27    MoverTriggerPointerListElement *temp1 = this->first;
28    MoverTriggerPointerListElement *temp2;
29    while (temp1 != 0)
30    {
31        temp2 = temp1->next;
32        delete temp1;
33        temp1 = temp2;
34    }
35}
36
37void MoverTriggerPointerList::addTrigger(MoverTrigger *trigger)
38{
39    if (trigger)
40    {
41        if (this->first == 0)
42        {
43            this->first = new MoverTriggerPointerListElement(trigger);
44        }
45        else
46        {
47            MoverTriggerPointerListElement *temp = this->first;
48            while (temp->next != 0)
49                temp = temp->next;
50
51            temp->next = new MoverTriggerPointerListElement(trigger);
52        }
53    }
54}
55
56bool MoverTriggerPointerList::isTriggered()
57{
58    if (this->first == 0)
59    {
60        return false;
61    }
62    else
63    {
64        bool isTriggered = false;
65        MoverTriggerPointerListElement *temp = this->first;
66
67        while (temp != 0)
68        {
69            if (temp->trigger->isTriggered())
70            {
71                isTriggered = true;
72            }
73            else
74            {
75                if (temp->trigger->isObligatory())
76                    return false;
77            }
78                   
79            temp = temp->next;
80        }
81
82        return isTriggered;
83    }
84}
85
86////////////////////////////////////////////////////////
87
88
89MoverTriggerPointerListElement::MoverTriggerPointerListElement(MoverTrigger *trigger)
90{
91    this->trigger = trigger;
92    this->next = 0;
93}
94
95MoverTriggerPointerListElement::~MoverTriggerPointerListElement()
96{
97}
Note: See TracBrowser for help on using the repository browser.