Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/levels/lll/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/lll/header.h"
18
19
// Unlike most levels, level geometry objects in LLL are defined as regular objects instead of terrain objects.
20
static const LevelScript script_func_local_1[] = {
21
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_03, /*pos*/ 3840, 0, -5631, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
22
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_04, /*pos*/ 4992, 0, -639, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
23
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_05, /*pos*/ 7168, 0, 1408, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
24
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_06, /*pos*/ 0, 0, 3712, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
25
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_07, /*pos*/ -3199, 0, 3456, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
26
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_08, /*pos*/ -5119, 0, -2047, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
27
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0A, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
28
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0B, /*pos*/ 0, 0, 6272, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
29
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0C, /*pos*/ 5632, 0, 1408, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
30
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0C, /*pos*/ 2048, 0, 3456, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
31
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0C, /*pos*/ -4607, 0, 3456, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
32
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0C, /*pos*/ -5119, 0, -511, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
33
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0D, /*pos*/ 0, 0, -2047, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject),
34
// This behavior differs from the rest in that it actually has collision rather than being purely visual.
35
// A likely explanation is that this object was added in after the collision model was made, and they didn't want
36
// to redo the collision so they just added a new behavior for it.
37
OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0E, /*pos*/ -5115, 300, -3200, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllHexagonalMesh),
38
RETURN(),
39
};
40
41
static const LevelScript script_func_local_2[] = {
42
OBJECT(/*model*/ MODEL_LLL_DRAWBRIDGE_PART, /*pos*/ -1919, 307, 3648, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllDrawbridgeSpawner),
43
OBJECT(/*model*/ MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, /*pos*/ -5119, 307, -4095, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllRotatingBlockWithFireBars),
44
OBJECT(/*model*/ MODEL_LLL_ROTATING_HEXAGONAL_RING, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllRotatingHexagonalRing),
45
OBJECT(/*model*/ MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, /*pos*/ 3968, 0, 1408, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRectangularPlatform),
46
OBJECT(/*model*/ MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, /*pos*/ -5759, 0, 3072, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRectangularPlatform),
47
OBJECT(/*model*/ MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, /*pos*/ 2816, 0, 512, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRectangularPlatform),
48
OBJECT(/*model*/ MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, /*pos*/ -1791, 0, -4095, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRectangularPlatform),
49
OBJECT(/*model*/ MODEL_LLL_SINKING_SQUARE_PLATFORMS, /*pos*/ 3840, 0, -3199, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingSquarePlatforms),
50
OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 922, -153, 2150, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid),
51
OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 1741, -153, 1741, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid),
52
OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 1741, -153, 2560, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid),
53
OBJECT(/*model*/ MODEL_LLL_TILTING_SQUARE_PLATFORM, /*pos*/ 2099, -153, -306, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllTiltingInvertedPyramid),
54
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5119, 102, 1024, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllBowserPuzzle),
55
RETURN(),
56
};
57
58
static const LevelScript script_func_local_3[] = {
59
OBJECT(/*model*/ MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, /*pos*/ 1124, 0, -4607, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllMovingOctagonalMeshPlatform),
60
OBJECT(/*model*/ MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, /*pos*/ 7168, 0, 2432, /*angle*/ 0, 0, 0, /*behParam*/ 0x00010000, /*beh*/ bhvLllMovingOctagonalMeshPlatform),
61
OBJECT(/*model*/ MODEL_LLL_SINKING_ROCK_BLOCK, /*pos*/ 7168, 0, 7296, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllSinkingRockBlock),
62
OBJECT(/*model*/ MODEL_LLL_ROLLING_LOG, /*pos*/ 6144, 307, 6016, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllRollingLog),
63
OBJECT(/*model*/ MODEL_LLL_ROTATING_HEXAGONAL_PLATFORM, /*pos*/ -5119, 0, -4095, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllRotatingHexagonalPlatform),
64
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3583, 0, -4095, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllFloatingWoodBridge),
65
RETURN(),
66
};
67
68
static const LevelScript script_func_local_4[] = {
69
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3199, 307, 3456, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvMrI),
70
OBJECT(/*model*/ MODEL_BULLY_BOSS, /*pos*/ 0, 307, -4385, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBigBully),
71
OBJECT(/*model*/ MODEL_BULLY_BOSS, /*pos*/ 4046, 2234, -5521, /*angle*/ 0, 0, 0, /*behParam*/ 0x01000000, /*beh*/ bhvBigBullyWithMinions),
72
OBJECT(/*model*/ MODEL_BULLY, /*pos*/ -5119, 307, -2482, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBully),
73
OBJECT(/*model*/ MODEL_BULLY, /*pos*/ 0, 307, 3712, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBully),
74
OBJECT(/*model*/ MODEL_BULLY, /*pos*/ 6813, 307, 1613, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBully),
75
OBJECT(/*model*/ MODEL_BULLY, /*pos*/ 7168, 307, 998, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBully),
76
OBJECT(/*model*/ MODEL_BULLY, /*pos*/ -5130, 285, -1663, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBully),
77
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 200, -2048, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFlamethrower),
78
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 500, 2, 5000, /*angle*/ 0, 270, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
79
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -700, 2, 4500, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
80
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -6300, 2, 2625, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
81
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3280, 2, -4854, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
82
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5996, 2, -390, /*angle*/ 0, 315, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
83
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 5423, 2, -1991, /*angle*/ 0, 315, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
84
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4921, 2, -1504, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBouncingFireball),
85
OBJECT_WITH_ACTS(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 1050, 550, 6200, /*angle*/ 0, 0, 0, /*behParam*/ 0x00030000, /*beh*/ bhvExclamationBox, /*acts*/ ACT_5 | ACT_6),
86
RETURN(),
87
};
88
89
static const LevelScript script_func_local_5[] = {
90
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ -4400, 350, 250, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS),
91
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 3100, 400, 7900, /*angle*/ 0, 0, 0, /*behParam*/ 0x03000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
92
RETURN(),
93
};
94
95
static const LevelScript script_func_local_6[] = {
96
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 728, 2606, -2754, /*angle*/ 0, 0, 0, /*behParam*/ 0x00380000, /*beh*/ bhvPoleGrabbing),
97
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1043, 2972, -2679, /*angle*/ 0, 0, 0, /*behParam*/ 0x004E0000, /*beh*/ bhvPoleGrabbing),
98
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1078, 3078, -2269, /*angle*/ 0, 0, 0, /*behParam*/ 0x00660000, /*beh*/ bhvPoleGrabbing),
99
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1413, 3222, -2190, /*angle*/ 0, 0, 0, /*behParam*/ 0x00520000, /*beh*/ bhvPoleGrabbing),
100
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 783, 1126, -47, /*angle*/ 0, 0, 0, /*behParam*/ 0x00660000, /*beh*/ bhvPoleGrabbing),
101
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 662, 2150, 708, /*angle*/ 0, 0, 0, /*behParam*/ 0x00660000, /*beh*/ bhvPoleGrabbing),
102
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2943, 476, 10, /*angle*/ 0, 270, 0, /*behParam*/ 0x00020000, /*beh*/ bhvFlamethrower),
103
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2759, 2350, -1108, /*angle*/ 0, 60, 0, /*behParam*/ 0x00020000, /*beh*/ bhvFlamethrower),
104
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2472, 2350, -1605, /*angle*/ 0, 60, 0, /*behParam*/ 0x00020000, /*beh*/ bhvFlamethrower),
105
OBJECT(/*model*/ MODEL_LLL_VOLCANO_FALLING_TRAP, /*pos*/ -485, 1203, 2933, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllVolcanoFallingTrap),
106
OBJECT(/*model*/ MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, /*pos*/ 417, 2150, 583, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLllRotatingBlockWithFireBars),
107
OBJECT(/*model*/ MODEL_CHECKERBOARD_PLATFORM, /*pos*/ -764, 0, 1664, /*angle*/ 0, 180, 0, /*behParam*/ 0x08A50000, /*beh*/ bhvPlatformOnTrack),
108
OBJECT(/*model*/ MODEL_CHECKERBOARD_PLATFORM, /*pos*/ 184, 980, -1366, /*angle*/ 0, 180, 0, /*behParam*/ 0x08A60000, /*beh*/ bhvPlatformOnTrack),
109
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -26, 103, -2649, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvVolcanoSoundLoop),
110
RETURN(),
111
};
112
113
static const LevelScript script_func_local_7[] = {
114
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 2523, 3850, -901, /*angle*/ 0, 0, 0, /*behParam*/ 0x04000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
115
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 1800, 3400, 1450, /*angle*/ 0, 0, 0, /*behParam*/ 0x05000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
116
RETURN(),
117
};
118
119
const LevelScript level_lll_entry[] = {
120
INIT_LEVEL(),
121
LOAD_MIO0( /*seg*/ 0x07, _lll_segment_7SegmentRomStart, _lll_segment_7SegmentRomEnd),
122
LOAD_MIO0_TEXTURE(/*seg*/ 0x09, _fire_mio0SegmentRomStart, _fire_mio0SegmentRomEnd),
123
LOAD_MIO0( /*seg*/ 0x0A, _bitfs_skybox_mio0SegmentRomStart, _bitfs_skybox_mio0SegmentRomEnd),
124
LOAD_MIO0( /*seg*/ 0x0B, _effect_mio0SegmentRomStart, _effect_mio0SegmentRomEnd),
125
LOAD_MIO0( /*seg*/ 0x05, _group2_mio0SegmentRomStart, _group2_mio0SegmentRomEnd),
126
LOAD_RAW( /*seg*/ 0x0C, _group2_geoSegmentRomStart, _group2_geoSegmentRomEnd),
127
LOAD_MIO0( /*seg*/ 0x06, _group17_mio0SegmentRomStart, _group17_mio0SegmentRomEnd),
128
LOAD_RAW( /*seg*/ 0x0D, _group17_geoSegmentRomStart, _group17_geoSegmentRomEnd),
129
LOAD_MIO0( /*seg*/ 0x08, _common0_mio0SegmentRomStart, _common0_mio0SegmentRomEnd),
130
LOAD_RAW( /*seg*/ 0x0F, _common0_geoSegmentRomStart, _common0_geoSegmentRomEnd),
131
ALLOC_LEVEL_POOL(),
132
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
133
JUMP_LINK(script_func_global_1),
134
JUMP_LINK(script_func_global_3),
135
JUMP_LINK(script_func_global_18),
136
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_03, lll_geo_0009E0),
137
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_04, lll_geo_0009F8),
138
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_05, lll_geo_000A10),
139
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_06, lll_geo_000A28),
140
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_07, lll_geo_000A40),
141
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_08, lll_geo_000A60),
142
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0A, lll_geo_000A90),
143
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0B, lll_geo_000AA8),
144
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0C, lll_geo_000AC0),
145
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0D, lll_geo_000AD8),
146
LOAD_MODEL_FROM_GEO(MODEL_LEVEL_GEOMETRY_0E, lll_geo_000AF0),
147
LOAD_MODEL_FROM_GEO(MODEL_LLL_DRAWBRIDGE_PART, lll_geo_000B20),
148
LOAD_MODEL_FROM_GEO(MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, lll_geo_000B38),
149
LOAD_MODEL_FROM_GEO(MODEL_LLL_ROTATING_HEXAGONAL_RING, lll_geo_000BB0),
150
LOAD_MODEL_FROM_GEO(MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, lll_geo_000BC8),
151
LOAD_MODEL_FROM_GEO(MODEL_LLL_SINKING_SQUARE_PLATFORMS, lll_geo_000BE0),
152
LOAD_MODEL_FROM_GEO(MODEL_LLL_TILTING_SQUARE_PLATFORM, lll_geo_000BF8),
153
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_1, lll_geo_000C10),
154
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_2, lll_geo_000C30),
155
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_3, lll_geo_000C50),
156
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_4, lll_geo_000C70),
157
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_5, lll_geo_000C90),
158
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_6, lll_geo_000CB0),
159
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_7, lll_geo_000CD0),
160
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_8, lll_geo_000CF0),
161
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_9, lll_geo_000D10),
162
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_10, lll_geo_000D30),
163
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_11, lll_geo_000D50),
164
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_12, lll_geo_000D70),
165
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_13, lll_geo_000D90),
166
LOAD_MODEL_FROM_GEO(MODEL_LLL_BOWSER_PIECE_14, lll_geo_000DB0),
167
LOAD_MODEL_FROM_GEO(MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, lll_geo_000B08),
168
LOAD_MODEL_FROM_GEO(MODEL_LLL_SINKING_ROCK_BLOCK, lll_geo_000DD0),
169
LOAD_MODEL_FROM_GEO(MODEL_LLL_ROLLING_LOG, lll_geo_000DE8),
170
LOAD_MODEL_FROM_GEO(MODEL_LLL_ROTATING_HEXAGONAL_PLATFORM, lll_geo_000A78),
171
LOAD_MODEL_FROM_GEO(MODEL_LLL_WOOD_BRIDGE, lll_geo_000B50),
172
LOAD_MODEL_FROM_GEO(MODEL_LLL_LARGE_WOOD_BRIDGE, lll_geo_000B68),
173
LOAD_MODEL_FROM_GEO(MODEL_LLL_FALLING_PLATFORM, lll_geo_000B80),
174
LOAD_MODEL_FROM_GEO(MODEL_LLL_LARGE_FALLING_PLATFORM, lll_geo_000B98),
175
LOAD_MODEL_FROM_GEO(MODEL_LLL_VOLCANO_FALLING_TRAP, lll_geo_000EA8),
176
177
AREA(/*index*/ 1, lll_geo_000E00),
178
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3839, 1154, 6272, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneWarp),
179
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 105, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x190B0000, /*beh*/ bhvWarp),
180
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -3200, 11, 3456, /*angle*/ 0, -100, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp),
181
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -5888, 154, 6656, /*angle*/ 0, 100, 0, /*behParam*/ 0x000D0000, /*beh*/ bhvFadingWarp),
182
WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT),
183
WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_CHECKPOINT),
184
WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0D, /*flags*/ WARP_NO_CHECKPOINT),
185
WARP_NODE(/*id*/ 0x0D, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT),
186
WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT),
187
WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT),
188
JUMP_LINK(script_func_local_1),
189
JUMP_LINK(script_func_local_2),
190
JUMP_LINK(script_func_local_3),
191
JUMP_LINK(script_func_local_4),
192
JUMP_LINK(script_func_local_5),
193
TERRAIN(/*terrainData*/ lll_seg7_area_1_collision),
194
MACRO_OBJECTS(/*objList*/ lll_seg7_area_1_macro_objs),
195
SHOW_DIALOG(/*index*/ 0x00, DIALOG_097),
196
SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0000, /*seq*/ SEQ_LEVEL_HOT),
197
TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE),
198
END_AREA(),
199
200
AREA(/*index*/ 2, lll_geo_000EC0),
201
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -955, 1103, -1029, /*angle*/ 0, 118, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvAirborneWarp),
202
WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_LLL, /*destArea*/ 0x02, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT),
203
WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x32, /*flags*/ WARP_NO_CHECKPOINT),
204
WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x03, /*destNode*/ 0x64, /*flags*/ WARP_NO_CHECKPOINT),
205
JUMP_LINK(script_func_local_6),
206
JUMP_LINK(script_func_local_7),
207
TERRAIN(/*terrainData*/ lll_seg7_area_2_collision),
208
MACRO_OBJECTS(/*objList*/ lll_seg7_area_2_macro_objs),
209
SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0004, /*seq*/ SEQ_LEVEL_HOT),
210
TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE),
211
END_AREA(),
212
213
FREE_LEVEL_POOL(),
214
MARIO_POS(/*area*/ 1, /*yaw*/ 90, /*pos*/ -3839, 154, 6272),
215
CALL(/*arg*/ 0, /*func*/ lvl_init_or_update),
216
CALL_LOOP(/*arg*/ 1, /*func*/ lvl_init_or_update),
217
CLEAR_LEVEL(),
218
SLEEP_BEFORE_EXIT(/*frames*/ 1),
219
EXIT(),
220
};
221
222