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/HTZ/GroundFlame.txt
1480 views
1
// ----------------------------------
2
// RSDK Project: Sonic 2
3
// Script Description: Ground Flame 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.timer
13
14
// Path ID Aliases
15
private alias 0 : PATH_A
16
17
18
// ========================
19
// Tables
20
// ========================
21
22
private table GroundFlame_aniTable
23
4, 5, 2, 3, 0, 1, 0, 1, 2, 3, 4, 5, 6
24
end table
25
26
private table GroundFlame_hitboxes
27
0, 0, -8, -8, -15, -15
28
end table
29
30
31
// ========================
32
// Events
33
// ========================
34
35
event ObjectUpdate
36
ObjectTileGrip(CSIDE_FLOOR, 0, 9, PATH_A)
37
if checkResult == false
38
object.type = TypeName[Blank Object]
39
end if
40
41
temp0 = object.animationTimer
42
temp0 /= 6
43
GetTableValue(object.frame, temp0, GroundFlame_aniTable)
44
45
object.animationTimer++
46
if object.animationTimer == 10
47
if object.timer > 0
48
CreateTempObject(TypeName[Ground Flame], 0, object.xpos, object.ypos)
49
if object.direction == FLIP_NONE
50
object[tempObjectPos].xpos -= 0xE0000
51
else
52
object[tempObjectPos].xpos += 0xE0000
53
end if
54
object[tempObjectPos].timer = object.timer
55
object[tempObjectPos].timer--
56
object[tempObjectPos].direction = object.direction
57
end if
58
end if
59
60
if object.frame == 6
61
object.type = TypeName[Blank Object]
62
else
63
GetTableValue(temp0, object.frame, GroundFlame_hitboxes)
64
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
65
BoxCollisionTest(C_TOUCH, object.entityPos, -8, temp0, 8, 16, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
66
if checkResult == true
67
CallFunction(Player_FireHit)
68
end if
69
next
70
end if
71
72
if object.outOfBounds == true
73
object.type = TypeName[Blank Object]
74
end if
75
end event
76
77
78
event ObjectDraw
79
DrawSprite(object.frame)
80
end event
81
82
83
event ObjectStartup
84
CheckCurrentStageFolder("Zone05")
85
if checkResult == true
86
LoadSpriteSheet("HTZ/Objects.gif")
87
SpriteFrame(-8, -15, 16, 31, 1, 1)
88
SpriteFrame(-8, -15, 16, 31, 18, 1)
89
SpriteFrame(-8, -8, 16, 24, 35, 1)
90
SpriteFrame(-8, -8, 16, 24, 35, 26)
91
SpriteFrame(-8, 0, 16, 16, 1, 33)
92
SpriteFrame(-8, 0, 16, 16, 18, 33)
93
else
94
LoadSpriteSheet("MBZ/Objects.gif")
95
96
// These sprites have different offsets than their HTZ versions
97
SpriteFrame(-8, -19, 16, 31, 869, 68)
98
SpriteFrame(-8, -19, 16, 31, 886, 68)
99
SpriteFrame(-8, -12, 16, 24, 973, 21)
100
SpriteFrame(-8, -12, 16, 24, 990, 21)
101
SpriteFrame(-8, -4, 16, 16, 835, 71)
102
SpriteFrame(-8, -4, 16, 16, 852, 71)
103
end if
104
end event
105
106
107
// ========================
108
// Editor Events
109
// ========================
110
111
event RSDKDraw
112
DrawSprite(0)
113
end event
114
115
116
event RSDKLoad
117
CheckCurrentStageFolder("Zone05")
118
if checkResult == true
119
LoadSpriteSheet("HTZ/Objects.gif")
120
SpriteFrame(-8, -15, 16, 31, 1, 1)
121
else
122
LoadSpriteSheet("MBZ/Objects.gif")
123
SpriteFrame(-8, -19, 16, 31, 869, 68)
124
end if
125
126
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
127
end event
128
129