Path: blob/main/Scripts/Mission/MissionPastPost.txt
1319 views
//-------------Sonic CD Mission Past 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 : MPASTPOST_IDLE11#alias 1 : MPASTPOST_ROTATE12#alias 2 : MPASTPOST_USED1314// Warp Destination15#alias 1 : WARPDEST_PAST1617// Collision Plane18#alias 1 : COLLISION_PLANE_B1920// Game Mode Aliases21#alias 2 : MODE_TIMEATTACK2223// Global SFX24#alias 13 : SFX_G_PAST2526// Priority27#alias 0 : PRIORITY_BOUNDS28#alias 1 : PRIORITY_ACTIVE2930// Property Values31#alias 0 : DRAWING_PLANE_A32#alias 1 : DRAWING_PLANE_B333435sub ObjectPlayerInteraction36switch Object.State37case MPASTPOST_IDLE38if Player.CollisionPlane == Object.CollisionPlane39PlayerObjectCollision(C_TOUCH, -8, -24, 8, 32)40if CheckResult == true41Warp.Destination = WARPDEST_PAST4243Object.State = MPASTPOST_ROTATE44Object.Priority = PRIORITY_ACTIVE45Object.Frame = 14647PlaySfx(SFX_G_PAST, false)48end if49end if50break5152case MPASTPOST_USED53if Object.OutOfBounds == true54TempValue0 = Stage.Minutes55TempValue0 *= 6056TempValue0 += Stage.Seconds5758if Object.Timer == 059Object.Timer = TempValue060Object.Timer += 1061else62if TempValue0 >= Object.Timer63// Reset the post64Object.State = MPASTPOST_IDLE65Object.Timer = 066Object.Priority = PRIORITY_BOUNDS67end if68end if69end if70break71end switch72end sub737475sub ObjectDraw76switch Object.State77case MPASTPOST_IDLE78DrawSprite(0)79DrawSprite(1)80break8182case MPASTPOST_ROTATE83DrawSprite(0)84Object.Timer++85if Object.Timer == 6486Object.Timer = 087Object.State = MPASTPOST_USED88end if89DrawSprite(Object.Frame)9091TempValue0 = Object.Timer92TempValue0 &= 19394Object.Frame += TempValue095if Object.Frame > 896Object.Frame = 197end if98break99100case MPASTPOST_USED101DrawSprite(0)102DrawSprite(5)103break104end switch105end sub106107108sub ObjectStartup109LoadSpriteSheet("Global/Items.gif")110111SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body112// Past Head113SpriteFrame(-16, -40, 32, 16, 118, 239) // #2 - Post Head114SpriteFrame(-8, -40, 16, 16, 51, 183) // #3 - Post Head Flip 1115SpriteFrame(-3, -40, 8, 16, 68, 183) // #4 - Post Head Flip 2116SpriteFrame(-8, -40, 16, 16, 52, 200) // #5 - Post Head Flip 3117SpriteFrame(-16, -40, 32, 16, 151, 239) // #6 - Post Head Backwards118SpriteFrame(-8, -40, 16, 16, 51, 183) // #7 - Post Head Flip 1119SpriteFrame(-3, -40, 8, 16, 68, 183) // #8 - Post Head Flip 2120SpriteFrame(-8, -40, 16, 16, 52, 200) // #9 - Post Head Flip 3121122ArrayPos0 = 32123while ArrayPos0 < 1056124if Object[ArrayPos0].Type == TypeName[Past 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++135loop136end sub137138139// ========================140// Editor Subs141// ========================142143sub RSDKEdit144if Editor.ReturnVariable == true145switch Editor.VariableID146case EDIT_VAR_PROPVAL // Property Value147CheckResult = Object.PropertyValue148break149case 0 // CollisionPlane150CheckResult = Object.PropertyValue151CheckResult &= 1152break153end switch154else155switch Editor.VariableID156case EDIT_VAR_PROPVAL // Property Value157Object.PropertyValue = Editor.VariableValue158break159case 0 // CollisionPlane160Object.PropertyValue = Editor.VariableValue161Object.PropertyValue &= 1162break163end switch164end if165end sub166167sub RSDKDraw168DrawSprite(0)169DrawSprite(1)170end sub171172sub RSDKLoad173LoadSpriteSheet("Global/Items.gif")174SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body175SpriteFrame(-16, -40, 32, 16, 118, 239) // #1 - Post Head176177AddEditorVariable("CollisionPlane")178SetActiveVariable("CollisionPlane")179AddEnumVariable("Plane A", 0)180AddEnumVariable("Plane B", 1)181end sub182183184