Path: blob/master/Sonic 1/Scripts/LZ/Gargoyle.txt
1481 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Gargoyle Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.timer12private alias object.value1 : object.interval131415// ========================16// Function Declarations17// ========================1819reserve function Gargoyle_DebugDraw20reserve function Gargoyle_DebugSpawn212223// ========================24// Function Definitions25// ========================2627private function Gargoyle_DebugDraw28DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)29end function303132private function Gargoyle_DebugSpawn33CreateTempObject(TypeName[Gargoyle], 0, object.xpos, object.ypos)34object[tempObjectPos].direction = object.direction35object[tempObjectPos].interval = 6036object[tempObjectPos].timer = 6037end function383940// ========================41// Events42// ========================4344event ObjectUpdate45temp0 = object.ixpos46temp0 -= camera[0].xpos47Abs(temp0)48if temp0 < screen.xcenter49temp0 = object.iypos50temp0 -= camera[0].ypos51Abs(temp0)52if temp0 < screen.ycenter5354object.timer--55if object.timer <= 056PlaySfx(SfxName[Small Fireball], false)57CreateTempObject(TypeName[Gargoyle Shot], 0, object.xpos, object.ypos)58object[tempObjectPos].drawOrder = 259if object.direction == FLIP_NONE60object[tempObjectPos].xvel = -0x2000061else62object[tempObjectPos].xvel = 0x2000063end if64object[tempObjectPos].ypos += 0x8000065object[tempObjectPos].direction = object.direction66object.timer = object.interval67end if68end if69end if70end event717273event ObjectDraw74DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)75end event767778event ObjectStartup79LoadSpriteSheet("LZ/Objects.gif")80SpriteFrame(-16, -15, 32, 31, 93, 128)8182foreach (TypeName[Gargoyle], arrayPos0, ALL_ENTITIES)83object[arrayPos0].interval = object[arrayPos0].propertyValue84object[arrayPos0].interval++85object[arrayPos0].interval *= 3086object[arrayPos0].timer = object[arrayPos0].interval87next8889SetTableValue(TypeName[Gargoyle], DebugMode_ObjCount, DebugMode_TypesTable)90SetTableValue(Gargoyle_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)91SetTableValue(Gargoyle_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)92DebugMode_ObjCount++93end event949596// ========================97// Editor Events98// ========================99100event RSDKEdit101if editor.returnVariable == true102switch editor.variableID103case EDIT_VAR_PROPVAL // property value104checkResult = object.propertyValue105break106107case 0 // interval108checkResult = object.propertyValue109break110111end switch112else113switch editor.variableID114case EDIT_VAR_PROPVAL // property value115object.propertyValue = editor.variableValue116break117118case 0 // interval119object.propertyValue = editor.variableValue120break121122end switch123end if124end event125126127event RSDKDraw128DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)129end event130131132event RSDKLoad133LoadSpriteSheet("LZ/Objects.gif")134SpriteFrame(-16, -15, 32, 31, 93, 128)135136AddEditorVariable("interval")137SetActiveVariable("interval")138end event139140141