Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 1/Scripts/SBZ/FZIntro.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: FZ Intro Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
private alias object.value0 : object.targetPlayer
13
14
private alias 0 : FZINTRO_MANAGER
15
private alias 1 : FZINTRO_INTRO
16
private alias 2 : FZINTRO_DESTROY
17
18
// Player Aliases
19
private alias object.state : player.state
20
private alias object.xpos : player.xpos
21
private alias object.ypos : player.ypos
22
private alias object.yvel : player.yvel
23
private alias object.speed : player.speed
24
private alias object.gravity : player.gravity
25
private alias object.direction : player.direction
26
private alias object.animation : player.animation
27
private alias object.value26 : player.flightVelocity
28
29
30
// ========================
31
// Events
32
// ========================
33
34
event ObjectUpdate
35
switch object.state
36
case FZINTRO_MANAGER
37
tileLayer[2].scrollPos = 0x800000
38
hParallax[0].scrollPos = -0x800000
39
if recAnimation != ANI_STOPPED
40
temp0 = recAnimation
41
currentPlayer = 0
42
43
// Create a FZ Intro object for each player
44
while currentPlayer < playerCount
45
player[currentPlayer].xpos = object.xpos
46
player[currentPlayer].ypos = object.ypos
47
CreateTempObject(TypeName[FZ Intro], 0, object.xpos, object.ypos)
48
object[tempObjectPos].state = FZINTRO_INTRO
49
object[tempObjectPos].targetPlayer = currentPlayer
50
object[tempObjectPos].direction = temp0
51
object[tempObjectPos].direction &= 0xFF
52
temp0 >>= 8
53
object[tempObjectPos].animation = temp0
54
object[tempObjectPos].animation &= 0xFF
55
temp0 >>= 8
56
player[currentPlayer].yvel = -0x80000
57
player[currentPlayer].gravity = GRAVITY_AIR
58
#platform: USE_STANDALONE
59
player[currentPlayer].state = Player_State_Air
60
#endplatform
61
#platform: USE_ORIGINS
62
player[currentPlayer].state = Player_State_Air_NoDropDash
63
#endplatform
64
currentPlayer++
65
loop
66
recAnimation = 0
67
end if
68
69
object.type = TypeName[Blank Object]
70
temp0 = stage.newYBoundary2
71
temp0 -= screen.ysize
72
stage.newYBoundary1 = temp0
73
break
74
75
case FZINTRO_INTRO
76
currentPlayer = object.targetPlayer
77
78
player[currentPlayer].direction = object.direction
79
player[currentPlayer].animation = object.animation
80
81
if player[currentPlayer].animation == ANI_JUMPING
82
#platform: USE_STANDALONE
83
player[currentPlayer].state = Player_State_Air
84
#endplatform
85
#platform: USE_ORIGINS
86
player[currentPlayer].state = Player_State_Air_NoDropDash
87
#endplatform
88
object.state = FZINTRO_DESTROY
89
end if
90
91
if player[currentPlayer].animation == ANI_FLYING
92
player[currentPlayer].state = Player_State_Fly
93
player[currentPlayer].flightVelocity = 0x800
94
player[currentPlayer].yvel >>= 2
95
object.state = FZINTRO_DESTROY
96
end if
97
98
if player[currentPlayer].animation == ANI_GLIDING
99
if player[currentPlayer].direction == FACING_LEFT
100
player[currentPlayer].state = Player_State_GlideLeft
101
else
102
player[currentPlayer].state = Player_State_GlideRight
103
end if
104
105
object.state = FZINTRO_DESTROY
106
end if
107
108
if player[currentPlayer].animation == ANI_GLIDING_DROP
109
player[currentPlayer].state = Player_State_GlideDrop
110
object.state = FZINTRO_DESTROY
111
end if
112
113
if object.state != FZINTRO_DESTROY
114
#platform: USE_STANDALONE
115
player[currentPlayer].state = Player_State_Air
116
#endplatform
117
#platform: USE_ORIGINS
118
player[currentPlayer].state = Player_State_Air_NoDropDash
119
#endplatform
120
player[currentPlayer].direction = FACING_RIGHT
121
player[currentPlayer].animation = ANI_BOUNCING
122
object.state = FZINTRO_DESTROY
123
end if
124
break
125
126
case FZINTRO_DESTROY
127
object.type = TypeName[Blank Object]
128
break
129
130
end switch
131
end event
132
133
134
// ========================
135
// Editor Events
136
// ========================
137
138
event RSDKDraw
139
DrawSprite(0)
140
end event
141
142
143
event RSDKLoad
144
LoadSpriteSheet("Global/Display.gif")
145
SpriteFrame(-16, -16, 32, 32, 1, 143)
146
147
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
148
end event
149
150