Path: blob/master/Sonic 2/Scripts/ARZ/EggmanTotemPole.txt
1487 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Eggman Totem Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value3 : object.timer12private alias object.value7 : object.rumbleTimer13private alias object.value8 : object.offset14private alias object.value9 : object.eyePos1516// States17private alias 0 : EGGMANTOTEMPOLE_RISING18private alias 1 : EGGMANTOTEMPOLE_IDLE19private alias 2 : EGGMANTOTEMPOLE_220private alias 3 : EGGMANTOTEMPOLE_LOWERING2122// Player Aliases23private alias object.ypos : player.ypos242526// ========================27// Events28// ========================2930event ObjectUpdate31switch object.state32case EGGMANTOTEMPOLE_RISING33object.ypos -= 0x100003435object.rumbleTimer++36object.rumbleTimer %= 4037if object.rumbleTimer == 838PlaySfx(SfxName[Rumble], false)39end if4041temp0 = object.rumbleTimer42temp0 &= 743if temp0 == 044screen.shakeX = 145end if4647temp0 = object.rumbleTimer48temp0 &= 349if temp0 == 050screen.shakeY = 251end if5253object.timer--54if object.timer == 055object.state++56end if57break5859case EGGMANTOTEMPOLE_IDLE60break6162case EGGMANTOTEMPOLE_263FlipSign(object.offset)64object.timer--65if object.timer == 066object.state = EGGMANTOTEMPOLE_IDLE67object.offset = 068end if69break7071case EGGMANTOTEMPOLE_LOWERING72object.ypos += 0x1000073object.rumbleTimer++74object.rumbleTimer %= 407576temp0 = object.rumbleTimer77temp0 &= 778if temp0 == 079screen.shakeX = 180end if8182temp0 = object.rumbleTimer83temp0 &= 384if temp0 == 085screen.shakeY = 286end if8788object.timer--89if object.timer == 090object.type = TypeName[Blank Object]91end if92break9394end switch9596foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)97if object.direction == FLIP_NONE98BoxCollisionTest(C_SOLID, object.entityPos, -16, -64, 24, 64, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)99if object.state == EGGMANTOTEMPOLE_LOWERING100if checkResult == COL_TOP101player[currentPlayer].ypos += 0x10000102end if103end if104else105BoxCollisionTest(C_SOLID, object.entityPos, -24, -64, 16, 64, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)106if object.state == EGGMANTOTEMPOLE_LOWERING107if checkResult == COL_TOP108player[currentPlayer].ypos += 0x10000109end if110end if111end if112next113end event114115116event ObjectDraw117temp0 = object.xpos118temp0 += object.offset119120temp1 = object.ypos121temp1 += object.offset122DrawSpriteFX(0, FX_FLIP, temp0, temp1)123124if object.state == EGGMANTOTEMPOLE_2125temp1 += object.eyePos126DrawSpriteFX(1, FX_FLIP, temp0, temp1)127end if128end event129130131event ObjectStartup132CheckCurrentStageFolder("Zone03")133if checkResult == true134LoadSpriteSheet("ARZ/Objects.gif")135136// Pillar Frame137SpriteFrame(0, -64, 32, 160, 223, 1)138139// Eye Frame140SpriteFrame(19, -13, 12, 8, 211, 24)141else142LoadSpriteSheet("MBZ/Objects.gif")143144// Pillar Frame145SpriteFrame(0, -64, 32, 160, 1, 95)146147// Eye Frame148SpriteFrame(19, -13, 12, 8, 328, 31)149end if150end event151152153// ========================154// Editor Events155// ========================156157event RSDKDraw158DrawSprite(0)159end event160161162event RSDKLoad163CheckCurrentStageFolder("Zone03")164if checkResult == true165LoadSpriteSheet("ARZ/Objects.gif")166SpriteFrame(0, -64, 32, 160, 223, 1) // Totem Pole167else168LoadSpriteSheet("MBZ/Objects.gif")169SpriteFrame(0, -64, 32, 160, 1, 95) // Bluer Totem Pole170end if171172SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")173end event174175176