Path: blob/master/Sonic 1/Scripts/SYZ/RotatingSpike.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Rotating Spike Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011// Player Aliases12private alias object.value17 : debugMode.currentSelection1314// ========================15// Function Declarations16// ========================1718reserve function RotatingSpike_DebugDraw19reserve function RotatingSpike_DebugSpawn202122// ========================23// Static Values24// ========================2526private value RotatingSpike_startDebugID = 0272829private function RotatingSpike_DebugDraw30DrawSprite(0)31end function323334private function RotatingSpike_DebugSpawn35CreateTempObject(TypeName[Rotating Spike], object.direction, object.xpos, object.ypos)36temp0 = debugMode[0].currentSelection37temp0 -= RotatingSpike_startDebugID3839object[tempObjectPos].speed = 140object[tempObjectPos].speed <<= temp041if object.direction == 142object[tempObjectPos].angle = 25643end if44end function454647// ========================48// Events49// ========================5051event ObjectUpdate52object.angle -= object.speed53if object.angle < 054object.angle += 51255end if5657temp0 = object.xpos58temp1 = object.ypos5960Cos(object.xpos, object.angle)61object.xpos *= 0x280062object.xpos += temp06364Sin(object.ypos, object.angle)65object.ypos *= 0x280066object.ypos += temp16768foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)69BoxCollisionTest(C_TOUCH, object.entityPos, -16, -16, 16, 16, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)70if checkResult == true71CallFunction(Player_Hit)72end if73next7475object.xpos = temp076object.ypos = temp177end event787980event ObjectDraw81Cos(temp0, object.angle)82temp0 *= 0x280083temp0 += object.xpos8485Sin(temp1, object.angle)86temp1 *= 0x280087temp1 += object.ypos8889DrawSpriteXY(0, temp0, temp1)90end event919293event ObjectStartup94LoadSpriteSheet("SYZ/Objects.gif")95SpriteFrame(-24, -24, 48, 48, 61, 178)9697foreach (TypeName[Rotating Spike], arrayPos0, ALL_ENTITIES)98switch object[arrayPos0].propertyValue99case 0100object[arrayPos0].speed = 4101break102103case 1104object[arrayPos0].speed = 4105object[arrayPos0].angle = 256106break107108case 2109object[arrayPos0].speed = 1110break111112case 3113object[arrayPos0].speed = 1114object[arrayPos0].angle = 256115break116117case 4118object[arrayPos0].speed = 2119break120121case 5122object[arrayPos0].speed = 2123object[arrayPos0].angle = 256124break125126end switch127next128129temp0 = 0130RotatingSpike_startDebugID = DebugMode_ObjCount131while temp0 < 3132SetTableValue(TypeName[Rotating Spike], DebugMode_ObjCount, DebugMode_TypesTable)133SetTableValue(RotatingSpike_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)134SetTableValue(RotatingSpike_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)135DebugMode_ObjCount++136temp0++137loop138end event139140141// ========================142// Editor Events143// ========================144145event RSDKEdit146if editor.returnVariable == true147switch editor.variableID148case EDIT_VAR_PROPVAL // property value149checkResult = object.propertyValue150break151152case 0 // type153checkResult = object.propertyValue154break155156end switch157else158switch editor.variableID159case EDIT_VAR_PROPVAL // property value160object.propertyValue = editor.variableValue161break162163case 0 // type164object.propertyValue = editor.variableValue165break166167end switch168end if169end event170171172event RSDKDraw173DrawSprite(0)174175if editor.showGizmos == true176editor.drawingOverlay = true177178object.inkEffect = INK_BLEND179switch object.propertyValue180default181case 0182case 2183case 4184object.angle = 0185break186187case 1188case 3189case 5190object.angle = 256191break192193end switch194195Cos(temp0, object.angle)196temp0 *= 0x2800197temp0 += object.xpos198199Sin(temp1, object.angle)200temp1 *= 0x2800201temp1 += object.ypos202203DrawSpriteFX(0, FX_INK, temp0, temp1)204205editor.drawingOverlay = false206end if207end event208209210event RSDKLoad211LoadSpriteSheet("SYZ/Objects.gif")212SpriteFrame(-24, -24, 48, 48, 61, 178)213214AddEditorVariable("type")215SetActiveVariable("type")216AddEnumVariable("Speed: Fast, Starting Side: Right", 0)217AddEnumVariable("Speed: Fast, Starting Side: Left", 1)218AddEnumVariable("Speed: Slow, Starting Side: Right", 2)219AddEnumVariable("Speed: Slow, Starting Side: Left", 3)220AddEnumVariable("Speed: Medium, Starting Side: Right", 4)221AddEnumVariable("Speed: Medium, Starting Side: Left", 5)222end event223224225