Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/levels/wf/script.c
7857 views
1
#include <ultra64.h>
2
#include "sm64.h"
3
#include "behavior_data.h"
4
#include "model_ids.h"
5
#include "seq_ids.h"
6
#include "dialog_ids.h"
7
#include "segment_symbols.h"
8
#include "level_commands.h"
9
10
#include "game/level_update.h"
11
12
#include "levels/scripts.h"
13
14
#include "actors/common1.h"
15
16
#include "make_const_nonconst.h"
17
#include "levels/wf/header.h"
18
19
// Unlike most levels, some of the level geometry objects in WF are defined as regular objects instead of terrain objects.
20
// Some of them are still terrain objects, however.
21
static const LevelScript script_func_local_1[] = {
22
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_03, /*pos*/ 2305, 2432, -255, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
23
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_04, /*pos*/ 3405, 1664, -1791, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
24
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_05, /*pos*/ 3840, 0, -2303, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
25
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_05, /*pos*/ 3840, 0, -1279, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
26
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_06, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
27
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_07, /*pos*/ 1757, 3519, -3151, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
28
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0A, /*pos*/ 3840, 794, 2688, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
29
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0C, /*pos*/ 1408, 2522, 2431, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
30
OBJECT(/*model*/ MODEL_WF_GIANT_POLE, /*pos*/ -2560, 2560, -256, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGiantPole),
31
RETURN(),
32
};
33
34
static const LevelScript script_func_local_2[] = {
35
OBJECT(/*model*/ MODEL_WF_SMALL_BOMP, /*pos*/ 3300, 1070, 1, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBomp),
36
OBJECT(/*model*/ MODEL_WF_SMALL_BOMP, /*pos*/ 3300, 1070, 1281, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBomp),
37
OBJECT(/*model*/ MODEL_WF_LARGE_BOMP, /*pos*/ 3300, 1070, 641, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLargeBomp),
38
OBJECT(/*model*/ MODEL_WF_ROTATING_WOODEN_PLATFORM, /*pos*/ -255, 2560, 2304, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfRotatingWoodenPlatform),
39
OBJECT(/*model*/ MODEL_WF_SLIDING_PLATFORM, /*pos*/ 3328, 1075, -1791, /*angle*/ 0, 90, 0, /*behParam*/ 0x00020000, /*beh*/ bhvWfSlidingPlatform),
40
OBJECT(/*model*/ MODEL_WF_SLIDING_PLATFORM, /*pos*/ 3328, 1075, -767, /*angle*/ 0, 90, 0, /*behParam*/ 0x00010000, /*beh*/ bhvWfSlidingPlatform),
41
OBJECT(/*model*/ MODEL_WF_SLIDING_PLATFORM, /*pos*/ 3328, 1075, -2815, /*angle*/ 0, 90, 0, /*behParam*/ 0x00030000, /*beh*/ bhvWfSlidingPlatform),
42
OBJECT(/*model*/ MODEL_WF_TUMBLING_BRIDGE, /*pos*/ 1792, 2496, 1600, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfTumblingBridge),
43
OBJECT(/*model*/ MODEL_WF_BREAKABLE_WALL_RIGHT, /*pos*/ 512, 2176, 2944, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfBreakableWallRight),
44
OBJECT(/*model*/ MODEL_WF_BREAKABLE_WALL_LEFT, /*pos*/ -1023, 2176, 2944, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfBreakableWallLeft),
45
OBJECT_WITH_ACTS(/*model*/ MODEL_WF_KICKABLE_BOARD, /*pos*/ 13, 3584, -1407, /*angle*/ 0, 315, 0, /*behParam*/ 0x00000000, /*beh*/ bhvKickableBoard, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
46
OBJECT_WITH_ACTS(/*model*/ MODEL_1UP, /*pos*/ -384, 3584, 6, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhv1Up, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
47
OBJECT(/*model*/ MODEL_WF_ROTATING_PLATFORM, /*pos*/ 2304, 3584, -2303, /*angle*/ 0, 0, 0, /*behParam*/ 0x08000000, /*beh*/ bhvRotatingPlatform),
48
OBJECT(/*model*/ MODEL_WF_ROTATING_PLATFORM, /*pos*/ 3200, 3328, -1791, /*angle*/ 0, 0, 0, /*behParam*/ 0x08000000, /*beh*/ bhvRotatingPlatform),
49
OBJECT(/*model*/ MODEL_WF_ROTATING_PLATFORM, /*pos*/ 2688, 3584, -895, /*angle*/ 0, 0, 0, /*behParam*/ 0x08000000, /*beh*/ bhvRotatingPlatform),
50
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2495, 1331, -256, /*angle*/ 0, 0, 0, /*behParam*/ 0x003D0000, /*beh*/ bhvPoleGrabbing),
51
RETURN(),
52
};
53
54
static const LevelScript script_func_local_3[] = {
55
OBJECT(/*model*/ MODEL_THWOMP, /*pos*/ 3462, 1939, -1545, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvThwomp),
56
OBJECT(/*model*/ MODEL_THWOMP, /*pos*/ 3462, 1075, -3314, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvThwomp2),
57
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -856, 922, 3819, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBetaFishSplashSpawner),
58
OBJECT(/*model*/ MODEL_PIRANHA_PLANT, /*pos*/ 1822, 2560, -101, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPiranhaPlant),
59
OBJECT(/*model*/ MODEL_PIRANHA_PLANT, /*pos*/ 4625, 256, 5017, /*angle*/ 0, -90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPiranhaPlant),
60
OBJECT(/*model*/ MODEL_PIRANHA_PLANT, /*pos*/ 689, 2560, 1845, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPiranhaPlant),
61
OBJECT(/*model*/ MODEL_WHOMP, /*pos*/ -1545, 2560, -286, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallWhomp),
62
OBJECT(/*model*/ MODEL_WHOMP, /*pos*/ 189, 2560, -1857, /*angle*/ 0, -135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallWhomp),
63
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4736, 256, 4992, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
64
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 5120, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
65
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 4992, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
66
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 4864, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
67
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4480, 256, 4992, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
68
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 256, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
69
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4736, 256, 128, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
70
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4480, 256, 128, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
71
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
72
OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 128, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly),
73
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1035, 2880, -900, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCheckerboardElevatorGroup),
74
OBJECT_WITH_ACTS(/*model*/ MODEL_BULLET_BILL, /*pos*/ 1280, 3712, 968, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBulletBill, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
75
OBJECT_WITH_ACTS(/*model*/ MODEL_LEVEL_GEOMETRY_08, /*pos*/ 0, 3584, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTower, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
76
OBJECT_WITH_ACTS(/*model*/ MODEL_LEVEL_GEOMETRY_09, /*pos*/ 1280, 3584, 896, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBulletBillCannon, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
77
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 0, 3483, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTowerPlatformGroup, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
78
OBJECT_WITH_ACTS(/*model*/ MODEL_WF_TOWER_DOOR, /*pos*/ -511, 3584, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTowerDoor, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
79
OBJECT_WITH_ACTS(/*model*/ MODEL_BOBOMB_BUDDY, /*pos*/ -1700, 1140, 3500, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBobombBuddyOpensCannon, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6),
80
OBJECT_WITH_ACTS(/*model*/ MODEL_HOOT, /*pos*/ 2560, 700, 4608, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHoot, /*acts*/ ACT_3 | ACT_4 | ACT_5 | ACT_6),
81
RETURN(),
82
};
83
84
static const LevelScript script_func_local_4[] = {
85
OBJECT_WITH_ACTS(/*model*/ MODEL_WHOMP, /*pos*/ 0, 3584, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWhompKingBoss, /*acts*/ ACT_1),
86
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 300, 5550, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x01000000, /*beh*/ bhvStar, /*acts*/ ACT_2 | ACT_3 | ACT_4 | ACT_5 | ACT_6),
87
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -2500, 1500, -750, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
88
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 4600, 550, 2500, /*angle*/ 0, 0, 0, /*behParam*/ 0x03000000, /*beh*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS),
89
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 2880, 4300, 190, /*angle*/ 0, 0, 0, /*behParam*/ 0x04000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
90
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 590, 2450, 2650, /*angle*/ 0, 0, 0, /*behParam*/ 0x05000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
91
RETURN(),
92
};
93
94
const LevelScript level_wf_entry[] = {
95
INIT_LEVEL(),
96
LOAD_MIO0( /*seg*/ 0x07, _wf_segment_7SegmentRomStart, _wf_segment_7SegmentRomEnd),
97
LOAD_MIO0( /*seg*/ 0x0A, _cloud_floor_skybox_mio0SegmentRomStart, _cloud_floor_skybox_mio0SegmentRomEnd),
98
LOAD_MIO0_TEXTURE(/*seg*/ 0x09, _grass_mio0SegmentRomStart, _grass_mio0SegmentRomEnd),
99
LOAD_MIO0( /*seg*/ 0x05, _group1_mio0SegmentRomStart, _group1_mio0SegmentRomEnd),
100
LOAD_RAW( /*seg*/ 0x0C, _group1_geoSegmentRomStart, _group1_geoSegmentRomEnd),
101
LOAD_MIO0( /*seg*/ 0x06, _group14_mio0SegmentRomStart, _group14_mio0SegmentRomEnd),
102
LOAD_RAW( /*seg*/ 0x0D, _group14_geoSegmentRomStart, _group14_geoSegmentRomEnd),
103
LOAD_MIO0( /*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
104
LOAD_RAW( /*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
105
ALLOC_LEVEL_POOL(),
106
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
107
JUMP_LINK(script_func_global_1),
108
JUMP_LINK(script_func_global_2),
109
JUMP_LINK(script_func_global_15),
110
LOAD_MODEL_FROM_GEO(MODEL_WF_BUBBLY_TREE, bubbly_tree_geo),
111
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_03, wf_geo_0007E0),
112
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_04, wf_geo_000820),
113
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_05, wf_geo_000860),
114
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_06, wf_geo_000878),
115
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_07, wf_geo_000890),
116
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_08, wf_geo_0008A8),
117
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_09, wf_geo_0008E8),
118
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0A, wf_geo_000900),
119
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0C, wf_geo_000940),
120
LOAD_MODEL_FROM_GEO(MODEL_WF_GIANT_POLE, wf_geo_000AE0),
121
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0E, wf_geo_000958),
122
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0F, wf_geo_0009A0),
123
LOAD_MODEL_FROM_GEO(MODEL_WF_ROTATING_PLATFORM, wf_geo_0009B8),
124
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_11, wf_geo_0009D0),
125
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_12, wf_geo_0009E8),
126
LOAD_MODEL_FROM_GEO(MODEL_WF_SMALL_BOMP, wf_geo_000A00),
127
LOAD_MODEL_FROM_GEO(MODEL_WF_LARGE_BOMP, wf_geo_000A40),
128
LOAD_MODEL_FROM_GEO(MODEL_WF_ROTATING_WOODEN_PLATFORM, wf_geo_000A58),
129
LOAD_MODEL_FROM_GEO(MODEL_WF_SLIDING_PLATFORM, wf_geo_000A98),
130
LOAD_MODEL_FROM_GEO(MODEL_WF_TUMBLING_BRIDGE_PART, wf_geo_000AB0),
131
LOAD_MODEL_FROM_GEO(MODEL_WF_TUMBLING_BRIDGE, wf_geo_000AC8),
132
LOAD_MODEL_FROM_GEO(MODEL_WF_TOWER_TRAPEZOID_PLATORM, wf_geo_000AF8),
133
LOAD_MODEL_FROM_GEO(MODEL_WF_TOWER_SQUARE_PLATORM, wf_geo_000B10),
134
LOAD_MODEL_FROM_GEO(MODEL_WF_TOWER_SQUARE_PLATORM_UNUSED, wf_geo_000B38),
135
LOAD_MODEL_FROM_GEO(MODEL_WF_TOWER_SQUARE_PLATORM_ELEVATOR, wf_geo_000B60),
136
LOAD_MODEL_FROM_GEO(MODEL_WF_BREAKABLE_WALL_RIGHT, wf_geo_000B78),
137
LOAD_MODEL_FROM_GEO(MODEL_WF_BREAKABLE_WALL_LEFT, wf_geo_000B90),
138
LOAD_MODEL_FROM_GEO(MODEL_WF_KICKABLE_BOARD, wf_geo_000BA8),
139
LOAD_MODEL_FROM_GEO(MODEL_WF_TOWER_DOOR, wf_geo_000BE0),
140
LOAD_MODEL_FROM_GEO(MODEL_WF_KICKABLE_BOARD_FELLED, wf_geo_000BC8),
141
142
AREA(/*index*/ 1, wf_geo_000BF8),
143
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2600, 1256, 5120, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneWarp),
144
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2925, 2560, -947, /*angle*/ 0, 19, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp),
145
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2548, 1075, -3962, /*angle*/ 0, 51, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp),
146
WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT),
147
WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT),
148
WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT),
149
WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT),
150
WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT),
151
JUMP_LINK(script_func_local_1),
152
JUMP_LINK(script_func_local_2),
153
JUMP_LINK(script_func_local_3),
154
JUMP_LINK(script_func_local_4),
155
TERRAIN(/*terrainData*/ wf_seg7_collision_070102D8),
156
MACRO_OBJECTS(/*objList*/ wf_seg7_macro_objs),
157
SHOW_DIALOG(/*index*/ 0x00, DIALOG_030),
158
SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0005, /*seq*/ SEQ_LEVEL_GRASS),
159
TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE),
160
END_AREA(),
161
162
FREE_LEVEL_POOL(),
163
MARIO_POS(/*area*/ 1, /*yaw*/ 90, /*pos*/ 2600, 256, 5120),
164
CALL(/*arg*/ 0, /*func*/ lvl_init_or_update),
165
CALL_LOOP(/*arg*/ 1, /*func*/ lvl_init_or_update),
166
CLEAR_LEVEL(),
167
SLEEP_BEFORE_EXIT(/*frames*/ 1),
168
EXIT(),
169
};
170
171