Path: blob/master/Sonic 1/Scripts/SYZ/VPlatform.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: V Platform Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value1 : object.drawPos.y12private alias object.value2 : object.collisionOffset.y1314// STates15private alias 0 : VPLATFORM_MOVE_STAGE16private alias 1 : VPLATFORM_MOVE_STAGE_REVERSE17private alias 2 : VPLATFORM_MOVE_GLOBAL18private alias 3 : VPLATFORM_MOVE_GLOBAL_REVERSE1920// Player Aliases21private alias object.ypos : player.ypos2223// ========================24// Function Declarations25// ========================2627reserve function VPlatform_DebugDraw28reserve function VPlatform_DebugSpawn2930private function VPlatform_DebugDraw31DrawSprite(0)32end function333435private function VPlatform_DebugSpawn36CreateTempObject(TypeName[V Platform], object.direction, object.xpos, object.ypos)37end function383940// ========================41// Events42// ========================4344event ObjectUpdate45switch object.propertyValue46case VPLATFORM_MOVE_STAGE47object.angle = SYZSetup_oscillation48object.angle *= 0x20049object.angle /= 35650break5152case VPLATFORM_MOVE_STAGE_REVERSE53object.angle = SYZSetup_oscillation54object.angle *= 0x20055object.angle /= 35656object.angle += 0x10057break5859case VPLATFORM_MOVE_GLOBAL60object.angle = oscillation61object.angle <<= 162break6364case VPLATFORM_MOVE_GLOBAL_REVERSE65object.angle = oscillation66object.angle <<= 167object.angle += 0x10068break6970end switch7172Sin(object.collisionOffset.y, object.angle)73object.collisionOffset.y *= 0x180074object.collisionOffset.y += object.ypos75object.collisionOffset.y &= 0xFFFF000076object.collisionOffset.y -= object.drawPos.y7778foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)79temp0 = object.ypos80object.ypos = object.drawPos.y81BoxCollisionTest(C_PLATFORM, object.entityPos, -32, -8, 32, 12, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)82if checkResult == true83player[currentPlayer].ypos += object.collisionOffset.y84end if85object.ypos = temp086next87end event888990event ObjectDraw91Sin(object.drawPos.y, object.angle)92object.drawPos.y *= 0x180093object.drawPos.y += object.ypos94object.drawPos.y &= 0xFFFF00009596DrawSpriteXY(0, object.xpos, object.drawPos.y)97end event9899100event ObjectStartup101LoadSpriteSheet("SYZ/Objects.gif")102SpriteFrame(-32, -10, 64, 32, 119, 1)103104SetTableValue(TypeName[V Platform], DebugMode_ObjCount, DebugMode_TypesTable)105SetTableValue(VPlatform_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)106SetTableValue(VPlatform_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)107DebugMode_ObjCount++108end event109110111// ========================112// Editor Events113// ========================114115event RSDKEdit116if editor.returnVariable == true117switch editor.variableID118case EDIT_VAR_PROPVAL // property value119checkResult = object.propertyValue120checkResult &= 3121break122123case 0 // moveType124checkResult = object.propertyValue125checkResult &= 3126break127128end switch129else130switch editor.variableID131case EDIT_VAR_PROPVAL // property value132object.propertyValue = editor.variableValue133object.propertyValue &= 3134break135136case 0 // moveType137object.propertyValue = editor.variableValue138object.propertyValue &= 3139break140141end switch142end if143end event144145146event RSDKDraw147DrawSprite(0)148end event149150151event RSDKLoad152LoadSpriteSheet("SYZ/Objects.gif")153SpriteFrame(-32, -10, 64, 32, 119, 1)154155AddEditorVariable("moveType")156SetActiveVariable("moveType")157AddEnumVariable("Use Stage Oscillation", VPLATFORM_MOVE_STAGE)158AddEnumVariable("Use Stage Oscillation (Reverse)", VPLATFORM_MOVE_STAGE_REVERSE)159AddEnumVariable("Use Global Oscillation", VPLATFORM_MOVE_GLOBAL)160AddEnumVariable("Use Global Oscillation (Reverse)", VPLATFORM_MOVE_GLOBAL_REVERSE)161end event162163164