#include #include "sm64.h" #include "behavior_data.h" #include "model_ids.h" #include "seq_ids.h" #include "dialog_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/wf/header.h" static const LevelScript script_wf_macro_objects[] = { // Macro objects OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3760, 960, 2740, /*angle*/ 0, 0, 0, /*behParam*/ ((COIN_FORMATION_FLAG_NONE ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -1400, 1160, 3900, /*angle*/ 0, 90, 0, /*behParam*/ ((COIN_FORMATION_FLAG_NONE ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1254, 2586, 2299, /*angle*/ 0, 90, 0, /*behParam*/ ((COIN_FORMATION_FLAG_NONE ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2500, 1795, -260, /*angle*/ 0, 0, 0, /*behParam*/ ((COIN_FORMATION_FLAG_RING ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_BLUE_COIN_SWITCH, /*pos*/ -2500, 384, -250, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBlueCoinSwitch), OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ -2500, 450, -1150, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin), OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ -2500, 450, -900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin), OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ -2500, 450, -650, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin), OBJECT(/*model*/ MODEL_EXCLAMATION_BOX, /*pos*/ 2750, 1370, -3400, /*angle*/ 0, 0, 0, /*behParam*/ (EXCLAMATION_BOX_BP_METAL_CAP << 16), /*beh*/ bhvExclamationBox), OBJECT(/*model*/ MODEL_YELLOW_COIN, /*pos*/ 0, 2650, 2900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYellowCoin), OBJECT(/*model*/ MODEL_YELLOW_COIN, /*pos*/ -500, 2650, 2900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYellowCoin), OBJECT(/*model*/ MODEL_YELLOW_COIN, /*pos*/ 250, 2650, 2800, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYellowCoin), OBJECT(/*model*/ MODEL_YELLOW_COIN, /*pos*/ -750, 2650, 2800, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvYellowCoin), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2500, 4560, -256, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upInPoleSpawner), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 0, 2650, 2900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upTrigger), OBJECT(/*model*/ MODEL_1UP, /*pos*/ -250, 2650, 2400, /*angle*/ 0, 0, 0, /*behParam*/ (2 << 16), /*beh*/ bhvHidden1up), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ 4200, 256, 5160, /*angle*/ 0, 315, 0, /*behParam*/ (DIALOG_018 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ -2540, 2560, -900, /*angle*/ 0, 0, 0, /*behParam*/ (DIALOG_036 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ 1600, 2560, 2600, /*angle*/ 0, 90, 0, /*behParam*/ (DIALOG_042 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ -2705, 2560, 59, /*angle*/ 0, 270, 0, /*behParam*/ (DIALOG_051 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ 3460, 2304, -40, /*angle*/ 0, 180, 0, /*behParam*/ (DIALOG_096 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_DL_CANNON_LID, /*pos*/ -1844, 1026, 3893, /*angle*/ 0, 0, 0, /*behParam*/ (0x40 << 16), /*beh*/ bhvCannonClosed), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ -2932, 386, -157, /*angle*/ 0, 270, 0, /*behParam*/ (DIALOG_078 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -500, 2650, 2900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHidden1upTrigger), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ -250, 2650, 2970, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 1746, 3620, -3120, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 1277, 2600, 1350, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 1585, 2595, -80, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 3350, 3000, -1520, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 2700, 3600, -900, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ 3770, 1380, 650, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_RED_COIN, /*pos*/ -270, 1720, 2250, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvRedCoin), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1215, 3600, -2609, /*angle*/ 0, 135, 0, /*behParam*/ ((COIN_FORMATION_FLAG_ARROW ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_BLUE_COIN, /*pos*/ -2500, 450, -1400, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvHiddenBlueCoin), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 4611, 256, 141, /*angle*/ 0, 0, 0, /*behParam*/ ((COIN_FORMATION_FLAG_RING ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1558, 922, 2329, /*angle*/ 0, 0, 0, /*behParam*/ ((COIN_FORMATION_FLAG_RING ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3396, 1380, 3280, /*angle*/ 0, 0, 0, /*behParam*/ ((COIN_FORMATION_FLAG_NONE ) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 3234, 3345, -1787, /*angle*/ 0, 0, 0, /*behParam*/ ((COIN_FORMATION_FLAG_FLYING | COIN_FORMATION_FLAG_RING) << 16), /*beh*/ bhvCoinFormation), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ 4800, 256, 3000, /*angle*/ 0, 0, 0, /*behParam*/ (DIALOG_104 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_WOODEN_SIGNPOST, /*pos*/ 2930, 1075, -3740, /*angle*/ 0, 90, 0, /*behParam*/ (DIALOG_113 << 16), /*beh*/ bhvMessagePanel), OBJECT(/*model*/ MODEL_BREAKABLE_BOX, /*pos*/ 4320, 256, 1880, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBreakableBoxSmall), OBJECT(/*model*/ MODEL_BREAKABLE_BOX, /*pos*/ -2940, 384, -1320, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBreakableBoxSmall), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4574, 300, 1130, /*angle*/ 0, 0, 0, /*behParam*/ (TRIPLET_BUTTERFLY_BP_NO_BOMBS << 16), /*beh*/ bhvTripletButterfly), // Special objects OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0E, /*pos*/ 3584, 154, 4864, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0F, /*pos*/ 4608, 256, 1792, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_11, /*pos*/ -2499, 1792, -261, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_12, /*pos*/ -2661, 384, 640, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_BOB_BUBBLY_TREE, /*pos*/ 2560, 256, 4608, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvTree), RETURN(), }; static const LevelScript script_wf_objects_1[] = { OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_03, /*pos*/ 2305, 2432, -255, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_04, /*pos*/ 3405, 1664, -1791, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_05, /*pos*/ 3840, 0, -2303, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_05, /*pos*/ 3840, 0, -1279, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_06, /*pos*/ 0, 0, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_07, /*pos*/ 1757, 3519, -3151, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0A, /*pos*/ 3840, 794, 2688, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_LEVEL_GEOMETRY_0C, /*pos*/ 1408, 2522, 2431, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvStaticObject), OBJECT(/*model*/ MODEL_WF_GIANT_POLE, /*pos*/ -2560, 2560, -256, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvGiantPole), RETURN(), }; static const LevelScript script_wf_objects_2[] = { OBJECT(/*model*/ MODEL_WF_SMALL_BOMP, /*pos*/ 3300, 1070, 1, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBomp), OBJECT(/*model*/ MODEL_WF_SMALL_BOMP, /*pos*/ 3300, 1070, 1281, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallBomp), OBJECT(/*model*/ MODEL_WF_LARGE_BOMP, /*pos*/ 3300, 1070, 641, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvLargeBomp), OBJECT(/*model*/ MODEL_WF_ROTATING_WOODEN_PLATFORM, /*pos*/ -255, 2560, 2304, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfRotatingWoodenPlatform), OBJECT(/*model*/ MODEL_WF_SLIDING_PLATFORM, /*pos*/ 3328, 1075, -1791, /*angle*/ 0, 90, 0, /*behParam*/ 0x00020000, /*beh*/ bhvWfSlidingPlatform), OBJECT(/*model*/ MODEL_WF_SLIDING_PLATFORM, /*pos*/ 3328, 1075, -767, /*angle*/ 0, 90, 0, /*behParam*/ 0x00010000, /*beh*/ bhvWfSlidingPlatform), OBJECT(/*model*/ MODEL_WF_SLIDING_PLATFORM, /*pos*/ 3328, 1075, -2815, /*angle*/ 0, 90, 0, /*behParam*/ 0x00030000, /*beh*/ bhvWfSlidingPlatform), OBJECT(/*model*/ MODEL_WF_TUMBLING_BRIDGE, /*pos*/ 1792, 2496, 1600, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfTumblingBridge), OBJECT(/*model*/ MODEL_WF_BREAKABLE_WALL_RIGHT, /*pos*/ 512, 2176, 2944, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfBreakableWallRight), OBJECT(/*model*/ MODEL_WF_BREAKABLE_WALL_LEFT, /*pos*/ -1023, 2176, 2944, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWfBreakableWallLeft), 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), 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), OBJECT(/*model*/ MODEL_WF_ROTATING_PLATFORM, /*pos*/ 2304, 3584, -2303, /*angle*/ 0, 0, 0, /*behParam*/ 0x08000000, /*beh*/ bhvRotatingPlatform), OBJECT(/*model*/ MODEL_WF_ROTATING_PLATFORM, /*pos*/ 3200, 3328, -1791, /*angle*/ 0, 0, 0, /*behParam*/ 0x08000000, /*beh*/ bhvRotatingPlatform), OBJECT(/*model*/ MODEL_WF_ROTATING_PLATFORM, /*pos*/ 2688, 3584, -895, /*angle*/ 0, 0, 0, /*behParam*/ 0x08000000, /*beh*/ bhvRotatingPlatform), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2495, 1331, -256, /*angle*/ 0, 0, 0, /*behParam*/ 0x003D0000, /*beh*/ bhvPoleGrabbing), RETURN(), }; static const LevelScript script_wf_objects_3[] = { OBJECT(/*model*/ MODEL_THWOMP, /*pos*/ 3462, 1939, -1545, /*angle*/ 0, 180, 0, /*behParam*/ 0x00000000, /*beh*/ bhvThwomp), OBJECT(/*model*/ MODEL_THWOMP, /*pos*/ 3462, 1075, -3314, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvThwomp2), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -856, 922, 3819, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvBetaFishSplashSpawner), OBJECT(/*model*/ MODEL_PIRANHA_PLANT, /*pos*/ 1822, 2560, -101, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPiranhaPlant), OBJECT(/*model*/ MODEL_PIRANHA_PLANT, /*pos*/ 4625, 256, 5017, /*angle*/ 0, -90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPiranhaPlant), OBJECT(/*model*/ MODEL_PIRANHA_PLANT, /*pos*/ 689, 2560, 1845, /*angle*/ 0, 90, 0, /*behParam*/ 0x00000000, /*beh*/ bhvPiranhaPlant), OBJECT(/*model*/ MODEL_WHOMP, /*pos*/ -1545, 2560, -286, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallWhomp), OBJECT(/*model*/ MODEL_WHOMP, /*pos*/ 189, 2560, -1857, /*angle*/ 0, -135, 0, /*behParam*/ 0x00000000, /*beh*/ bhvSmallWhomp), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4736, 256, 4992, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 5120, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 4992, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 4864, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4480, 256, 4992, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 256, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4736, 256, 128, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4480, 256, 128, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_BUTTERFLY, /*pos*/ 4608, 256, 128, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvButterfly), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 1035, 2880, -900, /*angle*/ 0, 45, 0, /*behParam*/ 0x00000000, /*beh*/ bhvCheckerboardElevatorGroup), 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), 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), 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), 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), 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), 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), 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), RETURN(), }; static const LevelScript script_wf_objects_4[] = { OBJECT_WITH_ACTS(/*model*/ MODEL_WHOMP, /*pos*/ 0, 3584, 0, /*angle*/ 0, 0, 0, /*behParam*/ 0x00000000, /*beh*/ bhvWhompKingBoss, /*acts*/ ACT_1), 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), OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ -2500, 1500, -750, /*angle*/ 0, 0, 0, /*behParam*/ 0x02000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS), OBJECT_WITH_ACTS(/*model*/ MODEL_NONE, /*pos*/ 4600, 550, 2500, /*angle*/ 0, 0, 0, /*behParam*/ 0x03000000, /*beh*/ bhvHiddenRedCoinStar, /*acts*/ ALL_ACTS), OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 2880, 4300, 190, /*angle*/ 0, 0, 0, /*behParam*/ 0x04000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS), OBJECT_WITH_ACTS(/*model*/ MODEL_STAR, /*pos*/ 590, 2450, 2650, /*angle*/ 0, 0, 0, /*behParam*/ 0x05000000, /*beh*/ bhvStar, /*acts*/ ALL_ACTS), RETURN(), }; const LevelScript level_wf_entry[] = { INIT_LEVEL(), #include "levels/wf/areas/script_vanilla.inc.c" ALLOC_LEVEL_POOL(), MARIO(/*model*/ MODEL_MARIO, /*behParam*/ 0x00000001, /*beh*/ bhvMario), #include "levels/wf/areas/script_vanilla_load.inc.c" AREA(/*index*/ 1, wf_geo_000BF8), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2600, 1256, 5120, /*angle*/ 0, 90, 0, /*behParam*/ 0x000A0000, /*beh*/ bhvSpinAirborneWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ -2925, 2560, -947, /*angle*/ 0, 19, 0, /*behParam*/ 0x000B0000, /*beh*/ bhvFadingWarp), OBJECT(/*model*/ MODEL_NONE, /*pos*/ 2548, 1075, -3962, /*angle*/ 0, 51, 0, /*behParam*/ 0x000C0000, /*beh*/ bhvFadingWarp), WARP_NODE(/*id*/ 0x0A, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0A, /*flags*/ WARP_NO_CHECKPOINT), WARP_NODE(/*id*/ 0x0B, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0C, /*flags*/ WARP_NO_CHECKPOINT), WARP_NODE(/*id*/ 0x0C, /*destLevel*/ LEVEL_WF, /*destArea*/ 0x01, /*destNode*/ 0x0B, /*flags*/ WARP_NO_CHECKPOINT), WARP_NODE(/*id*/ 0xF0, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x34, /*flags*/ WARP_NO_CHECKPOINT), WARP_NODE(/*id*/ 0xF1, /*destLevel*/ LEVEL_CASTLE, /*destArea*/ 0x01, /*destNode*/ 0x66, /*flags*/ WARP_NO_CHECKPOINT), JUMP_LINK(script_wf_objects_1), JUMP_LINK(script_wf_objects_2), JUMP_LINK(script_wf_objects_3), JUMP_LINK(script_wf_objects_4), TERRAIN(/*terrainData*/ wf_seg7_collision_070102D8), JUMP_LINK(/*objList*/ script_wf_macro_objects), SHOW_DIALOG(/*index*/ 0x00, DIALOG_030), SET_BACKGROUND_MUSIC(/*settingsPreset*/ 0x0005, /*seq*/ SEQ_LEVEL_GRASS), TERRAIN_TYPE(/*terrainType*/ TERRAIN_STONE), END_AREA(), FREE_LEVEL_POOL(), MARIO_POS(/*area*/ 1, /*yaw*/ 90, /*pos*/ 2600, 256, 5120), 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(), };