Path: blob/main/Scripts/DAGarden/BGAnimation.txt
1319 views
//----------------Sonic CD BG Animation Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object[+7].Value2 : CharacterSpawn.Type78// States9#alias 0 : BGANIMATION_DAY10#alias 1 : BGANIMATION_DAY_TO_EVENING11#alias 2 : BGANIMATION_EVENING12#alias 3 : BGANIMATION_EVENING_TO_DUSK13#alias 4 : BGANIMATION_DUSK14#alias 5 : BGANIMATION_DUSK_TO_NIGHT15#alias 6 : BGANIMATION_NIGHT16#alias 7 : BGANIMATION_NIGHT_TO_MIDNIGHT17#alias 8 : BGANIMATION_MIDNIGHT18#alias 9 : BGANIMATION_MIDNIGHT_TO_MORNING19#alias 10 : BGANIMATION_MORNING20#alias 11 : BGANIMATION_MORNING_TO_DAY2122// Ink Effect23#alias 2 : INK_ALPHA242526sub ObjectDraw27if Object.DrawOrder == 328// Pretty straightforward process, when the day time is set, a timer increases.29// Once the timer reachs the limit, start transitioning, then repeat process.30switch Object.State31case BGANIMATION_DAY32DrawSprite(0)33DrawSprite(1)34Object.Timer++35if Object.Timer > 48036Object.Timer = 037Object.Alpha = 038Object.InkEffect = INK_ALPHA39Object.State++40end if41break4243case BGANIMATION_DAY_TO_EVENING44DrawSprite(0)45DrawSprite(1)46if Object.Alpha < 24847Object.Alpha += 448else49Object.Alpha = 25550Object.State++51end if52DrawSpriteFX(2, FX_INK, Object.XPos, Object.YPos)53DrawSpriteFX(3, FX_INK, Object.XPos, Object.YPos)54break5556case BGANIMATION_EVENING57DrawSprite(2)58DrawSprite(3)59Object.Timer++60if Object.Timer > 48061Object.Timer = 062Object.Alpha = 063Object.State++64end if65break6667case BGANIMATION_EVENING_TO_DUSK68DrawSprite(2)69DrawSprite(3)70if Object.Alpha < 24871Object.Alpha += 472else73Object.Alpha = 25574CharacterSpawn.Type = 175Object.State++76end if77DrawSpriteFX(4, FX_INK, Object.XPos, Object.YPos)78DrawSpriteFX(5, FX_INK, Object.XPos, Object.YPos)79break8081case BGANIMATION_DUSK82DrawSprite(4)83DrawSprite(5)84Object.Timer++85if Object.Timer > 48086Object.Timer = 087Object.Alpha = 088Object.State++89end if90break9192case BGANIMATION_DUSK_TO_NIGHT93DrawSprite(4)94DrawSprite(5)95if Object.Alpha < 24896Object.Alpha += 497else98Object.Alpha = 25599Object.State++100end if101DrawSpriteFX(6, FX_INK, Object.XPos, Object.YPos)102DrawSpriteFX(7, FX_INK, Object.XPos, Object.YPos)103break104105case BGANIMATION_NIGHT106DrawSprite(6)107DrawSprite(7)108Object.Timer++109if Object.Timer > 480110Object.Timer = 0111Object.Alpha = 0112Object.State++113end if114break115116case BGANIMATION_NIGHT_TO_MIDNIGHT117DrawSprite(6)118DrawSprite(7)119if Object.Alpha < 248120Object.Alpha += 4121else122Object.Alpha = 255123Object.State++124end if125DrawSpriteFX(8, FX_INK, Object.XPos, Object.YPos)126DrawSpriteFX(9, FX_INK, Object.XPos, Object.YPos)127break128129case BGANIMATION_MIDNIGHT130DrawSprite(8)131DrawSprite(9)132Object.Timer++133if Object.Timer > 512134Object.Timer = 0135Object.Alpha = 0136CharacterSpawn.Type = 0137Object.State++138end if139break140141case BGANIMATION_MIDNIGHT_TO_MORNING142DrawSprite(8)143DrawSprite(9)144if Object.Alpha < 248145Object.Alpha += 2146else147Object.Alpha = 255148Object.State++149end if150DrawSpriteFX(10, FX_INK, Object.XPos, Object.YPos)151DrawSpriteFX(11, FX_INK, Object.XPos, Object.YPos)152break153154case BGANIMATION_MORNING155DrawSprite(10)156DrawSprite(11)157Object.Timer++158if Object.Timer > 480159Object.Timer = 0160Object.Alpha = 0161Object.State++162end if163break164165case BGANIMATION_MORNING_TO_DAY166DrawSprite(10)167DrawSprite(11)168if Object.Alpha < 248169Object.Alpha += 4170else171Object.Alpha = 255172Object.State = BGANIMATION_DAY173end if174DrawSpriteFX(0, FX_INK, Object.XPos, Object.YPos)175DrawSpriteFX(1, FX_INK, Object.XPos, Object.YPos)176break177178end switch179SetDrawListEntityRef(Object.EntityNo, 4, Screen[4].DrawListSize)180Screen[4].DrawListSize++181Object.DrawOrder = 4182else183//Draw borders184DrawRect(0, 0, Screen.XSize, 32, 0, 0, 0, 255)185DrawRect(0, 208, Screen.XSize, 32, 0, 0, 0, 255)186Object.DrawOrder = 3187end if188end sub189190191sub ObjectStartup192LoadSpriteSheet("DAGarden/Objects.gif")193194SpriteFrame(0, 0, 256, 192, 0, 0) // #0 - Sky, Day Half 1195SpriteFrame(256, 0, 256, 192, 0, 0) // #1 - Sky, Day Half 2196SpriteFrame(0, 0, 256, 192, 256, 0) // #2 - Sky, Evening Half 1197SpriteFrame(256, 0, 256, 192, 256, 0) // #3 - Sky, Evening Half 2198SpriteFrame(0, 0, 256, 192, 0, 192) // #4 - Sky, Dusk Half 1199SpriteFrame(256, 0, 256, 192, 0, 192) // #5 - Sky, Dusk Half 2200SpriteFrame(0, 0, 256, 192, 256, 192) // #6 - Sky, Night Half 1201SpriteFrame(256, 0, 256, 192, 256, 192) // #7 - Sky, Night Half 2202SpriteFrame(0, 0, 256, 192, 0, 384) // #8 - Sky, Midnight Half 1203SpriteFrame(256, 0, 256, 192, 0, 384) // #9 - Sky, Midnight Half 2204SpriteFrame(0, 0, 256, 192, 256, 384) // #10 - Sky, Morning Half 1205SpriteFrame(256, 0, 256, 192, 256, 384) // #11 - Sky, Morning Half 2206207Object[31].Type = TypeName[BG Animation]208Object[31].XPos = 0209Object[31].YPos = 0x180000210end sub211212213// ========================214// Editor Subs215// ========================216217sub RSDKDraw218DrawSprite(0)219DrawSprite(1)220end sub221222223sub RSDKLoad224LoadSpriteSheet("DAGarden/Objects.gif")225SpriteFrame(0, 0, 256, 192, 0, 0) // #0 - Sky, Day Half 1226SpriteFrame(256, 0, 256, 192, 0, 0) // #1 - Sky, Day Half 2227228SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")229end sub230231232