// ----------------------------------
// RSDK Project: Sonic 1/Sonic 2
// Script Description: Title Card Object
// Script Author: Christian Whitehead/Simon Thomley
// Unpacked by Rubberduckycooly's script unpacker
// ----------------------------------
//-------Aliases-------//
private alias 25 : TYPE_TITLECARD
// Static Values
// Tables
event ObjectMain
options.touchControls = 0
switch object.state
case 0
object.alpha = 255
object.value1 = screen.xcenter
object.value1 += 128
object.value2 = screen.xcenter
FlipSign(object.value2)
object.value2 -= 160
object.value3 = screen.xcenter
FlipSign(object.value3)
object.value3 -= 96
object.value4 = screen.xcenter
object.value4 += 32
if credits.screen > 0
object.state = 7
object.value0 = 272
stage.state = STAGE_RUNNING
SetScreenFade(0, 0, 0, 255)
else
object.state++
end if
break
case 1
if object.value0 < 30
object.value0++
else
object.value0 = 0
PlayMusic(0)
object.state++
end if
break
case 2
if object.value1 > 0
object.value1 -= 16
if object.value1 < 0
object.value1 = 0
end if
end if
if object.value2 < 0
object.value2 += 16
if object.value2 > 0
object.value2 = 0
end if
else
if object.value3 < 0
object.value3 += 16
if object.value3 > 0
object.value3 = 0
end if
else
if object.value4 > 0
object.value4 -= 16
if object.value4 < 0
object.value4 = 0
end if
else
object.state++
end if
end if
end if
break
case 3
if object.value0 < 60
object.value0++
else
object.value0 = 0
object.alpha = 248
stage.state = STAGE_RUNNING
currentPlayer = 0
while currentPlayer < playerCount
object[currentPlayer].controlMode = -1
object[currentPlayer].up = 0
object[currentPlayer].down = 0
object[currentPlayer].left = 0
object[currentPlayer].right = 0
object[currentPlayer].jumpPress = 0
object[currentPlayer].jumpHold = 0
object[currentPlayer].value1 = 0
currentPlayer++
loop
object.state++
end if
break
case 4
if object.alpha > 0
object.alpha -= 8
else
object.state++
currentPlayer = 0
while currentPlayer < playerCount
object[currentPlayer].controlMode = 0
currentPlayer++
loop
end if
break
case 5
if object.value0 < 60
object.value0++
else
object.value0 = 0
stage.timeEnabled = 1
object.state++
end if
break
case 6
object.value1 += 32
object.value4 += 32
object.value2 -= 32
object.value3 -= 32
if object.value0 < 20
object.value0++
else
object.value0 = 0
object.type = TypeName[Blank Object]
end if
break
case 7
if object.value0 > 0
object.value0 -= 16
SetScreenFade(0, 0, 0, object.value0)
else
currentPlayer = 0
while currentPlayer < playerCount
object[currentPlayer].controlMode = 0
currentPlayer++
loop
ResetObjectEntity(object.entityPos, TypeName[Blank Object], 0, 0,
0)
end if
break
case 8
if object.value0 < 300
object.value0 += 5
if credits.screen == 0
music.volume -= 2
end if
else
stage.activeList = PRESENTATION_STAGE
if credits.screen > 0
stage.listPos = 2
else
stage.listPos = 0
StopMusic()
end if
LoadStage()
end if
SetScreenFade(0, 0, 0, object.value0)
break
end switch
end event
event ObjectDraw
if object.state < 7
SetActivePalette(0, 0, screen.ysize)
DrawRect(0, 0, screen.xsize, screen.ysize, 0, 0, 0, object.alpha)
temp0 = screen.xcenter
temp0 -= 28
temp0 += object.value1
temp0 += object.propertyValue
DrawSpriteScreenXY(26, temp0, 76)
temp0 = screen.xcenter
temp0 += 22
temp0 += object.value2
temp0 += object.propertyValue
DrawActName(0, temp0, 80, 0, 0, 16, 1)
temp0 = screen.xcenter
temp0 -= 57
temp0 += object.value3
temp0 += object.propertyValue
DrawSpriteScreenXY(27, temp0, 100)
temp0 = screen.xcenter
temp0 -= 21
temp0 += object.value4
temp0 += object.propertyValue
if stage.actNum < 5
temp1 = 27
temp1 += stage.actNum
if temp1 > 30
temp1 = 30
end if
DrawSpriteScreenXY(temp1, temp0, 102)
end if
end if
end event
event ObjectStartup
LoadSpriteSheet("Global/Display.gif")
SpriteFrame(0, 0, 15, 16, 37, 73)
SpriteFrame(0, 0, 15, 16, 53, 73)
SpriteFrame(0, 0, 15, 16, 69, 73)
SpriteFrame(0, 0, 15, 16, 85, 73)
SpriteFrame(0, 0, 14, 16, 101, 73)
SpriteFrame(0, 0, 14, 16, 116, 73)
SpriteFrame(0, 0, 16, 16, 131, 73)
SpriteFrame(0, 0, 15, 16, 148, 73)
SpriteFrame(0, 0, 6, 16, 164, 73)
SpriteFrame(0, 0, 14, 16, 171, 73)
SpriteFrame(0, 0, 16, 16, 186, 73)
SpriteFrame(0, 0, 15, 16, 203, 73)
SpriteFrame(0, 0, 16, 16, 219, 73)
SpriteFrame(0, 0, 15, 16, 236, 73)
SpriteFrame(0, 0, 16, 16, 37, 90)
SpriteFrame(0, 0, 15, 16, 54, 90)
SpriteFrame(0, 0, 16, 16, 70, 90)
SpriteFrame(0, 0, 15, 16, 87, 90)
SpriteFrame(0, 0, 14, 16, 103, 90)
SpriteFrame(0, 0, 14, 16, 118, 90)
SpriteFrame(0, 0, 15, 16, 133, 90)
SpriteFrame(0, 0, 15, 16, 149, 90)
SpriteFrame(0, 0, 22, 16, 165, 90)
SpriteFrame(0, 0, 16, 16, 188, 90)
SpriteFrame(0, 0, 16, 16, 205, 90)
SpriteFrame(0, 0, 15, 16, 222, 90)
SpriteFrame(0, 0, 56, 56, 41, 1)
if stage.actNum > 4
SpriteFrame(16, 0, 62, 16, 98, 26)
else
SpriteFrame(0, 0, 62, 16, 98, 26)
end if
SpriteFrame(0, 0, 39, 24, 98, 1)
SpriteFrame(0, 0, 43, 24, 138, 1)
SpriteFrame(0, 0, 43, 24, 182, 1)
arrayPos0 = 32
while arrayPos0 < 0x420
if object[arrayPos0].type == TypeName[Title Card]
object[arrayPos0].priority = PRIORITY_ACTIVE_PAUSED
object[arrayPos0].alpha = 255
object[arrayPos0].drawOrder = 6
stage.state = STAGE_PAUSED
end if
arrayPos0++
loop
end event
event RSDKDraw
DrawSprite(0)
end event
event RSDKLoad
LoadSpriteSheet("Global/Display.gif")
SpriteFrame(-16, -16, 32, 32, 1, 143)
end event