Path: blob/main/Scripts/Credits/TextFont1.txt
1319 views
//---------------Sonic CD Text Font 1 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// Only show letters 4th and onwards, as the first 3 letters are for identifying the text type15ArrayPos0 = 31617// Get the length of the line18GetTextInfo(TempValue1, MENU_1, TEXTINFO_TEXTSIZE, Object.TargetLine, 0)1920// Taking away 3 for the reason mentioned above...21TempValue1 -= 32223// Base Position to start drawing text at24TempValue2 = TempValue125TempValue2 <<= 1826FlipSign(TempValue2)27TempValue2 += Object.XPos2829// Loop for drawing all the letters30while TempValue1 > 03132// Get the letter at the current text position33GetTextInfo(TempValue0, MENU_1, TEXTINFO_TEXTDATA, Object.TargetLine, ArrayPos0)3435// Jump to the according special case, if needed for certain exceptions36switch TempValue037default38Object.Frame = 03940// Translate lowercase letters to Sprite Frames41if TempValue0 > 6442if TempValue0 < 9143Object.Frame = TempValue044Object.Frame -= 6445end if46end if4748// Translate uppercase letters to Sprite Frames49if TempValue0 > 9650if TempValue0 < 12351Object.Frame = TempValue052Object.Frame -= 9653end if54end if5556if Object.Frame > 057// If the letter is valid, draw it58DrawSpriteXY(Object.Frame, TempValue2, Object.YPos)59end if60break6162case 3863// Ampersand (&)64DrawSpriteXY(32, TempValue2, Object.YPos)65break6667case 3968// Tick mark (')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 9493// Caret (^)94DrawSpriteXY(36, TempValue2, Object.YPos)95break9697case 22598// Accent mark A (á)99DrawSpriteXY(33, TempValue2, Object.YPos)100break101102case 233103// Accent mark E (é)104DrawSpriteXY(34, TempValue2, Object.YPos)105break106107case 243108// Accent mark O (ó)109DrawSpriteXY(35, TempValue2, Object.YPos)110break111112end switch113114// Move the cursor to the next letter115ArrayPos0++116117// Decrease the remaining letter count118TempValue1--119120// Each letter is 8 pixels apart121TempValue2 += 0x80000122loop123124end sub125126127sub ObjectStartup128LoadSpriteSheet("Menu/CreditsText.gif")129130// Setup all the letter Sprite Frames, primarily using loops to automate the process131SpriteFrame(-3, -9, 8, 16, 37, 35)132133TempValue1 = 1134while TempValue1 < 35135TempValue0 = 1136while TempValue0 < 127137SpriteFrame(-3, -6, 8, 16, TempValue0, TempValue1)138TempValue0 += 9139loop140TempValue1 += 17141loop142143TempValue0 = 1144while TempValue0 < 37145SpriteFrame(-3, -6, 8, 16, TempValue0, TempValue1)146TempValue0 += 9147loop148149SpriteFrame(-3, -9, 8, 16, 37, 35)150SpriteFrame(-3, -9, 8, 16, 46, 35)151SpriteFrame(-3, -9, 8, 16, 55, 35)152SpriteFrame(-3, -6, 8, 16, 73, 35)153154end sub155156157// ========================158// Editor Subs159// ========================160161sub RSDKDraw162TempValue0 = 0163while TempValue0 < 4164DrawSprite(TempValue0)165TempValue0++166loop167end sub168169170sub RSDKLoad171LoadSpriteSheet("Menu/CreditsText.gif")172SpriteFrame(0, -6, 8, 16, 46, 18)173SpriteFrame(9, -6, 8, 16, 37, 1)174SpriteFrame(18, -6, 8, 16, 82, 18)175SpriteFrame(27, -6, 8, 16, 46, 18)176177SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")178end sub179180181