Path: blob/master/Sonic 1/Scripts/Special/SpecialFinish.txt
1484 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Special Finish 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.textPos13private alias object.value2 : object.rotateSpeed14private alias object.value3 : object.scorePos15private alias object.value4 : object.ringPos16private alias object.value5 : object.ringBonus17private alias object.value6 : object.emeraldAlpha18private alias object.value7 : object.continuePos19private alias object.value8 : object.hasContinue20private alias object.value9 : object.messageState21private alias object.value10 : object.specialListPos22private alias object.value11 : object.emeralds2324// States25private alias 0 : SPECIALFINISH_SETUPSPIN26private alias 1 : SPECIALFINISH_SPINNING27private alias 2 : SPECIALFINISH_SETUPRESULTS28private alias 3 : SPECIALFINISH_FADEIN_DELAY29private alias 4 : SPECIALFINISH_SETUPTEXT30private alias 5 : SPECIALFINISH_ENTERTEXT31private alias 6 : SPECIALFINISH_ENTERRESULTS32private alias 7 : SPECIALFINISH_ENTEREMERALDS33private alias 8 : SPECIALFINISH_TALLYSCORE34private alias 9 : SPECIALFINISH_SHOWRESULTS35private alias 10 : SPECIALFINISH_FADEOUT36private alias 11 : SPECIALFINISH_SAVEANDRETURN37private alias 12 : SPECIALFINISH_HASCONTINUE38private alias 13 : SPECIALFINISH_SHOWCONTINUE39private alias 14 : SPECIALFINISH_SETUPTATTACK40private alias 15 : SPECIALFINISH_EXIT_TATTACK41private alias 16 : SPECIALFINISH_SUPERMSG_DELAY42private alias 17 : SPECIALFINISH_SHOW_SUPERMSG43private alias 18 : SPECIALFINISH_WAITFORCALLBACK4445// Player aliases46private alias object.value0 : player.rings4748// Music Events49private alias 25 : SLOT_MUSICEVENT_CHANGE5051private alias 2 : MUSICEVENT_TRANSITION5253private alias StageStatsUsabilityParam5 : stageStat.playerRings5455// Achievement Aliases56private alias 9 : ACHIEVEMENT_CHAOSCONNOISSEUR575859// ========================60// Function Declarations61// ========================6263reserve function SpecialFinish_DisplaySuperMessage646566// ========================67// Function Definitions68// ========================6970private function SpecialFinish_DisplaySuperMessage71switch object.messageState72case 073temp0 = screen.xcenter74FlipSign(temp0)75temp0 -= 16076object.textPos -= 1677if object.textPos <= temp078object.textPos = temp079object.messageState++80end if81break8283case 184object.textPos += 1685if object.textPos >= 086object.textPos = 087object.messageState++88end if89break90end switch91end function929394// ========================95// Events96// ========================9798event ObjectUpdate99switch object.state100case SPECIALFINISH_SETUPSPIN101object.rotation = Player_stageRotation102Player_rotateSpeed = 2103object.rotation <<= 2104object.rotateSpeed = 8105object.state = SPECIALFINISH_SPINNING106break107108case SPECIALFINISH_SPINNING109object.rotation -= object.rotateSpeed110if object.rotation < 0111object.rotation += 0x800112end if113114object.rotateSpeed += 2115Player_stageRotation = object.rotation116Player_stageRotation >>= 2117118if object.rotateSpeed > 248119if options.gameMode < MODE_TIMEATTACK120object.state = SPECIALFINISH_SETUPRESULTS121else122object.state = SPECIALFINISH_SETUPTATTACK123end if124end if125break126127case SPECIALFINISH_SETUPRESULTS128object.rotation -= object.rotateSpeed129if object.rotation < 0130object.rotation += 0x800131end if132133object.rotateSpeed += 2134Player_stageRotation = object.rotation135Player_stageRotation >>= 2136137if object.timer < 256138object.timer += 8139SetScreenFade(0xE0, 0xE0, 0xE0, object.timer)140else141#platform: USE_ORIGINS142object.specialListPos = specialStage.listPos143object.emeralds = specialStage.emeralds144#endplatform145146if Player_isWinner == true147temp0 = stage.actNum148temp0--149#platform: USE_STANDALONE150SetBit(specialStage.emeralds, temp0, true)151#endplatform152#platform: USE_ORIGINS153CheckGreater(6, temp0)154temp1 = checkResult155CheckNotEqual(options.superStates, false)156temp1 |= checkResult157if temp1 != false158SetBit(object.emeralds, temp0, true)159end if160#endplatform161end if162163#platform: USE_ORIGINS164stageStat.playerRings = player[0].rings165#endplatform166object.ringBonus = player[0].rings167object.ringBonus *= 100168if player[0].rings >= 50169object.hasContinue = true170end if171172// Due to Origins crashing if I try to wrap "switch <variable>"173// in a platform check, I'll have to use a temp value workaround.174// I am truly sorry.175#platform: USE_STANDALONE176stage.listPos = specialStage.nextZone177stage.activeList = REGULAR_STAGE178temp2 = specialStage.emeralds179#endplatform180#platform: USE_ORIGINS181temp2 = object.emeralds182#endplatform183switch temp2184case 0x3F // 6 emeralds185if options.superStates == false186object.frame = 3187#platform: USE_STANDALONE188specialStage.listPos++189specialStage.listPos %= 6190#endplatform191#platform: USE_ORIGINS192object.specialListPos++193object.specialListPos %= 6194#endplatform195temp0 = true196else197object.frame = 2198#platform: USE_STANDALONE199specialStage.listPos = 6200#endplatform201#platform: USE_ORIGINS202object.specialListPos = 6203#endplatform204temp0 = true205end if206break207208case 0x7F // 7 emeralds209object.frame = 3210#platform: USE_STANDALONE211specialStage.listPos++212specialStage.listPos %= 7213#endplatform214#platform: USE_ORIGINS215object.specialListPos++216object.specialListPos %= 7217#endplatform218temp0 = true219break220221default222object.frame = 2223temp0 = false224while temp0 == false225#platform: USE_STANDALONE226specialStage.listPos++227if specialStage.listPos > 5228specialStage.listPos = 0229end if230231GetBit(temp1, specialStage.emeralds, specialStage.listPos)232#endplatform233#platform: USE_ORIGINS234object.specialListPos++235if object.specialListPos > 5236object.specialListPos = 0237end if238239GetBit(temp1, object.emeralds, object.specialListPos)240#endplatform241if temp1 == false242temp0 = true243end if244loop245break246end switch247248if Player_isWinner == false249object.frame = 1250end if251object.timer = 0252253temp0 = 0254while temp0 < 20255ResetObjectEntity(temp0, TypeName[Blank Object], 0, 0, 0)256temp0++257loop258259temp0++260while temp0 < 0x4A0261ResetObjectEntity(temp0, TypeName[Blank Object], 0, 0, 0)262temp0++263loop264265stage.activeLayer[0] = 9266stage.activeLayer[1] = 9267stage.activeLayer[2] = 9268stage.activeLayer[3] = 9269object.controlMode = CONTROLMODE_P1270keyDown[1].left = false271keyDown[1].right = false272object.direction = FLIP_NONE273274#platform: USE_ORIGINS275game.callbackResult = -1276CallNativeFunction4(NotifyCallback, NOTIFY_SPECIAL_RETRY, Player_isWinner, object.specialListPos, object.emeralds)277object.state = SPECIALFINISH_WAITFORCALLBACK278#endplatform279280#platform: USE_STANDALONE281if options.gameMode == MODE_SAVEGAME282arrayPos1 = options.saveSlot283arrayPos1 <<= 3284if stage.player2Enabled == true285saveRAM[arrayPos1] = PLAYER_SONIC_TAILS_A286else287saveRAM[arrayPos1] = stage.playerListPos288end if289arrayPos1++290saveRAM[arrayPos1] = player.lives291arrayPos1++292saveRAM[arrayPos1] = player.score293arrayPos1++294saveRAM[arrayPos1] = player.scoreBonus295arrayPos1++296temp0 = stage.listPos297temp0++298if temp0 > saveRAM[arrayPos1]299saveRAM[arrayPos1] = temp0300else301if saveRAM[arrayPos1] >= 0x80302saveRAM[arrayPos1] = temp0303end if304end if305arrayPos1++306saveRAM[arrayPos1] = specialStage.emeralds307arrayPos1++308saveRAM[arrayPos1] = specialStage.listPos309WriteSaveRAM()310end if311object.state = SPECIALFINISH_FADEIN_DELAY312#endplatform313314SetScreenFade(0xF4, 0xF4, 0xF4, 0xFF)315end if316break317318case SPECIALFINISH_FADEIN_DELAY319if object.timer < 45320object.timer++321else322object.timer = 0323object.state++324#platform: USE_ORIGINS325stage.activeList = REGULAR_STAGE326stage.listPos = specialStage.nextZone327#endplatform328end if329SetScreenFade(0xF4, 0xF4, 0xF4, 0xFF)330break331332case SPECIALFINISH_SETUPTEXT333PlayMusic(1)334object.drawOrder = 6335object.priority = PRIORITY_ACTIVE336object.inkEffect = INK_ALPHA337object.alpha = 0338339object.xpos = screen.xcenter340object.xpos += 128341342object.textPos = screen.xcenter343FlipSign(object.textPos)344object.textPos -= 160345346object.scorePos = screen.xcenter347object.scorePos += 192348349object.ringPos = object.scorePos350object.ringPos += 32351352object.continuePos = object.ringPos353object.continuePos += 32354355if stage.debugMode == false356if specialStage.emeralds >= 0x3F357CallNativeFunction2(SetAchievement, ACHIEVEMENT_CHAOSCONNOISSEUR, 100)358end if359end if360object.state++361break362363case SPECIALFINISH_ENTERTEXT364if object.xpos > 0365object.xpos -= 16366if object.xpos < 0367object.xpos = 0368end if369end if370371if object.textPos < 0372object.textPos += 16373if object.textPos > 0374object.textPos = 0375end if376else377object.state++378end if379break380381case SPECIALFINISH_ENTERRESULTS382if object.emeraldAlpha < 0x100383object.emeraldAlpha += 8384end if385386if object.scorePos > 0387object.scorePos -= 16388if object.scorePos < 0389object.scorePos = 0390end if391end if392393if object.ringPos > 0394object.ringPos -= 16395if object.ringPos < 0396object.ringPos = 0397end if398end if399400if object.continuePos > 0401object.continuePos -= 16402if object.continuePos < 0403object.continuePos = 0404end if405else406object.state++407end if408break409410case SPECIALFINISH_ENTEREMERALDS411if object.emeraldAlpha < 0x100412object.emeraldAlpha += 8413end if414415object.timer++416if object.timer > 299417object.timer = 0418object.state++419end if420break421422case SPECIALFINISH_TALLYSCORE423if object.ringBonus > 0424object.ringBonus -= 100425player.score += 100426end if427428if player.score >= player.scoreBonus429#platform: USE_STANDALONE430player.lives++431#endplatform432#platform: USE_ORIGINS433if game.coinMode == false434player.lives++435else436CallNativeFunction2(NotifyCallback, NOTIFY_ADD_COIN, 1)437end if438#endplatform439player.scoreBonus += 50000440PlaySfx(SfxName[Life], false)441PauseMusic()442ResetObjectEntity(SLOT_MUSICEVENT_CHANGE, TypeName[Music Event], MUSICEVENT_TRANSITION, 0, 0)443object[SLOT_MUSICEVENT_CHANGE].priority = PRIORITY_ACTIVE444end if445446if object.ringBonus > 0447object.timer++448if object.timer == 2449PlaySfx(SfxName[Score Add], false)450object.timer = 0451end if452else453if object.hasContinue == false454object.state++455if Player_isWinner == true456#platform: USE_ORIGINS457if specialStage.emeralds >= 0x3F458CallNativeFunction2(NotifyCallback, NOTIFY_STATS_PARAM_2, 0)459end if460#endplatform461if specialStage.emeralds == 0x7F462object.state = SPECIALFINISH_SUPERMSG_DELAY463end if464end if465else466object.state = SPECIALFINISH_HASCONTINUE467end if468object.timer = 0469PlaySfx(SfxName[Score Total], false)470end if471break472473case SPECIALFINISH_SHOWRESULTS474object.timer++475if object.timer == 160476object.timer = 0477object.state++478PlaySfx(SfxName[Warp], false)479end if480break481482case SPECIALFINISH_FADEOUT483if object.timer < 400484object.timer += 8485SetScreenFade(0xF8, 0xF8, 0xF8, object.timer)486else487object.timer = 248488object.state++489SetScreenFade(0xF8, 0xF8, 0xF8, 0xFF)490end if491break492493case SPECIALFINISH_SAVEANDRETURN494if object.timer > 0495object.timer -= 8496else497if options.gameMode == MODE_SAVEGAME498arrayPos1 = options.saveSlot499arrayPos1 <<= 3500if stage.player2Enabled == true501#platform: USE_STANDALONE502saveRAM[arrayPos1] = PLAYER_SONIC_TAILS_A503#endplatform504#platform: USE_ORIGINS505switch stage.playerListPos506case PLAYER_SONIC_A507saveRAM[arrayPos1] = PLAYER_SONIC_TAILS508break509case PLAYER_AMY_A510saveRAM[arrayPos1] = PLAYER_AMY_TAILS511break512end switch513#endplatform514else515saveRAM[arrayPos1] = stage.playerListPos516end if517arrayPos1++518519saveRAM[arrayPos1] = player.lives520arrayPos1++521522saveRAM[arrayPos1] = player.score523arrayPos1++524525saveRAM[arrayPos1] = player.scoreBonus526arrayPos1++527528temp0 = stage.listPos529temp0++530if temp0 > saveRAM[arrayPos1]531saveRAM[arrayPos1] = temp0532else533if saveRAM[arrayPos1] >= 0x80534saveRAM[arrayPos1] = temp0535end if536end if537arrayPos1++538539saveRAM[arrayPos1] = specialStage.emeralds540arrayPos1++541542saveRAM[arrayPos1] = specialStage.listPos543544WriteSaveRAM()545546#platform: USE_ORIGINS547recScore = player.score548#endplatform549end if550551fadeColor = 0x000000552553#platform: USE_ORIGINS554CallNativeFunction2(NotifyCallback, NOTIFY_STATS_RING, stageStat.playerRings)555stageStat.playerRings = 0556#endplatform557558if stage.listPos < stage.listSize559LoadStage()560else561stage.activeList = PRESENTATION_STAGE562stage.listPos = 0563LoadStage()564end if565end if566SetScreenFade(object.timer, object.timer, object.timer, 0xFF)567break568569case SPECIALFINISH_HASCONTINUE570object.timer++571if object.timer == 120572object.timer = 0573object.hasContinue++574object.state++575576#platform: USE_ORIGINS577if game.coinMode != false578CallNativeFunction2(NotifyCallback, NOTIFY_ADD_COIN, 3)579end if580#endplatform581582PlaySfx(SfxName[Continue], false)583end if584break585586case SPECIALFINISH_SHOWCONTINUE587if specialStage.emeralds == 0x7F588CallFunction(SpecialFinish_DisplaySuperMessage)589end if590591object.timer++592if object.timer == 360593object.timer = 0594object.state = SPECIALFINISH_FADEOUT595PlaySfx(SfxName[Warp], false)596end if597break598599case SPECIALFINISH_SETUPTATTACK600object.rotation -= object.rotateSpeed601if object.rotation < 0602object.rotation += 0x800603end if604605object.rotateSpeed += 2606Player_stageRotation = object.rotation607Player_stageRotation >>= 2608if object.timer < 480609object.timer += 8610music.volume -= 2611else612object.timer = 248613object.state++614615temp0 = 0616while temp0 < 20617ResetObjectEntity(temp0, TypeName[Blank Object], 0, 0, 0)618temp0++619loop620621temp0++622while temp0 < 0x4A0623ResetObjectEntity(temp0, TypeName[Blank Object], 0, 0, 0)624temp0++625loop626627stage.activeLayer[0] = 9628stage.activeLayer[1] = 9629stage.activeLayer[2] = 9630stage.activeLayer[3] = 9631632StopMusic()633end if634SetScreenFade(0xF8, 0xF8, 0xF8, object.timer)635break636637case SPECIALFINISH_EXIT_TATTACK638if object.timer > 0639object.timer -= 8640else641if Player_isWinner == true642timeAttack.result = stage.seconds643timeAttack.result *= 100644temp0 = stage.minutes645temp0 *= 6000646timeAttack.result += temp0647timeAttack.result += stage.milliSeconds648else649timeAttack.result = 100000650end if651652engine.state = 8653end if654SetScreenFade(object.timer, object.timer, object.timer, 0xFF)655break656657case SPECIALFINISH_SUPERMSG_DELAY658object.timer++659if object.timer == 120660object.timer = 0661object.state++662end if663break664665case SPECIALFINISH_SHOW_SUPERMSG666CallFunction(SpecialFinish_DisplaySuperMessage)667object.timer++668if object.timer == 480669object.timer = 0670object.state = SPECIALFINISH_FADEOUT671PlaySfx(SfxName[Warp], false)672end if673break674675#platform: USE_ORIGINS676case SPECIALFINISH_WAITFORCALLBACK677if game.callbackResult >= 0678object.state = SPECIALFINISH_FADEIN_DELAY679object.timer = 0680specialStage.listPos = object.specialListPos681specialStage.emeralds = object.emeralds682if options.gameMode == MODE_SAVEGAME683arrayPos1 = options.saveSlot684arrayPos1 <<= 3685if stage.player2Enabled == true686switch stage.playerListPos687case PLAYER_SONIC_A688saveRAM[arrayPos1] = PLAYER_SONIC_TAILS689break690case PLAYER_AMY_A691saveRAM[arrayPos1] = PLAYER_AMY_TAILS692break693end switch694else695saveRAM[arrayPos1] = stage.playerListPos696end if697arrayPos1++698saveRAM[arrayPos1] = player.lives699arrayPos1++700saveRAM[arrayPos1] = player.score701arrayPos1++702saveRAM[arrayPos1] = player.scoreBonus703arrayPos1++704temp0 = stage.listPos705temp0++706if temp0 > saveRAM[arrayPos1]707saveRAM[arrayPos1] = temp0708else709if saveRAM[arrayPos1] >= 0x80710saveRAM[arrayPos1] = temp0711end if712end if713arrayPos1++714saveRAM[arrayPos1] = specialStage.emeralds715arrayPos1++716saveRAM[arrayPos1] = specialStage.listPos717WriteSaveRAM()718recScore = player.score719end if720end if721SetScreenFade(0xD0, 0xFF, 0xE0, 0xFF)722break723#endplatform724end switch725end event726727728event ObjectDraw729switch object.state730default731case SPECIALFINISH_SETUPSPIN732case SPECIALFINISH_SPINNING733case SPECIALFINISH_SETUPRESULTS734case SPECIALFINISH_FADEIN_DELAY735case SPECIALFINISH_SETUPTATTACK736case SPECIALFINISH_EXIT_TATTACK737#platform: USE_ORIGINS738case SPECIALFINISH_WAITFORCALLBACK739#endplatform740break741742case SPECIALFINISH_SETUPTEXT743case SPECIALFINISH_ENTERTEXT744case SPECIALFINISH_ENTERRESULTS745case SPECIALFINISH_ENTEREMERALDS746case SPECIALFINISH_TALLYSCORE747case SPECIALFINISH_SHOWRESULTS748case SPECIALFINISH_FADEOUT749case SPECIALFINISH_SAVEANDRETURN750case SPECIALFINISH_HASCONTINUE751case SPECIALFINISH_SHOWCONTINUE752case SPECIALFINISH_SUPERMSG_DELAY753case SPECIALFINISH_SHOW_SUPERMSG754// BG755DrawRect(0, 0, screen.xsize, screen.ysize, 0xE0, 0xE0, 0xE0, 0xFF)756757// Message758temp0 = screen.xcenter759temp0 += object.xpos760DrawSpriteScreenXY(0, temp0, 48)761if object.messageState == 0762temp0 = screen.xcenter763temp0 += object.textPos764DrawSpriteScreenXY(object.frame, temp0, 68)765else766temp0 = screen.xcenter767temp0 += object.textPos768DrawSpriteScreenXY(26, temp0, 68)769DrawSpriteScreenXY(27, temp0, 68)770DrawSpriteScreenXY(28, temp0, 68)771temp0 = screen.xcenter772temp0 -= object.textPos773DrawSpriteScreenXY(29, temp0, 68)774DrawSpriteScreenXY(30, temp0, 68)775end if776777// Score778temp0 = screen.xcenter779temp0 -= 79780temp0 += object.scorePos781DrawSpriteScreenXY(4, temp0, 151)782temp0 += 151783DrawNumbers(9, temp0, 153, player.score, 6, 8, false)784785// Ring Bonus786temp0 = screen.xcenter787temp0 -= 79788temp0 += object.ringPos789DrawSpriteScreenXY(5, temp0, 167)790temp0 += 151791DrawNumbers(9, temp0, 169, object.ringBonus, 5, 8, false)792793// Continues/Coins794if object.hasContinue != false795temp0 = screen.xcenter796temp0 -= 79797temp0 += object.continuePos798#platform: USE_ORIGINS799if game.coinMode == false800#endplatform801DrawSpriteScreenXY(6, temp0, 183)802if object.hasContinue == 2803temp0 += 151804GetBit(temp1, object.timer, 4)805temp1 += 7806if object.state != SPECIALFINISH_SHOWCONTINUE807temp1 = 7808end if809DrawSpriteScreenXY(temp1, temp0, 196)810end if811#platform: USE_ORIGINS812else813DrawSpriteScreenXY(31, temp0, 183)814DrawSpriteScreenXY(32, temp0, 183)815if object.hasContinue == 2816temp0 += 124817DrawSpriteScreenXY(33, temp0, 183)818temp2 = object.timer819temp2 &= 15820temp2 >>= 2821temp2 += 34822DrawSpriteScreenXY(temp2, temp0, 183)823end if824end if825#endplatform826end if827828// Emerald Opacity829object.animationTimer += 16830object.animationTimer &= 0x1FF831Sin(temp0, object.animationTimer)832temp0 >>= 3833temp0 += 190834temp0 *= object.emeraldAlpha835temp0 >>= 8836object.alpha = temp0837838temp0 = 0839temp1 = 19840temp3 = screen.xcenter841if specialStage.emeralds == 0x7F842temp3 += 12843end if844845// Draw Emeralds846while temp0 < 7847GetBit(temp2, specialStage.emeralds, temp0)848if temp2 == true849DrawSpriteScreenFX(temp1, FX_INK, temp3, 112)850end if851temp0++852temp1++853loop854break855end switch856end event857858859event ObjectStartup860LoadSpriteSheet("Special/Objects.gif")861862SpriteFrame(-32, 0, 56, 56, 63, 401) // 0 - Oval863SpriteFrame(-99, 0, 197, 16, 120, 401) // 1 - "SPECIAL STAGE" large text864SpriteFrame(-112, 0, 223, 16, 156, 418) // 2 - "CHAOS EMERALDS" large text865866switch stage.playerListPos867case PLAYER_SONIC_A868case PLAYER_SONIC_TAILS_A869SpriteFrame(-127, 0, 254, 16, 156, 435) // 3 - "SONIC GOT THEM ALL"870break871872case PLAYER_TAILS_A873if options.region == false874SpriteFrame(-127, 0, 254, 16, 156, 452) // 3 - "TAILS GOT THEM ALL"875else876SpriteFrame(-127, 0, 254, 16, 156, 469) // 3 - "MILES GOT THEM ALL"877end if878break879880case PLAYER_KNUCKLES_A881SpriteFrame(-149, 0, 298, 16, 156, 486) // 3 - "KNUCKLES GOT THEM ALL"882break883884#platform: USE_ORIGINS885case PLAYER_AMY_A886SpriteFrame(-127, 0, 254, 16, 156, 503) // 3 - "AMY GOT THEM ALL"887break888#endplatform889end switch890891SpriteFrame(0, 0, 44, 16, 35, 458) // 4 - "SCORE" small text892SpriteFrame(0, 0, 85, 16, 35, 475) // 5 - "RING BONUS" small text893SpriteFrame(0, 0, 69, 16, 35, 492) // 6 - "CONTINUE" small text894895// 7-8 - Character icons, dependant on the main character896switch stage.playerListPos897case PLAYER_SONIC_A898case PLAYER_SONIC_TAILS_A899SpriteFrame(-8, -11, 16, 23, 399, 376)900SpriteFrame(-8, -11, 16, 23, 416, 376)901break902903case PLAYER_TAILS_A904SpriteFrame(-8, -11, 16, 23, 433, 376)905SpriteFrame(-8, -11, 16, 23, 450, 376)906break907908case PLAYER_KNUCKLES_A909SpriteFrame(-8, -11, 16, 23, 467, 376)910SpriteFrame(-8, -11, 16, 23, 484, 376)911break912913#platform: USE_ORIGINS914case PLAYER_AMY_A915SpriteFrame(-9, -10, 17, 22, 465, 417)916SpriteFrame(-9, -10, 17, 22, 483, 417)917break918#endplatform919end switch920921// 9-18 - Numbers922SpriteFrame(0, 0, 8, 11, 120, 418)923SpriteFrame(0, 0, 8, 11, 129, 418)924SpriteFrame(0, 0, 8, 11, 138, 418)925SpriteFrame(0, 0, 8, 11, 147, 418)926SpriteFrame(0, 0, 8, 11, 120, 430)927SpriteFrame(0, 0, 8, 11, 129, 430)928SpriteFrame(0, 0, 8, 11, 138, 430)929SpriteFrame(0, 0, 8, 11, 147, 430)930SpriteFrame(0, 0, 8, 11, 120, 442)931SpriteFrame(0, 0, 8, 11, 129, 442)932933// 19-24 - Chaos Emeralds934SpriteFrame(-28, -4, 24, 24, 176, 276)935SpriteFrame(-4, -4, 24, 24, 201, 276)936if options.superStates == false937SpriteFrame(-52, -4, 24, 24, 226, 276)938else939SpriteFrame(-52, -4, 24, 24, 426, 276)940end if941SpriteFrame(20, -4, 24, 24, 251, 276)942SpriteFrame(-76, -4, 24, 24, 276, 276)943SpriteFrame(44, -4, 24, 24, 301, 276)944SpriteFrame(-100, -4, 24, 24, 401, 276)945946// Texts947switch stage.playerListPos948case PLAYER_SONIC_A949case PLAYER_SONIC_TAILS_A950SpriteFrame(-113, -12, 53, 16, 411, 435) // "NOW"951SpriteFrame(-51, -12, 70, 16, 156, 435) // "SONIC"952SpriteFrame(28, -12, 85, 16, 411, 452) // "CAN BE"953SpriteFrame(-77, 12, 76, 16, 411, 469) // "SUPER"954SpriteFrame(8, 12, 70, 16, 156, 435) // "SONIC" (different offset)955break956957case PLAYER_TAILS_A958if options.region == false959SpriteFrame(-113, -12, 53, 16, 411, 435) // "NOW"960SpriteFrame(-51, -12, 70, 16, 156, 452) // "TAILS"961SpriteFrame(28, -12, 85, 16, 411, 452) // "CAN BE"962SpriteFrame(-77, 12, 76, 16, 411, 469) // "SUPER"963SpriteFrame(8, 12, 70, 16, 156, 452) // "TAILS" (different offset)964else965SpriteFrame(-113, -12, 53, 16, 411, 435) // "NOW"966SpriteFrame(-51, -12, 70, 16, 156, 469) // "MILES"967SpriteFrame(28, -12, 85, 16, 411, 452) // "CAN BE"968SpriteFrame(-77, 12, 76, 16, 411, 469) // "SUPER"969SpriteFrame(8, 12, 70, 16, 156, 469) // "MILES" (different offset)970end if971break972973case PLAYER_KNUCKLES_A974SpriteFrame(-134, -12, 53, 16, 411, 435) // "NOW"975SpriteFrame(-73, -12, 113, 16, 156, 486) // "KNUCKLES"976SpriteFrame(50, -12, 85, 16, 411, 452) // "CAN BE"977SpriteFrame(-99, 12, 76, 16, 411, 469) // "SUPER"978SpriteFrame(-14, 12, 113, 16, 156, 486) // "KNUCKLES" (different offset)979break980981#platform: USE_ORIGINS982case PLAYER_AMY_A983SpriteFrame(-101, -12, 53, 16, 411, 435) // "NOW"984SpriteFrame(-39, -12, 46, 16, 174, 503) // "AMY"985SpriteFrame(16, -12, 85, 16, 411, 452) // "CAN BE"986SpriteFrame(-65, 12, 76, 16, 411, 469) // "SUPER"987SpriteFrame(22, 12, 46, 16, 174, 503) // "AMY" (different offset)988break989#endplatform990end switch991992#platform: USE_ORIGINS993SpriteFrame(0, 0, 32, 16, 1, 489) // "COIN"994SpriteFrame(32, 0, 53, 16, 67, 475) // " BONUS"995SpriteFrame(0, 0, 50, 16, 80, 458) // Coin x 3996SpriteFrame(-4, -4, 24, 24, 401, 76) // Coin Sparkle 1997SpriteFrame(-4, -4, 24, 24, 426, 76) // Coin Sparkle 2998SpriteFrame(-4, -4, 24, 24, 451, 76) // Coin Sparkle 3999SpriteFrame(-4, -4, 24, 24, 476, 76) // Coin Sparkle 41000#endplatform1001end event100210031004// ========================1005// Editor Events1006// ========================10071008event RSDKDraw1009DrawSprite(0)1010end event101110121013event RSDKLoad1014LoadSpriteSheet("Global/Display.gif")1015SpriteFrame(-16, -16, 32, 32, 1, 143)10161017SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")1018end event101910201021