Professional Documents
Culture Documents
R8 Bird
R8 Bird
// Aliases
#alias Object.Value0 : Object.Timer
#alias Object.Value1 : Object.Angle
// HUD alias
#alias Object[24].PropertyValue : HUD.CurrentTimePeriod
// States
#alias 0 : BIRD_FLYRIGHT
#alias 1 : BIRD_FLYLEFT
sub ObjectMain
switch Object.State
case BIRD_FLYRIGHT
if Object.Angle > 0
Object.Angle -= 2
else
// Apex reached, turn around
Object.State = BIRD_FLYLEFT
Object.Direction = FACING_LEFT
end if
break
case BIRD_FLYLEFT
if Object.Angle < 256
Object.Angle += 2
else
// Other side's apex reached, (re)turn once again
Object.State = BIRD_FLYRIGHT
Object.Direction = FACING_RIGHT
end if
break
end switch
end sub
sub ObjectDraw
if MetalSonic_Destroyed == true
Cos(TempValue0, Object.Angle)
TempValue0 <<= 14
TempValue0 += Object.XPos
Sin(TempValue1, Object.Angle)
TempValue1 <<= 14
TempValue1 += Object.YPos
if HUD.CurrentTimePeriod == TIME_GOOD_FUTURE
Cos(TempValue0, Object.Angle)
TempValue0 <<= 14
TempValue0 += Object.XPos
Sin(TempValue1, Object.Angle)
TempValue1 <<= 14
TempValue1 += Object.YPos
end if
end sub
sub ObjectStartup
LoadSpriteSheet("R8/Objects2.gif")
// Bird Frames
end if
ArrayPos0++
loop
end sub
// ========================
// Editor Subs
// ========================
sub RSDKDraw
DrawSprite(0)
end sub
sub RSDKLoad
LoadSpriteSheet("R8/Objects2.gif")
SpriteFrame(-8, -8, 16, 16, 143, 110)
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
end sub