Path: blob/main/Scripts/Global/PastPost.txt
1319 views
//-----------------Sonic CD Past 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 : PASTPOST_IDLE10#alias 1 : PASTPOST_ROTATE11#alias 2 : PASTPOST_USED1213// Game Mode Aliases14#alias 2 : MODE_TIMEATTACK1516// Priority17#alias 0 : PRIORITY_BOUNDS18#alias 1 : PRIORITY_ACTIVE1920// Warp Destination21#alias 1 : WARPDEST_PAST2223// Collision Plane24#alias 1 : COLLISION_PLANE_B2526// Global SFX27#alias 13 : SFX_G_PAST2829// Property Values30#alias 1 : DRAWING_PLANE_B313233sub ObjectPlayerInteraction34if Object.State == PASTPOST_IDLE35if Player.CollisionPlane == Object.CollisionPlane36PlayerObjectCollision(C_TOUCH, -8, -24, 8, 32)37if CheckResult == true38Warp.Destination = WARPDEST_PAST39Object.State = PASTPOST_ROTATE40Object.Priority = PRIORITY_ACTIVE41Object.Frame = 142PlaySfx(SFX_G_PAST, false)4344#platform: Use_Haptics45HapticEffect(20, 0, 0, 0)46#endplatform4748end if49end if50end if51end sub525354sub ObjectDraw55switch Object.State56case PASTPOST_IDLE57DrawSprite(0)58DrawSprite(1)59break6061case PASTPOST_ROTATE62DrawSprite(0)63Object.Timer++64if Object.Timer == 6465Object.Timer = 066Object.State = PASTPOST_USED67Object.Priority = PRIORITY_BOUNDS68end if69DrawSprite(Object.Frame)7071TempValue0 = Object.Timer72TempValue0 &= 173Object.Frame += TempValue074if Object.Frame > 875Object.Frame = 176end if77break7879case PASTPOST_USED80DrawSprite(0)81DrawSprite(5)82break83end switch84end sub858687sub ObjectStartup88LoadSpriteSheet("Global/Items.gif")8990SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body91// Past Head92SpriteFrame(-16, -40, 32, 16, 118, 239) // #2 - Post Head93SpriteFrame(-8, -40, 16, 16, 51, 183) // #3 - Post Head Flip 194SpriteFrame(-3, -40, 8, 16, 68, 183) // #4 - Post Head Flip 295SpriteFrame(-8, -40, 16, 16, 52, 200) // #5 - Post Head Flip 396SpriteFrame(-16, -40, 32, 16, 151, 239) // #6 - Post Head Backwards97SpriteFrame(-8, -40, 16, 16, 51, 183) // #7 - Post Head Flip 198SpriteFrame(-3, -40, 8, 16, 68, 183) // #8 - Post Head Flip 299SpriteFrame(-8, -40, 16, 16, 52, 200) // #9 - Post Head Flip 3100101ArrayPos0 = 32102while ArrayPos0 < 1056103if Object[ArrayPos0].Type == TypeName[Past Post]104if Object[ArrayPos0].PropertyValue == DRAWING_PLANE_B105Object[ArrayPos0].DrawOrder = 1106Object[ArrayPos0].CollisionPlane = COLLISION_PLANE_B107end if108109if Options.GameMode == MODE_TIMEATTACK110Object[ArrayPos0].Type = TypeName[Blank Object]111end if112end if113ArrayPos0++114loop115end sub116117118// ========================119// Editor Subs120// ========================121122sub RSDKEdit123if Editor.ReturnVariable == true124switch Editor.VariableID125case EDIT_VAR_PROPVAL // Property Value126CheckResult = Object.PropertyValue127break128case 0 // CollisionPlane129CheckResult = Object.PropertyValue130CheckResult &= 1131break132end switch133else134switch Editor.VariableID135case EDIT_VAR_PROPVAL // Property Value136Object.PropertyValue = Editor.VariableValue137break138case 0 // CollisionPlane139Object.PropertyValue = Editor.VariableValue140Object.PropertyValue &= 1141break142end switch143end if144end sub145146147sub RSDKDraw148DrawSprite(0)149DrawSprite(1)150end sub151152153sub RSDKLoad154LoadSpriteSheet("Global/Items.gif")155SpriteFrame(-8, -24, 16, 48, 35, 204) // #0 - Post Body156SpriteFrame(-16, -40, 32, 16, 118, 239) // #1 - Post Head157158159AddEditorVariable("CollisionPlane")160SetActiveVariable("CollisionPlane")161AddEnumVariable("Plane A", 0)162AddEnumVariable("Plane B", 1)163end sub164165166