Path: blob/master/Sonic 1/Scripts/Special/PinkBlock.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Pink Block Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.propertyValue : object.colorChangeOffset121314// ========================15// Function Declarations16// ========================1718reserve function PinkBlock_DebugDraw19reserve function PinkBlock_DebugSpawn202122// ========================23// Function Definitions24// ========================2526private function PinkBlock_DebugDraw27DrawSprite(0)28DrawSprite(1)29DrawSprite(2)30end function313233private function PinkBlock_DebugSpawn34temp5 = TypeName[Pink Block]35temp4 = 036CallFunction(DebugMode_PlaceBlock)37object[arrayPos0].drawOrder = 438object[arrayPos0].groupID = GROUP_BLOCKS39end function404142// ========================43// Events44// ========================4546event ObjectUpdate47foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)48CallFunction(SpecialSetup_PlayerBlockCol)49next50end event515253event ObjectDraw54if object.colorChangeOffset > 055temp0 = SpecialSetup_blockTimer56temp0 >>= 357temp1 = object.colorChangeOffset58temp1 -= temp059switch temp160case 161case 362object.type = TypeName[Yellow Block]63break6465default66break67end switch68end if6970CallFunction(SpecialSetup_GetBlockPos)71DrawSpriteFX(0, FX_ROTATE, temp0, temp1)72DrawSpriteXY(1, temp0, temp1)7374temp2 = object.rotation75temp2 >>= 376temp2 += 277DrawSpriteFX(temp2, FX_ROTATE, temp0, temp1)7879object.type = TypeName[Pink Block]80end event818283event ObjectStartup84LoadSpriteSheet("Special/Objects.gif")85SpriteFrame(-12, -12, 24, 24, 126, 276)86SpriteFrame(-10, -8, 20, 16, 151, 276)8788temp0 = 189temp1 = 20190while temp1 < 30091temp0 = 192while temp0 < 50093SpriteFrame(-12, -12, 24, 24, temp0, temp1)94temp0 += 2595loop96temp1 += 2597loop9899foreach (TypeName[Pink Block], arrayPos0, ALL_ENTITIES)100object[arrayPos0].groupID = GROUP_BLOCKS101next102103SetTableValue(TypeName[Pink Block], DebugMode_ObjCount, DebugMode_TypeTable)104SetTableValue(PinkBlock_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)105SetTableValue(PinkBlock_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)106DebugMode_ObjCount++107end event108109110// ========================111// Editor Events112// ========================113114event RSDKEdit115if editor.returnVariable == true116switch editor.variableID117case EDIT_VAR_PROPVAL // property value118checkResult = object.propertyValue119checkResult &= 7120break121122case 0 // colorChangeOffset123checkResult = object.propertyValue124checkResult &= 7125break126127end switch128else129switch editor.variableID130case EDIT_VAR_PROPVAL // property value131object.propertyValue = editor.variableValue132object.propertyValue &= 7133break134135case 0 // colorChangeOffset136object.propertyValue = editor.variableValue137object.propertyValue &= 7138break139140end switch141end if142end event143144145event RSDKDraw146DrawSprite(0)147DrawSprite(1)148DrawSprite(2)149end event150151152event RSDKLoad153LoadSpriteSheet("Special/Objects.gif")154SpriteFrame(-12, -12, 24, 24, 126, 276)155SpriteFrame(-10, -8, 20, 16, 151, 276)156SpriteFrame(-12, -12, 24, 24, 1, 201)157158AddEditorVariable("colorChangeOffset")159SetActiveVariable("colorChangeOffset")160AddEnumVariable("Frame 0", 0)161AddEnumVariable("Frame 1", 1)162AddEnumVariable("Frame 2", 2)163AddEnumVariable("Frame 3", 3)164AddEnumVariable("Frame 4", 4)165AddEnumVariable("Frame 5", 5)166AddEnumVariable("Frame 6", 6)167AddEnumVariable("Frame 7", 7)168end event169170171