Path: blob/main/Scripts/R3/FlipoutBlock.txt
1319 views
//---------------Sonic CD Flipout Block Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.YOffSet67// Property Values8#alias 0 : FLIPOUTBLOCK_FLOOR9#alias 1 : FLIPOUTBLOCK_FLOOR_NO_ATTACH10#alias 2 : FLIPOUTBLOCK_ROOF11#alias 3 : FLIPOUTBLOCK_ROOF_NO_ATTACH121314sub ObjectPlayerInteraction15if Object.PropertyValue > 116Object.YPos += Object.YOffSet17else18Object.YPos -= Object.YOffSet19end if2021PlayerObjectCollision(C_BOX, -15, -16, 16, 16)22if Object.PropertyValue > 123Object.YPos -= Object.YOffSet24else25Object.YPos += Object.YOffSet26end if2728end sub293031sub ObjectDraw32TempValue0 = Object.XPos33TempValue0 += 0x48000034if Player.XPos > TempValue035if Object.YOffSet < 0x20000036Object.YOffSet += 0x8000037end if38end if3940TempValue0 = Object.XPos41TempValue0 -= 0x10000042if Player.XPos < TempValue043if Object.YOffSet > 044Object.YOffSet -= 0x8000045end if46end if4748TempValue1 = Object.PropertyValue49TempValue1 &= 150TempValue0 = Object.YPos51if Object.PropertyValue > 152TempValue0 += Object.YOffSet53if TempValue1 == 054Object[+1].YPos = Object.YPos55Object[+1].YPos += Object.YOffSet56end if5758else5960TempValue0 -= Object.YOffSet61if TempValue1 == 062Object[+1].YPos = Object.YPos63Object[+1].YPos -= Object.YOffSet64end if6566end if67DrawSpriteXY(Object.PropertyValue, Object.XPos, TempValue0)68end sub697071sub ObjectStartup72LoadSpriteSheet("R3/Objects.gif")7374SpriteFrame(-16, -16, 32, 32, 34, 1) // #0 - Flipout Block75SpriteFrame(-16, -16, 32, 32, 34, 1) // #1 - Flipout Block76SpriteFrame(-16, -16, 32, 32, 67, 1) // #2 - Flipout Block Upside-Down77SpriteFrame(-16, -16, 32, 32, 67, 1) // #3 - Flipout Block Upside-Down78end sub798081// ========================82// Editor Subs83// ========================8485sub RSDKEdit86if Editor.ReturnVariable == true87switch Editor.VariableID88case EDIT_VAR_PROPVAL // Property Value89case 0 // Type90CheckResult = Object.PropertyValue91CheckResult &= 392break93end switch94else95switch Editor.VariableID96case EDIT_VAR_PROPVAL // Property Value97case 0 // Type98Object.PropertyValue = Editor.VariableValue99Object.PropertyValue &= 3100break101end switch102end if103end sub104105sub RSDKDraw106DrawSprite(Object.PropertyValue)107if Object.PropertyValue < 2108TempValue0 = Object.YPos109TempValue0 -= 0x200000110else111TempValue0 = Object.YPos112TempValue0 += 0x200000113end if114115TempValue1 = Object.XPos116TempValue1 += 0x100000117118TempValue2 = Object.XPos119TempValue2 -= 0x100000120121TempValue3 = Object.YPos122TempValue3 -= 0x100000123124125if Editor.ShowGizmos == true126switch Object.PropertyValue127case 0128case 2129DrawArrow(TempValue1, Object.YPos, TempValue1, TempValue0, 255, 255, 255, 0)130DrawRectOutline(TempValue2, TempValue3, 0x40, 0x20, 255, 255, 255, 255)131break132case 1133case 3134DrawArrow(Object.XPos, Object.YPos, Object.XPos, TempValue0, 255, 255, 255, 0)135DrawRectOutline(TempValue2, TempValue3, 0x20, 0x20, 255, 255, 255, 255)136break137end switch138end if139end sub140141142sub RSDKLoad143LoadSpriteSheet("R3/Objects.gif")144145SpriteFrame(-16, -16, 32, 32, 34, 1) // #0 - Flipout Block146SpriteFrame(-16, -16, 32, 32, 34, 1) // #1 - Flipout Block147SpriteFrame(-16, -16, 32, 32, 67, 1) // #2 - Flipout Block Upside-Down148SpriteFrame(-16, -16, 32, 32, 67, 1) // #3 - Flipout Block Upside-Down149150AddEditorVariable("Type")151SetActiveVariable("Type")152AddEnumVariable("Normal", FLIPOUTBLOCK_FLOOR)153AddEnumVariable("Without Attachment", FLIPOUTBLOCK_FLOOR_NO_ATTACH)154AddEnumVariable("Upside-Down", FLIPOUTBLOCK_ROOF)155AddEnumVariable("Upside-Down w/o Attachment", FLIPOUTBLOCK_ROOF_NO_ATTACH)156end sub157158159