Path: blob/master/Sonic 2/Scripts/2PVS/ZoneButton.txt
1478 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Zone Button Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.propertyValue : object.zoneID1213private alias object.value1 : object.zoneDetailsWidth14private alias object.value2 : object.disabled15private alias object.value3 : object.zoneIconFrame16private alias object.value4 : object.detailsFrameL17private alias object.value5 : object.detailsFrameM18private alias object.value6 : object.detailsFrameR19private alias object.value7 : object.zoneTextFrame20private alias object.value8 : object.buttonID2122private alias 0 : ZONEBUTTON_SETUP23private alias 1 : ZONEBUTTON_ACTIVE24private alias 2 : ZONEBUTTON_NONE2526// 2P VS Menu 3 Aliases27private alias 3 : 2PVSMENU3_SELECTING2829// StageMenu aliases30private alias object.value3 : stageMenu.selectedIcon31private alias object.value4 : stageMenu.zoneTimer3233private alias 4 : STAGEMENU_EXITZONES343536// ========================37// Events38// ========================3940event ObjectUpdate41switch object.state42case ZONEBUTTON_SETUP43object.zoneIconFrame = object.zoneID44object.zoneIconFrame += 745object.zoneTextFrame = object.zoneID46object.zoneTextFrame += 204748object.inkEffect = INK_ALPHA49object.zoneDetailsWidth = 6450object.buttonID = object.entityPos51object.buttonID -= 95253if object[1].type == TypeName[2P VS Menu 3]54if object[1].state == 2PVSMENU3_SELECTING55object.alpha = 0x10056else57object.alpha = 0x8058end if59GetBit(object.disabled, vs.stageMask, object.zoneID)60else61object.alpha = 0x1006263if object.zoneID == 13 // if we're HPZ zone icon button64if saveRAM[46] == false // and it's not unlocked65// we're disabled! sorry!66object.disabled = true67end if68end if69end if7071object.state = ZONEBUTTON_ACTIVE72break7374case ZONEBUTTON_ACTIVE75if options.physicalControls == false76CheckTouchRect(0, 0, screen.xsize, screen.ysize)77if checkResult > -178temp0 = screen.xcenter79temp0 += object.xpos80temp0 -= 3281temp1 = temp082temp1 += 6483temp2 = object.ypos84temp2 += 14885temp2 -= 2886temp3 = temp287temp3 += 5688CheckTouchRect(temp0, temp2, temp1, temp3)89if checkResult > -190stageMenu[1].selectedIcon = object.buttonID91end if92end if93end if94break9596case ZONEBUTTON_NONE97break9899end switch100end event101102103event ObjectDraw104if stageMenu[1].selectedIcon == object.buttonID105temp0 = stageMenu[1].zoneTimer106temp0 >>= 1107temp0 &= 1108if object[1].state < STAGEMENU_EXITZONES109temp0 = true110end if111else112temp0 = false113end if114115if temp0 == true116object.detailsFrameL = 3117object.detailsFrameM = 4118object.detailsFrameR = 5119temp3 = 200120else121object.detailsFrameL = 0122object.detailsFrameM = 1123object.detailsFrameR = 2124temp3 = 151125end if126127temp0 = object.zoneDetailsWidth128temp0 >>= 1129temp0 -= 4130FlipSign(temp0)131temp0 += object.xpos132temp0 += screen.xcenter133temp1 = object.ypos134temp1 += 148135DrawSpriteScreenFX(object.detailsFrameL, FX_INK, temp0, temp1)136137temp2 = object.zoneDetailsWidth138temp2 -= 8139EditFrame(object.detailsFrameM, 0, -24, temp2, 48, 5, temp3)140DrawSpriteScreenFX(object.detailsFrameM, FX_INK, temp0, temp1)141142temp0 += 7143if object.disabled == false144DrawSpriteScreenFX(6, FX_INK, temp0, temp1)145DrawSpriteScreenFX(object.zoneIconFrame, FX_INK, temp0, temp1)146else147DrawSpriteScreenFX(7, FX_INK, temp0, temp1)148end if149150temp0--151temp0 += object.zoneDetailsWidth152temp0 -= 14153DrawSpriteScreenFX(object.detailsFrameR, FX_INK, temp0, temp1)154if object.zoneDetailsWidth == 224155temp0 -= object.zoneDetailsWidth156temp0 += 60157DrawSpriteScreenFX(object.zoneTextFrame, FX_INK, temp0, temp1)158end if159end event160161162event ObjectStartup163LoadSpriteSheet("LevelSelect/Icons.gif")164SpriteFrame(-4, -24, 4, 48, 1, 151) // Details Border L Unhighlighted - #0165SpriteFrame(0, -24, 40, 48, 5, 151) // Details Border M Unhighlighted - #1166SpriteFrame(0, -24, 4, 48, 221, 151) // Details Border R Unhighlighted - #2167168SpriteFrame(-4, -24, 4, 48, 1, 200) // Details Border L Highlighted - #3169SpriteFrame(0, -24, 40, 48, 5, 200) // Details Border M Highlighted - #4170SpriteFrame(0, -24, 4, 48, 221, 200) // Details Border R Highlighted - #5171172SpriteFrame(0, -17, 42, 34, 164, 314) // Blank Icon - #6173SpriteFrame(0, -17, 42, 34, 54, 50) // Red X Icon - #7174175SpriteFrame(4, -13, 32, 24, 1, 85) // EHZ Icon - #8176SpriteFrame(4, -13, 32, 24, 34, 85) // CPZ Icon - #9177SpriteFrame(4, -13, 32, 24, 67, 85) // ARZ Icon - #10178SpriteFrame(4, -13, 32, 24, 100, 85) // CNZ Icon - #11179SpriteFrame(4, -13, 32, 24, 133, 85) // HTZ Icon - #12180SpriteFrame(4, -13, 32, 24, 166, 85) // MCZ Icon - #13181SpriteFrame(4, -13, 32, 24, 180, 1) // OOZ Icon - #14182SpriteFrame(4, -13, 32, 24, 213, 51) // Special Stage Icon - #15183SpriteFrame(4, -13, 32, 24, 213, 1) // MPZ Icon - #16184SpriteFrame(4, -13, 32, 24, 180, 26) // SCZ Icon - #17185SpriteFrame(4, -13, 32, 24, 213, 26) // WFZ Icon - #18186SpriteFrame(4, -13, 32, 24, 180, 51) // DEZ Icon - #19187SpriteFrame(4, -13, 32, 24, 199, 85) // HPZ Icon - #20188189SpriteFrame(4, -3, 136, 7, 103, 350) // EHZ Text - #21190SpriteFrame(4, -3, 152, 7, 103, 358) // CPZ Text - #22191SpriteFrame(4, -3, 136, 7, 103, 366) // ARZ Text - #23192SpriteFrame(4, -3, 136, 7, 103, 374) // CNZ Text - #24193SpriteFrame(4, -3, 104, 7, 103, 382) // HTZ Text - #25194SpriteFrame(4, -3, 128, 7, 103, 390) // MCZ Text - #26195SpriteFrame(4, -3, 112, 7, 103, 398) // OOZ Text - #27196SpriteFrame(4, -3, 104, 7, 103, 406) // Special Stage Text - #28197SpriteFrame(4, -3, 120, 7, 103, 470) // MPZ Text - #29198SpriteFrame(4, -3, 112, 7, 103, 478) // SCZ Text - #30199SpriteFrame(4, -3, 144, 7, 103, 486) // WFZ Text - #31200SpriteFrame(4, -3, 112, 7, 103, 494) // DEZ Text - #32201SpriteFrame(4, -3, 144, 7, 103, 502) // HPZ Text - #33202end event203204205// ========================206// Editor Events207// ========================208209event RSDKDraw210DrawSprite(0)211end event212213214event RSDKLoad215LoadSpriteSheet("LevelSelect/Icons.gif")216SpriteFrame(4, -13, 32, 24, 1, 85) // EHZ Icon217218// Although used by the object, it's not to be set from the editor219// Instead, it's set when this object is spawned by a 2PVSMenu3/Stage Menu object220SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")221end event222223224