From 551f96fb5c4c3ba6d0f5946d429e53610bc88a54 Mon Sep 17 00:00:00 2001 From: Lila Date: Wed, 14 Aug 2024 11:08:57 +0100 Subject: [PATCH] figure out level from group --- fast64_internal/sm64/sm64_constants.py | 171 +++++-------------------- 1 file changed, 33 insertions(+), 138 deletions(-) diff --git a/fast64_internal/sm64/sm64_constants.py b/fast64_internal/sm64/sm64_constants.py index 2e9161d72..090a05629 100644 --- a/fast64_internal/sm64/sm64_constants.py +++ b/fast64_internal/sm64/sm64_constants.py @@ -2240,7 +2240,7 @@ def __post_init__(self): class ActorPresetInfo: # TODO: Pass in name? decomp_path: str = None - level: str = None + level: str | None = None group: str | None = None animation: DictOrVal[AnimInfo] = dataclasses.field(default_factory=dict) models: DictOrVal[ModelInfo] = dataclasses.field(default_factory=dict) @@ -2248,11 +2248,35 @@ class ActorPresetInfo: def __post_init__(self): assert self.decomp_path is not None and isinstance(self.decomp_path, str) - assert self.level is not None and isinstance(self.level, str) assert self.group is None or isinstance(self.group, str) assert validate_dict(self.animation, AnimInfo) assert validate_dict(self.models, ModelInfo) assert validate_dict(self.collision, CollisionInfo) + group_to_level = { + "common0": "HH", + "common1": "HH", + "group0": "HH", + "group1": "WF", + "group2": "LLL", + "group3": "BOB", + "group4": "JRB", + "group5": "SSL", + "group6": "TTM", + "group7": "CCM", + "group8": "VC", + "group9": "HH", + "group10": "CG", + "group11": "THI", + "group12": "BFB", + "group13": "WDW", + "group14": "BOB", + "group15": "IC", + "group16": "CCM", + "group17": "HMC", + } + if self.level is None and self.group is not None: + self.level = group_to_level[self.group] + assert isinstance(self.level, str) @staticmethod def get_member_as_dict(name: str, member: DictOrVal): @@ -2263,7 +2287,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Amp": ActorPresetInfo( decomp_path="actors/amp", group="common0", - level="HH", animation=AnimInfo( address=134234164, behaviours={"Circling Amp": 318780296, "Homing Amp": 318780244}, names=["Moving"] ), @@ -2272,7 +2295,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bird": ActorPresetInfo( decomp_path="actors/bird", group="group10", - level="CG", animation=AnimInfo( address=83888616, behaviours={"Bird": 318788436, "End Birds 1": 318789212, "End Birds 2": 318789248}, @@ -2283,21 +2305,18 @@ def get_member_as_dict(name: str, member: DictOrVal): "Blargg": ActorPresetInfo( decomp_path="actors/blargg", group="group2", - level="LLL", animation=AnimInfo(address=83911020, names=["Idle", "Bite"]), models=ModelInfo(model_id=ModelIDInfo(84, "MODEL_BLARGG"), geolayout=201327168), ), "Blue Coin Switch": ActorPresetInfo( decomp_path="actors/blue_coin_switch", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(140, "MODEL_BLUE_COIN_SWITCH"), geolayout=251658240), collision=CollisionInfo(address=134221464, c_name="blue_coin_switch_seg8_collision_08000E98"), ), "Blue Fish": ActorPresetInfo( decomp_path="actors/blue_fish", group="common1", - level="HH", animation=AnimInfo(address=50447024, behaviours=318774060, names=["Swimming", "Diving"]), models={ "Fish": ModelInfo(model_id=ModelIDInfo(185, "MODEL_FISH"), geolayout=369101892), @@ -2307,7 +2326,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bobomb": ActorPresetInfo( decomp_path="actors/bobomb", group="common0", - level="BOB", animation=AnimInfo( address=134363500, behaviours={"Bobomb": 318779764, "Bobomb Buddy": 318779868, "Bobomb Buddy (Opens Cannon)": 318779944}, @@ -2321,7 +2339,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bowser Bomb": ActorPresetInfo( decomp_path="actors/bomb", group="group12", - level="BFB", models=ModelInfo( model_id=[ModelIDInfo(101, "MODEL_BOWSER_BOMB_CHILD_OBJ"), ModelIDInfo(179, "MODEL_BOWSER_BOMB")], geolayout=218106812, @@ -2330,32 +2347,27 @@ def get_member_as_dict(name: str, member: DictOrVal): "Boo": ActorPresetInfo( decomp_path="actors/boo", group="group9", - level="HH", models=ModelInfo(model_id=ModelIDInfo(84, "MODEL_BOO"), geolayout=201327140), ), "Boo (Inside Castle)": ActorPresetInfo( decomp_path="actors/boo_castle", group="group15", - level="IC", models=ModelInfo(model_id=ModelIDInfo(101, "MODEL_BOO_CASTLE"), geolayout=218105264), ), "Bookend": ActorPresetInfo( decomp_path="actors/book", group="group9", - level="HH", models=ModelInfo(model_id=ModelIDInfo(89, "MODEL_BOOKEND"), geolayout=201326784), ), "Bookend Part": ActorPresetInfo( decomp_path="actors/bookend", group="group9", - level="HH", animation=AnimInfo(address=83895616, behaviours=318787692, names=["Opening Mouth", "Bite", "Closed"]), models=ModelInfo(model_id=ModelIDInfo(88, "MODEL_BOOKEND_PART"), geolayout=201326592), ), "Metal Ball": ActorPresetInfo( decomp_path="actors/bowling_ball", group="common0", - level="HH", models={ "Bowling Ball": ModelInfo(model_id=ModelIDInfo(180, "MODEL_BOWLING_BALL"), geolayout=251659840), "Trajectory Marker Ball": ModelInfo( @@ -2366,7 +2378,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bowser": ActorPresetInfo( decomp_path="actors/bowser", group="group12", - level="BFB", animation=AnimInfo( address=101021664, behaviours=318773328, @@ -2409,13 +2420,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bowser Flame": ActorPresetInfo( decomp_path="actors/bowser_flame", group="group12", - level="BFB", models=ModelInfo(model_id=ModelIDInfo(103, "MODEL_BOWSER_FLAMES"), geolayout=218103808), ), "Bowser Key": ActorPresetInfo( decomp_path="actors/bowser_key", group="common1", - level="BFB", animation=AnimInfo( address=50426576, behaviours={"Bowser Key": 318774196, "Bowser Key (Cutscene)": 318774228}, @@ -2432,7 +2441,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Breakable Box": ActorPresetInfo( decomp_path="actors/breakable_box", group="common0", - level="HH", models={ "Breakable Box": ModelInfo(model_id=ModelIDInfo(129, "MODEL_BREAKABLE_BOX"), geolayout=251659728), "Breakable Box (Small)": ModelInfo( @@ -2444,20 +2452,17 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bub": ActorPresetInfo( decomp_path="actors/bub", group="group13", - level="DDD", animation=AnimInfo(address=100737876, behaviours=318775820, names=["Swimming"]), models=ModelInfo(model_id=ModelIDInfo(100, "MODEL_BUB"), geolayout=218104716), ), "Bubba": ActorPresetInfo( decomp_path="actors/bubba", group="group11", - level="THI", models=ModelInfo(model_id=ModelIDInfo(89, "MODEL_BUBBA"), geolayout=201326592), ), "Bubble": ActorPresetInfo( decomp_path="actors/bubble", group="group0", - level="HH", models={ "Bubble": ModelInfo(model_id=ModelIDInfo(168, "MODEL_BUBBLE"), geolayout=385875968), "Bubble Marble": ModelInfo(model_id=ModelIDInfo(170, "MODEL_PURPLE_MARBLE"), geolayout=385875996), @@ -2466,13 +2471,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Bullet Bill": ActorPresetInfo( decomp_path="actors/bullet_bill", group="group1", - level="WF", models=ModelInfo(model_id=ModelIDInfo(84, "MODEL_BULLET_BILL"), geolayout=201327204), ), "Bully": ActorPresetInfo( decomp_path="actors/bully", group="group2", - level="LLL", animation=AnimInfo( address=83904268, behaviours={"Bully": 318781024, "Bully (With Minions)": 318781076, "Bully (Small)": 318780972}, @@ -2483,13 +2486,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Burn Smoke": ActorPresetInfo( decomp_path="actors/burn_smoke", group="group0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(148, "MODEL_BURN_SMOKE"), geolayout=385876100), ), "Butterfly": ActorPresetInfo( decomp_path="actors/butterfly", group="common1", - level="HH", animation=AnimInfo( address=50353840, behaviours={"Butterfly": 318780348, "Triplet Butterfly": 318789016}, @@ -2501,19 +2502,16 @@ def get_member_as_dict(name: str, member: DictOrVal): "Cannon Barrel": ActorPresetInfo( decomp_path="actors/cannon_barrel", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(127, "MODEL_CANNON_BARREL"), geolayout=251658688), ), "Cannon Base": ActorPresetInfo( decomp_path="actors/cannon_base", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(128, "MODEL_CANNON_BASE"), geolayout=251658664), ), "Cannon Lid": ActorPresetInfo( decomp_path="actors/cannon_lid", group="common0", - level="HH", collision=CollisionInfo(address=134236496, c_name="cannon_lid_seg8_collision_08004950"), models=ModelInfo( model_id=ModelIDInfo(201, "MODEL_DL_CANNON_LID"), @@ -2523,7 +2521,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Cap Switch": ActorPresetInfo( decomp_path="actors/capswitch", group="group8", - level="VC", models={ "Cap Switch": ModelInfo(model_id=ModelIDInfo(85, "MODEL_CAP_SWITCH"), geolayout=201326664), "Cap Switch (Exclamation)": ModelInfo( @@ -2543,34 +2540,29 @@ def get_member_as_dict(name: str, member: DictOrVal): "Chain Ball": ActorPresetInfo( # also known as metallic ball decomp_path="actors/chain_ball", group="group14", - level="BOB", models=ModelInfo(model_id=ModelIDInfo(101, "MODEL_METALLIC_BALL"), geolayout=218105296), ), "Chain Chomp": ActorPresetInfo( decomp_path="actors/chain_chomp", group="group14", - level="BOB", animation=AnimInfo(address=100815224, behaviours=318785420, names=["Chomping"]), models=ModelInfo(model_id=ModelIDInfo(102, "MODEL_CHAIN_CHOMP"), geolayout=218105324), ), "Haunted Chair": ActorPresetInfo( decomp_path="actors/chair", group="group9", - level="HH", animation=AnimInfo(address=83908484, behaviours=318787540, names=["Default Pose"]), models=ModelInfo(model_id=ModelIDInfo(86, "MODEL_HAUNTED_CHAIR"), geolayout=201326808), ), "Checkerboard Platform": ActorPresetInfo( decomp_path="actors/checkerboard_platform", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(202, "MODEL_CHECKERBOARD_PLATFORM"), geolayout=251659492), collision=CollisionInfo(address=134272784, c_name="checkerboard_platform_seg8_collision_0800D710"), ), "Chilly Chief": ActorPresetInfo( decomp_path="actors/chilly_chief", group="group16", - level="SML", animation=AnimInfo( address=100678036, behaviours={"Chilly Chief (Small)": 318781128, "Chilly Chief (Big)": 318781184}, @@ -2584,7 +2576,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Chuckya": ActorPresetInfo( decomp_path="actors/chuckya", group="common0", - level="HH", animation=AnimInfo( address=134266992, behaviours=318768424, @@ -2595,14 +2586,12 @@ def get_member_as_dict(name: str, member: DictOrVal): "Clam Shell": ActorPresetInfo( decomp_path="actors/clam", group="group4", - level="JRB", animation=AnimInfo(address=83892036, behaviours=318788672, names=["Close", "Open"]), models=ModelInfo(model_id=ModelIDInfo(88, "MODEL_CLAM_SHELL"), geolayout=201326592), ), "Coin": ActorPresetInfo( decomp_path="actors/coin", group="common1", - level="HH", models={ "Yellow Coin": ModelInfo(model_id=ModelIDInfo(116, "MODEL_YELLOW_COIN"), geolayout=369099068), "Yellow Coin (No Shadow)": ModelInfo( @@ -2621,14 +2610,12 @@ def get_member_as_dict(name: str, member: DictOrVal): "Cyan Fish": ActorPresetInfo( decomp_path="actors/cyan_fish", group="group13", - level="WDW", animation=AnimInfo(address=100721252, names=["Swimming"]), models=ModelInfo(model_id=ModelIDInfo(103, "MODEL_CYAN_FISH"), geolayout=218104612), ), "Dirt": ActorPresetInfo( decomp_path="actors/dirt", group="common1", - level="HH", models={ "Dirt": ModelInfo(model_id=ModelIDInfo(138, "MODEL_DIRT_ANIMATION"), geolayout=369102548), "(Unused) Cartoon Start": ModelInfo(model_id=ModelIDInfo(139, "MODEL_CARTOON_STAR"), geolayout=369102628), @@ -2637,7 +2624,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Door": ActorPresetInfo( decomp_path="actors/door", group="common1", - level="HH", animation=AnimInfo( address=50419392, behaviours=318769932, @@ -2694,7 +2680,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Dorrie": ActorPresetInfo( decomp_path="actors/dorrie", group="group17", - level="HMC", animation=AnimInfo( address=100726328, behaviours=318787472, size=3, names=["Idle", "Moving", "Lower and Raise Head"] ), @@ -2703,13 +2688,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Exclamation Box": ActorPresetInfo( decomp_path="actors/exclamation_box", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(137, "MODEL_EXCLAMATION_BOX"), geolayout=251659924), ), "Exclamation Box Outline": ActorPresetInfo( decomp_path="actors/exclamation_box_outline", group="common0", - level="HH", models={ "Exclamation Box Outline": ModelInfo( model_id=ModelIDInfo(131, "MODEL_EXCLAMATION_BOX_OUTLINE"), geolayout=251660890 @@ -2724,13 +2707,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Explosion": ActorPresetInfo( decomp_path="actors/explosion", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(205, "MODEL_EXPLOSION"), geolayout=369098816), ), "Eyerok": ActorPresetInfo( decomp_path="actors/eyerok", group="group5", - level="SSL", animation=AnimInfo( address=83957476, behaviours=318788276, @@ -2744,7 +2725,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Flame": ActorPresetInfo( decomp_path="actors/flame", group="common1", - level="HH", models={ "Red Flame (With Shadow)": ModelInfo( model_id=ModelIDInfo(203, "MODEL_RED_FLAME_SHADOW"), geolayout=369101584 @@ -2756,65 +2736,55 @@ def get_member_as_dict(name: str, member: DictOrVal): "Fly Guy": ActorPresetInfo( decomp_path="actors/flyguy", group="common0", - level="SSL", animation=AnimInfo(address=134290020, behaviours=318785244, names=["Flying"]), models=ModelInfo(model_id=ModelIDInfo(220, "MODEL_FLYGUY"), geolayout=251659544), ), "Fwoosh": ActorPresetInfo( decomp_path="actors/fwoosh", group="group6", - level="TTM", models=ModelInfo(model_id=ModelIDInfo(87, "MODEL_FWOOSH"), geolayout=201327468), ), "Goomba": ActorPresetInfo( decomp_path="actors/goomba", group="common0", - level="HH", animation=AnimInfo(address=134339148, behaviours=318785324, names=["Walking"]), models=ModelInfo(model_id=ModelIDInfo(192, "MODEL_GOOMBA"), geolayout=251660004), ), "Haunted Cage": ActorPresetInfo( decomp_path="actors/haunted_cage", group="group9", - level="HH", models=ModelInfo(model_id=ModelIDInfo(90, "MODEL_HAUNTED_CAGE"), geolayout=201327220), ), "Heart": ActorPresetInfo( decomp_path="actors/heart", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(120, "MODEL_HEART"), geolayout=251659516), ), "Heave-Ho": ActorPresetInfo( decomp_path="actors/heave_ho", group="group1", - level="WDW", animation=AnimInfo(address=83972940, behaviours=318772552, names=["Moving", "Throwing", "Stop"]), models=ModelInfo(model_id=ModelIDInfo(89, "MODEL_HEAVE_HO"), geolayout=201327244), ), "Hoot": ActorPresetInfo( decomp_path="actors/hoot", group="group1", - level="WF", animation=AnimInfo(address=83908456, behaviours=318780396, names=["Flying", "Flying Fast"]), models=ModelInfo(model_id=ModelIDInfo(86, "MODEL_HOOT"), geolayout=201326616), ), "Bowser Impact Ring": ActorPresetInfo( decomp_path="actors/impact_ring", group="group12", - level="BFB", models=ModelInfo(model_id=ModelIDInfo(104, "MODEL_BOWSER_WAVE"), geolayout=218103952), ), "Bowser Impact Smoke": ActorPresetInfo( decomp_path="actors/impact_smoke", group="group12", - level="BFB", models=ModelInfo(model_id=ModelIDInfo(102, "MODEL_BOWSER_SMOKE"), geolayout=218106876), ), "King Bobomb": ActorPresetInfo( decomp_path="actors/bobomb", group="group3", - level="BOB", animation=AnimInfo( address=83951152, behaviours=318767604, @@ -2839,7 +2809,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Klepto": ActorPresetInfo( decomp_path="actors/klepto", group="group5", - level="SSL", animation=AnimInfo( address=83922172, behaviours=318788368, @@ -2859,7 +2828,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Koopa": ActorPresetInfo( decomp_path="actors/koopa", group="group14", - level="BOB", animation=AnimInfo( address=100733796, behaviours=318784896, @@ -2890,14 +2858,12 @@ def get_member_as_dict(name: str, member: DictOrVal): "Koopa Flag": ActorPresetInfo( decomp_path="actors/koopa_flag", group="group14", - level="BOB", animation=AnimInfo(address=100667432, behaviours=318785016, names=["Waving"]), models=ModelInfo(model_id=ModelIDInfo(106, "MODEL_KOOPA_FLAG"), geolayout=218103808), ), "Koopa Shell": ActorPresetInfo( decomp_path="actors/koopa_shell", group="common0", - level="BOB", models={ "Koopa Shell": ModelInfo(model_id=ModelIDInfo(190, "MODEL_KOOPA_SHELL"), geolayout=251660976), "(Unused) Koopa Shell 1": ModelInfo(geolayout=251661020), @@ -2907,7 +2873,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Lakitu (Cameraman)": ActorPresetInfo( decomp_path="actors/lakitu_cameraman", group="group15", - level="IC", animation=AnimInfo( address=100686072, behaviours={"Lakitu (Beginning)": 318789136, "Lakitu (Cameraman)": 318785876}, @@ -2918,7 +2883,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Lakitu (Enemy)": ActorPresetInfo( decomp_path="actors/lakitu_enemy", group="group11", - level="THI", animation=AnimInfo( address=83969236, behaviours=318785816, names=["Flying", "No Spiny", "Throw Spiny", "Hold Spiny"] ), @@ -2927,27 +2891,23 @@ def get_member_as_dict(name: str, member: DictOrVal): "Leaves": ActorPresetInfo( decomp_path="actors/leaves", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(162, "MODEL_LEAVES"), geolayout=369101964), ), "Mad Piano": ActorPresetInfo( decomp_path="actors/mad_piano", group="group9", - level="HH", animation=AnimInfo(address=83925780, behaviours=318787620, names=["Sleeping", "Chomping"]), models=ModelInfo(model_id=ModelIDInfo(87, "MODEL_MAD_PIANO"), geolayout=201327028), ), "Manta Ray": ActorPresetInfo( decomp_path="actors/manta", group="group4", - level="JRB", animation=AnimInfo(address=83922612, behaviours=318784368, names=["Swimming"]), models=ModelInfo(model_id=ModelIDInfo(84, "MODEL_MANTA_RAY"), geolayout=83922196), ), "Mario": ActorPresetInfo( decomp_path="actors/mario", group="group0", - level="HH", animation=AnimInfo( address=5160960, dma=True, @@ -3169,7 +3129,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Mario's Cap": ActorPresetInfo( decomp_path="actors/mario_cap", group="common1", - level="HH", models={ "Mario's Cap": ModelInfo(model_id=ModelIDInfo(136, "MODEL_MARIOS_CAP"), geolayout=369101988), "Mario's Metal Cap": ModelInfo(model_id=ModelIDInfo(134, "MODEL_MARIOS_METAL_CAP"), geolayout=369102064), @@ -3182,7 +3141,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Metal Box": ActorPresetInfo( decomp_path="actors/metal_box", group="common0", - level="HH", models={ "Metal Box": ModelInfo(model_id=ModelIDInfo(217, "MODEL_METAL_BOX"), geolayout=251660848), "Metal Box (DL)": ModelInfo( @@ -3194,7 +3152,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Mips": ActorPresetInfo( decomp_path="actors/mips", group="group15", - level="IC", animation=AnimInfo( address=100751140, behaviours=318784764, names=["Idle", "Hopping", "Thrown", "Thrown (Unused)", "Held"] ), @@ -3203,7 +3160,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Mist": ActorPresetInfo( decomp_path="actors/mist", group="common1", - level="HH", models={ "Mist": ModelInfo(model_id=ModelIDInfo(142, "MODEL_MIST"), geolayout=369098752), "White Puff": ModelInfo(model_id=ModelIDInfo(224, "MODEL_WHITE_PUFF"), geolayout=369098784), @@ -3211,15 +3167,13 @@ def get_member_as_dict(name: str, member: DictOrVal): ), "Moneybag": ActorPresetInfo( decomp_path="actors/moneybag", - group="group16", - level="CCM", + group="group16", animation=AnimInfo(address=100687452, behaviours=318781856, names=["Idle", "Prepare", "Jump", "Land", "Walk"]), models=ModelInfo(model_id=ModelIDInfo(102, "MODEL_MONEYBAG"), geolayout=218104048), ), "Monty Mole": ActorPresetInfo( decomp_path="actors/monty_mole", group="group6", - level="HMC", animation=AnimInfo( address=83915336, behaviours=318786048, @@ -3241,7 +3195,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Montey Mole Hole": ActorPresetInfo( decomp_path="actors/monty_mole_hole", group="group6", - level="HMC", models=ModelInfo( model_id=ModelIDInfo(84, "MODEL_DL_MONTY_MOLE_HOLE"), displaylist=DisplaylistInfo(83888192, "monty_mole_hole_seg5_dl_05000840"), @@ -3250,31 +3203,26 @@ def get_member_as_dict(name: str, member: DictOrVal): "Mr. I Eyeball": ActorPresetInfo( decomp_path="actors/mr_i_eyeball", group="group16", - level="HH", models=ModelInfo(model_id=ModelIDInfo(103, "MODEL_MR_I"), geolayout=218103808), ), "Mr. I Iris": ActorPresetInfo( decomp_path="actors/mr_i_iris", group="group16", - level="HH", models=ModelInfo(model_id=ModelIDInfo(102, "MODEL_MR_I_IRIS"), geolayout=218103836), ), "Mushroom 1up": ActorPresetInfo( decomp_path="actors/mushroom_1up", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(212, "MODEL_1UP"), geolayout=369102468), ), "Orange Numbers": ActorPresetInfo( decomp_path="actors/number", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(219, "MODEL_NUMBER"), geolayout=369102356), ), "Peach": ActorPresetInfo( decomp_path="actors/peach", group="group10", - level="CG", animation=AnimInfo( address=84002060, behaviours={"Peach (Beginning)": 318789176, "Peach (End)": 318770860}, @@ -3296,15 +3244,13 @@ def get_member_as_dict(name: str, member: DictOrVal): "Pebble": ActorPresetInfo( decomp_path="actors/pebble", group="common1", - level="HH", models=ModelInfo( model_id=ModelIDInfo(161, "MODEL_PEBBLE"), displaylist=DisplaylistInfo(50449152, "pebble_seg3_dl_0301CB00") ), ), "Penguin": ActorPresetInfo( decomp_path="actors/penguin", - group="group7", - level="CCM", + group="group7", animation=AnimInfo( address=83921780, behaviours={ @@ -3322,7 +3268,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Piranha Plant": ActorPresetInfo( decomp_path="actors/piranha_plant", group="group14", - level="WF", animation=AnimInfo( address=100778780, behaviours={"Fire Piranha Plant": 318787872, "Piranha Plant": 318775228}, @@ -3344,7 +3289,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Pokey": ActorPresetInfo( decomp_path="actors/pokey", group="group5", - level="SSL", models={ "Pokey Head": ModelInfo(model_id=ModelIDInfo(84, "MODEL_POKEY_HEAD"), geolayout=201328144), "Pokey Body Part": ModelInfo(model_id=ModelIDInfo(85, "MODEL_POKEY_BODY_PART"), geolayout=201328196), @@ -3352,15 +3296,13 @@ def get_member_as_dict(name: str, member: DictOrVal): ), "Wooden Post": ActorPresetInfo( decomp_path="actors/poundable_pole", - group="common14", - level="BOB", + group="group14", models=ModelInfo(model_id=ModelIDInfo(107, "MODEL_WOODEN_POST"), geolayout=218103992), collision=CollisionInfo(address=100672656, c_name="poundable_pole_collision_06002490"), ), # Should the power meter be included? "Power Meter": ActorPresetInfo( decomp_path="actors/power_meter", - level="HH", group="common1", models={ "Power Meter (Base)": ModelInfo(displaylist=DisplaylistInfo(50500736, "dl_power_meter_base")), @@ -3372,14 +3314,12 @@ def get_member_as_dict(name: str, member: DictOrVal): "Purple Switch": ActorPresetInfo( decomp_path="actors/purple_switch", group="common0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(207, "MODEL_PURPLE_SWITCH"), geolayout=251659468), collision=CollisionInfo(address=134268840, c_name="purple_switch_seg8_collision_0800C7A8"), ), "Sand": ActorPresetInfo( decomp_path="actors/sand", group="common1", - level="HH", models=ModelInfo( model_id=ModelIDInfo(159, "MODEL_SAND_DUST"), displaylist=DisplaylistInfo(50511056, "sand_seg3_dl_0302BCD0") ), @@ -3387,21 +3327,18 @@ def get_member_as_dict(name: str, member: DictOrVal): "Scuttlebug": ActorPresetInfo( decomp_path="actors/scuttlebug", group="group17", - level="HMC", animation=AnimInfo(address=100749412, behaviours=318778204, names=["Walking"]), models=ModelInfo(model_id=ModelIDInfo(101, "MODEL_SCUTTLEBUG"), geolayout=218104724), ), "Seaweed": ActorPresetInfo( decomp_path="actors/seaweed", group="group13", - level="WDW", animation=AnimInfo(address=100710604, behaviours=318779700, size=1, names=["Wave"]), models=ModelInfo(model_id=ModelIDInfo(193, "MODEL_SEAWEED"), geolayout=218104452), ), "Skeeter": ActorPresetInfo( decomp_path="actors/skeeter", group="group13", - level="WDW", animation=AnimInfo( address=100695520, behaviours=318788712, size=4, names=["Water Lunge", "Water Idle", "Walk", "Idle"] ), @@ -3410,19 +3347,16 @@ def get_member_as_dict(name: str, member: DictOrVal): "(Beta) Boo Key": ActorPresetInfo( decomp_path="actors/small_key", group="group9", - level="HH", models=ModelInfo(model_id=ModelIDInfo(85, "MODEL_BETA_BOO_KEY"), geolayout=201326984), ), "(Unused) Smoke": ActorPresetInfo( # TODO: double check decomp_path="actors/smoke", group="group6", - level="HMC", models=ModelInfo(displaylist=DisplaylistInfo(83917560, "smoke_seg5_dl_05007AF8")), ), "Mr. Blizzard": ActorPresetInfo( decomp_path="actors/snowman", - group="group7", - level="CCM", + group="group7", animation=AnimInfo( address=83939608, behaviours={"Mr. Blizzard": 318787004}, names=["Spawn Snowball", "Throw Snowball"] ), @@ -3436,46 +3370,39 @@ def get_member_as_dict(name: str, member: DictOrVal): "Snufit": ActorPresetInfo( decomp_path="actors/snufit", group="group17", - level="HMC", models=ModelInfo(model_id=ModelIDInfo(206, "MODEL_SNUFIT"), geolayout=218104224), ), "Sparkle": ActorPresetInfo( decomp_path="actors/sparkle", group="group0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(149, "MODEL_SPARKLES"), geolayout=385876412), ), "Sparkle Animation": ActorPresetInfo( decomp_path="actors/sparkle_animation", group="group0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(143, "MODEL_SPARKLES_ANIMATION"), geolayout=385876612), ), "Spindrift": ActorPresetInfo( decomp_path="actors/spindrift", - group="group7", - level="CCM", + group="group7", animation=AnimInfo(address=83897704, behaviours=318771892, names=["Flying"]), models=ModelInfo(model_id=ModelIDInfo(84, "MODEL_SPINDRIFT"), geolayout=201326592), ), "Spiny": ActorPresetInfo( decomp_path="actors/spiny", group="group11", - level="THI", animation=AnimInfo(address=83979948, behaviours={"Spiny": 318785992}, names=["Walk"]), models=ModelInfo(model_id=ModelIDInfo(86, "MODEL_SPINY"), geolayout=201327400), ), "Spiny Egg": ActorPresetInfo( decomp_path="actors/spiny_egg", group="group11", - level="THI", animation=AnimInfo(address=83974116, names=["Default"]), models=ModelInfo(model_id=ModelIDInfo(85, "MODEL_SPINY_BALL"), geolayout=201327248), ), "Springboard": ActorPresetInfo( decomp_path="actors/springboard", group="group8", - level="VC", models={ "Springboard Top": ModelInfo(model_id=ModelIDInfo(181, "MODEL_TRAMPOLINE"), geolayout=201326592), "Springboard Middle": ModelInfo(model_id=ModelIDInfo(182, "MODEL_TRAMPOLINE_CENTER"), geolayout=201326616), @@ -3485,13 +3412,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Star": ActorPresetInfo( decomp_path="actors/star", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(122, "MODEL_STAR"), geolayout=369102496), ), "Small Water Splash": ActorPresetInfo( decomp_path="actors/stomp_smoke", group="group0", - level="HH", models={ "Small Water Splash": ModelInfo(model_id=ModelIDInfo(165, "MODEL_SMALL_WATER_SPLASH"), geolayout=385876124), "(Unused) Small Water Splash": ModelInfo(geolayout=385876192), @@ -3500,27 +3425,23 @@ def get_member_as_dict(name: str, member: DictOrVal): "Sushi Shark": ActorPresetInfo( decomp_path="actors/sushi", group="group4", - level="JRB", animation=AnimInfo(address=83930708, behaviours=318776120, size=1, names=["Swimming", "Diving"]), models=ModelInfo(model_id=ModelIDInfo(86, "MODEL_SUSHI"), geolayout=201326696), ), "Swoop": ActorPresetInfo( decomp_path="actors/swoop", group="group17", - level="HMC", animation=AnimInfo(address=100692176, behaviours=318785176, size=2, names=["Idle", "Move"]), models=ModelInfo(model_id=ModelIDInfo(100, "MODEL_SWOOP"), geolayout=218104028), ), "Test Plataform": ActorPresetInfo( decomp_path="actors/test_plataform", group="common0", - level="HH", collision=CollisionInfo(address=134374136, c_name="unknown_seg8_collision_080262F8"), ), "Thwomp": ActorPresetInfo( decomp_path="actors/thwomp", group="group1", - level="WF", models=ModelInfo(model_id=ModelIDInfo(88, "MODEL_THWOMP"), geolayout=201327176), collision={ "Thwomp": CollisionInfo(address=83933136, c_name="thwomp_seg5_collision_0500B7D0"), @@ -3530,7 +3451,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Toad": ActorPresetInfo( decomp_path="actors/toad", group="group15", - level="IC", animation=AnimInfo( address=100727880, behaviours={"End Toad": 318770824, "Toad Message": 318779128}, @@ -3548,22 +3468,19 @@ def get_member_as_dict(name: str, member: DictOrVal): ), models=ModelInfo(model_id=ModelIDInfo(221, "MODEL_TOAD"), geolayout=218104084), ), - "Tweester": ActorPresetInfo( + "Tweester/Tornado": ActorPresetInfo( decomp_path="actors/tornado", group="group5", - level="SSL", models=ModelInfo(model_id=ModelIDInfo(86, "MODEL_TWEESTER"), geolayout=83969584), ), "Transparent Star": ActorPresetInfo( decomp_path="actors/transperant_star", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(121, "MODEL_TRANSPARENT_STAR"), geolayout=369102700), ), "Treasure Chest": ActorPresetInfo( decomp_path="actors/treasure_chest", group="group13", - level="JRB", models={ "Treasure Chest Base": ModelInfo( model_id=ModelIDInfo(101, "MODEL_TREASURE_CHEST_BASE"), geolayout=218104912 @@ -3574,7 +3491,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Tree": ActorPresetInfo( decomp_path="actors/tree", group="common1", - level="HH", models={ "Bubbly Tree": ModelInfo( model_id=[ @@ -3598,7 +3514,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Ukiki": ActorPresetInfo( decomp_path="actors/ukiki", group="group6", - level="TTM", animation=AnimInfo( address=83974020, behaviours={"Ukiki": 318774448}, @@ -3623,7 +3538,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Unagi": ActorPresetInfo( decomp_path="actors/unagi", group="group4", - level="JRB", animation=AnimInfo( address=83974020, behaviours=318787392, @@ -3635,13 +3549,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Smoke": ActorPresetInfo( decomp_path="actors/walk_smoke", group="group0", - level="HH", models=ModelInfo(model_id=ModelIDInfo(150, "MODEL_SMOKE"), geolayout=385876024), ), "Warp Collision": ActorPresetInfo( decomp_path="actors/warp_collision", group="common1", - level="HH", collision={ "Door": CollisionInfo(address=50450040, c_name="door_seg3_collision_0301CE78"), "LLL Hexagonal Mesh": CollisionInfo(address=50450124, c_name="lll_hexagonal_mesh_seg3_collision_0301CECC"), @@ -3650,7 +3562,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Warp Pipe": ActorPresetInfo( decomp_path="actors/warp_pipe", group="common1", - level="HH", models=ModelInfo( model_id=[ ModelIDInfo(73, "MODEL_BITS_WARP_PIPE"), @@ -3665,7 +3576,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Water Bomb": ActorPresetInfo( decomp_path="actors/water_bubble", group="group3", - level="BOB", models={ "Water Bomb": ModelInfo(model_id=ModelIDInfo(84, "MODEL_WATER_BOMB"), geolayout=201327368), "Water Bomb's Shadow": ModelInfo(model_id=ModelIDInfo(85, "MODEL_WATER_BOMB_SHADOW"), geolayout=201327400), @@ -3674,13 +3584,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Water Mine": ActorPresetInfo( decomp_path="actors/water_mine", group="group13", - level="JRB", models=ModelInfo(model_id=ModelIDInfo(179, "MODEL_WATER_MINE"), geolayout=218104564), ), "Water Ring": ActorPresetInfo( decomp_path="actors/water_ring", group="group13", - level="DDD", animation=AnimInfo( address=100745084, behaviours={"Water Ring (Jet Stream)": 318781264, "Water Ring (Manta Ray)": 13003798}, @@ -3691,13 +3599,11 @@ def get_member_as_dict(name: str, member: DictOrVal): "Water Splash": ActorPresetInfo( decomp_path="actors/water_splash", group="group0", - level="WDW", models=ModelInfo(model_id=ModelIDInfo(167, "MODEL_WATER_SPLASH"), geolayout=385876528), ), "Water Wave": ActorPresetInfo( decomp_path="actors/water_wave", group="group0", - level="HH", models={ "Idle Water Wave": ModelInfo(model_id=ModelIDInfo(166, "MODEL_IDLE_WATER_WAVE"), geolayout=385876260), "Water Wave Trail": ModelInfo(model_id=ModelIDInfo(163, "MODEL_WAVE_TRAIL"), geolayout=385876328), @@ -3706,7 +3612,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Whirlpool": ActorPresetInfo( decomp_path="actors/whirlpool", group="group4", - level="DDD", models=ModelInfo( model_id=ModelIDInfo(87, "MODEL_DL_WHIRLPOOL"), displaylist=DisplaylistInfo(83967160, "whirlpool_seg5_dl_05013CB8"), @@ -3715,7 +3620,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "White Particle": ActorPresetInfo( decomp_path="actors/white_particle", group="common1", - level="HH", models={ "White Particle": ModelInfo(model_id=ModelIDInfo(160, "MODEL_WHITE_PARTICLE"), geolayout=369102744), "White Particle (DL)": ModelInfo( @@ -3727,7 +3631,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "White Particle Small": ActorPresetInfo( decomp_path="actors/white_particle_small", group="group0", - level="HH", models={ "White Particle Small": ModelInfo( model_id=ModelIDInfo(164, "MODEL_WHITE_PARTICLE_SMALL"), @@ -3741,7 +3644,6 @@ def get_member_as_dict(name: str, member: DictOrVal): "Whomp": ActorPresetInfo( decomp_path="actors/whomp", group="group14", - level="WF", animation=AnimInfo(address=100796932, behaviours=318778316, size=2, names=["Walk", "Jump"]), models=ModelInfo(model_id=ModelIDInfo(103, "MODEL_WHOMP"), geolayout=218104960), collision=CollisionInfo(address=100796940, c_name="whomp_seg6_collision_06020A0C"), @@ -3749,52 +3651,45 @@ def get_member_as_dict(name: str, member: DictOrVal): "Wiggler Body": ActorPresetInfo( decomp_path="actors/wiggler_body", group="group11", - level="THI", animation=AnimInfo(address=83937396, behaviours=318785760, size=1, names=["Walk"]), models=ModelInfo(model_id=ModelIDInfo(88, "MODEL_WIGGLER_BODY"), geolayout=83937144), ), "Wiggler Head": ActorPresetInfo( decomp_path="actors/wiggler_head", group="group11", - level="THI", animation=AnimInfo(address=83946636, behaviours=318785688, size=1, names=["Walk"]), models=ModelInfo(model_id=ModelIDInfo(87, "MODEL_WIGGLER_HEAD"), geolayout=201326640), ), "Wooden Signpost": ActorPresetInfo( decomp_path="actors/wooden_signpost", group="common1", - level="HH", models=ModelInfo(model_id=ModelIDInfo(124, "MODEL_WOODEN_SIGNPOST"), geolayout=369102772), collision=CollisionInfo(address=50519424, c_name="wooden_signpost_seg3_collision_0302DD80"), ), "Yellow Sphere (Bowser 1)": ActorPresetInfo( decomp_path="actors/yellow_sphere", group="group12", - level="BFB", models=ModelInfo(model_id=ModelIDInfo(3, "MODEL_LEVEL_GEOMETRY_03"), geolayout=218103984), ), "Yellow Sphere": ActorPresetInfo( decomp_path="actors/yellow_sphere_small", group="group1", - level="WDW", models=ModelInfo(model_id=ModelIDInfo(85, "MODEL_YELLOW_SPHERE"), geolayout=201326592), ), "Yoshi": ActorPresetInfo( decomp_path="actors/yoshi", group="group10", - level="CG", animation=AnimInfo(address=84034024, behaviours=318784824, names=["Idle", "Walk", "Jump"]), models=ModelInfo(model_id=ModelIDInfo(85, "MODEL_YOSHI"), geolayout=201327720), ), "(Unused) Yoshi Egg": ActorPresetInfo( decomp_path="actors/yoshi_egg", group="group1", - level="WDW", models=ModelInfo(model_id=ModelIDInfo(87, "MODEL_YOSHI_EGG"), geolayout=201327076), ), "Castle Flag": ActorPresetInfo( decomp_path="levels/castle_grounds/areas/1/11", - level="HH", + level="CG", animation=AnimInfo(address=117492060, behaviours=318782552, size=1, names=["Wave"]), models=ModelInfo(model_id=ModelIDInfo(55, "MODEL_CASTLE_GROUNDS_FLAG"), geolayout=234882656), ),