summaryrefslogtreecommitdiff
path: root/src/teleport.c
blob: 77bb6994a8089e31b5323033cccd12c6bc19afe6 (plain)
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
NAME(teleport);
PARENT(trigger);

INIT {
	super("init");
	super("target");
}

ENTER {
	Entity *player = g_get_entity("player");
	assert(player != nullptr);

	Entity *target = nullptr;
	repeat(i, MAX_ENTITIES) {
		auto e = &g->entities[i];
		if (e->table && e->visible &&
		    entity_in_group(e, this->target)) {
			target = e;
			break;
		}
	}
	assert(target != nullptr);

	if (this->do_x)
		player->pos.x = target->pos.x;
	if (this->do_y)
		player->pos.y = target->pos.y;
}