Path: blob/master/Sonic 1/Scripts/Continue/Continue.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Continue Screen Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.countdown // The time you see in big numbers (seconds)12private alias object.value1 : object.timer // The hidden in-between timer (frames)1314// States15private alias 0 : CONTINUE_IDLE16private alias 1 : CONTINUE_COUNTDOWN1718// Continue Setup states19private alias 3 : CONTINUESETUP_WAITING20private alias 5 : CONTINUESETUP_RUNOFFSCREEN21private alias 7 : CONTINUESETUP_FADETOMENU222324// ========================25// Events26// ========================2728event ObjectUpdate29if object.state == CONTINUE_COUNTDOWN30object.timer--31if object.timer <= 032if object.countdown == 033object.state++34object[-2].state = CONTINUESETUP_FADETOMENU35else36object.countdown--37object.timer = 6038end if39end if40end if41end event424344event ObjectDraw45// First draw the constant sprites ("Continue" & stars)46DrawSprite(0)47DrawSprite(1)4849// Then draw the remaining time countdown50temp0 = object.xpos51temp0 >>= 1652DrawNumbers(2, temp0, 126, object.countdown, 2, 8, true)5354// And now draw a visual representation of all the continues the player has5556temp0 = player.continues57temp1 = temp058temp0 -= 259temp0 *= 2160temp0 >>= 161FlipSign(temp0)62temp0 += screen.xcenter63GetBit(object.frame, oscillation, 4)64object.frame += 1265temp3 = true66while temp1 > 167temp2 = true6869if temp3 == true70temp3 = false71if object[-2].state >= CONTINUESETUP_RUNOFFSCREEN72if object[-2].state != CONTINUESETUP_FADETOMENU73// Don't draw74temp2 = false75end if76else77if object[-2].state > CONTINUESETUP_WAITING78// Flashing, draw sometimes79GetBit(temp2, oscillation, 0)80end if81end if82end if8384if temp2 == true85DrawSpriteScreenXY(object.frame, temp0, 100)86end if8788temp0 += 2189temp1--90loop91end event929394event ObjectStartup95LoadSpriteSheet("Special/Objects.gif")9697// Sprite frames98SpriteFrame(-59, 64, 118, 16, 382, 400) // #0 - "CONTINUE" text99SpriteFrame(-21, 128, 41, 9, 357, 390) // #1 - Pair of stars100SpriteFrame(0, 0, 8, 11, 120, 418) // #2 - Number 0101SpriteFrame(0, 0, 8, 11, 129, 418) // #3 - Number 1102SpriteFrame(0, 0, 8, 11, 138, 418) // #4 - Number 2103SpriteFrame(0, 0, 8, 11, 147, 418) // #5 - Number 3104SpriteFrame(0, 0, 8, 11, 120, 430) // #6 - Number 4105SpriteFrame(0, 0, 8, 11, 129, 430) // #7 - Number 5106SpriteFrame(0, 0, 8, 11, 138, 430) // #8 - Number 6107SpriteFrame(0, 0, 8, 11, 147, 430) // #9 - Number 7108SpriteFrame(0, 0, 8, 11, 120, 442) // #10 - Number 8109SpriteFrame(0, 0, 8, 11, 129, 442) // #11 - Number 9110111// Mini foot tapping sprites are character-specific112switch stage.playerListPos113case PLAYER_SONIC_A114case PLAYER_SONIC_TAILS_A115SpriteFrame(-8, -11, 16, 23, 399, 376)116SpriteFrame(-8, -11, 16, 23, 416, 376)117break118119case PLAYER_TAILS_A120SpriteFrame(-8, -11, 16, 23, 433, 376)121SpriteFrame(-8, -11, 16, 23, 450, 376)122break123124case PLAYER_KNUCKLES_A125#platform: USE_ORIGINS126case PLAYER_KNUCKLES_TAILS_A // Huh...? It's cool this is here, but K+T isn't a combo in Origins Plus?127#endplatform128SpriteFrame(-8, -11, 16, 23, 467, 376)129SpriteFrame(-8, -11, 16, 23, 484, 376)130break131132#platform: USE_ORIGINS133case PLAYER_AMY_A134case PLAYER_AMY_TAILS_A135SpriteFrame(-9, -10, 17, 22, 465, 417)136SpriteFrame(-9, -10, 17, 22, 483, 417)137break138#endplatform139140end switch141142foreach (TypeName[Continue Screen], arrayPos0, ALL_ENTITIES)143object[arrayPos0].drawOrder = 5144object[arrayPos0].xpos = screen.xcenter145object[arrayPos0].xpos <<= 16146object[arrayPos0].ypos = 0147object[arrayPos0].countdown = 10148next149end event150151152// ========================153// Editor Events154// ========================155156event RSDKDraw157DrawSprite(0)158end event159160161event RSDKLoad162LoadSpriteSheet("Special/Objects.gif")163SpriteFrame(-59, -8, 118, 16, 382, 400)164165SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")166end event167168169