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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-- Internal lua file in charge of dungeon stuff
function place_dungeon(y, x, d_idx)
if d_idx then
wild_map(y, x).entrance = 1000 + d_idx
else
wild_map(y, x).entrance = 0
end
end
function dungeon(d_idx)
return d_info[1 + d_idx]
end
function wild_feat(wild)
return wf_info[1 + wild.feat]
end
function explode_dir(dir)
return ddy[dir + 1], ddx[dir + 1]
end
function rotate_dir(dir, mov)
if mov > 0 then
if dir == 7 then dir = 8
elseif dir == 8 then dir = 9
elseif dir == 9 then dir = 6
elseif dir == 6 then dir = 3
elseif dir == 3 then dir = 2
elseif dir == 2 then dir = 1
elseif dir == 1 then dir = 4
elseif dir == 4 then dir = 7
end
elseif mov < 0 then
if dir == 7 then dir = 4
elseif dir == 4 then dir = 1
elseif dir == 1 then dir = 2
elseif dir == 2 then dir = 3
elseif dir == 3 then dir = 6
elseif dir == 6 then dir = 9
elseif dir == 9 then dir = 8
elseif dir == 8 then dir = 7
end
end
return dir
end
-- Check if the map is a filename or directly a map
function load_map(map, y, x)
if strsub(map, 1, 5) == "#!map" then
%load_map(TRUE, map, y, x)
else
%load_map(FALSE, map, y, x)
end
end
function get_map_size(map)
if strsub(map, 1, 5) == "#!map" then
return %get_map_size(TRUE, map)
else
return %get_map_size(FALSE, map)
end
end
-- Place a trap for a specific level
function place_trap(y, x, level)
local old_dun = dun_level
dun_level = level
%place_trap(y, x)
dun_level = old_dun
end
|