Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-CD-2011-Script-Decompilation
Path: blob/main/Scripts/Credits/TextFont2.txt
1319 views
1
//---------------Sonic CD Text Font 2 Script------------------//
2
//--------Scripted by Christian Whitehead 'The Taxman'--------//
3
//-------Unpacked By Rubberduckycooly's Script Unpacker-------//
4
5
// Aliases
6
#alias Object.Value1 : Object.TargetLine
7
8
// Text Info type
9
#alias 0 : TEXTINFO_TEXTDATA
10
#alias 1 : TEXTINFO_TEXTSIZE
11
12
13
sub ObjectDraw
14
15
// Only show the 4th letter and onwards, the first 3 letters are for identifying the text type
16
ArrayPos0 = 3
17
18
// Get how long the line is
19
GetTextInfo(TempValue1, MENU_1, TEXTINFO_TEXTSIZE, Object.TargetLine, 0)
20
21
// Taking 3 away from the letter account for the reason mentioned above...
22
TempValue1 -= 3
23
24
// Getting the base position to draw the text at
25
TempValue2 = TempValue1
26
TempValue2 <<= 18
27
FlipSign(TempValue2)
28
TempValue2 += Object.XPos
29
30
// Main loop for drawing all the letters in the text
31
while TempValue1 > 0
32
33
// Get the current target letter
34
GetTextInfo(TempValue0, MENU_1, TEXTINFO_TEXTDATA, Object.TargetLine, ArrayPos0)
35
36
// And if it's a special exception, jump to its corresponding Ansi ID
37
switch TempValue0
38
default
39
40
// Translating lowercase letters to Sprite Frames
41
Object.Frame = 0
42
if TempValue0 > 64
43
if TempValue0 < 91
44
Object.Frame = TempValue0
45
Object.Frame -= 64
46
end if
47
end if
48
49
// Translating uppercase letters to Sprite Frames
50
if TempValue0 > 96
51
if TempValue0 < 123
52
Object.Frame = TempValue0
53
Object.Frame -= 96
54
end if
55
end if
56
57
if Object.Frame > 0
58
// Draw the letter, if valid
59
DrawSpriteXY(Object.Frame, TempValue2, Object.YPos)
60
end if
61
break
62
63
case 38
64
// Ampersand - &
65
DrawSpriteXY(32, TempValue2, Object.YPos)
66
break
67
68
case 39
69
// Tick - '
70
DrawSpriteXY(30, TempValue2, Object.YPos)
71
break
72
73
case 44
74
// Comma - ,
75
DrawSpriteXY(28, TempValue2, Object.YPos)
76
break
77
78
case 46
79
// Period - .
80
DrawSpriteXY(27, TempValue2, Object.YPos)
81
break
82
83
case 47
84
// Forward slash - /
85
DrawSpriteXY(31, TempValue2, Object.YPos)
86
break
87
88
case 58
89
// Colon - ;
90
DrawSpriteXY(29, TempValue2, Object.YPos)
91
break
92
93
case 225
94
// Accent mark A - á
95
DrawSpriteXY(33, TempValue2, Object.YPos)
96
break
97
98
case 233
99
// Accent mark E - é
100
DrawSpriteXY(34, TempValue2, Object.YPos)
101
break
102
103
case 243
104
// Accent mark O - ó
105
DrawSpriteXY(35, TempValue2, Object.YPos)
106
break
107
108
case 250
109
// Accent mark U - ú
110
DrawSpriteXY(36, TempValue2, Object.YPos)
111
break
112
113
end switch
114
115
// Move to the next letter & decrease the letter count by onw
116
ArrayPos0++
117
TempValue1--
118
119
// Each letter has 8px spacing
120
TempValue2 += 0x80000
121
loop
122
123
end sub
124
125
126
sub ObjectStartup
127
LoadSpriteSheet("Menu/CreditsText.gif")
128
129
// Setup all the Sprite Frames
130
SpriteFrame(-3, -9, 8, 16, 37, 35)
131
132
TempValue1 = 52
133
while TempValue1 < 74
134
TempValue0 = 1
135
while TempValue0 < 127
136
SpriteFrame(-3, -5, 8, 10, TempValue0, TempValue1)
137
TempValue0 += 9
138
loop
139
TempValue1 += 11
140
loop
141
142
TempValue0 = 1
143
while TempValue0 < 37
144
SpriteFrame(-3, -5, 8, 10, TempValue0, TempValue1)
145
TempValue0 += 9
146
loop
147
148
SpriteFrame(-3, -8, 8, 13, 37, 74)
149
SpriteFrame(-3, -8, 8, 13, 46, 74)
150
SpriteFrame(-3, -8, 8, 13, 55, 74)
151
SpriteFrame(-3, -8, 8, 13, 64, 74)
152
153
end sub
154
155
156
// ========================
157
// Editor Subs
158
// ========================
159
160
sub RSDKDraw
161
TempValue0 = 0
162
while TempValue0 < 4
163
DrawSprite(TempValue0)
164
TempValue0++
165
loop
166
end sub
167
168
169
sub RSDKLoad
170
LoadSpriteSheet("Menu/CreditsText.gif")
171
SpriteFrame(0, -5, 8, 10, 46, 63)
172
SpriteFrame(9, -5, 8, 10, 37, 52)
173
SpriteFrame(18, -5, 8, 10, 82, 63)
174
SpriteFrame(27, -5, 8, 10, 46, 63)
175
176
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
177
end sub
178
179