Path: blob/master/Sonic 2/Scripts/LevelSelect/MenuDPad.txt
1479 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Menu DPad Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011// value0 is skipped over12private alias object.value1 : object.pressedLR131415// ========================16// Events17// ========================1819event ObjectUpdate20if MenuControl_optionsMenuOpen == false21temp0 = screen.xcenter22temp0 -= 5623CheckTouchRect(0, 96, temp0, screen.ysize)24if checkResult > -125arrayPos0 = checkResult26temp0 = touchscreen[arrayPos0].xpos27temp0 -= 6428temp1 = touchscreen[arrayPos0].ypos29temp1 -= 20230ATan2(temp2, temp0, temp1)31temp2 += 0x2032temp2 &= 0xFF33temp2 >>= 634switch temp235case 036keyDown[0].right = true37if object.pressedLR == false38keyPress[0].right |= keyDown[0].right39end if40object.pressedLR = keyDown[0].right41break4243case 144keyDown[0].down = true45break4647case 248keyDown[0].left = true49if object.pressedLR == false50keyPress[0].left |= keyDown[0].left51end if52object.pressedLR = keyDown[0].left53break5455case 356keyDown[0].up = true57break58end switch59else60object.pressedLR = false61end if62end if63end event646566event ObjectDraw67if MenuControl_optionsMenuOpen == false68if keyDown[0].up == true69DrawSpriteScreenXY(1, 64, 202)70else71DrawSpriteScreenXY(0, 64, 202)72end if7374if keyDown[0].down == true75DrawSpriteScreenXY(3, 64, 202)76else77DrawSpriteScreenXY(2, 64, 202)78end if7980if keyDown[0].left == true81DrawSpriteScreenXY(5, 64, 202)82else83DrawSpriteScreenXY(4, 64, 202)84end if8586if keyDown[0].right == true87DrawSpriteScreenXY(7, 64, 202)88else89DrawSpriteScreenXY(6, 64, 202)90end if91end if92end event939495event ObjectStartup96LoadSpriteSheet("LevelSelect/Icons.gif")9798// In initial verions this section used #platorm checks, but now regular checks are done instead99foreach (TypeName[Menu DPad], arrayPos0, ALL_ENTITIES)100switch engine.deviceType101case STANDARD102// If on a standard platform, then touch controls aren't needed103object[arrayPos0].type = TypeName[Blank Object]104break105106case MOBILE107object[arrayPos0].priority = PRIORITY_ACTIVE108break109110end switch111next112113SpriteFrame(-10, -30, 20, 20, 138, 1) // 0 - Blue up arrow114SpriteFrame(-10, -30, 20, 20, 138, 43) // 1 - Red up arrow115SpriteFrame(-10, 10, 20, 20, 159, 1) // 2 - Blue down arrow116SpriteFrame(-10, 10, 20, 20, 159, 43) // 3 - Red down arrow117SpriteFrame(-30, -10, 20, 20, 138, 22) // 4 - Blue left arrow118SpriteFrame(-30, -10, 20, 20, 138, 64) // 5 - Red left arrow119SpriteFrame(10, -10, 20, 20, 159, 22) // 6 - Blue right arrow120SpriteFrame(10, -10, 20, 20, 159, 64) // 7 - Red right arrow121end event122123124event RSDKDraw125DrawSprite(0)126DrawSprite(1)127DrawSprite(2)128DrawSprite(3)129end event130131132event RSDKLoad133LoadSpriteSheet("LevelSelect/Icons.gif")134SpriteFrame(-10, -30, 20, 20, 138, 1) // 0 - Blue up arrow135SpriteFrame(-10, 10, 20, 20, 159, 1) // 1 - Blue down arrow136SpriteFrame(-30, -10, 20, 20, 138, 22) // 2 - Blue left arrow137SpriteFrame(10, -10, 20, 20, 159, 22) // 3 - Blue right arrow138139SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")140end event141142