Path: blob/master/Sonic 2/Scripts/WFZ/TiltPlatformL.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Tilt Platform L Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011// States12private alias 0 : TILTPLATFORM_L_IDLE13private alias 1 : TILTPLATFORM_L_LASERACTIVE141516// ========================17// Function Declarations18// ========================1920reserve function TiltPlatformL_DebugDraw21reserve function TiltPlatformL_DebugSpawn222324// ========================25// Function Definitions26// ========================2728private function TiltPlatformL_DebugDraw29DrawSprite(0)30end function313233private function TiltPlatformL_DebugSpawn34CreateTempObject(TypeName[Tilt Platform L], 0, object.xpos, object.ypos)35object[tempObjectPos].direction = object.direction36object[tempObjectPos].inkEffect = INK_ALPHA37object[tempObjectPos].alpha = 0xC038end function394041// ========================42// Events43// ========================4445event ObjectUpdate46switch object.state47case TILTPLATFORM_L_IDLE48temp0 = oscillation49temp0 &= 0xF050if temp0 == object.propertyValue51object.priority = PRIORITY_ACTIVE52object.animationTimer = 053object.frame = 054PlaySfx(SfxName[Thruster], false)55object.state = TILTPLATFORM_L_LASERACTIVE56end if57break5859case 160object.animationTimer++6162object.frame = object.animationTimer63object.frame >>= 164object.frame &= 365if object.animationTimer >= 3266object.state = TILTPLATFORM_L_IDLE67end if68break6970end switch7172if object.state == TILTPLATFORM_L_IDLE73foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)74BoxCollisionTest(C_SOLID, object.entityPos, -24, -2, 24, 6, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)75next76else77foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)78BoxCollisionTest(C_TOUCH, object.entityPos, -24, -112, 24, 112, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)79if checkResult == true80CallFunction(Player_Hit)81end if82next83end if8485if object.outOfBounds == true86object.frame = 087object.state = TILTPLATFORM_L_IDLE88object.priority = PRIORITY_BOUNDS89end if90end event919293event ObjectDraw94DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)95if object.state == TILTPLATFORM_L_LASERACTIVE96DrawSpriteFX(4, FX_INK, object.xpos, object.ypos)97end if98end event99100101event ObjectStartup102LoadSpriteSheet("SCZ/Objects.gif")103SpriteFrame(-24, -4, 48, 8, 320, 99) // Flat (H) - #0104SpriteFrame(-16, -16, 32, 32, 320, 108) // Diagonal (Down Right) - #1105SpriteFrame(-4, -24, 8, 48, 311, 99) // Diagonal (Down Left) - #2106SpriteFrame(-16, -16, 32, 32, 353, 108) // Flat (V) - #3107SpriteFrame(-24, -112, 48, 256, 464, 0) // Laser - #4108109foreach (TypeName[Tilt Platform L], arrayPos0, ALL_ENTITIES)110object[arrayPos0].inkEffect = INK_ALPHA111object[arrayPos0].alpha = 0xC0112next113114SetTableValue(TypeName[Tilt Platform L], DebugMode_ObjCount, DebugMode_TypesTable)115SetTableValue(TiltPlatformL_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)116SetTableValue(TiltPlatformL_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)117DebugMode_ObjCount++118end event119120121// ========================122// Editor Events123// ========================124125event RSDKDraw126DrawSprite(0)127end event128129130event RSDKLoad131LoadSpriteSheet("SCZ/Objects.gif")132SpriteFrame(-24, -4, 48, 8, 320, 99)133134SetVariableAlias(ALIAS_VAR_PROPVAL, "intervalOffset")135end event136137138