Path: blob/master/Sonic 1/Scripts/Global/TailsStuck.txt
1483 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Tails Stuck Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.width12private alias object.value1 : object.height13private alias object.value2 : object.timer1415// Player Aliases16private alias 0 : SLOT_PLAYER117private alias 1 : SLOT_PLAYER21819private alias object.type : player.type20private alias object.state : player.state21private alias object.xpos : player.xpos22private alias object.ypos : player.ypos23private alias object.xvel : player.xvel24private alias object.yvel : player.yvel25private alias object.speed : player.speed26private alias object.controlMode : player.controlMode27private alias object.interaction : player.interaction28private alias object.tileCollisions : player.tileCollisions29private alias object.value3 : player.drownTimer30private alias object.value4 : player.drownLevel313233// ========================34// Events35// ========================3637event ObjectUpdate38temp0 = object.width39FlipSign(temp0)40temp1 = object.height41FlipSign(temp1)42if player[SLOT_PLAYER2].type == TypeName[Player 2 Object]43BoxCollisionTest(C_TOUCH, object.entityPos, temp0, temp1, object.width, object.height, SLOT_PLAYER2, 4, 4, 4, 4)44if checkResult == true45object.timer++46if object.timer >= 24047player[SLOT_PLAYER2].state = Player2_State_FlyToPlayer48player[SLOT_PLAYER2].xpos = player[SLOT_PLAYER1].xpos49player[SLOT_PLAYER2].ypos = screen.yoffset50player[SLOT_PLAYER2].ypos -= 12851player[SLOT_PLAYER2].ypos <<= 1652player[SLOT_PLAYER2].xvel = 053player[SLOT_PLAYER2].yvel = 054player[SLOT_PLAYER2].speed = 055player[SLOT_PLAYER2].tileCollisions = false56player[SLOT_PLAYER2].interaction = false57player[SLOT_PLAYER2].controlMode = CONTROLMODE_P258player[SLOT_PLAYER2].drownTimer = 059player[SLOT_PLAYER2].drownLevel = 060end if61else62object.timer = 063end if64end if65end event666768event ObjectDraw69if player[SLOT_PLAYER1].type == TypeName[Debug Mode]70temp0 = object.xpos71temp1 = object.ypos72temp2 = object.propertyValue73temp4 = temp274temp4 &= 0xF075temp4 <<= 1576temp2 >>= 477temp2++78temp6 = temp279temp3 = object.propertyValue80temp3 &= 0x0F81temp5 = temp382temp5 <<= 1983temp3++84temp0 -= temp485temp4 = temp086temp1 -= temp587while temp3 > 088while temp2 > 089DrawSpriteXY(0, temp0, temp1)90temp0 += 0x10000091temp2--92loop93temp2 = temp694temp0 = temp495temp1 += 0x10000096temp3--97loop98end if99end event100101102event ObjectStartup103LoadSpriteSheet("Global/Display.gif")104105// Tails's life icon106SpriteFrame(-8, -7, 16, 14, 60, 108)107108foreach (TypeName[Tails Stuck], arrayPos0, ALL_ENTITIES)109object[arrayPos0].drawOrder = 5110111object[arrayPos0].width = object[arrayPos0].propertyValue112object[arrayPos0].width &= 0xF0113object[arrayPos0].width += 16114object[arrayPos0].width >>= 1115116object[arrayPos0].height = object[arrayPos0].propertyValue117object[arrayPos0].height &= 0x0F118object[arrayPos0].height++119object[arrayPos0].height <<= 3120next121end event122123124// ========================125// Editor Events126// ========================127128event RSDKEdit129if editor.returnVariable == true130switch editor.variableID131case EDIT_VAR_PROPVAL // property value132checkResult = object.propertyValue133break134135case 0 // width136checkResult = object.propertyValue137checkResult >>= 4138checkResult &= 0xF139break140141case 1 // height142checkResult = object.propertyValue143checkResult &= 0xF144break145146end switch147else148switch editor.variableID149case EDIT_VAR_PROPVAL // property value150object.propertyValue = editor.variableValue151break152153case 0 // width154temp0 = editor.variableValue155temp0 &= 0xF156temp0 <<= 4157158object.propertyValue &= 0x0F159object.propertyValue |= temp0160break161162case 1 // height163temp0 = editor.variableValue164temp0 &= 0xF165166object.propertyValue &= 0xF0167object.propertyValue |= temp0168break169170end switch171end if172end event173174175event RSDKDraw176temp0 = object.xpos177temp1 = object.ypos178temp2 = object.propertyValue179temp4 = temp2180temp4 &= 0xF0181temp4 <<= 15182temp2 >>= 4183temp2++184temp6 = temp2185temp3 = object.propertyValue186temp3 &= 0x0F187temp5 = temp3188temp5 <<= 19189temp3++190temp0 -= temp4191temp4 = temp0192temp1 -= temp5193while temp3 > 0194while temp2 > 0195DrawSpriteXY(0, temp0, temp1)196temp0 += 0x100000197temp2--198loop199temp2 = temp6200temp0 = temp4201temp1 += 0x100000202temp3--203loop204end event205206207event RSDKLoad208LoadSpriteSheet("Global/Display.gif")209SpriteFrame(-8, -7, 16, 14, 60, 108)210211AddEditorVariable("width")212AddEditorVariable("height")213end event214215216