Path: blob/master/Sonic 1/Scripts/Credits/CreditsEggman.txt
1482 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Credits Eggman 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.delay13private alias object.value2 : object.frameID1415// Priority Aliases16private alias 6 : PRIORITY_BOUNDS_SMALL171819// ========================20// Tables21// ========================2223private table CreditsEggman_delayTable247, 113, 7, 11325end table2627private table CreditsEggman_frameTable284, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 7, 5, 6, 529end table303132// ========================33// Events34// ========================3536event ObjectUpdate37switch object.propertyValue38case 039GetTableValue(object.delay, object.frame, CreditsEggman_delayTable)40object.timer++41if object.timer == object.delay42object.timer = 043object.frame++44object.frame &= 345end if4647switch object.frame48case 149if object.timer == 050object[+1].angle = 3251object[+2].angle = 3252object[+3].angle = 3253object[+4].angle = 3254object[+5].angle = 3255object[+6].angle = 3256object[+7].angle = 3257else58arrayPos0 = 159while arrayPos0 < 860if object.timer > object[+arrayPos0].timer61object[+arrayPos0].angle += 462if object[+arrayPos0].angle > 25663object[+arrayPos0].angle = 25664end if65end if6667arrayPos0++68loop69end if70break7172case 373if object.timer == 074object[+1].angle = 22475object[+2].angle = 22476object[+3].angle = 22477object[+4].angle = 22478object[+5].angle = 22479object[+6].angle = 22480object[+7].angle = 22481else82arrayPos0 = 183while arrayPos0 < 884if object.timer > object[+arrayPos0].timer85object[+arrayPos0].angle -= 486if object[+arrayPos0].angle < 087object[+arrayPos0].angle = 088end if89end if9091arrayPos0++92loop93end if94break9596end switch9798arrayPos0 = 199while arrayPos0 < 8100Cos(object[+arrayPos0].xpos, object[+arrayPos0].angle)101object[+arrayPos0].xpos *= -0xE00102103Sin(object[+arrayPos0].ypos, object[+arrayPos0].angle)104object[+arrayPos0].ypos *= -0xE00105object[+arrayPos0].ypos -= 0x80000106object[+arrayPos0].xpos += object.xpos107object[+arrayPos0].ypos += object.ypos108109arrayPos0++110loop111break112113case 1114object.timer++115if object.timer == 8116object.timer = 0117GetTableValue(object.frame, object.frameID, CreditsEggman_frameTable)118object.frameID++119object.frameID &= 15120end if121break122123end switch124end event125126127event ObjectDraw128DrawSprite(object.frame)129end event130131132event ObjectStartup133LoadSpriteSheet("Ending/Credits.gif")134135// 0-3 - Eggman Juggle Frames136SpriteFrame(-29, -23, 60, 50, 1, 1)137SpriteFrame(-29, -24, 58, 51, 62, 1)138SpriteFrame(-31, -23, 60, 50, 121, 1)139SpriteFrame(-29, -24, 58, 51, 182, 1)140141// 4-7 - Eggman Tantrum Frames142SpriteFrame(-29, -19, 58, 55, 1, 53)143SpriteFrame(-29, -46, 58, 82, 62, 53)144SpriteFrame(-29, -60, 58, 96, 121, 53)145SpriteFrame(-32, -12, 64, 48, 182, 53)146147// 8 - Emerald Flash Frame148SpriteFrame(-6, -6, 12, 12, 1, 109)149150// 9-15 - Emerald Frames151SpriteFrame(-6, -6, 12, 12, 14, 109) // Blue152SpriteFrame(-6, -6, 12, 12, 27, 109) // Orange153if options.superStates == false154SpriteFrame(-6, -6, 12, 12, 40, 109) // Pink155else156SpriteFrame(-6, -6, 12, 12, 14, 135) // Purple157end if158SpriteFrame(-6, -6, 12, 12, 1, 122) // Green159SpriteFrame(-6, -6, 12, 12, 14, 122) // Red160SpriteFrame(-6, -6, 12, 12, 27, 122) // Grey161SpriteFrame(-6, -6, 12, 12, 1, 135) // Light blue162163// (The dark orange one at 27, 135 is unused)164165foreach (TypeName[Credits Eggman], arrayPos0, ALL_ENTITIES)166object[arrayPos0].priority = PRIORITY_BOUNDS_SMALL167switch object[arrayPos0].propertyValue168case 0 // Eggman - Tease169arrayPos1 = arrayPos0170arrayPos1 += 7171temp0 = 0172temp2 = 0173while temp0 < 7174GetBit(temp1, specialStage.emeralds, temp0)175if temp0 == 6176if options.superStates == false177temp1 = true178end if179end if180181if temp1 == false182object[arrayPos1].propertyValue = temp0183object[arrayPos1].propertyValue += 2184object[arrayPos1].timer = temp2185object[arrayPos1].timer *= 9186arrayPos1--187temp2++188end if189temp0++190loop191192while arrayPos1 > arrayPos0193object[arrayPos1].type = TypeName[Blank Object]194arrayPos1--195loop196break197198case 1 // Eggman - Angry199object[arrayPos0].frame = 4200break201202case 2 // Emeralds, each type gets its own Property Value203case 3204case 4205case 5206case 6207case 7208case 8209object[arrayPos0].frame = object[arrayPos0].propertyValue210object[arrayPos0].frame += 7211break212213end switch214next215end event216217218// ========================219// Editor Events220// ========================221222event RSDKEdit223if editor.returnVariable == true224switch editor.variableID225case EDIT_VAR_PROPVAL // property value226checkResult = object.propertyValue227break228229case 0 // type230checkResult = object.propertyValue231break232233end switch234else235switch editor.variableID236case EDIT_VAR_PROPVAL // property value237object.propertyValue = editor.variableValue238break239240case 0 // type241object.propertyValue = editor.variableValue242break243244end switch245end if246end event247248249event RSDKDraw250switch object.propertyValue251case 0252// Eggman Tease253object.frame = 0254break255256case 1257// Eggman Angry258object.frame = 4259break260261// Emeralds262case 2263case 3264case 4265case 5266case 6267case 7268case 8269object.frame = object.propertyValue270object.frame += 7271break272273end switch274275DrawSprite(object.frame)276end event277278279event RSDKLoad280LoadSpriteSheet("Ending/Credits.gif")281SpriteFrame(-29, -23, 60, 50, 1, 1)282SpriteFrame(-29, -24, 58, 51, 62, 1)283SpriteFrame(-31, -23, 60, 50, 121, 1)284SpriteFrame(-29, -24, 58, 51, 182, 1)285SpriteFrame(-29, -19, 58, 55, 1, 53)286SpriteFrame(-29, -46, 58, 82, 62, 53)287SpriteFrame(-29, -60, 58, 96, 121, 53)288SpriteFrame(-32, -12, 64, 48, 182, 53)289SpriteFrame(-6, -6, 12, 12, 1, 109)290SpriteFrame(-6, -6, 12, 12, 14, 109)291SpriteFrame(-6, -6, 12, 12, 27, 109)292SpriteFrame(-6, -6, 12, 12, 40, 109)293SpriteFrame(-6, -6, 12, 12, 1, 122)294SpriteFrame(-6, -6, 12, 12, 14, 122)295SpriteFrame(-6, -6, 12, 12, 27, 122)296SpriteFrame(-6, -6, 12, 12, 1, 135)297298AddEditorVariable("type")299SetActiveVariable("type")300AddEnumVariable("Eggman (Juggling)", 0)301AddEnumVariable("Eggman (Tantrum)", 1)302AddEnumVariable("Chaos Emerald 1", 2)303AddEnumVariable("Chaos Emerald 2", 3)304AddEnumVariable("Chaos Emerald 3", 4)305AddEnumVariable("Chaos Emerald 4", 5)306AddEnumVariable("Chaos Emerald 5", 6)307AddEnumVariable("Chaos Emerald 6", 7)308AddEnumVariable("Chaos Emerald 7", 8)309end event310311312