Path: blob/master/Sonic 2/Scripts/CPZ/EggmanChemicalDropper.txt
1482 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Chemical Dropper Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.originPos.x12private alias object.value1 : object.originPos.y13private alias object.value2 : object.oscillationAngle14private alias object.value3 : object.timer15private alias object.value4 : object.boundsL16private alias object.value5 : object.boundsR17private alias object.value6 : object.machineAnim18private alias object.value7 : object.tubeAnimTimer19private alias object.value8 : object.dropperLength20private alias object.value9 : object.tubeFrame21private alias object.value10 : object.dropletNodeID22private alias object.value11 : object.dropperOffset23private alias object.value12 : object.dropperAnim24private alias object.value13 : object.dropperFrame25private alias object.value14 : object.dropletAnimTimer26private alias object.value15 : object.chemicalFrame27private alias object.value16 : object.dropletFrame28private alias object.value17 : object.hatchFrame29private alias object.value18 : object.nextDir3031// States32private alias 0 : CHEMICALDROPPER_MOVERIGHT33private alias 1 : CHEMICALDROPPER_GETCHEMICALS34private alias 2 : CHEMICALDROPPER_DROPCHEMICALS35private alias 3 : CHEMICALDROPPER_MOVELEFT36private alias 4 : CHEMICALDROPPER_DESTROYED37private alias 5 : CHEMICALDROPPER_DEBRISEXPLODE38private alias 6 : CHEMICALDROPPER_DEBRISDELAY39private alias 7 : CHEMICALDROPPER_DEBRIS4041// Machine Animations42private alias 0 : CHEMICALDROPPER_MANI_IDLE43private alias 1 : CHEMICALDROPPER_MANI_EXTEND44private alias 2 : CHEMICALDROPPER_MANI_FILLING45private alias 3 : CHEMICALDROPPER_MANI_RETRACT4647// Dropper Animations48private alias 0 : CHEMICALDROPPER_DANI_CLOSED49private alias 1 : CHEMICALDROPPER_DANI_FILLING50private alias 2 : CHEMICALDROPPER_DANI_WAIT51private alias 3 : CHEMICALDROPPER_DANI_EXTEND52private alias 4 : CHEMICALDROPPER_DANI_OPENHATCH53private alias 5 : CHEMICALDROPPER_DANI_RETRACT5455// Player Aliases56private alias object.xpos : player.xpos575859// ========================60// Function Declarations61// ========================6263reserve function ChemicalDropper_SpawnDebris64reserve function ChemicalDropper_Oscillate656667// ========================68// Tables69// ========================7071private table ChemicalDropper_tubeFrames722, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 273end table7475private table ChemicalDropper_dropletFrames7618, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 1077end table7879private table ChemicalDropper_dropperFrames8012, 31, 3381end table8283// Unused table84private table ChemicalDropper_hatchFrames8513, 18, 14, 16, 15, 1786end table878889// ========================90// Function Definitions91// ========================9293private function ChemicalDropper_SpawnDebris94CreateTempObject(TypeName[Chemical Dropper], 0, temp0, temp1)95object[tempObjectPos].state = CHEMICALDROPPER_DEBRISEXPLODE96object[tempObjectPos].direction = object.direction9798Rand(object[tempObjectPos].xvel, 8)99object[tempObjectPos].xvel -= 4100object[tempObjectPos].xvel <<= 16101object[tempObjectPos].yvel = -0x38000102103Rand(object[tempObjectPos].timer, 255)104object[tempObjectPos].timer += 30105object[tempObjectPos].timer &= 0x7F106end function107108109private function ChemicalDropper_Oscillate110object.ypos = object.originPos.y111Sin256(temp0, object.oscillationAngle)112temp0 <<= 10113object.ypos += temp0114object.oscillationAngle += 2115object.oscillationAngle &= 0xFF116117object[-1].xpos = object.xpos118object[-1].ypos = object.ypos119CheckGreater(player[0].xpos, object.xpos)120object.direction = checkResult121object[-1].direction = object.direction122end function123124125// ========================126// Events127// ========================128129event ObjectUpdate130switch object.state131case CHEMICALDROPPER_MOVERIGHT132if object.xpos == object.boundsR133if object.dropperAnim == CHEMICALDROPPER_DANI_CLOSED134object.machineAnim = CHEMICALDROPPER_MANI_EXTEND135object.tubeAnimTimer = 0136object.state++137end if138else139if object.xpos > object.boundsR140object.xpos -= 0x30000141if object.xpos <= object.boundsR142object.xpos = object.boundsR143end if144else145object.xpos += 0x30000146if object.xpos >= object.boundsR147object.xpos = object.boundsR148end if149end if150end if151CallFunction(ChemicalDropper_Oscillate)152break153154case CHEMICALDROPPER_GETCHEMICALS155CallFunction(ChemicalDropper_Oscillate)156break157158case CHEMICALDROPPER_DROPCHEMICALS159temp0 = object.xpos160if player[0].xpos <= object.xpos161temp0 -= 0x480000162else163temp0 += 0x480000164end if165temp0 &= 0xFFFF0000166167temp1 = player[0].xpos168temp1 &= 0xFFFF0000169170if temp1 == temp0171if object.dropperOffset == 0x580000172object.dropperAnim = CHEMICALDROPPER_DANI_OPENHATCH173end if174else175if player[0].xpos < temp0176temp0 = stage.newXBoundary1177temp0 -= 16178temp0 <<= 16179if object.xpos > temp0180object.xpos -= 0x10000181end if182else183temp0 = stage.newXBoundary2184temp0 += 16185temp0 <<= 16186if object.xpos < temp0187object.xpos += 0x10000188end if189end if190end if191192CallFunction(ChemicalDropper_Oscillate)193break194195case CHEMICALDROPPER_MOVELEFT196if object.xpos == object.boundsL197if object.dropperAnim == CHEMICALDROPPER_DANI_CLOSED198object.machineAnim = CHEMICALDROPPER_MANI_EXTEND199object.tubeAnimTimer = 0200object.state = CHEMICALDROPPER_GETCHEMICALS201end if202else203if object.xpos > object.boundsL204object.xpos -= 0x30000205if object.xpos <= object.boundsL206object.xpos = object.boundsL207end if208else209object.xpos += 0x30000210if object.xpos >= object.boundsL211object.xpos = object.boundsL212end if213end if214end if215CallFunction(ChemicalDropper_Oscillate)216break217218case CHEMICALDROPPER_DESTROYED219object.machineAnim = CHEMICALDROPPER_MANI_IDLE220object.dropperAnim = CHEMICALDROPPER_DANI_CLOSED221temp0 = object.xpos222if object.direction == FLIP_NONE223temp0 -= object.dropperOffset224else225temp0 += object.dropperOffset226end if227temp1 = object.ypos228temp1 -= 0x380000229CallFunction(ChemicalDropper_SpawnDebris)230object[tempObjectPos].frame = 35231temp1 += 0x80000232temp2 = object.dropperOffset233temp2 >>= 16234temp2 -= 16235temp2 /= 24236while temp2 >= 0237if object.direction == FLIP_NONE238temp0 += 0x180000239else240temp0 -= 0x180000241end if242CallFunction(ChemicalDropper_SpawnDebris)243object[tempObjectPos].frame = 36244temp2--245loop246temp0 = object.xpos247temp1 = object.ypos248249CallFunction(ChemicalDropper_SpawnDebris)250object[tempObjectPos].frame = 37251252CallFunction(ChemicalDropper_SpawnDebris)253object[tempObjectPos].frame = 38254255CallFunction(ChemicalDropper_SpawnDebris)256object[tempObjectPos].frame = 39257258if object.direction == FLIP_NONE259temp0 += 0x40000260else261temp0 -= 0x40000262end if263temp1 += 0x190000264temp2 = 0265while temp2 < object.dropperLength266CallFunction(ChemicalDropper_SpawnDebris)267object[tempObjectPos].frame = 1268temp1 += 0x80000269temp2++270loop271object.type = TypeName[Blank Object]272break273274case CHEMICALDROPPER_DEBRISEXPLODE275object.timer--276if object.timer <= 0277object.timer = 30278CreateTempObject(TypeName[Explosion], 0, object.xpos, object.ypos)279object[tempObjectPos].drawOrder = 5280PlaySfx(SfxName[Explosion 2], false)281object.state++282end if283break284285case CHEMICALDROPPER_DEBRISDELAY286object.timer--287if object.timer <= 0288object.state++289end if290break291292case CHEMICALDROPPER_DEBRIS293object.xpos += object.xvel294object.ypos += object.yvel295object.yvel += 0x3800296temp1 = object.ypos297temp1 >>= 16298temp1 -= camera[0].ypos299Abs(temp1)300temp1 -= 128301if temp1 >= screen.ycenter302object.type = TypeName[Blank Object]303end if304break305306end switch307308switch object.machineAnim309default310case CHEMICALDROPPER_MANI_IDLE311break312313case CHEMICALDROPPER_MANI_EXTEND314object.tubeFrame = 1315object.dropperLength++316if object.dropperLength == 8317object.machineAnim = CHEMICALDROPPER_MANI_FILLING318object.dropletNodeID = 8319object.tubeAnimTimer = 0320object.dropperAnim = CHEMICALDROPPER_DANI_FILLING321object.chemicalFrame = 18322object.dropletFrame = 4323end if324break325326case CHEMICALDROPPER_MANI_FILLING327object.tubeAnimTimer++328if object.tubeAnimTimer == 18329object.tubeAnimTimer = 0330object.dropletNodeID--331if object.dropletNodeID < 0332object.dropletNodeID = 9333end if334end if335GetTableValue(object.tubeFrame, object.tubeAnimTimer, ChemicalDropper_tubeFrames)336break337338case CHEMICALDROPPER_MANI_RETRACT339object.tubeFrame = 1340object.dropperLength--341if object.dropperLength == 0342object.machineAnim = CHEMICALDROPPER_MANI_IDLE343object.dropletNodeID = 8344object.tubeAnimTimer = 0345object.dropperAnim = CHEMICALDROPPER_DANI_EXTEND346object.state = CHEMICALDROPPER_DROPCHEMICALS347end if348break349350end switch351352switch object.dropperAnim353case CHEMICALDROPPER_DANI_CLOSED354object.dropperOffset = 0x100000355object.dropperFrame = 12356break357358case CHEMICALDROPPER_DANI_FILLING359object.dropletAnimTimer++360if object.dropletAnimTimer == 19361object.dropletAnimTimer = 0362object.chemicalFrame++363if object.chemicalFrame >= 30364object.chemicalFrame = 30365object.machineAnim = CHEMICALDROPPER_MANI_RETRACT366object.dropperAnim = CHEMICALDROPPER_DANI_WAIT367end if368end if369370GetTableValue(object.dropletFrame, object.dropletAnimTimer, ChemicalDropper_dropletFrames)371break372373case CHEMICALDROPPER_DANI_WAIT374break375376case CHEMICALDROPPER_DANI_EXTEND377object.dropperOffset += 0x10000378if object.dropperOffset >= 0x580000379object.dropperOffset = 0x580000380end if381temp0 = object.dropperOffset382temp0 >>= 16383temp0 -= 16384temp0 /= 24385GetTableValue(object.dropperFrame, temp0, ChemicalDropper_dropperFrames)386break387388case CHEMICALDROPPER_DANI_OPENHATCH389object.dropletAnimTimer++390switch object.dropletAnimTimer391case 8392object.hatchFrame = 1393break394395case 20396object.hatchFrame = 2397break398399case 32400temp0 = object.xpos401if object.direction == FLIP_NONE402temp0 -= object.dropperOffset403temp0 += 0xC0000404else405temp0 += object.dropperOffset406temp0 -= 0xC0000407end if408temp1 = object.ypos409temp1 -= 0x260000410CreateTempObject(TypeName[Chemical Drop], 0, temp0, temp1)411object[tempObjectPos].drawOrder = 2412break413414case 40415object.hatchFrame = 1416break417418case 48419object.hatchFrame = 0420object.dropperAnim = CHEMICALDROPPER_DANI_RETRACT421object.dropletAnimTimer = 0422if object.nextDir == 0423object.state = CHEMICALDROPPER_MOVELEFT424else425object.state = CHEMICALDROPPER_MOVERIGHT426end if427object.nextDir ^= 1428break429430end switch431break432433case CHEMICALDROPPER_DANI_RETRACT434object.dropperOffset -= 0x10000435if object.dropperOffset <= 0x100000436object.dropperOffset = 0x100000437object.dropperAnim = CHEMICALDROPPER_DANI_CLOSED438end if439440temp0 = object.dropperOffset441temp0 >>= 16442temp0 -= 16443temp0 /= 24444GetTableValue(object.dropperFrame, temp0, ChemicalDropper_dropperFrames)445break446447end switch448end event449450451event ObjectDraw452if object.state < CHEMICALDROPPER_DESTROYED453temp0 = object.xpos454if object.direction == FLIP_NONE455temp0 -= object.dropperOffset456else457temp0 += object.dropperOffset458end if459460temp1 = object.ypos461temp1 -= 0x380000462if object.dropperAnim == CHEMICALDROPPER_DANI_FILLING463DrawSpriteFX(object.dropletFrame, FX_FLIP, object.xpos, object.ypos)464DrawSpriteFX(object.chemicalFrame, FX_FLIP, temp0, temp1)465end if466467if object.dropperAnim == CHEMICALDROPPER_DANI_WAIT468DrawSpriteFX(object.chemicalFrame, FX_FLIP, temp0, temp1)469end if470471if object.dropperAnim == CHEMICALDROPPER_DANI_EXTEND472DrawSpriteFX(object.chemicalFrame, FX_FLIP, temp0, temp1)473end if474475if object.dropperAnim == CHEMICALDROPPER_DANI_OPENHATCH476if object.dropletAnimTimer < 32477DrawSpriteFX(object.chemicalFrame, FX_FLIP, temp0, temp1)478end if479end if480481temp0 = object.xpos482if object.direction == FLIP_NONE483temp0 -= object.dropperOffset484else485temp0 += object.dropperOffset486end if487temp1 = object.ypos488temp1 -= 0x380000489DrawSpriteFX(object.dropperFrame, FX_FLIP, temp0, temp1)490491switch object.hatchFrame492case 0493DrawSpriteFX(18, FX_FLIP, temp0, temp1)494DrawSpriteFX(13, FX_FLIP, temp0, temp1)495break496497case 1498DrawSpriteFX(16, FX_FLIP, temp0, temp1)499DrawSpriteFX(14, FX_FLIP, temp0, temp1)500break501502case 2503DrawSpriteFX(17, FX_FLIP, temp0, temp1)504DrawSpriteFX(15, FX_FLIP, temp0, temp1)505break506507end switch508509temp0 = object.xpos510if object.direction == FLIP_NONE511temp0 += 0x40000512else513temp0 -= 0x40000514end if515516temp1 = object.ypos517temp1 += 0x190000518temp2 = 0519while temp2 < object.dropperLength520if temp2 == object.dropletNodeID521DrawSpriteFX(object.tubeFrame, FX_FLIP, temp0, temp1)522else523DrawSpriteFX(1, FX_FLIP, temp0, temp1)524end if525temp1 += 0x80000526temp2++527loop528DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)529else530DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)531end if532end event533534535event ObjectStartup536CheckCurrentStageFolder("Zone02")537538if checkResult == true539LoadSpriteSheet("CPZ/Objects.gif")540541// Dropper Sprite Frames542SpriteFrame(-5, -68, 37, 52, 55, 74) // Chemical Machine - #0543SpriteFrame(-4, -4, 8, 8, 61, 147) // Chemical Tube (Normal) - #1544SpriteFrame(-5, -4, 10, 8, 59, 138) // Chemical Tube (Wide) - #2545SpriteFrame(-6, -4, 12, 8, 57, 129) // Chemical Tube (Widest) - #3546SpriteFrame(-5, -60, 8, 3, 93, 74) // Chemical Droplet 1 - #4547SpriteFrame(-5, -60, 8, 5, 93, 78) // Chemical Droplet 2 - #5548SpriteFrame(-4, -60, 6, 8, 93, 84) // Chemical Droplet 3 - #6549SpriteFrame(-4, -60, 6, 13, 93, 93) // Chemical Droplet 4 - #7550SpriteFrame(-5, -60, 8, 14, 93, 107) // Chemical Droplet 5 - #8551SpriteFrame(-4, -50, 8, 8, 93, 122) // Chemical Droplet 6 - #9552SpriteFrame(-4, -46, 8, 8, 93, 122) // Chemical Droplet 7 - #10553SpriteFrame(-4, -4, 8, 8, 93, 122) // Chemical Droplet 8 - #11554SpriteFrame(0, 0, 48, 24, 93, 131) // Chemical Dropper - #12555SpriteFrame(1, 24, 22, 2, 74, 189) // Dropper Hatch (Closed) - #13556SpriteFrame(6, 24, 16, 6, 74, 192) // Dropper Hatch (Opening 1) - #14557SpriteFrame(11, 24, 16, 8, 74, 199) // Dropper Hatch (Opening 2) - #15558SpriteFrame(-2, 24, 14, 6, 74, 208) // Dropper Hatch (Opening 3) - #16559SpriteFrame(-4, 24, 15, 8, 74, 215) // Dropper Hatch (Opened) - #17560SpriteFrame(0, 0, 0, 0, 0, 0) // Empty - #18561SpriteFrame(1, 22, 22, 2, 70, 131) // Chemicals (Empty) - #19562SpriteFrame(1, 20, 22, 4, 70, 131) // Chemicals (Filling 1) - #20563SpriteFrame(1, 18, 22, 6, 70, 131) // Chemicals (Filling 2) - #21564SpriteFrame(1, 16, 22, 8, 70, 131) // Chemicals (Filling 3) - #22565SpriteFrame(1, 14, 22, 10, 70, 131) // Chemicals (Filling 4) - #23566SpriteFrame(1, 12, 22, 12, 70, 131) // Chemicals (Filling 5) - #24567SpriteFrame(1, 10, 22, 14, 70, 131) // Chemicals (Filling 6) - #25568SpriteFrame(1, 8, 22, 16, 70, 131) // Chemicals (Filling 7) - #26569SpriteFrame(1, 6, 22, 18, 70, 131) // Chemicals (Filling 8) - #27570SpriteFrame(1, 4, 22, 20, 70, 131) // Chemicals (Filling 9) - #28571SpriteFrame(1, 2, 22, 22, 70, 131) // Chemicals (Filling 10) - #29572SpriteFrame(1, 0, 22, 24, 70, 131) // Chemicals (Filled) - #30573SpriteFrame(0, 0, 72, 24, 93, 131) // Chemical Dropper (Shorter) - #31574SpriteFrame(3, 3, 18, 29, 97, 189) // Chemical Drop 1 - #32575SpriteFrame(0, 0, 96, 24, 93, 131) // Chemical Dropper (Full) - #33576SpriteFrame(3, 3, 18, 29, 117, 189) // Chemical Drop 2 - #34577SpriteFrame(0, 0, 28, 24, 93, 131) // Chemical Dropper (Standalone) - #35578SpriteFrame(0, 2, 24, 4, 121, 141) // Dropper Debris - #36579SpriteFrame(-5, -68, 29, 12, 55, 74) // Dropper Machine Debris 1 - #37580SpriteFrame(8, -56, 24, 24, 68, 86) // Dropper Machine Debris 2 - #38581SpriteFrame(17, -32, 14, 16, 77, 110) // Dropper Machine Debris 3 - #39582583// Below three are unused, but their mappings exist anyway584SpriteFrame(-15, -32, 22, 24, 81, 156) // Chemical Drops on eggman - #40585SpriteFrame(-15, -24, 30, 16, 104, 156) // Chemical Splashes on eggman - #41586SpriteFrame(-15, -23, 31, 15, 104, 173) // Chemical on eggman - #42587else588LoadSpriteSheet("MBZ/Objects.gif")589590SpriteFrame(-5, -68, 37, 52, 34, 138) // Chemical Machine - #0591SpriteFrame(-4, -4, 8, 8, 38, 130) // Chemical Tube (Normal) - #1592SpriteFrame(-5, -4, 10, 8, 36, 121) // Chemical Tube (Wide) - #2593SpriteFrame(-6, -4, 12, 8, 34, 112) // Chemical Tube (Widest) - #3594SpriteFrame(-5, -60, 8, 3, 72, 138) // Chemical Droplet 1 - #4595SpriteFrame(-5, -60, 8, 5, 72, 142) // Chemical Droplet 2 - #5596SpriteFrame(-4, -60, 6, 8, 72, 148) // Chemical Droplet 3 - #6597SpriteFrame(-4, -60, 6, 13, 72, 157) // Chemical Droplet 4 - #7598SpriteFrame(-5, -60, 8, 14, 72, 171) // Chemical Droplet 5 - #8599SpriteFrame(-4, -50, 8, 8, 104, 155) // Chemical Droplet 6 - #9600SpriteFrame(-4, -46, 8, 8, 104, 155) // Chemical Droplet 7 - #10601SpriteFrame(-4, -4, 8, 8, 104, 155) // Chemical Droplet 8 - #11602SpriteFrame(0, 0, 48, 24, 70, 113) // Chemical Dropper - #12603SpriteFrame(1, 24, 22, 2, 81, 163) // Dropper Hatch (Closed) - #13604SpriteFrame(6, 24, 16, 6, 81, 166) // Dropper Hatch (Opening 1) - #14605SpriteFrame(11, 24, 16, 8, 81, 173) // Dropper Hatch (Opening 2) - #15606SpriteFrame(-2, 24, 14, 6, 81, 182) // Dropper Hatch (Opening 3) - #16607SpriteFrame(-4, 24, 15, 8, 113, 156) // Dropper Hatch (Opened) - #17608SpriteFrame(0, 0, 0, 0, 0, 0) // Dropper Hatch (Gone) - #18609SpriteFrame(1, 22, 22, 2, 47, 113) // Chemicals (Empty) - #19610SpriteFrame(1, 20, 22, 4, 47, 113) // Chemicals (Filling 1) - #20611SpriteFrame(1, 18, 22, 6, 47, 113) // Chemicals (Filling 2) - #21612SpriteFrame(1, 16, 22, 8, 47, 113) // Chemicals (Filling 3) - #22613SpriteFrame(1, 14, 22, 10, 47, 113) // Chemicals (Filling 4) - #23614SpriteFrame(1, 12, 22, 12, 47, 113) // Chemicals (Filling 5) - #24615SpriteFrame(1, 10, 22, 14, 47, 113) // Chemicals (Filling 6) - #25616SpriteFrame(1, 8, 22, 16, 47, 113) // Chemicals (Filling 7) - #26617SpriteFrame(1, 6, 22, 18, 47, 113) // Chemicals (Filling 8) - #27618SpriteFrame(1, 4, 22, 20, 47, 113) // Chemicals (Filling 9) - #28619SpriteFrame(1, 2, 22, 22, 47, 113) // Chemicals (Filling 10) - #29620SpriteFrame(1, 0, 22, 24, 47, 113) // Chemicals (Filled) - #30621SpriteFrame(0, 0, 72, 24, 70, 113) // Chemical Dropper (Shorter) - #31622SpriteFrame(3, 3, 18, 29, 1, 64) // Chemical Drop 1 - #32623SpriteFrame(0, 0, 96, 24, 70, 113) // Chemical Dropper (Full) - #33624SpriteFrame(3, 3, 18, 29, 21, 64) // Chemical Drop 2 - #34625SpriteFrame(0, 0, 28, 24, 70, 113) // Chemical Dropper (Standalone) - #35626SpriteFrame(0, 2, 24, 4, 98, 123) // Dropper Debris - #36627SpriteFrame(-5, -68, 29, 12, 34, 138) // Dropper Machine Debris 1 - #37628SpriteFrame(8, -56, 24, 24, 47, 150) // Dropper Machine Debris 2 - #38629SpriteFrame(17, -32, 14, 16, 56, 174) // Dropper Machine Debris 3 - #39630631// Below three are unused, but their mappings exist anyway632SpriteFrame(-15, -32, 22, 24, 81, 138) // Chemical Drops on eggman - #40633SpriteFrame(-15, -24, 30, 16, 104, 138) // Chemical Splashes on eggman - #41634SpriteFrame(-15, -23, 31, 15, 135, 138) // Chemical on eggman - #42635end if636end event637638639// ========================640// Editor Events641// ========================642643event RSDKDraw644DrawSprite(0)645end event646647648event RSDKLoad649CheckCurrentStageFolder("Zone02")650if checkResult == true651652// I went ahead and labelled all these frames in accordance with the leftover S2 3.0 files thinking they haven't been labelled yet,653// but after scrolling up a bit i see that names already exist654// that means my own labelling isn't needed655// but i worked so hard on these :(656// TODO: solve dilemma657658LoadSpriteSheet("CPZ/Objects.gif")659660// 0 - Main Dropper Frame661SpriteFrame(-5, -68, 37, 52, 55, 74)662663// 1-3 - Intake Tube Frames664SpriteFrame(-4, -4, 8, 8, 61, 147)665SpriteFrame(-5, -4, 10, 8, 59, 138)666SpriteFrame(-6, -4, 12, 8, 57, 129)667668// 4-11 - Small Chemical Drop Frames669SpriteFrame(-5, -60, 8, 3, 93, 74)670SpriteFrame(-5, -60, 8, 5, 93, 78)671SpriteFrame(-4, -60, 6, 8, 93, 84)672SpriteFrame(-4, -60, 6, 13, 93, 93)673SpriteFrame(-5, -60, 8, 14, 93, 107)674SpriteFrame(-4, -50, 8, 8, 93, 122)675SpriteFrame(-4, -46, 8, 8, 93, 122)676SpriteFrame(-4, -4, 8, 8, 93, 122)677678// 12 - Chemical Cup With Short Extending Arm Frame679SpriteFrame(0, 0, 48, 24, 93, 131)680681// 13-17 - Chemical Cup Drop Door Frames682SpriteFrame(1, 24, 22, 2, 74, 189)683SpriteFrame(6, 24, 16, 6, 74, 192)684SpriteFrame(11, 24, 16, 8, 74, 199)685SpriteFrame(-2, 24, 14, 6, 74, 208)686SpriteFrame(-4, 24, 15, 8, 74, 215)687688// 18 - Blank Frame689SpriteFrame(0, 0, 0, 0, 0, 0)690691// 19-30 - Chemical Fill Inside Cup Frames692SpriteFrame(1, 22, 22, 2, 70, 131)693SpriteFrame(1, 20, 22, 4, 70, 131)694SpriteFrame(1, 18, 22, 6, 70, 131)695SpriteFrame(1, 16, 22, 8, 70, 131)696SpriteFrame(1, 14, 22, 10, 70, 131)697SpriteFrame(1, 12, 22, 12, 70, 131)698SpriteFrame(1, 10, 22, 14, 70, 131)699SpriteFrame(1, 8, 22, 16, 70, 131)700SpriteFrame(1, 6, 22, 18, 70, 131)701SpriteFrame(1, 4, 22, 20, 70, 131)702SpriteFrame(1, 2, 22, 22, 70, 131)703SpriteFrame(1, 0, 22, 24, 70, 131)704705// 31 - Chemical Cup With Medium Extending Arm Frame706SpriteFrame(0, 0, 72, 24, 93, 131)707708// 32 - Large Chemical Drop 1 Frame709SpriteFrame(3, 3, 18, 29, 97, 189)710711// 33 - Chemical Cup With Large Extending Arm Frame712SpriteFrame(0, 0, 96, 24, 93, 131)713714// 34 - Large Chemical Drop 2 Frame715SpriteFrame(3, 3, 18, 29, 117, 189)716717// 35 - Separated Chemical Cup Frame718SpriteFrame(0, 0, 28, 24, 93, 131)719720// 36 - Separated Extending Arm Frame721SpriteFrame(0, 2, 24, 4, 121, 141)722723// 37 - Separated Chemical Dropper Nozzle Frame724SpriteFrame(-5, -68, 29, 12, 55, 74)725726// 38 - Separated Chemical Pump Frame727SpriteFrame(8, -56, 24, 24, 68, 86)728729// 39 - Separated Chemical Pump Base Frame730SpriteFrame(17, -32, 14, 16, 77, 110)731732// 40-42 - Unused Eggman Splashed With Chemicals Frames733SpriteFrame(-15, -32, 22, 24, 81, 156)734SpriteFrame(-15, -24, 30, 16, 104, 156)735SpriteFrame(-15, -23, 31, 15, 104, 173)736else737LoadSpriteSheet("MBZ/Objects.gif")738739SpriteFrame(-5, -68, 37, 52, 34, 138)740SpriteFrame(-4, -4, 8, 8, 38, 130)741SpriteFrame(-5, -4, 10, 8, 36, 121)742SpriteFrame(-6, -4, 12, 8, 34, 112)743SpriteFrame(-5, -60, 8, 3, 72, 138)744SpriteFrame(-5, -60, 8, 5, 72, 142)745SpriteFrame(-4, -60, 6, 8, 72, 148)746SpriteFrame(-4, -60, 6, 13, 72, 157)747SpriteFrame(-5, -60, 8, 14, 72, 171)748SpriteFrame(-4, -50, 8, 8, 104, 155)749SpriteFrame(-4, -46, 8, 8, 104, 155)750SpriteFrame(-4, -4, 8, 8, 104, 155)751SpriteFrame(0, 0, 48, 24, 70, 113)752SpriteFrame(1, 24, 22, 2, 81, 163)753SpriteFrame(6, 24, 16, 6, 81, 166)754SpriteFrame(11, 24, 16, 8, 81, 173)755SpriteFrame(-2, 24, 14, 6, 81, 182)756SpriteFrame(-4, 24, 15, 8, 113, 156)757SpriteFrame(0, 0, 0, 0, 0, 0)758SpriteFrame(1, 22, 22, 2, 47, 113)759SpriteFrame(1, 20, 22, 4, 47, 113)760SpriteFrame(1, 18, 22, 6, 47, 113)761SpriteFrame(1, 16, 22, 8, 47, 113)762SpriteFrame(1, 14, 22, 10, 47, 113)763SpriteFrame(1, 12, 22, 12, 47, 113)764SpriteFrame(1, 10, 22, 14, 47, 113)765SpriteFrame(1, 8, 22, 16, 47, 113)766SpriteFrame(1, 6, 22, 18, 47, 113)767SpriteFrame(1, 4, 22, 20, 47, 113)768SpriteFrame(1, 2, 22, 22, 47, 113)769SpriteFrame(1, 0, 22, 24, 47, 113)770SpriteFrame(0, 0, 72, 24, 70, 113)771SpriteFrame(3, 3, 18, 29, 1, 64)772SpriteFrame(0, 0, 96, 24, 70, 113)773SpriteFrame(3, 3, 18, 29, 21, 64)774SpriteFrame(0, 0, 28, 24, 70, 113)775SpriteFrame(0, 2, 24, 4, 98, 123)776SpriteFrame(-5, -68, 29, 12, 34, 138)777SpriteFrame(8, -56, 24, 24, 47, 150)778SpriteFrame(17, -32, 14, 16, 56, 174)779780SpriteFrame(-15, -32, 22, 24, 81, 138)781SpriteFrame(-15, -24, 30, 16, 104, 138)782SpriteFrame(-15, -23, 31, 15, 135, 138)783end if784end event785786787