Path: blob/master/Sonic 1/Scripts/Special/BlueBlock.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Blue 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 BlueBlock_DebugDraw19reserve function BlueBlock_DebugSpawn202122// ========================23// Function Definitions24// ========================2526private function BlueBlock_DebugDraw27DrawSprite(0)28DrawSprite(1)29DrawSprite(2)30end function313233private function BlueBlock_DebugSpawn34temp5 = TypeName[Blue 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[Blue Block]80end event818283event ObjectStartup84LoadSpriteSheet("Special/Objects.gif")8586// Sprite frames87SpriteFrame(-12, -12, 24, 24, 126, 76)88SpriteFrame(-10, -8, 20, 16, 151, 76)89temp0 = 190temp1 = 191while temp1 < 10092temp0 = 193while temp0 < 50094SpriteFrame(-12, -12, 24, 24, temp0, temp1)95temp0 += 2596loop97temp1 += 2598loop99100// Add it to the blocks group101foreach (TypeName[Blue Block], arrayPos0, ALL_ENTITIES)102object[arrayPos0].groupID = GROUP_BLOCKS103next104105// Add this object to the stage's debug mode list106SetTableValue(TypeName[Blue Block], DebugMode_ObjCount, DebugMode_TypeTable)107SetTableValue(BlueBlock_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)108SetTableValue(BlueBlock_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)109DebugMode_ObjCount++110end event111112113// ========================114// Editor Events115// ========================116117event RSDKEdit118if editor.returnVariable == true119switch editor.variableID120case EDIT_VAR_PROPVAL // property value121checkResult = object.propertyValue122checkResult &= 7123break124125case 0 // colorChangeOffset126checkResult = object.propertyValue127checkResult &= 7128break129130end switch131else132switch editor.variableID133case EDIT_VAR_PROPVAL // property value134object.propertyValue = editor.variableValue135object.propertyValue &= 7136break137138case 0 // colorChangeOffset139object.propertyValue = editor.variableValue140object.propertyValue &= 7141break142143end switch144end if145end event146147148event RSDKDraw149DrawSprite(0)150DrawSprite(1)151DrawSprite(2)152end event153154155event RSDKLoad156LoadSpriteSheet("Special/Objects.gif")157SpriteFrame(-12, -12, 24, 24, 126, 76)158SpriteFrame(-10, -8, 20, 16, 151, 76)159SpriteFrame(-12, -12, 24, 24, 1, 1)160161AddEditorVariable("colorChangeOffset")162SetActiveVariable("colorChangeOffset")163AddEnumVariable("Frame 0", 0)164AddEnumVariable("Frame 1", 1)165AddEnumVariable("Frame 2", 2)166AddEnumVariable("Frame 3", 3)167AddEnumVariable("Frame 4", 4)168AddEnumVariable("Frame 5", 5)169AddEnumVariable("Frame 6", 6)170AddEnumVariable("Frame 7", 7)171end event172173174