Path: blob/master/Sonic 2/Scripts/HPZ/Waterfall.txt
1479 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Waterfall Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value1 : object.size12private alias object.value2 : object.hasSplash131415// ========================16// Function Declarations17// ========================1819reserve function Waterfall_DebugDraw20reserve function Waterfall_DebugSpawn212223// ========================24// Function Definitions25// ========================2627private function Waterfall_DebugDraw28DrawSprite(7)29end function303132private function Waterfall_DebugSpawn33CreateTempObject(TypeName[Waterfall], 7, object.xpos, object.ypos)34object[tempObjectPos].drawOrder = 535object[tempObjectPos].inkEffect = INK_ALPHA36object[tempObjectPos].alpha = 0xA037end function383940// ========================41// Events42// ========================4344event ObjectUpdate45if object.propertyValue == 046object.size = stage.waterLevel47object.size -= object.iypos48object.size += 1649if object.size > 25650object.size = 25651end if52end if53end event545556event ObjectDraw57if object.propertyValue == 058EditFrame(0, -16, -16, 32, object.size, 223, 0)59end if6061DrawSpriteFX(object.frame, FX_INK, object.xpos, object.ypos)62if object.hasSplash == true63temp0 = object.size64temp0 <<= 1665temp0 += object.ypos66DrawSpriteXY(16, object.xpos, temp0)67end if68end event697071event ObjectStartup72LoadSpriteSheet("HPZ/Objects.gif")73SpriteFrame(-16, -16, 32, 16, 223, 0)74SpriteFrame(-16, -16, 32, 16, 223, 0)75SpriteFrame(-16, -16, 32, 32, 223, 0)76SpriteFrame(-16, -16, 32, 48, 223, 0)77SpriteFrame(-16, -16, 32, 64, 223, 0)78SpriteFrame(-16, -16, 32, 80, 223, 0)79SpriteFrame(-16, -16, 32, 96, 223, 0)80SpriteFrame(-16, -16, 32, 112, 223, 0)81SpriteFrame(-16, -16, 32, 16, 223, 32)82SpriteFrame(-16, -16, 32, 16, 223, 32)83SpriteFrame(-16, -16, 32, 32, 223, 32)84SpriteFrame(-16, -16, 32, 48, 223, 32)85SpriteFrame(-16, -16, 32, 64, 223, 32)86SpriteFrame(-16, -16, 32, 80, 223, 32)87SpriteFrame(-16, -16, 32, 96, 223, 32)88SpriteFrame(-16, -16, 32, 112, 223, 32)89SpriteFrame(-24, -40, 48, 24, 174, 231) // Splash - #169091foreach (TypeName[Waterfall], arrayPos0, ALL_ENTITIES)92object[arrayPos0].drawOrder = 593object[arrayPos0].inkEffect = INK_ALPHA94object[arrayPos0].alpha = 0xA09596object[arrayPos0].size = object[arrayPos0].propertyValue97object[arrayPos0].size &= 798if object[arrayPos0].size == 099object[arrayPos0].size++100end if101object[arrayPos0].size <<= 4102103temp0 = object[arrayPos0].propertyValue104temp0 &= 7105106temp1 = object[arrayPos0].propertyValue107temp1 >>= 3108if temp1 < 2109object[arrayPos0].hasSplash = false110else111object[arrayPos0].hasSplash = true112end if113temp1 &= 1114temp1 <<= 3115temp1 += temp0116object[arrayPos0].frame = temp1117object[arrayPos0].propertyValue &= 7118next119120SetTableValue(TypeName[Waterfall], DebugMode_ObjCount, DebugMode_TypesTable)121SetTableValue(Waterfall_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)122SetTableValue(Waterfall_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)123DebugMode_ObjCount++124end event125126127// ========================128// Editor Events129// ========================130131event RSDKEdit132if editor.returnVariable == true133switch editor.variableID134case EDIT_VAR_PROPVAL // property value135checkResult = object.propertyValue136break137138case 0 // size139checkResult = object.propertyValue140checkResult &= 7141break142143case 1 // noRidge144GetBit(checkResult, object.propertyValue, 3)145break146147case 2 // hasSplash148GetBit(checkResult, object.propertyValue, 4)149break150151end switch152else153switch editor.variableID154case EDIT_VAR_PROPVAL // property value155object.propertyValue = editor.variableValue156break157158case 0 // size159temp0 = 7160Not(temp0)161object.propertyValue &= temp0162editor.variableValue &= 7163164object.propertyValue |= editor.variableValue165break166167case 1 // noRidge168CheckNotEqual(editor.variableValue, 0)169SetBit(object.propertyValue, 3, checkResult)170break171172case 2 // hasSplash173CheckNotEqual(editor.variableValue, 0)174SetBit(object.propertyValue, 4, checkResult)175break176177end switch178end if179end event180181182event RSDKDraw183temp0 = object.propertyValue184temp0 &= 7185186object.size = temp0187if object.size == 0188object.size++189end if190object.size <<= 4191192temp1 = object.propertyValue193temp1 >>= 3194if temp1 < 2195object.hasSplash = false196else197object.hasSplash = true198end if199temp1 &= 1200temp1 <<= 3201temp1 += temp0202DrawSprite(temp1)203204if object.hasSplash == true205temp0 = object.size206temp0 <<= 16207temp0 += object.ypos208DrawSpriteXY(16, object.xpos, temp0)209end if210end event211212213event RSDKLoad214LoadSpriteSheet("HPZ/Objects.gif")215SpriteFrame(-16, -16, 32, 16, 223, 0)216SpriteFrame(-16, -16, 32, 16, 223, 0)217SpriteFrame(-16, -16, 32, 32, 223, 0)218SpriteFrame(-16, -16, 32, 48, 223, 0)219SpriteFrame(-16, -16, 32, 64, 223, 0)220SpriteFrame(-16, -16, 32, 80, 223, 0)221SpriteFrame(-16, -16, 32, 96, 223, 0)222SpriteFrame(-16, -16, 32, 112, 223, 0)223SpriteFrame(-16, -16, 32, 16, 223, 32)224SpriteFrame(-16, -16, 32, 16, 223, 32)225SpriteFrame(-16, -16, 32, 32, 223, 32)226SpriteFrame(-16, -16, 32, 48, 223, 32)227SpriteFrame(-16, -16, 32, 64, 223, 32)228SpriteFrame(-16, -16, 32, 80, 223, 32)229SpriteFrame(-16, -16, 32, 96, 223, 32)230SpriteFrame(-16, -16, 32, 112, 223, 32)231SpriteFrame(-24, -40, 48, 24, 174, 231)232233AddEditorVariable("size")234SetActiveVariable("size")235AddEnumVariable("Dynamic (Use WaterLevel)", 0)236AddEnumVariable("16 pixels", 1)237AddEnumVariable("32 pixels", 2)238AddEnumVariable("48 pixels", 3)239AddEnumVariable("64 pixels", 4)240AddEnumVariable("80 pixels", 5)241AddEnumVariable("96 pixels", 6)242AddEnumVariable("112 pixels", 7)243244AddEditorVariable("noRidge")245SetActiveVariable("noRidge")246AddEnumVariable("false", false)247AddEnumVariable("true", true)248249AddEditorVariable("hasSplash")250SetActiveVariable("hasSplash")251AddEnumVariable("false", false)252AddEnumVariable("true", true)253end event254255256