Path: blob/main/Scripts/R1/SwingPlat.txt
1319 views
//---------------Sonic CD Swing Platform Script---------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Angle6#alias Object.Value1 : Object.XDrawPos7#alias Object.Value2 : Object.YDrawPos8#alias Object.Value3 : Object.XVelocity9#alias Object.Value4 : Object.YVelocity10#alias Object.Value5 : Object.SwingAngle1112#alias Object.PropertyValue : Object.ChainLength131415sub ObjectMain16Object.SwingAngle += 217Object.SwingAngle &= 5111819Sin(Object.Angle, Object.SwingAngle)20Object.Angle >>= 221Object.Angle += 1282223TempValue1 = Object.PropertyValue24TempValue1++25TempValue1 <<= 42627Cos(Object.XVelocity, Object.Angle)28Object.XVelocity *= TempValue129Object.XVelocity <<= 730Object.XVelocity += Object.XPos31Object.XVelocity &= 0xFFFF0000 // Truncate the value32Object.XVelocity -= Object.XDrawPos3334Sin(Object.YVelocity, Object.Angle)35Object.YVelocity *= TempValue136Object.YVelocity <<= 737Object.YVelocity += Object.YPos38Object.YVelocity &= 0xFFFF0000 // Truncate the value39Object.YVelocity -= Object.YDrawPos40end sub414243sub ObjectPlayerInteraction44TempValue0 = Object.XPos45TempValue1 = Object.YPos4647Object.XPos = Object.XDrawPos48Object.YPos = Object.YDrawPos4950PlayerObjectCollision(C_PLATFORM, -24, -6, 24, 8)51if CheckResult == true52Player.XPos += Object.XVelocity53Player.YPos += Object.YVelocity54end if5556Object.XPos = TempValue057Object.YPos = TempValue158end sub596061sub ObjectDraw62DrawSprite(0)63TempValue0 = 064TempValue1 = 1665while TempValue0 < Object.PropertyValue66Cos(TempValue2, Object.Angle)67TempValue2 *= TempValue168TempValue2 <<= 769TempValue2 += Object.XPos7071Sin(TempValue3, Object.Angle)72TempValue3 *= TempValue173TempValue3 <<= 774TempValue3 += Object.YPos7576DrawSpriteXY(1, TempValue2, TempValue3)7778TempValue0++7980TempValue1 += 1681loop8283Cos(Object.XDrawPos, Object.Angle)84Object.XDrawPos *= TempValue185Object.XDrawPos <<= 786Object.XDrawPos += Object.XPos87Object.XDrawPos &= 0xFFFF0000 // Truncate the value8889Sin(Object.YDrawPos, Object.Angle)90Object.YDrawPos *= TempValue191Object.YDrawPos <<= 792Object.YDrawPos += Object.YPos93Object.YDrawPos &= 0xFFFF0000 // Truncate the value9495DrawSpriteXY(2, Object.XDrawPos, Object.YDrawPos)96end sub979899sub ObjectStartup100LoadSpriteSheet("R1/Objects2.gif")101102SpriteFrame(-8, -8, 16, 16, 173, 230) // #0 - Connection Joint103SpriteFrame(-8, -8, 16, 16, 190, 230) // #1 - Chain104SpriteFrame(-24, -8, 48, 16, 207, 230) // #2 - Platform105end sub106107108// ========================109// Editor Subs110// ========================111112sub RSDKDraw113Object.Angle = 0114115DrawSprite(0)116117TempValue0 = 0118TempValue1 = 16119while TempValue0 < Object.PropertyValue120Cos(TempValue2, Object.Angle)121TempValue2 *= TempValue1122TempValue2 <<= 7123TempValue2 += Object.XPos124125Sin(TempValue3, Object.Angle)126TempValue3 *= TempValue1127TempValue3 <<= 7128TempValue3 += Object.YPos129130DrawSpriteXY(1, TempValue2, TempValue3)131132TempValue0++133134TempValue1 += 16135loop136137Cos(Object.XDrawPos, Object.Angle)138Object.XDrawPos *= TempValue1139Object.XDrawPos <<= 7140Object.XDrawPos += Object.XPos141Object.XDrawPos &= 0xFFFF0000 // Truncate the value142143Sin(Object.YDrawPos, Object.Angle)144Object.YDrawPos *= TempValue1145Object.YDrawPos <<= 7146Object.YDrawPos += Object.YPos147Object.YDrawPos &= 0xFFFF0000 // Truncate the value148149DrawSpriteXY(2, Object.XDrawPos, Object.YDrawPos)150end sub151152153sub RSDKLoad154LoadSpriteSheet("R1/Objects2.gif")155156SpriteFrame(-8, -8, 16, 16, 173, 230) // #0 - Connection Joint157SpriteFrame(-8, -8, 16, 16, 190, 230) // #1 - Chain158SpriteFrame(-24, -8, 48, 16, 207, 230) // #2 - Platform159160SetVariableAlias(ALIAS_VAR_PROPVAL, "length")161end sub162163164