You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
* Move level script to bank 0x1A * Decouple vanilla objects in a separate bank * Rollback group level scripts move, fixed nits * Move actors_vanilla to actors/vanilla_actors * Make EU translation segment last, remove vanilla objects segments copypaste * Added LOAD_VANILLA_OBJECTS segment id stub
178 lines
21 KiB
C
178 lines
21 KiB
C
#include <ultra64.h>
|
|
#include "sm64.h"
|
|
#include "behavior_data.h"
|
|
#include "model_ids.h"
|
|
#include "seq_ids.h"
|
|
#include "segment_symbols.h"
|
|
#include "level_commands.h"
|
|
|
|
#include "game/level_update.h"
|
|
|
|
#include "levels/scripts.h"
|
|
|
|
#include "actors/common1.h"
|
|
|
|
#include "make_const_nonconst.h"
|
|
#include "levels/ttc/header.h"
|
|
|
|
|
|
static const LevelScript script_ttc_macro_objects[] = {
|
|
// Macro objects
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_CUBE, /*pos*/ -1032, -3291, 1070, /*angle*/ 0, 45, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_CUBE << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_CUBE, /*pos*/ -1881, 1767, -446, /*angle*/ 0, 90, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_CUBE << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_CUBE, /*pos*/ -1870, 2068, 362, /*angle*/ 0, 90, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_CUBE << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_CUBE, /*pos*/ -770, -4361, -423, /*angle*/ 0, 225, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_CUBE << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_CUBE, /*pos*/ -1314, -3691, 788, /*angle*/ 0, 135, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_CUBE << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_CUBE, /*pos*/ -1314, -2892, 1353, /*angle*/ 0, 135, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_CUBE << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_PRISM, /*pos*/ 780, 5767, -1027, /*angle*/ 0, 315, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_PRISM, /*pos*/ 1063, 5562, -744, /*angle*/ 0, 315, 0, /*behParam*/ (TTC_ROTATING_SOLID_BP_TRIANGULAR_PRISM << 16), /*beh*/ bhvTTCRotatingSolid),
|
|
OBJECT(/*model*/ MODEL_TTC_PENDULUM, /*pos*/ -1350, 748, -1208, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCPendulum),
|
|
OBJECT(/*model*/ MODEL_TTC_PENDULUM, /*pos*/ -690, 901, -910, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCPendulum),
|
|
OBJECT(/*model*/ MODEL_TTC_PENDULUM, /*pos*/ -1389, -3030, -1028, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCPendulum),
|
|
OBJECT(/*model*/ MODEL_TTC_PENDULUM, /*pos*/ 937, -3867, -1041, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCPendulum),
|
|
OBJECT(/*model*/ MODEL_TTC_LARGE_TREADMILL, /*pos*/ -139, -4408, -1056, /*angle*/ 0, 135, 0, /*behParam*/ (TREADMILL_BP_LARGE << 16), /*beh*/ bhvTTCTreadmill),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_TREADMILL, /*pos*/ 618, 3656, 148, /*angle*/ 0, 90, 0, /*behParam*/ (TREADMILL_BP_SMALL << 16), /*beh*/ bhvTTCTreadmill),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_TREADMILL, /*pos*/ 963, 3297, 608, /*angle*/ 0, 270, 0, /*behParam*/ (TREADMILL_BP_SMALL << 16), /*beh*/ bhvTTCTreadmill),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_TREADMILL, /*pos*/ 1306, 2939, 1069, /*angle*/ 0, 90, 0, /*behParam*/ (TREADMILL_BP_SMALL << 16), /*beh*/ bhvTTCTreadmill),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_TREADMILL, /*pos*/ -1179, -1453, -792, /*angle*/ 0, 315, 0, /*behParam*/ (TREADMILL_BP_SMALL << 16), /*beh*/ bhvTTCTreadmill),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ 174, 1248, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 2 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -1321, 1490, -1563, /*angle*/ 0, 45, 0, /*behParam*/ ( 0 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -1076, 1730, -1808, /*angle*/ 0, 45, 0, /*behParam*/ ( 5 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -1319, 1970, -1564, /*angle*/ 0, 45, 0, /*behParam*/ (10 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -517, 3175, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 0 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -170, 1248, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 1 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -515, 1248, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 0 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -175, -1351, -2039, /*angle*/ 0, 0, 0, /*behParam*/ ( 0 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -515, -2590, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 0 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ 518, 3175, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 3 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ -171, 3175, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 1 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_PUSH_BLOCK, /*pos*/ 174, 3175, 2040, /*angle*/ 0, 180, 0, /*behParam*/ ( 2 << 16), /*beh*/ bhvTTCMovingBar),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_HEXAGON, /*pos*/ 1490, -2088, -873, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_COG_BP_SHAPE_HEXAGON << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_HEXAGON, /*pos*/ -708, -1606, -1589, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_COG_BP_SHAPE_HEXAGON << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_HEXAGON, /*pos*/ 954, -1627, -1448, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_COG_BP_SHAPE_HEXAGON << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_HEXAGON, /*pos*/ 1215, -1781, -1215, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_COG_BP_SHAPE_HEXAGON << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_HEXAGON, /*pos*/ 1052, -1934, -769, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_COG_BP_SHAPE_HEXAGON << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_TRIANGLE, /*pos*/ -620, 1229, 1233, /*angle*/ 0, 225, 0, /*behParam*/ (TTC_COG_BP_SHAPE_TRIANGLE << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_TRIANGLE, /*pos*/ 1050, -19, -1037, /*angle*/ 0, 315, 0, /*behParam*/ (TTC_COG_BP_SHAPE_TRIANGLE << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_TTC_PIT_BLOCK, /*pos*/ -1100, -71, -1030, /*angle*/ 0, 315, 0, /*behParam*/ (TTC_PIT_BLOCK_BP_0 << 16), /*beh*/ bhvTTCPitBlock),
|
|
OBJECT(/*model*/ MODEL_TTC_CLOCK_HAND, /*pos*/ 0, 6011, 0, /*angle*/ 0, 225, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_HAND << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_CLOCK_HAND, /*pos*/ 0, -2487, 0, /*angle*/ 0, 45, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_HAND << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1102, -3619, 1682, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 424, -3312, 1959, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1102, -3004, 1682, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1584, -2697, 1200, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1582, -3619, 1203, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ -762, 4347, 1047, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 424, -3926, 1959, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1102, -4233, 1682, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1102, -4848, 1682, /*angle*/ 0, 135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 424, -4540, 1959, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ -1037, 4244, 772, /*angle*/ 0, 315, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1828, 3835, -50, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1459, 3835, -357, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SPINNER, /*pos*/ 1091, 3835, -665, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTTCSpinner),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_GEAR, /*pos*/ 1580, -4854, -825, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_2D_COG << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_GEAR, /*pos*/ -1692, 1022, -1157, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_2D_COG << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_GEAR, /*pos*/ 2098, 7007, 2243, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_2D_COG << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_LARGE_GEAR, /*pos*/ 1801, -4843, -731, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_2D_COG << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_LARGE_GEAR, /*pos*/ -1477, 1044, -1088, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_2D_COG << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_TTC_LARGE_GEAR, /*pos*/ 2268, 7030, 2227, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_2D_ROTATOR_BP_2D_COG << 16), /*beh*/ bhvTTC2DRotator),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 800, -4400, 1900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 800, -3700, 1900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 800, -3000, 1900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 1780, -3300, 1000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 1388, -3300, 1428, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 200, -3000, 2000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 200, -3700, 2000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 200, -4400, 2000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin),
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1080, 90, 1575, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upInPoleSpawner),
|
|
OBJECT(/*model*/ MODEL_TTC_ELEVATOR_PLATFORM, /*pos*/ -1179, 445, 1413, /*angle*/ 0, 45, 0, /*behParam*/ (6 << 16), /*beh*/ bhvTTCElevator),
|
|
OBJECT(/*model*/ MODEL_TTC_ELEVATOR_PLATFORM, /*pos*/ -1524, -1454, 1129, /*angle*/ 0, 315, 0, /*behParam*/ (2 << 16), /*beh*/ bhvTTCElevator),
|
|
OBJECT(/*model*/ MODEL_AMP, /*pos*/ -980, -700, 1450, /*angle*/ 0, 0, 0, /*behParam*/ (1 << 16), /*beh*/ bhvCirclingAmp),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN_SWITCH, /*pos*/ -1203, -19, -170, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBlueCoinSwitch),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ 0, 20, -1400, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ -250, 20, -1700, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ 250, 20, -1700, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ 0, 20, -2000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ 500, 20, -2000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ -500, 20, -2000, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_HEAVE_HO, /*pos*/ 880, -19, 1160, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHeaveHo),
|
|
OBJECT(/*model*/ MODEL_BOWLING_BALL, /*pos*/ 800, -2460, 160, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFireSpitter),
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1120, -820, 1320, /*angle*/ 0, 45, 0, /*behParam*/ ((COIN_FORMATION_FLAG_NONE) << 16), /*beh*/ bhvCoinFormation),
|
|
OBJECT(/*model*/ MODEL_BOWLING_BALL, /*pos*/ -571, 6020, -1414, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvFireSpitter),
|
|
OBJECT(/*model*/ MODEL_HEART, /*pos*/ 620, -5150, 1540, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRecoveryHeart),
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -520, 1351, 1919, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upTrigger),
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -165, 1351, 1919, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upTrigger),
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 182, 1351, 1919, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upTrigger),
|
|
OBJECT(/*model*/ MODEL_1UP, /*pos*/ 657, 1368, 1879, /*angle*/ 0, 0, 0, /*behParam*/ (3 << 16), /*beh*/ bhvHidden1up),
|
|
OBJECT(/*model*/ MODEL_AMP, /*pos*/ -700, -2350, -700, /*angle*/ 0, 0, 0, /*behParam*/ (1 << 16), /*beh*/ bhvCirclingAmp),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 1883, 4150, 550, /*angle*/ 0, 0, 0, /*behParam*/ (EXCLAMATION_BOX_BP_1UP_WALKING << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_HEART, /*pos*/ -1333, 350, 1116, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRecoveryHeart),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ -1101, 6316, -685, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_1UP_WALKING << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_BLACK_BOBOMB, /*pos*/ 1077, -4822, 638, /*angle*/ 0, 0, 0, /*behParam*/ (BOBOMB_BP_STYPE_GENERIC << 16), /*beh*/ bhvBobomb),
|
|
OBJECT(/*model*/ MODEL_BLACK_BOBOMB, /*pos*/ 1683, -4822, 189, /*angle*/ 0, 0, 0, /*behParam*/ (BOBOMB_BP_STYPE_GENERIC << 16), /*beh*/ bhvBobomb),
|
|
OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ 0, 20, -1700, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin),
|
|
OBJECT(/*model*/ MODEL_TTC_ROTATING_HEXAGON, /*pos*/ -1020, 1229, 537, /*angle*/ 0, 0, 0, /*behParam*/ (TTC_COG_BP_SHAPE_HEXAGON << 16), /*beh*/ bhvTTCCog),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 2350, 5600, 2350, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_10 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 0, 4783, 0, /*angle*/ 0, 0, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_10 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ -1140, -3720, -1620, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_3 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 840, -2200, 860, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_3 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_YELLOW_COIN, /*pos*/ -770, -3800, -440, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYellowCoin),
|
|
OBJECT(/*model*/ MODEL_YELLOW_COIN, /*pos*/ -770, -3700, -440, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYellowCoin),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 280, -4920, 1660, /*angle*/ 0, 0, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_10 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 1240, 300, 840, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_3 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 520, 300, 1500, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_3 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ -400, 3600, 1880, /*angle*/ 0, 0, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_10 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ -40, 4160, -1280, /*angle*/ 0, 0, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_3 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ -1160, 2920, -840, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_3 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ -780, 6316, -1020, /*angle*/ 0, 45, 0, /*behParam*/ (EXCLAMATION_BOX_BP_COINS_10 << 16), /*beh*/ bhvExclamationBox),
|
|
OBJECT(/*model*/ MODEL_TTC_LARGE_TREADMILL, /*pos*/ 1313, 6190, 1313, /*angle*/ 0, 45, 0, /*behParam*/ ((TREADMILL_BP_UNKNOWN | TREADMILL_BP_LARGE) << 16), /*beh*/ bhvTTCTreadmill),
|
|
OBJECT(/*model*/ MODEL_TTC_SMALL_TREADMILL, /*pos*/ 1851, -2488, -98, /*angle*/ 0, 0, 0, /*behParam*/ ((TREADMILL_BP_UNKNOWN | TREADMILL_BP_SMALL) << 16), /*beh*/ bhvTTCTreadmill),
|
|
RETURN(),
|
|
};
|
|
|
|
static const LevelScript script_ttc_objects_1[] = {
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1080, -840, 1573, /*angle*/ 0, 0, 0, /*behParam*/ 0x00560000, /*beh*/ bhvPoleGrabbing),
|
|
OBJECT(/*model*/ MODEL_THWOMP, /*pos*/ 1919, 6191, 1919, /*angle*/ 0, 225, 0, /*behParam*/ 0x00000000, /*beh*/ bhvThwomp2),
|
|
RETURN(),
|
|
};
|
|
|
|
static const LevelScript script_ttc_objects_2[] = {
|
|
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -1450, -1130, -1050, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
|
|
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -1850, 300, -950, /*angle*/ 0, 0, 0, /*behParam*/ 0x01000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
|
|
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -1300, -2250, -1300, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
|
|
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 2200, 7300, 2210, /*angle*/ 0, 0, 0, /*behParam*/ 0x03000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
|
|
OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -1050, 2400, -790, /*angle*/ 0, 0, 0, /*behParam*/ 0x04000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS),
|
|
OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 1815, -3200, 800, /*angle*/ 0, 0, 0, /*behParam*/ 0x05000000, /*beh*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS),
|
|
RETURN(),
|
|
};
|
|
|
|
const LevelScript level_ttc_entry[] = {
|
|
INIT_LEVEL(),
|
|
#include "levels/ttc/areas/script_vanilla_load.inc.c"
|
|
ALLOC_LEVEL_POOL(),
|
|
MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario),
|
|
#include "levels/ttc/areas/script_vanilla.inc.c"
|
|
|
|
AREA(/*index*/ 1, ttc_geo_0003B8),
|
|
OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1417, -3822, -548, /*angle*/ 0, 316, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneWarp),
|
|
WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_TTC, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT),
|
|
WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x35, /*flags*/ WARP_NO_CHECKPOINT),
|
|
WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x02, /*destNode*/ 0x67, /*flags*/ WARP_NO_CHECKPOINT),
|
|
JUMP_LINK(script_ttc_objects_1),
|
|
JUMP_LINK(script_ttc_objects_2),
|
|
TERRAIN(/*terrainData*/ ttc_seg7_collision_level),
|
|
JUMP_LINK(script_ttc_macro_objects),
|
|
SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0001, /*seq*/ SEQ_LEVEL_SLIDE),
|
|
TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE),
|
|
END_AREA(),
|
|
|
|
FREE_LEVEL_POOL(),
|
|
MARIO_POS(/*area*/ 1, /*yaw*/ 316, /*pos*/ 1417, -4822, -548),
|
|
CALL(/*arg*/ 0, /*func*/ lvl_init_or_update),
|
|
CALL_LOOP(/*arg*/ 1, /*func*/ lvl_init_or_update),
|
|
CLEAR_LEVEL(),
|
|
SLEEP_BEFORE_EXIT(/*frames*/ 1),
|
|
EXIT(),
|
|
};
|