Path: blob/master/Sonic 2/Scripts/Title/STLogo.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: ST Logo Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.timer12private alias object.value1 : object.sonicFrameTablePos13private alias object.value2 : object.tailsFrameTablePos14private alias object.value3 : object.levelSelectCheatPos15private alias object.value4 : object.regionSwitchCheatPos1617// States18private alias 0 : STLOGO_SETUP19private alias 1 : STLOGO_FADEIN20private alias 2 : STLOGO_SHOWEMBLEM21private alias 3 : STLOGO_ENTERSONIC22private alias 4 : STLOGO_ENTERSONICHAND23private alias 5 : STLOGO_SHOWSONICALONE24private alias 6 : STLOGO_ENTERTAILS25private alias 7 : STLOGO_ENTERTAILSHAND26private alias 8 : STLOGO_SHOWSONICTAILS27private alias 9 : STLOGO_SHOWBG28private alias 10 : STLOGO_FINISHEDANIMATING2930// ShootingStar Aliases31private alias object.value0 : shootingStar.delay3233// Game Modes34private alias 0 : MODE_NOSAVE3536// Player List Pos Aliases37private alias 0 : PLAYER_SONIC_A38private alias 3 : PLAYER_SONIC_TAILS_A39private alias 5 : PLAYER_AMY_A40private alias 6 : PLAYER_AMY_TAILS_A414243// ========================44// Function Declarations45// ========================4647reserve function STLogo_CheckButtonCheatCodes484950// ========================51// Tables52// ========================5354private table STLogo_sonicFrameDurationTable554, 4, 4, 4, 4, 4, 4, 7, 2, 2, 3, 4, 4, 4, 456end table5758private table STLogo_tailsFrameDurationTable594, 4, 4, 4, 4, 4, 7, 2, 2, 2, 3, 4, 4, 460end table616263// ========================64// Function Definitions65// ========================6667public function STLogo_CheckButtonCheatCodes68// This function is used by the [K Logo] Object too6970temp0 = 071if keyPress[0].up == true72temp0 = 173end if7475if keyPress[0].down == true76temp0 = 277end if7879if keyPress[0].left == true80temp0 = 381end if8283if keyPress[0].right == true84temp0 = 485end if8687if keyPress[0].buttonA == true88temp0 = 589end if9091if keyPress[0].buttonB == true92temp0 = 693end if9495if keyPress[0].buttonC == true96temp0 = 797end if9899// Level Select Cheat100// 1, 1, 1, 2, 2, 2, 3, 4, 3, 4101// up, up, up, down, down, down, left, right, left, right102switch object.levelSelectCheatPos103case 0104if temp0 == 1105object.levelSelectCheatPos++106else107if temp0 != 0108object.levelSelectCheatPos = 0109end if110end if111break112113case 1114if temp0 == 1115object.levelSelectCheatPos++116else117if temp0 != 0118object.levelSelectCheatPos = 0119end if120end if121break122123case 2124if temp0 == 1125object.levelSelectCheatPos++126else127if temp0 != 0128object.levelSelectCheatPos = 0129end if130end if131break132133case 3134if temp0 == 2135object.levelSelectCheatPos++136else137if temp0 != 0138object.levelSelectCheatPos = 0139end if140end if141break142143case 4144if temp0 == 2145object.levelSelectCheatPos++146else147if temp0 != 0148object.levelSelectCheatPos = 0149end if150end if151break152153case 5154if temp0 == 2155object.levelSelectCheatPos++156else157if temp0 != 0158object.levelSelectCheatPos = 0159end if160end if161break162163case 6164if temp0 == 3165object.levelSelectCheatPos++166else167if temp0 != 0168object.levelSelectCheatPos = 0169end if170end if171break172173case 7174if temp0 == 4175object.levelSelectCheatPos++176else177if temp0 != 0178object.levelSelectCheatPos = 0179end if180end if181break182183case 8184if temp0 == 3185object.levelSelectCheatPos++186else187if temp0 != 0188object.levelSelectCheatPos = 0189end if190end if191break192193case 9194if temp0 == 4195object.levelSelectCheatPos++196object.levelSelectCheatPos = 0197options.stageSelectFlag = true198PlaySfx(SfxName[Ring L], false)199else200if temp0 != 0201object.levelSelectCheatPos = 0202end if203end if204break205206end switch207208209// Region Switch Cheat210// 1, 2, 2, 2, 2, 1211// up, down, down, down, down, up212switch object.regionSwitchCheatPos213case 0214if temp0 == 1215object.regionSwitchCheatPos++216else217if temp0 != 0218object.regionSwitchCheatPos = 0219end if220end if221break222223case 1224case 2225case 3226case 4227if temp0 == 2228object.regionSwitchCheatPos++229else230if temp0 != 0231object.regionSwitchCheatPos = 0232end if233end if234break235236case 5237if temp0 == 1238object.regionSwitchCheatPos++239object.regionSwitchCheatPos = 0240options.region ^= 1241PlaySfx(SfxName[Ring L], false)242else243if temp0 != 0244object.regionSwitchCheatPos = 0245end if246end if247break248end switch249end function250251252// ========================253// Events254// ========================255256event ObjectUpdate257#platform: USE_STANDALONE258if stage.player2Enabled == true259stage.playerListPos = PLAYER_SONIC_TAILS_A260end if261#endplatform262263#platform: USE_ORIGINS264if object.state <= STLOGO_FADEIN265switch stage.playerListPos266case PLAYER_AMY_A267stage.playerListPos = PLAYER_SONIC_A268break269270case PLAYER_AMY_TAILS_A271stage.playerListPos = PLAYER_SONIC_TAILS_A272break273end switch274end if275#endplatform276277if options.gameMode == MODE_NOSAVE278if object.state > STLOGO_SHOWEMBLEM279CallFunction(STLogo_CheckButtonCheatCodes)280end if281end if282283switch object.state284case STLOGO_SETUP285if object.timer == 30286object[+1].type = TypeName[Twinkle Stars]287object[+1].priority = PRIORITY_ACTIVE288end if289290if object.timer < 60291object.timer++292else293object.timer = 0294object.alpha = 0x100295object.state++296end if297break298299case STLOGO_FADEIN300if object.alpha > 0301object.alpha -= 8302else303object.state++304end if305break306307case STLOGO_SHOWEMBLEM308if object.timer < 32309object.timer++310else311object.timer = 0312PlayMusic(0)313object.state++314end if315break316317case STLOGO_ENTERSONIC318if object.animationTimer < 2319object.frame = object.sonicFrameTablePos320object.frame += 2321GetTableValue(object.animationTimer, object.sonicFrameTablePos, STLogo_sonicFrameDurationTable)322323object.sonicFrameTablePos++324if object.sonicFrameTablePos == 12325object.frame++326object.state++327end if328else329object.animationTimer--330end if331break332333case STLOGO_ENTERSONICHAND334if object.animationTimer < 2335object.frame = object.sonicFrameTablePos336object.frame += 3337GetTableValue(object.animationTimer, object.sonicFrameTablePos, STLogo_sonicFrameDurationTable)338339object.sonicFrameTablePos++340if object.sonicFrameTablePos == 16341object.animationTimer = 0342object.state++343end if344else345object.animationTimer--346end if347break348349case STLOGO_SHOWSONICALONE350if object.timer < 4351object.timer++352else353object.timer = 0354object.state++355end if356break357358case STLOGO_ENTERTAILS359if object.animationTimer < 2360object.frame = object.tailsFrameTablePos361object.frame += 18362GetTableValue(object.animationTimer, object.tailsFrameTablePos, STLogo_tailsFrameDurationTable)363364object.tailsFrameTablePos++365if object.tailsFrameTablePos == 11366object.frame++367object.state++368end if369else370object.animationTimer--371end if372break373374case STLOGO_ENTERTAILSHAND375if object.animationTimer < 2376object.frame = object.tailsFrameTablePos377object.frame += 19378GetTableValue(object.animationTimer, object.tailsFrameTablePos, STLogo_tailsFrameDurationTable)379380object.tailsFrameTablePos++381if object.tailsFrameTablePos == 14382object.animationTimer = 0383object.state++384end if385else386object.animationTimer--387end if388break389390case STLOGO_SHOWSONICTAILS391if object.timer < 30392object.timer++393else394object.timer = 0395object.alpha = 256396stage.activeLayer[0] = 2 // Show Title BG397object.state++398end if399break400401case STLOGO_SHOWBG402if object.alpha > 0403object.alpha -= 12404else405object.state++406407object[+1].type = TypeName[Start Message]408object[+1].priority = PRIORITY_ACTIVE409object[+1].xpos = screen.xcenter410object[+1].ypos = 208411412CreateTempObject(TypeName[Shooting Star], 0, object.xpos, object.ypos)413object[tempObjectPos].drawOrder = 2414object[tempObjectPos].xpos += 0x1600000415object[tempObjectPos].ypos -= 0x1000000416shootingStar[tempObjectPos].delay = 90417end if418break419420case STLOGO_FINISHEDANIMATING421object.timer++422if object.timer > 7423tileLayer[2].deformationOffset++424object.timer = 0425end if426break427428end switch429430temp0 = screen.xcenter431FlipSign(temp0)432temp0 += 256433screen.xoffset = temp0434end event435436437event ObjectDraw438switch object.state439case STLOGO_SETUP440ClearScreen(1)441break442443case STLOGO_FADEIN444ClearScreen(1)445446// Draw Emblem (Top)447DrawSprite(0)448449// Draw Emblem (Bottom)450DrawSprite(1)451452DrawRect(0, 0, screen.xsize, screen.ysize, 0x00, 0x00, 0x00, object.alpha)453break454455case STLOGO_SHOWEMBLEM456ClearScreen(1)457458// Draw Emblem (Top)459DrawSprite(0)460461// Draw Emblem (Bottom)462DrawSprite(1)463break464465case STLOGO_ENTERSONIC466ClearScreen(1)467468// Draw Emblem (Top)469DrawSprite(0)470471// Draw Sonic472DrawSprite(object.frame)473474// Draw Emblem (Bottom)475DrawSprite(1)476break477478case STLOGO_ENTERSONICHAND479ClearScreen(1)480481// Draw Emblem (Top)482DrawSprite(0)483484// Draw Sonic485DrawSprite(13) // Sonic486DrawSprite(object.frame) // Hand487488// Draw Emblem (Bottom)489DrawSprite(1)490break491492case STLOGO_SHOWSONICALONE493ClearScreen(1)494495// Draw Emblem (Top)496DrawSprite(0)497498// Draw Sonic499DrawSprite(13) // Sonic500DrawSprite(17) // Hand501502// Draw Emblem (Bottom)503DrawSprite(1)504break505506case STLOGO_ENTERTAILS507ClearScreen(1)508509// Draw Emblem (Top)510DrawSprite(0)511512// Draw Tails513DrawSprite(object.frame) // Tails514515// Draw Sonic516DrawSprite(13) // Sonic517DrawSprite(17) // Hand518519// Draw Emblem (Bottom)520DrawSprite(1)521break522523case STLOGO_ENTERTAILSHAND524ClearScreen(1)525526// Draw Emblem (Top)527DrawSprite(0)528529// Draw Tails530DrawSprite(28) // Tails531DrawSprite(object.frame) // Hand532533// Draw Sonic534DrawSprite(13) // Sonic535DrawSprite(17) // Hand536537// Draw Emblem (Bottom)538DrawSprite(1)539break540541case STLOGO_SHOWSONICTAILS542ClearScreen(1)543544// Draw Emblem (Top)545DrawSprite(0)546547// Draw Tails548DrawSprite(28) // Tails549DrawSprite(31) // Hand550551// Draw Sonic552DrawSprite(13) // Sonic553DrawSprite(17) // Hand554555// Draw Emblem (Bottom)556DrawSprite(1)557break558559case STLOGO_SHOWBG560DrawRect(0, 0, screen.xsize, screen.ysize, 0xE0, 0xE0, 0xE0, object.alpha)561562// Draw Emblem (Top)563DrawSprite(0)564565// Draw Tails566DrawSprite(28) // Tails567DrawSprite(31) // Hand568569// Draw Sonic570DrawSprite(13) // Sonic571DrawSprite(17) // Hand572573// Draw Emblem (Bottom)574DrawSprite(1)575576// Draw Copyright577temp0 = screen.xsize578temp0 -= 96579DrawSpriteScreenXY(32, temp0, 216)580break581582case STLOGO_FINISHEDANIMATING583// Draw Emblem (Top)584DrawSprite(0)585586// Draw Tails587DrawSprite(28) // Tails588DrawSprite(31) // Hand589590// Draw Sonic591DrawSprite(13) // Sonic592DrawSprite(17) // Hand593594// Draw Emblem (Bottom)595DrawSprite(1)596597// Draw Copyright598temp0 = screen.xsize599temp0 -= 96600DrawSpriteScreenXY(32, temp0, 216)601break602603end switch604end event605606607event ObjectStartup608LoadSpriteSheet("Title/Title.gif")609SetMusicTrack("Titlescreen.ogg", 0, false)610611arrayPos0 = 0x100612while arrayPos0 < 0x240613arrayPos1 = arrayPos0614arrayPos1 -= 0x100615Rand(stage.deformationData2[arrayPos1], 4)616temp0 = arrayPos0617temp0 &= 1618if temp0 == 1619FlipSign(stage.deformationData2[arrayPos1])620end if621stage.deformationData2[arrayPos0] = stage.deformationData2[arrayPos1]622arrayPos0++623loop624625SpriteFrame(-128, -78, 256, 82, 255, 67) // Emblem (Top) - #0626SpriteFrame(-128, -8, 256, 87, 255, 150) // Emblem (Bottom) - #1627SpriteFrame(-21, -19, 72, 40, 1, 66) // Sonic - Frame 1 - #2628SpriteFrame(-29, -35, 72, 67, 1, 66) // Sonic - Frame 2 - #3629SpriteFrame(-37, -51, 72, 67, 1, 66) // Sonic - Frame 3 - #4630SpriteFrame(-39, -61, 72, 67, 1, 66) // Sonic - Frame 4 - #5631SpriteFrame(-35, -69, 72, 67, 1, 66) // Sonic - Frame 5 - #6632SpriteFrame(-29, -73, 72, 67, 1, 66) // Sonic - Frame 6 - #7633SpriteFrame(-25, -74, 72, 67, 1, 66) // Sonic - Frame 7 - #8634SpriteFrame(-21, -75, 72, 67, 1, 66) // Sonic - Frame 8 - #9635SpriteFrame(-18, -76, 74, 84, 74, 66) // Sonic - Frame 9 - #10636SpriteFrame(-3, -76, 74, 71, 149, 66) // Sonic - Frame 10 - #11637SpriteFrame(0, -79, 71, 74, 1, 134) // Sonic - Frame 11 - #12638SpriteFrame(0, -79, 71, 74, 74, 151) // Sonic - Frame 12 - #13639SpriteFrame(45, -49, 30, 43, 149, 138) // Sonic Hand - Frame 1 - #14640SpriteFrame(43, -47, 30, 43, 149, 138) // Sonic Hand - Frame 2 - #15641SpriteFrame(40, -46, 30, 43, 149, 138) // Sonic Hand - Frame 3 - #16642SpriteFrame(41, -47, 30, 43, 149, 138) // Sonic Hand - Frame 4 - #17643SpriteFrame(-49, -24, 56, 64, 1, 1) // Tails - Frame 1 - #18644SpriteFrame(-53, -40, 56, 64, 1, 1) // Tails - Frame 2 - #19645SpriteFrame(-58, -52, 56, 64, 1, 1) // Tails - Frame 3 - #20646SpriteFrame(-60, -58, 56, 64, 1, 1) // Tails - Frame 4 - #21647SpriteFrame(-62, -62, 56, 64, 1, 1) // Tails - Frame 5 - #22648SpriteFrame(-63, -63, 56, 64, 1, 1) // Tails - Frame 6 - #23649SpriteFrame(-64, -64, 56, 64, 1, 1) // Tails - Frame 7 - #24650SpriteFrame(-86, -59, 89, 57, 58, 1) // Tails - Frame 8 - #25651SpriteFrame(-80, -64, 88, 61, 149, 1) // Tails - Frame 9 - #26652SpriteFrame(-82, -63, 89, 59, 238, 1) // Tails - Frame 10 - #27653SpriteFrame(-83, -68, 87, 65, 328, 1) // Tails - Frame 11 - #28654SpriteFrame(-9, -22, 16, 19, 417, 1) // Tails Hand - Frame 1 - #29655SpriteFrame(-12, -27, 16, 19, 417, 1) // Tails Hand - Frame 2 - #30656SpriteFrame(-11, -26, 16, 19, 417, 1) // Tails Hand - Frame 3 - #31657SpriteFrame(0, 0, 88, 16, 1, 421) // Copyright - #32658end event659660661// ========================662// Editor Events663// ========================664665event RSDKDraw666DrawSprite(0)667DrawSprite(1)668end event669670671event RSDKLoad672LoadSpriteSheet("Title/Title.gif")673SpriteFrame(-128, -78, 256, 82, 255, 67) // Emblem (Top) - #0674SpriteFrame(-128, -8, 256, 87, 255, 150) // Emblem (Bottom) - #1675676SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")677end event678679680