Path: blob/main/Scripts/TAttack/RoundIcon.txt
1319 views
//-----------------Sonic CD Round Icon Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object.Value1 : Object.Minutes7#alias Object.Value2 : Object.Seconds8#alias Object.Value3 : Object.Milliseconds9#alias Object.Value4 : Object.LockedZone10#alias Object.PropertyValue : Object.Portrait1112// Menu Control Aliases13#alias Object[0].Value2 : MenuControl.SelectedButton // Only used for Mobile14#alias Object[0].Value3 : MenuControl.SavedRound // This is used AFTER you play in time attack15#alias Object[0].State : MenuControl.State // This is used AFTER you play in time attack1617// States18#alias 0 : ROUNDICON_BLANK19#alias 1 : ROUNDICON_SELECTED_ZONE2021// Menu Control States22#alias 2 : MENUCONTROL_CONTROLS23#alias 3 : MENUCONTROL_BLANK24#alias 4 : MENUCONTROL_RETURN_TO_MENU25#alias 5 : MENUCONTROL_ENTER_SM2627// Global SFX28#alias 27 : SFX_G_SELECT2930// Property Values31#alias 0 : PALMTREE_PANIC_ICON32#alias 1 : COLLISION_CHAOS_ICON33#alias 2 : TIDAL_TEMPEST_ICON34#alias 3 : QUARTZ_QUADRANT_ICON35#alias 4 : WACKY_WORKBENCH_ICON36#alias 5 : STARDUST_SPEEDWAY_ICON37#alias 6 : METALLIC_MADNESS_ICON38#alias 7 : EXIT_ICON3940// Face Buffer flags41#alias 1 : FACE_FLAG_TEXTURED_2D424344sub ObjectMain45#platform: Mobile46if Options.PhysicalControls == false47if MenuControl.State == MENUCONTROL_CONTROLS48if Object.LockedZone == false49TempValue0 = Object.iXPos50TempValue0 -= 3451TempValue1 = Object.iXPos52TempValue1 += 3453TempValue2 = Object.iYPos54TempValue2 -= 4555TempValue3 = Object.iYPos56TempValue3 += 4557CheckTouchRect(TempValue0, TempValue2, TempValue1, TempValue3)58if CheckResult > -159MenuControl.SelectedButton = Object.Portrait60else61CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)62if CheckResult < 063if MenuControl.SelectedButton == Object.Portrait64PlaySfx(SFX_G_SELECT, false)65MenuControl.State = MENUCONTROL_BLANK66Object.State = ROUNDICON_SELECTED_ZONE67if Object.Portrait == EXIT_ICON // Exit button pressed?68StopMusic()69end if70end if71else72if MenuControl.SelectedButton == Object.Portrait73MenuControl.SelectedButton = -174end if75end if76end if77end if78end if79end if80#endplatform81end sub828384sub ObjectDraw85DrawSprite(10)86// Icon Movement87Object.Rotation++88Object.Rotation &= 51189Cos(TempValue0, Object.Rotation)90TempValue0 >>= 491Sin(TempValue1, Object.Rotation)92TempValue1 >>= 49394switch Object.Portrait95case PALMTREE_PANIC_ICON96TempValue0 += 6497TempValue1 += 7698break99100case COLLISION_CHAOS_ICON101TempValue0 += 320102TempValue1 += 76103break104105case TIDAL_TEMPEST_ICON106TempValue0 += 448107TempValue1 += 76108break109110case QUARTZ_QUADRANT_ICON111TempValue0 += 64112TempValue1 += 220113break114115case WACKY_WORKBENCH_ICON116TempValue0 += 192117TempValue1 += 220118break119120case STARDUST_SPEEDWAY_ICON121TempValue0 += 320122TempValue1 += 220123break124125case METALLIC_MADNESS_ICON126TempValue0 += 448127TempValue1 += 220128break129130end switch131132if Object.Portrait < EXIT_ICON // Draw for all main stages133VertexBuffer[0].x = Object.XPos134VertexBuffer[0].x >>= 16135VertexBuffer[0].x -= 32136VertexBuffer[0].u = TempValue0137VertexBuffer[0].u -= 32138VertexBuffer[0].y = Object.YPos139VertexBuffer[0].y >>= 16140VertexBuffer[0].y -= 43141VertexBuffer[0].v = TempValue1142VertexBuffer[0].v -= 43143VertexBuffer[1].x = Object.XPos144VertexBuffer[1].x >>= 16145VertexBuffer[1].x += 31146VertexBuffer[1].u = TempValue0147VertexBuffer[1].u += 31148VertexBuffer[1].y = VertexBuffer[0].y149VertexBuffer[1].v = VertexBuffer[0].v150VertexBuffer[2].x = VertexBuffer[0].x151VertexBuffer[2].u = VertexBuffer[0].u152VertexBuffer[2].y = Object.YPos153VertexBuffer[2].y >>= 16154VertexBuffer[2].y += 24155VertexBuffer[2].v = TempValue1156VertexBuffer[2].v += 24157VertexBuffer[3].x = VertexBuffer[1].x158VertexBuffer[3].u = VertexBuffer[1].u159VertexBuffer[3].y = VertexBuffer[2].y160VertexBuffer[3].v = VertexBuffer[2].v161Draw3DScene()162DrawSprite(19)163164TempValue0 = Object.XPos165TempValue0 >>= 16166TempValue0 -= 24167168TempValue1 = Object.YPos169TempValue1 >>= 16170TempValue1 += 34171// Zone specific time172DrawNumbers(0, TempValue0, TempValue1, Object.Minutes, 2, 6, 1)173TempValue0 += 16174DrawNumbers(0, TempValue0, TempValue1, Object.Seconds, 2, 6, 1)175TempValue0 += 19176DrawNumbers(0, TempValue0, TempValue1, Object.Milliseconds, 2, 6, 1)177else // Draw the Exit178DrawSprite(20)179TempValue0 = Object.XPos180TempValue0 >>= 16181TempValue0 -= 18182TempValue1 = Object.YPos183TempValue1 >>= 16184TempValue1 += 34185// Total Time186DrawNumbers(0, TempValue0, TempValue1, Object.Minutes, 3, 6, 1)187TempValue0 += 16188DrawNumbers(0, TempValue0, TempValue1, Object.Seconds, 2, 6, 1)189TempValue0 += 19190DrawNumbers(0, TempValue0, TempValue1, Object.Milliseconds, 2, 6, 1)191DrawSprite(22)192end if193194DrawSprite(Object.Frame)195if Object.State == ROUNDICON_SELECTED_ZONE196TempValue0 = Object.Timer197TempValue0 &= 3198TempValue0 >>= 1199if TempValue0 == 0200if MenuControl.SavedRound == Object.Portrait201DrawSprite(21)202end if203end if204205Object.Timer++206if Object.Timer == 30207Object.Timer = 0208Object.State = ROUNDICON_BLANK209if Object.Portrait == EXIT_ICON210MenuControl.State = MENUCONTROL_RETURN_TO_MENU211else212MenuControl.State = MENUCONTROL_ENTER_SM213MenuControl.SelectedButton = -1214end if215end if216else217if MenuControl.State == MENUCONTROL_CONTROLS218if MenuControl.SavedRound == Object.Portrait219DrawSprite(21)220end if221end if222end if223224if Object.LockedZone == true225DrawSprite(23)226end if227end sub228229230sub ObjectStartup231LoadSpriteSheet("TAttack/TimeAttack.gif")232233SpriteFrame(0, 0, 6, 8, 330, 577) // #0 - 0234SpriteFrame(0, 0, 6, 8, 337, 577) // #1 - 1235SpriteFrame(0, 0, 6, 8, 344, 577) // #2 - 2236SpriteFrame(0, 0, 6, 8, 351, 577) // #3 - 3237SpriteFrame(0, 0, 6, 8, 330, 586) // #4 - 4238SpriteFrame(0, 0, 6, 8, 337, 586) // #5 - 5239SpriteFrame(0, 0, 6, 8, 344, 586) // #6 - 6240SpriteFrame(0, 0, 6, 8, 351, 586) // #7 - 7241SpriteFrame(0, 0, 6, 8, 330, 595) // #8 - 8242SpriteFrame(0, 0, 6, 8, 337, 595) // #9 - 9243SpriteFrame(-34, -45, 68, 90, 1, 609) // #10 - Border244SpriteFrame(-32, 15, 64, 16, 70, 577) // #11 - Palmtree Panic245SpriteFrame(-32, 15, 64, 16, 135, 577) // #12 - Collision Chaos246SpriteFrame(-32, 15, 64, 16, 200, 577) // #13 - Tidal Tempest247SpriteFrame(-32, 15, 64, 16, 265, 577) // #14 - Quartz Quadrant248SpriteFrame(-32, 15, 64, 16, 70, 593) // #15 - Wacky Workbench249SpriteFrame(-32, 15, 64, 16, 135, 593) // #16 - Stardust Speedway250SpriteFrame(-32, 15, 64, 16, 200, 593) // #17 - Metallic Madness251SpriteFrame(-32, 15, 64, 16, 265, 593) // #18 - Total Time252SpriteFrame(-32, 31, 64, 13, 70, 638) // #19 - ' "253SpriteFrame(-32, 31, 64, 13, 70, 652) // #20 - ' "254SpriteFrame(-35, -46, 70, 92, 441, 860) // #21 - Selected Border255SpriteFrame(-29, -22, 56, 21, 223, 679) // #22 - Exit256SpriteFrame(20, 16, 8, 13, 330, 604) // #23 - Lock257258ArrayPos0 = 32259while ArrayPos0 < 1056260if Object[ArrayPos0].Type == TypeName[Round Icon]261Object[ArrayPos0].Frame = Object[ArrayPos0].Portrait262Object[ArrayPos0].Frame += 11263Object[ArrayPos0].Rotation = Object[ArrayPos0].Portrait264Object[ArrayPos0].Rotation <<= 8265if Object[ArrayPos0].Portrait > 3266Object[ArrayPos0].Rotation += 256267end if268end if269ArrayPos0++270loop2712723DScene.NoVertices = 42733DScene.NoFaces = 1274FaceBuffer[0].a = 0275FaceBuffer[0].b = 1276FaceBuffer[0].c = 2277FaceBuffer[0].d = 3278FaceBuffer[0].Flag = FACE_FLAG_TEXTURED_2D279end sub280281282// ========================283// Editor Subs284// ========================285286sub RSDKEdit287if Editor.ReturnVariable == true288switch Editor.VariableID289case EDIT_VAR_PROPVAL // Property Value290CheckResult = Object.Portrait291CheckResult &= 7292break293case 0 // roundID294CheckResult = Object.Portrait295CheckResult &= 7296break297end switch298else299switch Editor.VariableID300case EDIT_VAR_PROPVAL // Property Value301Object.Portrait = Editor.VariableValue302Object.Portrait &= 7303break304case 0 // roundID305Object.Portrait = Editor.VariableValue306Object.Portrait &= 7307break308end switch309end if310end sub311312313sub RSDKDraw314Object.Frame = Object.Portrait315Object.Frame += 11316317DrawSprite(10)318319if Object.Portrait < 7 // Draw for all main stages320DrawSprite(19)321else // Draw the Exit322DrawSprite(20)323DrawSprite(22)324end if325326DrawSprite(Object.Frame)327end sub328329330sub RSDKLoad331LoadSpriteSheet("TAttack/TimeAttack.gif")332SpriteFrame(0, 0, 6, 8, 330, 577) // #0 - 0333SpriteFrame(0, 0, 6, 8, 337, 577) // #1 - 1334SpriteFrame(0, 0, 6, 8, 344, 577) // #2 - 2335SpriteFrame(0, 0, 6, 8, 351, 577) // #3 - 3336SpriteFrame(0, 0, 6, 8, 330, 586) // #4 - 4337SpriteFrame(0, 0, 6, 8, 337, 586) // #5 - 5338SpriteFrame(0, 0, 6, 8, 344, 586) // #6 - 6339SpriteFrame(0, 0, 6, 8, 351, 586) // #7 - 7340SpriteFrame(0, 0, 6, 8, 330, 595) // #8 - 8341SpriteFrame(0, 0, 6, 8, 337, 595) // #9 - 9342SpriteFrame(-34, -45, 68, 90, 1, 609) // #10 - Border343SpriteFrame(-32, 15, 64, 16, 70, 577) // #11 - Palmtree Panic344SpriteFrame(-32, 15, 64, 16, 135, 577) // #12 - Collision Chaos345SpriteFrame(-32, 15, 64, 16, 200, 577) // #13 - Tidal Tempest346SpriteFrame(-32, 15, 64, 16, 265, 577) // #14 - Quartz Quadrant347SpriteFrame(-32, 15, 64, 16, 70, 593) // #15 - Wacky Workbench348SpriteFrame(-32, 15, 64, 16, 135, 593) // #16 - Stardust Speedway349SpriteFrame(-32, 15, 64, 16, 200, 593) // #17 - Metallic Madness350SpriteFrame(-32, 15, 64, 16, 265, 593) // #18 - Total Time351SpriteFrame(-32, 31, 64, 13, 70, 638) // #19 - ' "352SpriteFrame(-32, 31, 64, 13, 70, 652) // #20 - ' "353SpriteFrame(-35, -46, 70, 92, 441, 860) // #21 - Selected Border354SpriteFrame(-29, -22, 56, 21, 223, 679) // #22 - Exit355SpriteFrame(20, 16, 8, 13, 330, 604) // #23 - Lock356357AddEditorVariable("roundID")358SetActiveVariable("roundID")359AddEnumVariable("Palmtree Panic", 0)360AddEnumVariable("Collision Chaos", 1)361AddEnumVariable("Tidal Tempest", 2)362AddEnumVariable("Quartz Quadrant", 3)363AddEnumVariable("Wacky Workbench", 4)364AddEnumVariable("Stardust Speedway", 5)365AddEnumVariable("Metallic Madness", 6)366AddEnumVariable("Total Time", 7)367end sub368369370