ScummVM API documentation
int_array.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef MM1_DATA_INT_ARRAY_H
23#define MM1_DATA_INT_ARRAY_H
24
25#include "common/array.h"
26
27namespace MM {
28namespace MM1 {
29
30class IntArray : public Common::Array<uint> {
31public:
33
34 int indexOf(uint val) const {
35 for (uint i = 0; i < size(); ++i) {
36 if ((*this)[i] == val)
37 return i;
38 }
39
40 return -1;
41 }
42
46 bool contains(uint val) {
47 return indexOf(val) != -1;
48 }
49
53 void remove(uint val) {
54 int idx = indexOf(val);
55 if (idx != -1)
56 remove_at(idx);
57 }
58
62 void push_back(uint val) {
63 assert(!contains(val));
65 }
66};
67
68} // namespace MM1
69} // namespace MM
70
71#endif
Definition: array.h:52
uint remove_at(size_type idx)
Definition: array.h:261
size_type size() const
Definition: array.h:316
void push_back(const T &element)
Definition: array.h:181
Definition: int_array.h:30
void push_back(uint val)
Definition: int_array.h:62
void remove(uint val)
Definition: int_array.h:53
bool contains(uint val)
Definition: int_array.h:46
Definition: detection.h:27