Path: blob/master/Sonic 2/Scripts/Special/HUD.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: HUD Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value1 : object.totalRings12private alias object.value2 : object.drawPos.x13private alias object.value3 : object.character1415// Player Aliases16private alias object.value0 : player.rings17private alias object.value19 : player.vsCheckpointID181920// ========================21// Function Declarations22// ========================2324reserve function HUD_GetCharacterFrame25reserve function HUD_DrawRingCount262728// ========================29// Function Definitions30// ========================3132private function HUD_GetCharacterFrame33#platform: USE_ORIGINS34// Introduced in Origins Plus35if object.character != PLAYER_AMY36object.frame = object.character37object.frame += 1238else39object.frame = 1540end if41#endplatform42end function434445private function HUD_DrawRingCount46DrawSpriteScreenXY(object.frame, object.drawPos.x, 20)47object.drawPos.x += 444849if player[currentPlayer].rings > 9950// Draw 3 digits51temp1 = player[currentPlayer].rings52temp1 /= 10053DrawSpriteScreenXY(temp1, object.drawPos.x, 29)5455object.drawPos.x += 856temp1 = player[currentPlayer].rings57temp1 %= 10058temp1 /= 1059DrawSpriteScreenXY(temp1, object.drawPos.x, 29)6061object.drawPos.x += 862temp1 = player[currentPlayer].rings63temp1 %= 1064DrawSpriteScreenXY(temp1, object.drawPos.x, 29)65else66if player[currentPlayer].rings > 967// Draw 2 digits68temp1 = player[currentPlayer].rings69temp1 /= 1070DrawSpriteScreenXY(temp1, object.drawPos.x, 29)7172object.drawPos.x += 873temp1 = player[currentPlayer].rings74temp1 %= 1075DrawSpriteScreenXY(temp1, object.drawPos.x, 29)76else77// Only draw a single digit78DrawSpriteScreenXY(player[currentPlayer].rings, object.drawPos.x, 29)79end if80end if81end function828384// ========================85// Events86// ========================8788event ObjectDraw89if options.vsMode == false90#platform: USE_ORIGINS91currentPlayer = 292object.drawPos.x = screen.xcenter93object.character = stage.playerListPos94CallFunction(HUD_GetCharacterFrame)95#endplatform9697if stage.player2Enabled == false98#platform: USE_STANDALONE99currentPlayer = 2100object.drawPos.x = screen.xcenter101object.drawPos.x -= 24102object.frame = stage.playerListPos103object.frame += 10104CallFunction(HUD_DrawRingCount)105#endplatform106#platform: USE_ORIGINS107object.drawPos.x -= 24108CallFunction(HUD_DrawRingCount)109#endplatform110else111#platform: USE_STANDALONE112currentPlayer = 2113object.drawPos.x = screen.xcenter114object.drawPos.x -= 104115object.frame = stage.playerListPos116object.frame += 10117CallFunction(HUD_DrawRingCount)118#endplatform119#platform: USE_ORIGINS120object.drawPos.x -= 104121CallFunction(HUD_DrawRingCount)122#endplatform123124currentPlayer = 3125object.drawPos.x = screen.xcenter126object.drawPos.x += 48127#platform: USE_STANDALONE128object.frame = 11129#endplatform130#platform: USE_ORIGINS131object.frame = 13132#endplatform133CallFunction(HUD_DrawRingCount)134135object.totalRings = player[2].rings136object.totalRings += player[3].rings137#platform: USE_STANDALONE138DrawSpriteScreenXY(13, screen.xcenter, 21)139#endplatform140#platform: USE_ORIGINS141DrawSpriteScreenXY(10, screen.xcenter, 21)142#endplatform143144object.drawPos.x = screen.xcenter145if object.totalRings > 99146object.drawPos.x -= 12147temp1 = object.totalRings148temp1 /= 100149DrawSpriteScreenXY(temp1, object.drawPos.x, 29)150151object.drawPos.x += 8152temp1 = object.totalRings153temp1 %= 100154temp1 /= 10155DrawSpriteScreenXY(temp1, object.drawPos.x, 29)156157object.drawPos.x += 8158temp1 = object.totalRings159temp1 %= 10160DrawSpriteScreenXY(temp1, object.drawPos.x, 29)161else162if object.totalRings > 9163object.drawPos.x -= 8164temp1 = object.totalRings165temp1 /= 10166DrawSpriteScreenXY(temp1, object.drawPos.x, 29)167168object.drawPos.x += 8169temp1 = object.totalRings170temp1 %= 10171DrawSpriteScreenXY(temp1, object.drawPos.x, 29)172else173object.drawPos.x -= 4174DrawSpriteScreenXY(object.totalRings, object.drawPos.x, 29)175end if176end if177end if178else179currentPlayer = 2180object.drawPos.x = screen.xcenter181object.drawPos.x -= 104182#platform: USE_STANDALONE183object.frame = stage.playerListPos184object.frame += 10185#endplatform186#platform: USE_ORIGINS187object.character = stage.playerListPos188CallFunction(HUD_GetCharacterFrame)189#endplatform190CallFunction(HUD_DrawRingCount)191192temp0 = 0193object.drawPos.x = screen.xcenter194object.drawPos.x -= 96195while temp0 < player[2].vsCheckpointID196#platform: USE_STANDALONE197DrawSpriteScreenXY(14, object.drawPos.x, 45)198#endplatform199#platform: USE_ORIGINS200DrawSpriteScreenXY(11, object.drawPos.x, 45)201#endplatform202object.drawPos.x += 16203temp0++204loop205206currentPlayer = 3207object.drawPos.x = screen.xcenter208object.drawPos.x += 48209#platform: USE_STANDALONE210object.frame = vs.player2Type211object.frame += 10212#endplatform213#platform: USE_ORIGINS214object.character = vs.player2Type215CallFunction(HUD_GetCharacterFrame)216#endplatform217CallFunction(HUD_DrawRingCount)218219temp0 = 0220object.drawPos.x = screen.xcenter221object.drawPos.x += 56222while temp0 < player[3].vsCheckpointID223#platform: USE_STANDALONE224DrawSpriteScreenXY(14, object.drawPos.x, 45)225#endplatform226#platform: USE_ORIGINS227DrawSpriteScreenXY(11, object.drawPos.x, 45)228#endplatform229object.drawPos.x += 16230temp0++231loop232end if233end event234235236event ObjectStartup237LoadSpriteSheet("Special/Objects.gif")238SpriteFrame(0, 0, 8, 15, 291, 42) // Number 0 - #0/0239SpriteFrame(0, 0, 8, 15, 300, 42) // Number 1 - #1/1240SpriteFrame(0, 0, 8, 15, 309, 42) // Number 2 - #2/2241SpriteFrame(0, 0, 8, 15, 318, 42) // Number 3 - #3/3242SpriteFrame(0, 0, 8, 15, 327, 42) // Number 4 - #4/4243SpriteFrame(0, 0, 8, 15, 336, 42) // Number 5 - #5/5244SpriteFrame(0, 0, 8, 15, 345, 42) // Number 6 - #6/6245SpriteFrame(0, 0, 8, 15, 354, 42) // Number 7 - #7/7246SpriteFrame(0, 0, 8, 15, 363, 42) // Number 8 - #8/8247SpriteFrame(0, 0, 8, 15, 372, 42) // Number 9 - #9/9248#platform: USE_STANDALONE249SpriteFrame(0, 0, 48, 24, 250, 1) // Sonic Rings - #10/X250if options.region == 0251SpriteFrame(0, 0, 48, 24, 299, 1) // Tails Rings - #11/X252else253SpriteFrame(0, 0, 48, 24, 348, 1) // Miles Rings - #11/X254end if255SpriteFrame(0, 0, 48, 24, 397, 1) // KTE Rings - #12/X256#endplatform257SpriteFrame(-20, 0, 40, 28, 250, 26) // Total box - #13/10258SpriteFrame(-8, 0, 16, 8, 442, 42) // Vs box - #14/11259#platform: USE_ORIGINS260SpriteFrame(0, 0, 48, 24, 250, 1) // Sonic Rings - #X/12261if options.region == 0262SpriteFrame(0, 0, 48, 24, 299, 1) // Tails Rings - #X/13263else264SpriteFrame(0, 0, 48, 24, 348, 1) // Miles Rings - #X/13265end if266SpriteFrame(0, 0, 48, 24, 397, 1) // KTE Rings - #X/14267SpriteFrame(0, 0, 48, 24, 446, 1) // Amy Rings - #X/15268#endplatform269end event270271272// ========================273// Editor Events274// ========================275276event RSDKDraw277DrawSprite(0)278end event279280281event RSDKLoad282LoadSpriteSheet("Global/Display.gif")283SpriteFrame(-16, -16, 32, 32, 1, 143)284285SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")286end event287288289