Path: blob/master/Sonic 2/Scripts/OOZ/OilFall.txt
1479 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Oil Fall Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.startPos.y12private alias object.value1 : object.endPos.y131415// ========================16// Events17// ========================1819event ObjectDraw20if object.startPos.y == object.endPos.y21DrawSprite(object.frame)22else23temp0 = object.startPos.y24temp0 += 0x10000025while temp0 < object.endPos.y26DrawSpriteXY(object.frame, object.xpos, temp0)27temp0 += 0x20000028loop29end if30end event313233event ObjectStartup34LoadSpriteSheet("OOZ/Objects.gif")35SpriteFrame(-2, -16, 6, 32, 182, 51)36SpriteFrame(-2, -16, 6, 32, 182, 148)37SpriteFrame(-2, -16, 6, 32, 182, 59)38SpriteFrame(-2, -16, 6, 32, 182, 156)39SpriteFrame(-8, -16, 16, 32, 189, 75)40SpriteFrame(-24, -16, 48, 32, 189, 107)4142foreach (TypeName[Oil Fall], arrayPos0, ALL_ENTITIES)43object[arrayPos0].startPos.y = object[arrayPos0].propertyValue44object[arrayPos0].startPos.y &= 745object[arrayPos0].startPos.y <<= 2046object[arrayPos0].endPos.y = object[arrayPos0].startPos.y47FlipSign(object[arrayPos0].startPos.y)48object[arrayPos0].startPos.y += object[arrayPos0].ypos49object[arrayPos0].endPos.y += object[arrayPos0].ypos5051if object[arrayPos0].propertyValue > 052object[arrayPos0].frame = object[arrayPos0].propertyValue53object[arrayPos0].frame >>= 354object[arrayPos0].frame += 255else56object[arrayPos0].frame = object[arrayPos0].propertyValue57object[arrayPos0].frame >>= 358object[arrayPos0].frame &= 1 // if it's 0... does this really matter?59end if6061if object[arrayPos0].frame != 462object[arrayPos0].drawOrder = 463end if64next65end event666768// ========================69// Editor Events70// ========================7172event RSDKEdit73if editor.returnVariable == true74switch editor.variableID75case EDIT_VAR_PROPVAL // property value76checkResult = object.propertyValue77break7879case 0 // size80checkResult = object.propertyValue81checkResult &= 782break8384case 1 // frameID85checkResult = object.propertyValue86checkResult >>= 387checkResult &= 388break8990end switch91else92switch editor.variableID93case EDIT_VAR_PROPVAL // property value94object.propertyValue = editor.variableValue95break9697case 0 // size98temp0 = 799Not(temp0)100object.propertyValue &= temp0101editor.variableValue &= 7102103object.propertyValue |= editor.variableValue104break105106case 1 // frameID107temp0 = 3108temp0 <<= 3109Not(temp0)110object.propertyValue &= temp0111editor.variableValue &= 3112editor.variableValue <<= 3113114object.propertyValue |= editor.variableValue115break116117end switch118end if119end event120121122event RSDKDraw123object.startPos.y = object.propertyValue124object.startPos.y &= 7125object.startPos.y <<= 20126object.endPos.y = object.startPos.y127FlipSign(object.startPos.y)128object.startPos.y += object.ypos129object.endPos.y += object.ypos130131if object.propertyValue > 0132object.frame = object.propertyValue133object.frame >>= 3134object.frame += 2135else136object.frame = object.propertyValue137object.frame >>= 3138object.frame &= 1139end if140141if object.startPos.y == object.endPos.y142DrawSprite(object.frame)143else144temp0 = object.startPos.y145temp0 += 0x100000146while temp0 < object.endPos.y147DrawSpriteXY(object.frame, object.xpos, temp0)148temp0 += 0x200000149loop150end if151end event152153154event RSDKLoad155LoadSpriteSheet("OOZ/Objects.gif")156SpriteFrame(-2, -16, 6, 32, 182, 51)157SpriteFrame(-2, -16, 6, 32, 182, 148)158SpriteFrame(-2, -16, 6, 32, 182, 59)159SpriteFrame(-2, -16, 6, 32, 182, 156)160SpriteFrame(-8, -16, 16, 32, 189, 75)161SpriteFrame(-24, -16, 48, 32, 189, 107)162163AddEditorVariable("size")164SetActiveVariable("size")165166AddEditorVariable("frameID")167SetActiveVariable("frameID")168end event169170171