Path: blob/main/Scripts/R1/DPlatform.txt
1319 views
//--------------Sonic CD Diagonal Platform Script-------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value1 : Object.XOriginPos6#alias Object.Value2 : Object.XPlayerFloor7#alias Object.Value3 : Object.YOriginPos8#alias Object.Value4 : Object.YPlayerFloor9#alias Object.Value5 : Object.Angle10#alias Object.Value6 : Object.Amplitude1112// Property Values13// This property values only cover the starting position14#alias 0 : START_MOVING_LEFT_DOWN15#alias 1 : START_MOVING_RIGHT_DOWN16// On a map editor this would rather be (0)Left-Down, (1)Right-Down, (2)Left-Up and (3)Right-Up17// But here we only cover what's useful for the script itself181920sub ObjectMain21Object.Angle = Oscillation22Object.Angle <<= 123if Object.PropertyValue == START_MOVING_RIGHT_DOWN24Object.Angle += 25625end if2627Cos(Object.XPlayerFloor, Object.Angle)28Object.XPlayerFloor *= 0x180029Object.XPlayerFloor += Object.XPos30Object.XPlayerFloor &= 0xFFFF0000 // Truncate the value31Object.XPlayerFloor -= Object.XOriginPos3233Cos(Object.YPlayerFloor, Object.Angle)34FlipSign(Object.YPlayerFloor)35Object.YPlayerFloor *= Object.Amplitude36Object.YPlayerFloor += Object.YPos37Object.YPlayerFloor &= 0xFFFF0000 // Truncate the value38Object.YPlayerFloor -= Object.YOriginPos39end sub404142sub ObjectPlayerInteraction43TempValue0 = Object.XPos44Object.XPos = Object.XOriginPos4546TempValue1 = Object.YPos47Object.YPos = Object.YOriginPos4849PlayerObjectCollision(C_PLATFORM, -32, -9, 32, 12)50if CheckResult == true51Player.XPos += Object.XPlayerFloor52Player.YPos += Object.YPlayerFloor53end if5455Object.XPos = TempValue056Object.YPos = TempValue157end sub585960sub ObjectDraw61Cos(Object.XOriginPos, Object.Angle)62Object.XOriginPos *= 0x180063Object.XOriginPos += Object.XPos64Object.XOriginPos &= 0xFFFF00006566Cos(Object.YOriginPos, Object.Angle)67FlipSign(Object.YOriginPos)68Object.YOriginPos *= Object.Amplitude69Object.YOriginPos += Object.YPos70Object.YOriginPos &= 0xFFFF00007172DrawSpriteXY(0, Object.XOriginPos, Object.YOriginPos)73end sub747576sub ObjectStartup77LoadSpriteSheet("R1/Objects.gif")7879SpriteFrame(-32, -16, 64, 32, 101, 109) // #0 - Platform8081ArrayPos0 = 3282while ArrayPos0 < 105683if Object[ArrayPos0].Type == TypeName[Diag Platform]84if Object[ArrayPos0].PropertyValue > 185Object[ArrayPos0].Amplitude = -0x180086Object[ArrayPos0].PropertyValue -= 287else88Object[ArrayPos0].Amplitude = 0x180089end if90end if91ArrayPos0++92loop93end sub949596// ========================97// Editor Subs98// ========================99100sub RSDKDraw101DrawSprite(0)102end sub103104105sub RSDKLoad106LoadSpriteSheet("R1/Objects.gif")107108SpriteFrame(-32, -16, 64, 32, 101, 109) // #0 - Platform109110AddEditorVariable("startDir")111SetActiveVariable("startDir")112AddEnumVariable("Left, Down", 0)113AddEnumVariable("Right, Down", 1)114AddEnumVariable("Left, Up", 2)115AddEnumVariable("Right, Up", 3)116end sub117118119