Path: blob/master/Sonic 1/Scripts/Special/TailsObject.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Tails Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.xpos : player.xpos12private alias object.ypos : player.ypos13private alias object.xvel : player.xvel14private alias object.yvel : player.yvel15private alias object.direction : player.direction16private alias object.drawOrder : player.drawOrder17private alias object.visible : player.visible18private alias object.value8 : player.moveVelocity.x19private alias object.value9 : player.moveVelocity.y202122// ========================23// Events24// ========================2526event ObjectUpdate27arrayPos0 = player[0].drawOrder28screen[arrayPos0].drawListSize = 229GetDrawListEntityRef(temp0, arrayPos0, 0)30SetDrawListEntityRef(object.entityPos, arrayPos0, 0)31SetDrawListEntityRef(temp0, arrayPos0, 1)32end event333435event ObjectDraw36object.direction = player[0].direction37object.xvel = player[0].xvel38object.xvel += player[0].moveVelocity.x39object.yvel = player[0].yvel40object.yvel += player[0].moveVelocity.y4142temp0 = object.frame43temp0 >>= 244CheckEqual(object.xvel, 0)45temp1 = checkResult46CheckEqual(object.yvel, 0)47temp1 &= checkResult48if temp1 == false49ATan2(object.rotation, object.xvel, object.yvel)50object.rotation += 1651temp2 = 51252temp2 -= Player_stageRotation53temp2 >>= 154object.rotation += temp255object.rotation &= 25556object.rotation >>= 55758switch object.rotation59case 060case 861temp0 += 562object.rotation = 063break6465case 166temp0 += 867if object.direction == FACING_RIGHT68object.rotation = 6469else70object.rotation = 071end if72break7374case 275temp0 += 576object.rotation = 6477break7879case 380temp0 += 881if object.direction == FACING_RIGHT82object.rotation = 12883else84object.rotation = 6485end if86break8788case 489temp0 += 590object.rotation = 12891break9293case 594temp0 += 895if object.direction == FACING_RIGHT96object.rotation = 19297else98object.rotation = 12899end if100break101102case 6103temp0 += 5104object.rotation = 192105break106107case 7108temp0 += 8109if object.direction == FACING_RIGHT110object.rotation = 0111else112object.rotation = 192113end if114break115116end switch117118if object.direction == FACING_LEFT119object.rotation += 128120end if121else122temp0 += 5123object.rotation = 0124end if125126object.rotation <<= 1127if player[0].visible == true128DrawSpriteFX(temp0, FX_ROTATE, player[0].xpos, player[0].ypos)129end if130131object.frame++132object.frame %= 12133end event134135136event ObjectStartup137if stage.playerListPos == PLAYER_TAILS_A138LoadSpriteSheet("Players/Tails1.gif")139140// Place the Tails Object into the scene141object[1].type = TypeName[Tails Object]142object[1].drawOrder = 8 // In the official scripts this would be 7, but we're setting it to 8 as a workaround for an Origins bug143object[1].priority = PRIORITY_ACTIVE144145SpriteFrame(-22, -8, 16, 24, 82, 199)146SpriteFrame(-26, -8, 20, 24, 99, 199)147SpriteFrame(-26, -8, 20, 24, 120, 199)148SpriteFrame(-26, -8, 20, 24, 141, 199)149SpriteFrame(-26, -8, 20, 24, 162, 199)150SpriteFrame(-35, -8, 24, 16, 231, 166)151SpriteFrame(-35, -8, 24, 16, 231, 183)152SpriteFrame(-35, -8, 24, 16, 231, 200)153SpriteFrame(-25, 9, 20, 16, 235, 217)154SpriteFrame(-25, 9, 18, 16, 237, 234)155SpriteFrame(-25, 9, 20, 16, 216, 234)156SpriteFrame(-30, -6, 24, 16, 231, 166)157SpriteFrame(-30, -6, 24, 16, 231, 183)158SpriteFrame(-30, -6, 24, 16, 231, 200)159end if160end event161162163// ========================164// Editor Events165// ========================166167event RSDKDraw168DrawSprite(0)169end event170171172event RSDKLoad173LoadSpriteSheet("Players/Tails1.gif")174SpriteFrame(-22, -8, 16, 24, 82, 199)175176SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")177end event178179180