special_presets.inc.c (11300B)
1 #include "special_presets.h" 2 3 // Special Preset types 4 #define SPTYPE_NO_YROT_OR_PARAMS 0 // object is 8-bytes long, no y-rotation or any behavior params 5 #define SPTYPE_YROT_NO_PARAMS 1 // object is 10-bytes long, has y-rotation but no params 6 #define SPTYPE_PARAMS_AND_YROT 2 // object is 12-bytes long, has y-rotation and params 7 #define SPTYPE_UNKNOWN 3 // object is 14-bytes long, has 3 extra shorts that get converted to floats. 8 #define SPTYPE_DEF_PARAM_AND_YROT 4 // object is 10-bytes long, has y-rotation and uses the default param 9 10 struct SpecialPreset { 11 /* 0x00 */ u8 presetID; 12 /* 0x01 */ u8 type; // Determines whether object is 8, 10, 12 or 14 bytes long. 13 /* 0x02 */ u8 defParam; // Default parameter, only used when type is SPTYPE_DEF_PARAM_AND_YROT 14 /* 0x03 */ u8 model; 15 /* 0x04 */ const BehaviorScript *behavior; 16 }; 17 18 // Some Models ID's are missing their names because they are probably unused 19 20 static struct SpecialPreset sSpecialObjectPresets[] = { 21 { special_null_start, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_NONE, NULL }, 22 { special_yellow_coin, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvYellowCoin }, 23 { special_yellow_coin_2, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvYellowCoin }, 24 { special_unknown_3, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_B8, bhvStaticObject }, 25 { special_boo, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOO, bhvCourtyardBooTriplet }, 26 { special_unknown_5, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_AC, bhvCastleFloorTrap }, 27 { special_lll_moving_octagonal_mesh_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_MOVING_OCTAGONAL_MESH_PLATFORM, bhvLLLMovingOctagonalMeshPlatform }, 28 { special_snow_ball, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_CCM_SNOWMAN_HEAD, bhvSnowBall }, 29 { special_lll_drawbridge_spawner, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LLL_DRAWBRIDGE_PART, bhvLLLDrawbridgeSpawner }, 30 { special_empty_9, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 31 { special_lll_rotating_block_with_fire_bars, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_ROTATING_BLOCK_FIRE_BARS, bhvLLLRotatingBlockWithFireBars }, 32 { special_lll_floating_wood_bridge, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLFloatingWoodBridge }, 33 { special_tumbling_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLTumblingBridge }, 34 { special_lll_rotating_hexagonal_ring, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_ROTATING_HEXAGONAL_RING , bhvLLLRotatingHexagonalRing }, 35 { special_lll_sinking_rectangular_platform, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LLL_SINKING_RECTANGULAR_PLATFORM, bhvLLLSinkingRectangularPlatform }, 36 { special_lll_sinking_square_platforms, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_SINKING_SQUARE_PLATFORMS, bhvLLLSinkingSquarePlatforms }, 37 { special_lll_tilting_square_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_LLL_TILTING_SQUARE_PLATFORM, bhvLLLTiltingInvertedPyramid }, 38 { special_lll_bowser_puzzle, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvLLLBowserPuzzle }, 39 { special_mr_i, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvMrI }, 40 { special_small_bully, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BULLY, bhvSmallBully }, 41 { special_big_bully, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BULLY_BOSS, bhvBigBully }, 42 { special_empty_21, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 43 { special_empty_22, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 44 { special_empty_23, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 45 { special_empty_24, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 46 { special_empty_25, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 47 { special_moving_blue_coin, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_YELLOW_COIN, bhvMovingBlueCoin }, 48 { special_jrb_chest, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_TREASURE_CHEST_BASE, bhvBetaChestBottom }, 49 { special_water_ring, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WATER_RING, bhvJetStreamRingSpawner }, 50 { special_mine, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WATER_MINE, bhvBowserBomb }, 51 { special_empty_30, SPTYPE_UNKNOWN, 0x00, MODEL_NONE, bhvStaticObject }, 52 { special_empty_31, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvStaticObject }, 53 { special_butterfly, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BUTTERFLY, bhvButterfly }, 54 { special_bowser, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOWSER, bhvBowser }, 55 { special_wf_rotating_wooden_platform, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_ROTATING_WOODEN_PLATFORM, bhvWFRotatingWoodenPlatform }, 56 { special_small_bomp, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_WF_SMALL_BOMP, bhvSmallBomp }, 57 { special_wf_sliding_platform, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_WF_SLIDING_PLATFORM, bhvWFSlidingPlatform }, 58 { special_tower_platform_group, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvTowerPlatformGroup }, 59 { special_rotating_counter_clockwise, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, bhvRotatingCounterClockwise }, 60 { special_wf_tumbling_bridge, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_TUMBLING_BRIDGE, bhvTumblingBridge }, 61 { special_large_bomp, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_WF_LARGE_BOMP, bhvLargeBomp }, 62 { special_level_geo_03, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_03, bhvStaticObject }, 63 { special_level_geo_04, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_04, bhvStaticObject }, 64 { special_level_geo_05, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_05, bhvStaticObject }, 65 { special_level_geo_06, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_06, bhvStaticObject }, 66 { special_level_geo_07, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_07, bhvStaticObject }, 67 { special_level_geo_08, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_08, bhvStaticObject }, 68 { special_level_geo_09, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_09, bhvStaticObject }, 69 { special_level_geo_0A, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0A, bhvStaticObject }, 70 { special_level_geo_0B, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0B, bhvStaticObject }, 71 { special_level_geo_0C, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0C, bhvStaticObject }, 72 { special_level_geo_0D, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0D, bhvStaticObject }, 73 { special_level_geo_0E, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0E, bhvStaticObject }, 74 { special_level_geo_0F, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_0F, bhvStaticObject }, 75 { special_level_geo_10, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_10, bhvStaticObject }, 76 { special_level_geo_11, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_11, bhvStaticObject }, 77 { special_level_geo_12, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_12, bhvStaticObject }, 78 { special_level_geo_13, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_13, bhvStaticObject }, 79 { special_level_geo_14, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_14, bhvStaticObject }, 80 { special_level_geo_15, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_15, bhvStaticObject }, 81 { special_level_geo_16, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_LEVEL_GEOMETRY_16, bhvStaticObject }, 82 { special_bubble_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_BOB_BUBBLY_TREE, bhvTree }, 83 { special_spiky_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_COURTYARD_SPIKY_TREE, bhvTree }, 84 { special_snow_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_CCM_SNOW_TREE, bhvTree }, 85 { special_unknown_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_UNKNOWN_TREE_1A, bhvTree }, 86 { special_palm_tree, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_SSL_PALM_TREE, bhvTree }, 87 { special_castle_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_CASTLE_CASTLE_DOOR_UNUSED, bhvDoor }, 88 { special_wooden_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_CASTLE_WOODEN_DOOR_UNUSED, bhvDoor }, 89 { special_unknown_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_UNKNOWN_DOOR_1E, bhvDoor }, 90 { special_metal_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_HMC_METAL_DOOR, bhvDoor }, 91 { special_hmc_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_HMC_HAZY_MAZE_DOOR, bhvDoor }, 92 { special_unknown2_door, SPTYPE_YROT_NO_PARAMS, 0x00, MODEL_UNKNOWN_DOOR_21, bhvDoor }, 93 { special_0stars_door, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_DOOR_0_STARS, bhvDoor }, 94 { special_1star_door, SPTYPE_DEF_PARAM_AND_YROT, 0x01, MODEL_CASTLE_DOOR_1_STAR, bhvDoor }, 95 { special_3star_door, SPTYPE_DEF_PARAM_AND_YROT, 0x03, MODEL_CASTLE_DOOR_3_STARS, bhvDoor }, 96 { special_key_door, SPTYPE_DEF_PARAM_AND_YROT, 0x00, MODEL_CASTLE_KEY_DOOR, bhvDoor }, 97 { special_castle_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_CASTLE_DOOR, bhvDoorWarp }, 98 { special_wooden_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_WOODEN_DOOR, bhvDoorWarp }, 99 { special_unknown1_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_28, bhvDoorWarp }, 100 { special_metal_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_CASTLE_METAL_DOOR, bhvDoorWarp }, 101 { special_unknown2_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_2A, bhvDoorWarp }, 102 { special_unknown3_door_warp, SPTYPE_PARAMS_AND_YROT, 0x00, MODEL_UNKNOWN_DOOR_2B, bhvDoorWarp }, 103 { special_null_end, SPTYPE_NO_YROT_OR_PARAMS, 0x00, MODEL_NONE, NULL }, 104 };