Path: blob/main/Scripts/Menu/MenuWindow.txt
1319 views
//-----------------Sonic CD Menu Window 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.Width7#alias Object.Value2 : Object.Height8#alias Object.Value3 : Object.XOffset9#alias Object.Value4 : Object.YOffset10#alias Object.Value5 : Object.EntityPos1112//Object[1] is a blank object just to share values13#alias Object[1].Value4 : Object.BackTouchPress1415// States16#alias 0 : MENUWINDOW_EXPAND17#alias 1 : MENUWINDOW_SCALEDOWN18#alias 2 : MENUWINDOW_BLANK19#alias 3 : MENUWINDOW_SHRINK20#alias 4 : MENUWINDOW_FIT_IN_BUTTON21#alias 5 : MENUWINDOW_SOUNDTRACK_EXPAND22#alias 6 : MENUWINDOW_SOUNDTRACK_SHRINK2324// Menu Button States25#alias 7 : MENUBUTTON_RESET2627// Languages28#alias 0 : LANG_ENGLISH29#alias 1 : LANG_FRENCH30#alias 2 : LANG_ITALIAN31#alias 3 : LANG_DEUTSCH32#alias 4 : LANG_SPANISH33#alias 5 : LANG_JAPANESE3435// Ink Effects36#alias 2 : INK_ALPHA373839sub ObjectMain40switch Object.State41case MENUWINDOW_EXPAND42if Object.Timer < 1443Object.Timer++44//Width45TempValue0 = 30046TempValue0 -= Object.Width47TempValue0 >>= 348Object.Width += TempValue049//Height50TempValue0 = 22451TempValue0 -= Object.Height52TempValue0 >>= 353Object.Height += TempValue054//XPos55TempValue0 = Screen.CenterX56TempValue0 <<= 1657TempValue0 -= Object.XPos58TempValue0 >>= 259Object.XPos += TempValue060//YPos61TempValue0 = Screen.CenterY62TempValue0 -= 663TempValue0 <<= 1664TempValue0 -= Object.YPos65TempValue0 >>= 266Object.YPos += TempValue067else68Object.Timer = 069Object.State++70end if71break7273case MENUWINDOW_SCALEDOWN74if Object.Timer < 3075Object.Timer++76// Width77TempValue0 = 25678TempValue0 -= Object.Width79TempValue0 >>= 280Object.Width += TempValue081// Height82TempValue0 = 16083TempValue0 -= Object.Height84TempValue0 >>= 285Object.Height += TempValue086// XPos87TempValue0 = Screen.CenterX88TempValue0 <<= 1689if Object.XPos > TempValue090Object.XPos -= 0x1000091end if9293if Object.XPos < TempValue094Object.XPos += 0x1000095end if96// YPos97TempValue0 = Screen.CenterY98TempValue0 -= 899TempValue0 <<= 16100if Object.YPos > TempValue0101Object.YPos -= 0x10000102end if103104if Object.YPos < TempValue0105Object.YPos += 0x10000106end if107else108Object.Timer = 0109Object.State++110end if111break112113case MENUWINDOW_BLANK114// Nothing115break116117case MENUWINDOW_SHRINK118if Object.Timer < 14119Object.Timer++120// Width121TempValue0 = 132122TempValue0 -= Object.Width123TempValue0 >>= 3124Object.Width += TempValue0125// Height126TempValue0 = 18127TempValue0 -= Object.Height128TempValue0 >>= 3129Object.Height += TempValue0130// XPos131TempValue0 = Object.XOffset132TempValue0 -= Object.XPos133TempValue0 >>= 2134Object.XPos += TempValue0135// YPos136TempValue0 = Object.YOffset137TempValue0 -= Object.YPos138TempValue0 >>= 2139Object.YPos += TempValue0140else141Object.Timer = 0142Object.State++143end if144break145146case MENUWINDOW_FIT_IN_BUTTON147if Object.Timer < 14148Object.Timer++149// Width150TempValue0 = 144151TempValue0 -= Object.Width152TempValue0 >>= 3153Object.Width += TempValue0154// Height155TempValue0 = 21156TempValue0 -= Object.Height157TempValue0 >>= 3158Object.Height += TempValue0159// XPos160if Object.XPos > Object.XOffset161Object.XPos -= 0x10000162end if163164if Object.XPos < Object.XOffset165Object.XPos += 0x10000166end if167// YPos168if Object.YPos > Object.YOffset169Object.YPos -= 0x10000170end if171172if Object.YPos < Object.YOffset173Object.YPos += 0x10000174end if175else176Object.Timer++177if Object.Timer == 16178Object.Timer = 0179Object.Type = TypeName[Blank Object]180end if181182ArrayPos0 = Object.EntityPos183Object[ArrayPos0].Type = TypeName[Menu Button]184Object[ArrayPos0].State = MENUBUTTON_RESET185end if186break187188case MENUWINDOW_SOUNDTRACK_EXPAND189if Object.Timer < 14190Object.Timer++191// Width192TempValue0 = 300193TempValue0 -= Object.Width194TempValue0 >>= 3195Object.Width += TempValue0196// Height197TempValue0 = 192198TempValue0 -= Object.Height199TempValue0 >>= 3200Object.Height += TempValue0201// XPos202TempValue0 = Screen.CenterX203TempValue0 <<= 16204TempValue0 -= Object.XPos205TempValue0 >>= 2206Object.XPos += TempValue0207// YPos208TempValue0 = Screen.CenterY209TempValue0 -= 6210TempValue0 <<= 16211TempValue0 -= Object.YPos212TempValue0 >>= 2213Object.YPos += TempValue0214else215Object.Timer = 0216Object.State++217end if218break219220case MENUWINDOW_SOUNDTRACK_SHRINK221if Object.Timer < 30222Object.Timer++223// Width224TempValue0 = 256225TempValue0 -= Object.Width226TempValue0 >>= 2227Object.Width += TempValue0228// Height229TempValue0 = 128230TempValue0 -= Object.Height231TempValue0 >>= 2232Object.Height += TempValue0233// XPos234TempValue0 = Screen.CenterX235TempValue0 <<= 16236if Object.XPos > TempValue0237Object.XPos -= 0x10000238end if239if Object.XPos < TempValue0240Object.XPos += 0x10000241end if242// YPos243TempValue0 = Screen.CenterY244TempValue0 -= 8245TempValue0 <<= 16246if Object.YPos > TempValue0247Object.YPos -= 0x10000248end if249if Object.YPos < TempValue0250Object.YPos += 0x10000251end if252else253Object.Timer = 0254Object.State = MENUWINDOW_BLANK255end if256break257258end switch259end sub260261262sub ObjectDraw263//Upper Left Border264TempValue0 = Object.Width265TempValue0 *= -0x8000266TempValue0 += Object.XPos267TempValue1 = Object.Height268TempValue1 *= -0x8000269TempValue1 += Object.YPos270DrawSpriteXY(0, TempValue0, TempValue1)271272//Upper Right Border273TempValue0 = Object.Width274TempValue0 <<= 15275TempValue0 += Object.XPos276DrawSpriteXY(1, TempValue0, TempValue1)277278//Bottom Left Border279TempValue0 = Object.Width280TempValue0 *= -0x8000281TempValue0 += Object.XPos282TempValue1 = Object.Height283TempValue1 <<= 15284TempValue1 += Object.YPos285DrawSpriteXY(2, TempValue0, TempValue1)286287//Bottom Right Border288TempValue0 = Object.Width289TempValue0 <<= 15290TempValue0 += Object.XPos291DrawSpriteXY(3, TempValue0, TempValue1)292293//Menu Filling294TempValue0 = Object.Width295TempValue0 *= -0x8000296TempValue0 += Object.XPos297TempValue0 >>= 16298TempValue1 = Object.Height299TempValue1 *= -0x8000300TempValue1 += Object.YPos301TempValue1 += 0xA0000302TempValue1 >>= 16303TempValue2 = Object.Width304TempValue2 -= 2305TempValue3 = Object.Height306TempValue3 -= 21307DrawRect(TempValue0, TempValue1, TempValue2, TempValue3, 96, 96, 128, 255)308309//Menu Shadow310TempValue0 = Object.Width311TempValue0 <<= 15312TempValue0 += Object.XPos313TempValue0 -= 0x20000314TempValue0 >>= 16315TempValue2 = 2316DrawRect(TempValue0, TempValue1, TempValue2, TempValue3, 0, 0, 0, 255)317318Object.InkEffect = INK_ALPHA319switch Object.State320case MENUWINDOW_EXPAND321case MENUWINDOW_SCALEDOWN322case MENUWINDOW_SOUNDTRACK_EXPAND323case MENUWINDOW_SOUNDTRACK_SHRINK324if Object.Alpha < 248325Object.Alpha += 5326end if327break328329case MENUWINDOW_BLANK330Object.Alpha = 255331break332333case MENUWINDOW_SHRINK334case MENUWINDOW_FIT_IN_BUTTON335if Object.Alpha > 0336Object.Alpha -= 8337end if338break339340end switch341TempValue0 = Screen.XSize342TempValue0 -= 48343if Object.BackTouchPress == true344DrawSpriteScreenFX(5, FX_INK, TempValue0, 225)345else346DrawSpriteScreenFX(4, FX_INK, TempValue0, 225)347end if348end sub349350351sub ObjectStartup352switch Engine.Language353case LANG_ENGLISH354LoadSpriteSheet("Menu/MenuGfx2_EN.gif")355break356case LANG_FRENCH357LoadSpriteSheet("Menu/MenuGfx2_FR.gif")358break359case LANG_ITALIAN360LoadSpriteSheet("Menu/MenuGfx2_IT.gif")361break362case LANG_DEUTSCH363LoadSpriteSheet("Menu/MenuGfx2_DE.gif")364break365case LANG_SPANISH366LoadSpriteSheet("Menu/MenuGfx2_ES.gif")367break368case LANG_JAPANESE369LoadSpriteSheet("Menu/MenuGfx2_JP.gif")370break371end switch372373// (#0 - #3) - Borders for the Menu Window, Upper Left - Right - Bottom Left - Bottom Right374SpriteFrame(0, 0, 140, 10, 259, 246)375SpriteFrame(-140, 0, 140, 10, 263, 246)376SpriteFrame(0, -11, 140, 11, 259, 256)377SpriteFrame(-140, -11, 140, 11, 263, 256)378379SpriteFrame(-32, -24, 64, 24, 404, 146) // #4 - Back Button380SpriteFrame(-32, -24, 64, 24, 404, 171) // #5 - Back Button Highlight381end sub382383384// ========================385// Editor Subs386// ========================387388sub RSDKDraw389DrawSprite(0)390end sub391392393sub RSDKLoad394LoadSpriteSheet("Global/Display.gif")395SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon396397SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")398end sub399400401