Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/R8/R82BSetup.txt
1319 views
1
//---------------Sonic CD R8 2 B 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
9
// Priority
10
#alias 1 : PRIORITY_ACTIVE
11
12
// Tile Info
13
#alias 1 : TILEINFO_DIRECTION
14
#alias 8 : TILEINFO_ANGLEB
15
16
17
sub ObjectMain
18
Object.Rotation++
19
Object.Rotation %= 144
20
21
Object.PaletteTimer++
22
if Object.PaletteTimer == 5
23
Object.PaletteTimer = 0
24
Object.CurrentPalette++
25
Object.CurrentPalette %= 6
26
TempValue0 = Object.CurrentPalette
27
TempValue0 += 639
28
Copy16x16Tile(499, TempValue0)
29
end if
30
SetActivePalette(Object.CurrentPalette, 0, Screen.YSize)
31
end sub
32
33
34
sub ObjectPlayerInteraction
35
TempValue1 = Player.XPos
36
TempValue1 >>= 16
37
TempValue1 += Player.CollisionRight
38
39
TempValue2 = Player.YPos
40
TempValue2 >>= 16
41
TempValue2 += Player.CollisionBottom
42
TempValue2 += 2
43
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_ANGLEB)
44
if TempValue0 == 1
45
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_DIRECTION)
46
if TempValue0 == 0
47
Player.XPos += 0x10000
48
else
49
Player.XPos -= 0x10000
50
end if
51
else
52
TempValue1 = Player.XPos
53
TempValue1 >>= 16
54
TempValue1 += Player.CollisionLeft
55
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_ANGLEB)
56
if TempValue0 == 1
57
Get16x16TileInfo(TempValue0, TempValue1, TempValue2, TILEINFO_DIRECTION)
58
if TempValue0 == 0
59
Player.XPos += 0x10000
60
else
61
Player.XPos -= 0x10000
62
end if
63
end if
64
end if
65
end sub
66
67
68
sub ObjectStartup
69
Object[19].Type = TypeName[R8 Setup]
70
Object[19].Priority = PRIORITY_ACTIVE
71
72
CopyPalette(0, 1)
73
CopyPalette(0, 2)
74
CopyPalette(0, 3)
75
CopyPalette(0, 4)
76
CopyPalette(0, 5)
77
78
TempValue0 = 0
79
TempValue1 = 0
80
TempValue2 = 32
81
while TempValue0 < 6
82
LoadPalette("R82B_PalCycle.act", TempValue0, 160, TempValue1, TempValue2)
83
TempValue0++
84
TempValue1 += 32
85
TempValue2 += 32
86
loop
87
end sub
88
89
90
// ========================
91
// Editor Subs
92
// ========================
93
94
sub RSDKDraw
95
DrawSprite(0)
96
end sub
97
98
99
sub RSDKLoad
100
LoadSpriteSheet("Global/Display.gif")
101
SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon
102
103
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
104
end sub
105
106