Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R8/R82CSetup.txt
1319 views
1
//---------------Sonic CD R8 2 C Setup Script-----------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value0 : Object.PaletteTimer
7
#alias Object.Value1 : Object.CurrentPalette
8
#alias Object.Value2 : Object.VGearFrame
9
#alias Object.Value3 : Object.HCylinderFrame
10
#alias Object.Value4 : Object.VCylinderFrame
11
#alias Object.Value5 : Object.LightsFrame
12
13
// Priority
14
#alias 1 : PRIORITY_ACTIVE
15
16
// Tile Info
17
#alias 1 : TILEINFO_DIRECTION
18
#alias 8 : TILEINFO_ANGLEB
19
20
21
sub ObjectMain
22
Object.Rotation++
23
Object.Rotation %= 144
24
25
TempValue0 = Object.VGearFrame
26
TempValue0 %= 7
27
if TempValue0 == 0
28
TempValue0 = Object.VGearFrame
29
TempValue0 /= 7
30
TempValue0 <<= 1
31
TempValue0 += 600
32
Copy16x16Tile(490, TempValue0)
33
TempValue0++
34
Copy16x16Tile(491, TempValue0)
35
end if
36
Object.VGearFrame++
37
Object.VGearFrame %= 28
38
39
TempValue0 = Object.HCylinderFrame
40
TempValue0 &= 3
41
if TempValue0 == 0
42
TempValue0 = Object.HCylinderFrame
43
TempValue0 >>= 2
44
TempValue0 <<= 1
45
TempValue0 += 608
46
Copy16x16Tile(492, TempValue0)
47
TempValue0++
48
Copy16x16Tile(493, TempValue0)
49
end if
50
Object.HCylinderFrame++
51
Object.HCylinderFrame &= 15
52
53
TempValue0 = Object.VCylinderFrame
54
TempValue0 %= 5
55
if TempValue0 == 0
56
TempValue0 = Object.VCylinderFrame
57
TempValue0 /= 5
58
TempValue0 <<= 2
59
TempValue0 += 616
60
Copy16x16Tile(494, TempValue0)
61
TempValue0++
62
Copy16x16Tile(495, TempValue0)
63
TempValue0++
64
Copy16x16Tile(496, TempValue0)
65
TempValue0++
66
Copy16x16Tile(497, TempValue0)
67
end if
68
Object.VCylinderFrame++
69
Object.VCylinderFrame %= 20
70
71
TempValue0 = Object.LightsFrame
72
TempValue0 &= 7
73
if TempValue0 == 0
74
TempValue0 = Object.LightsFrame
75
TempValue0 >>= 3
76
TempValue0 += 632
77
Copy16x16Tile(498, TempValue0)
78
end if
79
Object.LightsFrame++
80
Object.LightsFrame %= 56
81
82
Object.PaletteTimer++
83
if Object.PaletteTimer == 5
84
Object.PaletteTimer = 0
85
Object.CurrentPalette++
86
Object.CurrentPalette %= 6
87
TempValue0 = Object.CurrentPalette
88
TempValue0 += 639
89
Copy16x16Tile(499, TempValue0)
90
end if
91
SetActivePalette(Object.CurrentPalette, 0, Screen.YSize)
92
end sub
93
94
95
sub ObjectPlayerInteraction
96
TempValue1 = Player.XPos
97
TempValue1 >>= 16
98
TempValue1 += Player.CollisionRight
99
100
TempValue2 = Player.YPos
101
TempValue2 >>= 16
102
TempValue2 += Player.CollisionBottom
103
TempValue2 += 2
104
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_ANGLEB)
105
if TempValue0 == 1
106
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_DIRECTION)
107
if TempValue0 == 0
108
Player.XPos += 0x10000
109
else
110
Player.XPos -= 0x10000
111
end if
112
else
113
TempValue1 = Player.XPos
114
TempValue1 >>= 16
115
TempValue1 += Player.CollisionLeft
116
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_ANGLEB)
117
if TempValue0 == 1
118
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_DIRECTION)
119
if TempValue0 == 0
120
Player.XPos += 0x10000
121
else
122
Player.XPos -= 0x10000
123
end if
124
end if
125
end if
126
end sub
127
128
129
sub ObjectStartup
130
Object[19].Type = TypeName[R8 Setup]
131
Object[19].Priority = PRIORITY_ACTIVE
132
133
CopyPalette(0, 1)
134
CopyPalette(0, 2)
135
CopyPalette(0, 3)
136
CopyPalette(0, 4)
137
CopyPalette(0, 5)
138
139
TempValue0 = 0
140
TempValue1 = 0
141
TempValue2 = 32
142
while TempValue0 < 6
143
LoadPalette("R82C_PalCycle.act", TempValue0, 160, TempValue1, TempValue2)
144
TempValue0++
145
TempValue1 += 32
146
TempValue2 += 32
147
loop
148
end sub
149
150
151
// ========================
152
// Editor Subs
153
// ========================
154
155
sub RSDKDraw
156
DrawSprite(0)
157
end sub
158
159
160
sub RSDKLoad
161
LoadSpriteSheet("Global/Display.gif")
162
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
163
164
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
165
end sub
166
167