Path: blob/master/Sonic 1/Scripts/Title/Sega.txt
1482 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Sega Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : sega.timer12// value1 isn't used13private alias object.value2 : sega.peekPos14private alias object.value3 : sega.levelSelectCheatPos15private alias object.value4 : sega.touchDown16private alias object.value5 : sega.regionSwitchCheatPos1718// States19private alias 0 : SEGA_SETUP20private alias 1 : SEGA_FADEIN21private alias 2 : SEGA_PEEKSEGA22private alias 3 : SEGA_REVEALSEGA23private alias 4 : SEGA_SEGASCREEN24private alias 5 : SEGA_FADEOUT2526// Priority27public alias 0 : PRIORITY_BOUNDS28public alias 1 : PRIORITY_ACTIVE29public alias 2 : PRIORITY_ALWAYS30public alias 3 : PRIORITY_XBOUNDS31public alias 4 : PRIORITY_XBOUNDS_DESTROY32public alias 5 : PRIORITY_INACTIVE33public alias 6 : PRIORITY_BOUNDS_SMALL34public alias 7 : PRIORITY_ACTIVE_SMALL3536// Ink Effects37public alias 0 : INK_NONE38public alias 1 : INK_BLEND39public alias 2 : INK_ALPHA40public alias 3 : INK_ADD41public alias 4 : INK_SUB4243// Flip Directions44public alias 0 : FLIP_NONE45public alias 1 : FLIP_X46public alias 2 : FLIP_Y47public alias 3 : FLIP_XY4849// Game Modes50private alias 0 : MODE_NOSAVE515253// ========================54// Function Declarations55// ========================5657reserve function Sega_CheckTouchCheatCodes5859// ========================60// Function Definitions61// ========================6263private function Sega_CheckTouchCheatCodes64CheckTouchRect(0, 0, screen.xsize, screen.ysize)65if checkResult == -166sega.touchDown = false67end if6869if sega.touchDown == false70// temp0 = touchX171// temp1 = touchX27273temp0 = screen.xcenter74switch sega.levelSelectCheatPos75case 076temp0 -= 9377temp1 = temp078temp1 += 3979break8081case 182temp0 -= 5083temp1 = temp084temp1 += 4285break8687case 288temp0 -= 689temp1 = temp090temp1 += 4291break9293case 394temp0 += 3695temp1 = temp096temp1 += 5897break9899end switch100101CheckTouchRect(temp0, 90, temp1, 150)102if checkResult > -1103sega.touchDown = true104sega.levelSelectCheatPos++105if sega.levelSelectCheatPos == 4106PlaySfx(SfxName[Ring L], false)107options.stageSelectFlag = true108end if109end if110111temp0 = screen.xcenter112switch sega.regionSwitchCheatPos113case 0114temp0 += 36115temp1 = temp0116temp1 += 58117break118119case 1120temp0 -= 6121temp1 = temp0122temp1 += 42123break124125case 2126temp0 -= 50127temp1 = temp0128temp1 += 42129break130131case 3132temp0 -= 93133temp1 = temp0134temp1 += 39135break136137end switch138139CheckTouchRect(temp0, 90, temp1, 150)140if checkResult > -1141sega.touchDown = true142sega.regionSwitchCheatPos++143if sega.regionSwitchCheatPos == 4144PlaySfx(SfxName[Ring L], false)145options.region ^= true146end if147end if148end if149end function150151152// ========================153// Events154// ========================155156event ObjectUpdate157#platform: USE_ORIGINS158if game.titleMode != 0159game.titleMode = 0160ResetObjectEntity(object.entityPos, TypeName[Logo], 0, 0, 0)161else162#endplatform163switch object.state164case SEGA_SETUP165object.alpha = 0x00166object.inkEffect = INK_ALPHA167sega.timer = 320168SetScreenFade(0, 0, 0, sega.timer)169object.state++170break171172case SEGA_FADEIN173if sega.timer > 0174sega.timer -= 8175else176sega.peekPos = screen.xcenter177sega.peekPos -= 104178object.alpha = 0x80179object.state++180end if181182SetScreenFade(0, 0, 0, sega.timer)183break184185case SEGA_PEEKSEGA186temp0 = screen.xcenter187temp0 += 112188if sega.peekPos < temp0189sega.peekPos += 4190else191object.alpha = 0192object.state++193end if194break195196case SEGA_REVEALSEGA197if object.alpha < 0xD0198object.alpha += 8199else200object.alpha = 0xFF201object.state++202end if203#platform: USE_STANDALONE204CallFunction(Sega_CheckTouchCheatCodes)205#endplatform206break207208case SEGA_SEGASCREEN209sega.timer++210if sega.timer == 160211sega.timer = 0212object.state = SEGA_FADEOUT213end if214215if sega.timer == 2216PlaySfx(SfxName[Sega Chant], false)217end if218#platform: USE_STANDALONE219if options.gameMode == MODE_NOSAVE220CallFunction(Sega_CheckTouchCheatCodes)221end if222#endplatform223break224225case SEGA_FADEOUT226if sega.timer < 256227sega.timer += 8228SetScreenFade(0, 0, 0, sega.timer)229else230ResetObjectEntity(object.entityPos, TypeName[Sonic Team], 0, object.xpos, object.ypos)231SetScreenFade(0, 0, 0, 0xFF)232end if233break234235end switch236#platform: USE_ORIGINS237end if // game.titleMode == 0 check from way up above238#endplatform239end event240241242event ObjectDraw243// Draw White BG244DrawRect(0, 0, screen.xsize, screen.ysize, 0xE0, 0xE0, 0xE0, 0xFF)245246// Draw Sega Sprite247if object.alpha > 8248DrawSpriteScreenFX(0, FX_INK, screen.xcenter, screen.ycenter)249end if250251// Draw the "reveal" rects252if object.state == SEGA_PEEKSEGA253temp0 = sega.peekPos254temp0 -= 10255temp0 -= screen.xsize256DrawRect(temp0, 91, screen.xsize, 58, 0xE0, 0xE0, 0xE0, 0xFF)257258temp0 = sega.peekPos259temp0 -= 10260DrawRect(temp0, 91, 4, 58, 0xE0, 0xE0, 0xE0, 0xC0)261262temp0 += 4263DrawRect(temp0, 91, 4, 58, 0xE0, 0xE0, 0xE0, 0xA0)264265temp0 += 8266DrawRect(temp0, 91, 4, 58, 0xE0, 0xE0, 0xE0, 0xA0)267268temp0 += 4269DrawRect(temp0, 91, 4, 58, 0xE0, 0xE0, 0xE0, 0xC0)270271temp0 += 4272DrawRect(temp0, 91, screen.xsize, 58, 0xE0, 0xE0, 0xE0, 0xFF)273274DrawSpriteScreenXY(1, screen.xcenter, screen.ycenter)275end if276end event277278279event ObjectStartup280LoadSpriteSheet("Title/Title.gif")281SpriteFrame(-93, -29, 188, 58, 323, 242)282SpriteFrame(-125, -29, 252, 58, 259, 301)283284// Hide touch controls285options.touchControls = false286end event287288289// ========================290// Editor Events291// ========================292293event RSDKDraw294DrawSprite(0)295end event296297298event RSDKLoad299LoadSpriteSheet("Title/Title.gif")300SpriteFrame(-93, -29, 188, 58, 323, 242)301302SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")303end event304305