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/Global/ActFinish.txt
1482 views
1
// ----------------------------------
2
// RSDK Project: Sonic 1
3
// Script Description: Act Finish Object
4
// Script Author: Christian Whitehead/Simon Thomley
5
// Unpacked by Rubberduckycooly's script unpacker
6
// ----------------------------------
7
8
// Looks like this is one of the objects that was programmed during the "S1 proto" phase, since it only uses values0-7 and doesn't use v4 syntax much at all
9
10
// ========================
11
// Aliases
12
// ========================
13
14
private alias object.xpos : object.decorPos // "decor" is the blue circle btw
15
private alias object.ypos : object.actPos
16
private alias object.value0 : object.timer
17
private alias object.value1 : object.playerNamePos
18
private alias object.value2 : object.passedPos
19
private alias object.value3 : object.totalPos
20
private alias object.value4 : object.timePos
21
private alias object.value5 : object.timeBonus
22
private alias object.value6 : object.ringBonus
23
private alias object.scale : object.ringPos
24
25
// States
26
private alias -1 : ACTFINISH_NORESULTS
27
private alias 0 : ACTFINISH_INIT
28
private alias 1 : ACTFINISH_ENTERACTFINISH
29
private alias 2 : ACTFINISH_ENTERPASSEDTEXT
30
private alias 3 : ACTFINISH_ENTERACTID
31
private alias 4 : ACTFINISH_ENTERBONUSES
32
private alias 5 : ACTFINISH_ACTFINISHJINGLE
33
private alias 6 : ACTFINISH_TALLYSCORE
34
private alias 7 : ACTFINISH_SHOWRESULTS
35
private alias 8 : ACTFINISH_LOADNEXTSTAGE
36
private alias 9 : ACTFINISH_EXITUISPRITES
37
private alias 10 : ACTFINISH_EXITTEXT
38
private alias 11 : ACTFINISH_EXITSCORES
39
private alias 12 : ACTFINISH_WAITFORCALLBACK
40
private alias 13 : ACTFINISH_RETRY
41
private alias 14 : ACTFINISH_SETSCREENFADE
42
43
// Game Modes Aliases
44
private alias 1 : MODE_SAVEGAME
45
private alias 2 : MODE_TIMEATTACK
46
47
// Super States
48
private alias 1 : SUPERSTATE_SUPER
49
private alias 2 : SUPERSTATE_UNTRANSFORM
50
51
// Player Aliases
52
private alias object.type : player.type
53
private alias object.interaction : player.interaction
54
private alias object.controlMode : player.controlMode
55
private alias object.right : player.right
56
57
private alias object.value0 : player.rings
58
59
// Sign Post Aliases
60
private alias 5 : SIGNPOST_BLANK
61
62
63
// ========================
64
// Events
65
// ========================
66
67
event ObjectUpdate
68
switch object.state
69
case ACTFINISH_INIT
70
object.drawOrder = 6
71
object.priority = PRIORITY_ACTIVE
72
73
object.decorPos = screen.xcenter
74
object.decorPos += 128
75
object.actPos = screen.xcenter
76
77
object.playerNamePos = screen.xcenter
78
FlipSign(object.playerNamePos)
79
object.playerNamePos -= 160
80
81
object.passedPos = screen.xcenter
82
FlipSign(object.passedPos)
83
object.passedPos -= 160
84
85
object.totalPos = screen.xcenter
86
object.totalPos += 128
87
88
object.timePos = object.totalPos
89
object.timePos += 32
90
91
object.ringPos = object.timePos
92
object.ringPos += 32
93
94
if Player_superState == SUPERSTATE_SUPER
95
Player_superState = SUPERSTATE_UNTRANSFORM
96
end if
97
98
switch stage.minutes
99
case 0
100
if stage.seconds < 30
101
object.timeBonus = 50000
102
else
103
if stage.seconds < 45
104
object.timeBonus = 10000
105
else
106
object.timeBonus = 5000
107
end if
108
end if
109
break
110
111
case 1
112
if stage.seconds < 30
113
object.timeBonus = 4000
114
else
115
object.timeBonus = 3000
116
end if
117
break
118
119
case 2
120
object.timeBonus = 2000
121
break
122
123
case 3
124
object.timeBonus = 1000
125
break
126
127
case 4
128
object.timeBonus = 500
129
break
130
131
case 5
132
object.timeBonus = 100
133
break
134
135
case 9
136
// If the player finished the stage at the last possible moment, then reward a whole lotta points!
137
// Fun note - this wasn't in the initial versions of S1, back then the time bonus stopped at 5 minutes and that was it
138
if stage.debugMode == false
139
if options.gameMode < MODE_TIMEATTACK
140
if stage.seconds == 59
141
object.timeBonus = 100000
142
end if
143
end if
144
end if
145
break
146
147
end switch
148
149
object.ringBonus = player[0].rings
150
object.ringBonus *= 100
151
152
#platform: USE_ORIGINS
153
if game.playMode == BOOT_PLAYMODE_MISSION
154
object.state = ACTFINISH_NORESULTS
155
else
156
if game.playMode == BOOT_PLAYMODE_BOSSRUSH
157
object.state = ACTFINISH_NORESULTS
158
else
159
object.state++
160
end if
161
end if
162
163
CallNativeFunction4(NotifyCallback, NOTIFY_STATS_ENEMY, StageStatsUsabilityParam1, StageStatsUsabilityParam2, StageStatsUsabilityParam3)
164
CallNativeFunction2(NotifyCallback, NOTIFY_STATS_RING, player[0].rings)
165
CallNativeFunction2(NotifyCallback, NOTIFY_ACT_FINISH, 0)
166
167
StageStatsUsabilityParam1 = 0
168
StageStatsUsabilityParam2 = 0
169
StageStatsUsabilityParam3 = 0
170
StageStatsUsabilityParam4 = 0
171
StageStatsUsabilityParam5 = 0
172
StatsUsabilityParam1 = 0
173
StatsUsabilityParam2 = 0
174
StatsUsabilityParam3 = 0
175
StatsUsabilityParam4 = 0
176
StatsUsabilityParam5 = 0
177
#endplatform
178
179
#platform: USE_STANDALONE
180
object.state++
181
#endplatform
182
break
183
184
case ACTFINISH_ENTERACTFINISH
185
if object.decorPos > 0
186
object.decorPos -= 16
187
if object.decorPos < 0
188
object.decorPos = 0
189
end if
190
end if
191
192
if object.playerNamePos < 0
193
object.playerNamePos += 16
194
if object.playerNamePos > 0
195
object.playerNamePos = 0
196
end if
197
else
198
object.state++
199
end if
200
break
201
202
case ACTFINISH_ENTERPASSEDTEXT
203
if object.passedPos < 0
204
object.passedPos += 16
205
if object.passedPos > 0
206
object.passedPos = 0
207
end if
208
else
209
object.state++
210
end if
211
break
212
213
case ACTFINISH_ENTERACTID
214
if object.actPos > 0
215
object.actPos -= 16
216
if object.actPos < 0
217
object.actPos = 0
218
end if
219
else
220
object.state++
221
end if
222
break
223
224
case ACTFINISH_ENTERBONUSES
225
if object.totalPos > 0
226
object.totalPos -= 16
227
if object.totalPos < 0
228
object.totalPos = 0
229
end if
230
end if
231
232
if object.timePos > 0
233
object.timePos -= 16
234
if object.timePos < 0
235
object.timePos = 0
236
end if
237
end if
238
239
if object.ringPos > 0
240
object.ringPos -= 16
241
if object.ringPos < 0
242
object.ringPos = 0
243
end if
244
else
245
object.state++
246
end if
247
break
248
249
case ACTFINISH_ACTFINISHJINGLE
250
object.timer++
251
if object.timer > 299
252
object.timer = 0
253
object.state++
254
end if
255
break
256
257
case ACTFINISH_TALLYSCORE
258
if object.ringBonus > 0
259
object.ringBonus -= 100
260
player.score += 100
261
end if
262
263
if object.timeBonus > 0
264
object.timeBonus -= 100
265
player.score += 100
266
end if
267
268
CheckGreater(object.ringBonus, 0)
269
temp0 = checkResult
270
CheckGreater(object.timeBonus, 0)
271
temp0 |= checkResult
272
if temp0 == true
273
object.timer++
274
if object.timer == 2
275
PlaySfx(SfxName[Score Add], false)
276
object.timer = 0
277
end if
278
else
279
object.state++
280
object.timer = 0
281
PlaySfx(SfxName[Score Total], false)
282
end if
283
break
284
285
case ACTFINISH_SHOWRESULTS
286
object.timer++
287
if object.timer == 160
288
object.timer = 0
289
290
if options.gameMode != MODE_TIMEATTACK
291
CheckCurrentStageFolder("Zone06")
292
temp0 = checkResult
293
CheckEqual(stage.actNum, 2)
294
temp0 &= checkResult
295
#platform: USE_ORIGINS
296
CheckEqual(game.oneStageFlag, false)
297
temp0 &= checkResult
298
#endplatform
299
if temp0 == true
300
// In SBZ Act 2, exit the HUD rather than fading out to the next level
301
object.state = ACTFINISH_EXITUISPRITES
302
else
303
#platform: USE_ORIGINS
304
if game.oneStageFlag != false
305
game.callbackResult = -1
306
CallNativeFunction4(NotifyCallback, NOTIFY_STAGE_RETRY, true, stage.listPos, 0)
307
object.state = ACTFINISH_WAITFORCALLBACK
308
else
309
object.state++
310
end if
311
#endplatform
312
#platform: USE_STANDALONE
313
object.state++
314
#endplatform
315
if player[0].type == TypeName[Blank Object]
316
PlaySfx(SfxName[Warp], false)
317
end if
318
end if
319
else
320
#platform: USE_ORIGINS
321
if game.oneStageFlag != false
322
game.callbackResult = -1
323
CallNativeFunction4(NotifyCallback, NOTIFY_STAGE_RETRY, true, stage.listPos, 0)
324
object.state = ACTFINISH_WAITFORCALLBACK
325
else
326
object.state++
327
end if
328
#endplatform
329
#platform: USE_STANDALONE
330
object.state++
331
#endplatform
332
if player[0].type == TypeName[Blank Object]
333
PlaySfx(SfxName[Warp], false)
334
end if
335
end if
336
end if
337
break
338
339
case ACTFINISH_LOADNEXTSTAGE
340
if player[0].type == TypeName[Blank Object]
341
// If the player object is blank, then they entered a Special Ring
342
// So, off to the Special Stage!
343
object.timer += 8
344
SetScreenFade(208, 255, 224, object.timer)
345
if object.timer == 0x400
346
fadeColor = 208
347
fadeColor <<= 16
348
temp0 = 255
349
temp0 <<= 8
350
fadeColor += temp0
351
fadeColor += 224
352
object.direction = FACING_RIGHT // huh? does this even matter?
353
object.timer = 0
354
lampPostID = 0
355
stage.listPos++
356
357
if options.gameMode == MODE_SAVEGAME
358
arrayPos1 = options.saveSlot
359
arrayPos1 <<= 3
360
if stage.player2Enabled == true
361
#platform: USE_STANDALONE
362
saveRAM[arrayPos1] = PLAYER_SONIC_TAILS_A
363
#endplatform
364
365
#platform: USE_ORIGINS
366
switch stage.playerListPos
367
case PLAYER_SONIC_A
368
saveRAM[arrayPos1] = PLAYER_SONIC_TAILS_A
369
break
370
case PLAYER_AMY_A
371
saveRAM[arrayPos1] = PLAYER_AMY_TAILS_A
372
break
373
end switch
374
#endplatform
375
else
376
saveRAM[arrayPos1] = stage.playerListPos
377
end if
378
arrayPos1++
379
saveRAM[arrayPos1] = player.lives
380
arrayPos1++
381
saveRAM[arrayPos1] = player.score
382
arrayPos1++
383
saveRAM[arrayPos1] = player.scoreBonus
384
arrayPos1++
385
temp0 = stage.listPos
386
temp0++
387
if temp0 > saveRAM[arrayPos1]
388
saveRAM[arrayPos1] = temp0
389
saveRAM[arrayPos1] += 0x80
390
end if
391
arrayPos1++
392
saveRAM[arrayPos1] = specialStage.emeralds
393
arrayPos1++
394
saveRAM[arrayPos1] = specialStage.listPos
395
WriteSaveRAM()
396
end if
397
398
#platform: USE_ORIGINS
399
recScore = player.score
400
401
if game.oneStageFlag != false
402
stage.listPos--
403
object.state = ACTFINISH_RETRY
404
else
405
#endplatform
406
407
specialStage.nextZone = stage.listPos
408
stage.listPos = specialStage.listPos
409
stage.activeList = SPECIAL_STAGE
410
411
temp0 = engine.trialMode
412
if stage.listPos >= stage.listSize
413
temp0 = true
414
end if
415
416
if temp0 == false
417
LoadStage()
418
else
419
// Invalid Stage, Go back to the title screen
420
stage.activeList = PRESENTATION_STAGE
421
stage.listPos = 0
422
LoadStage()
423
end if
424
#platform: USE_ORIGINS
425
end if
426
#endplatform
427
end if
428
else
429
object.timer += 4
430
SetScreenFade(0, 0, 0, object.timer)
431
if object.timer == 384
432
fadeColor = 0
433
object.timer = 0
434
lampPostID = 0
435
object.direction = FACING_RIGHT // i don't think this does anything...
436
stage.listPos++
437
438
if options.gameMode == MODE_SAVEGAME
439
arrayPos1 = options.saveSlot
440
arrayPos1 <<= 3
441
if stage.player2Enabled == true
442
#platform: USE_STANDALONE
443
saveRAM[arrayPos1] = PLAYER_SONIC_TAILS_A
444
#endplatform
445
446
#platform: USE_ORIGINS
447
switch stage.playerListPos
448
case PLAYER_SONIC_A
449
saveRAM[arrayPos1] = PLAYER_SONIC_TAILS_A
450
break
451
case PLAYER_AMY_A
452
saveRAM[arrayPos1] = PLAYER_AMY_TAILS_A
453
break
454
end switch
455
#endplatform
456
else
457
saveRAM[arrayPos1] = stage.playerListPos
458
end if
459
arrayPos1++
460
saveRAM[arrayPos1] = player.lives
461
arrayPos1++
462
saveRAM[arrayPos1] = player.score
463
arrayPos1++
464
saveRAM[arrayPos1] = player.scoreBonus
465
arrayPos1++
466
temp0 = stage.listPos
467
temp0++
468
if temp0 > saveRAM[arrayPos1]
469
saveRAM[arrayPos1] = temp0
470
end if
471
arrayPos1++
472
saveRAM[arrayPos1] = specialStage.emeralds
473
arrayPos1++
474
saveRAM[arrayPos1] = specialStage.listPos
475
WriteSaveRAM()
476
end if
477
478
#platform: USE_ORIGINS
479
recScore = player.score
480
481
if game.oneStageFlag != false
482
stage.listPos--
483
object.state = ACTFINISH_RETRY
484
else
485
#endplatform
486
if options.gameMode == MODE_TIMEATTACK
487
timeAttack.result = stage.seconds
488
timeAttack.result *= 100
489
temp0 = stage.minutes
490
temp0 *= 0x1770
491
timeAttack.result += temp0
492
timeAttack.result += stage.milliSeconds
493
stage.listPos--
494
CallNativeFunction2(SetLeaderboard, stage.listPos, timeAttack.result)
495
engine.state = 8
496
else
497
temp0 = engine.trialMode
498
if stage.listPos >= stage.listSize
499
temp0 = true
500
end if
501
502
if temp0 == false
503
LoadStage()
504
else
505
// Invalid Stage, Go back to the title screen
506
stage.activeList = PRESENTATION_STAGE
507
stage.listPos = 0
508
LoadStage()
509
end if
510
end if
511
#platform: USE_ORIGINS
512
end if
513
#endplatform
514
end if
515
end if
516
break
517
518
case ACTFINISH_EXITUISPRITES
519
object.decorPos += 32
520
object.actPos += 32
521
object.playerNamePos -= 32
522
object.timer++
523
if object.timer == 8
524
object.timer = 0
525
object.state++
526
end if
527
break
528
529
case ACTFINISH_EXITTEXT
530
object.decorPos += 32
531
object.actPos += 32
532
object.playerNamePos -= 32
533
object.passedPos -= 32
534
object.timer++
535
if object.timer == 8
536
object.timer = 0
537
object.state++
538
end if
539
break
540
541
case ACTFINISH_EXITSCORES
542
object.decorPos += 32
543
object.actPos += 32
544
object.playerNamePos -= 32
545
object.passedPos -= 32
546
object.totalPos += 32
547
if object.totalPos > 96
548
object.timePos += 32
549
if object.timePos > 96
550
object.ringPos += 32
551
end if
552
end if
553
554
object.timer++
555
if object.timer == 35
556
object.timer = 0
557
temp0 = tileLayer[0].xsize
558
temp0 <<= 7
559
stage.newXBoundary2 = temp0
560
foreach (TypeName[Sign Post], arrayPos0, ACTIVE_ENTITIES)
561
object[arrayPos0].state = SIGNPOST_BLANK
562
next
563
564
currentPlayer = 0
565
while currentPlayer < playerCount
566
player[currentPlayer].interaction = true
567
#platform: USE_STANDALONE
568
player[currentPlayer].controlMode = CONTROLMODE_P1
569
#endplatform
570
#platform: USE_ORIGINS
571
player[currentPlayer].controlMode = currentPlayer
572
#endplatform
573
player[currentPlayer].right = true
574
currentPlayer++
575
loop
576
577
ResetObjectEntity(object.entityPos, TypeName[Blank Object], 0, 0, 0)
578
SetMusicTrack("Final.ogg", 0, 84680)
579
PlayMusic(0)
580
end if
581
break
582
583
#platform: USE_ORIGINS
584
case ACTFINISH_WAITFORCALLBACK
585
if game.callbackResult >= 0
586
object.state = ACTFINISH_LOADNEXTSTAGE // I think this is supposed to set it to the next state instead of this one...
587
end if
588
break
589
590
case ACTFINISH_RETRY
591
if game.callbackResult == 0
592
engine.state = 8
593
else
594
LoadStage()
595
end if
596
597
object.state++
598
if player[0].type == TypeName[Blank Object]
599
SetScreenFade(208, 255, 224, 255)
600
else
601
SetScreenFade(0, 0, 0, 255)
602
end if
603
break
604
605
case ACTFINISH_SETSCREENFADE
606
if player[0].type == TypeName[Blank Object]
607
SetScreenFade(208, 255, 224, 255)
608
else
609
SetScreenFade(0, 0, 0, 255)
610
end if
611
break
612
#endplatform
613
end switch
614
end event
615
616
617
event ObjectDraw
618
SetActivePalette(0, 0, screen.ysize)
619
620
temp0 = screen.xcenter
621
temp0 += 16
622
temp0 += object.decorPos
623
DrawSpriteScreenXY(3, temp0, 56) // Blue Circle
624
625
temp0 = screen.xcenter
626
temp0 += 3
627
temp0 += object.playerNamePos
628
#platform: USE_STANDALONE
629
DrawSpriteScreenXY(stage.playerListPos, temp0, 60) // Player name
630
#endplatform
631
632
#platform: USE_ORIGINS
633
if stage.playerListPos != PLAYER_AMY_A
634
DrawSpriteScreenXY(stage.playerListPos, temp0, 60)
635
else
636
DrawSpriteScreenXY(23, temp0, 60)
637
end if
638
#endplatform
639
640
DrawSpriteScreenXY(4, temp0, 60) // "Has"
641
642
temp0 = screen.xcenter
643
temp0 -= 48
644
temp0 += object.passedPos
645
DrawSpriteScreenXY(5, temp0, 80) // "Passed"
646
647
temp0 = screen.xcenter
648
temp0 += 24
649
temp0 += object.actPos
650
temp1 = stage.actNum
651
temp1 += 5
652
if temp1 < 6
653
// Minimum of Act 1 to be displayed
654
temp1 = 6
655
end if
656
if temp1 > 8
657
// Maximum of Act 3 to be displayed
658
temp1 = 8
659
end if
660
DrawSpriteScreenXY(temp1, temp0, 82) // Act number
661
662
temp0 = screen.xcenter
663
temp0 -= 79
664
temp0 += object.totalPos
665
DrawSpriteScreenXY(9, temp0, 117) // "Score" text
666
667
temp0 += 151
668
DrawNumbers(13, temp0, 117, player.score, 6, 8, false)
669
670
temp0 = screen.xcenter
671
temp0 -= 79
672
temp0 += object.timePos
673
DrawSpriteScreenXY(10, temp0, 133) // "Time" text
674
DrawSpriteScreenXY(12, temp0, 133) // "Bonus" text
675
676
temp0 += 151
677
DrawNumbers(13, temp0, 133, object.timeBonus, 6, 8, false)
678
679
temp0 = screen.xcenter
680
temp0 -= 79
681
temp0 += object.ringPos
682
DrawSpriteScreenXY(11, temp0, 149) // "Rings" text
683
DrawSpriteScreenXY(12, temp0, 149) // "Bonus" text
684
685
temp0 += 151
686
DrawNumbers(13, temp0, 149, object.ringBonus, 5, 8, false)
687
end event
688
689
690
event ObjectStartup
691
LoadSpriteSheet("Global/Display.gif")
692
693
// Results frames
694
SpriteFrame(-70, 0, 70, 16, 1, 222) // #0 - "Sonic"
695
696
if options.region == false
697
SpriteFrame(-69, 0, 69, 16, 72, 222) // #1 - "Tails"
698
else
699
SpriteFrame(-69, 0, 69, 16, 145, 205) // #1 - "Miles"
700
end if
701
702
SpriteFrame(-93, 0, 113, 16, 142, 222) // #2 - "Knuckles"
703
704
// Change offset of sprites if Knuckles is P1
705
// (Done to make space for his large name)
706
if stage.playerListPos != PLAYER_KNUCKLES_A
707
SpriteFrame(0, 0, 56, 56, 41, 1) // #3 - Title card blue circle
708
SpriteFrame(17, 0, 47, 16, 1, 205) // #4 - "Has"
709
SpriteFrame(0, 0, 95, 16, 49, 205) // #5 - "Passed"
710
SpriteFrame(0, 0, 39, 24, 98, 1) // #6 - Act 1 sign
711
SpriteFrame(0, 0, 43, 24, 138, 1) // #7 - Act 2 sign
712
SpriteFrame(0, 0, 43, 24, 182, 1) // #8 - Act 3 sign
713
else
714
SpriteFrame(20, 0, 56, 56, 41, 1) // #3 - Title card blue circle
715
SpriteFrame(37, 0, 47, 16, 1, 205) // #4 - "Has"
716
SpriteFrame(20, 0, 95, 16, 49, 205) // #5 - "Passed"
717
SpriteFrame(20, 0, 39, 24, 98, 1) // #6 - Act 1 sign
718
SpriteFrame(20, 0, 43, 24, 138, 1) // #7 - Act 2 sign
719
SpriteFrame(20, 0, 43, 24, 182, 1) // #8 - Act 3 sign
720
end if
721
722
SpriteFrame(0, -2, 44, 16, 161, 26) // #9 - "Score"
723
SpriteFrame(0, 0, 31, 11, 1, 17) // #10 - "Time" (cropped from normal HUD graphic)
724
SpriteFrame(0, 0, 31, 11, 1, 33) // #11 - "Rings" (also cropped from normal HUD graphic)
725
SpriteFrame(40, -2, 45, 16, 98, 43) // #12 - "Bonus"
726
SpriteFrame(0, 0, 8, 11, 1, 50) // #13 - Number 0
727
SpriteFrame(0, 0, 8, 11, 10, 50) // #14 - Number 1
728
SpriteFrame(0, 0, 8, 11, 19, 50) // #15 - Number 2
729
SpriteFrame(0, 0, 8, 11, 28, 50) // #16 - Number 3
730
SpriteFrame(0, 0, 8, 11, 1, 62) // #17 - Number 4
731
SpriteFrame(0, 0, 8, 11, 10, 62) // #18 - Number 5
732
SpriteFrame(0, 0, 8, 11, 19, 62) // #19 - Number 6
733
SpriteFrame(0, 0, 8, 11, 28, 62) // #20 - Number 7
734
SpriteFrame(0, 0, 8, 11, 1, 74) // #21 - Number 8
735
SpriteFrame(0, 0, 8, 11, 10, 74) // #22 - Number 9
736
737
#platform: USE_ORIGINS
738
SpriteFrame(-43, 0, 47, 16, 182, 166) // #23 - "Amy"
739
#endplatform
740
end event
741
742
743
// ========================
744
// Editor Events
745
// ========================
746
747
event RSDKDraw
748
DrawSprite(0)
749
end event
750
751
752
event RSDKLoad
753
LoadSpriteSheet("Global/Display.gif")
754
SpriteFrame(-16, -16, 32, 32, 1, 143)
755
756
SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
757
end event
758
759