0% found this document useful (0 votes)
18 views5 pages

Title Card

The document describes the Title Card Object for the RSDK Project: Sonic 1/Sonic 2, authored by Christian Whitehead and Simon Thomley. It outlines the various states and events that control the title card's behavior, including animations, music playback, and player control management. Additionally, it includes sprite loading and drawing functions necessary for rendering the title card on the screen.

Uploaded by

josepharturo2009
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views5 pages

Title Card

The document describes the Title Card Object for the RSDK Project: Sonic 1/Sonic 2, authored by Christian Whitehead and Simon Thomley. It outlines the various states and events that control the title card's behavior, including animations, music playback, and player control management. Additionally, it includes sprite loading and drawing functions necessary for rendering the title card on the screen.

Uploaded by

josepharturo2009
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

// ----------------------------------

// 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

You might also like