Path: blob/main/Scripts/Mission/MissionFuturePost.txt
1319 views
//------------Sonic CD Mission Future Post Script-------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//3//----Used on Mission "M100 - Reverse Time Traveler Redux"----//45// Aliases6#alias Object.Value0 : Object.Timer7#alias Object.Value1 : Object.CollisionPlane89// States10#alias 0 : MFUTUREPOST_IDLE11#alias 1 : MFUTUREPOST_ROTATE12#alias 2 : MFUTUREPOST_USED1314// Warp Destination15#alias 2 : WARPDEST_FUTURE1617// Collision Plane18#alias 1 : COLLISION_PLANE_B1920// Property Values21#alias 0 : DRAWING_PLANE_A22#alias 1 : DRAWING_PLANE_B2324// Game Mode Aliases25#alias 2 : MODE_TIMEATTACK2627// Global SFX28#alias 12 : SFX_G_FUTURE2930// Priority31#alias 0 : PRIORITY_BOUNDS32#alias 1 : PRIORITY_ACTIVE333435sub ObjectPlayerInteraction36switch Object.State37case MFUTUREPOST_IDLE38if Player.CollisionPlane == Object.CollisionPlane39PlayerObjectCollision(C_TOUCH,-8,-24,8,32)40if CheckResult == true41Warp.Destination = WARPDEST_FUTURE4243Object.State = MFUTUREPOST_ROTATE44Object.Priority = PRIORITY_ACTIVE45Object.Frame = 14647PlaySfx(SFX_G_FUTURE, false)48end if49end if50break5152case MFUTUREPOST_USED53if Object.OutOfBounds == true54TempValue0 = Stage.Minutes55TempValue0 *= 6056TempValue0 += Stage.Seconds5758if Object.Timer == 059Object.Timer = TempValue060Object.Timer += 1061else62if TempValue0 >= Object.Timer63// Reset the post64Object.State = MFUTUREPOST_IDLE65Object.Timer = 066Object.Priority = PRIORITY_BOUNDS67end if68end if69end if70break71end switch72end sub737475sub ObjectDraw76switch Object.State77case MFUTUREPOST_IDLE78DrawSprite(0)79DrawSprite(1)80break8182case MFUTUREPOST_ROTATE83DrawSprite(0)84Object.Timer++85if Object.Timer == 6486Object.Timer = 087Object.State = MFUTUREPOST_USED88end if89DrawSprite(Object.Frame)9091TempValue0 = Object.Timer92TempValue0 &= 19394Object.Frame += TempValue095if Object.Frame > 896Object.Frame = 197end if98break99100case MFUTUREPOST_USED101DrawSprite(0)102DrawSprite(5)103break104end switch105end sub106107108sub ObjectStartup109LoadSpriteSheet("Global/Items.gif")110111SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body112// Future Post Head113SpriteFrame(-16, -40, 32, 16, 52, 239) // #1 - Post Head114SpriteFrame(-8, -40, 16, 16, 51, 183) // #2 - Post Head Flip 1115SpriteFrame(-3, -40, 8, 16, 68, 183) // #3 - Post Head Flip 2116SpriteFrame(-8, -40, 16, 16, 52, 200) // #4 - Post Head Flip 3117SpriteFrame(-16, -40, 32, 16, 85, 239) // #5 - Post Head Backwards118SpriteFrame(-8, -40, 16, 16, 51, 183) // #6 - Post Head Flip 1119SpriteFrame(-3, -40, 8, 16, 68, 183) // #7 - Post Head Flip 2120SpriteFrame(-8, -40, 16, 16, 52, 200) // #8 - Post Head Flip 3121122ArrayPos0 = 32123while ArrayPos0 < 1056124if Object[ArrayPos0].Type == TypeName[Future Post]125if Object[ArrayPos0].PropertyValue == DRAWING_PLANE_B126Object[ArrayPos0].DrawOrder = 1127Object[ArrayPos0].CollisionPlane = COLLISION_PLANE_B128end if129130if Options.GameMode == MODE_TIMEATTACK131Object[ArrayPos0].Type = TypeName[Blank Object]132end if133end if134ArrayPos0++135loop136137Transporter_Destroyed = true138end sub139140141// ========================142// Editor Subs143// ========================144145sub RSDKEdit146if Editor.ReturnVariable == true147switch Editor.VariableID148case EDIT_VAR_PROPVAL // Property Value149CheckResult = Object.PropertyValue150break151case 0 // CollisionPlane152CheckResult = Object.PropertyValue153CheckResult &= 1154break155end switch156else157switch Editor.VariableID158case EDIT_VAR_PROPVAL // Property Value159Object.PropertyValue = Editor.VariableValue160break161case 0 // CollisionPlane162Object.PropertyValue = Editor.VariableValue163Object.PropertyValue &= 1164break165end switch166end if167end sub168169170sub RSDKDraw171DrawSprite(0)172DrawSprite(1)173end sub174175176sub RSDKLoad177LoadSpriteSheet("Global/Items.gif")178SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body179SpriteFrame(-16, -40, 32, 16, 52, 239) // #1 - Post Head180181AddEditorVariable("CollisionPlane")182SetActiveVariable("CollisionPlane")183AddEnumVariable("Plane A", 0)184AddEnumVariable("Plane B", 1)185end sub186187188189190191