Path: blob/master/Sonic 1/Scripts/GHZ/SpikeLogs.txt
1483 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Spike Logs Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value1 : object.spikedLog121314// ========================15// Function Declarations16// ========================1718reserve function SpikeLogs_DebugDraw19reserve function SpikeLogs_DebugSpawn202122// ========================23// Function Definitions24// ========================2526private function SpikeLogs_DebugDraw27DrawSprite(0)28end function293031private function SpikeLogs_DebugSpawn32CreateTempObject(TypeName[Spike Logs], 0, object.xpos, object.ypos)33end function343536// ========================37// Events38// ========================3940event ObjectUpdate41object.spikedLog = GHZSetup_spikeLogsCounter42object.spikedLog >>= 143object.spikedLog &= 744foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)45checkResult = false46switch object.spikedLog47default48break4950case 051BoxCollisionTest(C_TOUCH, object.entityPos, -2, -16, 2, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)52break5354case 155BoxCollisionTest(C_TOUCH, object.entityPos, 14, -16, 18, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)56break5758case 259BoxCollisionTest(C_TOUCH, object.entityPos, 30, -16, 34, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)60break6162case 363BoxCollisionTest(C_TOUCH, object.entityPos, 46, -16, 50, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)64break6566case 467BoxCollisionTest(C_TOUCH, object.entityPos, 62, -16, 66, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)68break6970case 571BoxCollisionTest(C_TOUCH, object.entityPos, 78, -16, 82, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)72break7374case 675BoxCollisionTest(C_TOUCH, object.entityPos, 94, -16, 98, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)76break7778case 779BoxCollisionTest(C_TOUCH, object.entityPos, 110, -16, 114, 0, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)80break8182end switch8384if checkResult == true85CallFunction(Player_Hit)86end if87next88end event899091event ObjectDraw92temp0 = 1693temp0 -= GHZSetup_spikeLogsCounter94temp0 >>= 195temp1 = object.xpos96DrawSpriteXY(temp0, temp1, object.ypos)9798temp0++99temp1 += 0x100000100DrawSpriteXY(temp0, temp1, object.ypos)101102temp0++103temp1 += 0x100000104DrawSpriteXY(temp0, temp1, object.ypos)105106temp0++107temp1 += 0x100000108DrawSpriteXY(temp0, temp1, object.ypos)109110temp0++111temp1 += 0x100000112DrawSpriteXY(temp0, temp1, object.ypos)113114temp0++115temp1 += 0x100000116DrawSpriteXY(temp0, temp1, object.ypos)117118temp0++119temp1 += 0x100000120DrawSpriteXY(temp0, temp1, object.ypos)121122temp0++123temp1 += 0x100000124DrawSpriteXY(temp0, temp1, object.ypos)125end event126127128event ObjectStartup129LoadSpriteSheet("GHZ/Objects.gif")130131// Log Frames, with the latter half a duplicate of the first half for ease in drawing the Logs132SpriteFrame(-8, -8, 16, 16, 167, 1)133SpriteFrame(-8, -8, 16, 19, 115, 18)134SpriteFrame(-8, -8, 16, 24, 132, 18)135SpriteFrame(-8, -8, 16, 20, 149, 18)136SpriteFrame(-8, -8, 0, 0, 149, 18)137SpriteFrame(-8, -24, 16, 30, 166, 18)138SpriteFrame(-8, -24, 16, 30, 115, 38)139SpriteFrame(-8, -24, 16, 30, 132, 43)140141SpriteFrame(-8, -8, 16, 16, 167, 1)142SpriteFrame(-8, -8, 16, 19, 115, 18)143SpriteFrame(-8, -8, 16, 24, 132, 18)144SpriteFrame(-8, -8, 16, 20, 149, 18)145SpriteFrame(-8, -8, 0, 0, 149, 18)146SpriteFrame(-8, -24, 16, 30, 166, 18)147SpriteFrame(-8, -24, 16, 30, 115, 38)148SpriteFrame(-8, -24, 16, 30, 132, 43)149150SetTableValue(TypeName[Spike Logs], DebugMode_ObjCount, DebugMode_TypesTable)151SetTableValue(SpikeLogs_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)152SetTableValue(SpikeLogs_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)153DebugMode_ObjCount++154end event155156157// ========================158// Editor Events159// ========================160161event RSDKDraw162temp0 = 0163temp1 = object.xpos164165while temp0 < 8166DrawSpriteXY(temp0, temp1, object.ypos)167168temp1 += 0x100000169temp0++170loop171end event172173174event RSDKLoad175LoadSpriteSheet("GHZ/Objects.gif")176SpriteFrame(-8, -8, 16, 16, 167, 1)177SpriteFrame(-8, -8, 16, 19, 115, 18)178SpriteFrame(-8, -8, 16, 24, 132, 18)179SpriteFrame(-8, -8, 16, 20, 149, 18)180SpriteFrame(-8, -8, 0, 0, 149, 18)181SpriteFrame(-8, -24, 16, 30, 166, 18)182SpriteFrame(-8, -24, 16, 30, 115, 38)183SpriteFrame(-8, -24, 16, 30, 132, 43)184185SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")186end event187188189