Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 1/Scripts/LevelSelect/MenuDPad.txt
1482 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Menu DPad Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
private alias object.value1 : object.pressedLR
13
14
15
// ========================
16
// Events
17
// ========================
18
19
event ObjectUpdate
20
#platform: MOBILE
21
temp0 = screen.xcenter
22
temp0 -= 56
23
CheckTouchRect(0, 96, temp0, screen.ysize)
24
if checkResult > -1
25
arrayPos0 = checkResult
26
temp0 = touchscreen[arrayPos0].xpos
27
temp0 -= 64
28
temp1 = touchscreen[arrayPos0].ypos
29
temp1 -= 194
30
ATan2(temp2, temp0, temp1)
31
temp2 += 0x20
32
temp2 &= 0xFF
33
temp2 >>= 6
34
switch temp2
35
case 0
36
keyDown[0].right = true
37
if object.pressedLR == false
38
keyPress[0].right |= keyDown[0].right
39
end if
40
object.pressedLR = keyDown[0].right
41
break
42
43
case 1
44
keyDown[0].down = true
45
break
46
47
case 2
48
keyDown[0].left = true
49
if object.pressedLR == false
50
keyPress[0].left |= keyDown[0].left
51
end if
52
object.pressedLR = keyDown[0].left
53
break
54
55
case 3
56
keyDown[0].up = true
57
break
58
59
end switch
60
else
61
object.pressedLR = false
62
end if
63
#endplatform
64
end event
65
66
67
event ObjectDraw
68
if keyDown[0].up == true
69
DrawSpriteScreenXY(1, 64, 194)
70
else
71
DrawSpriteScreenXY(0, 64, 194)
72
end if
73
74
if keyDown[0].down == true
75
DrawSpriteScreenXY(3, 64, 194)
76
else
77
DrawSpriteScreenXY(2, 64, 194)
78
end if
79
80
if keyDown[0].left == true
81
DrawSpriteScreenXY(5, 64, 194)
82
else
83
DrawSpriteScreenXY(4, 64, 194)
84
end if
85
86
if keyDown[0].right == true
87
DrawSpriteScreenXY(7, 64, 194)
88
else
89
DrawSpriteScreenXY(6, 64, 194)
90
end if
91
end event
92
93
94
event ObjectStartup
95
LoadSpriteSheet("LevelSelect/Icons.gif")
96
97
foreach (TypeName[Menu DPad], arrayPos0, ALL_ENTITIES)
98
switch engine.deviceType
99
case STANDARD
100
// If on a standard platform, then touch controls aren't needed
101
object[arrayPos0].type = TypeName[Blank Object]
102
break
103
104
case MOBILE
105
object[arrayPos0].priority = PRIORITY_ACTIVE
106
break
107
108
end switch
109
next
110
111
SpriteFrame(-10, -30, 20, 20, 138, 1) // 0 - Blue up arrow
112
SpriteFrame(-10, -30, 20, 20, 138, 43) // 1 - Red up arrow
113
SpriteFrame(-10, 10, 20, 20, 159, 1) // 2 - Blue down arrow
114
SpriteFrame(-10, 10, 20, 20, 159, 43) // 3 - Red down arrow
115
SpriteFrame(-30, -10, 20, 20, 138, 22) // 4 - Blue left arrow
116
SpriteFrame(-30, -10, 20, 20, 138, 64) // 5 - Red left arrow
117
SpriteFrame(10, -10, 20, 20, 159, 22) // 6 - Blue right arrow
118
SpriteFrame(10, -10, 20, 20, 159, 64) // 7 - Red right arrow
119
end event
120
121
122
// ========================
123
// Editor Events
124
// ========================
125
126
event RSDKDraw
127
DrawSprite(0)
128
DrawSprite(2)
129
DrawSprite(4)
130
DrawSprite(6)
131
end event
132
133
134
event RSDKLoad
135
LoadSpriteSheet("LevelSelect/Icons.gif")
136
SpriteFrame(-10, -30, 20, 20, 138, 1) // 0 - Blue up arrow
137
SpriteFrame(-10, -30, 20, 20, 138, 43) // 1 - Red up arrow
138
SpriteFrame(-10, 10, 20, 20, 159, 1) // 2 - Blue down arrow
139
SpriteFrame(-10, 10, 20, 20, 159, 43) // 3 - Red down arrow
140
SpriteFrame(-30, -10, 20, 20, 138, 22) // 4 - Blue left arrow
141
SpriteFrame(-30, -10, 20, 20, 138, 64) // 5 - Red left arrow
142
SpriteFrame(10, -10, 20, 20, 159, 22) // 6 - Blue right arrow
143
SpriteFrame(10, -10, 20, 20, 159, 64) // 7 - Red right arrow
144
145
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
146
end event
147
148