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",
|
DestFile: "pkg/data/object/objects.go",
|
||||||
Template: templateObjects,
|
Template: templateObjects,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
SourceFile: "cmd/txttocode/txt/lvlwarp.txt",
|
||||||
|
DestFile: "pkg/data/entrance/entrances.go",
|
||||||
|
Template: templateEntrances,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
type TextFileDesc struct {
|
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 }}},
|
{{ 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 }}
|
{{- 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
|
NPCs NPCs
|
||||||
Inventory Inventory
|
Inventory Inventory
|
||||||
Objects Objects
|
Objects Objects
|
||||||
|
Entrances Entrances
|
||||||
AdjacentLevels []Level
|
AdjacentLevels []Level
|
||||||
Rooms []Room
|
Rooms []Room
|
||||||
OpenMenus OpenMenus
|
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,
|
PlayerUnit: pu,
|
||||||
Inventory: gd.Inventory(rawPlayerUnits, hover),
|
Inventory: gd.Inventory(rawPlayerUnits, hover),
|
||||||
Objects: gd.Objects(pu.Position, hover),
|
Objects: gd.Objects(pu.Position, hover),
|
||||||
|
Entrances: gd.Entrances(pu.Position, hover),
|
||||||
OpenMenus: gd.openMenus(),
|
OpenMenus: gd.openMenus(),
|
||||||
Widgets: gd.UpdateWidgets(),
|
Widgets: gd.UpdateWidgets(),
|
||||||
Roster: roster,
|
Roster: roster,
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package memory
|
|||||||
import (
|
import (
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
|
"github.com/hectorgimenez/d2go/pkg/data/entrance"
|
||||||
"github.com/hectorgimenez/d2go/pkg/data/mode"
|
"github.com/hectorgimenez/d2go/pkg/data/mode"
|
||||||
|
|
||||||
"github.com/hectorgimenez/d2go/pkg/data"
|
"github.com/hectorgimenez/d2go/pkg/data"
|
||||||
@@ -97,3 +98,39 @@ func (gd *GameReader) Objects(playerPosition data.Position, hover data.HoverData
|
|||||||
|
|
||||||
return objects
|
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