Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/DAGarden/UFO.txt
1319 views
1
//-------------------Sonic CD UFO Script----------------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value0 : Object.Timer
7
#alias Object.Value1 : Object.YOffSet
8
#alias Object.Value2 : Object.YVelocity
9
#alias Object.Value3 : Object.Wobble
10
#alias Object.Value4 : Object.XVelocity
11
12
// States
13
#alias 0 : UFO_WOBBLE1
14
#alias 1 : UFO_DESCEND
15
#alias 2 : UFO_ASCEND
16
#alias 3 : UFO_WOBBLE2
17
18
// Property Values
19
#alias 0 : YELLOW_UFO
20
#alias 3 : GREEN_UFO
21
22
23
sub ObjectMain
24
if Object.Direction == FACING_RIGHT
25
Object.XPos += Object.XVelocity
26
else
27
Object.XPos -= Object.XVelocity
28
end if
29
30
switch Object.State
31
case UFO_WOBBLE1
32
case UFO_WOBBLE2
33
Object.Frame = 0
34
Object.Wobble += 8
35
Object.Wobble &= 511
36
Sin(Object.YPos, Object.Wobble)
37
Object.YPos <<= 9
38
Object.YPos += Object.YOffSet
39
break
40
41
case UFO_DESCEND
42
Object.YPos += Object.YVelocity
43
Object.Frame = 1
44
Object.YOffSet = Object.YPos
45
if Object.YPos > 0xD00000
46
Object.State = UFO_ASCEND
47
end if
48
break
49
50
case UFO_ASCEND
51
Object.YPos -= Object.YVelocity
52
Object.Frame = 2
53
Object.YOffSet = Object.YPos
54
if Object.YPos < 0x200000
55
Object.State = UFO_DESCEND
56
end if
57
break
58
59
end switch
60
61
if Object.Timer > 0
62
Object.Timer--
63
else
64
Object.Value1 = Object.YPos
65
Rand(Object.State, 3)
66
Rand(Object.Timer, 90)
67
Rand(Object.XVelocity, 6)
68
Object.XVelocity++
69
Object.XVelocity <<= 14
70
Rand(Object.YVelocity, 6)
71
Object.YVelocity++
72
Object.YVelocity <<= 15
73
end if
74
75
if Object.OutOfBounds == true
76
Object.Type = TypeName[Blank Object]
77
end if
78
end sub
79
80
81
sub ObjectDraw
82
TempValue0 = Object.Frame
83
TempValue0 += Object.PropertyValue
84
DrawSprite(TempValue0)
85
end sub
86
87
88
sub ObjectStartup
89
LoadSpriteSheet("DAGarden/Objects.gif")
90
91
SpriteFrame(-12, -12, 24, 24, 354, 804) // #0 - Yellow UFO Frame 0
92
SpriteFrame(-12, -12, 24, 24, 379, 804) // #1 - Yellow UFO Frame 1
93
SpriteFrame(-12, -12, 24, 24, 404, 804) // #2 - Yellow UFO Frame 2
94
SpriteFrame(-12, -12, 24, 24, 354, 829) // #3 - Green UFO Frame 0
95
SpriteFrame(-12, -12, 24, 24, 379, 829) // #4 - Green UFO Frame 1
96
SpriteFrame(-12, -12, 24, 24, 404, 829) // #5 - Green UFO Frame 2
97
end sub
98
99
100
// ========================
101
// Editor Subs
102
// ========================
103
104
sub RSDKDraw
105
DrawSprite(0)
106
end sub
107
108
109
sub RSDKLoad
110
LoadSpriteSheet("DAGarden/Objects.gif")
111
SpriteFrame(-12, -12, 24, 24, 354, 804) // #0 - Yellow UFO Frame 0
112
113
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
114
end sub
115
116