File: DifficultyEntity.cpp

package info (click to toggle)
darkradiant 3.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,080 kB
  • sloc: cpp: 264,743; ansic: 10,659; python: 1,852; xml: 1,650; sh: 92; makefile: 21
file content (39 lines) | stat: -rw-r--r-- 1,063 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "DifficultyEntity.h"

#include "ientity.h"
#include "string/convert.h"

namespace difficulty {

DifficultyEntity::DifficultyEntity(Entity* source) :
	_entity(source),
	_curId(0)
{}

void DifficultyEntity::clear() {
	// Find all spawnargs starting with a "diff_"
	Entity::KeyValuePairs pairs = _entity->getKeyValuePairs("diff_");

	// Remove all (set the value to the empty string "")
	for (Entity::KeyValuePairs::iterator i = pairs.begin(); i != pairs.end(); i++) {
		_entity->setKeyValue(i->first, "");
	}

	_curId = 0;
}

void DifficultyEntity::writeSetting(const SettingPtr& setting, int _level) {
	// Construct the prefix and index strings
	std::string prefix = "diff_" + string::to_string(_level) + "_";
	std::string idx = string::to_string(_curId);

	// Save the spawnargs
	_entity->setKeyValue(prefix + "class_" + idx, setting->className);
	_entity->setKeyValue(prefix + "change_" + idx, setting->spawnArg);
	_entity->setKeyValue(prefix + "arg_" + idx, setting->getArgumentKeyValue());

	// Increase the ID
	_curId++;
}

} // namespace difficulty