Added Entrance/Stairs unittype5 table lvlwrap.txt (#64)
This commit is contained in:
@@ -26,6 +26,11 @@ var textFiles = []TextFileDesc{
|
||||
DestFile: "pkg/data/object/objects.go",
|
||||
Template: templateObjects,
|
||||
},
|
||||
{
|
||||
SourceFile: "cmd/txttocode/txt/lvlwarp.txt",
|
||||
DestFile: "pkg/data/entrance/entrances.go",
|
||||
Template: templateEntrances,
|
||||
},
|
||||
}
|
||||
|
||||
type TextFileDesc struct {
|
||||
|
||||
@@ -70,3 +70,13 @@ var Desc = map[int]Description{
|
||||
{{ index $value "*ID" }}: {Name: "{{ $value.Name }}", ID: {{ index $value "*ID" }}, SizeX: {{ $value.SizeX }}, SizeY: {{ $value.SizeY }}, Left: {{ $value.Left }}, Top: {{ $value.Top }}, Width: {{ $value.Width }}, Height: {{ $value.Height }}, Yoffset: {{ $value.Yoffset }}, Xoffset: {{ $value.Xoffset }}, HasCollision: {{ if eq $value.HasCollision0 "1" }}true{{ else }}false{{ end }}},
|
||||
{{- end }}
|
||||
}`
|
||||
|
||||
const templateEntrances = `// Code generated by cmd/txttocode. DO NOT EDIT.
|
||||
// source: cmd/txttocode/txt/lvlwarp.txt
|
||||
package entrance
|
||||
|
||||
var Desc = map[int]Description{
|
||||
{{- range $key, $value := . }}
|
||||
{{ $value.UniqueId }}: {ID: {{ $value.UniqueId }}, Name: "{{ $value.Name }}", SelectX: {{ $value.SelectX }}, SelectY: {{ $value.SelectY }}, SelectDX: {{ $value.SelectDX }}, SelectDY: {{ $value.SelectDY }}, OffsetX: {{ $value.OffsetX }}, OffsetY: {{ $value.OffsetY }}, Direction: "{{ $value.Direction }}"},
|
||||
{{- end }}
|
||||
}`
|
||||
|
||||
90
cmd/txttocode/txt/lvlwarp.txt
Normal file
90
cmd/txttocode/txt/lvlwarp.txt
Normal file
@@ -0,0 +1,90 @@
|
||||
Name Id SelectX SelectY SelectDX SelectDY ExitWalkX ExitWalkY OffsetX OffsetY LitVersion Tiles NoInteract Direction UniqueId
|
||||
Act 1 Wilderness to Cave Cliff L 0 -90 -100 90 110 5 0 1 -1 1 2 0 b 0
|
||||
Act 1 Wilderness to Cave Cliff R 1 -15 -90 90 110 0 5 3 1 1 2 0 b 1
|
||||
Act 1 Wilderness to Cave Floor L 2 -60 -60 85 100 5 0 -1 1 1 2 0 b 2
|
||||
Act 1 Wilderness to Cave Floor R 3 -25 -60 85 100 0 5 1 -1 1 2 0 b 3
|
||||
Act 1 Cave Up 4 -30 -120 120 150 3 5 2 5 1 2 0 b 4
|
||||
Act 1 Cave Down 5 -25 -75 80 100 3 5 1 3 1 2 0 b 5
|
||||
Act 1 Graveyard to Crypt 1 6 -90 -110 110 140 5 0 5 0 0 2 0 b 6
|
||||
Act 1 Graveyard to Crypt 2 7 -70 -90 90 120 5 0 5 2 0 2 0 b 7
|
||||
Act 1 Crypt Up 8 -10 -90 60 110 0 5 5 1 1 2 0 b 8
|
||||
Act 1 Crypt Down 9 -30 -90 60 110 5 0 1 1 1 2 0 b 9
|
||||
Act 1 Wilderness to Tower 10 -10 -50 150 80 3 5 -4 0 1 2 0 b 10
|
||||
Act 1 Tower to Wilderness 11 -50 -130 60 140 5 3 4 -2 0 2 0 b 11
|
||||
Act 1 Tower to Crypt 12 -50 -90 80 110 5 0 2 3 1 2 0 b 12
|
||||
Act 1 Jail Up 13 -50 -110 110 150 0 5 5 1 1 2 0 b 13
|
||||
Act 1 Jail Down 14 -40 -80 210 110 0 5 -1 3 1 2 0 b 14
|
||||
Act 1 Cathedral To Catacombs 15 -30 -110 85 130 0 5 3 1 1 2 0 b 15
|
||||
Act 1 Catacombs to Cathedral 16 -35 -130 90 150 0 5 7 1 1 2 0 b 16
|
||||
Act 1 Catacombs Up 17 -50 -110 110 150 0 5 5 1 1 2 0 b 17
|
||||
Act 1 Catacombs Down 18 -60 -80 210 110 0 5 -1 3 1 2 0 b 18
|
||||
Act 2 Town to Sewer Trap 19 -10 -10 0 0 5 5 0 0 0 2 1 b 19
|
||||
Act 2 Town to Sewer Dock 20 -25 -95 70 130 5 0 -2 0 0 2 0 b 20
|
||||
Act 2 Sewer Dock to Town 21 20 -80 65 140 -5 0 10 -2 0 2 0 b 21
|
||||
Act 2 Sewer Up 22 -25 -160 100 180 2 5 5 3 1 2 0 b 22
|
||||
Act 2 Sewer Down 23 -65 -55 150 110 0 -5 0 0 1 2 0 b 23
|
||||
Act 2 Town to Harem 24 -120 -20 150 130 5 0 5 2 0 2 0 b 24
|
||||
Act 2 Harem to Town 25 -35 -70 95 130 5 2 0 -2 0 2 0 b 25
|
||||
Act 2 Harem Up 1 26 -25 -150 80 180 0 5 4 0 1 2 0 b 26
|
||||
Act 2 Harem Up 2 27 -40 -160 80 180 5 0 0 5 1 2 0 b 27
|
||||
Act 2 Harem Down 1 28 -20 -40 170 100 -5 5 -3 1 1 2 0 b 28
|
||||
Act 2 Harem Down 2 29 -50 -20 160 85 -5 0 -1 -3 1 2 0 b 29
|
||||
Act 2 Basement Up 1 30 -25 -100 60 125 0 5 2 0 1 2 0 b 30
|
||||
Act 2 Basement Up 2 31 -40 -100 60 125 5 0 0 2 1 2 0 b 31
|
||||
Act 2 Basement Down 32 -30 -30 170 90 -5 5 -3 0 1 2 0 b 32
|
||||
Act 2 Desert to Tomb L 1 33 -70 -140 80 160 5 0 1 1 0 2 0 b 33
|
||||
Act 2 Desert to Tomb L 2 34 -50 -120 90 150 5 0 1 1 0 2 0 b 34
|
||||
Act 2 Desert to Tomb R 1 35 -30 -140 80 160 0 5 6 2 0 2 0 b 35
|
||||
Act 2 Desert to Tomb R 2 36 0 -140 100 150 0 5 1 2 0 2 0 b 36
|
||||
Act 2 Desert to Tomb Viper 37 -30 -140 80 160 0 5 4 1 0 2 0 b 37
|
||||
Act 2 Desert to Tomb Tal 1 38 -40 -190 90 210 5 5 0 0 0 2 0 b 38
|
||||
Act 2 Desert to Tomb Tal 2 39 -40 -210 50 230 5 0 -1 1 0 2 0 b 39
|
||||
Act 2 Desert to Tomb Tal 3 40 -30 -100 60 140 5 0 0 1 0 2 0 b 40
|
||||
Act 2 Desert to Tomb Tal 4 41 -90 -140 70 160 5 0 -1 -5 0 2 0 b 41
|
||||
Act 2 Desert to Tomb Tal 5 42 -10 -110 60 150 0 5 -2 -3 0 2 0 b 42
|
||||
Act 2 Desert to Tomb Tal 6 43 0 -130 90 150 0 5 -1 0 0 2 0 b 43
|
||||
Act 2 Desert to Tomb Tal 7 44 -10 -210 70 240 0 5 0 -3 0 2 0 b 44
|
||||
Act 2 Tomb Up 45 -30 -115 75 145 0 5 2 0 1 2 0 b 45
|
||||
Act 2 Tomb Down 46 -45 -120 85 145 5 0 0 2 1 2 0 b 46
|
||||
Act 2 Desert to Lair 47 -10 -60 90 90 5 5 -2 2 1 2 0 b 47
|
||||
Act 2 Lair Up 48 -20 -70 80 85 0 5 1 0 1 2 0 b 48
|
||||
Act 2 Lair Down 49 -115 -10 160 70 0 -5 -3 -5 1 2 0 b 49
|
||||
Act 2 Desert to Sewer Trap 50 -10 -10 0 0 5 5 0 0 0 2 1 b 50
|
||||
Act 3 Jungle to Spider 51 -60 -70 70 90 5 0 0 1 0 2 0 b 51
|
||||
Act 3 Spider to Jungle 52 10 -100 80 110 0 5 4 1 1 2 0 b 52
|
||||
Act 3 Jungle to Dungeon Fort 53 -15 -70 70 110 0 5 0 0 0 2 0 b 53
|
||||
Act 3 Jungle to Dungeon Hole 54 -130 -10 170 100 0 -5 -4 -6 0 2 0 b 54
|
||||
Act 3 Dungeon Up 55 -10 -100 90 130 0 5 3 1 1 2 0 b 55
|
||||
Act 3 Dungeon Down 56 -40 -20 170 100 -5 0 -4 -1 1 2 0 b 56
|
||||
Act 3 Kurast to Sewer 57 -60 -40 120 90 0 5 0 0 1 2 0 b 57
|
||||
Act 3 Sewer Up L 58 -75 -110 100 150 5 0 1 1 1 2 0 b 58
|
||||
Act 3 Sewer Up R 59 -25 -110 100 150 0 5 6 1 1 2 0 b 59
|
||||
Act 3 Sewer Down 60 -10 -10 0 0 5 5 0 0 0 2 1 b 60
|
||||
Act 3 Kurast to Temple 61 -10 -10 0 0 5 5 0 0 0 2 1 b 61
|
||||
Act 3 Temple Up L 62 -50 -110 80 140 5 0 1 2 1 2 0 b 62
|
||||
Act 3 Temple Up R 63 -30 -110 80 140 0 5 2 1 1 2 0 b 63
|
||||
Act 3 Travincal to Mephisto 64 -10 -10 0 0 5 5 0 0 0 2 1 b 64
|
||||
Act 3 Mephisto Up L 65 -65 -150 125 180 5 0 1 0 1 2 0 b 65
|
||||
Act 3 Mephisto Up R 66 -60 -150 125 180 0 5 5 1 1 2 0 b 66
|
||||
Act 3 Mephisto Down L 67 -65 -150 125 180 5 0 1 0 1 2 0 b 67
|
||||
Act 3 Mephisto Down R 68 -60 -150 125 180 0 5 5 1 1 2 0 b 68
|
||||
Act 4 Mesa to Lava 69 -60 -40 150 160 -5 0 2 2 0 2 0 b 69
|
||||
Act 4 Lava to Mesa 70 -90 -50 160 120 5 2 0 0 0 2 0 b 70
|
||||
Expansion
|
||||
Act 5 Barricade Down Wall L 71 -70 -80 80 100 5 2 2 6 1 4 0 l 71
|
||||
Act 5 Barricade Down Wall R 71 -15 -90 70 100 -1 5 6 2 1 4 0 r 72
|
||||
Act 5 Barricade Down Floor 72 -20 -120 75 100 5 2 2 2 1 4 0 b 73
|
||||
Act 5 Ice Caves Up L 73 -60 -110 90 115 5 2 0 5 1 2 0 l 74
|
||||
Act 5 Ice Caves Up R 73 -10 -120 100 120 2 5 5 1 1 2 0 r 75
|
||||
Act 5 Ice Caves Down L 74 -60 -110 90 115 5 2 0 5 1 2 0 l 76
|
||||
Act 5 Ice Caves Down R 74 -20 -110 90 115 2 5 4 0 1 2 0 r 77
|
||||
Act 5 Ice Caves Down Floor 75 -5 -110 80 110 2 5 6 3 1 2 0 b 78
|
||||
Act 5 Temple Entrance 76 0 -110 95 100 2 5 2 0 1 2 0 b 79
|
||||
Act 5 Temple Down 77 0 -70 140 80 5 2 -2 3 1 2 0 b 80
|
||||
Act 5 Temple Up 78 -20 -110 100 110 5 2 3 0 1 2 0 b 81
|
||||
Act 5 Mountain Top To Ice 79 -40 -110 0 0 2 5 2 1 0 2 1 b 82
|
||||
Act 5 Mountain Top To Baal 80 -20 -110 0 0 2 5 2 1 0 2 1 b 83
|
||||
Act 5 Baal Temple Up L 81 -70 -110 95 115 5 2 1 4 1 2 0 l 84
|
||||
Act 5 Baal Temple Up R 81 -20 -110 80 115 2 5 4 1 1 2 0 r 85
|
||||
Act 5 Baal Temple Down L 82 -70 -110 95 115 5 2 1 4 1 2 0 l 86
|
||||
Act 5 Baal Temple Down R 82 -20 -110 80 115 2 5 4 1 1 2 0 r 87
|
||||
@@ -35,6 +35,7 @@ type Data struct {
|
||||
NPCs NPCs
|
||||
Inventory Inventory
|
||||
Objects Objects
|
||||
Entrances Entrances
|
||||
AdjacentLevels []Level
|
||||
Rooms []Room
|
||||
OpenMenus OpenMenus
|
||||
|
||||
13
pkg/data/entrance/description.go
Normal file
13
pkg/data/entrance/description.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package entrance
|
||||
|
||||
type Description struct {
|
||||
ID int
|
||||
Name string
|
||||
SelectX int
|
||||
SelectY int
|
||||
SelectDX int
|
||||
SelectDY int
|
||||
OffsetX int
|
||||
OffsetY int
|
||||
Direction string
|
||||
}
|
||||
94
pkg/data/entrance/entrances.go
Normal file
94
pkg/data/entrance/entrances.go
Normal file
@@ -0,0 +1,94 @@
|
||||
// Code generated by cmd/txttocode. DO NOT EDIT.
|
||||
// source: cmd/txttocode/txt/lvlwarp.txt
|
||||
package entrance
|
||||
|
||||
var Desc = map[int]Description{
|
||||
0: {ID: 0, Name: "Act 1 Wilderness to Cave Cliff L", SelectX: -90, SelectY: -100, SelectDX: 90, SelectDY: 110, OffsetX: 1, OffsetY: -1, Direction: "b"},
|
||||
1: {ID: 1, Name: "Act 1 Wilderness to Cave Cliff R", SelectX: -15, SelectY: -90, SelectDX: 90, SelectDY: 110, OffsetX: 3, OffsetY: 1, Direction: "b"},
|
||||
2: {ID: 2, Name: "Act 1 Wilderness to Cave Floor L", SelectX: -60, SelectY: -60, SelectDX: 85, SelectDY: 100, OffsetX: -1, OffsetY: 1, Direction: "b"},
|
||||
3: {ID: 3, Name: "Act 1 Wilderness to Cave Floor R", SelectX: -25, SelectY: -60, SelectDX: 85, SelectDY: 100, OffsetX: 1, OffsetY: -1, Direction: "b"},
|
||||
4: {ID: 4, Name: "Act 1 Cave Up", SelectX: -30, SelectY: -120, SelectDX: 120, SelectDY: 150, OffsetX: 2, OffsetY: 5, Direction: "b"},
|
||||
5: {ID: 5, Name: "Act 1 Cave Down", SelectX: -25, SelectY: -75, SelectDX: 80, SelectDY: 100, OffsetX: 1, OffsetY: 3, Direction: "b"},
|
||||
6: {ID: 6, Name: "Act 1 Graveyard to Crypt 1", SelectX: -90, SelectY: -110, SelectDX: 110, SelectDY: 140, OffsetX: 5, OffsetY: 0, Direction: "b"},
|
||||
7: {ID: 7, Name: "Act 1 Graveyard to Crypt 2", SelectX: -70, SelectY: -90, SelectDX: 90, SelectDY: 120, OffsetX: 5, OffsetY: 2, Direction: "b"},
|
||||
8: {ID: 8, Name: "Act 1 Crypt Up", SelectX: -10, SelectY: -90, SelectDX: 60, SelectDY: 110, OffsetX: 5, OffsetY: 1, Direction: "b"},
|
||||
9: {ID: 9, Name: "Act 1 Crypt Down", SelectX: -30, SelectY: -90, SelectDX: 60, SelectDY: 110, OffsetX: 1, OffsetY: 1, Direction: "b"},
|
||||
10: {ID: 10, Name: "Act 1 Wilderness to Tower", SelectX: -10, SelectY: -50, SelectDX: 150, SelectDY: 80, OffsetX: -4, OffsetY: 0, Direction: "b"},
|
||||
11: {ID: 11, Name: "Act 1 Tower to Wilderness", SelectX: -50, SelectY: -130, SelectDX: 60, SelectDY: 140, OffsetX: 4, OffsetY: -2, Direction: "b"},
|
||||
12: {ID: 12, Name: "Act 1 Tower to Crypt", SelectX: -50, SelectY: -90, SelectDX: 80, SelectDY: 110, OffsetX: 2, OffsetY: 3, Direction: "b"},
|
||||
13: {ID: 13, Name: "Act 1 Jail Up", SelectX: -50, SelectY: -110, SelectDX: 110, SelectDY: 150, OffsetX: 5, OffsetY: 1, Direction: "b"},
|
||||
14: {ID: 14, Name: "Act 1 Jail Down", SelectX: -40, SelectY: -80, SelectDX: 210, SelectDY: 110, OffsetX: -1, OffsetY: 3, Direction: "b"},
|
||||
15: {ID: 15, Name: "Act 1 Cathedral To Catacombs", SelectX: -30, SelectY: -110, SelectDX: 85, SelectDY: 130, OffsetX: 3, OffsetY: 1, Direction: "b"},
|
||||
16: {ID: 16, Name: "Act 1 Catacombs to Cathedral", SelectX: -35, SelectY: -130, SelectDX: 90, SelectDY: 150, OffsetX: 7, OffsetY: 1, Direction: "b"},
|
||||
17: {ID: 17, Name: "Act 1 Catacombs Up", SelectX: -50, SelectY: -110, SelectDX: 110, SelectDY: 150, OffsetX: 5, OffsetY: 1, Direction: "b"},
|
||||
18: {ID: 18, Name: "Act 1 Catacombs Down", SelectX: -60, SelectY: -80, SelectDX: 210, SelectDY: 110, OffsetX: -1, OffsetY: 3, Direction: "b"},
|
||||
19: {ID: 19, Name: "Act 2 Town to Sewer Trap", SelectX: -10, SelectY: -10, SelectDX: 0, SelectDY: 0, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
20: {ID: 20, Name: "Act 2 Town to Sewer Dock", SelectX: -25, SelectY: -95, SelectDX: 70, SelectDY: 130, OffsetX: -2, OffsetY: 0, Direction: "b"},
|
||||
21: {ID: 21, Name: "Act 2 Sewer Dock to Town", SelectX: 20, SelectY: -80, SelectDX: 65, SelectDY: 140, OffsetX: 10, OffsetY: -2, Direction: "b"},
|
||||
22: {ID: 22, Name: "Act 2 Sewer Up", SelectX: -25, SelectY: -160, SelectDX: 100, SelectDY: 180, OffsetX: 5, OffsetY: 3, Direction: "b"},
|
||||
23: {ID: 23, Name: "Act 2 Sewer Down", SelectX: -65, SelectY: -55, SelectDX: 150, SelectDY: 110, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
24: {ID: 24, Name: "Act 2 Town to Harem", SelectX: -120, SelectY: -20, SelectDX: 150, SelectDY: 130, OffsetX: 5, OffsetY: 2, Direction: "b"},
|
||||
25: {ID: 25, Name: "Act 2 Harem to Town", SelectX: -35, SelectY: -70, SelectDX: 95, SelectDY: 130, OffsetX: 0, OffsetY: -2, Direction: "b"},
|
||||
26: {ID: 26, Name: "Act 2 Harem Up 1", SelectX: -25, SelectY: -150, SelectDX: 80, SelectDY: 180, OffsetX: 4, OffsetY: 0, Direction: "b"},
|
||||
27: {ID: 27, Name: "Act 2 Harem Up 2", SelectX: -40, SelectY: -160, SelectDX: 80, SelectDY: 180, OffsetX: 0, OffsetY: 5, Direction: "b"},
|
||||
28: {ID: 28, Name: "Act 2 Harem Down 1", SelectX: -20, SelectY: -40, SelectDX: 170, SelectDY: 100, OffsetX: -3, OffsetY: 1, Direction: "b"},
|
||||
29: {ID: 29, Name: "Act 2 Harem Down 2", SelectX: -50, SelectY: -20, SelectDX: 160, SelectDY: 85, OffsetX: -1, OffsetY: -3, Direction: "b"},
|
||||
30: {ID: 30, Name: "Act 2 Basement Up 1", SelectX: -25, SelectY: -100, SelectDX: 60, SelectDY: 125, OffsetX: 2, OffsetY: 0, Direction: "b"},
|
||||
31: {ID: 31, Name: "Act 2 Basement Up 2", SelectX: -40, SelectY: -100, SelectDX: 60, SelectDY: 125, OffsetX: 0, OffsetY: 2, Direction: "b"},
|
||||
32: {ID: 32, Name: "Act 2 Basement Down", SelectX: -30, SelectY: -30, SelectDX: 170, SelectDY: 90, OffsetX: -3, OffsetY: 0, Direction: "b"},
|
||||
33: {ID: 33, Name: "Act 2 Desert to Tomb L 1", SelectX: -70, SelectY: -140, SelectDX: 80, SelectDY: 160, OffsetX: 1, OffsetY: 1, Direction: "b"},
|
||||
34: {ID: 34, Name: "Act 2 Desert to Tomb L 2", SelectX: -50, SelectY: -120, SelectDX: 90, SelectDY: 150, OffsetX: 1, OffsetY: 1, Direction: "b"},
|
||||
35: {ID: 35, Name: "Act 2 Desert to Tomb R 1", SelectX: -30, SelectY: -140, SelectDX: 80, SelectDY: 160, OffsetX: 6, OffsetY: 2, Direction: "b"},
|
||||
36: {ID: 36, Name: "Act 2 Desert to Tomb R 2", SelectX: 0, SelectY: -140, SelectDX: 100, SelectDY: 150, OffsetX: 1, OffsetY: 2, Direction: "b"},
|
||||
37: {ID: 37, Name: "Act 2 Desert to Tomb Viper", SelectX: -30, SelectY: -140, SelectDX: 80, SelectDY: 160, OffsetX: 4, OffsetY: 1, Direction: "b"},
|
||||
38: {ID: 38, Name: "Act 2 Desert to Tomb Tal 1", SelectX: -40, SelectY: -190, SelectDX: 90, SelectDY: 210, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
39: {ID: 39, Name: "Act 2 Desert to Tomb Tal 2", SelectX: -40, SelectY: -210, SelectDX: 50, SelectDY: 230, OffsetX: -1, OffsetY: 1, Direction: "b"},
|
||||
40: {ID: 40, Name: "Act 2 Desert to Tomb Tal 3", SelectX: -30, SelectY: -100, SelectDX: 60, SelectDY: 140, OffsetX: 0, OffsetY: 1, Direction: "b"},
|
||||
41: {ID: 41, Name: "Act 2 Desert to Tomb Tal 4", SelectX: -90, SelectY: -140, SelectDX: 70, SelectDY: 160, OffsetX: -1, OffsetY: -5, Direction: "b"},
|
||||
42: {ID: 42, Name: "Act 2 Desert to Tomb Tal 5", SelectX: -10, SelectY: -110, SelectDX: 60, SelectDY: 150, OffsetX: -2, OffsetY: -3, Direction: "b"},
|
||||
43: {ID: 43, Name: "Act 2 Desert to Tomb Tal 6", SelectX: 0, SelectY: -130, SelectDX: 90, SelectDY: 150, OffsetX: -1, OffsetY: 0, Direction: "b"},
|
||||
44: {ID: 44, Name: "Act 2 Desert to Tomb Tal 7", SelectX: -10, SelectY: -210, SelectDX: 70, SelectDY: 240, OffsetX: 0, OffsetY: -3, Direction: "b"},
|
||||
45: {ID: 45, Name: "Act 2 Tomb Up", SelectX: -30, SelectY: -115, SelectDX: 75, SelectDY: 145, OffsetX: 2, OffsetY: 0, Direction: "b"},
|
||||
46: {ID: 46, Name: "Act 2 Tomb Down", SelectX: -45, SelectY: -120, SelectDX: 85, SelectDY: 145, OffsetX: 0, OffsetY: 2, Direction: "b"},
|
||||
47: {ID: 47, Name: "Act 2 Desert to Lair", SelectX: -10, SelectY: -60, SelectDX: 90, SelectDY: 90, OffsetX: -2, OffsetY: 2, Direction: "b"},
|
||||
48: {ID: 48, Name: "Act 2 Lair Up", SelectX: -20, SelectY: -70, SelectDX: 80, SelectDY: 85, OffsetX: 1, OffsetY: 0, Direction: "b"},
|
||||
49: {ID: 49, Name: "Act 2 Lair Down", SelectX: -115, SelectY: -10, SelectDX: 160, SelectDY: 70, OffsetX: -3, OffsetY: -5, Direction: "b"},
|
||||
50: {ID: 50, Name: "Act 2 Desert to Sewer Trap", SelectX: -10, SelectY: -10, SelectDX: 0, SelectDY: 0, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
51: {ID: 51, Name: "Act 3 Jungle to Spider", SelectX: -60, SelectY: -70, SelectDX: 70, SelectDY: 90, OffsetX: 0, OffsetY: 1, Direction: "b"},
|
||||
52: {ID: 52, Name: "Act 3 Spider to Jungle", SelectX: 10, SelectY: -100, SelectDX: 80, SelectDY: 110, OffsetX: 4, OffsetY: 1, Direction: "b"},
|
||||
53: {ID: 53, Name: "Act 3 Jungle to Dungeon Fort", SelectX: -15, SelectY: -70, SelectDX: 70, SelectDY: 110, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
54: {ID: 54, Name: "Act 3 Jungle to Dungeon Hole", SelectX: -130, SelectY: -10, SelectDX: 170, SelectDY: 100, OffsetX: -4, OffsetY: -6, Direction: "b"},
|
||||
55: {ID: 55, Name: "Act 3 Dungeon Up", SelectX: -10, SelectY: -100, SelectDX: 90, SelectDY: 130, OffsetX: 3, OffsetY: 1, Direction: "b"},
|
||||
56: {ID: 56, Name: "Act 3 Dungeon Down", SelectX: -40, SelectY: -20, SelectDX: 170, SelectDY: 100, OffsetX: -4, OffsetY: -1, Direction: "b"},
|
||||
57: {ID: 57, Name: "Act 3 Kurast to Sewer", SelectX: -60, SelectY: -40, SelectDX: 120, SelectDY: 90, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
58: {ID: 58, Name: "Act 3 Sewer Up L", SelectX: -75, SelectY: -110, SelectDX: 100, SelectDY: 150, OffsetX: 1, OffsetY: 1, Direction: "b"},
|
||||
59: {ID: 59, Name: "Act 3 Sewer Up R", SelectX: -25, SelectY: -110, SelectDX: 100, SelectDY: 150, OffsetX: 6, OffsetY: 1, Direction: "b"},
|
||||
60: {ID: 60, Name: "Act 3 Sewer Down", SelectX: -10, SelectY: -10, SelectDX: 0, SelectDY: 0, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
61: {ID: 61, Name: "Act 3 Kurast to Temple", SelectX: -10, SelectY: -10, SelectDX: 0, SelectDY: 0, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
62: {ID: 62, Name: "Act 3 Temple Up L", SelectX: -50, SelectY: -110, SelectDX: 80, SelectDY: 140, OffsetX: 1, OffsetY: 2, Direction: "b"},
|
||||
63: {ID: 63, Name: "Act 3 Temple Up R", SelectX: -30, SelectY: -110, SelectDX: 80, SelectDY: 140, OffsetX: 2, OffsetY: 1, Direction: "b"},
|
||||
64: {ID: 64, Name: "Act 3 Travincal to Mephisto", SelectX: -10, SelectY: -10, SelectDX: 0, SelectDY: 0, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
65: {ID: 65, Name: "Act 3 Mephisto Up L", SelectX: -65, SelectY: -150, SelectDX: 125, SelectDY: 180, OffsetX: 1, OffsetY: 0, Direction: "b"},
|
||||
66: {ID: 66, Name: "Act 3 Mephisto Up R", SelectX: -60, SelectY: -150, SelectDX: 125, SelectDY: 180, OffsetX: 5, OffsetY: 1, Direction: "b"},
|
||||
67: {ID: 67, Name: "Act 3 Mephisto Down L", SelectX: -65, SelectY: -150, SelectDX: 125, SelectDY: 180, OffsetX: 1, OffsetY: 0, Direction: "b"},
|
||||
68: {ID: 68, Name: "Act 3 Mephisto Down R", SelectX: -60, SelectY: -150, SelectDX: 125, SelectDY: 180, OffsetX: 5, OffsetY: 1, Direction: "b"},
|
||||
69: {ID: 69, Name: "Act 4 Mesa to Lava", SelectX: -60, SelectY: -40, SelectDX: 150, SelectDY: 160, OffsetX: 2, OffsetY: 2, Direction: "b"},
|
||||
70: {ID: 70, Name: "Act 4 Lava to Mesa", SelectX: -90, SelectY: -50, SelectDX: 160, SelectDY: 120, OffsetX: 0, OffsetY: 0, Direction: "b"},
|
||||
71: {ID: 71, Name: "Act 5 Barricade Down Wall L", SelectX: -70, SelectY: -80, SelectDX: 80, SelectDY: 100, OffsetX: 2, OffsetY: 6, Direction: "l"},
|
||||
72: {ID: 72, Name: "Act 5 Barricade Down Wall R", SelectX: -15, SelectY: -90, SelectDX: 70, SelectDY: 100, OffsetX: 6, OffsetY: 2, Direction: "r"},
|
||||
73: {ID: 73, Name: "Act 5 Barricade Down Floor", SelectX: -20, SelectY: -120, SelectDX: 75, SelectDY: 100, OffsetX: 2, OffsetY: 2, Direction: "b"},
|
||||
74: {ID: 74, Name: "Act 5 Ice Caves Up L", SelectX: -60, SelectY: -110, SelectDX: 90, SelectDY: 115, OffsetX: 0, OffsetY: 5, Direction: "l"},
|
||||
75: {ID: 75, Name: "Act 5 Ice Caves Up R", SelectX: -10, SelectY: -120, SelectDX: 100, SelectDY: 120, OffsetX: 5, OffsetY: 1, Direction: "r"},
|
||||
76: {ID: 76, Name: "Act 5 Ice Caves Down L", SelectX: -60, SelectY: -110, SelectDX: 90, SelectDY: 115, OffsetX: 0, OffsetY: 5, Direction: "l"},
|
||||
77: {ID: 77, Name: "Act 5 Ice Caves Down R", SelectX: -20, SelectY: -110, SelectDX: 90, SelectDY: 115, OffsetX: 4, OffsetY: 0, Direction: "r"},
|
||||
78: {ID: 78, Name: "Act 5 Ice Caves Down Floor", SelectX: -5, SelectY: -110, SelectDX: 80, SelectDY: 110, OffsetX: 6, OffsetY: 3, Direction: "b"},
|
||||
79: {ID: 79, Name: "Act 5 Temple Entrance", SelectX: 0, SelectY: -110, SelectDX: 95, SelectDY: 100, OffsetX: 2, OffsetY: 0, Direction: "b"},
|
||||
80: {ID: 80, Name: "Act 5 Temple Down", SelectX: 0, SelectY: -70, SelectDX: 140, SelectDY: 80, OffsetX: -2, OffsetY: 3, Direction: "b"},
|
||||
81: {ID: 81, Name: "Act 5 Temple Up", SelectX: -20, SelectY: -110, SelectDX: 100, SelectDY: 110, OffsetX: 3, OffsetY: 0, Direction: "b"},
|
||||
82: {ID: 82, Name: "Act 5 Mountain Top To Ice", SelectX: -40, SelectY: -110, SelectDX: 0, SelectDY: 0, OffsetX: 2, OffsetY: 1, Direction: "b"},
|
||||
83: {ID: 83, Name: "Act 5 Mountain Top To Baal", SelectX: -20, SelectY: -110, SelectDX: 0, SelectDY: 0, OffsetX: 2, OffsetY: 1, Direction: "b"},
|
||||
84: {ID: 84, Name: "Act 5 Baal Temple Up L", SelectX: -70, SelectY: -110, SelectDX: 95, SelectDY: 115, OffsetX: 1, OffsetY: 4, Direction: "l"},
|
||||
85: {ID: 85, Name: "Act 5 Baal Temple Up R", SelectX: -20, SelectY: -110, SelectDX: 80, SelectDY: 115, OffsetX: 4, OffsetY: 1, Direction: "r"},
|
||||
86: {ID: 86, Name: "Act 5 Baal Temple Down L", SelectX: -70, SelectY: -110, SelectDX: 95, SelectDY: 115, OffsetX: 1, OffsetY: 4, Direction: "l"},
|
||||
87: {ID: 87, Name: "Act 5 Baal Temple Down R", SelectX: -20, SelectY: -110, SelectDX: 80, SelectDY: 115, OffsetX: 4, OffsetY: 1, Direction: "r"},
|
||||
}
|
||||
94
pkg/data/entrance/name.go
Normal file
94
pkg/data/entrance/name.go
Normal file
@@ -0,0 +1,94 @@
|
||||
package entrance
|
||||
|
||||
type Name int
|
||||
|
||||
const (
|
||||
A1WildernessToCliffL Name = iota
|
||||
A1WildernessToCliffR
|
||||
A1WildernessToFloorL
|
||||
A1WildernessToFloorR
|
||||
A1CaveUp
|
||||
A1CaveDown
|
||||
A1GraveyardToCrypt1
|
||||
A1GraveyardToCrypt2
|
||||
A1CryptUp
|
||||
A1CryptDown
|
||||
A1WildernessToTower
|
||||
A1TowertoWilderness
|
||||
A1TowertoCrypt
|
||||
A1JailUp
|
||||
A1JailDown
|
||||
A1CathedralToCatacombs
|
||||
A1CatacombstoCathedral
|
||||
A1CatacombsUp
|
||||
A1CatacombsDown
|
||||
A2TowntoSewerTrap
|
||||
A2TowntoSewerDock
|
||||
A2SewerDocktoTown
|
||||
A2SewerUp
|
||||
A2SewerDown
|
||||
A2TowntoHarem
|
||||
A2HaremtoTown
|
||||
A2HaremUp1
|
||||
A2HaremUp2
|
||||
A2HaremDown1
|
||||
A2HaremDown2
|
||||
A2BasementUp1
|
||||
A2BasementUp2
|
||||
A2BasementDown
|
||||
A2DeserttoTombL1
|
||||
A2DeserttoTombL2
|
||||
A2DeserttoTombR1
|
||||
A2DeserttoTombR2
|
||||
A2DeserttoTombViper
|
||||
A2DeserttoTombTal1
|
||||
A2DeserttoTombTal2
|
||||
A2DeserttoTombTal3
|
||||
A2DeserttoTombTal4
|
||||
A2DeserttoTombTal5
|
||||
A2DeserttoTombTal6
|
||||
A2DeserttoTombTal7
|
||||
A2TombUp
|
||||
A2TombDown
|
||||
A2DeserttoLair
|
||||
A2LairUp
|
||||
A2LairDown
|
||||
A2DeserttoSewerTrap
|
||||
A3JungletoSpider
|
||||
A3SpidertoJungle
|
||||
A3JungletoDungeonFort
|
||||
A3JungletoDungeonHole
|
||||
A3DungeonUp
|
||||
A3DungeonDown
|
||||
A3KurasttoSewer
|
||||
A3SewerUpL
|
||||
A3SewerUpR
|
||||
A3SewerDown
|
||||
A3KurasttoTemple
|
||||
A3TempleUpL
|
||||
A3TempleUpR
|
||||
A3TravincaltoMephisto
|
||||
A3MephistoUpL
|
||||
A3MephistoUpR
|
||||
A3MephistoDownL
|
||||
A3MephistoDownR
|
||||
A4MesatoLava
|
||||
A4LavatoMesa
|
||||
A5BarricadeDownWallL
|
||||
A5BarricadeDownWallR
|
||||
A5BarricadeDownFloor
|
||||
A5IceCavesUpL
|
||||
A5IceCavesUpR
|
||||
A5IceCavesDownL
|
||||
A5IceCavesDownR
|
||||
A5iceCavesDownFloor
|
||||
A5TempleEntrance
|
||||
A5TempleDown
|
||||
A5TempleUp
|
||||
A5MountainTopToIce
|
||||
A5MountainTopToBaal
|
||||
A5BaalTempleUpL
|
||||
A5BaalTempleUpR
|
||||
A5BaalTempleDownL
|
||||
A5BaalTempleDownR
|
||||
)
|
||||
33
pkg/data/entrances.go
Normal file
33
pkg/data/entrances.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"github.com/hectorgimenez/d2go/pkg/data/entrance"
|
||||
)
|
||||
|
||||
type Entrance struct {
|
||||
ID UnitID
|
||||
entrance.Name
|
||||
IsHovered bool
|
||||
Selectable bool
|
||||
Position Position
|
||||
}
|
||||
|
||||
type Entrances []Entrance
|
||||
|
||||
func (e Entrances) FindOne(name entrance.Name) (Entrance, bool) {
|
||||
for _, ent := range e {
|
||||
if ent.Name == name {
|
||||
return ent, true
|
||||
}
|
||||
}
|
||||
return Entrance{}, false
|
||||
}
|
||||
|
||||
func (e Entrances) FindByID(id UnitID) (Entrance, bool) {
|
||||
for _, ent := range e {
|
||||
if ent.ID == id {
|
||||
return ent, true
|
||||
}
|
||||
}
|
||||
return Entrance{}, false
|
||||
}
|
||||
@@ -57,6 +57,7 @@ func (gd *GameReader) GetData() data.Data {
|
||||
PlayerUnit: pu,
|
||||
Inventory: gd.Inventory(rawPlayerUnits, hover),
|
||||
Objects: gd.Objects(pu.Position, hover),
|
||||
Entrances: gd.Entrances(pu.Position, hover),
|
||||
OpenMenus: gd.openMenus(),
|
||||
Widgets: gd.UpdateWidgets(),
|
||||
Roster: roster,
|
||||
|
||||
@@ -3,6 +3,7 @@ package memory
|
||||
import (
|
||||
"sort"
|
||||
|
||||
"github.com/hectorgimenez/d2go/pkg/data/entrance"
|
||||
"github.com/hectorgimenez/d2go/pkg/data/mode"
|
||||
|
||||
"github.com/hectorgimenez/d2go/pkg/data"
|
||||
@@ -97,3 +98,39 @@ func (gd *GameReader) Objects(playerPosition data.Position, hover data.HoverData
|
||||
|
||||
return objects
|
||||
}
|
||||
func (gd *GameReader) Entrances(playerPosition data.Position, hover data.HoverData) []data.Entrance {
|
||||
baseAddr := gd.Process.moduleBaseAddressPtr + gd.offset.UnitTable + (5 * 1024)
|
||||
unitTableBuffer := gd.Process.ReadBytesFromMemory(baseAddr, 128*8)
|
||||
|
||||
var entrances []data.Entrance
|
||||
|
||||
for i := 0; i < 128; i++ {
|
||||
entranceOffset := 8 * i
|
||||
entranceUnitPtr := uintptr(ReadUIntFromBuffer(unitTableBuffer, uint(entranceOffset), Uint64))
|
||||
|
||||
for entranceUnitPtr > 0 {
|
||||
|
||||
if entranceType := gd.Process.ReadUInt(entranceUnitPtr+0x00, Uint32); entranceType == 5 {
|
||||
txtFileNo := gd.Process.ReadUInt(entranceUnitPtr+0x04, Uint32)
|
||||
unitID := gd.Process.ReadUInt(entranceUnitPtr+0x08, Uint32)
|
||||
|
||||
pathPtr := uintptr(gd.Process.ReadUInt(entranceUnitPtr+0x38, Uint64))
|
||||
posX := gd.Process.ReadUInt(pathPtr+0x10, Uint16)
|
||||
posY := gd.Process.ReadUInt(pathPtr+0x14, Uint16)
|
||||
|
||||
entrances = append(entrances, data.Entrance{
|
||||
ID: data.UnitID(unitID),
|
||||
Name: entrance.Name(txtFileNo),
|
||||
IsHovered: data.UnitID(unitID) == hover.UnitID && hover.UnitType == 5 && hover.IsHovered,
|
||||
Position: data.Position{
|
||||
X: int(posX),
|
||||
Y: int(posY),
|
||||
},
|
||||
})
|
||||
}
|
||||
entranceUnitPtr = uintptr(gd.Process.ReadUInt(entranceUnitPtr+0x158, Uint64))
|
||||
}
|
||||
}
|
||||
|
||||
return entrances
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user