Path: blob/main/Scripts/Credits/TextFont3.txt
1319 views
//---------------Sonic CD Text Font 3 Script------------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value1 : Object.TargetLine67// Text Info type8#alias 0 : TEXTINFO_TEXTDATA9#alias 1 : TEXTINFO_TEXTSIZE101112sub ObjectDraw1314// Starting from the third letter because the first 3 aren't actually credits text15ArrayPos0 = 31617// Get how many letters are in the line18GetTextInfo(TempValue1, MENU_1, TEXTINFO_TEXTSIZE, Object.TargetLine, 0)1920// And subtract 3 from that for the resasons stated above21TempValue1 -= 32223// And since the text should be centered, get its position offset now24TempValue2 = TempValue125TempValue2 <<= 1826FlipSign(TempValue2)27TempValue2 += Object.XPos2829// Loop through all the characters in the text line30while TempValue1 > 03132// Get what character's at the target position33GetTextInfo(TempValue0, MENU_1, TEXTINFO_TEXTDATA, Object.TargetLine, ArrayPos0)3435// If needed, jump to the expecial exception case36switch TempValue037default38Object.Frame = 03940// 65-90 are lowercase letter IDs, turn them into Sprite Frames41if TempValue0 > 6442if TempValue0 < 9143Object.Frame = TempValue044Object.Frame -= 6445end if46end if4748// 97-122 are uppercase letter IDs, turn them into Sprite Frames49if TempValue0 > 9650if TempValue0 < 12351Object.Frame = TempValue052Object.Frame -= 9653end if54end if5556if Object.Frame > 057// If it's a valid Frame, then draw the Sprite58DrawSpriteXY(Object.Frame, TempValue2, Object.YPos)59end if60break6162case 3863// & (Ampersand)64DrawSpriteXY(32, TempValue2, Object.YPos)65break6667case 3968// ' (Tick)69DrawSpriteXY(30, TempValue2, Object.YPos)70break7172case 4473// , (Comma)74DrawSpriteXY(28, TempValue2, Object.YPos)75break7677case 4678// . (Period)79DrawSpriteXY(27, TempValue2, Object.YPos)80break8182case 4783// / (Forward Slash)84DrawSpriteXY(31, TempValue2, Object.YPos)85break8687case 5888// : (Colon)89DrawSpriteXY(29, TempValue2, Object.YPos)90break9192case 22593// á (Accent mark A)94DrawSpriteXY(33, TempValue2, Object.YPos)95break9697case 23398// é (Accent mark E)99DrawSpriteXY(34, TempValue2, Object.YPos)100break101102case 243103// ó (Accent mark O)104DrawSpriteXY(35, TempValue2, Object.YPos)105break106107case 250108// ú (Accent mark U)109DrawSpriteXY(36, TempValue2, Object.YPos)110break111112end switch113114// Next character115ArrayPos0++116TempValue1--117118// Letters are to be 8 pixels apart119TempValue2 += 0x80000120loop121122end sub123124125sub ObjectStartup126LoadSpriteSheet("Menu/CreditsText.gif")127128// Letter Sprite Frames, primarily using loops129130SpriteFrame(-3, -9, 8, 16, 37, 35)131132TempValue1 = 88133while TempValue1 < 110134TempValue0 = 1135while TempValue0 < 127136SpriteFrame(-3, -5, 8, 10, TempValue0, TempValue1)137TempValue0 += 9138loop139TempValue1 += 11140loop141142TempValue0 = 1143while TempValue0 < 37144SpriteFrame(-3, -5, 8, 10, TempValue0, TempValue1)145TempValue0 += 9146loop147148SpriteFrame(-3, -8, 8, 13, 37, 110)149SpriteFrame(-3, -8, 8, 13, 46, 110)150SpriteFrame(-3, -8, 8, 13, 55, 110)151SpriteFrame(-3, -8, 8, 13, 64, 110)152153end sub154155156// ========================157// Editor Subs158// ========================159160sub RSDKDraw161TempValue0 = 0162while TempValue0 < 4163DrawSprite(TempValue0)164TempValue0++165loop166end sub167168169sub RSDKLoad170LoadSpriteSheet("Menu/CreditsText.gif")171SpriteFrame(0, -5, 8, 10, 46, 99)172SpriteFrame(9, -5, 8, 10, 37, 88)173SpriteFrame(18, -5, 8, 10, 82, 99)174SpriteFrame(27, -5, 8, 10, 46, 99)175176SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")177end sub178179180