]> git.mxchange.org Git - quix0rs-blobwars.git/blob - src/CSpawnPoint.cpp
2fc2c42d65b40383627ae1f5e4ffc852fd507876
[quix0rs-blobwars.git] / src / CSpawnPoint.cpp
1 /*
2 Copyright (C) 2004-2010 Parallel Realities
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13 See the GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18
19 */
20
21 #include "headers.h"
22
23 SpawnPoint::SpawnPoint()
24 {
25         name[0] = 0;
26         active = false;
27         x = y = 0;
28
29         spawnType = spawnSubType = 0;
30
31         currentInterval = minInterval = maxInterval = 0;
32
33         next = NULL;
34 }
35
36 void SpawnPoint::reset()
37 {
38         currentInterval = 0;
39
40         requiredInterval = Math::rrand(minInterval, maxInterval);
41 }
42
43 void SpawnPoint::create(const char *name, int x, int y, int spawnType, int spawnSubType, int minInterval, int maxInterval, bool active)
44 {
45         strlcpy(this->name, name, sizeof this->name);
46         this->x = x;
47         this->y = y;
48         this->spawnType = spawnType;
49         this->spawnSubType = spawnSubType;
50         this->minInterval = minInterval * 60;
51         this->maxInterval = maxInterval * 60;
52         this->active = active;
53
54         reset();
55 }
56
57 void SpawnPoint::think()
58 {
59         if (active)
60                 Math::limitInt(&(++currentInterval), 0, maxInterval);
61 }
62
63 bool SpawnPoint::readyToSpawn()
64 {
65         if (currentInterval >= requiredInterval)
66                 return true;
67
68         return false;
69 }