Path: blob/main/Scripts/R4/HOBlocks2.txt
1319 views
//-------------Sonic CD Horizontal Blocks 2 Script------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value1 : Object.XDrawPos6#alias Object.Value2 : Object.XOffSet7#alias Object.Value3 : Object.Angle8#alias Object.Value4 : Object.AgainstBlock910// HUD alias11#alias Object[24].PropertyValue : HUD.CurrentTimePeriod1213// Time Periods14#alias 0 : TIME_PRESENT15#alias 1 : TIME_PAST16#alias 2 : TIME_GOOD_FUTURE17#alias 3 : TIME_BAD_FUTURE1819// Collision20#alias 1 : PLAYER_COL_FLOOR21#alias 2 : PLAYER_COL_LWALL22#alias 3 : PLAYER_COL_RWALL232425sub ObjectMain26Object.Angle = Oscillation27Object.Angle += Object.PropertyValue28Object.Angle <<= 12930Cos(Object.XOffSet, Object.Angle)31Object.XOffSet <<= 1232Object.XOffSet += Object.XPos33Object.XOffSet &= 0xFFFF0000 // Truncate the value34Object.XOffSet -= Object.XDrawPos35Object.AgainstBlock = false36end sub373839sub ObjectPlayerInteraction40TempValue0 = Object.XPos41Object.XPos = Object.XDrawPos4243PlayerObjectCollision(C_BOX, -48, -16, 48, 16)44switch CheckResult45case PLAYER_COL_FLOOR46Player.XPos += Object.XOffSet47break4849case PLAYER_COL_LWALL50if Object[-1].AgainstBlock == true51CallFunction(Player_Kill)52end if53break5455case PLAYER_COL_RWALL56Object.AgainstBlock = true57break58end switch5960Object.XPos = TempValue061end sub626364sub ObjectDraw65Cos(Object.XDrawPos, Object.Angle)66Object.XDrawPos <<= 1267Object.XDrawPos += Object.XPos68Object.XDrawPos &= 0xFFFF0000 // Truncate the value69DrawSpriteXY(0, Object.XDrawPos, Object.YPos)70DrawSpriteXY(1, Object.XDrawPos, Object.YPos)71DrawSpriteXY(2, Object.XDrawPos, Object.YPos)72end sub737475sub ObjectStartup76switch HUD.CurrentTimePeriod77case TIME_PRESENT78LoadSpriteSheet("R4/Objects.gif")79TempValue0 = 16380TempValue1 = 181TempValue2 = 19682break8384case TIME_PAST85LoadSpriteSheet("R4/Objects2.gif")86TempValue0 = 187TempValue1 = 15788TempValue2 = 3489break9091case TIME_GOOD_FUTURE92LoadSpriteSheet("R4/Objects2.gif")93TempValue0 = 194TempValue1 = 19095TempValue2 = 3496break9798case TIME_BAD_FUTURE99LoadSpriteSheet("R4/Objects2.gif")100TempValue0 = 1101TempValue1 = 223102TempValue2 = 34103break104105end switch106107SpriteFrame(-48, -16, 32, 32, TempValue0, TempValue1)108SpriteFrame(-16, -16, 32, 32, TempValue0, TempValue1)109SpriteFrame(16, -16, 32, 32, TempValue0, TempValue1)110end sub111112113// ========================114// Editor Subs115// ========================116117sub RSDKDraw118TempValue2 = Object.PropertyValue119TempValue2 <<= 1120121122Cos(TempValue0, TempValue2)123TempValue0 <<= 12124TempValue0 += Object.XPos125TempValue0 &= 0xFFFF0000 // Truncate the value126DrawSpriteXY(0, TempValue0, Object.YPos)127DrawSpriteXY(1, TempValue0, Object.YPos)128DrawSpriteXY(2, TempValue0, Object.YPos)129end sub130131132sub RSDKLoad133CallFunction(EditorHelpers_FindTimePeriod)134switch CheckResult135case TIME_PRESENT136LoadSpriteSheet("R4/Objects.gif")137TempValue0 = 163138TempValue1 = 1139TempValue2 = 196140break141142case TIME_PAST143LoadSpriteSheet("R4/Objects2.gif")144TempValue0 = 1145TempValue1 = 157146TempValue2 = 34147break148149case TIME_GOOD_FUTURE150LoadSpriteSheet("R4/Objects2.gif")151TempValue0 = 1152TempValue1 = 190153TempValue2 = 34154break155156case TIME_BAD_FUTURE157LoadSpriteSheet("R4/Objects2.gif")158TempValue0 = 1159TempValue1 = 223160TempValue2 = 34161break162end switch163164// R4 Blocks165SpriteFrame(-48, -16, 32, 32, TempValue0, TempValue1)166SpriteFrame(-16, -16, 32, 32, TempValue0, TempValue1)167SpriteFrame(16, -16, 32, 32, TempValue0, TempValue1)168169SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")170end sub171172173