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/ConveyorWheel.txt
1482 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Conveyor Wheel Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// ========================
9
// Aliases
10
// ========================
11
12
// Player Aliases
13
private alias object.state : player.state
14
private alias object.speed : player.speed
15
private alias object.gravity : player.gravity
16
17
18
// ========================
19
// Function Declarations
20
// ========================
21
22
reserve function ConveyorWheel_DebugDraw
23
reserve function ConveyorWheel_DebugSpawn
24
25
26
// ========================
27
// Function Definitions
28
// ========================
29
30
private function ConveyorWheel_DebugDraw
31
DrawSprite(0)
32
end function
33
34
35
private function ConveyorWheel_DebugSpawn
36
CreateTempObject(TypeName[Conveyor Wheel], 0, object.xpos, object.ypos)
37
object[tempObjectPos].drawOrder = 5
38
end function
39
40
41
// ========================
42
// Events
43
// ========================
44
45
event ObjectUpdate
46
// Check interaction with players
47
foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)
48
BoxCollisionTest(C_TOUCH, object.entityPos, -64, -64, 64, 64, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)
49
if checkResult == true
50
if player[currentPlayer].gravity == GRAVITY_GROUND
51
if player[currentPlayer].state == Player_State_GlideSlide
52
player[currentPlayer].state = Player_State_Ground
53
end if
54
55
if player[currentPlayer].state == Player_State_GlideDrop
56
player[currentPlayer].state = Player_State_Ground
57
end if
58
59
if player[currentPlayer].speed < 0x40000
60
player[currentPlayer].speed = 0x40000
61
else
62
if player[currentPlayer].speed > 0xF0000
63
player[currentPlayer].speed = 0xF0000
64
end if
65
end if
66
end if
67
end if
68
next
69
70
object.angle += 4
71
object.angle &= 0x1FF
72
end event
73
74
75
event ObjectDraw
76
Cos(temp0, object.angle)
77
temp0 *= 0xC00
78
temp0 += object.xpos
79
80
Sin(temp1, object.angle)
81
temp1 *= 0xC00
82
temp1 += object.ypos
83
84
DrawSpriteXY(0, temp0, temp1)
85
end event
86
87
88
event ObjectStartup
89
LoadSpriteSheet("SBZ/Objects.gif")
90
91
// Wheel frame
92
SpriteFrame(-7, -7, 14, 14, 65, 123)
93
94
foreach (TypeName[Conveyor Wheel], arrayPos0, ALL_ENTITIES)
95
object[arrayPos0].drawOrder = 5
96
next
97
98
// Add this object to the debug item list
99
SetTableValue(TypeName[Conveyor Wheel], DebugMode_ObjCount, DebugMode_TypesTable)
100
SetTableValue(ConveyorWheel_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)
101
SetTableValue(ConveyorWheel_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)
102
DebugMode_ObjCount++
103
end event
104
105
106
// ========================
107
// Editor Events
108
// ========================
109
110
event RSDKDraw
111
DrawSprite(0)
112
end event
113
114
115
event RSDKLoad
116
LoadSpriteSheet("SBZ/Objects.gif")
117
SpriteFrame(-7, -7, 14, 14, 65, 123)
118
119
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
120
end event
121
122