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