Path: blob/main/Scripts/Global/FuturePost.txt
1319 views
//----------------Sonic CD Future Post Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object.Value1 : Object.CollisionPlane78// States9#alias 0 : FUTUREPOST_IDLE10#alias 1 : FUTUREPOST_ROTATE11#alias 2 : FUTUREPOST_USED1213// Game Mode Aliases14#alias 2 : MODE_TIMEATTACK1516// Priority17#alias 0 : PRIORITY_BOUNDS18#alias 1 : PRIORITY_ACTIVE1920// Warp Destination21#alias 2 : WARPDEST_FUTURE2223// Collision Plane24#alias 1 : COLLISION_PLANE_B2526// Global SFX27#alias 12 : SFX_G_FUTURE2829// Property Values30#alias 0 : DRAWING_PLANE_A31#alias 1 : DRAWING_PLANE_B323334sub ObjectPlayerInteraction35if Object.State == FUTUREPOST_IDLE36if Player.CollisionPlane == Object.CollisionPlane37PlayerObjectCollision(C_TOUCH, -8, -24, 8, 32)38if CheckResult == true39Warp.Destination = WARPDEST_FUTURE4041Object.State = FUTUREPOST_ROTATE42Object.Priority = PRIORITY_ACTIVE43Object.Frame = 144PlaySfx(SFX_G_FUTURE, false)4546#platform: Use_Haptics47HapticEffect(20, 0, 0, 0)48#endplatform49end if50end if51end if52end sub535455sub ObjectDraw56switch Object.State57case FUTUREPOST_IDLE58DrawSprite(0)59DrawSprite(1)60break6162case FUTUREPOST_ROTATE63DrawSprite(0)64Object.Timer++65if Object.Timer == 6466Object.Timer = 067Object.State = FUTUREPOST_USED68Object.Priority = PRIORITY_BOUNDS69end if70DrawSprite(Object.Frame)7172TempValue0 = Object.Timer73TempValue0 &= 174Object.Frame += TempValue075if Object.Frame > 876Object.Frame = 177end if78break7980case FUTUREPOST_USED81DrawSprite(0)82DrawSprite(5)83break84end switch85end sub868788sub ObjectStartup89LoadSpriteSheet("Global/Items.gif")9091SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body92// Future Post Head93SpriteFrame(-16, -40, 32, 16, 52, 239) // #1 - Post Head94SpriteFrame(-8, -40, 16, 16, 51, 183) // #2 - Post Head Flip 195SpriteFrame(-3, -40, 8, 16, 68, 183) // #3 - Post Head Flip 296SpriteFrame(-8, -40, 16, 16, 52, 200) // #4 - Post Head Flip 397SpriteFrame(-16, -40, 32, 16, 85, 239) // #5 - Post Head Backwards98SpriteFrame(-8, -40, 16, 16, 51, 183) // #6 - Post Head Flip 199SpriteFrame(-3, -40, 8, 16, 68, 183) // #7 - Post Head Flip 2100SpriteFrame(-8, -40, 16, 16, 52, 200) // #8 - Post Head Flip 3101102ArrayPos0 = 32103while ArrayPos0 < 1056104if Object[ArrayPos0].Type == TypeName[Future Post]105if Object[ArrayPos0].PropertyValue == DRAWING_PLANE_B106Object[ArrayPos0].DrawOrder = 1107Object[ArrayPos0].CollisionPlane = COLLISION_PLANE_B108end if109110if Options.GameMode == MODE_TIMEATTACK111Object[ArrayPos0].Type = TypeName[Blank Object]112end if113end if114ArrayPos0++115loop116end sub117118119// ========================120// Editor Subs121// ========================122123sub RSDKEdit124if Editor.ReturnVariable == true125switch Editor.VariableID126case EDIT_VAR_PROPVAL // Property Value127CheckResult = Object.PropertyValue128break129case 0 // CollisionPlane130CheckResult = Object.PropertyValue131CheckResult &= 1132break133end switch134else135switch Editor.VariableID136case EDIT_VAR_PROPVAL // Property Value137Object.PropertyValue = Editor.VariableValue138break139case 0 // CollisionPlane140Object.PropertyValue = Editor.VariableValue141Object.PropertyValue &= 1142break143end switch144end if145end sub146147148sub RSDKDraw149DrawSprite(0)150DrawSprite(1)151end sub152153154sub RSDKLoad155LoadSpriteSheet("Global/Items.gif")156SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body157SpriteFrame(-16, -40, 32, 16, 52, 239) // #1 - Post Head158159AddEditorVariable("CollisionPlane")160SetActiveVariable("CollisionPlane")161AddEnumVariable("Plane A", 0)162AddEnumVariable("Plane B", 1)163end sub164165166