ScummVM API documentation
rail.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#include "mads/core/general.h"
23#include "mads/core/room.h"
24
25namespace MADS {
26
27#define RAIL_MAX_NODES ROOM_MAX_RAILS + 2
28
29extern word rail_solution_stack_pointer;
30extern word rail_solution_stack_weight;
31
32extern byte rail_visited[RAIL_MAX_NODES];
33extern byte rail_working_stack[RAIL_MAX_NODES];
34extern byte rail_solution_stack[RAIL_MAX_NODES];
35
36extern word rail_num_nodes;
37extern struct Rail *rail_base;
38
39extern void rail_add_node(int id, int x, int y);
40extern void rail_connect_node(int id);
41extern void rail_connect_all_nodes();
42extern void rail_disconnect_line(int from, int unto);
43extern void rail_disconnect_node(int id);
44
62extern void rail_check_path(int allow_one_illegal);
63
64extern void init_rail();
65
66} // namespace MADS