Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-Sonic-2-2013-Script-Decompilation
Path: blob/master/Sonic 2/Scripts/Special/Explosion.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Explosion Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
private alias object.value3 : object.localPos.z
12
private alias object.value4 : object.worldPos.x
13
private alias object.value5 : object.worldPos.y
14
private alias object.value6 : object.worldPos.z
15
16
// Halfpipe Aliases
17
private alias object.value13 : halfpipe.playerPos.z
18
19
// Face Buffer Flag Aliases
20
private alias 7 : FACE_SPRITE_3D
21
22
23
// ========================
24
// Events
25
// ========================
26
27
event ObjectUpdate
28
arrayPos0 = scene3D.vertexCount
29
arrayPos1 = scene3D.faceCount
30
31
faceBuffer[arrayPos1].flag = FACE_SPRITE_3D
32
faceBuffer[arrayPos1].a = arrayPos0
33
vertexBuffer[arrayPos0].x = object.worldPos.x
34
vertexBuffer[arrayPos0].y = object.worldPos.y
35
vertexBuffer[arrayPos0].z = object.worldPos.z
36
vertexBuffer[arrayPos0].u = TypeName[Explosion]
37
vertexBuffer[arrayPos0].v = FX_ROTATE
38
arrayPos0++
39
40
faceBuffer[arrayPos1].b = arrayPos0
41
vertexBuffer[arrayPos0].x = object.worldPos.x
42
vertexBuffer[arrayPos0].y = object.worldPos.y
43
vertexBuffer[arrayPos0].z = object.worldPos.z
44
vertexBuffer[arrayPos0].u = object.frame
45
vertexBuffer[arrayPos0].v = 0
46
arrayPos0++
47
48
faceBuffer[arrayPos1].c = arrayPos0
49
vertexBuffer[arrayPos0].x = object.worldPos.x
50
vertexBuffer[arrayPos0].y = object.worldPos.y
51
vertexBuffer[arrayPos0].z = object.worldPos.z
52
vertexBuffer[arrayPos0].u = 512
53
vertexBuffer[arrayPos0].v = 0
54
arrayPos0++
55
56
faceBuffer[arrayPos1].d = arrayPos0
57
vertexBuffer[arrayPos0].x = object.worldPos.x
58
vertexBuffer[arrayPos0].y = object.worldPos.y
59
vertexBuffer[arrayPos0].z = object.worldPos.z
60
scene3D.vertexCount += 4
61
scene3D.faceCount++
62
63
if object.localPos.z < halfpipe[0].playerPos.z
64
object.type = TypeName[Blank Object]
65
end if
66
67
object.animationTimer++
68
if object.animationTimer == 2
69
object.animationTimer = 0
70
object.frame++
71
if object.frame == 3
72
object.type = TypeName[Blank Object]
73
object.frame = 0
74
end if
75
end if
76
end event
77
78
79
event ObjectStartup
80
LoadSpriteSheet("Special/Objects.gif")
81
82
SpriteFrame(-16, -16, 31, 32, 379, 122)
83
SpriteFrame(-24, -16, 47, 31, 265, 165)
84
SpriteFrame(-39, -19, 78, 36, 265, 197)
85
end event
86
87
88
// ========================
89
// Editor Events
90
// ========================
91
92
event RSDKDraw
93
DrawSprite(0)
94
end event
95
96
97
event RSDKLoad
98
LoadSpriteSheet("Special/Objects.gif")
99
SpriteFrame(-16, -16, 31, 32, 379, 122)
100
101
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
102
end event
103
104