Merge branch 'master' into 'master'

Merge Request Cleanup + Collision Table Documentation

See merge request banjo.decomp/banjo-kazooie!139
This commit is contained in:
Moses Troyer
2026-02-09 22:48:26 +00:00
112 changed files with 2535 additions and 1716 deletions
+278 -188
View File
@@ -93,14 +93,14 @@ enum file_progress_e {
FILEPROG_54_CCW_PUZZLE_PODIUM_ACTIVE,
FILEPROG_55_FF_BK_SQUARE_INSTRUCTIONS,
FILEPROG_56_FF_PICTURE_SQUARE_INSTRUCTIONS,
FILEPROG_57_FF_MUSIC_SQAURE_INSTRUCTIONS,
FILEPROG_58_FF_MINIGAME_SQAURE_INSTRUCTIONS,
FILEPROG_59_FF_GRUNTY_SQAURE_INSTRUCTIONS,
FILEPROG_5A_FF_DEATH_SQAURE_INSTRUCTIONS,
FILEPROG_5B_FF_JOKER_SQAURE_INSTRUCTIONS,
FILEPROG_57_FF_MUSIC_SQUARE_INSTRUCTIONS,
FILEPROG_58_FF_MINIGAME_SQUARE_INSTRUCTIONS,
FILEPROG_59_FF_GRUNTY_SQUARE_INSTRUCTIONS,
FILEPROG_5A_FF_DEATH_SQUARE_INSTRUCTIONS,
FILEPROG_5B_FF_JOKER_SQUARE_INSTRUCTIONS,
FILEPROG_5C_FF_PATTERN_SET,
FILEPROG_5D_MM_PUZZLE_PIECES_PLACED = 0x5D, //1 bit
FILEPROG_5E_TCC_PUZZLE_PIECES_PLACED = 0x5E, //2 bit
FILEPROG_5E_TTC_PUZZLE_PIECES_PLACED = 0x5E, //2 bit
FILEPROG_60_CC_PUZZLE_PIECES_PLACED = 0x60, //3 bit
FILEPROG_63_BGS_PUZZLE_PIECES_PLACED = 0x63, //3 bit
FILEPROG_66_FP_PUZZLE_PIECES_PLACED = 0x66, //4 bit
@@ -387,7 +387,7 @@ enum volatile_flags_e {
VOLATILE_FLAG_AF_BGS_MAZE_JIGGY_MISSED,
VOLATILE_FLAG_B0_NOT_ENOUGH_NOTES,
VOLATILE_FLAG_B1, // unused
VOLATILE_FLAG_B2, // ccw related
VOLATILE_FLAG_B2_HAS_COLLECTED_CATERPILLAR, // ccw related
VOLATILE_FLAG_B3, // boggy2 related
VOLATILE_FLAG_B4, // fp related
VOLATILE_FLAG_B5, // ccw related
@@ -426,7 +426,7 @@ enum level_flags_e
LEVEL_FLAG_D_MM_UNKNOWN,
LEVEL_FLAG_E_CC_UNKNOWN,
LEVEL_FLAG_10_CCW_UNKNOWN = 0x10,
LEVEL_FLAG_10_CCW_BREAK_ZUBBA_DOOR = 0x10,
LEVEL_FLAG_11_FP_UNKNOWN,
LEVEL_FLAG_12_FP_UNKNOWN,
LEVEL_FLAG_13_FP_UNKNOWN,
@@ -961,9 +961,9 @@ enum sfx_e
// egg pooping ?
SFX_3E_POOP_NOISE,
// higher pitch
SFX_3F_CAULDRON_SQEAK_1,
SFX_3F_CAULDRON_SQUEAK_1,
// lower pitch
SFX_40_CAULDRON_SQEAK_2,
SFX_40_CAULDRON_SQUEAK_2,
// waking up
SFX_41_MUMBO_ERGHHH,
// short and dull
@@ -1789,6 +1789,12 @@ enum actor_e
ACTOR_17_PLAYER_SHADOW = 0x17,
ACTOR_19_FRAMERATE_60 = 0x19,
ACTOR_1A_FRAMERATE_30,
ACTOR_1B_FRAMERATE_20,
ACTOR_1C_FRAMERATE_15,
ACTOR_1D_FRAMERATE_12,
ACTOR_1E_LEAKY = 0x1E,
ACTOR_25_CEMETARY_POT = 0x25,
@@ -1828,9 +1834,7 @@ enum actor_e
ACTOR_4D_STEAM_2,
ACTOR_4E_WADING_BOOTS_TOUCH_SPARKLE,
ACTOR_4F_TURBO_TRAINERS_TOUCH_SPARKLE,
ACTOR_50_HONEYCOMB = 0x50,
ACTOR_50_HONEYCOMB,
ACTOR_51_MUSIC_NOTE,
ACTOR_52_BLUE_EGG,
ACTOR_53_RED_ARROW,
@@ -1839,8 +1843,7 @@ enum actor_e
ACTOR_56_SHRAPNEL,
ACTOR_57_ORANGE_PAD,
ACTOR_58_STEAM_3,
ACTOR_59_JUJU = 0x59,
ACTOR_59_JUJU,
ACTOR_5A_JIGSAW_DANCE,
ACTOR_5B_PINK_EGG_LARGEST,
@@ -2002,13 +2005,19 @@ enum actor_e
ACTOR_15F_XMAS_TREE = 0x15F,
ACTOR_160_BOGGY_1,
ACTOR_163_BAT = 0x163,
ACTOR_161_BOGGY_RACE_FLAG,
ACTOR_162_BOGGY_RACE_FLAG,
ACTOR_163_BAT,
ACTOR_164_COLLYWOBBLE_THE_CAULIFLOWER_A,
ACTOR_165_BAWL_THE_ONION_A,
ACTOR_166_TOPPER_THE_CARROT_A,
ACTOR_167_ATTACK_TUTORIAL,
ACTOR_168_CCW_WINTER_SWITCH,
ACTOR_169_CCW_WINTER_SEASON_DOOR,
ACTOR_16A_CCW_AUTUMN_SWITCH,
ACTOR_16B_CCW_AUTUMN_SEASON_DOOR,
ACTOR_16C_CCW_SUMMER_SWITCH,
ACTOR_16D_CCW_SUMMER_SEASON_DOOR,
ACTOR_16E_UNKNOWN = 0x16E,
ACTOR_16F_QUARRIE,
@@ -2043,8 +2052,7 @@ enum actor_e
ACTOR_1C8_SNORKEL,
ACTOR_1C9_ANCHOR,
ACTOR_1CC_GRILL_CHOMPA = 0x1CC,
ACTOR_1CC_GRILLE_CHOMPA = 0x1CC,
ACTOR_1CD_UNKNOWN,
ACTOR_1CE_UNKNOWN,
ACTOR_1CF_UNKNOWN,
@@ -2060,7 +2068,9 @@ enum actor_e
ACTOR_1DE_PRESS_START_OVERLAY,
ACTOR_1DF_NO_CONTROLLER_OVERLAY,
ACTOR_1E4_TOOTS = 0x1E4,
ACTOR_1E2_CCW_SPRING_SWITCH = 0x1E2,
ACTOR_1E3_CCW_SPRING_SEASON_DOOR,
ACTOR_1E4_TOOTS,
ACTOR_1E9_SNARE_BEAR = 0x1E9,
ACTOR_1EA_POLAR_BEAR_CUB_BLUE,
@@ -2086,7 +2096,8 @@ enum actor_e
ACTOR_1FF_SPENT_RED_FEATHER,
ACTOR_200_SPENT_GOLD_FEATHER,
ACTOR_204_MM_WITCH_SWITCH = 0x204,
ACTOR_203_NOTE_DOOR = 0x203,
ACTOR_204_MM_WITCH_SWITCH,
ACTOR_206_MMM_WITCH_SWITCH = 0x206,
@@ -2098,7 +2109,7 @@ enum actor_e
ACTOR_20E_MM_ENTRANCE_DOOR,
ACTOR_20F_RBB_ENTRANCE_DOOR,
ACTOR_210_BGS_ENTRANCE_DOOR,
ACTOR_211_TCC_ENTRANCE_CHEST_LID, //CC ENTRANCE
ACTOR_211_TTC_ENTRANCE_CHEST_LID, //CC ENTRANCE
ACTOR_212_CC_ENTRANCE_BARS, //TTC_ENTRANCE
ACTOR_21C_CABIN_CLOSET_DOOR = 0x21C,
@@ -2122,7 +2133,8 @@ enum actor_e
ACTOR_23F_CRACKED_SKYLIGHT = 0x23F,
ACTOR_243_GV_SNS_CHAMBER_DOOR = 0x243,
ACTOR_242_FF_TELEPORT_PAD = 0x242,
ACTOR_243_GV_SNS_CHAMBER_DOOR,
ACTOR_244_GV_SNS_SARCOPHAGUS,
ACTOR_245_GV_SNS_SWITCH = 0x245,
@@ -2155,22 +2167,28 @@ enum actor_e
ACTOR_283_BOSS_BOOM_BOX_MEDIUM,
ACTOR_284_BOSS_BOOM_BOX_SMALL,
ACTOR_28A_CLANKER_WHIPCRACK = 0x28A,
ACTOR_289_BETA_VENT = 0x289,
ACTOR_28A_CLANKER_WHIPCRACK,
ACTOR_28B_SOUND_SOURCE,
ACTOR_290_CLANKER_SAWBLADE_PROPELLOR_7 = 0x290,
ACTOR_28F_BETA_VENT = 0x28F,
ACTOR_290_CLANKER_SAWBLADE_PROPELLOR_7,
ACTOR_291_CLANKER_SAWBLADE_PROPELLOR_8,
ACTOR_292_CLANKER_SAWBLADE_PROPELLOR_9,
ACTOR_293_CLANKER_SAWBLADE_PROPELLOR_10,
ACTOR_294_CLANKER_SAWBLADE_PROPELLOR_11,
ACTOR_295_CLANKER_SAWBLADE_PROPELLOR_12,
ACTOR_29B_ZUBBA = 0x29B,
ACTOR_298_ZUBBA_DOOR = 0x298,
ACTOR_29E_CCW_GOBI = 0x29E,
ACTOR_29F_CLUCKER = 0x29F,
ACTOR_29A_ZUBBA_DOOR = 0x29A,
ACTOR_29B_ZUBBA,
ACTOR_2A1_EEYRIE_BABY = 0x2A1,
ACTOR_29D_CCW_BEANSTALK = 0x29D,
ACTOR_29E_CCW_GOBI,
ACTOR_29F_CLUCKER,
ACTOR_2A0_EAGLE_EGG,
ACTOR_2A1_EEYRIE_BABY,
ACTOR_2A2_CATERPILLAR,
ACTOR_2A4_BOOM_BOX_SLOW = 0x2A4,
@@ -2178,6 +2196,8 @@ enum actor_e
ACTOR_2A8_NABNUT = 0x2A8,
ACTOR_2A9_ACORN,
ACTOR_2AC_GNAWTY_BOULDER = 0x2AC,
ACTOR_2DB_DINGPOT = 0x2DB,
ACTOR_2DF_LIGHTHOUSE_B = 0x2DF,
@@ -2194,9 +2214,15 @@ enum actor_e
ACTOR_2F4_FISHBOWL = 0x2F4,
ACTOR_2F5_CUCKOO_CLOCK,
ACTOR_2FA_BANJOS_HOUSE_ROYSTEN = 0x2FA,
ACTOR_30D_BOOM_BOX_FAST = 0x30D,
ACTOR_30F_WHIPCRACK = 0x30f,
ACTOR_310_NABNUT_HOUSE_PILE_OF_ACORNS,
ACTOR_313_NABNUT_BED = 0x313,
ACTOR_314_NABNUT_IN_AUTUMN_HOUSE,
ACTOR_319_GV_MAZE_CTRL = 0x319,
@@ -2223,7 +2249,8 @@ enum actor_e
ACTOR_33F_WOZZA_IN_CAVE = 0x33F,
ACTOR_340_XMAS_TREE_ICE,
ACTOR_349_UNKNOWN = 0x349,
ACTOR_348_BRENTILDA = 0x348,
ACTOR_349_UNKNOWN,
ACTOR_34D_BEE_SWARM = 0x34D,
ACTOR_34E_LIMBO,
@@ -2292,6 +2319,7 @@ enum actor_e
ACTOR_3BA_UNKNOWN,
ACTOR_3BD_SM_UNKNOWN = 0x3BD,
ACTOR_3BE_LAIR_UNKNOWN,
ACTOR_3BF_GRUNTLING_BLUE = 0x3BF,
ACTOR_3C0_GRUNTLING_BLACK,
@@ -2301,8 +2329,8 @@ enum actor_e
ACTOR_3C4_FF_PRIZE_WASHING_CAULDRON = 0x3C4,
ACTOR_3C7_FF_PRIZE_GRUNTY_DOLL = 0x3C7,
ACTOR_3C8_FF_PRIZE_TOOTY = 0x3C8,
ACTOR_3C8_FF_PRIZE_TOOTY,
ACTOR_3C9_FURNACE_FUN_PICK_PRICE,
ACTOR_3CA_ROCK_TRAPPING_GRUNTY = 0x3CA,
ACTOR_3CB_UNKNOWN
};
@@ -2607,6 +2635,11 @@ enum mmm_specific_flags {
MMM_SPECIFIC_FLAG_7_UNKNOWN
};
enum lair_specific_flags {
LAIR_SPECIFIC_FLAG_7_UKNOWN = 0x7,
LAIR_SPECIFIC_FLAG_9_UKNOWN = 0x9
};
enum item_e
{
ITEM_0_HOURGLASS_TIMER = 0x0,
@@ -3106,7 +3139,7 @@ enum asset_e
// 2da TTC Palm Tree
// 2db RBB Grey Toxic Barrel
// 2dc RBB Yellow Toxic Barrel
// 2dd Shock Jump Pad
ASSET_2DD_MODEL_SHOCK_JUMP_PAD = 0x2DD,
// Unused
// 2df TTC Light Crate
// 2e0 TTC Dark Crate
@@ -3228,8 +3261,7 @@ enum asset_e
ASSET_354_MODEL_SMALL_BULL,
ASSET_355_MODEL_CONCERT_BANJO,
ASSET_356_MODEL_BANJO_WISHYWASHY = 0x356,
// Unused
// 358 TTC Snippet
// 357 Unused
ASSET_358_SNIPPET = 0x358,
ASSET_359_MODEL_BANJO_WALRUS,
ASSET_35A_MODEL_CONCERT_TOOTY,
@@ -3282,8 +3314,8 @@ enum asset_e
ASSET_388_MODEL_MOLEHILL,
// Unused
ASSET_38A_MODEL_BOGGY_1 = 0x38A,
// 38b Boggy Race Red Flag
ASSET_38C_MODEL_CRAB_CLAW = 0x38c,
ASSET_38B_MODEL_BOGGY_RACE_FLAG,
ASSET_38C_MODEL_CRAB_CLAW,
ASSET_38D_MODEL_CRAB_LEG,
ASSET_38E_MODEL_CRAB_HEAD,
ASSET_38F_MODEL_MUTIE_SNIPPET,
@@ -3321,7 +3353,7 @@ enum asset_e
// 3af (Green Plank?)
ASSET_3B0_SNACKER = 0x3B0,
// 3b1 Concert Mumbo
// 3b2 (Two Poles?)
ASSET_3B2_MODEL_TWO_ICE_POLES_NEAR_CHEATO_3 = 0x3B2,
// 3b3 Mumbo's Hut
// Unused
// Unused
@@ -3353,9 +3385,8 @@ enum asset_e
ASSET_3CF_MODEL_CELLAR_HATCH,
ASSET_3D0_MODEL_CHURCH_GATE_LEFT_LOCK,
ASSET_3D1_MODEL_HEDGE_GATE_RIGHT_LOCK_1,
ASSET_3D2_MODEL_BLUBBER_SHIP_TOP_HATCH,
ASSET_3D2_MODEL_BLUBBER_SHIP_TOP_HATCH = 0x3d2,
ASSET_3D3_MODEL_CHURCH_DOOR,
// 3d4 Lockup
ASSET_3D4_MODEL_LOCKUP = 0x3d4,
ASSET_3D5_MODEL_NIPPER,
ASSET_3D6_MODEL_LIGHTHOUSE_DOOR,
@@ -3405,8 +3436,8 @@ enum asset_e
ASSET_401_MODEL_FLOTSAM,
ASSET_402_MODEL_EGG_TOLL,
ASSET_403_MODEL_RUSTY_BUCKET_REAR_PROPELLER,
// 404 RBB Green Propeller Switch (Stop Propellers)
// 405 RBB Grey Propeller Switch (Stop Propellers)
ASSET_404_MODEL_RBB_GREEN_PROPELLER_SWITCH,
ASSET_405_MODEL_RBB_GREY_PROPELLER_SWITCH,
// 406 RBB Thin Shaft
// 407 RBB Double Shaft 1
// 408 RBB Double Shaft 2
@@ -3419,11 +3450,11 @@ enum asset_e
ASSET_40F_MODEL_ENGINE_ROOM_PROPELLER_1 = 0x40f,
ASSET_410_MODEL_ENGINE_ROOM_PROPELLER_2,
ASSET_411_MODEL_ENGINE_ROOM_PROPELLER_3,
// 412 RBB Grey Propeller Switch (Slow Fans)
// 413 RBB 1 Switch
// 414 RBB 2 Switch
// 415 RBB 3 Switch
ASSET_416_MODEL_WHISTLE = 0x416,
ASSET_412_MODEL_RBB_GREY_PROPELLER_SWITCH,
ASSET_413_MODEL_WHISTLE_SWITCH_1,
ASSET_414_MODEL_WHISTLE_SWITCH_2,
ASSET_415_MODEL_WHISTLE_SWITCH_3,
ASSET_416_MODEL_WHISTLE,
// 417 RBB Whistle 2 (Gold)
// 418 RBB Whistle 3 (Blue)
ASSET_419_MODEL_GRIMLET = 0x419,
@@ -3450,13 +3481,13 @@ enum asset_e
// 42d SM Quarrie
// 42e SM Quarrie Fragment
ASSET_42F_MODEL_RBB_HONEYCOMB_SWITCH = 0x42F,
ASSET_430_MODEL_GRILL_CHOMPA,
// 431 Beta Vent
ASSET_430_MODEL_GRILLE_CHOMPA,
ASSET_431_MODEL_BETA_VENT,
ASSET_432_MODEL_CLANKER_WHIPCRACK = 0x432,
// Unused
ASSET_434_MODEL_TOOTS = 0x434,
// 435 CC Green Grate
// 436 CC Teal Grate
ASSET_435_MODEL_CC_GREEN_GRATE,
ASSET_436_MODEL_CC_TEAL_GRATE,
// 437 (Unknown?)
ASSET_438_MODEL_HONEYCOMB_SWITCH = 0x438,
// 439 (Unknown?)
@@ -3470,10 +3501,10 @@ enum asset_e
// 441 (Sir Slush Snowball?)
ASSET_442_MODEL_TWINKLY_BOX = 0x442,
// 443 CCW Zubba Honey Lump
// 444 (CCW Zubba Entrance Lid?)
// 445 (CCW Zubba Entrance Lid?)
ASSET_446_MODEL_ZUBBA = 0x446,
// 447 CCW Beanstalk
ASSET_444_MODEL_CCW_ZUBBA_DOOR = 0x444,
ASSET_445_MODEL_CCW_ZUBBA_DOOR,
ASSET_446_MODEL_ZUBBA,
ASSET_447_MODEL_CCW_BEANSTALK,
ASSET_448_MODEL_TWINKLY_BLUE = 0x448,
ASSET_449_MODEL_TWINKLY_GREEN,
ASSET_44A_MODEL_TWINKLY_ORANGE,
@@ -3546,12 +3577,12 @@ enum asset_e
ASSET_48C_MODEL_BOOM_BOX,
// 48d Nabnut Eating Acorns
ASSET_48E_MODEL_ACORN = 0x48E,
// 48f Gnawty
// 490 Gnawty's Boulder
// 491 Note Door
ASSET_492_MODEL_CABIN_CLOSET_DOOR = 0x492,
ASSET_48F_MODEL_GNAWTY,
ASSET_490_MODEL_GNAWTY_BOULDER,
ASSET_491_MODEL_NOTE_DOOR,
ASSET_492_MODEL_CABIN_CLOSET_DOOR,
ASSET_493_MODEL_ENGINE_ROOM_DOOR,
ASSET_494_MODEL_WOZZA = 0x494,
ASSET_494_MODEL_WOZZA,
ASSET_495_MODEL_WOZZAS_JIGGY,
ASSET_496_MODEL_TWINKLY_MUNCHER,
ASSET_497_MODEL_TWINKLY_SHARD_BLUE,
@@ -3565,36 +3596,36 @@ enum asset_e
// 49f 2D Glowing Bee (Beta)
ASSET_4A0_SPRITE_EXPLOSION = 0x4A0,
ASSET_4A1_MODEL_BREAKABLE_BRICK_WALL,
// 4a2 Mumbo's Mountain Door Entrance
// 4a3 TTC Entrance Chest Lid
// 4a4 Clanker's Entrance Long Pipe (Green)
// 4a5 Clanker's Entrance Long Pipe (Blue)
// 4a6 Clanker's Entrance Short Pipe
// 4a7 Clanker's Entrance Iron Bars
// 4a8 Bubblegloop Swamp Puzzle Grate
// 4a9 Raise Pipe Switch (Path To CC)
// 4aa Raise Pipe Switch (Path To Brentilda)
// 4ab Raise Grate To BGS Puzzle
// 4ac Iron Bars Under Gruntilda Statue
// 4ad Gruntilda Statue Hat Top
// 4ae Bubblegloop Swamp Entrance Door
// 4af (Ice Ball?)
// 4b0 Level 3 Water Switch
// 4b1 Grate To Level 3 Water Switch
// 4b2 Level 2 Water Switch
// 4b3 Rareware Box (To Hide Water Switch?)
// 4b4 Rusty Bucket Bay Entrance Door
// 4b5 Level 1 Water Switch
// 4b6 Grate Between MMM and RBB Puzzles
// 4b7 Grate To RBB Puzzle
// 4b8 CCW Puzzle Switch
ASSET_4A2_MODEL_GL_MM_DOOR_ENTRANCE,
ASSET_4A3_MODEL_GL_TTC_ENTRANCE_CHEST_LID,
ASSET_4A4_MODEL_GL_CC_ENTRANCE_LONG_PIPE_GREEN,
ASSET_4A5_MODEL_GL_CC_ENTRANCE_LONG_PIPE_BLUE,
ASSET_4A6_MODEL_GL_CC_ENTRANCE_SHORT_PIPE,
ASSET_4A7_MODEL_GL_CC_IRON_BARS_ENTRANCE,
ASSET_4A8_MODEL_GL_BGS_PUZZLE_GRATE,
ASSET_4A9_MODEL_RAISE_PIPE_TO_CC_ENTRANCE_SWITCH,
ASSET_4AA_MODEL_RAISE_PIPE_TO_BRENTILDA_SWITCH,
ASSET_4AB_MODEL_RAISE_GRATE_TO_BGS_PUZZLE_SWITCH,
ASSET_4AC_MODEL_IRON_BARS_UNDER_GRUNTY_STATUE,
ASSET_4AD_MODEL_GRUNTY_STATUE_BREAKABLE_HAT_TOP,
ASSET_4AE_MODEL_GL_BGS_DOOR_ENTRANCE,
ASSET_4AF_MODEL_ICE_BALL_TO_CHEATO,
ASSET_4B0_MODEL_LEVEL_3_WATER_SWITCH,
ASSET_4B1_MODEL_GRATE_TO_LEVEL_3_WATER_SWITCH,
ASSET_4B2_MODEL_LEVEL_2_WATER_SWITCH,
ASSET_4B3_MODEL_RAREWARE_BOX,
ASSET_4B4_MODEL_GL_RBB_DOOR_ENTRANCE,
ASSET_4B5_MODEL_LEVEL_1_WATER_SWITCH,
ASSET_4B6_MODEL_GRATE_BETWEEN_MMM_AND_RBB_PUZZLES,
ASSET_4B7_MODEL_GRATE_TO_RBB_PUZZLE,
ASSET_4B8_MODEL_CCW_PUZZLE_SWITCH,
// 4b9 (Jiggy Switch Beta?)
ASSET_4BA_MODEL_SHIP_SHADOW_WINDOW = 0x4BA,
ASSET_4BB_MODEL_SHIP_SUNNY_WINDOW,
// 4bc GV Entrance Door
ASSET_4BD_MODEL_GLASS_EYE = 0x4BD,
// 4be MMM Entrance Door
ASSET_4BF_MODEL_FLOOR_COBWEB = 0x4BF,
ASSET_4BC_MODEL_GL_GV_DOOR_ENTRANCE,
ASSET_4BD_MODEL_GLASS_EYE,
ASSET_4BE_MODEL_GL_MMM_DOOR_ENTRANCE,
ASSET_4BF_MODEL_FLOOR_COBWEB,
ASSET_4C0_MODEL_WINDOW,
ASSET_4C1_MODEL_WIDE_WINDOW,
ASSET_4C2_MODEL_TALL_WINDOW,
@@ -3619,18 +3650,18 @@ enum asset_e
ASSET_4D3_MODEL_XMAS_ICE_FRAGMENT = 0x4D3,
ASSET_4D4_MODEL_TWINKLY_BOX_PAPER_SHARD,
ASSET_4D5_MODEL_WALL_COBWEB,
// 4d6 Click Clock Wood Entrance Door
// 4d7 Freezeezy Peak Entrance Left Door
// 4d8 Freezeezy Peak Entrance Right Door
// 4d9 Freezeezy Peak Entrance Hatch Door
ASSET_4DA_MODEL_DINING_DOOR = 0x4DA,
ASSET_4D6_MODEL_GL_CCW_DOOR_ENTRANCE,
ASSET_4D7_MODEL_GL_FP_DOOR_ENTRANCE_LEFT,
ASSET_4D8_MODEL_GL_FP_DOOR_ENTRANCE_LEFT,
ASSET_4D9_MODEL_GL_ADVENT_CALENDAR_HATCH_DOOR,
ASSET_4DA_MODEL_DINING_DOOR,
ASSET_4DB_MODEL_SUNNY_LIFEBOAT,
ASSET_4DC_MODEL_WITCH_SWITCH,
// 4dd Mumbo Skull Switch
ASSET_4DE_MODEL_SHADOW_LIFEBOAT = 0x4DE,
ASSET_4DF_MODEL_WARP_CAULDRON,
// 4e0 CCW Season Door
// 4e1 GL Wooden Coffin
ASSET_4E1_MODEL_GL_WOODEN_COFFIN_NO_LID = 0x4E1,
ASSET_4E2_MODEL_CRACKED_SKYLIGHT = 0x4E2,
// 4e3 CCW Dead Beanstalk
// 4e4 Snore 'Z'
@@ -3650,15 +3681,15 @@ enum asset_e
ASSET_4F2_MODEL_COLLIWOBBLE_LARGE_DEATH,
ASSET_4F3_MODEL_COLLIWOBBLE_SMALL_DEATH,
ASSET_4F4_MODEL_COLLIWOBBLE_STEM_DEATH,
// 4f5 CCW Spring Switch
// 4f6 CCW Summer Switch
// 4f7 CCW Autumn Switch
// 4f8 CCW Winter Switch
// 4f9 CCW Nabnut's Window (Season?)
// 4fa CCW Nabnut's Window (Season?)
// 4fb CCW Nabnut's Window (Winter)
// 4fc CCW Nabnut's Window (Season?)
ASSET_4FD_MODEL_WHIPCRACK = 0x4fd,
ASSET_4F5_MODEL_CCW_SPRING_SWITCH,
ASSET_4F6_MODEL_CCW_SUMMER_SWITCH,
ASSET_4F7_MODEL_CCW_AUTUMN_SWITCH,
ASSET_4F8_MODEL_CCW_WINTER_SWITCH,
ASSET_4F9_MODEL_CCW_UNKNOWN_NABNUT_WINDOW,
ASSET_4FA_MODEL_CCW_AUTUMN_NABNUT_WINDOW,
ASSET_4FB_MODEL_CCW_WINTER_NABNUT_WINDOW,
ASSET_4FC_MODEL_CCW_UNKNOWN_NABNUT_WINDOW,
ASSET_4FD_MODEL_WHIPCRACK,
ASSET_4FE_MODEL_WHIPCRACK_PART_1,
ASSET_4FF_MODEL_WHIPCRACK_PART_2,
ASSET_500_MODEL_WHIPCRACK_PART_3,
@@ -3668,22 +3699,23 @@ enum asset_e
ASSET_504_MODEL_ICECUBE = 0x504,
ASSET_505_MODEL_ICECUBE_CHUNK,
// 506 CCW Dead Snarebear (Venus Flytrap)
// 507 GL Grunty Floor Picture Eye 1
// 508 GL Grunty Floor Picture Eye 2
// 509 GL Jinxy Sarcophagus
ASSET_50A_MODEL_SHARKFOOD_ISLAND = 0x50A,
ASSET_507_MODEL_GL_GRUNTY_FLOOR_PICTURE_EYE_1 = 0x507,
ASSET_508_MODEL_GL_GRUNTY_FLOOR_PICTURE_EYE_2,
ASSET_509_MODEL_GL_SARCOPHAGUS,
ASSET_50A_MODEL_SHARKFOOD_ISLAND,
ASSET_50B_MODEL_X_BARREL_TOP,
ASSET_50C_MODEL_ICE_KEY = 0x50C,
ASSET_50C_MODEL_ICE_KEY,
ASSET_50D_MODEL_SNS_EGG,
// 511 GL Wooden Coffin Lid
ASSET_511_MODEL_CRYPT_COFFIN_LID = 0x511,
// 512 (Piece Of Glass Panel Blocking Ice Key 1?)
// 513 (Piece Of Glass Panel Blocking Ice Key 2?)
ASSET_514_MODEL_GV_SNS_CHAMBER_DOOR = 0x514,
ASSET_515_MODEL_GV_SNS_SWITCH,
// 516 (Wooden Plank?)
// 517 Iron Gate (No Lock)
// 518 CCW Wooden Door (To Whipcrack Room)
ASSET_519_MODEL_LOGGO = 0x519,
ASSET_517_MODEL_IRON_GATE_NO_LOCK = 0x517,
ASSET_518_MODEL_CCW_WHIPCRACK_ROOM_DOOR,
ASSET_519_MODEL_LOGGO,
ASSET_51A_MODEL_LEAKY,
ASSET_51B_MODEL_SCARAB_BEETLE,
ASSET_51C_MODEL_SCARAB_BEETLE_PART_1,
@@ -3704,42 +3736,42 @@ enum asset_e
ASSET_52B_MODEL_PORTRAIT_OF_MINION,
ASSET_52C_MODEL_GRUBLIN_HOOD,
ASSET_52D_MODEL_GRUBLIN_HOOD_HAT,
// 52e (CCW Season Door?)
ASSET_52F_BANJOS_CHAIR = 0x52F,
ASSET_530_BANJOS_BED,
ASSET_52E_MODEL_CCW_SEASON_DOOR,
ASSET_52F_MODEL_BANJOS_CHAIR,
ASSET_530_MODEL_BANJOS_BED,
// 531 Gnawty's Den
// 532 Banjo & Kazooie (Gameboy/Beer/Sunglasses/Chair)
ASSET_532_MODEL_BANJO_KAZOOIE_CUTSCENES = 0x532, // (Gameboy/Beer/Sunglasses/Chair)
// 533 CCW Nabnut's Door
// 534 GL Flight Pad Switch
ASSET_534_MODEL_FLIGHT_PAD_SWITCH = 0x534,
// 535 Flight Pad Blue Fragment
// 536 Flight Pad Red Fragment
// 537 Flight Pad Yellow Fragment
// 538 Jiggy Podium (Beta?)
// 539 Brentilda
ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE = 0x53A,
ASSET_539_MODEL_BRENTILDA = 0x539,
ASSET_53A_MODEL_SHRAPNAL_PIECE_EYE,
ASSET_53B_MODEL_SHRAPNAL_PIECE_SPIKE,
ASSET_53C_MODEL_SHRAPNAL_PIECE_PLATE,
ASSET_53D_MODEL_GRUNTILDA_FINAL_BOSS,
// 53e Gnawty's Bed
// 53f Gnawty's Shelves
// 540 GL Shock Jump Pad Switch
ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK = 0x541,
ASSET_53E_MODEL_GNAWTY_BED,
ASSET_53F_MODEL_GNAWTY_SHELVES,
ASSET_540_MODEL_SHOCK_JUMP_PAD_SWITCH,
ASSET_541_SPRITE_FIREBALL_SPELL_ATTACK,
// 542 (Shadow?)
ASSET_543_MODEL_JINJO_STATUE_BASE = 0x543,
ASSET_544_MODEL_JINJONATOR_STATUE_BASE,
ASSET_545_MODEL_STONE_JINJO,
ASSET_546_MODEL_GRUNTY_SPELL_BARRIER,
// 547 GL Blue Egg Refill Pillow
// 548 GL Red Feather Refill Pillow
// 549 GL Gold Feather Refill Pillow
ASSET_547_MODEL_BLUE_EGG_REFILL_PILLOW,
ASSET_548_MODEL_RED_FEATHER_REFILL_PILLOW,
ASSET_549_MODEL_GOLD_FEATHER_REFILL_PILLOW,
ASSET_54A_MODEL_GRUNTLING_RED = 0x54A,
// 54b (Big Fireball?)
ASSET_54C_MODEL_GAME_OVER = 0x54C,
// 54d Banjo-Kazooie Sign
ASSET_54E_MODEL_COPYRIGHT_OVERLAY = 0x54E,
// 54f Cheato
// 550 Large Door To Final Battle
ASSET_551_MODEL_JINJONATOR = 0x551,
ASSET_54D_MODEL_BANJO_KAZOOIE_SIGN,
ASSET_54E_MODEL_COPYRIGHT_OVERLAY,
ASSET_54F_MODEL_CHEATO,
ASSET_550_MODEL_LARGE_DOOR_TO_FINAL_BATTLE,
ASSET_551_MODEL_JINJONATOR,
ASSET_552_MODEL_BROOMSTICK_PIECE_HEAD,
ASSET_553_MODEL_BROOMSTICK_PIECE_SHORT,
ASSET_554_MODEL_BROOMSTICK_PIECE_LONG,
@@ -3748,29 +3780,29 @@ enum asset_e
ASSET_557_MODEL_ORANGE_JINJO_BLAST,
ASSET_558_MODEL_GREEN_JINJO_BLAST,
ASSET_559_MODEL_PINK_JINJO_BLAST,
// 55a BK World Entry/Exit Pad
// 55b FP Boggy's Igloo
ASSET_55C_MODEL_PRESS_START_OVERLAY = 0x55C,
ASSET_55A_MODEL_WORLD_EXIT_PAD,
ASSET_55B_MODEL_BOGGY_IGLOO,
ASSET_55C_MODEL_PRESS_START_OVERLAY,
ASSET_55D_MODEL_NO_CONTROLLER_OVERLAY,
ASSET_55E_MODEL_NAPPER,
ASSET_55F_MODEL_FF_PRIZE_WASHING_CAULDRON,
ASSET_560_MODEL_FF_PRIZE_GRUNTY_DOLL,
ASSET_561_MODEL_GRUNTLING_BLUE = 0x561,
ASSET_561_MODEL_GRUNTLING_BLUE,
ASSET_562_MODEL_GRUNTLING_BLACK,
// 563 Level Entry Signs
ASSET_564_MODEL_PURPLE_TEEHEE = 0x564,
ASSET_563_MODEL_LEVEL_ENTRY_SIGNS,
ASSET_564_MODEL_PURPLE_TEEHEE,
// 565 Bottles Game Banjo's Hand
ASSET_566_MODEL_BLACK_SNIPPET = 0x566,
ASSET_567_MODEL_BLACK_CRAB_HEAD,
ASSET_568_MODEL_BLACK_CRAB_LEG,
ASSET_569_MODEL_BLACK_CRAB_CLAW,
// 56a FP Chimney
ASSET_56B_MODEL_SANDYBUTT_PYRAMID = 0x56B,
// 56c The End Sign
ASSET_56D_MUMBOS_HAND_WITH_PICTURE = 0x56D, // Mumbo's Hand with SNS pictures
// 56e Hammerhead Beach Scenery
// Unused
// Unused
ASSET_56A_MODEL_FP_HOUSE_CHIMNEY,
ASSET_56B_MODEL_SANDYBUTT_PYRAMID,
ASSET_56C_MODEL_THE_END_SIGN,
ASSET_56D_MUMBOS_HAND_WITH_PICTURE, // Mumbo's Hand with SNS pictures
// 56E Hammerhead Beach Scenery
// 56F Unused
// 570 Unused
// Unused
// 572 Palm Tree (2D)
// Unused
@@ -4119,7 +4151,8 @@ enum asset_e
ASSET_6D1_SPRITE_GOLDFEATHER = 0x6d1,
ASSET_6D6_MODEL_MUSIC_NOTE = 0x6d6,
ASSET_6D6_SPRITE_MUSIC_NOTE = 0x6d6,
ASSET_6D7_SPRITE_BLUE_EGGS,
ASSET_6D9_SPRITE_PROPELLOR_TIMER = 0x6d9,
ASSET_6DA_SPRITE_HOURGLASS,
@@ -4704,6 +4737,15 @@ enum asset_e
ASSET_FC0_DIALOG_GRUNTY_DOOR_HAVE_JIGGIES = 0xFC0,
// ASSET_101E_UNUSED
ASSET_101F_DIALOG_FF_BK_TILE_DIALOG = 0x101F,
ASSET_1020_DIALOG_FF_PICTURE_TILE_DIALOG,
ASSET_1021_DIALOG_FF_MUSIC_TILE_DIALOG,
ASSET_1022_DIALOG_FF_MINIGAME_TILE_DIALOG,
ASSET_1023_DIALOG_FF_GRUNTY_TILE_DIALOG,
ASSET_1024_DIALOG_FF_DEATH_TILE_DIALOG,
ASSET_1025_DIALOG_FF_JOKER_TILE_DIALOG,
ASSET_1032_DIALOG_FF_FIRST_ANSWER_CORRECT = 0x1032,
ASSET_1033_DIALOG_FF_NEXT_ANSWER_CORRECT,
ASSET_1034_DIALOG_FF_GRUNTY_ANSWER_CORRECT,
@@ -4717,6 +4759,8 @@ enum asset_e
ASSET_103C_DIALOG_FF_LOW_HEALTH,
ASSET_103D_DIALOG_FF_LOW_HEALTH_ON_SKULL,
ASSET_1040_DIALOG_FURNACE_FUN_PICK_PRICE = 0x1040,
ASSET_10A1_DIALOG_BRENTILDA_MEET = 0x10A1,
ASSET_10A2_DIALOG_BRENTILDA_HEAL,
@@ -5171,7 +5215,7 @@ enum marker_e{
MARKER_A_CHIMPY,
MARKER_C_ORANGE_PROJECTILE = 0xC,
// MARKER_E
MARKER_11_WADING_BOOTS = 0x11,
MARKER_13_SNIPPET = 0x13,
@@ -5188,10 +5232,9 @@ enum marker_e{
MARKER_25_CONCERT_FROG,
MARKER_26_CONCERT_BIGBUTT,
MARKER_28_CLANKER_SAWBLADE = 0x28,
MARKER_2A_WHISTLE_1_YELLOW = 0x2A,
MARKER_29_GRILLE_CHOMPA,
MARKER_2A_WHISTLE_1_YELLOW,
MARKER_2B_WHISTLE_2_YELLOW,
MARKER_2C_WHISTLE_3_YELLOW,
MARKER_2D_WHISTLE_CTRL,
@@ -5199,7 +5242,7 @@ enum marker_e{
MARKER_2F_ANCHOR_SWITCH,
MARKER_30_SNORKEL,
MARKER_31_ANCHOR,
MARKER_32_PLAYER_SHADOW = 0x32,
MARKER_32_PLAYER_SHADOW,
MARKER_33_LEAKY,
MARKER_34_CEMETARY_POT,
@@ -5221,13 +5264,13 @@ enum marker_e{
MARKER_4D_CLANKER_JIGGY_TOOTH_EXT,
MARKER_4E_CLANKER_TOKEN_TOOTH,
MARKER_4F_CLANKER_JIGGY_TOOTH,
MARKER_50_BEEHIVE = 0x50,
MARKER_50_BEEHIVE,
MARKER_51_MM_HUT,
MARKER_52_JIGGY,
MARKER_53_EMPTY_HONEYCOMB,
MARKER_55_HONEYCOMB = 0x55,
MARKER_57_STEAM = 0x57,
MARKER_58_WADING_BOOTS_TOUCH_SPARKLE,
MARKER_59_TURBO_TRAINERS_TOUCH_SPARKLE,
@@ -5294,7 +5337,7 @@ enum marker_e{
MARKER_B7_TUTORIAL_BOTTLES = 0xB7,
MARKER_B8_MOLEHILL,
MARKER_B9_FP_SNOWMAN_BUTTON = 0xB9,
MARKER_B9_FP_SNOWMAN_BUTTON,
MARKER_BA_XMAS_TREE,
MARKER_BB_UNKNOWN,
MARKER_BC_GOBI_1,
@@ -5328,8 +5371,10 @@ enum marker_e{
MARKER_E1_BANJOS_BED = 0xE1,
MARKER_E2_BANJOS_CHAIR,
MARKER_E3_BANJOS_STOVE,
MARKER_E7_DINING_DOOR = 0xE7,
MARKER_E4_CS_BK_SLEEPING,
MARKER_E5_CS_BK_GAMEBOY,
MARKER_E6_CS_BK_COOKING,
MARKER_E7_DINING_DOOR,
MARKER_EA_LIGHTHOUSE_DOOR = 0xEA,
MARKER_EB_GV_BANJO_DOOR,
@@ -5352,33 +5397,45 @@ enum marker_e{
MARKER_FD_BGS_MAZE_SWITCH,
MARKER_FE_MMM_CLOCK_SWITCH,
MARKER_FF_HEDGE_GATE_RIGHT_LOCK_2,
MARKER_100_SPENT_RED_FEATHER = 0x100,
MARKER_100_SPENT_RED_FEATHER,
MARKER_101_SPENT_GOLD_FEATHER,
MARKER_103_MM_WITCH_SWITCH = 0x103,
MARKER_102_NOTE_DOOR,
MARKER_103_MM_WITCH_SWITCH,
MARKER_104_MMM_WITCH_SWITCH,
MARKER_105_TTC_WITCH_SWITCH,
MARKER_106_RBB_WITCH_SWITCH,
MARKER_107_ENGINE_ROOM_DOOR,
MARKER_108_CABIN_CLOSET_DOOR,
MARKER_109_BREAKABLE_BRICK_WALL = 0x109,
MARKER_109_BREAKABLE_BRICK_WALL,
MARKER_11B_WATER_LEVEL_SWITCH_1 = 0x11B,
MARKER_118_GRATE_TO_LEVEL_3_WATER_SWITCH = 0x118,
MARKER_119_GRATE_BETWEEN_MMM_AND_RBB_PUZZLES,
MARKER_11A_GRATE_TO_RBB_PUZZLE,
MARKER_11B_WATER_LEVEL_SWITCH_1,
MARKER_11C_WATER_LEVEL_SWITCH_2,
MARKER_11D_WATER_LEVEL_SWITCH_3,
MARKER_11E_ICE_BALL_TO_CHEATO,
MARKER_11F_RAREWARE_BOX,
MARKER_121_GLASS_EYE = 0x121,
MARKER_123_WINDOW = 0x123,
MARKER_124_BOGGY_1,
MARKER_127_BAT = 0x127,
MARKER_125_BOGGY_RACE_FLAG,
MARKER_126_BOGGY_RACE_FLAG,
MARKER_127_BAT,
MARKER_128_COLLYWOBBLE_THE_CAULIFLOWER_A,
MARKER_129_BAWL_THE_ONION_A,
MARKER_12A_TOPPER_THE_CARROT_A,
MARKER_12B_ATTACK_TUTORIAL,
MARKER_12C_CCW_WINTER_SWITCH,
MARKER_12D_CCW_WINTER_SEASON_DOOR,
MARKER_12E_CCW_AUTUMN_SWITCH,
MARKER_12F_CCW_AUTUMN_SEASON_DOOR,
MARKER_130_CCW_SUMMER_SWITCH,
MARKER_131_CCW_SUMMER_SEASON_DOOR,
MARKER_132_CCW_SPRING_SWITCH,
MARKER_133_CCW_SPRING_SEASON_DOOR,
MARKER_134_UNKNOWN = 0x134,
MARKER_135_QUARRIE,
@@ -5386,32 +5443,48 @@ enum marker_e{
MARKER_13E_CUCKOO_CLOCK,
MARKER_15F_RBB_HONEYCOMB_SWITCH = 0x15F,
MARKER_161_GV_WITCH_SWITCH = 0x161,
MARKER_160_GL_SARCOPHAGUS,
MARKER_161_GV_WITCH_SWITCH,
MARKER_162_BGS_WITCH_SWITCH,
MARKER_166_CC_WITCH_SWITCH = 0x166,
MARKER_163_CRYPT_COFFIN_LID,
MARKER_164_GL_GRUNTY_FLOOR_PICTURE_EYE_1,
MARKER_165_GL_GRUNTY_FLOOR_PICTURE_EYE_2,
MARKER_166_CC_WITCH_SWITCH,
MARKER_167_SHARKFOOD_ISLAND,
MARKER_168_ICE_KEY,
MARKER_169_SNS_EGG,
MARKER_16B_SNIPPET_UPSIDEDOWN = 0x16B,
MARKER_16C_NIPPER,
MARKER_173_CHUMP_FISH_2 = 0x173,
MARKER_174_GAME_OVER = 0x174,
MARKER_16D_CHEATO_1,
MARKER_16E_CHEATO_2,
MARKER_16F_CHEATO_3,
MARKER_170_BLUE_EGG_REFILL_PILLOW,
MARKER_171_RED_FEATHER_REFILL_PILLOW,
MARKER_172_GOLD_FEATHER_REFILL_PILLOW,
MARKER_173_CHUMP_FISH_2,
MARKER_174_GAME_OVER,
MARKER_176_COPYRIGHT_OVERLAY = 0x176,
MARKER_177_PRESS_START_OVERLAY,
MARKER_178_NO_CONTROLLER_OVERLAY,
MARKER_182_RBB_EGG_TOLL = 0x182,
MARKER_17D_IRON_GATE_NO_LOCK = 0x17D,
MARKER_185_MODEL_RUSTY_BUCKET_REAR_PROPELLER = 0x185,
MARKER_182_RBB_EGG_TOLL = 0x182,
MARKER_183_RBB_EGG_TOLL,
MARKER_184_RBB_EGG_TOLL,
MARKER_185_RBB_REAR_PROPELLER = 0x185,
MARKER_186_RBB_GREEN_PROPELLER_SWITCH,
MARKER_191_ENGINE_ROOM_PROPELLOR_1 = 0x191,
MARKER_192_ENGINE_ROOM_PROPELLOR_2,
MARKER_193_ENGINE_ROOM_PROPELLOR_3,
MARKER_194_RBB_GREY_PROPELLER_SWITCH,
MARKER_195_WHISTLE_SWITCH_1,
MARKER_196_WHISTLE_SWITCH_2,
MARKER_197_WHISTLE_SWITCH_3,
MARKER_19A_TIPTUP = 0x19A,
MARKER_19B_CHOIR_TURTLE_YELLOW,
@@ -5424,32 +5497,42 @@ enum marker_e{
MARKER_1A2_BOSS_BOOM_BOX_LARGE,
MARKER_1A3_BOSS_BOOM_BOX_MEDIUM ,
MARKER_1A4_BOSS_BOOM_BOX_SMALL,
MARKER_1A5_SANDYBUTT_EGG_TOLL,
MARKER_1A6_BETA_VENT,
MARKER_1A7_CLANKER_WHIPCRACK,
MARKER_1A7_CLANKER_WHIPCRACK = 0x1A7,
MARKER_1A9_CC_BREAKABLE_GRATES = 0x1A9,
MARKER_1AC_ZUBBA_DOOR = 0x1AC,
MARKER_1AE_ZUBBA = 0x1AE,
MARKER_1B1_CCW_GOBI = 0x1B1,
MARKER_1B0_CCW_BEANSTALK = 0x1B0,
MARKER_1B1_CCW_GOBI,
MARKER_1B2_CLUCKER_A,
MARKER_1B4_EEYRIE_BABY = 0x1B4,
MARKER_1B3_EAGLE_EGG,
MARKER_1B4_EEYRIE_BABY,
MARKER_1B5_CATERPILLAR,
MARKER_1B7_BOOM_BOX = 0x1B7,
MARKER_1BB_NABNUT = 0x1BB,
MARKER_1BF_GNAWTY_BOULDER = 0x1BF,
MARKER_1C5_WHIPCRACK = 0x1C5,
MARKER_1CD_GV_MAZE_CTRL = 0x1CD,
MARKER_1D0_CLUCKER_B = 0x1D0,
MARKER_1CF_GRILLE_CHOMPA_ATTACKING = 0x1CF,
MARKER_1D0_CLUCKER_B,
MARKER_1D1_PORTRAIT_CHOMPA_B,
MARKER_1D4_SANDYBUTT_PYRAMID = 0x1D4,
MARKER_1D5_PALM_TREE,
MARKER_1E1_FF_MINIGAME = 0x1E1,
MARKER_1E0_BRENTILDA = 0x1E0,
MARKER_1E1_FF_MINIGAME,
MARKER_1E2_GRUBLIN_HOOD,
MARKER_1E3_VACATION_TEXT_TRIGGER,
@@ -5508,12 +5591,13 @@ enum marker_e{
MARKER_22E_SHIP_SUNNY_WINDOW,
MARKER_22F_SUNNY_LIFEBOAT,
MARKER_230_SHADOW_LIFEBOAT,
MARKER_231_WARP_CAULDRON = 0x231,
MARKER_231_WARP_CAULDRON,
MARKER_235_CRACKED_SKYLIGHT = 0x235,
MARKER_236_CCW_UNKNOWN_NABNUT_WINDOW,
MARKER_237_CCW_AUTUMN_NABNUT_WINDOW,
MARKER_238_CCW_WINTER_NABNUT_WINDOW,
MARKER_239_CCW_UNKNOWN_NABNUT_WINDOW,
MARKER_23A_GV_SNS_CHAMBER_DOOR = 0x23A,
MARKER_23B_GV_SNS_SARCOPHAGUS,
MARKER_23C_GV_SNS_SWITCH,
@@ -5538,10 +5622,12 @@ enum marker_e{
MARKER_25B_PORTRAIT_OF_MINION,
MARKER_25C_GRUNTY_SPELL_FIREBALL,
MARKER_25D_GREEN_BLAST,
MARKER_25E_GRUNTILDA_FINAL_BOSS,
MARKER_25E_GRUNTILDA_FINAL_BOSS_VULNERABLE,
MARKER_25F_ICECUBE_B,
MARKER_260_GRUNTY_PHASE_1_2_MOVING,
MARKER_261_FIGHT_FLIGHT_PAD,
MARKER_261_FIGHT_FLIGHT_PAD = 0x261,
MARKER_263_CCW_WHIPCRACK_ROOM_DOOR = 0x263,
MARKER_267_LIGHTHOUSE_A = 0x267,
MARKER_268_STAIRS_1,
@@ -5558,8 +5644,10 @@ enum marker_e{
MARKER_27F_JINJONATOR_STATUE_BASE,
MARKER_280_GRUNTY_SPELL_GREEN_ATTACK = 0x280,
MARKER_284_GRUNTY_SPELL_BARRIER = 0x284,
MARKER_281_GRUNTY_PHASE_2_VULNERABLE,
MARKER_282_GRUNTY_PHASE_3_FLIGHT,
MARKER_283_GRUNTY_PHASE_4_5_INVULNERABLE,
MARKER_284_GRUNTY_SPELL_BARRIER,
MARKER_285_JINJONATOR,
MARKER_288_GRUNTY_SHADOW = 0x288,
@@ -5571,7 +5659,9 @@ enum marker_e{
MARKER_29A_FF_PRIZE = 0x29A,
MARKER_29D_ROCK_TRAPPING_GRUNTY = 0x29D
MARKER_29C_FURNACE_FUN_PICK_PRICE = 0x29C,
MARKER_29D_ROCK_TRAPPING_GRUNTY,
MARKER_29E_BIGBUTT_KNOCKED_DOWN
};
enum hitbox_e{
+1 -1
View File
@@ -493,7 +493,7 @@ extern void spawnableActorList_addIfMapVisited(ActorInfo *arg0, Actor *(*arg1)(s
extern void marker_setActorUpdateFunc(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_setActorUpdate2Func(ActorMarker *marker, ActorUpdateFunc method);
extern void marker_callCollisionFunc(ActorMarker *, ActorMarker *, enum marker_collision_func_type_e);
extern enum marker_collision_func_type_e func_8033D574(struct5Cs *arg0);
extern enum marker_collision_func_type_e collision_getNextState(CollisionParams *arg0);
extern s32 volatileFlag_get(enum volatile_flags_e);
extern s32 volatileFlag_getN(enum volatile_flags_e index, s32 numBits);
extern s32 volatileFlag_getAndSet(enum volatile_flags_e index, s32 arg1);
+98 -55
View File
@@ -9,57 +9,87 @@
#include "core2/skeletalanim.h"
typedef struct sprite_prop_s{
u32 sprite_index:0xC;
u32 unk0_19:0x1;
u32 r:0x3;
u32 b:0x3;
u32 g:0x3;
u32 scale:0x8;
u32 mirrored:0x1;
s16 unk4[3];
u32 spriteId:12;
u32 unk0_19:1;
u32 rgb_remove_red:3;
u32 rgb_remove_green:3;
u32 rgb_remove_blue:3;
u32 scale:8;
u32 isMirrored:1;
u32 pad0_0: 1;
union
{
s16 position[3];
struct {
s16 position_x;
s16 position_y;
s16 position_z;
};
};
u16 frame: 5;
u16 unk8_10: 5;
u16 unk8_5: 1;
u16 unk8_4: 1;
u16 unk8_3: 1;
u16 unk8_2: 1;
u16 is_3d:1;
u16 is_actor:1;
u16 unk8_5: 1; // other structs use this to determine whether it's mirrored, however for sprites another bit address is used
u16 isNotFeatherEggOrNote: 1;
u16 unk8_3: 1; // is initialized?
u16 isCollisionResolved: 1;
u16 isModelProp:1; // always false for this struct
u16 isActorProp:1; // always false for this struct
} SpriteProp;
#define SPRITE_ASSET_OFFSET 0x572
typedef struct model_prop_s{
union{
u16 unk0;
struct{
u16 model_index:12;
u16 modelId:12;
u16 pad0_19:4;
};
};
u8 yaw;
u8 roll;
s16 position[3];
union
{
s16 position[3];
struct {
s16 position_x;
s16 position_y;
s16 position_z;
};
};
u8 scale;
u8 padB_7 :2;
u8 unkB_5 :1;
u8 unkB_4 :1;
u8 padB_3 :4;
u8 padB_7:2;
u8 unkB_5:1;
u8 unkB_4:1;
u8 unk8_3:1; // is initialized?
u8 isCollisionResolved:1;
u8 isModelProp:1; // always true for this struct
u8 isActorProp:1; // always false for this struct
} ModelProp;
#define MODEL_ASSET_OFFSET 0x2D1
typedef struct actor_prop_s{
union {
struct {
struct actorMarker_s* marker;
s16 x;
s16 y;
s16 z;
u16 unk8_15:5;
union
{
s16 position[3]; // position_
struct {
s16 position_x;
s16 position_y;
s16 position_z;
};
};
u16 frame:5;
u16 unk8_10:5;
u16 unk8_5:1;
u16 unk8_4:1;
u16 unk8_3:1;
u16 unk8_2:1;
u16 is_3d:1;
u16 is_actor:1;
u16 isMirrored:1;
u16 isNotFeatherEggOrNote:1;
u16 unk8_3:1; // is initialized?
u16 isCollisionResolved:1;
u16 isModelProp:1; // always false for this struct
u16 isActorProp:1; // always true for this struct
};
s32 words[3];
};
@@ -326,36 +356,49 @@ typedef union prop_s
ModelProp modelProp;
struct{
u32 pad0;
s16 unk4[3];
// s16 unk6;
s16 pad8_15: 10;
u16 unk8_5: 1;
u16 unk8_4: 1;
u16 unk8_3: 1;
u16 unk8_2: 1;
u16 is_3d: 1;
u16 is_actor: 1;
union
{
s16 position[3];
struct {
s16 position_x;
s16 position_y;
s16 position_z;
};
};
s16 pad8_15:10;
u16 isMirrored:1;
u16 isNotFeatherEggOrNote:1;
u16 unk8_3:1; // is initialized?
u16 isCollisionResolved:1;
u16 isModelProp:1;
u16 isActorProp:1;
};
} Prop;
typedef struct {
s16 x;
s16 y;
s16 z;
u16 radius: 9; // selector / volume / diameter?
u16 bit6: 6; // category?
u16 bit0: 1;
u16 unk8; //actor_id?
u8 unkA; //marker_id
union
{
s16 position[3];
struct {
s16 position_x;
s16 position_y;
s16 position_z;
};
};
u16 selector_or_radius:9; // selector / volume / diameter?
u16 category:6;
u16 bit0:1;
u16 actorId;
u8 markerId;
u8 padB;
u32 yaw: 9; // unkC_31
u32 scale: 23; // unkC_22
u32 unk10_31: 12; // unk10_31 and unk10_19 seem to be related
u32 unk10_19: 12; // unk10_31 and unk10_19 seem to be related
u32 pad10_7: 1;
u32 unk10_6: 1; // isInitialized flag?
u32 pad10_5: 4;
u32 unk10_0: 2; // is only for used in func_803303B8
u32 yaw:9;
u32 scale:23;
u32 unk10_31:12; // unk10_31 and unk10_19 seem to be related
u32 unk10_19:12; // unk10_31 and unk10_19 seem to be related
u32 pad10_7:1;
u32 unk10_6:1; // isInitialized flag?
u32 pad10_5:4;
u32 unk10_0:2; // is only for used in func_803303B8
} NodeProp; // size = 20 (0x14) bytes
typedef struct {
+7 -7
View File
@@ -501,13 +501,13 @@ typedef struct {
}struct5Bs;
typedef struct{
u16 unk0_15 : 4;
u16 unk0_11 : 2;
u16 unk0_9 : 3;
u16 unk0_6 : 2;
u16 unk0_4 : 3;
u16 unk0_1 : 2;
}struct5Cs;
u16 playerInteraction:4;
u16 nextState:2;
u16 unkBit7:3;
u16 damageToPlayer:2;
u16 hitsToTrigger:3; // 1 / hitsToTrigger = % of health of enemy taken away
u16 dropBundleNum:2;
}CollisionParams;
typedef struct struct_5d_s{
s32 unk0;
+4 -4
View File
@@ -395,10 +395,10 @@ savedata_8033CA9C = 0x8033ceec;
savedata_8033CE40 = 0x8033d15c;
func_8033D2F4 = 0x8033d744;
func_8033D410 = 0x8033d860;
func_8033D564 = 0x8033d9b4;
func_8033D574 = 0x8033d9c4;
func_8033D594 = 0x8033d9e4;
func_8033D5A4 = 0x8033d9f4;
collision_getPlayerInteraction = 0x8033d9b4;
collision_getNextState = 0x8033d9c4;
collision_getDamageToPlayer = 0x8033d9e4;
collision_getHitsToTrigger = 0x8033d9f4;
time_setDeltaReal_frames = 0x8033e154;
time_getDeltaReal_frames = 0x8033e1e0;
time_getDelta = 0x8033e1ec;
+4 -4
View File
@@ -94,7 +94,7 @@ void func_80387E68(ActorMarker *caller, enum asset_e text_id, s32 arg2){
func_80324D2C(4.5f, COMUSIC_43_ENTER_LEVEL_GLITTER);
subaddie_set_state_with_direction(this, 5, 0.79f, 1);
func_80326310(this); //did not disappear when moved, after cutscene still there with collision but broken
bgs_D_803907B8[this->actorTypeSpecificField]->propPtr->unk8_4 = TRUE;
bgs_D_803907B8[this->actorTypeSpecificField]->propPtr->isNotFeatherEggOrNote = TRUE;
timedFunc_set_1(1.1f, (GenFunction_1)func_80387E00, reinterpret_cast(s32, bgs_D_803907B8[this->actorTypeSpecificField]));
timed_setStaticCameraToNode(0.8f, 9);
func_80324DBC(3.4f, ASSET_C87_DIALOG_CROCTUS_SECOND_SPAWN, 0xE, NULL, NULL, func_80387E68, NULL);
@@ -119,7 +119,7 @@ void chCroctus_updat(Actor *this){
bgs_D_803907B8[this->actorTypeSpecificField - 1] = this->marker;
for(j = this->actorTypeSpecificField; j < 6; j++){
if(bgs_D_803907B8[j] != NULL){
bgs_D_803907B8[j]->propPtr->unk8_4 = FALSE;
bgs_D_803907B8[j]->propPtr->isNotFeatherEggOrNote = FALSE;
actor_setOpacity(marker_getActor(bgs_D_803907B8[j]), 0);
}
}//L803880C8
@@ -128,7 +128,7 @@ void chCroctus_updat(Actor *this){
if(j >= 0){
this->marker->propPtr->unk8_4 = FALSE;
this->marker->propPtr->isNotFeatherEggOrNote = FALSE;
actor_setOpacity(this, 0);
}
this->marker->propPtr->unk8_3 = TRUE;
@@ -157,7 +157,7 @@ void chCroctus_updat(Actor *this){
func_80326310(this);
}
if (this->actorTypeSpecificField < 5) {
bgs_D_803907B8[this->actorTypeSpecificField]->propPtr->unk8_4 = TRUE;
bgs_D_803907B8[this->actorTypeSpecificField]->propPtr->isNotFeatherEggOrNote = TRUE;
timedFunc_set_1(1.1f, (GenFunction_1)func_80387E00, reinterpret_cast(s32, bgs_D_803907B8[this->actorTypeSpecificField]));
gcStaticCamera_activate(D_803907B0[this->actorTypeSpecificField-1]);
} else {
+3 -3
View File
@@ -13,21 +13,21 @@ void func_80389900(Actor *this);
u8 D_80389E40[] = {3, 3, 2, 0};
ActorInfo D_80389E44 = {
0x1A9, 0x28C, 0x435,
MARKER_1A9_CC_BREAKABLE_GRATES, 0x28C, ASSET_435_MODEL_CC_GREEN_GRATE,
0, NULL,
func_80389900, NULL, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_80389E68 = {
0x1A9, 0x28D, 0x436,
MARKER_1A9_CC_BREAKABLE_GRATES, 0x28D, ASSET_436_MODEL_CC_TEAL_GRATE,
0, NULL,
func_80389900, NULL, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_80389E8C = {
0x1A9, 0x28E, 0x437,
MARKER_1A9_CC_BREAKABLE_GRATES, 0x28E, 0x437,
0, NULL,
func_80389900, NULL, actor_draw,
0, 0, 0.0f, 0
+2 -2
View File
@@ -23,7 +23,7 @@ typedef struct {
u8 unk9;
u8 unkA;
u8 unkB;
u32 unkC_31:3;
u32 yaw:3;
u32 unkC_28:1;
u32 season:28;
s16 unk10;
@@ -120,7 +120,7 @@ void __chgrublinhood_initialize(Actor *this){
local->unk9 = 0xC;
local->unkA = 0x10;
local->unkB = 8;
local->unkC_31 = 1;
local->yaw = 1;
local->unk10 = 0x29;
local->unk12 = 25000;
local->unkC_28 = 1;
+15 -4
View File
@@ -4,14 +4,25 @@
void func_803864B8(Actor *this);
ActorInfo D_8038EB50 = { 0x1AC, 0x298, 0x444, 0x0, NULL, func_803864B8, NULL, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_8038EB74 = { 0x1AC, 0x29A, 0x445, 0x0, NULL, func_803864B8, NULL, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_8038EB50 = {
MARKER_1AC_ZUBBA_DOOR, ACTOR_298_ZUBBA_DOOR, ASSET_444_MODEL_CCW_ZUBBA_DOOR,
0x0, NULL,
func_803864B8, NULL, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_8038EB74 = {
MARKER_1AC_ZUBBA_DOOR, ACTOR_29A_ZUBBA_DOOR, ASSET_445_MODEL_CCW_ZUBBA_DOOR,
0x0, NULL,
func_803864B8, NULL, actor_draw,
0, 0, 0.0f, 0
};
/* .code */
void CCW_func_803863F0(Actor *this, s32 next_state){
if(next_state == 2){
sfx_playFadeShorthandDefault(SFX_2F_ORANGE_SPLAT, 1.0f, 32000, this->position, 500, 3000);
levelSpecificFlags_set(LEVEL_FLAG_10_CCW_UNKNOWN, TRUE);
levelSpecificFlags_set(LEVEL_FLAG_10_CCW_BREAK_ZUBBA_DOOR, TRUE);
marker_despawn(this->marker);
}
this->state = next_state;
@@ -31,7 +42,7 @@ void func_803864B8(Actor *this){
marker_setCollisionScripts(this->marker, NULL, NULL, func_80386468);
CCW_func_803863F0(this, 1);
if (levelSpecificFlags_get(LEVEL_FLAG_10_CCW_UNKNOWN)) {
if (levelSpecificFlags_get(LEVEL_FLAG_10_CCW_BREAK_ZUBBA_DOOR)) {
marker_despawn(this->marker);
}
}
+7 -1
View File
@@ -28,7 +28,13 @@ Struct_CCW_1B20_0 D_8038EC40[4] ={
{0x183, 1, 1, 0x000, 0x000, 0x00, 0}
};
ActorInfo D_8038EC70 = { 0x1B0, 0x29D, 0x447, 0x0, NULL, func_80388478, NULL, CCW_func_803882F4, 0, 0, 1.0f, 0};
ActorInfo D_8038EC70 = {
MARKER_1B0_CCW_BEANSTALK, ACTOR_29D_CCW_BEANSTALK, ASSET_447_MODEL_CCW_BEANSTALK,
0x0, NULL,
func_80388478, NULL, CCW_func_803882F4,
0, 0, 1.0f, 0
};
f32 D_8038EC94[3] = {200.0f, 2120.0f, -5570.0f};
/* .code */
+55 -8
View File
@@ -29,14 +29,61 @@ ActorAnimationInfo D_8038ED20[] = {
{ASSET_D4_ANIM_SWITCH_DOWN, 100000000.0f}
};
ActorInfo D_8038ED50 = { 0x133, 0x1E3, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
ActorInfo D_8038ED74 = { 0x132, 0x1E2, 0x4F5, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_8038ED98 = { 0x131, 0x16D, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
ActorInfo D_8038EDBC = { 0x130, 0x16C, 0x4F6, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_8038EDE0 = { 0x12F, 0x16B, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
ActorInfo D_8038EE04 = { 0x12E, 0x16A, 0x4F7, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_8038EE28 = { 0x12D, 0x169, 0x52E, 0x1, NULL, func_80389268, actor_update_func_80326224, actor_drawFullDepth, 0, 0x4000, 0.0f, 0};
ActorInfo D_8038EE4C = { 0x12C, 0x168, 0x4F8, 0x5, D_8038ED20, func_80388FD4, actor_update_func_80326224, actor_draw, 0, 0, 0.0f, 0};
ActorInfo D_8038ED50 = {
MARKER_133_CCW_SPRING_SEASON_DOOR, ACTOR_1E3_CCW_SPRING_SEASON_DOOR, ASSET_52E_MODEL_CCW_SEASON_DOOR,
0x1, NULL,
func_80389268, actor_update_func_80326224, actor_drawFullDepth,
0, 0x4000, 0.0f, 0
};
ActorInfo D_8038ED74 = {
MARKER_132_CCW_SPRING_SWITCH, ACTOR_1E2_CCW_SPRING_SWITCH, ASSET_4F5_MODEL_CCW_SPRING_SWITCH,
0x5, D_8038ED20,
func_80388FD4, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_8038ED98 = {
MARKER_131_CCW_SUMMER_SEASON_DOOR, ACTOR_16D_CCW_SUMMER_SEASON_DOOR, ASSET_52E_MODEL_CCW_SEASON_DOOR,
0x1, NULL,
func_80389268, actor_update_func_80326224, actor_drawFullDepth,
0, 0x4000, 0.0f, 0
};
ActorInfo D_8038EDBC = {
MARKER_130_CCW_SUMMER_SWITCH, ACTOR_16C_CCW_SUMMER_SWITCH, ASSET_4F6_MODEL_CCW_SUMMER_SWITCH,
0x5, D_8038ED20,
func_80388FD4, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_8038EDE0 = {
MARKER_12F_CCW_AUTUMN_SEASON_DOOR, ACTOR_16B_CCW_AUTUMN_SEASON_DOOR, ASSET_52E_MODEL_CCW_SEASON_DOOR,
0x1, NULL,
func_80389268, actor_update_func_80326224, actor_drawFullDepth,
0, 0x4000, 0.0f, 0
};
ActorInfo D_8038EE04 = {
MARKER_12E_CCW_AUTUMN_SWITCH, ACTOR_16A_CCW_AUTUMN_SWITCH, ASSET_4F7_MODEL_CCW_AUTUMN_SWITCH,
0x5, D_8038ED20,
func_80388FD4, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_8038EE28 = {
MARKER_12D_CCW_WINTER_SEASON_DOOR, ACTOR_169_CCW_WINTER_SEASON_DOOR, ASSET_52E_MODEL_CCW_SEASON_DOOR,
0x1, NULL,
func_80389268, actor_update_func_80326224, actor_drawFullDepth,
0, 0x4000, 0.0f, 0
};
ActorInfo D_8038EE4C = {
MARKER_12C_CCW_WINTER_SWITCH, ACTOR_168_CCW_WINTER_SWITCH, ASSET_4F8_MODEL_CCW_WINTER_SWITCH,
0x5, D_8038ED20,
func_80388FD4, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
};
/* .code */
s32 func_80388EF0(Actor *this){
+6 -1
View File
@@ -6,7 +6,12 @@ Actor *CCW_func_8038954C(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void func_803895F4(Actor *this);
/* .data */
ActorInfo D_8038EE70 = { 0x1B3, 0x2A0, 0x483, 0x0, NULL, func_803895F4, NULL, CCW_func_8038954C, 0, 0, 0.0f, 0};
ActorInfo D_8038EE70 = {
MARKER_1B3_EAGLE_EGG, ACTOR_2A0_EAGLE_EGG, ASSET_483_MODEL_EAGLE_EGG,
0x0, NULL,
func_803895F4, NULL, CCW_func_8038954C,
0, 0, 0.0f, 0
};
/* .code */
void func_80389440(Actor *this, s32 next_state) {
+2 -2
View File
@@ -152,9 +152,9 @@ void chcaterpillar_update(Actor *this){
if(ml_vec3f_distance(this->position, sp74) < 50.0f){
func_8028F030(ACTOR_2A2_CATERPILLAR);
if(!volatileFlag_get(VOLATILE_FLAG_B2)){
if(!volatileFlag_get(VOLATILE_FLAG_B2_HAS_COLLECTED_CATERPILLAR)){
gcdialog_showDialog(ASSET_CC7_DIALOG_CATERPILLAR_COLLECT, 4, NULL, NULL, NULL, NULL);
volatileFlag_set(VOLATILE_FLAG_B2, TRUE);
volatileFlag_set(VOLATILE_FLAG_B2_HAS_COLLECTED_CATERPILLAR, TRUE);
}
sfx_playFadeShorthandDefault(SFX_C5_TWINKLY_POP, 1.0f, 25000, this->position, 0x1f4, 0x9c4);
marker_despawn(this->marker);
+1 -1
View File
@@ -10,7 +10,7 @@ void func_8038D85C(Actor *this);
/* .data */
ActorInfo D_8038F640 = {
0x1BF, 0x2AC, 0x490,
MARKER_1BF_GNAWTY_BOULDER, ACTOR_2AC_GNAWTY_BOULDER, ASSET_490_MODEL_GNAWTY_BOULDER,
0x0, NULL,
func_8038D85C, NULL, actor_draw,
0, 0, 2.2f, 0
+76 -11
View File
@@ -65,17 +65,82 @@ void CCW_func_8038DB0C(Actor *this);
void func_8038DAB0(Actor *this);
/* .data */
ActorInfo D_8038F720 = { 0x239, 0x25F, 0x4FC, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F744 = { 0x236, 0x260, 0x4F9, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F768 = { 0x237, 0x261, 0x4FA, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F78C = { 0x238, 0x262, 0x4FB, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F7B0 = { 0x243, 0x2E6, 0x533, 0x1, NULL, func_802D3D54, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F7D4 = { 0x263, 0x2E7, 0x518, 0x1, NULL, func_8038DAB0, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F7F8 = { 0x21E, 0x233, 0x3B3, 0x1, NULL, func_802D3D74, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F81C = { 0x26B, 0x2DE, 0x531, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F840 = { 0x26C, 0x2DD, 0x53E, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F864 = { 0x26D, 0x2DC, 0x53F, 0x1, NULL, CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth, 0, 0, 0.0f, 0};
ActorInfo D_8038F888 = { 0x1CC, 0x318, 0x0, 0x0, NULL, func_80325F84, NULL, func_80325340, 0, 0, 0.0f, 0};
ActorInfo D_8038F720 = {
MARKER_239_CCW_UNKNOWN_NABNUT_WINDOW, 0x25F, ASSET_4FC_MODEL_CCW_UNKNOWN_NABNUT_WINDOW,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F744 = {
MARKER_236_CCW_UNKNOWN_NABNUT_WINDOW, 0x260, ASSET_4F9_MODEL_CCW_UNKNOWN_NABNUT_WINDOW,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F768 = {
MARKER_237_CCW_AUTUMN_NABNUT_WINDOW, 0x261, ASSET_4FA_MODEL_CCW_AUTUMN_NABNUT_WINDOW,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F78C = {
MARKER_238_CCW_WINTER_NABNUT_WINDOW, 0x262, ASSET_4FB_MODEL_CCW_WINTER_NABNUT_WINDOW,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F7B0 = {
0x243, 0x2E6, 0x533,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F7D4 = {
MARKER_263_CCW_WHIPCRACK_ROOM_DOOR, 0x2E7, ASSET_518_MODEL_CCW_WHIPCRACK_ROOM_DOOR,
0x1, NULL,
func_8038DAB0, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F7F8 = {
0x21E, 0x233, 0x3B3,
0x1, NULL,
func_802D3D74, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F81C = {
0x26B, 0x2DE, 0x531,
0x1, NULL,
CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F840 = {
0x26C, 0x2DD, 0x53E,
0x1, NULL,
CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F864 = {
0x26D, 0x2DC, 0x53F,
0x1, NULL,
CCW_func_8038DB0C, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8038F888 = {
0x1CC, 0x318, 0x0,
0x0, NULL,
func_80325F84, NULL, func_80325340,
0, 0, 0.0f, 0
};
/* .code */
+2 -1
View File
@@ -10,7 +10,8 @@ ActorAnimationInfo D_8038F8B0[] = {
{0x234, 2.0f}
};
ActorInfo D_8038F8C0 = { 0x251, 0x37E, 0x506,
ActorInfo D_8038F8C0 = {
0x251, 0x37E, 0x506,
0x1, D_8038F8B0,
func_8038DFB0, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
+24 -21
View File
@@ -53,7 +53,7 @@ ActorInfo gChBoggySled = { MARKER_97_BOGGY_2, ACTOR_C8_BOGGY_2, ASSET_38A_MODEL_
};
/* .bss */
s32 D_80392F20[3];
s32 D_80392F20[3]; // last position of Boggy (in race)
/* .code */
Actor *func_80388740(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx){
@@ -322,43 +322,46 @@ void func_803890DC(Actor *this, u8 arg1){
}
}
void func_803893E4(Actor *this, f32 arg1, u8 arg2){
void func_803893E4(Actor *this, f32 arg1, u8 gameNumber){
ActorLocal_FP_2350 *local = (ActorLocal_FP_2350 *)&this->local;
f32 sp30;
f32 sp2C;
f32 sp28;
if((u8)arg2 != 2){
sp30 = 575.0f;
sp2C = 780.0f;
sp28 = 1.7f;
f32 min_velocity;
f32 max_velocity;
f32 rubberband_factor;
if((u8)gameNumber != 2){
min_velocity = 575.0f;
max_velocity = 780.0f;
rubberband_factor = 1.7f;
}
else{
sp30 = 700.0f;
sp2C = 1100.0f;
sp28 = 2.3f;
min_velocity = 700.0f;
max_velocity = 1100.0f;
rubberband_factor = 2.3f;
}
func_80343DEC(this);
if(this->state == 7){
// Increase/decrease speed on downwards/upwards slopes
this->unk4C += ((f32)D_80392F20[1] - this->position_y)*0.02;
}
else{
this->unk4C += ((f32)D_80392F20[1] - this->position_y)*0.03 + sp28*maSlalom_compareBoggyToPlayer(this->position);
// Increase/decrease speed on downwards/upwards slopes + rubberbanding
this->unk4C += ((f32)D_80392F20[1] - this->position_y)*0.03 + rubberband_factor*maSlalom_compareBoggyToPlayer(this->position);
}
if(this->unk4C < sp30){
this->unk4C = sp30;
if(this->unk4C < min_velocity){
this->unk4C = min_velocity;
}
if(sp2C < this->unk4C){
this->unk4C = sp2C;
if(max_velocity < this->unk4C){
this->unk4C = max_velocity;
}
if((u8)arg2 == 2 && player_movementGroup() != BSGROUP_6_TURBO_TALON_TRAINERS){
if((u8)gameNumber == 2 && player_movementGroup() != BSGROUP_6_TURBO_TALON_TRAINERS){
// Fixed high velocity if second minigame runs but player doesn't wear the turbo trainers.
this->unk4C = 1200.0f;
}
local->unk8 = ((this->unk4C - sp30)/(sp2C - sp30))*(0.6000000000000001) + 0.7;
func_803890DC(this, (u8)(arg2));
local->unk8 = ((this->unk4C - min_velocity)/(max_velocity - min_velocity))*(0.6000000000000001) + 0.7;
func_803890DC(this, (u8)(gameNumber));
}
void func_803895E0(void){
@@ -387,7 +390,7 @@ void func_803895E0(void){
: cubeList_findNodePropByActorIdAndPosition_s32(D_80391DB8[i].unk0, D_80391DAC);
nodeprop_getPosition(s0, sp64);
f20 = (f32)nodeprop_getYaw(s0);
f20 = (f32)nodeProp_getYaw(s0);
f8 = (f32)nodeprop_getScale(s0);
f22 = f8*0.01;
actor = actor_spawnWithYaw_f32(D_80391DB8[i].actor_id, sp64, (s32)f20);
+3 -3
View File
@@ -66,9 +66,9 @@ Actor *func_8038C0B0(ActorMarker *marker, UNK_TYPE(s32) arg1, f32 arg2, UNK_TYPE
f32 sp40[3];
f32 sp3C;
sp4C[0] = (f32)marker->propPtr->x;
sp4C[1] = (f32)marker->propPtr->y;
sp4C[2] = (f32)marker->propPtr->z;
sp4C[0] = (f32)marker->propPtr->position_x;
sp4C[1] = (f32)marker->propPtr->position_y;
sp4C[2] = (f32)marker->propPtr->position_z;
sp40[0] = (f32)marker->pitch;
sp40[1] = this->lifetime_value;
+1 -1
View File
@@ -76,7 +76,7 @@ Actor *func_8038DF34(Actor *this){
this->marker->unk38[2] = sp18[2] - this->position[2];
prop = func_80320EB0(this->marker, 75.0f, 1);
if(prop && prop->is_actor){
if(prop && prop->isActorProp){
other = marker_getActor(prop->marker);
marker_id = other->marker->id;
if( marker_id == MARKER_200_TWINKLY_BLUE
+6 -1
View File
@@ -10,6 +10,8 @@ typedef struct {
u8 unk30;
} ActorLocal_Wozza;
Actor *chWozza_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chWozza_update(Actor *this);
Actor *chWozza_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
void chWozza_update(Actor *this);
@@ -100,7 +102,10 @@ void chWozza_returnFromCave(Actor *this){
}
void chWozza_firstContact(Actor *this){
if(!mapSpecificFlags_get(FP_SPECIFIC_FLAG_7_WOZZA_FIRST_CONTACT) && player_movementGroup() != BSGROUP_A_FLYING && subaddie_playerIsWithinSphereAndActive(this, 1000) ){
if(!mapSpecificFlags_get(FP_SPECIFIC_FLAG_7_WOZZA_FIRST_CONTACT) &&
player_movementGroup() != BSGROUP_A_FLYING &&
subaddie_playerIsWithinSphereAndActive(this, 1000))
{
mapSpecificFlags_set(FP_SPECIFIC_FLAG_7_WOZZA_FIRST_CONTACT, TRUE);
subaddie_set_state(this, 2);
actor_loopAnimation(this);
+1 -1
View File
@@ -21,7 +21,7 @@ ActorAnimationInfo D_80391C00[] = {
};
ActorInfo D_80391C18 = {
0x125, 0x161, 0x38b,
MARKER_125_BOGGY_RACE_FLAG, ACTOR_161_BOGGY_RACE_FLAG, ASSET_38B_MODEL_BOGGY_RACE_FLAG,
0x1, D_80391C00,
func_803881AC, actor_update_func_80326224, func_80387DD0,
0, 0, 0.35f, 0
+1 -1
View File
@@ -16,7 +16,7 @@ ActorAnimationInfo D_80391C40[] = {
};
ActorInfo D_80391C58 = {
0x126, 0x162, 0x38B,
MARKER_126_BOGGY_RACE_FLAG, ACTOR_162_BOGGY_RACE_FLAG, ASSET_38B_MODEL_BOGGY_RACE_FLAG,
0x1, D_80391C40,
func_80388584, actor_update_func_80326224, func_803883E0,
0, 0, 0.35f, 0
+1 -1
View File
@@ -212,7 +212,7 @@ void func_80391744(Actor *this, Actor* other){
f32 tmp_f0;
sp24 = nodeprop_findByActorIdAndActorPosition(0x22A, this);
tmp_f0 = (f32)nodeprop_getYaw(sp24);
tmp_f0 = (f32)nodeProp_getYaw(sp24);
other->yaw = tmp_f0;
this->yaw = tmp_f0;
ml_vec3f_yaw_rotate_copy(sp28, sp34, tmp_f0);
+3 -3
View File
@@ -126,7 +126,7 @@ void chAncientOne_update(Actor *this){
this->position_y -= 1100.0f;
D_80390C28[this->actorTypeSpecificField - 1] = this->marker;
if(this->actorTypeSpecificField != 1){
this->marker->propPtr->unk8_4 = FALSE;
this->marker->propPtr->isNotFeatherEggOrNote = FALSE;
}
this->marker->propPtr->unk8_3 = TRUE;
actor_collisionOff(this);
@@ -166,7 +166,7 @@ void chAncientOne_update(Actor *this){
actor_playAnimationOnce(this);
if(this->actorTypeSpecificField < 5){
D_80390C28[this->actorTypeSpecificField]->propPtr->unk8_4 = TRUE;
D_80390C28[this->actorTypeSpecificField]->propPtr->isNotFeatherEggOrNote = TRUE;
gcStaticCamera_activate(GV_D_80390C20[this->actorTypeSpecificField - 1]);
core1_7090_initSfxSource(2, 0x86, 0x7ff8, 0.3f);
timedFunc_set_0(0.45f, func_8038678C);
@@ -208,7 +208,7 @@ void chAncientOne_update(Actor *this){
this->position_y -= 10.0;
}
else{
this->marker->propPtr->unk8_4 = FALSE;
this->marker->propPtr->isNotFeatherEggOrNote = FALSE;
}
break;
}//L80386E60
+2 -1
View File
@@ -5,7 +5,8 @@
void func_8038D3AC(Actor *this);
/* .data */
ActorInfo D_80391260 = { 0x1A5, 0x288, 0x402,
ActorInfo D_80391260 = {
MARKER_1A5_SANDYBUTT_EGG_TOLL, 0x288, ASSET_402_MODEL_EGG_TOLL,
0, NULL,
func_8038D3AC, NULL, func_80325340,
0, 0, 0.0f, 0
+3 -3
View File
@@ -445,9 +445,9 @@ void func_8038F028(UNK_TYPE(s32) arg0, ActorMarker *arg1, s32 arg2, s32 arg3){
if(mapSpecificFlags_get(arg2) == FALSE){
mapSpecificFlags_set(arg2, 1);
sp24[0] = (f32)arg1->propPtr->x;
sp24[1] = (f32)arg1->propPtr->y;
sp24[2] = (f32)arg1->propPtr->z;
sp24[0] = (f32)arg1->propPtr->position_x;
sp24[1] = (f32)arg1->propPtr->position_y;
sp24[2] = (f32)arg1->propPtr->position_z;
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_f32, 0x4e, reinterpret_cast(s32, sp24[0]), reinterpret_cast(s32, sp24[1]), reinterpret_cast(s32, sp24[2]));
coMusicPlayer_playMusic(COMUSIC_2B_DING_B, 22000);
if(mapSpecificFlags_get(arg3)){
+1 -1
View File
@@ -193,7 +193,7 @@ void __chConga_sendOrangeProjectile(ActorMarker *congaMarker){
orangePtr->velocity_y = (60.0)*((conga_state == 7) ? 0.5: 1.0);
orangePtr->velocity_z = plyr.pos_z - orangePtr->position_z;
if(SQ(plyr.pos_z - m->propPtr->z) + SQ(plyr.pos_x - m->propPtr->x) < 40000.0f ){
if(SQ(plyr.pos_z - m->propPtr->position_z) + SQ(plyr.pos_x - m->propPtr->position_x) < 40000.0f ){
temp_f20 = randf2(2.4f, 4.4f); temp_f22 = randf2(2.4f, 4.4f); //f22
orangePtr->velocity[0] *= (randf() < 0.5)? temp_f20 : -temp_f20;
orangePtr->velocity[1] = randf2(1.8f, 2.2f) * 60.0;
+2 -2
View File
@@ -10,7 +10,7 @@ typedef struct chgrublin_s{
u8 unk9;
u8 unkA;
u8 unkB;
u32 unkC_31:3;
u32 yaw:3;
u32 unkC_28:1;
u32 padC_27:28;
s16 unk10;
@@ -64,7 +64,7 @@ void func_80388A04(Actor *this){
local->unk4 = 2.3f;
local->unk8 = 5;
local->unk9 = 7;
local->unkC_31 = 2;
local->yaw = 2;
local->unkA = 9;
local->unkB = 9;
local->unk10 = 0x29;
+3 -3
View File
@@ -58,9 +58,9 @@ void func_80388BEC(NodeProp *node, ActorMarker *marker) {
Actor *temp_v0;
f32 position[3];
position[0] = (f32) node->x;
position[1] = (f32) node->y;
position[2] = (f32) node->z;
position[0] = (f32) node->position_x;
position[1] = (f32) node->position_y;
position[2] = (f32) node->position_z;
closest_actor = actorArray_findClosestActorFromActorId(position, ACTOR_11_JUJU_CTRL, -1, &distance_to_closest_actor);
+3 -3
View File
@@ -32,9 +32,9 @@ void handleOrangeCollision(ActorMarker *marker) {
ParticleEmitter *p_ctrl;
s32 camera_id;
position[0] = marker->propPtr->x;
position[1] = marker->propPtr->y;
position[2] = marker->propPtr->z;
position[0] = marker->propPtr->position_x;
position[1] = marker->propPtr->position_y;
position[2] = marker->propPtr->position_z;
closest_orange_pad = actorArray_findClosestActorFromActorId(position, ACTOR_57_ORANGE_PAD, ORANGE_PAD_STATE_HIT, &distance_to_orange_pad);
+2 -2
View File
@@ -102,12 +102,12 @@ void chLoggo_update(Actor *this) {
}
if (actor_animationIsAt(this, 0.6f)) {
func_8030E878(SFX_3F_CAULDRON_SQEAK_1, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
func_8030E878(SFX_3F_CAULDRON_SQUEAK_1, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
break;
}
if (actor_animationIsAt(this, 0.16f)) {
func_8030E878(SFX_40_CAULDRON_SQEAK_2, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
func_8030E878(SFX_40_CAULDRON_SQUEAK_2, randf2(0.975f, 1.025f), MAX(0, 7000 - sp34), this->position, 400.0f, 1000.0f);
break;
}
break;
+1 -1
View File
@@ -76,7 +76,7 @@ ActorInfo D_8038BC4C = {
};
ActorInfo D_8038BC70 = {
MARKER_9A_1881_BARREL_TOP, ACTOR_CB_1881_BARREL_TOP, ASSET_3CC_MODEL_1881_BARREL_TOP,
MARKER_9A_1881_BARREL_TOP, ACTOR_CB_1881_BARREL_TOP, ASSET_3CC_MODEL_1881_BARREL_TOP,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
+2 -1
View File
@@ -6,7 +6,8 @@ void func_8038BF28(Actor *this);
/* .data */
ActorInfo RBB_D_80390AE0 = {
MARKER_31_ANCHOR, ACTOR_1C9_ANCHOR, ASSET_41D_MODEL_ANCHOR, 0x0, NULL,
MARKER_31_ANCHOR, ACTOR_1C9_ANCHOR, ASSET_41D_MODEL_ANCHOR,
0x0, NULL,
func_8038BF28, NULL, actor_draw,
0, 0, 0.0f, 0
};
+2 -1
View File
@@ -6,7 +6,8 @@ void chAnchorSwitch_update(Actor *this);
/* .data */
ActorInfo D_80390A80 = {
MARKER_2F_ANCHOR_SWITCH, ACTOR_1C7_ANCHOR_SWITCH, ASSET_41B_MODEL_ANCHOR_SWITCH, 0x0, NULL,
MARKER_2F_ANCHOR_SWITCH, ACTOR_1C7_ANCHOR_SWITCH, ASSET_41B_MODEL_ANCHOR_SWITCH,
0x0, NULL,
chAnchorSwitch_update, NULL, actor_draw,
0, 0, 0.0f, 0
};
+2 -1
View File
@@ -8,7 +8,8 @@ void func_8038B900(Actor *this);
/* .data */
ActorInfo RBB_D_80390AB0 = {
MARKER_30_SNORKEL, ACTOR_1C8_SNORKEL, ASSET_41C_MODEL_SNORKEL, 0x0, NULL,
MARKER_30_SNORKEL, ACTOR_1C8_SNORKEL, ASSET_41C_MODEL_SNORKEL,
0x0, NULL,
NULL, func_8038B900, actor_draw,
0, 0, 0.0f, 0
};
+2 -1
View File
@@ -6,7 +6,8 @@ void chEngineFanSwitch_update(Actor *this);
/* .data */
ActorInfo D_803906B0 = {
0x194, 0x1BE, 0x412, 0x0, NULL,
MARKER_194_RBB_GREY_PROPELLER_SWITCH, 0x1BE, ASSET_412_MODEL_RBB_GREY_PROPELLER_SWITCH,
0x0, NULL,
chEngineFanSwitch_update, NULL, actor_draw,
0, 0, 0.0f, 0
};
+1 -1
View File
@@ -14,7 +14,7 @@ void chPropellor_update(Actor *this);
/* .data */
ActorInfo D_803906E0 = {
MARKER_185_MODEL_RUSTY_BUCKET_REAR_PROPELLER, ACTOR_175_MODEL_RUSTY_BUCKET_REAR_PROPELLER, ASSET_403_MODEL_RUSTY_BUCKET_REAR_PROPELLER,
MARKER_185_RBB_REAR_PROPELLER, ACTOR_175_MODEL_RUSTY_BUCKET_REAR_PROPELLER, ASSET_403_MODEL_RUSTY_BUCKET_REAR_PROPELLER,
0x0, NULL,
chPropellor_update, NULL, actor_draw,
0, 0, 0.0f, 0
+2 -1
View File
@@ -28,7 +28,8 @@ Struct_RBB_3CB0 D_80390720[2] = {
};
ActorInfo D_80390738 = {
0x186, 0x176, 0x404, 0x0, NULL,
MARKER_186_RBB_GREEN_PROPELLER_SWITCH, 0x176, ASSET_404_MODEL_RBB_GREEN_PROPELLER_SWITCH,
0x0, NULL,
chPropellorSwitch_update, NULL, chPropellorSwitch_draw,
0, 0, 0.0f, 0
};
+6 -3
View File
@@ -29,19 +29,22 @@ Struct_RBB_4C70 D_80390950[] = {
};
ActorInfo D_803909B0 = {
MARKER_2A_WHISTLE_1_YELLOW, ACTOR_1C2_WHISTLE_1, ASSET_416_MODEL_WHISTLE, 0x0, NULL,
MARKER_2A_WHISTLE_1_YELLOW, ACTOR_1C2_WHISTLE_1, ASSET_416_MODEL_WHISTLE,
0x0, NULL,
func_8038B340, NULL, func_8038B230,
0, 0, 0.0f, 0
};
ActorInfo D_803909D4 = {
MARKER_2B_WHISTLE_2_YELLOW, ACTOR_1C3_WHISTLE_2, ASSET_416_MODEL_WHISTLE, 0x0, NULL,
MARKER_2B_WHISTLE_2_YELLOW, ACTOR_1C3_WHISTLE_2, ASSET_416_MODEL_WHISTLE,
0x0, NULL,
func_8038B340, NULL, func_8038B230,
0, 0, 0.0f, 0
};
ActorInfo RBB_D_803909F8 = {
MARKER_2C_WHISTLE_3_YELLOW, ACTOR_1C4_WHISTLE_3, ASSET_416_MODEL_WHISTLE, 0x0, NULL,
MARKER_2C_WHISTLE_3_YELLOW, ACTOR_1C4_WHISTLE_3, ASSET_416_MODEL_WHISTLE,
0x0, NULL,
func_8038B340, NULL, func_8038B230,
0, 0, 0.0f, 0
};
+2 -1
View File
@@ -14,7 +14,8 @@ void chWhistleCtrl_update(Actor * this);
/* .data */
ActorInfo D_80390A50 = {
MARKER_2D_WHISTLE_CTRL, ACTOR_1C5_WHISTLE_CTRL, 0x0, 0x0, NULL,
MARKER_2D_WHISTLE_CTRL, ACTOR_1C5_WHISTLE_CTRL, 0x0,
0x0, NULL,
chWhistleCtrl_update, NULL, func_80325340,
0, 0, 0.0f, 0
};
+6 -3
View File
@@ -34,18 +34,21 @@ Struct_RBB_47D0 D_80390870[4] = {
};
extern ActorInfo D_803908C0 = {
0x195, 0x1BF, 0x413, 0x0, NULL,
MARKER_195_WHISTLE_SWITCH_1, 0x1BF, ASSET_413_MODEL_WHISTLE_SWITCH_1,
0x0, NULL,
func_8038AEB8, NULL, func_8038AD9C,
0, 0, 0.0f, 0
};
extern ActorInfo D_803908E4 = {
0x196, 0x1C0, 0x414, 0x0, NULL,
MARKER_196_WHISTLE_SWITCH_2, 0x1C0, ASSET_414_MODEL_WHISTLE_SWITCH_2,
0x0, NULL,
func_8038AEB8, NULL, func_8038AD9C,
0, 0, 0.0f, 0
};
extern ActorInfo D_80390908 = {
0x197, 0x1C1, 0x415, 0x0, NULL,
MARKER_197_WHISTLE_SWITCH_3, 0x1C1, ASSET_415_MODEL_WHISTLE_SWITCH_3,
0x0, NULL,
func_8038AEB8, NULL, func_8038AD9C,
0, 0, 0.0f, 0
};
+2 -1
View File
@@ -12,7 +12,8 @@ void RBB_func_803882F4(Actor *this);
/* .data */
ActorInfo D_80390270 = {
0x184, 0x174, 0x402, 0x0, NULL,
MARKER_184_RBB_EGG_TOLL, 0x174, ASSET_402_MODEL_EGG_TOLL,
0x0, NULL,
RBB_func_803882F4, NULL, func_80325340,
0, 0, 0.0f, 0
};
+16 -8
View File
@@ -77,49 +77,57 @@ ActorAnimationInfo D_803900C0[4] = {
};
ActorInfo D_803900E0 = {
MARKER_107_ENGINE_ROOM_DOOR, ACTOR_21D_ENGINE_ROOM_DOOR, ASSET_493_MODEL_ENGINE_ROOM_DOOR, 0x1, NULL,
MARKER_107_ENGINE_ROOM_DOOR, ACTOR_21D_ENGINE_ROOM_DOOR, ASSET_493_MODEL_ENGINE_ROOM_DOOR,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_80390104 = {
MARKER_108_CABIN_CLOSET_DOOR, ACTOR_21C_CABIN_CLOSET_DOOR, ASSET_492_MODEL_CABIN_CLOSET_DOOR, 0x1, NULL,
MARKER_108_CABIN_CLOSET_DOOR, ACTOR_21C_CABIN_CLOSET_DOOR, ASSET_492_MODEL_CABIN_CLOSET_DOOR,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_80390128 = {
MARKER_22D_SHIP_SHADOW_WINDOW, ACTOR_266_SHIP_SHADOW_WINDOW, ASSET_4BA_MODEL_SHIP_SHADOW_WINDOW, 0x1, NULL,
MARKER_22D_SHIP_SHADOW_WINDOW, ACTOR_266_SHIP_SHADOW_WINDOW, ASSET_4BA_MODEL_SHIP_SHADOW_WINDOW,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_8039014C = {
MARKER_22E_SHIP_SUNNY_WINDOW, ACTOR_267_SHIP_SUNNY_WINDOW, ASSET_4BB_MODEL_SHIP_SUNNY_WINDOW, 0x1, NULL,
MARKER_22E_SHIP_SUNNY_WINDOW, ACTOR_267_SHIP_SUNNY_WINDOW, ASSET_4BB_MODEL_SHIP_SUNNY_WINDOW,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_80390170 = {
MARKER_235_CRACKED_SKYLIGHT, ACTOR_23F_CRACKED_SKYLIGHT, ASSET_4E2_MODEL_CRACKED_SKYLIGHT, 0x1, NULL,
MARKER_235_CRACKED_SKYLIGHT, ACTOR_23F_CRACKED_SKYLIGHT, ASSET_4E2_MODEL_CRACKED_SKYLIGHT,
0x1, NULL,
func_802D3D54, actor_update_func_80326224, actor_drawFullDepth,
0, 0, 0.0f, 0
};
ActorInfo D_80390194 = {
MARKER_15F_RBB_HONEYCOMB_SWITCH, ACTOR_18F_RBB_HONEYCOMB_SWITCH, ASSET_42F_MODEL_RBB_HONEYCOMB_SWITCH, 0x1, D_803900C0,
MARKER_15F_RBB_HONEYCOMB_SWITCH, ACTOR_18F_RBB_HONEYCOMB_SWITCH, ASSET_42F_MODEL_RBB_HONEYCOMB_SWITCH,
0x1, D_803900C0,
func_80386BF8, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_803901B8 = {
MARKER_22F_SUNNY_LIFEBOAT, ACTOR_263_SUNNY_LIFEBOAT, ASSET_4DB_MODEL_SUNNY_LIFEBOAT, 0x1, NULL,
MARKER_22F_SUNNY_LIFEBOAT, ACTOR_263_SUNNY_LIFEBOAT, ASSET_4DB_MODEL_SUNNY_LIFEBOAT,
0x1, NULL,
func_80386A7C, actor_update_func_80326224, func_80386B9C,
0, 0, 0.0f, 0
};
ActorInfo D_803901DC = {
MARKER_230_SHADOW_LIFEBOAT, ACTOR_264_SHADOW_LIFEBOAT, ASSET_4DE_MODEL_SHADOW_LIFEBOAT, 0x1, NULL,
MARKER_230_SHADOW_LIFEBOAT, ACTOR_264_SHADOW_LIFEBOAT, ASSET_4DE_MODEL_SHADOW_LIFEBOAT,
0x1, NULL,
func_80386A7C, actor_update_func_80326224, func_80386B9C,
0, 0, 0.0f, 0
};
+2 -1
View File
@@ -9,7 +9,8 @@ void func_8038756C(Actor *this, s32 arg1);
/* .data */
ActorInfo D_80390200 = {
0x183, 0x173, 0x402, 0x0, NULL,
MARKER_183_RBB_EGG_TOLL, 0x173, ASSET_402_MODEL_EGG_TOLL,
0x0, NULL,
func_803878B0, NULL, func_80325340,
0, 0, 0.0f, 0
};
+2 -2
View File
@@ -15,7 +15,7 @@ ActorAnimationInfo D_8038AFF0[3] = {
};
ActorInfo gBanjosBed = {
MARKER_E1_BANJOS_BED, ACTOR_198_BANJOS_BED, ASSET_530_BANJOS_BED,
MARKER_E1_BANJOS_BED, ACTOR_198_BANJOS_BED, ASSET_530_MODEL_BANJOS_BED,
2, D_8038AFF0,
func_8038A3B0, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
@@ -28,7 +28,7 @@ ActorAnimationInfo D_8038B02C[3] = {
};//chBanjosChairAnimations
ActorInfo gBanjosChair ={
MARKER_E2_BANJOS_CHAIR, ACTOR_199_BANJOS_CHAIR, ASSET_52F_BANJOS_CHAIR,
MARKER_E2_BANJOS_CHAIR, ACTOR_199_BANJOS_CHAIR, ASSET_52F_MODEL_BANJOS_CHAIR,
2, D_8038B02C,
func_8038A3B0, actor_update_func_80326224, actor_draw,
0, 0, 0.0f, 0
+1 -1
View File
@@ -29,7 +29,7 @@ void func_8038A8F8(Actor *this){
NodeProp *other;
if(!this->volatile_initialized){
other = nodeprop_findByActorIdAndActorPosition(0x3be, this);
other = nodeprop_findByActorIdAndActorPosition(ACTOR_3BE_LAIR_UNKNOWN, this);
if(!other){
this->unk1C_x = this->position_x;
this->unk1C_y = this->position_y;
+2 -2
View File
@@ -45,7 +45,7 @@ ActorInfo gChBlubber = {
};
/* .code */
static void __chBlubber_initiliaze(Actor *this){
static void __chBlubber_initialize(Actor *this){
ActorLocal_Blubber *local = (ActorLocal_Blubber *)&this->local;
anctrl_setTransitionDuration(this->anctrl, 0.2f);
@@ -177,7 +177,7 @@ static void __chBlubber_updateFunc(Actor *this){
case CH_BLUBBER_STATE_1_UNKNOWN:
if(!this->initialized){
actor_collisionOff(this);
__chBlubber_initiliaze(this);
__chBlubber_initialize(this);
}
__func_80387774(&this);
+3 -3
View File
@@ -153,9 +153,9 @@ void chTreasurehunt_checkStepProgress5(NodeProp *this, ActorMarker *arg1){
static f32 particleTargetPosition[3];
if(chtreasureHunt_puzzleCurrentStep == 5 && __chTreasurehunt_isActiveHitboxBeakBusterHitbox()){
particleTargetPosition[0] = (f32)this->x;
particleTargetPosition[1] = (f32)this->y;
particleTargetPosition[2] = (f32)this->z;
particleTargetPosition[0] = (f32)this->position_x;
particleTargetPosition[1] = (f32)this->position_y;
particleTargetPosition[2] = (f32)this->position_z;
particleTargetPosition[1] = mapModel_getFloorY(particleTargetPosition);
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_f32, 0xF4, reinterpret_cast(s32, particleTargetPosition[0]), reinterpret_cast(s32, particleTargetPosition[1]), reinterpret_cast(s32, particleTargetPosition[2]));
particleEmitter = partEmitMgr_newEmitter(3);
+1 -1
View File
@@ -52,5 +52,5 @@ static void defragThread_entry(void *args) {
} while ((sDefragThreadPauseSyncQueue.validCount == 0) && defrag_flag);
}
osRecvMesg(&sDefragThreadPauseSyncQueue, NULL, OS_MESG_BLOCK);
} while(1);
} while(TRUE);
}
+42 -30
View File
@@ -21,7 +21,7 @@ extern void progressDialog_showDialogMaskFour(s32 arg0);
extern void func_80291634(ActorMarker *, ActorMarker *);
extern void func_80291610(ActorMarker *, ActorMarker *);
extern Actor *baModel_80291AAC(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx);
extern void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, struct5Cs *collision_flags);
extern void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, CollisionParams *collision_flags);
extern void func_80320ED8(ActorMarker *, f32, s32);
extern NodeProp *cubeList_findNodePropByActorIdAndPosition_s32(enum actor_e actor_id, s32 position[3]);
@@ -179,7 +179,7 @@ void __baMarker_resolveMusicNoteCollision(Prop *arg0) {
coMusicPlayer_playMusic(COMUSIC_9_NOTE_COLLECTED, 16000);
timedFunc_set_1(0.75f, progressDialog_showDialogMaskZero, FILEPROG_3_MUSIC_NOTE_TEXT);
}
fxSparkle_musicNote(arg0->unk4);
fxSparkle_musicNote(arg0->position);
}
void __baMarker_8028BAB0(enum jiggy_e jiggy_id, s32 arg1, s32 arg2, s32 arg3){
@@ -558,7 +558,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
__baMarker_8028B8DC();
}
__spawnQueue_add_4((GenFunction_4)__baMarker_8028B904, reinterpret_cast(u32, other_prop->actorProp.x), reinterpret_cast(u32, other_prop->actorProp.y), reinterpret_cast(u32, other_prop->actorProp.z), jiggy_id);
__spawnQueue_add_4((GenFunction_4)__baMarker_8028B904,
reinterpret_cast(u32, other_prop->actorProp.position_x),
reinterpret_cast(u32, other_prop->actorProp.position_y),
reinterpret_cast(u32, other_prop->actorProp.position_z), jiggy_id);
marker_despawn(marker);
}
}
@@ -579,7 +582,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
if(!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)){
gcpausemenu_80314AC8(0);
}
fxSparkle_emptyHoneycomb(&other_prop->actorProp.x);
fxSparkle_emptyHoneycomb(&other_prop->actorProp.position_x);
marker_despawn(marker);
}
}
@@ -588,7 +591,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
case 0x54: //L8028C820
coMusicPlayer_playMusic(COMUSIC_19_LOW_PITCH_FLUTES, 28000);
func_803012F8();
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E, reinterpret_cast(u32, other_prop->actorProp.x), reinterpret_cast(u32, other_prop->actorProp.y), reinterpret_cast(u32, other_prop->actorProp.z));
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E,
reinterpret_cast(u32, other_prop->actorProp.position_x),
reinterpret_cast(u32, other_prop->actorProp.position_y),
reinterpret_cast(u32, other_prop->actorProp.position_z));
marker_despawn(marker);
break;
@@ -607,7 +613,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
coMusicPlayer_playMusic(COMUSIC_16_HONEYCOMB_COLLECTED, 28000);
timedFunc_set_1(0.75f, progressDialog_showDialogMaskZero, FILEPROG_A_HONEYCOMB_TEXT);
item_inc(ITEM_14_HEALTH);
fxSparkle_honeycomb(&other_prop->actorProp.x);
fxSparkle_honeycomb(&other_prop->actorProp.position_x);
marker_despawn(marker);
break;
@@ -649,12 +655,12 @@ void __baMarker_resolveCollision(Prop *other_prop){
for(i = 0 ; i < 3; i++){
sp88[i] = D_8036366C[tmp_v0_2 + i];
}
func_802EE354(actor, 0x3ED, 0x23, sp78, 0.2f, tmp_f0, 3.0f, sp88, 0, &sp64);
func_802EE354(actor, 0x3ED, 0x23, sp78, 0.2f, tmp_f0, 3.0f, (f32*)sp88, 0, (f32*)&sp64);
for(i = 0 ; i < 3; i++){
sp88[i] = 0xFF;
}
func_802EE354(actor, 0x3ED, 0xe, sp78, 0.2f, tmp_f0, 3.0f, sp88, 0, &sp64);
func_802EE354(actor, 0x3ED, 0xe, sp78, 0.2f, tmp_f0, 3.0f, (f32*)sp88, 0, (f32*)&sp64);
sp78 += 0x32;
tmp_f0 += -0.15;
@@ -717,7 +723,7 @@ void __baMarker_resolveCollision(Prop *other_prop){
}
coMusicPlayer_playMusic(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF);
timedFunc_set_1(1.5f, progressDialog_showDialogMaskFour, FILEPROG_C_EXTRA_LIFE_TEXT);
fxSparkle_extraLife(&other_prop->actorProp.x);
fxSparkle_extraLife(&other_prop->actorProp.position_x);
item_inc(ITEM_16_LIFE);
marker_despawn(marker);
break;
@@ -761,7 +767,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
baflag_set(BA_FLAG_E_TOUCHING_WADING_BOOTS);
func_802A6388(chwadingboots_802D6E4C(actor));
bs_checkInterrupt(BS_INTR_1B);
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E, reinterpret_cast(u32, other_prop->actorProp.x), reinterpret_cast(u32, other_prop->actorProp.y), reinterpret_cast(u32, other_prop->actorProp.z));
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E,
reinterpret_cast(u32, other_prop->actorProp.position_x),
reinterpret_cast(u32, other_prop->actorProp.position_y),
reinterpret_cast(u32, other_prop->actorProp.position_z));
chwadingboots_802D6E54(actor);
break;
@@ -785,7 +794,10 @@ void __baMarker_resolveCollision(Prop *other_prop){
baflag_set(BA_FLAG_10_TOUCHING_TURBO_TRAINERS);
set_turbo_duration(chtrainers_getDuration(actor));
bs_checkInterrupt(BS_INTR_1A);
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E, reinterpret_cast(u32, other_prop->actorProp.x), reinterpret_cast(u32, other_prop->actorProp.y), reinterpret_cast(u32, other_prop->actorProp.z));
__spawnQueue_add_4((GenFunction_4)spawnQueue_actor_s16, 0x4E,
reinterpret_cast(u32, other_prop->actorProp.position_x),
reinterpret_cast(u32, other_prop->actorProp.position_y),
reinterpret_cast(u32, other_prop->actorProp.position_z));
chtrainers_pickup(actor);
break;
@@ -820,9 +832,9 @@ void __baMarker_resolveCollision(Prop *other_prop){
func_8032B258(actor, obj_collision_type);
}
}
else if(other_prop->is_3d)//L8028D0B0 //ModelProp
else if(other_prop->isModelProp)//L8028D0B0 //ModelProp
{
tmp2 = other_prop->modelProp.model_index + 0x2D1;
tmp2 = other_prop->modelProp.modelId + MODEL_ASSET_OFFSET;
switch (tmp2)
{
case 0x2E8:
@@ -837,30 +849,30 @@ void __baMarker_resolveCollision(Prop *other_prop){
}
}
else{//L8028D10C //SpriteProp
tmp3 = other_prop->spriteProp.sprite_index + 0x572;
tmp3 = other_prop->spriteProp.spriteId + SPRITE_ASSET_OFFSET;
switch (tmp3)
{
case 0x6D6: //L8028D144
case ASSET_6D6_SPRITE_MUSIC_NOTE: //L8028D144
if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0;
other_prop->spriteProp.isNotFeatherEggOrNote = 0;
__baMarker_resolveMusicNoteCollision(other_prop);
}
break;
case 0x6D7: //L8028D16C
case ASSET_6D7_SPRITE_BLUE_EGGS: //L8028D16C
if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0;
other_prop->spriteProp.isNotFeatherEggOrNote = 0;
chCollectible_collectEgg(other_prop);
}
break;
case ASSET_580_SPRITE_RED_FEATHER: //L8028D194
if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0;
other_prop->spriteProp.isNotFeatherEggOrNote = 0;
chCollectible_collectRedFeather(other_prop);
}
break;
case ASSET_6D1_SPRITE_GOLDFEATHER: //L8028D1BC
if(!__baMarker_8028BC60()){
other_prop->spriteProp.unk8_4 = 0;
other_prop->spriteProp.isNotFeatherEggOrNote = 0;
chCollectible_collectGoldFeather(other_prop);
}
break;
@@ -926,12 +938,12 @@ void baMarker_update(void){
playerMarker->unk38[2] = sp174[2] - sp168[2];
func_80320ED8(playerMarker, temp_s0_2[i], 1);
while(other_prop = func_8032F528()){//L8028D480
if(!other_prop->unk8_2){
if(!D_8037BF8C && other_prop->is_actor && other_prop->is_3d){
if(!other_prop->isCollisionResolved){
if(!D_8037BF8C && other_prop->isActorProp && other_prop->isModelProp){
D_8037BF8C = other_prop->actorProp.marker;
}
__baMarker_resolveCollision(other_prop);
other_prop->unk8_2 = 1;
other_prop->isCollisionResolved = 1;
sp58[temp_s2] = other_prop;
temp_s2++;
}//L8028D4E0
@@ -940,7 +952,7 @@ void baMarker_update(void){
D_8037BF90 = 0xff;
for(j = 0; j < temp_s2; j++){//L8028D55C
sp58[j]->unk8_2 = 0;
sp58[j]->isCollisionResolved = 0;
}
}
}
@@ -1020,32 +1032,32 @@ void baMarker_8028D71C(void){
dustEmitter_emit(sp3C, 0, D_80363680, 1, 0.75f, 0.0f, 0x7d, 0xfa, DUST_EMITTER_TYPE_DUST);
}
void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, struct5Cs *collision_flags){
void baMarker_8028D7B8(s32 arg0, ActorMarker *arg1, CollisionParams *collision_flags){
s32 sp24;
s32 sp20 = func_8033D594(collision_flags);
s32 sp20 = collision_getDamageToPlayer(collision_flags);
s32 sp1C = 0;
Actor *actor = marker_getActor(arg1);
s32 tmp_v0;
if(func_8033D5A4(collision_flags))
if(collision_getHitsToTrigger(collision_flags))
baflag_set(BA_FLAG_8);
if((baiFrame_getState() != 3 && func_8028F1E0()) || !sp20){
if(!func_8028F25C()){
sp24 = func_8033D564(collision_flags);
sp24 = collision_getPlayerInteraction(collision_flags);
if(0 < sp24 && sp24 < 6){
sp1C = 2;
sp20 = MAX(0, sp20 - 1);
}//L8028D884
if(6 < sp24 && sp24 < 0xC){
if(!(1 < func_8033D5A4(collision_flags)) || (func_8033D574(collision_flags) != -1 && actor->unk164[func_8033D574(collision_flags)])){
if(!(1 < collision_getHitsToTrigger(collision_flags)) || (collision_getNextState(collision_flags) != -1 && actor->unk164[collision_getNextState(collision_flags)])){
sp1C = 1;
}//L8028D8E8
}//L8028D8E8
if(sp20){
if(func_8033D594(collision_flags) == 3){
if(collision_getDamageToPlayer(collision_flags) == 3){
item_adjustByDiffWithHud(ITEM_14_HEALTH, -item_getCount(ITEM_14_HEALTH));
}
else{//L8028D92C
+1 -1
View File
@@ -78,7 +78,7 @@ void bastick_reset(void) {
}
void bastick_update(void) {
controller_getJoystick(0, &bastick.value);
controller_getJoystick(0, (f32*)&bastick.value);
if (bastick.locked_at_zero) {
bastick.value[0] = bastick.value[1] = 0.0f;
}
+41 -41
View File
@@ -8,23 +8,23 @@
#include "core2/statetimer.h"
/* .data */
f32 D_80364A90 = 30.0f;
f32 D_80364A94 = 700.0f;
f32 D_80364A98 = 80.0f;
f32 D_80364A9C = 1000.0f;
f32 D_80364AA0 = 300.0f;
f32 D_80364AA4 = 0.56f;
f32 D_80364AA8 = 0.34f;
f32 D_80364AAC = 0.51f;
f32 D_80364AB0 = 0.29f;
f32 D_80364AB4 = 0.8f;
f32 D_80364AB8 = 0.7f;
f32 D_80364ABC = 693.5f;
f32 D_80364AC0 = -1200.0f;
f32 gBsbTrotMinWalkVelocity = 30.0f;
f32 gBsbTrotMaxWalkVelocity = 700.0f;
f32 gBsbTrotMinTurboVelocity = 80.0f;
f32 gBsbTrotMaxTurboVelocity = 1000.0f;
f32 gBsbTrotMaxTrudgeVelocity = 300.0f; // max velocity on dangerous ground
f32 gBsbTrotSlowestWalkDuration = 0.56f;
f32 gBsbTrotFastestWalkDuration = 0.34f;
f32 gBsbTrotSlowestTurboDuration = 0.51f;
f32 gBsbTrotFastestTurboDuration = 0.29f;
f32 gBsbTrotSlowestTrudgeDuration = 0.8f;
f32 gBsbTrotFastestTrudgeDuration = 0.7f;
f32 gBsbTrotInitialJumpVelocity = 693.5f;
f32 gBsbTrotGravity = -1200.0f; // jump gravity
/* .bss */
f32 D_8037D3A0;
u8 D_8037D3A4;
f32 D_8037D3A0; /* timer for jumps while sliding? */
u8 D_8037D3A4; /* jump state? */
void func_802A87C0(void){
if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
@@ -50,51 +50,51 @@ void func_802A8850(void){
}
f32 func_802A88B0(void){
f32 bsbtrot_getMaxTargetVelocity(void){
if(player_isOnDangerousGround())
return D_80364AA0;
return gBsbTrotMaxTrudgeVelocity;
if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364A9C;
return gBsbTrotMaxTurboVelocity;
return D_80364A94;
return gBsbTrotMaxWalkVelocity;
}
f32 func_802A8900(void){
f32 bsbtrot_getMinTargetVelocity(void){
if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364A98;
return gBsbTrotMinTurboVelocity;
return D_80364A90;
return gBsbTrotMinWalkVelocity;
}
f32 func_802A8934(void){
f32 bsbtrot_getFastestDuration(void){
if(player_isOnDangerousGround())
return D_80364AB8;
return gBsbTrotFastestTrudgeDuration;
if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364AB0;
return gBsbTrotFastestTurboDuration;
return D_80364AA8;
return gBsbTrotFastestWalkDuration;
}
f32 func_802A8984(void){
f32 bsbtrot_getSlowestDuration(void){
if(player_isOnDangerousGround())
return D_80364AB4;
return gBsbTrotSlowestTrudgeDuration;
if(stateTimer_isActive(STATE_TIMER_3_TURBO_TALON))
return D_80364AAC;
return gBsbTrotSlowestTurboDuration;
return D_80364AA4;
return gBsbTrotSlowestWalkDuration;
}
void func_802A89D4(void){
f32 sp24 = bastick_getZonePosition();
void bsbtrot_walkUpdateTargetVelocity(void){
f32 zone_pos = bastick_getZonePosition();
if(!bastick_getZone()){
baphysics_set_target_horizontal_velocity(0.0f);
}
else{
baphysics_set_target_horizontal_velocity(ml_interpolate_f(sp24, func_802A8900(), func_802A88B0()));
baphysics_set_target_horizontal_velocity(ml_interpolate_f(zone_pos, bsbtrot_getMinTargetVelocity(), bsbtrot_getMaxTargetVelocity()));
}
}
@@ -271,7 +271,7 @@ enum asset_e func_802A9030(void){
void func_802A9054(void){
f32 tmp = 1.0f;
baanim_setVelocityMapRanges(func_802A8900(), func_802A88B0(), func_802A8984(), func_802A8934());
baanim_setVelocityMapRanges(bsbtrot_getMinTargetVelocity(), bsbtrot_getMaxTargetVelocity(), bsbtrot_getSlowestDuration(), bsbtrot_getFastestDuration());
if(func_8028B394()){
tmp = ml_map_f(baphysics_get_horizontal_velocity_percentage(), 0.0f, 1.0f, 0.6f, 0.9f);
baanim_scaleDuration(tmp);
@@ -297,7 +297,7 @@ void bsbtrot_walk_update(void){
func_802A8AD8();
_bsbtrot_802A8C98(aCtrl, func_802A9030());
func_80299628(1);
func_802A89D4();
bsbtrot_walkUpdateTargetVelocity();
if(anctrl_isAt(aCtrl, 0.2781f))
func_802A880C(1);
@@ -361,10 +361,10 @@ void bsbtrot_jump_init(void){
yaw_setIdeal(bastick_getAngleRelativeToBanjo());
baphysics_set_target_yaw(yaw_getIdeal());
func_802A89D4();
bsbtrot_walkUpdateTargetVelocity();
baphysics_set_horizontal_velocity(yaw_getIdeal(), baphysics_get_target_horizontal_velocity());
baphysics_set_vertical_velocity(D_80364ABC);
baphysics_set_gravity(D_80364AC0);
baphysics_set_vertical_velocity(gBsbTrotInitialJumpVelocity);
baphysics_set_gravity(gBsbTrotGravity);
sfxsource_playHighPriority(SFX_48_KAZOOIE_RUUH);
D_8037D3A4 = 0;
}
@@ -380,7 +380,7 @@ void bsbtrot_jump_update(void){
if(baflag_isTrue(BA_FLAG_F))
baphysics_reset_horizontal_velocity();
else
func_802A89D4();
bsbtrot_walkUpdateTargetVelocity();
baphysics_get_velocity(sp1C);
if(bakey_released(BUTTON_A) && 0.0f < sp1C[1])
@@ -575,7 +575,7 @@ void bsbtrot_fall_init(void){
func_802A8A40();
func_8029C7F4(1,1,3, BA_PHYSICS_AIRBORN);
baphysics_set_target_yaw(yaw_getIdeal());
func_802A89D4();
bsbtrot_walkUpdateTargetVelocity();
baphysics_set_horizontal_velocity(yaw_getIdeal(), baphysics_get_target_horizontal_velocity());
D_8037D3A4 = 0;
}
@@ -591,7 +591,7 @@ void bsbtrot_fall_update(void){
if(baflag_isTrue(BA_FLAG_F))
baphysics_reset_horizontal_velocity();
else
func_802A89D4();
bsbtrot_walkUpdateTargetVelocity();
baphysics_get_velocity(sp1C);
switch (D_8037D3A4){
+6 -4
View File
@@ -26,13 +26,15 @@ ActorAnimationInfo D_80366010[] ={
};
ActorInfo D_80366090 = {MARKER_3_BIGBUTT, ACTOR_4_BIGBUTT, ASSET_353_MODEL_BIGBUTT,
ActorInfo D_80366090 = {
MARKER_3_BIGBUTT, ACTOR_4_BIGBUTT, ASSET_353_MODEL_BIGBUTT,
1, D_80366010,
func_802C6240, actor_update_func_80326224, func_802C6E84,
3200, 0, 0.0f, 0
};
ActorInfo D_803660B4 = {MARKER_9_SMALL_BULL, ACTOR_E_SMALL_BULL, ASSET_354_MODEL_SMALL_BULL,
ActorInfo D_803660B4 = {
MARKER_9_SMALL_BULL, ACTOR_E_SMALL_BULL, ASSET_354_MODEL_SMALL_BULL,
1, D_80366010,
func_802C6240, actor_update_func_80326224, func_802C6E84,
3200, 0, 0.0f, 0
@@ -315,8 +317,8 @@ void func_802C6240(Actor *this){
break;
}//L802C6D1C
if(this->state == 0xe){
if(this->marker->id != 0x29e)
this->marker->id = 0x29e;
if(this->marker->id != MARKER_29E_BIGBUTT_KNOCKED_DOWN)
this->marker->id = MARKER_29E_BIGBUTT_KNOCKED_DOWN;
}else{//L802C6D60
if(this->marker->id != 3)
this->marker->id = 3;
+3 -3
View File
@@ -12,7 +12,7 @@ typedef struct{
/* .data */
ActorInfo D_80372840 = {
0x29, ACTOR_1CC_GRILL_CHOMPA, ASSET_430_MODEL_GRILL_CHOMPA,
MARKER_29_GRILLE_CHOMPA, ACTOR_1CC_GRILLE_CHOMPA, ASSET_430_MODEL_GRILLE_CHOMPA,
0, NULL,
func_80356CCC, NULL, func_80356C50,
0, 0, 0.0f, 0
@@ -22,7 +22,7 @@ ActorInfo D_80372840 = {
void func_803569F0(Actor *this, s32 next_state){
ActorLocal_Core2_CFA60 *local = (ActorLocal_Core2_CFA60 *)&this->local;
this->marker->id = 0x1cf;
this->marker->id = MARKER_1CF_GRILLE_CHOMPA_ATTACKING;
actor_collisionOff(this);
if(next_state == 1 || next_state == 2){
skeletalAnim_set(this->unk148, ASSET_15A_ANIM_GRILL_CHOMPA_ATTACK, 0, 2.5f);
@@ -123,7 +123,7 @@ void func_80356CCC(Actor *this){
if(this->state == 4){
skeletalAnim_getProgressRange(this->unk148, &sp4C, &sp48);
if(sp4C < 0.59 && 0.59 <= sp48){
this->marker->id = 0x1cf;
this->marker->id = MARKER_1CF_GRILLE_CHOMPA_ATTACKING;
}
if(sp4C < 0.5 && 0.5 <= sp48){
func_8030E760(SFX_2_CLAW_SWIPE, 0.9f, 32000);
+6 -6
View File
@@ -96,8 +96,8 @@ bool chCollectible_collectItem(Actor* actor, enum file_progress_e arg1, enum ass
s32 chCollectible_collectEgg(ActorProp *arg0){
Actor *actPtr = NULL;
if(arg0 != NULL){
fxSparkle_blueEgg(&arg0->x);
if(arg0->is_actor)
fxSparkle_blueEgg(&arg0->position_x);
if(arg0->isActorProp)
actPtr = marker_getActor(arg0->marker);
}
chCollectible_collectItem(actPtr, FILEPROG_5_BLUE_EGG_TEXT, 0xD9E, COMUSIC_C_EGG_COLLECTED, 0xD, 2.0f);
@@ -105,16 +105,16 @@ s32 chCollectible_collectEgg(ActorProp *arg0){
void chCollectible_collectRedFeather(ActorProp *arg0){
Actor *actPtr = NULL;
fxSparkle_redFeather(&arg0->x);
if(arg0->is_actor)
fxSparkle_redFeather(&arg0->position_x);
if(arg0->isActorProp)
actPtr = marker_getActor(arg0->marker);
chCollectible_collectItem(actPtr, FILEPROG_6_RED_FEATHER_TEXT, 0xD9F, COMUSIC_B_RED_FEATHER_COLLECTED, 0xF, 4.0f);
}
void chCollectible_collectGoldFeather(ActorProp *arg0){
Actor *actPtr = NULL;
fxSparkle_goldFeather(&arg0->x);
if(arg0->is_actor)
fxSparkle_goldFeather(&arg0->position_x);
if(arg0->isActorProp)
actPtr = marker_getActor(arg0->marker);
chCollectible_collectItem(actPtr, FILEPROG_7_GOLD_FEATHER_TEXT, 0xDA0, COMUSIC_14_GOLD_FEATHER_COLLECTED, ITEM_10_GOLD_FEATHER, 6.0f);
}
+21 -3
View File
@@ -397,6 +397,24 @@ void chCrab_update(Actor *this) {
}
/* .data */
ActorInfo D_803670B8 = { MARKER_13_SNIPPET, ACTOR_67_SNIPPET, ASSET_358_SNIPPET, 0x1, chCrabAnimations, chCrab_update, actor_update_func_80326224, actor_draw, 1900, 0, 0.8f, 0};
ActorInfo D_803670DC = { MARKER_DD_BLACK_SNIPPET, ACTOR_F2_BLACK_SNIPPET, ASSET_566_MODEL_BLACK_SNIPPET, 0x1, chCrabAnimations, chCrab_update, actor_update_func_80326224, actor_draw, 1900, 0, 0.8f, 0};
ActorInfo D_80367100 = { MARKER_13_SNIPPET, ACTOR_F5_MUTIE_SNIPPET, ASSET_38F_MODEL_MUTIE_SNIPPET, 0x1, chCrabMutantAnimations, chCrab_update, actor_update_func_80326224, actor_draw, 1900, 0, 0.8f, 0};
ActorInfo D_803670B8 = {
MARKER_13_SNIPPET, ACTOR_67_SNIPPET, ASSET_358_SNIPPET,
0x1, chCrabAnimations,
chCrab_update, actor_update_func_80326224, actor_draw,
1900, 0, 0.8f, 0
};
ActorInfo D_803670DC = {
MARKER_DD_BLACK_SNIPPET, ACTOR_F2_BLACK_SNIPPET, ASSET_566_MODEL_BLACK_SNIPPET,
0x1, chCrabAnimations,
chCrab_update, actor_update_func_80326224, actor_draw,
1900, 0, 0.8f, 0
};
ActorInfo D_80367100 = {
MARKER_13_SNIPPET, ACTOR_F5_MUTIE_SNIPPET, ASSET_38F_MODEL_MUTIE_SNIPPET,
0x1, chCrabMutantAnimations,
chCrab_update, actor_update_func_80326224, actor_draw,
1900, 0, 0.8f, 0
};
+18 -3
View File
@@ -57,7 +57,12 @@ ActorAnimationInfo banjoSleepingAnimations[] = {
{ 0x24F, 0.6f },
{ 0x24D, 2.0f }
};
ActorInfo gameSelect_banjoSleeping = { 0xE4, 0x195, 0x532, 0x1, banjoSleepingAnimations, gameSelect_initAndUpdate, actor_update_func_80326224, gameSelect_zoomboxDraw, 0, 0, 0.0f, 0 };
ActorInfo gameSelect_banjoSleeping = {
MARKER_E4_CS_BK_SLEEPING, 0x195, ASSET_532_MODEL_BANJO_KAZOOIE_CUTSCENES,
0x1, banjoSleepingAnimations,
gameSelect_initAndUpdate, actor_update_func_80326224, gameSelect_zoomboxDraw,
0, 0, 0.0f, 0
};
ActorAnimationInfo banjoGameboyAnimations[] = {
{ 0x000, 0.0f },
@@ -67,7 +72,12 @@ ActorAnimationInfo banjoGameboyAnimations[] = {
{ 0x252, 0.67f },
{ 0x250, 4.5f }
};
ActorInfo gameSelect_banjoGameboy = { 0xE5, 0x196, 0x532, 0x1, banjoGameboyAnimations, gameSelect_update, actor_update_func_80326224, gameSelect_draw, 0, 0, 0.0f, 0 };
ActorInfo gameSelect_banjoGameboy = {
MARKER_E5_CS_BK_GAMEBOY, 0x196, ASSET_532_MODEL_BANJO_KAZOOIE_CUTSCENES,
0x1, banjoGameboyAnimations,
gameSelect_update, actor_update_func_80326224, gameSelect_draw,
0, 0, 0.0f, 0
};
ActorAnimationInfo banjoCookingAnimations[] = {
{ 0x000, 0.0f },
@@ -77,7 +87,12 @@ ActorAnimationInfo banjoCookingAnimations[] = {
{ 0x24C, 1.0f },
{ 0x24A, 1.0f }
};
ActorInfo gameSelect_banjoCooking = { 0xE6, 0x197, 0x532, 0x1, banjoCookingAnimations, gameSelect_update, actor_update_func_80326224, gameSelect_draw, 0, 0, 0.0f, 0 };
ActorInfo gameSelect_banjoCooking = {
MARKER_E6_CS_BK_COOKING, 0x197, ASSET_532_MODEL_BANJO_KAZOOIE_CUTSCENES,
0x1, banjoCookingAnimations,
gameSelect_update, actor_update_func_80326224, gameSelect_draw,
0, 0, 0.0f, 0
};
/* .bss */
// Fun level specific things- why would the devs define these here?
+2 -2
View File
@@ -72,7 +72,7 @@ void __chJigsawDance_update(Actor * this){
anctrl_start(this->anctrl, "chjigsawdance.c", 0x6e);
break;
case 5:
this->marker->propPtr->unk8_4 = 0;
this->marker->propPtr->isNotFeatherEggOrNote = 0;
break;
}
}
@@ -101,7 +101,7 @@ void chJigsawDance_setState(Actor * this, u32 arg1){
break;
case 5:
subaddie_set_state(this, 5);
this->marker->propPtr->unk8_4 = 0;
this->marker->propPtr->isNotFeatherEggOrNote = 0;
break;
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ void musicNote_update(Actor* this);
ActorInfo sumusicNote = {
MARKER_5F_MUSIC_NOTE,
ACTOR_51_MUSIC_NOTE,
ASSET_6D6_MODEL_MUSIC_NOTE,
ASSET_6D6_SPRITE_MUSIC_NOTE,
0,
NULL,
musicNote_update,
+1 -1
View File
@@ -171,7 +171,7 @@ int __chSnowman_isPlayerInAttackRange(Actor *this, s32 min_distance, s32 max_dis
int __chSnowman_func_802E1F70(ActorMarker *marker, s32 arg1){
if(marker->unk40_31 == 0xB){
marker->id = 0x287;
marker->id = 0x287; // check collision_table for clues?
}
else{
marker->id = MARKER_B1_SIR_SLUSH;
+1 -1
View File
@@ -64,7 +64,7 @@ bool func_802BB720(s32 arg0, f32 arg1[3], f32 arg2[3], s32 *arg3) {
if (temp_v0 != NULL) {
nodeprop_getPosition(temp_v0, arg1);
*arg3 = nodeprop_getScale(temp_v0);
temp_f6 = (f32) nodeprop_getYaw(temp_v0) - 180.0f;
temp_f6 = (f32) nodeProp_getYaw(temp_v0) - 180.0f;
arg2[0] = 0.0f;\
arg2[1] = mlNormalizeAngle(temp_f6);\
arg2[2] = 0.0f;
+2 -2
View File
@@ -41,12 +41,12 @@ void func_802C5A60(Actor *this){
suSetSpriteScale(this, 0.4f);
break;
}
this->marker->propPtr->unk8_5 = 0.5 < randf();
this->marker->propPtr->isMirrored = 0.5 < randf();
this->position_y += 100.0*this->scale;
actor_collisionOff(this);
this->initialized = TRUE;
}//L802C5B60
this->marker->propPtr->unk8_15 = D_80365F30[local->unk0];
this->marker->propPtr->frame = D_80365F30[local->unk0];
local->unk0++;
if(local->unk0 >= 0xC)
marker_despawn(this->marker);
+11 -11
View File
@@ -55,7 +55,7 @@ void func_802C83F0(Actor *actor) {
Struct25s *phi_a1;
Struct24s *phi_s0;
phi_a1 = actor->unk40;
phi_a1 = (Struct25s*)actor->unk40;
for( phi_s0 = phi_a1->begin; phi_s0 < phi_a1->current; phi_s0++){
if (phi_s0->model_bin != NULL) {
assetcache_release(phi_s0->model_bin);
@@ -65,7 +65,7 @@ void func_802C83F0(Actor *actor) {
}
phi_s0->unk3C = NULL;
}
free(actor->unk40);
free((s32*)actor->unk40);
}
Actor *func_802C8484(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
@@ -77,7 +77,7 @@ Actor *func_802C8484(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
s32 phi_s4;
sp58 = marker_getActorAndRotation(marker, &sp5C);
temp_s1 = sp58->unk40;
temp_s1 = (Struct25s*)sp58->unk40;
phi_s4 = FALSE;
for(phi_s0 = temp_s1->begin; phi_s0 < temp_s1->current; phi_s0++){
if ((phi_s0->unk0 != 0) && (phi_s0->model_bin != NULL)) {
@@ -147,7 +147,7 @@ Actor *func_802C8580(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
break;
case 0: // 802C883C
if(0.5 < randf())
s0->model_bin = (BKModelBin *) assetcache_get(0x2d1);
s0->model_bin = (BKModelBin *) assetcache_get(MODEL_ASSET_OFFSET);
else
s0->model_bin = (BKModelBin *) assetcache_get(0x2e5);
@@ -168,7 +168,7 @@ Actor *func_802C8580(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
sp68[2] = (f32)position[2];
sp68[0] += s0->unk30[0]*3.0f;
s0->unk50 = mapModel_getFloorY(&sp68);
s0->unk50 = mapModel_getFloorY((f32*)&sp68);
s0->unk14[2] = 0.0f;
s0->unk14[1] = 0.0f;
@@ -178,14 +178,14 @@ Actor *func_802C8580(s32 position[3], s32 yaw, ActorInfo* actorInfo, u32 flags){
s0->unk20[1] = randf2(0.05f, 0.4f);
s0->unk20[2] = randf2(0.05f, 0.4f);
ml_vec3f_yaw_rotate_copy(&s0->unk8, &s0->unk8, f24);
ml_vec3f_yaw_rotate_copy((f32*)&s0->unk8, (f32*)&s0->unk8, f24);
s0->unk8[0] += actor->position_x;
s0->unk8[1] += actor->position_y;
s0->unk8[2] += actor->position_z;
ml_vec3f_yaw_rotate_copy(&s0->unk30, &s0->unk30, randf2(15.0f, 90.0f) + f24);
ml_vec3f_yaw_rotate_copy((f32*)&s0->unk30, (f32*)&s0->unk30, randf2(15.0f, 90.0f) + f24);
}//L802C8A08
actor->unk40 = s1;
actor->unk40 = (s32)s1;
marker_setFreeMethod(actor->marker, func_802C83F0);
return actor;
}
@@ -254,7 +254,7 @@ void func_802C8C5C(Actor *actor) {
f32 sp94[3];
f32 temp_f0 = time_getDelta();
f32 sp84[3];
Struct25s *temp_s2 = actor->unk40;
Struct25s *temp_s2 = (Struct25s*)actor->unk40;
Struct24s *phi_s0;
s32 sp70[3] = D_80366418;
@@ -280,9 +280,9 @@ void func_802C8C5C(Actor *actor) {
if (phi_s0->unk8[1] <= phi_s0->unk50) {
phi_s0->unk0 = 1;
phi_s0->unk3C = dustEmitter_returnGiven(1);
phi_s0->unk3C = (ParticleEmitter*)dustEmitter_returnGiven(1);
if (phi_s0->unk3C != 0) {
dustEmitter_emit(phi_s0->unk8, sp70, phi_s0->unk40, 1, D_80366330, D_80366334, (s32)D_80366338, (s32)D_8036633C, DUST_EMITTER_TYPE_BREAK_DUST);
dustEmitter_emit(phi_s0->unk8, (f32*)sp70, phi_s0->unk40, 1, D_80366330, D_80366334, (s32)D_80366338, (s32)D_8036633C, DUST_EMITTER_TYPE_BREAK_DUST);
}
}
}
+39 -39
View File
@@ -50,45 +50,45 @@ enum bundle_state_e {
// #define 41FB0_FLAG_SET_YAW 0x0020
BundleInfo gBundle_array[] = {
{0x0021, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f},
{0x0021, ACTOR_52_BLUE_EGG, 5, SFX_21_EGG_BOUNCE_1, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f},
{0x0021, ACTOR_6_GRUBLIN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 0.0f, 0.0f, 550.0f, 250.0f, 200.0f, 0.0f, 0.6f, 0.0f},
{0x0021, ACTOR_62_JINJO_GREEN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f},
{0x0021, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f},
{0x0001, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 16000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f},
{0x0021, ACTOR_49_EXTRA_LIFE, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f},
{0x0001, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.6f, 0.0f},
{0x0049, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 300.0f, 0.0f, 0.5f, 0.0f},
{0x002D, ACTOR_B_SHOCKSPRING_PAD, 1, 0, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.2f, 315.0f},
{0x0005, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 75.0f, 0.0f, 725.0f, 0.0f, 75.0f, 0.0f, 0.6f, 0.0f},
{0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f},
{0x0009, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 300.0f, 0.0f, 0.6f, 0.0f},
{0x0001, ACTOR_52_BLUE_EGG, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f},
{0x0001, ACTOR_129_RED_FEATHER, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f},
{0x0005, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 100.0f, 0.0f, 0.0f, 0.0f, 0.75f, 0.0f},
{0x0005, ACTOR_6A_UNKNOWN, 1, 0, 0, 0, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x0009, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 650.0f, 0.0f, 950.0f, 0.0f, 0.6f, 0.0f},
{0x0001, ACTOR_51_MUSIC_NOTE, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f},
{0x0001, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f},
{0x0065, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.7f, 0.0f},
{0x0021, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 250.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x0021, ACTOR_50_HONEYCOMB, 2, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f},
{0x0021, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f},
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x0021, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
{0x0025, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 500.0f, 0.0f, 0.0f, 0.6f, 0.0f},
{0x0129, ACTOR_352_UNKNOWN, 1, SFX_3F2_BOING, 1, 16000, 0.0f, 0.0f, 2500.0f, 0.0f, 0.0f, 0.0f, 0.4f, 0.0f},
{0x0081, ACTOR_3A0_ICECUBE_B, 1, SFX_116_DEAF_RUSTLING, 1, 32000, 220.0f, 100.0f, 350.0f, 200.0f, 220.0f, 100.0f, 0.6f, 0.0f},
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}
{0x0021, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f}, // BUNDLE_0_MM_HUT_MUSIC_NOTE
{0x0021, ACTOR_52_BLUE_EGG, 5, SFX_21_EGG_BOUNCE_1, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, // BUNDLE_1_MM_HUT_BLUE_EGG
{0x0021, ACTOR_6_GRUBLIN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 0.0f, 0.0f, 550.0f, 250.0f, 200.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_2_MM_HUT_GRUBLIN
{0x0021, ACTOR_62_JINJO_GREEN, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, // BUNDLE_3_MM_HUT_JINJO_GREEN
{0x0021, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, // BUNDLE_4_MM_HUT_JIGGY
{0x0001, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 16000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, // BUNDLE_5__HONEYCOMB
{0x0021, ACTOR_49_EXTRA_LIFE, 1, SFX_3E9_UNKNOWN, 1, 16000, 100.0f, 50.0f, 500.0f, 250.0f, 100.0f, 50.0f, 0.6f, 0.0f}, // BUNDLE_6_MM_HUT_EXTRA_LIFE
{0x0001, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_7__JIGGY
{0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_8__JIGGY
{0x0049, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 300.0f, 0.0f, 0.5f, 0.0f}, // BUNDLE_9__JIGGY
{0x002D, ACTOR_B_SHOCKSPRING_PAD, 1, 0, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.2f, 315.0f}, // BUNDLE_A_BGS_HUT_SHOCKSPRING_PAD
{0x0005, ACTOR_51_MUSIC_NOTE, 5, SFX_3E9_UNKNOWN, 1, 16000, 75.0f, 0.0f, 725.0f, 0.0f, 75.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_B_BGS_HUT_MUSIC_NOTE
{0x0005, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 1000.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, // BUNDLE_C_BGS_HUT_JIGGY
{0x0009, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 200.0f, 0.0f, 300.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_D__EMPTY_HONEYCOMB
{0x0001, ACTOR_52_BLUE_EGG, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f}, // BUNDLE_E_YUMYUM_BLUE_EGG
{0x0001, ACTOR_129_RED_FEATHER, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 0.0f, 350.0f, 500.0f, 500.0f, 0.0f, 350.0f, 0.6f, 0.0f}, // BUNDLE_F_YUMYUM_RED_FEATHER
{0x0005, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 100.0f, 0.0f, 0.0f, 0.0f, 0.75f, 0.0f}, // BUNDLE_10__JIGGY
{0x0005, ACTOR_6A_UNKNOWN, 1, 0, 0, 0, 0.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_11__UNKNOWN
{0x0009, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 0.0f, 0.0f, 650.0f, 0.0f, 950.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_12__JIGGY
{0x0001, ACTOR_51_MUSIC_NOTE, 1, SFX_21_EGG_BOUNCE_1, 1, 16000, 125.0f, 25.0f, 725.0f, 125.0f, 125.0f, 25.0f, 0.6f, 0.0f}, // BUNDLE_13__MUSIC_NOTE
{0x0001, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, // BUNDLE_14__HONEYCOMB
{0x0065, ACTOR_46_JIGGY, 1, SFX_3E9_UNKNOWN, 1, 16000, 90.0f, 0.0f, 930.0f, 0.0f, 100.0f, 0.0f, 0.7f, 0.0f}, // BUNDLE_15__JIGGY
{0x0021, ACTOR_50_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 250.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_16__HONEYCOMB
{0x0021, ACTOR_50_HONEYCOMB, 2, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, // BUNDLE_17__HONEYCOMB
{0x0021, ACTOR_50_HONEYCOMB, 3, SFX_3E9_UNKNOWN, 1, 18000, 50.0f, 150.0f, 500.0f, 250.0f, 50.0f, 150.0f, 0.6f, 0.0f}, // BUNDLE_18__HONEYCOMB
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_19__HONEYCOMB
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_1A__HONEYCOMB
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_1B__HONEYCOMB
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_1C__HONEYCOMB
{0x00A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_1D__HONEYCOMB
{0x0021, ACTOR_46_JIGGY, 1, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // BUNDLE_1E__JIGGY
{0x0025, ACTOR_47_EMPTY_HONEYCOMB, 1, SFX_3E9_UNKNOWN, 1, 18000, 0.0f, 0.0f, 750.0f, 500.0f, 0.0f, 0.0f, 0.6f, 0.0f}, // BUNDLE_1F_SM_EMPTY_HONEYCOMB
{0x0129, ACTOR_352_UNKNOWN, 1, SFX_3F2_BOING, 1, 16000, 0.0f, 0.0f, 2500.0f, 0.0f, 0.0f, 0.0f, 0.4f, 0.0f}, // BUNDLE_20__UNKNOWN
{0x0081, ACTOR_3A0_ICECUBE_B, 1, SFX_116_DEAF_RUSTLING, 1, 32000, 220.0f, 100.0f, 350.0f, 200.0f, 220.0f, 100.0f, 0.6f, 0.0f}, // BUNDLE_21__ICECUBE_B
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 250.0f, 0.0f, 200.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // BUNDLE_22__HONEYCOMB
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 350.0f, 0.0f, 350.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // BUNDLE_23__HONEYCOMB
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 450.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // BUNDLE_24__HONEYCOMB
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 550.0f, 0.0f, 450.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // BUNDLE_25__HONEYCOMB
{0x02A1, ACTOR_50_HONEYCOMB, 1, SFX_8_BANJO_LANDING_04, 1, 20000, 650.0f, 0.0f, 500.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} // BUNDLE_26__HONEYCOMB
};
/* .bss */
+1 -1
View File
@@ -88,7 +88,7 @@ void func_802C9D80(void){
}
}
}
fxSparkle_honeycomb(&s5->propPtr->x);
fxSparkle_honeycomb(&s5->propPtr->position_x);
marker_despawn(s5);
}
+5 -5
View File
@@ -29,10 +29,10 @@ ActorInfo D_80366CD0 = {
Struct_Core2_43250_1 D_80366CF4 [16]= {
{SFX_6B_LOCKUP_OPENING, 0x40, 0xFF},
{SFX_6C_LOCKUP_CLOSING, 0x80, 0xFA},
{SFX_3F_CAULDRON_SQEAK_1, 0x99, 0x65},
{SFX_40_CAULDRON_SQEAK_2, 0x99, 0x65},
{SFX_3F_CAULDRON_SQEAK_1, 0x99, 0x65},
{SFX_40_CAULDRON_SQEAK_2, 0x99, 0x65},
{SFX_3F_CAULDRON_SQUEAK_1, 0x99, 0x65},
{SFX_40_CAULDRON_SQUEAK_2, 0x99, 0x65},
{SFX_3F_CAULDRON_SQUEAK_1, 0x99, 0x65},
{SFX_40_CAULDRON_SQUEAK_2, 0x99, 0x65},
{SFX_AD_CATERPILLAR_SQUEAK, 0x80, 0x75},
{SFX_AD_CATERPILLAR_SQUEAK, 0x8C, 0x94},
{SFX_C5_TWINKLY_POP, 0x80, 0xFA},
@@ -156,7 +156,7 @@ void func_802CA1E0(Actor *this){
if(!this->volatile_initialized){
this->volatile_initialized = TRUE;
tmp_v1 = (s32)this->yaw;
this->unk154 = D_80366E64[tmp_v1].unk0;
this->unk154 = (u32)D_80366E64[tmp_v1].unk0;
reinterpret_cast(s32, this->unkBC[4]) = D_80366E64[tmp_v1].unk4;
reinterpret_cast(s32, this->unkBC[0]) = 0;
}
+2 -2
View File
@@ -1032,7 +1032,7 @@ void func_802D5628(void){
func_802D5178(LEVEL_FLAG_1C_MM_OPEN, 0x28, 0x30, MAP_69_GL_MM_LOBBY, 0x8, 0xA, ACTOR_20E_MM_ENTRANCE_DOOR, 0x28);
func_802D5178(LEVEL_FLAG_21_GV_OPEN, 0x2D, 0x31, MAP_6E_GL_GV_LOBBY, 0xA, 0xA, ACTOR_226_GV_ENTRANCE, 0x12);
func_802D5178(LEVEL_FLAG_1E_CC_OPEN, 0x2A, 0x32, MAP_70_GL_CC_LOBBY, 0xE, 0xA, ACTOR_212_CC_ENTRANCE_BARS, 0xA);
func_802D5178(LEVEL_FLAG_1D_TTC_OPEN, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TCC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(LEVEL_FLAG_1D_TTC_OPEN, 0x29, 0x33, MAP_6D_GL_TTC_LOBBY, 0x9, 0xB, ACTOR_211_TTC_ENTRANCE_CHEST_LID, 0xA);
func_802D5178(LEVEL_FLAG_1F_BGS_OPEN, 0x2B, 0x34, MAP_72_GL_BGS_LOBBY, 0xB, 0xB, ACTOR_210_BGS_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_23_RBB_OPEN, 0x2F, 0x35, MAP_77_GL_RBB_LOBBY, 0xD, 0x5, ACTOR_20F_RBB_ENTRANCE_DOOR, 0xA);
func_802D5178(LEVEL_FLAG_22_MMM_OPEN, 0x2E, 0x36, MAP_75_GL_MMM_LOBBY, 0xC, 0x6, ACTOR_228_MMM_ENTRANCE_DOOR, 0xA);
@@ -1230,7 +1230,7 @@ void func_802D6494(void){
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
case ACTOR_211_TCC_ENTRANCE_CHEST_LID:// L802D6530
case ACTOR_211_TTC_ENTRANCE_CHEST_LID:// L802D6530
FUNC_8030E624(SFX_6B_LOCKUP_OPENING, 0.6f, 32000);
coMusicPlayer_playMusicWeak(COMUSIC_64_WORLD_OPENING_A, 32000);
break;
+5 -5
View File
@@ -9,7 +9,7 @@ typedef struct {
u8 unk9;
u8 unkA;
u8 unkB;
u32 unkC_31:3;
u32 yaw:3;
u32 unkC_28:1;
u32 padC_27:28;
s16 unk10; //sfx_id
@@ -305,7 +305,7 @@ void func_802DB5A0(Actor *this) {
this->yaw_ideal = (f32) subaddie_getYawToPlayer(this);
subaddie_turnToYaw(this, 4.0f);
if (func_80329480(this)) {
this->unk10_12 = local->unkC_31;
this->unk10_12 = local->yaw;
subaddie_set_state(this, 4);
func_802DB2AC(this);
}
@@ -322,8 +322,8 @@ void func_802DB5A0(Actor *this) {
break;
case 4://L802DB990
if (this->unk10_12 < local->unkC_31) {
anctrl_setDuration(this->anctrl, this->unk18[4].duration - ((local->unkC_31 - this->unk10_12) * 0.1));
if (this->unk10_12 < local->yaw) {
anctrl_setDuration(this->anctrl, this->unk18[4].duration - ((local->yaw - this->unk10_12) * 0.1));
}
this->yaw_ideal = (f32) subaddie_getYawToPlayer(this);
if (!func_803294B4(this, 0x21)) {
@@ -336,7 +336,7 @@ void func_802DB5A0(Actor *this) {
}
}
if( (this->unk10_12 == 0)
|| (this->unk10_12 < local->unkC_31 && subaddie_playerIsWithinSphereAndActive(this, 0xFA))
|| (this->unk10_12 < local->yaw && subaddie_playerIsWithinSphereAndActive(this, 0xFA))
) {
subaddie_set_state(this, 7);
this->actor_specific_1_f = (f32) local->unkA;
+1 -1
View File
@@ -30,7 +30,7 @@ void chMumboToken_collect(ActorMarker *marker, ActorMarker *other_marker){
mumboscore_set(func_802E0CB0(this), TRUE);
func_8030E760(0x401, 1.0f, 0x7fff);
timedFunc_set_1(0.75f, progressDialog_showDialogMaskZero, FILEPROG_4_MUMBO_TOKEN_TEXT);
fxSparkle_mumboToken(&marker->propPtr->x);
fxSparkle_mumboToken(&marker->propPtr->position_x);
item_inc(ITEM_1C_MUMBO_TOKEN);
marker_despawn(marker);
+2 -1
View File
@@ -227,7 +227,8 @@ void func_8028E644(void){
D_8037BFBA = 0; //player_present
}
void func_8028E668(f32 arg0[3], f32 arg1, f32 arg2, f32 arg3) { //something related to collision around Wozza in cave
//something related to collision around Wozza in cave
void func_8028E668(f32 arg0[3], f32 arg1, f32 arg2, f32 arg3) {
func_8029B73C(arg0, arg1, arg2, arg3, 1000.0f);
}
+1 -1
View File
@@ -235,7 +235,7 @@ void itemPrint_init(void){
D_80381428[i] = assetcache_get(D_803692E0[i]);
}
for(i = 0; D_803692EC[i] != -1; i++){
D_80381450[i] = func_8033B6C4(D_803692EC[i], &sp40);
D_80381450[i] = codeB3A80_getSprite(D_803692EC[i], &sp40);
}
}
+5 -5
View File
@@ -209,15 +209,15 @@ void func_8031CE70(f32 *arg0, enum map_e arg1, s32 arg2) {
if (phi_s0 != NULL) {
nodeprop_getPosition(phi_s0, sp38);
phi_f2 = 500.0f;
if (phi_s0->unk8 == 0x186) {
if (phi_s0->actorId == 0x186) {
phi_f2 = 1000.0f;
}
if (ml_vec3f_distance(arg0, sp38) < phi_f2) {
if (phi_s0->unk8 == 0x184) {
if (phi_s0->actorId == 0x184) {
ncDynamicCamera_setUpdateEnabled(0);
func_8031CB50(arg1, arg2, 1);
player_walkToPosition(sp38, 1.0f, NULL, NULL);
} else if (phi_s0->unk8 == 0x185) {
} else if (phi_s0->actorId == 0x185) {
func_8031CD44(arg1, arg2, sp38[1], (f32) phi_s0->yaw, phi_s0->scale);
} else {
func_8031CD44(arg1, arg2, playerPos[1], (f32) phi_s0->yaw, phi_s0->scale);
@@ -735,8 +735,8 @@ void func_8031E204(NodeProp *node, s32 arg1, s32 arg2){
f32 sp28[3];
f32 sp1C[3];
nodeprop_getPosition(nodeprop_findByActorIdAndPosition_s16(ACTOR_154_UNKNOWN, &node->x), sp34);
nodeprop_getPosition(nodeprop_findByActorIdAndPosition_s16(ACTOR_155_UNKNOWN, &node->x), sp28);
nodeprop_getPosition(nodeprop_findByActorIdAndPosition_s16(ACTOR_154_UNKNOWN, &node->position_x), sp34);
nodeprop_getPosition(nodeprop_findByActorIdAndPosition_s16(ACTOR_155_UNKNOWN, &node->position_x), sp28);
player_getPosition(sp1C);
if(sp28[1] < sp1C[1]){
sp1C[1] = sp28[1];
+9 -9
View File
@@ -126,7 +126,7 @@ void func_8032236C(s32 arg0, s32 arg1, s32 *arg2) {
void func_803223AC(void) {
Struct_core2_9B180_0 *i_ptr;
s32 sp28;
s32 frame_divisor;
func_80244A98(1);
for(i_ptr = D_8036DE00; i_ptr != &D_8036DE00[6]; i_ptr++){
@@ -136,14 +136,14 @@ void func_803223AC(void) {
}
}
sp28 = 0;
func_8032236C(0x19, 1, &sp28);
func_8032236C(0x1A, 2, &sp28);
func_8032236C(0x1B, 3, &sp28);
func_8032236C(0x1C, 4, &sp28);
func_8032236C(0x1D, 5, &sp28);
sp28 = (sp28 == 0) ? 2 : sp28;
viMgr_func_8024BF94(sp28);
frame_divisor = 0;
func_8032236C(ACTOR_19_FRAMERATE_60, 1, &frame_divisor);
func_8032236C(ACTOR_1A_FRAMERATE_30, 2, &frame_divisor);
func_8032236C(ACTOR_1B_FRAMERATE_20, 3, &frame_divisor);
func_8032236C(ACTOR_1C_FRAMERATE_15, 4, &frame_divisor);
func_8032236C(ACTOR_1D_FRAMERATE_12, 5, &frame_divisor);
frame_divisor = (frame_divisor == 0) ? 2 : frame_divisor;
viMgr_func_8024BF94(frame_divisor);
}
void func_80322490(void) {
+68 -66
View File
@@ -27,16 +27,16 @@ extern void __spawnQueue_add_5(GenFunction_5, s32, s32, s32, s32, s32);
void func_8032A6A8(Actor *arg0);
void func_8032ACA8(Actor *arg0);
void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2);
void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, CollisionParams *arg2);
void subaddie_set_state_with_direction(Actor * this, s32 arg1, f32 arg2, s32 arg3);
void func_8032BB88(Actor *this, s32 arg1, s32 arg2);
int subaddie_playerIsWithinSphere(Actor *this, s32 dist);
extern void func_8033A4A0(enum asset_e mode_id, f32, f32);
extern void func_80338338(s32, s32, s32);
extern void codeAEDA0_setPrimaryColorRGB(s32, s32, s32);
extern void func_803382FC(s32);
extern void func_803382E4(s32);
extern void func_8033687C(Gfx **);
extern void func_80335D30(Gfx **);
extern void codeAEDA0_setSpriteDrawMode(s32);
extern void codeAEDA0_postDrawSprite(Gfx **);
extern void codeAEDA0_drawSprite(Gfx **);
extern void func_80344138(s32, s32, s32, f32[3], f32[3], Gfx **, Mtx **);
extern BKVertexList *vtxList_clone(BKVertexList *vtxList);
@@ -236,19 +236,19 @@ Actor *fxTouchSparkle_draw(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx)
this->position[1] -= D_8036E58C[1];
this->position[2] -= D_8036E58C[2];
}
func_80338338(0xFF, 0xFF, 0xFF);
codeAEDA0_setPrimaryColorRGB(0xFF, 0xFF, 0xFF);
if (this->unk124_11 != 0) {
func_803382FC(this->alpha_124_19);
func_803382E4(0xC);
} else if (func_80344C20(sp3C) & 0xB00) {
func_803382E4(0xB);
codeAEDA0_setSpriteDrawMode(0xC);
} else if (codeBD100_getSpriteType(sp3C) & 0xB00) {
codeAEDA0_setSpriteDrawMode(0xB);
} else {
func_803382E4(0xE);
codeAEDA0_setSpriteDrawMode(0xE);
}
func_80344C38(&func_803257A4, marker);
func_80335D30(gfx);
func_80344138(sp3C, marker->propPtr->unk8_15, marker->propPtr->unk8_5, this->position, scale, gfx, mtx);
func_8033687C(gfx);
codeAEDA0_drawSprite(gfx);
func_80344138(sp3C, marker->propPtr->frame, marker->propPtr->isMirrored, this->position, scale, gfx, mtx);
codeAEDA0_postDrawSprite(gfx);
if (this->unk104 != NULL) {
this->position[0] = this->position[0] + D_8036E58C[0];
this->position[1] = this->position[1] + D_8036E58C[1];
@@ -274,19 +274,19 @@ Actor *func_80325AE0(ActorMarker *marker, Gfx **gfx, Mtx **mtx, Vtx **vtx) {
this->position[1] -= D_8036E58C[1];
this->position[2] -= D_8036E58C[2];
}
func_80338338(0xFF, 0xFF, 0xFF);
codeAEDA0_setPrimaryColorRGB(0xFF, 0xFF, 0xFF);
if (this->unk124_11 != 0) {
func_803382FC(this->alpha_124_19);
func_803382E4(0xC);
} else if (func_80344C20(sp40) & 0xB00) {
func_803382E4(0xB);
codeAEDA0_setSpriteDrawMode(0xC);
} else if (codeBD100_getSpriteType(sp40) & 0xB00) {
codeAEDA0_setSpriteDrawMode(0xB);
} else {
func_803382E4(0xE);
codeAEDA0_setSpriteDrawMode(0xE);
}
func_80344C38(&func_803257A4, marker);
func_80335D30(gfx);
func_80344720(sp40, marker->propPtr->unk8_15, marker->propPtr->unk8_5, this->position, rotation, &scale, gfx, mtx);
func_8033687C(gfx);
codeAEDA0_drawSprite(gfx);
func_80344720(sp40, marker->propPtr->frame, marker->propPtr->isMirrored, this->position, rotation, &scale, gfx, mtx);
codeAEDA0_postDrawSprite(gfx);
if (this->unk104 != NULL) {
this->position[0] = this->position[0] + D_8036E58C[0];
this->position[1] = this->position[1] + D_8036E58C[1];
@@ -311,20 +311,20 @@ Actor *func_80325CAC(ActorMarker *marker, Gfx **gfx, Gfx **mtx, Vtx **vtx) {
}
viewport_getRotation_vec3f(rotation);
rotation[2] += this->roll;
func_80338338(0xFF, 0xFF, 0xFF);
codeAEDA0_setPrimaryColorRGB(0xFF, 0xFF, 0xFF);
if (this->unk124_11 != 0) {
func_803382FC(this->alpha_124_19);
func_803382E4(0xC);
} else if ((func_80344C20(sp40) & 0xB00) != 0) {
func_803382E4(0xB);
codeAEDA0_setSpriteDrawMode(0xC);
} else if ((codeBD100_getSpriteType(sp40) & 0xB00) != 0) {
codeAEDA0_setSpriteDrawMode(0xB);
} else {
func_803382E4(0xE);
codeAEDA0_setSpriteDrawMode(0xE);
}
func_80344C38(&func_803257A4, marker);
func_80335D30(gfx);
func_80344720(sp40, marker->propPtr->unk8_15, marker->propPtr->unk8_5, this->position, rotation, scale, gfx, mtx);
codeAEDA0_drawSprite(gfx);
func_80344720(sp40, marker->propPtr->frame, marker->propPtr->isMirrored, this->position, rotation, scale, gfx, mtx);
func_8033687C(gfx);
codeAEDA0_postDrawSprite(gfx);
if (this->unk104 != NULL) {
this->position[0] = this->position[0] + D_8036E58C[0];
this->position[1] = this->position[1] + D_8036E58C[1];
@@ -535,7 +535,7 @@ void func_803268B4(void) {
marker = actor->marker;
anim_ctrl = actor->anctrl;
temp_s1 = actor->actor_info->unk18;
if (marker->propPtr->unk8_4) {
if (marker->propPtr->isNotFeatherEggOrNote) {
if(sp54){
if ( actor->actor_info->unk20 && volatileFlag_get( actor->actor_info->unk20)) {
marker_despawn(marker);
@@ -1666,7 +1666,7 @@ void func_803299B4(Actor *arg0) {
arg0->marker->actorFreeFunc = arg0->backupFreeFunc;
arg0->marker->unk5C = arg0->unk16C_31;
arg0->marker->propPtr->unk8_3 = arg0->unkF4_28;
arg0->marker->propPtr->unk8_2 = arg0->unkF4_27;
arg0->marker->propPtr->isCollisionResolved = arg0->unkF4_27;
arg0->marker->unk2C_1 = arg0->unkF4_26;
arg0->marker->collidable = arg0->stored_marker_collidable;
@@ -1761,7 +1761,7 @@ void *actors_appendToSavestate(void * begin, u32 end){
s0->unkF4_26 = s1->marker->unk2C_1;
s0->stored_marker_collidable = s1->marker->collidable;
s0->unkF4_28 = s1->marker->propPtr->unk8_3;
s0->unkF4_27 = s1->marker->propPtr->unk8_2;
s0->unkF4_27 = s1->marker->propPtr->isCollisionResolved;
//80329F94
if(s0->anctrl){
s0->stored_anctrl_index = anctrl_getIndex(s0->anctrl);
@@ -1936,7 +1936,7 @@ void func_8032A82C(Actor *arg0, s32 arg1) {
sp1C = &arg0->local;
sp24 = nodeprop_findByActorIdAndActorPosition(arg1, arg0);
if (sp24 != NULL) {
sp1C->unkC = nodeprop_getYaw(sp24);
sp1C->unkC = nodeProp_getYaw(sp24);
nodeprop_getPosition(sp24, sp1C->unk0);
sp1C->unkE = func_80341EC4(sp1C);
}
@@ -2197,7 +2197,7 @@ void func_8032B258(Actor *this, enum collision_e arg1) {
}
bool func_8032B38C(NodeProp *node, s32 arg1){
return node->unk8 == 0xF7;
return node->actorId == 0xF7;
}
void func_8032B3A0(Actor *this, ActorMarker *arg1) {
@@ -2234,13 +2234,13 @@ void func_8032B4DC(Actor *this, ActorMarker *arg1, s32 arg2) {
}
}
void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) {
void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, CollisionParams *arg2) {
Actor *this;
s32 sp70;
s32 sp6C;
s32 sp68;
s32 drop_bundle_num;
s32 unk_bit_7;
s32 hits_to_trigger;
enum marker_collision_func_type_e sp64;
s32 var_v0;
s32 remaining_health;
f32 player_yaw;
f32 sp50[3];
s32 sp4C;
@@ -2250,39 +2250,41 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) {
s32 pad;
this = marker_getActor(arg0);
sp70 = func_8033D5B4(arg2);
sp6C = func_8033D584(arg2);
sp68 = func_8033D5A4(arg2);
sp64 = func_8033D574(arg2);
if (((baiFrame_getState() != 3) && func_8028F1E0()) || (func_8033D594(arg2) == 0)) {
drop_bundle_num = collision_getDropBundleNum(arg2);
unk_bit_7 = collision_getUnkBit7(arg2);
hits_to_trigger = collision_getHitsToTrigger(arg2);
sp64 = collision_getNextState(arg2);
if (((baiFrame_getState() != 3) && func_8028F1E0()) || (collision_getDamageToPlayer(arg2) == 0)) {
if (sp64 == 0) {
if ((sp68 != 0) || (arg1->id == 0)) {
if (sp68 <= 0) {
sp68 = 1;
if ((hits_to_trigger != 0) || (arg1->id == 0)) {
if (hits_to_trigger <= 0) {
hits_to_trigger = 1;
}
} else{
return;
}
}
if (sp68 != 0) {
var_v0 = MAX(0 , (this->unk164[sp64] - (100 / sp68)));
if ((this->unk164[sp64] = var_v0) && (sp68 >= 2)) {
sp6C /= 2;
if (hits_to_trigger != 0) {
remaining_health = MAX(0 , (this->unk164[sp64] - (100 / hits_to_trigger)));
if ((this->unk164[sp64] = remaining_health) && (hits_to_trigger >= 2)) {
unk_bit_7 /= 2;
}
}
if (sp6C != 0) {
bundle_setYaw(func_80257204(arg0->propPtr->x, arg0->propPtr->z, arg1->propPtr->x, arg1->propPtr->z) + 90.0f);
D_8036E564 = sp6C;
if (unk_bit_7 != 0) {
bundle_setYaw(func_80257204(arg0->propPtr->position_x, arg0->propPtr->position_z, arg1->propPtr->position_x, arg1->propPtr->position_z) + 90.0f);
D_8036E564 = unk_bit_7;
if (this->unk138_25) {
__bundle_spawnFromFirstActor(sp6C + BUNDLE_21__ICECUBE_B, this);
__bundle_spawnFromFirstActor(unk_bit_7 + BUNDLE_21__ICECUBE_B, this);
} else {
if ((this->marker->id < 0x1A1) || (this->marker->id >= 0x1A5)) {
__bundle_spawnFromFirstActor(sp6C + BUNDLE_18__HONEYCOMB, this);
if ((this->marker->id < MARKER_1A1_BOSS_BOOM_BOX_LARGEST) ||
(this->marker->id >= MARKER_1A5_SANDYBUTT_EGG_TOLL))
{
__bundle_spawnFromFirstActor(unk_bit_7 + BUNDLE_18__HONEYCOMB, this);
}
}
}
if (sp68 != 0) {
if (hits_to_trigger != 0) {
if ((sp64 == 2) && this->unk16C_1) {
func_8032B3A0(this, arg1);
}
@@ -2297,7 +2299,7 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) {
if (sp64 != 2) {
this->unk164[sp64] = 0x63;
}
if ((sp64 == 2) && (sp70 != 0)) {
if ((sp64 == 2) && (drop_bundle_num != 0)) {
player_yaw = player_getYaw();
sp3C[0] = (s32) this->position[0];
sp3C[1] = (s32) this->position[1];
@@ -2307,21 +2309,21 @@ void func_8032B5C0(ActorMarker *arg0, ActorMarker *arg1, struct5Cs *arg2) {
}
func_8032EE0C(func_8032B38C, this);
if (((s32)arg0->unk44 < 0) && ((sp50[0] != 0.0f) || (sp50[1] != 0.0f) || (sp50[2] != 0.0f))) {
__spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw));
__spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, drop_bundle_num + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw));
} else if (this->unk16C_3 && func_803048E0(sp3C, &sp4C, &sp48, 3, (s32) (func_8033229C(arg0) * 4.0f))) {
sp50[0] = (f32) sp48->x;
sp50[1] = (f32) sp48->y;
sp50[2] = (f32) sp48->z;
__spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw));
sp50[0] = (f32) sp48->position_x;
sp50[1] = (f32) sp48->position_y;
sp50[2] = (f32) sp48->position_z;
__spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, drop_bundle_num + BUNDLE_15__JIGGY, reinterpret_cast(s32, sp50[0]), reinterpret_cast(s32, sp50[1]), reinterpret_cast(s32, sp50[2]), reinterpret_cast(s32, player_yaw));
} else {
sp38 = this->position[1] + func_8033229C(arg0);
__spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, sp70 + BUNDLE_15__JIGGY, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, sp38), reinterpret_cast(s32, this->position[2]), reinterpret_cast(s32, player_yaw));
__spawnQueue_add_5((GenFunction_5)spawnQueue_bundleWithYaw_f32, drop_bundle_num + BUNDLE_15__JIGGY, reinterpret_cast(s32, this->position[0]), reinterpret_cast(s32, sp38), reinterpret_cast(s32, this->position[2]), reinterpret_cast(s32, player_yaw));
}
func_8032EE20();
}
marker_callCollisionFunc(arg0, arg1, sp64);
}
if ((sp64 != 0) && (sp6C != 0)) {
if ((sp64 != 0) && (unk_bit_7 != 0)) {
sfx_playFadeShorthandDefault(SFX_1D_HITTING_AN_ENEMY_1, 1.0f, 25984, this->position, (s32)((500.0f + func_8033229C(arg0)) * 0.5), (s32)((500.0f + func_8033229C(arg0)) * 5));
}
}
+4 -4
View File
@@ -349,7 +349,7 @@ bool func_8032C850(Actor *actor, f32 arg1[3], s32 arg2, s32 arg3, bool nonactor)
func_80320ED8(actor->marker, temp_f0 / 2, 2);
actor->marker->collidable = stored_collidability;
for (var_v1 = func_8032F528(); var_v1 != NULL; var_v1 = func_8032F528()) {
if (nonactor || (var_v1->is_actor && (var_v1->actorProp.marker->id == actor->marker->id))) {
if (nonactor || (var_v1->isActorProp && (var_v1->actorProp.marker->id == actor->marker->id))) {
D_803833D0 = var_v1;
actor->position[0] = (f32) arg1[0];
actor->position[1] = (f32) arg1[1];
@@ -372,9 +372,9 @@ bool func_8032C9C0(Actor *actor, f32 arg1[3], s32 arg2, s32 arg3) {
void func_8032C9E0(f32 arg0[3]) {
if (D_803833D0 != NULL) {
arg0[0] = (f32) D_803833D0->unk4[0];
arg0[1] = (f32) D_803833D0->unk4[1];
arg0[2] = (f32) D_803833D0->unk4[2];
arg0[0] = (f32) D_803833D0->position_x;
arg0[1] = (f32) D_803833D0->position_y;
arg0[2] = (f32) D_803833D0->position_z;
}
}
+210 -175
View File
@@ -121,9 +121,9 @@ static void __cube_sort(Cube *cube, bool global) {
//calculate prop distances
new_var = var_v1 = cube->prop2Ptr;
for(i = 0; i < cube->prop2Cnt; var_v1++, i++){
D_80383450[i] = (var_v1->actorProp.x - ref_position[0])*(var_v1->actorProp.x - ref_position[0])
+ (var_v1->actorProp.y - ref_position[1])* (var_v1->actorProp.y - ref_position[1])
+ (var_v1->actorProp.z - ref_position[2])* (var_v1->actorProp.z - ref_position[2]);
D_80383450[i] = (var_v1->actorProp.position_x - ref_position[0])*(var_v1->actorProp.position_x - ref_position[0])
+ (var_v1->actorProp.position_y - ref_position[1])* (var_v1->actorProp.position_y - ref_position[1])
+ (var_v1->actorProp.position_z - ref_position[2])* (var_v1->actorProp.position_z - ref_position[2]);
}
//sort prop list
@@ -256,7 +256,7 @@ void func_8032CD60(Prop *prop) {
prop->spriteProp.unk8_5 = sp3C;
}
else{
prop->spriteProp.mirrored = sp3C;
prop->spriteProp.isMirrored = sp3C;
}
}
}
@@ -376,20 +376,20 @@ void func_8032D510(Cube *cube, Gfx **gfx, Mtx **mtx, Vtx **vtx){
position[0] = (f32)iProp->modelProp.position[0];
position[1] = (f32)iProp->modelProp.position[1];
position[2] = (f32)iProp->modelProp.position[2];
if(iProp->is_3d){
if(iProp->isModelProp){
rotation[0] = 0.0f;
rotation[1] = (f32)((s32)iProp->modelProp.yaw*2);
rotation[2] = (f32)((s32)iProp->modelProp.roll*2);
propModelList_drawModel(gfx, mtx, vtx,
position, rotation, (f32)iProp->modelProp.scale/100.0,
iProp->modelProp.model_index, cube
iProp->modelProp.modelId, cube
);
}
else{//L8032D72C
propModelList_drawSprite( gfx, mtx, vtx,
position, (f32)iProp->spriteProp.scale/100.0, iProp->spriteProp.sprite_index, cube,
iProp->spriteProp.r, iProp->spriteProp.b, iProp->spriteProp.g,
iProp->spriteProp.mirrored, iProp->spriteProp.frame
position, (f32)iProp->spriteProp.scale/100.0, iProp->spriteProp.spriteId, cube,
iProp->spriteProp.rgb_remove_red, iProp->spriteProp.rgb_remove_green, iProp->spriteProp.rgb_remove_blue,
iProp->spriteProp.isMirrored, iProp->spriteProp.frame
);
}
}//L8032D7C4
@@ -409,7 +409,7 @@ Prop *__codeA5BC0_initProp2Ptr(Cube *cube) {
cube->prop2Ptr = malloc(sizeof(Prop));
}
sp1C = &cube->prop2Ptr[cube->prop2Cnt-1];
sp1C->is_actor = FALSE;
sp1C->isActorProp = FALSE;
code_A5BC0_initCubePropActorProp(cube);
return sp1C;
}
@@ -432,9 +432,9 @@ s32 func_8032D9C0(Cube *cube, Prop* prop){
sp24 = 0;
if(cube->prop2Cnt != 0){
sp24 = prop->is_3d;
sp24 = prop->isModelProp;
if(func_80305D14()){
func_80305CD8(func_803058C0(prop->unk4[1]), -1);
func_80305CD8(func_803058C0(prop->position_y), -1);
}
if((prop - cube->prop2Ptr) < (cube->prop2Cnt - 1)){
memcpy(prop, prop + 1, (s32)(&cube->prop2Ptr[cube->prop2Cnt-1]) - (s32)(prop));
@@ -495,14 +495,14 @@ SpriteProp *func_8032DCB8(Cube *cube) {
SpriteProp *sp1C;
sp1C = (SpriteProp *)__codeA5BC0_initProp2Ptr(cube);
sp1C->is_actor = FALSE;
sp1C->is_3d = FALSE;
sp1C->isActorProp = FALSE;
sp1C->isModelProp = FALSE;
sp1C->frame = 0;
sp1C->mirrored = 0;
sp1C->isMirrored = FALSE;
sp1C->unk8_10 = randf() * 32.0f;
sp1C->unk8_3 = FALSE;
sp1C->unk8_2 = FALSE;
sp1C->unk8_4 = TRUE;
sp1C->isCollisionResolved = FALSE;
sp1C->isNotFeatherEggOrNote = TRUE;
return sp1C;
}
@@ -510,44 +510,45 @@ ModelProp * func_8032DDD8(Cube *cube) {
Prop *temp_v0;
temp_v0 = __codeA5BC0_initProp2Ptr(cube);
temp_v0->is_actor = FALSE;
temp_v0->is_3d = TRUE;
temp_v0->unk8_5 = FALSE;
temp_v0->isActorProp = FALSE;
temp_v0->isModelProp = TRUE;
temp_v0->isMirrored = FALSE;
temp_v0->unk8_3 = FALSE;
temp_v0->unk8_2 = FALSE;
temp_v0->unk8_4 = TRUE;
temp_v0->isCollisionResolved = FALSE;
temp_v0->isNotFeatherEggOrNote = TRUE;
return (ModelProp *)temp_v0;
}
void func_8032DE2C(ModelProp *model_prop, enum asset_e sprite_id){
model_prop->model_index = sprite_id - 0x2d1;
void func_8032DE2C(ModelProp *model_prop, enum asset_e model_id){
model_prop->modelId = model_id - MODEL_ASSET_OFFSET;
}
void func_8032DE48(ModelProp *model_prop, enum asset_e *model_id_ptr){\
*model_id_ptr = ((*(u32*)model_prop) >> 0x14) + 0x2d1;
*model_id_ptr = ((*(u32*)model_prop) >> 0x14) + MODEL_ASSET_OFFSET;
}
void func_8032DE5C(SpriteProp *sprite_prop, enum asset_e sprite_id){
sprite_prop->sprite_index = sprite_id - 0x572;
sprite_prop->spriteId = sprite_id - SPRITE_ASSET_OFFSET;
}
void func_8032DE78(SpriteProp *sprite_prop, enum asset_e *sprite_id_ptr){
*sprite_id_ptr = sprite_prop->sprite_index + 0x572;
*sprite_id_ptr = sprite_prop->spriteId + SPRITE_ASSET_OFFSET;
}
void func_8032DE8C(SpriteProp *sprite_prop, s32 *arg1){
*arg1 = sprite_prop->scale;
}
void func_8032DEA0(SpriteProp *sprite_prop, s32 *r, s32 *b, s32 *g){
*r = sprite_prop->r;
*b = sprite_prop->b;
*g = sprite_prop->g;
void func_8032DEA0(SpriteProp *sprite_prop,
s32 *rgb_remove_red, s32 *rgb_remove_green, s32 *rgb_remove_blue){
*rgb_remove_red = sprite_prop->rgb_remove_red;
*rgb_remove_green = sprite_prop->rgb_remove_green;
*rgb_remove_blue = sprite_prop->rgb_remove_blue;
}
void func_8032DECC(SpriteProp *sprite_prop, s32 *arg1){
*arg1 = sprite_prop->mirrored;
*arg1 = sprite_prop->isMirrored;
}
void func_8032DEE0(SpriteProp *sprite_prop, s32 arg1){
@@ -567,7 +568,7 @@ void func_8032DF10(SpriteProp *sprite_prop, bool *arg1){
}
void func_8032DF24(SpriteProp *sprite_prop, bool arg1){
sprite_prop->mirrored = arg1;
sprite_prop->isMirrored = arg1;
}
void func_8032DF40(ModelProp *prop_prop, s32 arg1, s32 arg2){
@@ -580,10 +581,11 @@ void func_8032DF4C(ModelProp *prop_prop, s32 *arg1, s32 *arg2){
*arg2 = prop_prop->roll;
}
void func_8032DF60(SpriteProp *sprite_prop, s32 r, s32 b, s32 g){
sprite_prop->r = r;
sprite_prop->b = b;
sprite_prop->g = g;
void func_8032DF60(SpriteProp *sprite_prop,
s32 rgb_remove_red, s32 rgb_remove_green, s32 rgb_remove_blue){
sprite_prop->rgb_remove_red = rgb_remove_red;
sprite_prop->rgb_remove_green = rgb_remove_green;
sprite_prop->rgb_remove_blue = rgb_remove_blue;
}
void func_8032DFA0(SpriteProp *sprite_prop, bool arg1){
@@ -591,27 +593,27 @@ void func_8032DFA0(SpriteProp *sprite_prop, bool arg1){
}
void func_8032DFBC(NodeProp *node, s32 src[3]){
node->x = src[0];
node->y = src[1];
node->z = src[2];
node->position_x = src[0];
node->position_y = src[1];
node->position_z = src[2];
}
void func_8032DFD8(NodeProp *node, s32 dst[3]){
dst[0] = node->x;
dst[1] = node->y;
dst[2] = node->z;
dst[0] = node->position_x;
dst[1] = node->position_y;
dst[2] = node->position_z;
}
void func_8032DFF4(Prop *prop, s32 src[3]){
prop->unk4[0] = src[0];
prop->unk4[1] = src[1];
prop->unk4[2] = src[2];
prop->position_x = src[0];
prop->position_y = src[1];
prop->position_z = src[2];
}
void codeA5BC0_getActorPosition(ActorProp *prop, s32 dst[3]){
dst[0] = prop->x;
dst[1] = prop->y;
dst[2] = prop->z;
dst[0] = prop->position_x;
dst[1] = prop->position_y;
dst[2] = prop->position_z;
}
NodeProp *codeA5BC0_getPropNodeAtIndex(Cube *cube, s32 prop_index) {
@@ -630,7 +632,7 @@ void cube_free(Cube *cube){
if(cube->prop2Ptr){
for(iProp = cube->prop2Ptr; iProp < cube->prop2Ptr +cube->prop2Cnt; iProp++){
if(iProp->is_actor){
if(iProp->isActorProp){
func_80332B2C(iProp->actorProp.marker);
}
}
@@ -657,10 +659,10 @@ bool __codeA5BC0_pad_func_8032E178(Cube *arg0, s32 *arg1, s32 arg2) {
if( ((node_ptr->bit0 == TRUE)
|| ((node_ptr->bit0 == FALSE) && (node_ptr->unk10_6 == TRUE))
)
&& (node_ptr->bit6 == 6)
&& (arg2 == node_ptr->unk8)
&& (node_ptr->category == 6)
&& (arg2 == node_ptr->actorId)
) {
*arg1 = node_ptr->radius;
*arg1 = node_ptr->selector_or_radius;
return TRUE;
}
node_ptr++;
@@ -677,8 +679,8 @@ NodeProp *cube_findNodePropByActorId(Cube *cube, enum actor_e actor_id) {
if( ( (i_ptr->bit0 == TRUE)
|| ( (i_ptr->bit0 == FALSE) && (i_ptr->unk10_6 == TRUE))
)
&& (i_ptr->bit6 == 6)
&& (actor_id == i_ptr->unk8)
&& (i_ptr->category == 6)
&& (actor_id == i_ptr->actorId)
) {
return i_ptr;
}
@@ -698,12 +700,12 @@ bool func_8032E2D4(Cube *arg0, s32 arg1[3], s32 arg2) {
if( ((var_v1->bit0 == TRUE)
|| ((var_v1->bit0 == FALSE) && (var_v1->unk10_6 == TRUE))
)
&& (var_v1->bit6 == 6)
&& (arg2 == var_v1->unk8)
&& (var_v1->category == 6)
&& (arg2 == var_v1->actorId)
) {
arg1[0] = var_v1->x;
arg1[1] = var_v1->y;
arg1[2] = var_v1->z;
arg1[0] = var_v1->position_x;
arg1[1] = var_v1->position_y;
arg1[2] = var_v1->position_z;
return TRUE;
}
var_v1++;
@@ -757,10 +759,10 @@ s32 func_8032E49C(Cube *cube, enum actor_e *actor_id_list, NodeProp **node_list,
i_node = cube->prop1Ptr;
end_node = cube->prop1Ptr + cube->prop1Cnt;
while((i_node < end_node) && (found_cnt < node_list_capacity)) {
if (((i_node->bit0 == TRUE) || ((i_node->bit0 == FALSE) && (i_node->unk10_6 == TRUE))) && (i_node->bit6 == 6)) {
if (((i_node->bit0 == TRUE) || ((i_node->bit0 == FALSE) && (i_node->unk10_6 == TRUE))) && (i_node->category == 6)) {
i_actor = actor_id_list;
for(i_actor = actor_id_list; *i_actor != -1; i_actor++){
if (i_node->unk8 == *i_actor) {
if (i_node->actorId == *i_actor) {
node_list[found_cnt++] = i_node;
break;
}
@@ -787,11 +789,11 @@ s32 func_8032E5A8(Cube *cube, s32 arg1, f32 (*arg2)[3], s32 capacity) {
if( ( (i_node->bit0 == TRUE)
|| ((i_node->bit0 == FALSE) && (i_node->unk10_6 == TRUE))
)
&& (i_node->bit6 == 6) && (arg1 == i_node->unk8)
&& (i_node->category == 6) && (arg1 == i_node->actorId)
) {
arg2[count][0] = (f32) i_node->x;
arg2[count][1] = (f32) i_node->y;
arg2[count][2] = (f32) i_node->z;
arg2[count][0] = (f32) i_node->position_x;
arg2[count][1] = (f32) i_node->position_y;
arg2[count][2] = (f32) i_node->position_z;
count++;
}
i_node++;
@@ -813,7 +815,7 @@ bool func_8032E6CC(Cube *cube, s32 *arg1, s32 arg2) {
if( ( (i_node->bit0 == TRUE)
|| ((i_node->bit0 == FALSE) && (i_node->unk10_6 == TRUE))
)
&& (i_node->bit6 == 6) && (arg2 == i_node->unk8)
&& (i_node->category == 6) && (arg2 == i_node->actorId)
) {
*arg1 = i_node->yaw;
return TRUE;
@@ -843,11 +845,11 @@ static void __codeA5BC0_initPropPointerForCube(NodeProp *node, Cube *cube, s32 c
cube_ptr_idx = cnt - 1;
for(i = 0; i < cnt; i++){
iPtr = node + i;
if( (iPtr->bit6 == 6)
|| (iPtr->bit6 == 8)
|| (iPtr->bit6 == 7)
|| (iPtr->bit6 == 9)
|| (iPtr->bit6 == 0xA)
if( (iPtr->category == 6)
|| (iPtr->category == 8)
|| (iPtr->category == 7)
|| (iPtr->category == 9)
|| (iPtr->category == 0xA)
|| (iPtr->bit0 == 1)
){
memcpy(&cube->prop1Ptr[cube_ptr_idx], &node[i], sizeof(NodeProp));
@@ -912,15 +914,15 @@ void code7AF80_initCubeFromFile(File *file_ptr, Cube *cube) {
cube->prop2Ptr = (Prop *) malloc(sp47 * sizeof(Prop));
file_getNBytes_ifExpected(file_ptr, 9, cube->prop2Ptr, cube->prop2Cnt * sizeof(Prop));
for(var_v1_2 = cube->prop2Ptr; var_v1_2 < cube->prop2Ptr + sp47; var_v1_2++){
var_v1_2->unk8_4 = 1;
if (var_v1_2->is_3d) {
var_v1_2->unk8_5 = 0;
var_v1_2->isNotFeatherEggOrNote = TRUE;
if (var_v1_2->isModelProp) {
var_v1_2->isMirrored = FALSE;
}
if (sp34) {
if (!(var_v1_2->is_actor) && !(var_v1_2->is_3d)){
temp_v0_5 = var_v1_2->spriteProp.sprite_index + 0x572;
if (!(var_v1_2->isActorProp) && !(var_v1_2->isModelProp)){
temp_v0_5 = var_v1_2->spriteProp.spriteId + SPRITE_ASSET_OFFSET;
if((temp_v0_5 == 0x580) || (temp_v0_5 == 0x6D1) || (temp_v0_5 == 0x6D6) || (temp_v0_5 == 0x6D7)){
var_v1_2->unk8_4 = 0;
var_v1_2->isNotFeatherEggOrNote = FALSE;
}
}
}
@@ -969,11 +971,19 @@ void func_8032EE80(Cube *cube) {
if ((cube->prop2Cnt != 0) && ((D_80383400 == 1) || (D_80383400 == 2))) {
var_a1 = cube->prop2Ptr;
for(var_t0 = 0; var_t0 < cube->prop2Cnt; var_t0++, var_a1++){
if (!var_a1->is_actor) {
if (((var_a1->unk4[0] - D_803833F0[0]) * (var_a1->unk4[0] - D_803833F0[0])) + ((var_a1->unk4[1] - D_803833F0[1]) * (var_a1->unk4[1] - D_803833F0[1])) + ((var_a1->unk4[2] - D_803833F0[2]) * (var_a1->unk4[2] - D_803833F0[2])) < D_803833FC) {
var_v0 = (var_a1->is_3d) ? 2 : 1;
if (!var_a1->isActorProp) {
if (
((var_a1->position_x - D_803833F0[0]) * (var_a1->position_x - D_803833F0[0])) +
((var_a1->position_y - D_803833F0[1]) * (var_a1->position_y - D_803833F0[1])) +
((var_a1->position_z - D_803833F0[2]) * (var_a1->position_z - D_803833F0[2]))
< D_803833FC)
{
var_v0 = (var_a1->isModelProp) ? 2 : 1;
if (var_v0 == D_80383400) {
D_803833FC = ((var_a1->unk4[0] - D_803833F0[0]) * (var_a1->unk4[0] - D_803833F0[0])) + ((var_a1->unk4[1] - D_803833F0[1]) * (var_a1->unk4[1] - D_803833F0[1])) + ((var_a1->unk4[2] - D_803833F0[2]) * (var_a1->unk4[2] - D_803833F0[2]));
D_803833FC =
((var_a1->position_x - D_803833F0[0]) * (var_a1->position_x - D_803833F0[0])) +
((var_a1->position_y - D_803833F0[1]) * (var_a1->position_y - D_803833F0[1])) +
((var_a1->position_z - D_803833F0[2]) * (var_a1->position_z - D_803833F0[2]));
D_80383404 = cube;
D_80383408 = var_a1;
D_8038340C = D_80383400;
@@ -987,9 +997,17 @@ void func_8032EE80(Cube *cube) {
if (D_80383400 == 3) {
var_s0 = cube->prop1Ptr;
for(var_s1 = 0; var_s1 < cube->prop1Cnt; var_s1++, var_s0++){
if (((var_s0->x - D_803833F0[0]) * (var_s0->x - D_803833F0[0])) + ((var_s0->y - D_803833F0[1]) * (var_s0->y - D_803833F0[1])) + ((var_s0->z - D_803833F0[2]) * (var_s0->z - D_803833F0[2])) < D_803833FC) {
if (
((var_s0->position_x - D_803833F0[0]) * (var_s0->position_x - D_803833F0[0])) +
((var_s0->position_y - D_803833F0[1]) * (var_s0->position_y - D_803833F0[1])) +
((var_s0->position_z - D_803833F0[2]) * (var_s0->position_z - D_803833F0[2]))
< D_803833FC)
{
if (D_80383558 == NULL || D_80383558(var_s0, D_8038355C)) {
D_803833FC = ((var_s0->x - D_803833F0[0]) * (var_s0->x - D_803833F0[0])) + ((var_s0->y - D_803833F0[1]) * (var_s0->y - D_803833F0[1])) + ((var_s0->z - D_803833F0[2]) * (var_s0->z - D_803833F0[2]));
D_803833FC =
((var_s0->position_x - D_803833F0[0]) * (var_s0->position_x - D_803833F0[0])) +
((var_s0->position_y - D_803833F0[1]) * (var_s0->position_y - D_803833F0[1])) +
((var_s0->position_z - D_803833F0[2]) * (var_s0->position_z - D_803833F0[2]));
D_80383404 = cube;
D_80383408 = (Prop*)var_s0;
D_8038340C = D_80383400;
@@ -1015,9 +1033,9 @@ void func_8032F194(ActorMarker *marker, s32 position[3], Cube *cube) {
sp24.words[2] = propPtr->words[2];
v0->x = position[0];
v0->y = position[1];
v0->z = position[2];
v0->position_x = position[0];
v0->position_y = position[1];
v0->position_z = position[2];
func_8032F21C(cube, position, marker, func_8032D9C0(marker->cubePtr, (Prop *)propPtr));
@@ -1030,19 +1048,19 @@ void func_8032F21C(Cube *cube, s32 position[3], ActorMarker *marker, bool arg3)
ActorProp *sp1C;
sp1C = &__codeA5BC0_initProp2Ptr(cube)->actorProp;
sp1C->is_actor = TRUE;
sp1C->x = (s16) position[0];
sp1C->y = (s16) position[1];
sp1C->z = (s16) position[2];
sp1C->isActorProp = TRUE;
sp1C->position_x = (s16) position[0];
sp1C->position_y = (s16) position[1];
sp1C->position_z = (s16) position[2];
sp1C->marker = marker;
sp1C->is_3d = arg3;
sp1C->unk8_15 = 0;
sp1C->unk8_5 = FALSE;
sp1C->isModelProp = arg3;
sp1C->frame = 0;
sp1C->isMirrored = FALSE;
sp1C->unk8_10 = (func_802E4A08()) ? 0xF : (u8)(randf() * 32);
sp1C->unk8_3 = FALSE;
sp1C->unk8_2 = FALSE;
sp1C->unk8_4 = TRUE;
sp1C->isCollisionResolved = FALSE;
sp1C->isNotFeatherEggOrNote = TRUE;
marker->propPtr = sp1C;
marker->cubePtr = cube;
if (func_80305D14()) {
@@ -1069,9 +1087,9 @@ void func_8032F470(s32 *pos, ActorMarker *arg1){
cubePtr = (arg1->unk40_23)? func_8030364C(): cubeList_GetCubeAtPosition_s32(pos);
if(cubePtr == arg1->cubePtr){
arg1->propPtr->x = pos[0];
arg1->propPtr->y = pos[1];
arg1->propPtr->z = pos[2];
arg1->propPtr->position_x = pos[0];
arg1->propPtr->position_y = pos[1];
arg1->propPtr->position_z = pos[2];
}
else{
func_8032F194(arg1, pos, cubePtr);
@@ -1297,7 +1315,7 @@ void code_A5BC0_initCubePropActorProp(Cube *cube) {
prop_ptr = cube->prop2Ptr;
prop_cnt = cube->prop2Cnt;
while(prop_cnt != 0){
if(prop_ptr->is_actor == TRUE){
if(prop_ptr->isActorProp == TRUE){
prop_ptr->actorProp.marker->propPtr = &prop_ptr->actorProp;
prop_ptr->actorProp.marker->cubePtr = cube;
}
@@ -1318,14 +1336,19 @@ void func_80330208(Cube *cube) {
end_prop = cube->prop1Ptr + cube->prop1Cnt;
func_80326C24(1);
while(i_prop < end_prop){
if (i_prop->bit6 == 6) {
position[0] = (s32) i_prop->x;
position[1] = (s32) i_prop->y;
position[2] = (s32) i_prop->z;
actor = func_803055E0(i_prop->unk8, position, i_prop->yaw, i_prop->unk10_31, i_prop->unk10_19);
if (i_prop->category == 6) {
position[0] = (s32) i_prop->position_x;
position[1] = (s32) i_prop->position_y;
position[2] = (s32) i_prop->position_z;
actor = func_803055E0(
i_prop->actorId,
position,
i_prop->yaw,
i_prop->unk10_31,
i_prop->unk10_19);
if (actor != NULL) {
actor->secondaryId = i_prop->unk10_31;
actor->actorTypeSpecificField = i_prop->radius;
actor->actorTypeSpecificField = i_prop->selector_or_radius;
suSetSpriteScale(actor, (i_prop->scale != 0) ? ((f32)i_prop->scale * 0.01) : 1.0);
}
}
@@ -1345,21 +1368,33 @@ void func_803303B8(Cube *cube) {
current_node_ptr = cube->prop1Ptr;
last_node_prop_ptr = cube->prop1Ptr + cube->prop1Cnt;
while (current_node_ptr < last_node_prop_ptr) {
if (current_node_ptr->bit6 == 7) {
position[0] = (s32) current_node_ptr->x;
position[1] = (s32) current_node_ptr->y;
position[2] = (s32) current_node_ptr->z;
func_803065E4(current_node_ptr->unk8, position, current_node_ptr->radius, current_node_ptr->unk10_31, current_node_ptr->pad10_7);
} else if (current_node_ptr->bit6 == 9) {
position[0] = (s32) current_node_ptr->x;
position[1] = (s32) current_node_ptr->y;
position[2] = (s32) current_node_ptr->z;
func_8030688C(current_node_ptr->unk8, position, current_node_ptr->radius, current_node_ptr->unk10_0);
} else if (current_node_ptr->bit6 == 0xA) {
position[0] = (s32) current_node_ptr->x;
position[1] = (s32) current_node_ptr->y;
position[2] = (s32) current_node_ptr->z;
func_80306AA8(current_node_ptr->unk8, position, current_node_ptr->radius);
if (current_node_ptr->category == 7) {
position[0] = (s32) current_node_ptr->position_x;
position[1] = (s32) current_node_ptr->position_y;
position[2] = (s32) current_node_ptr->position_z;
func_803065E4(
current_node_ptr->actorId,
position,
current_node_ptr->selector_or_radius,
current_node_ptr->unk10_31,
current_node_ptr->pad10_7);
} else if (current_node_ptr->category == 9) {
position[0] = (s32) current_node_ptr->position_x;
position[1] = (s32) current_node_ptr->position_y;
position[2] = (s32) current_node_ptr->position_z;
func_8030688C(
current_node_ptr->actorId,
position,
current_node_ptr->selector_or_radius,
current_node_ptr->unk10_0);
} else if (current_node_ptr->category == 0xA) {
position[0] = (s32) current_node_ptr->position_x;
position[1] = (s32) current_node_ptr->position_y;
position[2] = (s32) current_node_ptr->position_z;
func_80306AA8(
current_node_ptr->actorId,
position,
current_node_ptr->selector_or_radius);
}
current_node_ptr++;
}
@@ -1428,7 +1463,7 @@ void func_803306C8(s32 arg0) {
if (!D_8036E7CC);
var_s0_2 = TRUE;
func_8033B338(&var_a2->unk4, &var_a2->unk8);
codeB3A80_releaseSprite(&var_a2->unk4, &var_a2->unk8);
}
if ((arg0 != 1) && (var_s0_2 == 1) && (func_80254BC4(1))) {
return;
@@ -1479,9 +1514,9 @@ s32 func_80330974(ActorMarker *marker, s32 arg1, f32 arg2, s32 arg3) {
return 0;
}
sp58 = func_8033A12C(model);
position[0] = (f32) marker->propPtr->x;
position[1] = (f32) marker->propPtr->y;
position[2] = (f32) marker->propPtr->z;
position[0] = (f32) marker->propPtr->position_x;
position[1] = (f32) marker->propPtr->position_y;
position[2] = (f32) marker->propPtr->position_z;
rotation[0] = (f32)marker->pitch;
rotation[1] = (f32)marker->yaw;
@@ -1518,7 +1553,7 @@ BKModelBin *marker_loadModelBin(ActorMarker *this){
func_8032ACA8(thisActor);
}
func_8032AB84(thisActor);
if(!this->unk18 && this->propPtr->is_3d && modelInfo->modelPtr && func_8033A12C(modelInfo->modelPtr)){
if(!this->unk18 && this->propPtr->isModelProp && modelInfo->modelPtr && func_8033A12C(modelInfo->modelPtr)){
this->unk18 = func_80330B10();
}
modelInfo->unk10 = globalTimer_getTime();
@@ -1582,7 +1617,7 @@ BKSpriteDisplayData *func_80330E54(ActorMarker *marker, BKSprite **sprite_ptr) {
}
model_cache_ptr = &modelCache[marker_getActor(marker)->modelCacheIndex];
if (model_cache_ptr->unk4 == 0) {
model_cache_ptr->unk4 = func_8033B6C4(marker->modelId, &model_cache_ptr->unk8);
model_cache_ptr->unk4 = codeB3A80_getSprite(marker->modelId, &model_cache_ptr->unk8);
}
model_cache_ptr->unk10 = globalTimer_getTime();
if (sprite_ptr != NULL) {
@@ -1601,23 +1636,23 @@ BKSprite *func_80330F50(ActorMarker * marker){
return sp1C;
}
s32 codeA5BC0_getNodePropUnkA(NodeProp *arg0){
return arg0->unkA; //marker_id
s32 codeA5BC0_getNodePropMarkerId(NodeProp *arg0){
return arg0->markerId;
}
s32 codeA5BC0_getNodePropBit6(NodeProp *arg0){
return arg0->bit6;
s32 codeA5BC0_getNodePropCategory(NodeProp *arg0){
return arg0->category;
}
s32 codeA5BC0_getNodePropUnk8(NodeProp *arg0){
return arg0->unk8;
s32 codeA5BC0_getNodePropActorId(NodeProp *arg0){
return arg0->actorId;
}
s32 codeA5BC0_getPositionAndReturnRadius(NodeProp *arg0, s32 arg1[3]){
arg1[0] = arg0->x;
arg1[1] = arg0->y;
arg1[2] = arg0->z;
return arg0->radius;
s32 codeA5BC0_getPositionAndSelectorOrRadius(NodeProp *arg0, s32 arg1[3]){
arg1[0] = arg0->position_x;
arg1[1] = arg0->position_y;
arg1[2] = arg0->position_z;
return arg0->selector_or_radius;
}
// is used to set global timer time?
@@ -1633,9 +1668,9 @@ s32 codeA5BC0_getNodePropUnkC(NodeProp *arg0){
}
void func_80330FCC(ActorMarker *marker, s32 arg1[3]){
arg1[0] = marker->propPtr->x;
arg1[1] = marker->propPtr->y;
arg1[2] = marker->propPtr->z;
arg1[0] = marker->propPtr->position_x;
arg1[1] = marker->propPtr->position_y;
arg1[2] = marker->propPtr->position_z;
}
void func_80330FF4(void){
@@ -1708,7 +1743,7 @@ BKCollisionTri *func_803311D4(Cube *cube, f32 *arg1, f32 *arg2, f32 *arg3, u32 a
for(var_s1 = cube->prop2Ptr, var_s5 = cube->prop2Cnt; var_s5 > 0; var_s5--, var_s1++) {
if(var_s1);
if (!var_s1->is_actor && var_s1->is_3d && var_s1->unk8_4) { //ModelProp
if (!var_s1->isActorProp && var_s1->isModelProp && var_s1->isNotFeatherEggOrNote) { //ModelProp
var_s0 = propModelList_getModelIfActive(((u32)var_s1->modelProp.unk0 >> 0x4));
if ((var_s0 != NULL) || (func_8028F280() && ((var_s0 = propModelList_getModel(((u32)var_s1->modelProp.unk0 >> 0x4))) != NULL))) {
temp_s2 = model_getCollisionList(var_s0);
@@ -1725,7 +1760,7 @@ BKCollisionTri *func_803311D4(Cube *cube, f32 *arg1, f32 *arg2, f32 *arg3, u32 a
}
}
}
} else if (var_s1->is_actor && var_s1->unk8_3 && var_s1->unk8_4 && !func_80331158(var_s1->actorProp.marker, arg1, arg2)) {
} else if (var_s1->isActorProp && var_s1->unk8_3 && var_s1->isNotFeatherEggOrNote && !func_80331158(var_s1->actorProp.marker, arg1, arg2)) {
if (!(var_s1->actorProp.marker->unk3E_0 && (marker_getActor(var_s1->actorProp.marker)->unk3C & 0x008000000))) {
var_a0 = func_80330DE4(var_s1->actorProp.marker);
} else {
@@ -1737,9 +1772,9 @@ BKCollisionTri *func_803311D4(Cube *cube, f32 *arg1, f32 *arg2, f32 *arg3, u32 a
if (temp_s0 != 0) {
temp_s2_2 = marker_getActor(var_s1->actorProp.marker);
temp_a1 = func_80330C74(temp_s2_2);
actor_position[0] = (f32) var_s1->actorProp.x;
actor_position[1] = (f32) var_s1->actorProp.y;
actor_position[2] = (f32) var_s1->actorProp.z;
actor_position[0] = (f32) var_s1->actorProp.position_x;
actor_position[1] = (f32) var_s1->actorProp.position_y;
actor_position[2] = (f32) var_s1->actorProp.position_z;
actor_rotation[0] = (f32) var_s1->actorProp.marker->pitch;
actor_rotation[1] = (f32) var_s1->actorProp.marker->yaw;
actor_rotation[2] = (f32) var_s1->actorProp.marker->roll;
@@ -1762,7 +1797,7 @@ BKCollisionTri *func_803311D4(Cube *cube, f32 *arg1, f32 *arg2, f32 *arg3, u32 a
}
}
}
} else if (var_s1->is_actor) {
} else if (var_s1->isActorProp) {
if (var_s1->actorProp.marker->unk18 != NULL) {
if (var_s1->actorProp.marker->unk18->unk0 != NULL) {
var_v0 = var_s1->actorProp.marker->unk18->unk0(var_s1->actorProp.marker, arg1, arg2, arg3, arg4);
@@ -1802,7 +1837,7 @@ s32 func_80331638(Cube *cube, f32 arg1[3], f32 arg2[3], f32 arg3, f32 arg4[3], s
new_var2 = sp8C;
for (; var_s3 != 0; var_s0++, var_s3--)
{
if (((!var_s0->is_actor) && var_s0->is_3d) && var_s0->unk8_4)
if (((!var_s0->isActorProp) && var_s0->isModelProp) && var_s0->isNotFeatherEggOrNote)
{
model_bin = propModelList_getModelIfActive(((u32) (*((u16 *) (&var_s0->modelProp)))) >> 4);
if (model_bin == 0)
@@ -1831,7 +1866,7 @@ s32 func_80331638(Cube *cube, f32 arg1[3], f32 arg2[3], f32 arg3, f32 arg4[3], s
}
}
else
if ((var_s0->is_actor && var_s0->unk8_3) && var_s0->unk8_4)
if ((var_s0->isActorProp && var_s0->unk8_3) && var_s0->isNotFeatherEggOrNote)
{
model_collision_list = func_80330DE4(var_s0->actorProp.marker);
pad9C = model_collision_list;
@@ -1847,9 +1882,9 @@ s32 func_80331638(Cube *cube, f32 arg1[3], f32 arg2[3], f32 arg3, f32 arg4[3], s
temp_v0_6 = marker_getActor(var_s0->actorProp.marker);
temp_a1 = func_80330C74(temp_v0_6);
{
sp98[0] = (f32) var_s0->actorProp.x;
sp98[1] = (f32) var_s0->actorProp.y;
sp98[2] = (f32) var_s0->actorProp.z;
sp98[0] = (f32) var_s0->actorProp.position_x;
sp98[1] = (f32) var_s0->actorProp.position_y;
sp98[2] = (f32) var_s0->actorProp.position_z;
sp8C[0] = (f32) var_s0->actorProp.marker->pitch;
sp8C[1] = (f32) var_s0->actorProp.marker->yaw;
sp8C[2] = (f32) var_s0->actorProp.marker->roll;
@@ -1861,7 +1896,7 @@ s32 func_80331638(Cube *cube, f32 arg1[3], f32 arg2[3], f32 arg3, f32 arg4[3], s
}
}
else
if (var_s0->is_actor)
if (var_s0->isActorProp)
{
temp_a0 = var_s0->actorProp.marker;
temp_v0_7 = temp_a0->unk18;
@@ -1903,9 +1938,9 @@ BKCollisionTri *func_803319C0(Cube *cube, f32 position[3], f32 radius, s32 arg3,
var_s7 = NULL;
prop_ptr = cube->prop2Ptr;
for (i = cube->prop2Cnt; i != 0; i--, prop_ptr++) {
if (((!prop_ptr->is_actor) && prop_ptr->is_3d) && prop_ptr->unk8_4) {
if (((!prop_ptr->isActorProp) && prop_ptr->isModelProp) && prop_ptr->isNotFeatherEggOrNote) {
mProp = &prop_ptr->modelProp;
new_var = propModelList_getModelIfActive(mProp->model_index);
new_var = propModelList_getModelIfActive(mProp->modelId);
if (1) { } if (1) { } if (1) { }
model_bin = new_var;
if (model_bin != NULL){
@@ -1925,7 +1960,7 @@ BKCollisionTri *func_803319C0(Cube *cube, f32 position[3], f32 radius, s32 arg3,
}
} else {
aProp = &prop_ptr->actorProp;
if ((prop_ptr->is_actor && prop_ptr->unk8_3) && prop_ptr->unk8_4) {
if ((prop_ptr->isActorProp && prop_ptr->unk8_3) && prop_ptr->isNotFeatherEggOrNote) {
model_bin = func_80330DE4(aProp->marker);
if (model_bin != 0) {
new_var = model_getCollisionList(model_bin);
@@ -1934,9 +1969,9 @@ BKCollisionTri *func_803319C0(Cube *cube, f32 position[3], f32 radius, s32 arg3,
temp_v0_6 = marker_getActor(aProp->marker);
temp_a1 = func_80330C74(temp_v0_6);
actor_position[0] = (f32) aProp->x;
actor_position[1] = (f32) aProp->y;
actor_position[2] = (f32) aProp->z;
actor_position[0] = (f32) aProp->position_x;
actor_position[1] = (f32) aProp->position_y;
actor_position[2] = (f32) aProp->position_z;
actor_rotation[0] = aProp->marker->pitch;
actor_rotation[1] = aProp->marker->yaw;
actor_rotation[2] = aProp->marker->roll;
@@ -1947,7 +1982,7 @@ BKCollisionTri *func_803319C0(Cube *cube, f32 position[3], f32 radius, s32 arg3,
}
}
}
} else if (prop_ptr->is_actor) {
} else if (prop_ptr->isActorProp) {
Struct6Cs *temp_v0_7;
temp_v0_7 = aProp->marker->unk18;
if (temp_v0_7 != 0) {
@@ -1983,7 +2018,7 @@ f32 func_80331D20(BKSprite *sprite) {
f32 func_80331E34(Prop *arg0){
return func_80331D20(propModelList_getSprite(arg0->spriteProp.sprite_index));
return func_80331D20(propModelList_getSprite(arg0->spriteProp.spriteId));
}
f32 func_80331E64(ActorMarker *marker) {
@@ -2002,7 +2037,7 @@ f32 func_80331E64(ActorMarker *marker) {
f32 func_80331F1C(Prop *arg0){
return vtxList_getGlobalNorm(model_getVtxList(propModelList_getModel(arg0->modelProp.model_index)));
return vtxList_getGlobalNorm(model_getVtxList(propModelList_getModel(arg0->modelProp.modelId)));
}
f32 func_80331F54(ActorMarker *marker) {
@@ -2030,8 +2065,8 @@ f32 func_80332050(Prop *prop, ActorMarker *marker, s32 arg2) {
ActorMarker * phi_v0;
f32 phi_f2;
phi_v0 =(prop->is_actor) ? prop->actorProp.marker : NULL;
phi_f2 = prop->unk4[arg2] - (&marker->propPtr->x)[arg2] - marker->unk38[arg2];
phi_v0 =(prop->isActorProp) ? prop->actorProp.marker : NULL;
phi_f2 = prop->position[arg2] - (&marker->propPtr->position_x)[arg2] - marker->unk38[arg2];
if (phi_v0 != NULL) {
phi_f2 += phi_v0->unk38[arg2];
}
@@ -2069,7 +2104,7 @@ f32 func_8033229C(ActorMarker *marker) {
ActorProp *prop;
prop = marker->propPtr;
if (prop->is_3d) {
if (prop->isModelProp) {
return func_803320BC(prop, func_80331F54);
}
else{
@@ -2093,27 +2128,27 @@ Prop *func_803322F0(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *ar
if (marker->collidable) {
phi_s1 = &cube->prop2Ptr[(*arg4)++];
for(phi_s3 = phi_s3; phi_s3 != 0; phi_s3--){
if (phi_s1->unk8_4) {
if( phi_s1->is_actor && (!phi_s1->actorProp.marker->unk3E_0 || !marker_getActor(phi_s1->actorProp.marker)->despawn_flag)){
if (phi_s1->isNotFeatherEggOrNote) {
if( phi_s1->isActorProp && (!phi_s1->actorProp.marker->unk3E_0 || !marker_getActor(phi_s1->actorProp.marker)->despawn_flag)){
if (phi_s1->actorProp.marker->collidable && (marker != phi_s1->actorProp.marker)) {
if( (phi_s1->actorProp.marker->modelId)
&& (func_803327A8(phi_s1->actorProp.marker->modelId) & arg3)
) {
if( phi_s1->actorProp.is_3d
if( phi_s1->actorProp.isModelProp
&& (phi_s1->actorProp.marker->unk18 != NULL)
&& (phi_s1->actorProp.marker->unk18->unkC != NULL)
) {
func_803320BC(&phi_s1->actorProp, &func_80331F54);
sp68[0] = (f32) (marker->unk38[0] + marker->propPtr->x);
sp68[1] = (f32) (marker->unk38[1] + marker->propPtr->y);
sp68[2] = (f32) (marker->unk38[2] + marker->propPtr->z);
sp68[0] = (f32) (marker->unk38[0] + marker->propPtr->position_x);
sp68[1] = (f32) (marker->unk38[1] + marker->propPtr->position_y);
sp68[2] = (f32) (marker->unk38[2] + marker->propPtr->position_z);
if ((phi_s1->actorProp.marker->unk40_31 = phi_s1->actorProp.marker->unk18->unkC(phi_s1->actorProp.marker, sp68, arg2, sp74, 0)) != 0) {
return phi_s1;
}
} else{
phi_f24 = func_80332050(phi_s1, marker, 0);
phi_f22 = func_80332050(phi_s1, marker, 2);
if (phi_s1->actorProp.is_3d) {
if (phi_s1->actorProp.isModelProp) {
phi_f20 = func_80332050(phi_s1, marker, 1);
phi_f2 = func_803320BC(&phi_s1->actorProp, func_80331F54);
} else {
@@ -2128,8 +2163,8 @@ Prop *func_803322F0(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *ar
}
}
}
else if (phi_s1->is_3d) {//ModelProp
if (func_803327A8(phi_s1->modelProp.model_index + 0x2D1) & arg3) {
else if (phi_s1->isModelProp) {//ModelProp
if (func_803327A8(phi_s1->modelProp.modelId + MODEL_ASSET_OFFSET) & arg3) {
phi_f24 = func_80332050(phi_s1, marker, 0);
phi_f20 = func_80332050(phi_s1, marker, 1) + func_80332220(phi_s1, &func_80331F1C);
phi_f22 = func_80332050(phi_s1, marker, 2);
@@ -2140,7 +2175,7 @@ Prop *func_803322F0(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *ar
}
}
else{
if (func_803327A8(phi_s1->spriteProp.sprite_index + 0x572) & arg3) {
if (func_803327A8(phi_s1->spriteProp.spriteId + SPRITE_ASSET_OFFSET) & arg3) {
phi_f24 = func_80332050(phi_s1, marker, 0);\
phi_f20 = func_80332050(phi_s1, marker, 1) + func_80332220(phi_s1, &func_80331E34);\
phi_f22 = func_80332050(phi_s1, marker, 2);
+3 -3
View File
@@ -553,17 +553,17 @@ void func_8033443C(NodeProp *arg0, ActorMarker *arg1){}
void func_80334448(NodeProp *arg0, ActorMarker *arg1) {
s32 global_timer_time;
switch(codeA5BC0_getNodePropBit6(arg0)) {
switch(codeA5BC0_getNodePropCategory(arg0)) {
case 3: // warp (L80334480)
global_timer_time = globalTimer_getTime();
if ((codeA5BC0_getNodePropUnkC(arg0) + 1) != global_timer_time) {
((CodeAD110Callback) sWarpFunctions[codeA5BC0_getNodePropUnk8(arg0)])(arg0, arg1);
((CodeAD110Callback) sWarpFunctions[codeA5BC0_getNodePropActorId(arg0)])(arg0, arg1);
}
codeA5BC0_setNodePropUnkC(arg0, global_timer_time);
break;
case 4: // radius trigger like camera (L803344E0)
sRadiusTriggers[codeA5BC0_getNodePropUnk8(arg0)](arg0, arg1);
sRadiusTriggers[codeA5BC0_getNodePropActorId(arg0)](arg0, arg1);
break;
case 0: //L80334508
+26 -26
View File
@@ -4,7 +4,7 @@
#include "variables.h"
void func_803382D8(s32 arg0);
void func_803382E4(s32 arg0);
void codeAEDA0_setSpriteDrawMode(s32 arg0);
void spriteRender_set1Primative(bool boolean);
void func_803382FC(s32 arg0);
void func_80338308(s32 arg0, s32 arg1);
@@ -55,9 +55,9 @@ u8 D_80370338[4] = {1, 0, 0, 0};
u8 D_8037033C = 0;
/* .bss */
s32 D_80383610;
s32 D_80383614;
s32 D_80383618;
s32 sPrimColorR;
s32 sPrimColorG;
s32 sPrimColorB;
s32 D_8038361C;
s32 D_80383620;
s32 D_80383624;
@@ -75,7 +75,7 @@ void func_803380F8(Gfx **gfx, Mtx **mtx, f32 arg2[3]);
void func_803381B4(Gfx **gfx, Mtx **mtx, f32 arg2[3]);
/* .code */
void func_80335D30(Gfx **gfx){
void codeAEDA0_drawSprite(Gfx **gfx){
gDPPipeSync((*gfx)++);
if (D_80370338[0] == 0) {
gDPSetColorDither((*gfx)++, G_CD_DISABLE);
@@ -86,26 +86,26 @@ void func_80335D30(Gfx **gfx){
case 15:
gSPDisplayList((*gfx)++, D_803702C0);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, 0xFF);
return;
case 12:
gSPDisplayList((*gfx)++, D_80370290);
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, 0xFF);
return;
case 10:
gSPDisplayList((*gfx)++, D_80370260);
gDPSetCombineLERP((*gfx)++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, D_8038363C);
gDPSetEnvColor((*gfx)++, D_80383620, D_80383624, D_80383628, 0xFF);
return;
case 16:
gSPDisplayList((*gfx)++, D_80370290);
gDPSetCombineLERP((*gfx)++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, D_8038363C);
gDPSetEnvColor((*gfx)++, D_80383620, D_80383624, D_80383628, 0xFF);
return;
@@ -118,37 +118,37 @@ void func_80335D30(Gfx **gfx){
gSPDisplayList((*gfx)++, D_80370260);
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
}
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, D_8038363C);
return;
case 7:
if (D_8038361C != 0) {
gSPDisplayList((*gfx)++, D_80370308);
gDPSetCombineLERP((*gfx)++, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, PRIMITIVE, COMBINED, PRIMITIVE_ALPHA, COMBINED, 0, 0, 0, COMBINED);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038361C);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, D_8038361C);
} else {
gSPDisplayList((*gfx)++, D_80370260);
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, 0xFF);
}
return;
case 6:
gSPDisplayList((*gfx)++, D_80370260);
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, D_8038363C);
return;
case 13:
gSPDisplayList((*gfx)++, D_80370290);
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, D_8038363C);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, D_8038363C);
return;
case 5:
gSPDisplayList((*gfx)++, D_80370260);
gDPSetCombineMode((*gfx)++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor((*gfx)++, 0, 0, D_80383610, D_80383614, D_80383618, 0xFF);
gDPSetPrimColor((*gfx)++, 0, 0, sPrimColorR, sPrimColorG, sPrimColorB, 0xFF);
return;
case 9:
@@ -195,7 +195,7 @@ void func_80335D30(Gfx **gfx){
}
}
void func_8033687C( Gfx **gfx )
void codeAEDA0_postDrawSprite( Gfx **gfx )
{
/* Turn off texturing */
gDPPipeSync((*gfx)++);
@@ -251,7 +251,7 @@ void spriteRender_drawWithSegment(Gfx **gfx, Vtx **vtx, BKSprite *sprite, u32 fr
} else if (sprite->type & SPRITE_TYPE_RGBA32){
pixel_size_nibbles = 8;
}
func_80335D30(gfx);
codeAEDA0_drawSprite(gfx);
//set to 1Prim if using
if(D_80383638 || (sprite->type & SPRITE_TYPE_CI8)){
@@ -372,7 +372,7 @@ void spriteRender_drawWithSegment(Gfx **gfx, Vtx **vtx, BKSprite *sprite, u32 fr
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
}
if(sp1B4);
func_8033687C(gfx);
codeAEDA0_postDrawSprite(gfx);
}
void func_80337B68(Gfx **gfx, Vtx **vtx, Struct84s *texture_list, s32 texture_index) {
@@ -388,7 +388,7 @@ void func_80337B68(Gfx **gfx, Vtx **vtx, Struct84s *texture_list, s32 texture_in
s32 i_vtx0;
s32 size;
func_80335D30(gfx);
codeAEDA0_drawSprite(gfx);
txtr_ptr = func_8033EFB0(texture_list, texture_index);
start_vtx = *vtx;
temp_lo = (s32) D_80383644 / 3;
@@ -422,7 +422,7 @@ void func_80337B68(Gfx **gfx, Vtx **vtx, Struct84s *texture_list, s32 texture_in
tmem += txtr_ptr->w * 0x1A;
i_vtx0 += 4;
}
func_8033687C(gfx);
codeAEDA0_postDrawSprite(gfx);
}
void func_80338048(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 arg3[3], Struct84s *arg4, s32 arg5) {
@@ -467,7 +467,7 @@ void func_803381B4(Gfx **gfx, Mtx **mtx, f32 arg2[3]) {
void func_80338270(){
func_803382D8(0xFF);
func_803382E4(0);
codeAEDA0_setSpriteDrawMode(0);
spriteRender_set1Primative(0);
func_803382FC(0xFF);
func_80338308(100, 100);
@@ -485,7 +485,7 @@ void func_803382D8(s32 arg0){
D_80383630 = arg0;
}
void func_803382E4(s32 arg0){
void codeAEDA0_setSpriteDrawMode(s32 arg0){
D_80383634 = arg0;
}
@@ -507,10 +507,10 @@ void func_8033831C(s32 *arg0, s32 *arg1){
*arg1 = D_80383644;
}
void func_80338338(s32 r, s32 g, s32 b){
D_80383610 = r;
D_80383614 = g;
D_80383618 = b;
void codeAEDA0_setPrimaryColorRGB(s32 rgb_red, s32 rgb_green, s32 rgb_blue){
sPrimColorR = rgb_red;
sPrimColorG = rgb_green;
sPrimColorB = rgb_blue;
}
void func_80338354(s32 arg0){
+10 -11
View File
@@ -234,18 +234,17 @@ void func_8033B2A4(s32 arg0) {
assetCacheLength += 1;
}
bool func_8033B338(void **sprite_ptr, BKSpriteDisplayData **arg1)
bool codeB3A80_releaseSprite(BKSprite **sprite_ptr, BKSpriteDisplayData **sprite_gfx_ptr)
{
void *new_var;
BKSprite *sprite;
if ((*sprite_ptr) == NULL)
return 0;
return FALSE;
new_var = *sprite_ptr;
assetcache_release(new_var);
*sprite_ptr = 0;
*arg1 = 0;
return 1;
sprite = *sprite_ptr;
assetcache_release(sprite);
*sprite_ptr = NULL;
*sprite_gfx_ptr = NULL;
return TRUE;
}
bool func_8033B388(BKSprite **sprite_ptr, BKSpriteDisplayData **arg1){
@@ -333,11 +332,11 @@ bool asset_isCompressed(enum asset_e arg0){ //asset_compressed?
}
//returns raw sprite(as saved in ROM) and points arg1 to a parsed sprite(?)
BKSprite *func_8033B6C4(enum asset_e sprite_id, BKSpriteDisplayData **arg1){
BKSprite *codeB3A80_getSprite(enum asset_e sprite_id, BKSpriteDisplayData **arg1){
BKSprite *s0;
s0 = assetcache_get(sprite_id);
if(D_80383CD4[assetCacheCurrentIndex] == NULL){
func_803382E4(-1);
codeAEDA0_setSpriteDrawMode(-1);
func_80338308(sprite_getUnk8(s0), sprite_getUnkA(s0));
D_80383CD4[assetCacheCurrentIndex] = func_80344A1C(s0);
}
+245 -216
View File
@@ -2,13 +2,28 @@
#include "functions.h"
#include "variables.h"
//Struct5Cs = u16 packed bitwise as (aaaa bbcc cdde eeff)
//CollisionParams = u16 packed bitwise as (aaaa bbcc cdde eeff)
typedef struct{
u16 unk0;
u16 unk2; //Struct5Cs
u16 unk4[11]; //Struct5Cs
} Struct_core2_B62B0_0;
u16 markerId;
u16 collisionUnion;
union{
u16 collisionTypes[11];
struct{
u16 activeClawSwipe;
u16 activeRoll;
u16 jumpOnTop;
u16 activeRatATat;
u16 activeBeakBarge;
u16 activeBeakBuster;
u16 activeBeakBomb;
u16 activeEggFiring;
u16 activeWonderwing;
u16 activeCrocBite;
u16 otherContact;
};
};
} CollisionTable;
typedef struct{
s32 (*unk0)(ActorMarker *, ActorMarker *);
@@ -16,194 +31,197 @@ typedef struct{
} Struct_core2_B62B0_1;
/* .data */
Struct_core2_B62B0_0 D_80370AC0[0xBB] = {
{MARKER_12A_TOPPER_THE_CARROT_A, 0x0000, {0x0904, 0x8504, 0x8504, 0x0000, 0x8504, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7484}},
{MARKER_129_BAWL_THE_ONION_A, 0x0000, {0x0504, 0x0984, 0x8504, 0x0000, 0x8504, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7484}},
{MARKER_128_COLLYWOBBLE_THE_CAULIFLOWER_A, 0x0000, {0x0000, 0x0000, 0x8404, 0x0984, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7404}},
{MARKER_135_QUARRIE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_1E6_TOPPER_THE_CARROT_B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_1E7_BAWL_THE_ONION_B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_1E8_COLLYWOBBLE_THE_CAULIFLOWER_B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_1EA_GRUNTLING_RED, 0x0001, {0x0A08, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0984, 0x0A04, 0x0984, 0x2020}},
{MARKER_295_GRUNTLING_BLUE, 0x0001, {0x0A0C, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_1F1_GRUNTLING_BLACK, 0x0001, {0x0A10, 0x898C, 0x8100, 0x8988, 0x8A08, 0x8A08, 0x0A84, 0x098C, 0x0A04, 0x0000, 0x2020}},
{0x1E0, 0x0000, {0x7000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0004, 0x8000, 0x0000, 0x7000}},
{0x005, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0984, 0x0A04, 0x0000, 0x1020}},
{0x004, 0x0001, {0x0A88, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x1020}},
{0x003, 0x0000, {0x0914, 0x990C, 0x2020, 0x8908, 0x8908, 0x8908, 0x0A04, 0x0914, 0x0904, 0x0000, 0x4020}},
{0x29E, 0x0000, {0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0xA000, 0x0004, 0x8000, 0x0000, 0x8000}},
{MARKER_7_CONGA, 0x0000, {0x0000, 0x0000, 0x3020, 0x9000, 0x0000, 0x0000, 0x0000, 0x0804, 0x9000, 0x0000, 0x3020}},
{MARKER_13_SNIPPET, 0x0002, {0x0504, 0x7584, 0x8100, 0x7584, 0x7604, 0x0A04, 0x0A84, 0x0504, 0x0A04, 0x0000, 0x1020}},
{0x16B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0904, 0x0A04, 0x0000, 0x1020}},
{MARKER_DD_BLACK_SNIPPET, 0x0002, {0x060C, 0x7588, 0x8100, 0x7588, 0x7608, 0x8604, 0x0A84, 0x050C, 0x0A04, 0x0000, 0x1020}},
{0x0DE, 0x0001, {0x0908, 0x0988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x090C, 0x0A04, 0x0000, 0x1020}},
{0x015, 0x0001, {0x0A88, 0x7988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x1424}},
{0x065, 0x0804, {0x5040, 0x5040, 0x5040, 0x5040, 0x5040, 0x5040, 0x5040, 0x090E, 0x0804, 0x0000, 0x5844}},
{0x014, 0x0003, {0x3020, 0x3020, 0x3020, 0x9080, 0x9080, 0x9080, 0x0A84, 0x0914, 0x0904, 0x0000, 0x3020}},
{MARKER_A5_NIPPER, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x5020}},
{0x16C, 0x0000, {0x0000, 0x0000, 0x0000, 0xB804, 0x0000, 0x0000, 0x0000, 0x0404, 0xB804, 0x0000, 0x5020}},
{MARKER_A4_LOCKUP_SLOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{MARKER_F6_LOCKUP_MEDIUM, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{MARKER_F7_LOCKUP_FAST, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{0x0029, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0808, 0x0804, 0x0000, 0x3444}},
{0x01CF, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0808, 0x0804, 0x0000, 0x1424}},
{0x01A6, 0x0000, {0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x0000, 0x0000, 0x3020, 0x3020}},
{MARKER_1A7_CLANKER_WHIPCRACK, 0x0804, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3020}},
{MARKER_69_CHUMP_FISH, 0x0001, {0x2020, 0x2020, 0x2020, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_173_CHUMP_FISH_2, 0x0001, {0x2020, 0x2020, 0x2020, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x4020}},
{MARKER_C1_FLIBBIT_RED, 0x0000, {0x0A09, 0x0985, 0x8100, 0x0985, 0x0A05, 0x0A05, 0x0000, 0x0989, 0x0A05, 0x0986, 0x2020}},
{MARKER_C5_FLIBBIT_YELLOW, 0x0000, {0x0A0D, 0x8989, 0x8100, 0x8989, 0x7A09, 0x7A09, 0x0000, 0x098D, 0x0A05, 0x0986, 0x2020}},
{MARKER_C2_BUZZBOMB, 0x0000, {0x0805, 0x0805, 0x8000, 0x0805, 0x0805, 0x0805, 0x0000, 0x0805, 0x0805, 0x0806, 0x3020}},
{MARKER_B1_SIR_SLUSH, 0x0000, {0x7000, 0x8000, 0x8000, 0x8000, 0x9000, 0x9000, 0x9000, 0x0004, 0x8000, 0x0000, 0x7000}},
{0x0287, 0x0001, {0x7000, 0x8000, 0x8000, 0x8000, 0x9000, 0x9000, 0x8804, 0x0004, 0x8000, 0x0000, 0x7000}},
{MARKER_205_TWINKLY_MUNCHER, 0x0000, {0x0000, 0x0000, 0x0000, 0x0404, 0x0404, 0x0404, 0x0000, 0x0408, 0x0404, 0x0000, 0x0000}},
{MARKER_245_XMAS_TREE_EGG_TOLL, 0x0000, {0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x2004, 0x3004, 0x0000, 0x0000, 0x3004, 0x3004}},
{MARKER_250_ICECUBE_A, 0x0000, {0x0A90, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0910, 0x0A04, 0x0984, 0x3104}},
{MARKER_25F_ICECUBE_B, 0x0001, {0x0A88, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0908, 0x0A04, 0x0984, 0x3104}},
{0x00AD, 0x0001, {0x0A10, 0x998C, 0x0020, 0x9988, 0x8A08, 0x0A04, 0x0A84, 0x0914, 0x0A04, 0x0000, 0x5124}},
{MARKER_253_SCARAB_BEETLE, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0984, 0x0A04, 0x0000, 0x3020}},
{MARKER_219_MUMMUM, 0x0001, {0x0588, 0x7584, 0x8100, 0x7584, 0x7604, 0x7604, 0x0684, 0x0588, 0x0A04, 0x0000, 0x2020}},
{MARKER_298_MUMMUM_BALL, 0x0000, {0x7000, 0x8000, 0x7000, 0x8000, 0x9000, 0x9000, 0xB000, 0x0004, 0x0A04, 0x0000, 0x2020}},
{MARKER_218_LIMBO, 0x0001, {0x0588, 0x7584, 0x8100, 0x7584, 0x7604, 0x7604, 0x0684, 0x050C, 0x0A04, 0x0000, 0x2020}},
{MARKER_99_TEEHEE, 0x0001, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}},
{MARKER_296_TEEHEE_PURPLE, 0x0000, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}},
{MARKER_96_GRAVESTONE, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}},
{MARKER_297_GIANT_GRAVESTONE, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}},
{MARKER_127_BAT, 0x0001, {0x0804, 0x0804, 0x8100, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x1424}},
{MARKER_254_PORTRAIT_CHOMPA_A, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x3444}},
{MARKER_1D1_PORTRAIT_CHOMPA_B, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x1424}},
{MARKER_21A_SEAMAN_GRUBLIN, 0x0001, {0x0A08, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_C9_FLOTSAM, 0x0001, {0x0808, 0x8808, 0x8000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0808, 0x0804, 0x0000, 0x3424}},
{MARKER_1B7_BOOM_BOX, 0x0000, {0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x098C, 0x0404, 0x0804, 0x5000}},
{MARKER_2E_GRIMLET, 0x0004, {0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x0000, 0x0000, 0x8000, 0x3000, 0x3004}},
{MARKER_1A1_BOSS_BOOM_BOX_LARGEST, 0x0000, {0x8020, 0x8884, 0x8020, 0x8884, 0x9884, 0x9884, 0x0804, 0x0904, 0x0884, 0x0000, 0x4020}},
{MARKER_1A2_BOSS_BOOM_BOX_LARGE, 0x0000, {0x8020, 0x8904, 0x8020, 0x8904, 0x9904, 0x9904, 0x0804, 0x0984, 0x0904, 0x0000, 0x4020}},
{MARKER_1A3_BOSS_BOOM_BOX_MEDIUM, 0x0000, {0x9020, 0x9984, 0x9020, 0x9984, 0x9984, 0x9984, 0x0804, 0x0A04, 0x0984, 0x0000, 0x3020}},
{MARKER_1A4_BOSS_BOOM_BOX_SMALL, 0x0000, {0x9020, 0x9A04, 0x9020, 0x9A04, 0x9A04, 0x9A04, 0x0804, 0x0A84, 0x0A04, 0x0000, 0x3020}},
{MARKER_185_MODEL_RUSTY_BUCKET_REAR_PROPELLER, 0x5060, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5060}},
{MARKER_191_ENGINE_ROOM_PROPELLOR_1, 0x0000, {0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0000, 0x8000, 0x0000, 0x2000}},
{MARKER_192_ENGINE_ROOM_PROPELLOR_2, 0x0000, {0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0000, 0x8000, 0x0000, 0x2000}},
{MARKER_193_ENGINE_ROOM_PROPELLOR_3, 0x0000, {0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0000, 0x8000, 0x0000, 0x2000}},
{MARKER_1E2_GRUBLIN_HOOD, 0x0001, {0x0A08, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_1C5_WHIPCRACK, 0x0001, {0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x080C, 0x0804, 0x0000, 0x3020}},
{MARKER_1F9_SNARE_BEAR, 0x0000, {0x2040, 0x2040, 0x2040, 0x2040, 0x2040, 0x2040, 0x2040, 0x0000, 0x0000, 0x0000, 0x2040}},
{MARKER_1B2_CLUCKER_A, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0810, 0x0804, 0x0000, 0x3444}},
{MARKER_1D0_CLUCKER_B, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0810, 0x0804, 0x0000, 0x1424}},
{MARKER_1B4_EEYRIE_BABY, 0x8000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000}},
{0x000E, 0x0001, {0x3000, 0x7504, 0x7080, 0x7504, 0x7584, 0x0804, 0x0804, 0x0488, 0x0804, 0x0000, 0x1020}},
{0x01AC, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_256_FIRE_FX, 0x0000, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x2020, 0x2020}},
{MARKER_C_ORANGE_PROJECTILE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2424}},
{MARKER_DB_BURIED_TREASURE, 0x0000, {0x7000, 0x7000, 0x7000, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x7000}},
{MARKER_28_CLANKER_SAWBLADE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x2020}},
{MARKER_4A_CC_KEY, 0x0404, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_6E_PINK_EGG_LARGEST, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D7_PINK_EGG_MEDIUM, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D9_PINK_EGG_SMALLEST, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D6_PINK_EGG_LARGE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D8_PINK_EGG_SMALL, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x006D, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x019B, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x019C, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x019D, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x019E, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x019F, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x01A0, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_B9_FP_SNOWMAN_BUTTON,0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_124_BOGGY_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0097, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}},
{0x0125, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{0x0126, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_1FF_RED_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_20B_WOZZA, 0x7000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x7000}},
{MARKER_20F_WOZZA_IN_CAVE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}},
{0x0204, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0207, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0404}},
{0x0206, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000}},
{MARKER_BC_GOBI_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{0x00BE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x0000}},
{MARKER_BF_GOBI_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_C3_GOBI_3, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_252_LOGGO, 0x0000, {0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0000, 0x0004, 0x0004, 0x0004}},
{MARKER_48_NAPPER, 0x0004, {0x7000, 0x8000, 0x8000, 0x8000, 0x9000, 0x9000, 0xB000, 0x0000, 0x8000, 0x0000, 0x8004}},
{0x0132, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0130, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x012E, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x012C, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x01BF, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x7404, 0x7404, 0x0000, 0x0414, 0x7404, 0x0000, 0x0000}},
{0x01B3, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x01B0, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0814, 0x0000, 0x0000, 0x0000}},
{MARKER_1AE_ZUBBA, 0x0000, {0x3004, 0x3004, 0x3004, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x3004}},
{0x0050, 0x0003, {0x0804, 0x0804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000}},
{0x009A, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x009E, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0804, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x009D, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x00E7, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x009C, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_EA_LIGHTHOUSE_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x022D, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x022E, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0235, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0804, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0163, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0239, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0236, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0237, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0238, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0263, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x017D, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x009F, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x00A0, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x00FF, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x0107, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x0108, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0109, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x080C, 0x0804, 0x0000, 0x0000}},
{0x0118, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x0119, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x011A, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x011E, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x8804, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x011F, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x7804, 0x7804, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{0x0121, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x8804, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0123, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x01F2, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x01F3, 0x0000, {0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{0x0224, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xA000, 0x080C, 0x0000, 0x0000, 0x0000}},
{0x0225, 0x0000, {0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0xA000, 0x080C, 0x8000, 0x0000, 0x0000}},
{0x00A2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x8804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x01A9, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0804, 0x0000, 0x080C, 0x0000, 0x0000, 0x0000}},
{0x0195, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0196, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0197, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x002F, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0194, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0186, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0183, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0184, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0164, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x0165, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{0x00E4, 0x0000, {0x8004, 0x8004, 0x8004, 0x8404, 0x8404, 0x8004, 0x8004, 0x0000, 0x8004, 0x8004, 0x8004}},
{0x00E5, 0x0000, {0x8004, 0x8004, 0x8004, 0x8404, 0x8404, 0x8004, 0x8004, 0x0000, 0x8004, 0x8004, 0x8004}},
{0x00E6, 0x0000, {0x8004, 0x8004, 0x8004, 0x8404, 0x8404, 0x8004, 0x8004, 0x0000, 0x8004, 0x8004, 0x8004}},
{0x00B2, 0x0001, {0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{0x01A5, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001}},
{0x01A6, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3020}},
{0x016D, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8004}},
{0x016E, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8004}},
{0x016F, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8004}},
{0x0170, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7004}},
{0x0171, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7004}},
{0x0172, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7004}},
{0x025C, 0x0000, {0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x0000, 0x0804, 0x3804, 0x3804}},
{0x025D, 0x0000, {0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x0000, 0x0804, 0x3804, 0x3804}},
{0x027A, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000}},
{0x027F, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000}},
{0x025E, 0x0000, {0x4000, 0x4000, 0x4000, 0xA604, 0x4000, 0x4000, 0x4000, 0x0584, 0xA000, 0x0000, 0x4000}},
{0x0260, 0x0000, {0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x0000, 0xA000, 0x0000, 0x5000}},
{0x0281, 0x0000, {0x4080, 0x4080, 0x4080, 0xA604, 0x4080, 0x4080, 0x4080, 0x0584, 0xA200, 0x0000, 0x4080}},
{0x0282, 0x0000, {0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0xA604, 0xA604, 0x0000, 0xA200, 0x0000, 0x4080}},
{0x0283, 0x0000, {0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0x0000, 0xA200, 0x0000, 0x4080}},
{0x0284, 0x0000, {0x5404, 0x5404, 0x5404, 0x5404, 0x5404, 0x5404, 0x5404, 0x0000, 0xB404, 0x5404, 0x5404}},
#define COLLISION_TABLE_SIZE 187
CollisionTable collision_table[COLLISION_TABLE_SIZE] = {
{MARKER_12A_TOPPER_THE_CARROT_A, 0x0000, {0x0904, 0x8504, 0x8504, 0x0000, 0x8504, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7484}},
{MARKER_129_BAWL_THE_ONION_A, 0x0000, {0x0504, 0x0984, 0x8504, 0x0000, 0x8504, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7484}},
{MARKER_128_COLLYWOBBLE_THE_CAULIFLOWER_A, 0x0000, {0x0000, 0x0000, 0x8404, 0x0984, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7404}},
{MARKER_135_QUARRIE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_1E6_TOPPER_THE_CARROT_B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_1E7_BAWL_THE_ONION_B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_1E8_COLLYWOBBLE_THE_CAULIFLOWER_B, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_1EA_GRUNTLING_RED, 0x0001, {0x0A08, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0984, 0x0A04, 0x0984, 0x2020}},
{MARKER_295_GRUNTLING_BLUE, 0x0001, {0x0A0C, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_1F1_GRUNTLING_BLACK, 0x0001, {0x0A10, 0x898C, 0x8100, 0x8988, 0x8A08, 0x8A08, 0x0A84, 0x098C, 0x0A04, 0x0000, 0x2020}},
{MARKER_1E0_BRENTILDA, 0x0000, {0x7000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0004, 0x8000, 0x0000, 0x7000}},
{MARKER_5_GRUBLIN, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0984, 0x0A04, 0x0000, 0x1020}},
{MARKER_4_TERMITE, 0x0001, {0x0A88, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x1020}},
{MARKER_3_BIGBUTT, 0x0000, {0x0914, 0x990C, 0x2020, 0x8908, 0x8908, 0x8908, 0x0A04, 0x0914, 0x0904, 0x0000, 0x4020}},
{MARKER_29E_BIGBUTT_KNOCKED_DOWN, 0x0000, {0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0xA000, 0x0004, 0x8000, 0x0000, 0x8000}},
{MARKER_7_CONGA, 0x0000, {0x0000, 0x0000, 0x3020, 0x9000, 0x0000, 0x0000, 0x0000, 0x0804, 0x9000, 0x0000, 0x3020}},
{MARKER_13_SNIPPET, 0x0002, {0x0504, 0x7584, 0x8100, 0x7584, 0x7604, 0x0A04, 0x0A84, 0x0504, 0x0A04, 0x0000, 0x1020}},
{MARKER_16B_SNIPPET_UPSIDEDOWN, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0904, 0x0A04, 0x0000, 0x1020}},
{MARKER_DD_BLACK_SNIPPET, 0x0002, {0x060C, 0x7588, 0x8100, 0x7588, 0x7608, 0x8604, 0x0A84, 0x050C, 0x0A04, 0x0000, 0x1020}},
{MARKER_DE_BLACK_SNIPPET_UPSIDEDOWN, 0x0001, {0x0908, 0x0988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x090C, 0x0A04, 0x0000, 0x1020}},
{MARKER_15_CLAM, 0x0001, {0x0A88, 0x7988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x1424}},
{MARKER_65_SHRAPNEL, 0x0804, {0x5040, 0x5040, 0x5040, 0x5040, 0x5040, 0x5040, 0x5040, 0x090E, 0x0804, 0x0000, 0x5844}},
{MARKER_14_SNACKER, 0x0003, {0x3020, 0x3020, 0x3020, 0x9080, 0x9080, 0x9080, 0x0A84, 0x0914, 0x0904, 0x0000, 0x3020}},
{MARKER_A5_NIPPER, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x5020}},
{MARKER_16C_NIPPER, 0x0000, {0x0000, 0x0000, 0x0000, 0xB804, 0x0000, 0x0000, 0x0000, 0x0404, 0xB804, 0x0000, 0x5020}},
{MARKER_A4_LOCKUP_SLOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{MARKER_F6_LOCKUP_MEDIUM, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{MARKER_F7_LOCKUP_FAST, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{MARKER_29_GRILLE_CHOMPA, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0808, 0x0804, 0x0000, 0x3444}},
{MARKER_1CF_GRILLE_CHOMPA_ATTACKING, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0808, 0x0804, 0x0000, 0x1424}},
{MARKER_1A6_BETA_VENT, 0x0000, {0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x0000, 0x0000, 0x3020, 0x3020}},
{MARKER_1A7_CLANKER_WHIPCRACK, 0x0804, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3020}},
{MARKER_69_CHUMP_FISH, 0x0001, {0x2020, 0x2020, 0x2020, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_173_CHUMP_FISH_2, 0x0001, {0x2020, 0x2020, 0x2020, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x4020}},
{MARKER_C1_FLIBBIT_RED, 0x0000, {0x0A09, 0x0985, 0x8100, 0x0985, 0x0A05, 0x0A05, 0x0000, 0x0989, 0x0A05, 0x0986, 0x2020}},
{MARKER_C5_FLIBBIT_YELLOW, 0x0000, {0x0A0D, 0x8989, 0x8100, 0x8989, 0x7A09, 0x7A09, 0x0000, 0x098D, 0x0A05, 0x0986, 0x2020}},
{MARKER_C2_BUZZBOMB, 0x0000, {0x0805, 0x0805, 0x8000, 0x0805, 0x0805, 0x0805, 0x0000, 0x0805, 0x0805, 0x0806, 0x3020}},
{MARKER_B1_SIR_SLUSH, 0x0000, {0x7000, 0x8000, 0x8000, 0x8000, 0x9000, 0x9000, 0x9000, 0x0004, 0x8000, 0x0000, 0x7000}},
{0x0287, 0x0001, {0x7000, 0x8000, 0x8000, 0x8000, 0x9000, 0x9000, 0x8804, 0x0004, 0x8000, 0x0000, 0x7000}}, // snowman.c
{MARKER_205_TWINKLY_MUNCHER, 0x0000, {0x0000, 0x0000, 0x0000, 0x0404, 0x0404, 0x0404, 0x0000, 0x0408, 0x0404, 0x0000, 0x0000}},
{MARKER_245_XMAS_TREE_EGG_TOLL, 0x0000, {0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x2004, 0x3004, 0x0000, 0x0000, 0x3004, 0x3004}},
{MARKER_250_ICECUBE_A, 0x0000, {0x0A90, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0910, 0x0A04, 0x0984, 0x3104}},
{MARKER_25F_ICECUBE_B, 0x0001, {0x0A88, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0908, 0x0A04, 0x0984, 0x3104}},
{0x00AD, 0x0001, {0x0A10, 0x998C, 0x0020, 0x9988, 0x8A08, 0x0A04, 0x0A84, 0x0914, 0x0A04, 0x0000, 0x5124}},
{MARKER_253_SCARAB_BEETLE, 0x0001, {0x0904, 0x0984, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0984, 0x0A04, 0x0000, 0x3020}},
{MARKER_219_MUMMUM, 0x0001, {0x0588, 0x7584, 0x8100, 0x7584, 0x7604, 0x7604, 0x0684, 0x0588, 0x0A04, 0x0000, 0x2020}},
{MARKER_298_MUMMUM_BALL, 0x0000, {0x7000, 0x8000, 0x7000, 0x8000, 0x9000, 0x9000, 0xB000, 0x0004, 0x0A04, 0x0000, 0x2020}},
{MARKER_218_LIMBO, 0x0001, {0x0588, 0x7584, 0x8100, 0x7584, 0x7604, 0x7604, 0x0684, 0x050C, 0x0A04, 0x0000, 0x2020}},
{MARKER_99_TEEHEE, 0x0001, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}},
{MARKER_296_TEEHEE_PURPLE, 0x0000, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x0804, 0x0000, 0x2424}},
{MARKER_96_GRAVESTONE, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}},
{MARKER_297_GIANT_GRAVESTONE, 0x0001, {0x0A10, 0x890C, 0x8100, 0x8908, 0x8988, 0x8988, 0x0A84, 0x0914, 0x0984, 0x0000, 0x3024}},
{MARKER_127_BAT, 0x0001, {0x0804, 0x0804, 0x8100, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x1424}},
{MARKER_254_PORTRAIT_CHOMPA_A, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x3444}},
{MARKER_1D1_PORTRAIT_CHOMPA_B, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x1424}},
{MARKER_21A_SEAMAN_GRUBLIN, 0x0001, {0x0A08, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0000, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_C9_FLOTSAM, 0x0001, {0x0808, 0x8808, 0x8000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0808, 0x0804, 0x0000, 0x3424}},
{MARKER_1B7_BOOM_BOX, 0x0000, {0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x098C, 0x0404, 0x0804, 0x5000}},
{MARKER_2E_GRIMLET, 0x0004, {0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x0000, 0x0000, 0x8000, 0x3000, 0x3004}},
{MARKER_1A1_BOSS_BOOM_BOX_LARGEST, 0x0000, {0x8020, 0x8884, 0x8020, 0x8884, 0x9884, 0x9884, 0x0804, 0x0904, 0x0884, 0x0000, 0x4020}},
{MARKER_1A2_BOSS_BOOM_BOX_LARGE, 0x0000, {0x8020, 0x8904, 0x8020, 0x8904, 0x9904, 0x9904, 0x0804, 0x0984, 0x0904, 0x0000, 0x4020}},
{MARKER_1A3_BOSS_BOOM_BOX_MEDIUM, 0x0000, {0x9020, 0x9984, 0x9020, 0x9984, 0x9984, 0x9984, 0x0804, 0x0A04, 0x0984, 0x0000, 0x3020}},
{MARKER_1A4_BOSS_BOOM_BOX_SMALL, 0x0000, {0x9020, 0x9A04, 0x9020, 0x9A04, 0x9A04, 0x9A04, 0x0804, 0x0A84, 0x0A04, 0x0000, 0x3020}},
{MARKER_185_RBB_REAR_PROPELLER, 0x5060, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5060}},
{MARKER_191_ENGINE_ROOM_PROPELLOR_1, 0x0000, {0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0000, 0x8000, 0x0000, 0x2000}},
{MARKER_192_ENGINE_ROOM_PROPELLOR_2, 0x0000, {0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0000, 0x8000, 0x0000, 0x2000}},
{MARKER_193_ENGINE_ROOM_PROPELLOR_3, 0x0000, {0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x0000, 0x8000, 0x0000, 0x2000}},
{MARKER_1E2_GRUBLIN_HOOD, 0x0001, {0x0A08, 0x8988, 0x8100, 0x0984, 0x0A04, 0x0A04, 0x0A84, 0x0988, 0x0A04, 0x0000, 0x2020}},
{MARKER_1C5_WHIPCRACK, 0x0001, {0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x3020, 0x080C, 0x0804, 0x0000, 0x3020}},
{MARKER_1F9_SNARE_BEAR, 0x0000, {0x2040, 0x2040, 0x2040, 0x2040, 0x2040, 0x2040, 0x2040, 0x0000, 0x0000, 0x0000, 0x2040}},
{MARKER_1B2_CLUCKER_A, 0x0001, {0x0804, 0x0804, 0x2020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0810, 0x0804, 0x0000, 0x3444}},
{MARKER_1D0_CLUCKER_B, 0x0001, {0x0804, 0x0804, 0x1020, 0x0804, 0x0804, 0x0804, 0x0804, 0x0810, 0x0804, 0x0000, 0x1424}},
{MARKER_1B4_EEYRIE_BABY, 0x8000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000}},
{0x000E, 0x0001, {0x3000, 0x7504, 0x7080, 0x7504, 0x7584, 0x0804, 0x0804, 0x0488, 0x0804, 0x0000, 0x1020}},
{MARKER_1AC_ZUBBA_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_256_FIRE_FX, 0x0000, {0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x2020, 0x0000, 0x0000, 0x2020, 0x2020}},
{MARKER_C_ORANGE_PROJECTILE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2424}},
{MARKER_DB_BURIED_TREASURE, 0x0000, {0x7000, 0x7000, 0x7000, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000, 0x7000}},
{MARKER_28_CLANKER_SAWBLADE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x2020}},
{MARKER_4A_CC_KEY, 0x0404, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_6E_PINK_EGG_LARGEST, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D7_PINK_EGG_MEDIUM, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D9_PINK_EGG_SMALLEST, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D6_PINK_EGG_LARGE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_D8_PINK_EGG_SMALL, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_6D_TANKTUP_LEG, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_19B_CHOIR_TURTLE_YELLOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_19C_CHOIR_TURTLE_CYAN, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_19D_CHOIR_TURTLE_BLUE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_19E_CHOIR_TURTLE_RED, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_19F_CHOIR_TURTLE_PINK, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_1A0_CHOIR_TURTLE_PURPLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_B9_FP_SNOWMAN_BUTTON, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_124_BOGGY_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_97_BOGGY_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}},
{MARKER_125_BOGGY_RACE_FLAG, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_126_BOGGY_RACE_FLAG, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_1FD_BLUE_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_1FE_GREEN_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_1FF_RED_PRESENT_COLLECTIBLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_20B_WOZZA, 0x7000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x7000}},
{MARKER_20F_WOZZA_IN_CAVE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000, 0x0000, 0x0000}},
{MARKER_204_TWINKLY_BOX, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_207_XMAS_TREE_STAR, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0404}},
{MARKER_206_XMAS_TREE_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000}},
{MARKER_BC_GOBI_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_BE_GOBI_ROCK, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x0000}},
{MARKER_BF_GOBI_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_C3_GOBI_3, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004}},
{MARKER_252_LOGGO, 0x0000, {0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0000, 0x0004, 0x0004, 0x0004}},
{MARKER_48_NAPPER, 0x0004, {0x7000, 0x8000, 0x8000, 0x8000, 0x9000, 0x9000, 0xB000, 0x0000, 0x8000, 0x0000, 0x8004}},
{MARKER_132_CCW_SPRING_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_130_CCW_SUMMER_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_12E_CCW_AUTUMN_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_12C_CCW_WINTER_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_1BF_GNAWTY_BOULDER, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x7404, 0x7404, 0x0000, 0x0414, 0x7404, 0x0000, 0x0000}},
{MARKER_1B3_EAGLE_EGG, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x9804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_1B0_CCW_BEANSTALK, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0814, 0x0000, 0x0000, 0x0000}},
{MARKER_1AE_ZUBBA, 0x0000, {0x3004, 0x3004, 0x3004, 0x0804, 0x0804, 0x0804, 0x0804, 0x080C, 0x0804, 0x0000, 0x3004}},
{MARKER_50_BEEHIVE, 0x0003, {0x0804, 0x0804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0804, 0x0000}},
{MARKER_9A_1881_BARREL_TOP, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_9E_CELLAR_HATCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0804, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_9D_MANSION_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_E7_DINING_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_9C_SHACK_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_EA_LIGHTHOUSE_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_22D_SHIP_SHADOW_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_22E_SHIP_SUNNY_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_235_CRACKED_SKYLIGHT, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0804, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_163_CRYPT_COFFIN_LID, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_239_CCW_UNKNOWN_NABNUT_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_236_CCW_UNKNOWN_NABNUT_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_237_CCW_AUTUMN_NABNUT_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_238_CCW_WINTER_NABNUT_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0804, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_263_CCW_WHIPCRACK_ROOM_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_17D_IRON_GATE_NO_LOCK, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_9F_CHURCH_GATE_LEFT_LOCK, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_A0_HEDGE_GATE_RIGHT_LOCK_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_FF_HEDGE_GATE_RIGHT_LOCK_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_107_ENGINE_ROOM_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_108_CABIN_CLOSET_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_109_BREAKABLE_BRICK_WALL, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x080C, 0x0804, 0x0000, 0x0000}},
{MARKER_118_GRATE_TO_LEVEL_3_WATER_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_119_GRATE_BETWEEN_MMM_AND_RBB_PUZZLES, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_11A_GRATE_TO_RBB_PUZZLE, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x0000, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_11E_ICE_BALL_TO_CHEATO, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x8804, 0x8804, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_11F_RAREWARE_BOX, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x7804, 0x7804, 0x0000, 0x0808, 0x0804, 0x0000, 0x0000}},
{MARKER_121_GLASS_EYE, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x8804, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_123_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_1F2_WIDE_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_1F3_TALL_WINDOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0804, 0x0804, 0x0000, 0x0000}},
{MARKER_224_BREAKABLE_FLOOR_COBWEB, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xA000, 0x080C, 0x0000, 0x0000, 0x0000}},
{MARKER_225_BREAKABLE_WALL_COBWEB, 0x0000, {0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0xA000, 0x080C, 0x8000, 0x0000, 0x0000}},
{MARKER_A2_CHURCH_DOOR, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x8804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_1A9_CC_BREAKABLE_GRATES, 0x0000, {0x0000, 0x0000, 0x0000, 0x7804, 0x0000, 0x0804, 0x0000, 0x080C, 0x0000, 0x0000, 0x0000}},
{MARKER_195_WHISTLE_SWITCH_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_196_WHISTLE_SWITCH_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_197_WHISTLE_SWITCH_3, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_2F_ANCHOR_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_194_RBB_GREY_PROPELLER_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_186_RBB_GREEN_PROPELLER_SWITCH, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_183_RBB_EGG_TOLL, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_184_RBB_EGG_TOLL, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_164_GL_GRUNTY_FLOOR_PICTURE_EYE_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_165_GL_GRUNTY_FLOOR_PICTURE_EYE_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}},
{MARKER_E4_CS_BK_SLEEPING, 0x0000, {0x8004, 0x8004, 0x8004, 0x8404, 0x8404, 0x8004, 0x8004, 0x0000, 0x8004, 0x8004, 0x8004}},
{MARKER_E5_CS_BK_GAMEBOY, 0x0000, {0x8004, 0x8004, 0x8004, 0x8404, 0x8404, 0x8004, 0x8004, 0x0000, 0x8004, 0x8004, 0x8004}},
{MARKER_E6_CS_BK_COOKING, 0x0000, {0x8004, 0x8004, 0x8004, 0x8404, 0x8404, 0x8004, 0x8004, 0x0000, 0x8004, 0x8004, 0x8004}},
{MARKER_B2_SNOWBALL, 0x0001, {0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x0000, 0x0000, 0x0000, 0x2020}},
{MARKER_1A5_SANDYBUTT_EGG_TOLL, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001}},
{MARKER_1A6_BETA_VENT, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3020}},
{MARKER_16D_CHEATO_1, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8004}},
{MARKER_16E_CHEATO_2, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8004}},
{MARKER_16F_CHEATO_3, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8004}},
{MARKER_170_BLUE_EGG_REFILL_PILLOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7004}},
{MARKER_171_RED_FEATHER_REFILL_PILLOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7004}},
{MARKER_172_GOLD_FEATHER_REFILL_PILLOW, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7004}},
{MARKER_25C_GRUNTY_SPELL_FIREBALL, 0x0000, {0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x0000, 0x0804, 0x3804, 0x3804}},
{MARKER_25D_GREEN_BLAST, 0x0000, {0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x3804, 0x0000, 0x0804, 0x3804, 0x3804}},
{MARKER_27A_JINJO_STATUE_BASE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000}},
{MARKER_27F_JINJONATOR_STATUE_BASE, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0404, 0x0000, 0x0000, 0x0000}},
{MARKER_25E_GRUNTILDA_FINAL_BOSS_VULNERABLE, 0x0000, {0x4000, 0x4000, 0x4000, 0xA604, 0x4000, 0x4000, 0x4000, 0x0584, 0xA000, 0x0000, 0x4000}},
{MARKER_260_GRUNTY_PHASE_1_2_MOVING, 0x0000, {0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0x0000, 0xA000, 0x0000, 0x5000}},
{MARKER_281_GRUNTY_PHASE_2_VULNERABLE, 0x0000, {0x4080, 0x4080, 0x4080, 0xA604, 0x4080, 0x4080, 0x4080, 0x0584, 0xA200, 0x0000, 0x4080}},
{MARKER_282_GRUNTY_PHASE_3_FLIGHT, 0x0000, {0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0xA604, 0xA604, 0x0000, 0xA200, 0x0000, 0x4080}},
{MARKER_283_GRUNTY_PHASE_4_5_INVULNERABLE, 0x0000, {0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0x4080, 0x0000, 0xA200, 0x0000, 0x4080}},
{MARKER_284_GRUNTY_SPELL_BARRIER, 0x0000, {0x5404, 0x5404, 0x5404, 0x5404, 0x5404, 0x5404, 0x5404, 0x0000, 0xB404, 0x5404, 0x5404}},
};
s32 func_8033D240(ActorMarker *arg0, ActorMarker *arg1);
@@ -217,10 +235,10 @@ Struct_core2_B62B0_1 D_80371DC0[11] = {
{func_8033D2A8, HITBOX_2_BEAK_BARGE},
{func_8033D2A8, HITBOX_1_BEAK_BUSTER},
{func_8033D2A8, HITBOX_3_BEAK_BOMB},
{func_8033D240, 1},
{func_8033D240, 1}, // Egg Firing
{func_8033D2A8, HITBOX_6_WONDERWING},
{func_8033D2A8, HITBOX_9_CROC_BITE},
{func_8033D240, 0}
{func_8033D240, 0} // Other Contact
};
/* .bss */
@@ -249,11 +267,11 @@ void func_8033D2F4(void) {
s32 var_a0;
bool var_a1;
s32 var_v1;
s32 var_v0 = 0xBB;
s32 var_v0 = COLLISION_TABLE_SIZE;
for(var_v1 = 0; var_v1 < 0x2A9; var_v1++) {
for(((var_a0 = 0), (var_a1 = FALSE), (D_80383F10[var_v1] = -1)); (var_a0 < var_v0) && !var_a1; var_a0++){
if (var_v1 == D_80370AC0[var_a0].unk0) {
if (var_v1 == collision_table[var_a0].markerId) {
D_80383F10[var_v1] = var_a0;
var_a1 = TRUE;
}
@@ -262,51 +280,62 @@ void func_8033D2F4(void) {
for(var_a0 = 0; var_a0 < var_v0; var_a0++) {
for(var_v1 = 0; var_v1 < 10; var_v1++){
D_80370AC0[var_a0].unk4[var_v1] |= D_80370AC0[var_a0].unk2;
collision_table[var_a0].collisionTypes[var_v1] |= collision_table[var_a0].collisionUnion;
}
}
}
bool func_8033D410(ActorMarker *arg0, ActorMarker *arg1) {
s32 var_s2;
s32 sp38;
s32 collision_index;
s16 temp_t0;
s32 temp_s0;
sp38 = D_80383F10[arg1->id];
if (sp38 == -1) {
collision_index = D_80383F10[arg1->id];
if (collision_index == -1) {
return FALSE;
}
for(var_s2 = 0; var_s2 < 11; var_s2++){
if ((D_80370AC0[sp38].unk4[var_s2] != 0) && (D_80371DC0[var_s2].unk0(arg0, arg1) == D_80371DC0[var_s2].unk4)) {
func_80330078(arg1, arg0, D_80370AC0[sp38].unk4 + var_s2);
func_80330078(arg0, arg1, D_80370AC0[sp38].unk4 + var_s2);
if ((collision_table[collision_index].collisionTypes[var_s2] != 0) && (D_80371DC0[var_s2].unk0(arg0, arg1) == D_80371DC0[var_s2].unk4)) {
func_80330078(arg1, arg0, collision_table[collision_index].collisionTypes + var_s2);
func_80330078(arg0, arg1, collision_table[collision_index].collisionTypes + var_s2);
break;
}
}
return TRUE;
}
s32 func_8033D564(struct5Cs *arg0){
return arg0->unk0_15;
s32 collision_getPlayerInteraction(CollisionParams *arg0){
// Player Bounce vs Player Knockback
// Includes the distance the player is sent
return arg0->playerInteraction;
}
enum marker_collision_func_type_e func_8033D574(struct5Cs *arg0){
return arg0->unk0_11;
enum marker_collision_func_type_e collision_getNextState(CollisionParams *arg0){
// 01 -> Alternate State
// 10 -> Death
return arg0->nextState;
}
s32 func_8033D584(struct5Cs *arg0){
return arg0->unk0_9;
s32 collision_getUnkBit7(CollisionParams *arg0){
return arg0->unkBit7;
}
s32 func_8033D594(struct5Cs *arg0){
return arg0->unk0_6;
s32 collision_getDamageToPlayer(CollisionParams *arg0){
return arg0->damageToPlayer;
}
s32 func_8033D5A4(struct5Cs *arg0){
return arg0->unk0_4;
s32 collision_getHitsToTrigger(CollisionParams *arg0){
// Enemies have health
// 1 divided by hits to trigger = % of health the enemy loses
return arg0->hitsToTrigger;
}
s32 func_8033D5B4(struct5Cs *arg0){
return arg0->unk0_1;
s32 collision_getDropBundleNum(CollisionParams *arg0){
// By default,
// 0 is nothing
// 1 is one honeycomb
// 2 is two honeycombs
// 3 is three honeycombs
return arg0->dropBundleNum;
}
+2 -2
View File
@@ -52,8 +52,8 @@ void func_8033F7F0(u8 indx, Gfx **gfx, Mtx **mtx, Vtx **vtx){
func_80252330(sp30[0], sp30[1], sp30[2]);
mlMtxApply(*mtx);
gSPMatrix((*gfx)++, OS_PHYSICAL_TO_K0((*mtx)++), G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
func_803382E4(sp54->unk28_21);
func_80338338(sp54->color[0], sp54->color[1],sp54->color[2]);
codeAEDA0_setSpriteDrawMode(sp54->unk28_21);
codeAEDA0_setPrimaryColorRGB(sp54->color[0], sp54->color[1],sp54->color[2]);
func_803382FC(sp54->unk27);
func_80338308(sp54->unk20[0], sp54->unk20[1]);
func_8033837C(1);
+9 -9
View File
@@ -37,8 +37,8 @@ void func_80344124(void){
}
void func_80344138(BKSpriteDisplayData *self, s32 frame, s32 mirrored, f32 position[3], f32 scale[3], Gfx **gfx, Mtx **mtx) {
f32 sp6C[3];
f32 sp60[3];
f32 viewport_position[3];
f32 viewport_look_vector[3];
f32 temp_f14;
f32 sp50[3];
f32 temp_f0;
@@ -49,12 +49,12 @@ void func_80344138(BKSpriteDisplayData *self, s32 frame, s32 mirrored, f32 posit
f32 sp38;
f32 sp34;
viewport_getPosition_vec3f(sp6C);
viewport_getLookVector(sp60);
sp50[0] = position[0] - sp6C[0];
sp50[1] = position[1] - sp6C[1];
sp50[2] = position[2] - sp6C[2];
temp_f14 = sp60[0]*sp50[0] + sp60[1]*sp50[1] + sp60[2]*sp50[2];
viewport_getPosition_vec3f(viewport_position);
viewport_getLookVector(viewport_look_vector);
sp50[0] = position[0] - viewport_position[0];
sp50[1] = position[1] - viewport_position[1];
sp50[2] = position[2] - viewport_position[2];
temp_f14 = viewport_look_vector[0]*sp50[0] + viewport_look_vector[1]*sp50[1] + viewport_look_vector[2]*sp50[2];
if ((temp_f14 < 0.0f) || (20000.0f < temp_f14)) {
func_80344124();
return;
@@ -257,7 +257,7 @@ s32 func_80344C14(UNK_TYPE(s32) arg0){
return 0;
}
s32 func_80344C20(BKSpriteDisplayData *self){
s32 codeBD100_getSpriteType(BKSpriteDisplayData *self){
return self->sprite->type;
}
+1 -1
View File
@@ -83,7 +83,7 @@ void func_8034BFF8(ActorMarker *marker) {
if (marker->unk48 != NULL) {
marker->unk4C = vector_new(sizeof(Struct6Es), 0);
sp2C = BKModel_getMeshList(marker->unk48);
sp2C = (BKMeshList*)BKModel_getMeshList(marker->unk48);
phi_s1 = (BKMesh *)(sp2C + 1);
for(phi_s2 = 0; phi_s2 < sp2C->meshCount_0; phi_s2++){
if ((phi_s1->uid_0 >= 0x65) && (phi_s1->uid_0 < 0xC8)) {
+26 -26
View File
@@ -14,7 +14,7 @@ void func_80351AD0(Struct68s *arg0, enum asset_e model_id);
typedef struct {
s16 unk0;
u8 unk2;
u8 unk3;
u8 mapId;
}Struct_Core2_C9F00_1;
typedef struct {
@@ -23,18 +23,18 @@ typedef struct {
}Struct_Core2_C9F00_0;
Struct_Core2_C9F00_1 D_803725C0[] = {
{ 0x37, 0x1, 0x00},
{ 0x38, 0x2, 0x24},
{ 0xF9, 0x5, 0x22},
{ 0xFA, 0x6, 0x22},
{ 0xFB, 0x7, 0x22},
{ 0xFC, 0x8, 0x22},
{ 0xFD, 0x9, 0x22},
{ 0xFE, 0xA, 0x22},
{ 0xFF, 0xB, 0x22},
{0x100, 0xC, 0x22},
{0x100, 0xC, 0x22},
{ 0x13, 0xD, 0x00},
{ 0x37, 0x1, NULL},
{ 0x38, 0x2, MAP_24_MMM_TUMBLARS_SHED},
{ 0xF9, 0x5, MAP_22_CC_INSIDE_CLANKER},
{ 0xFA, 0x6, MAP_22_CC_INSIDE_CLANKER},
{ 0xFB, 0x7, MAP_22_CC_INSIDE_CLANKER},
{ 0xFC, 0x8, MAP_22_CC_INSIDE_CLANKER},
{ 0xFD, 0x9, MAP_22_CC_INSIDE_CLANKER},
{ 0xFE, 0xA, MAP_22_CC_INSIDE_CLANKER},
{ 0xFF, 0xB, MAP_22_CC_INSIDE_CLANKER},
{0x100, 0xC, MAP_22_CC_INSIDE_CLANKER},
{0x100, 0xC, MAP_22_CC_INSIDE_CLANKER},
{ 0x13, 0xD, NULL},
0
};
@@ -199,19 +199,19 @@ Struct68s * func_8035126C(f32 position[3], f32 arg1[3], f32 arg2, s32 arg3, enum
}
void func_803513EC(ModelProp *arg0, s32 arg1) {
f32 sp3C[3];
f32 position[3];
s32 pad30;
f32 rotation[3];
arg0->unkB_5 = TRUE;
arg0->unkB_4 = FALSE;
sp3C[0] = (f32) arg0->position[0];
sp3C[1] = (f32) arg0->position[1];
sp3C[2] = (f32) arg0->position[2];
position[0] = (f32) arg0->position[0];
position[1] = (f32) arg0->position[1];
position[2] = (f32) arg0->position[2];
rotation[0] = 0.0f;
rotation[1] = (f32) (arg0->yaw * 2);
rotation[2] = (f32) (arg0->roll * 2);
func_8035126C(sp3C, rotation, (f32) (arg0->scale / 100.0), arg1, arg0->model_index + 0x2D1);
func_8035126C(position, rotation, (f32) (arg0->scale / 100.0), arg1, arg0->modelId + MODEL_ASSET_OFFSET);
}
@@ -242,16 +242,16 @@ bool func_803515EC(NodeProp *arg0) {
s16 phi_v0;
if (arg0->bit6 != 6) {
if (arg0->category != 6) {
return TRUE;
} else {
for(phi_s0 = D_803725C0; phi_s0->unk0 != 0; phi_s0++){
if( (arg0->unk8 == phi_s0->unk0)
&& ((phi_s0->unk3 == 0) || (gsworld_get_map() == phi_s0->unk3))
if( (arg0->actorId == phi_s0->unk0)
&& ((phi_s0->mapId == NULL) || (gsworld_get_map() == phi_s0->mapId))
){
sp48[0] = (s32) arg0->x;
sp48[1] = (s32) arg0->y;
sp48[2] = (s32) arg0->z;
sp48[0] = (s32) arg0->position_x;
sp48[1] = (s32) arg0->position_y;
sp48[2] = (s32) arg0->position_z;
if(func_803048E0(&sp48, &sp44, &sp40, 2, 0x1F4)){
func_803513EC(sp40, phi_s0->unk2);
break;
@@ -273,8 +273,8 @@ bool func_80351724(void * arg0){
ActorProp *a_prop;
if (((*(u16*)((s32)arg0 + 0xA) << 0x1E) >> 0x1F) && ((*(u16*)((s32)arg0 + 0xA) << 0x1A) >> 0x1F)) {
a_prop = (ActorProp *)arg0;
a_prop->unk8_5 = FALSE;
a_prop->unk8_4 = TRUE;
a_prop->isMirrored = FALSE;
a_prop->isNotFeatherEggOrNote = TRUE;
}
return TRUE;
}
+5 -5
View File
@@ -64,7 +64,7 @@ s32 func_803531C8(u8 projectile_indx, s32 arg1){
projectile_getPosition(projectile_indx, egg_position);
marker->unk38[1] = 0x1E;
prop = func_80320EB0(marker, 30.0f, 1);
if(prop != NULL && prop->is_actor){
if(prop != NULL && prop->isActorProp){
other_marker = prop->marker;
sp34 =other_marker->id;
if(!func_8033D410(marker, other_marker)){
@@ -241,9 +241,9 @@ void fxegg_head_update(void){
if(ml_isZero_vec3f(sp88)){
s0 = func_8033E840();
projectile_getPosition(projectile_indx, sp60);
sp54[0] = (f32)s0->propPtr->x;
sp54[1] = (f32)s0->propPtr->y;
sp54[2] = (f32)s0->propPtr->z;
sp54[0] = (f32)s0->propPtr->position_x;
sp54[1] = (f32)s0->propPtr->position_y;
sp54[2] = (f32)s0->propPtr->position_z;
commonParticle_setCurrentInUseFalse();
fxegg_shatter(projectile_indx);
}//L803539D4
@@ -370,7 +370,7 @@ void fxegg_collide(s32 arg0, ActorMarker *marker, s32 arg2) {
Actor *actor;
actor = marker_getActor(marker);
if (func_8033D5A4(arg2) != 0) {
if (collision_getHitsToTrigger(arg2) != 0) {
commonParticle_setCurrentInUseFalse();
if (actor->modelCacheIndex != 0x29D) {
fxegg_shatter(commonParticle_getCurrentProjectileIndex());
+2 -2
View File
@@ -12,7 +12,7 @@ typedef struct {
u8 unk9;
u8 unkA;
u8 unkB;
u32 unkC_31:3;
u32 yaw:3;
u32 unkC_28:1;
u32 padC_27:28;
s16 unk10;
@@ -88,7 +88,7 @@ static void _chskeleton_init(Actor *this) {
local->unk9 = 8;
local->unkA = 0xA;
local->unkB = 7;
local->unkC_31 = 1;
local->yaw = 1;
local->unk10 = 0x10C;
local->unk12 = 20000;
local->unk14 = 1.7f;
+2 -2
View File
@@ -11,7 +11,7 @@ typedef struct {
u8 unk9;
u8 unkA;
u8 unkB;
u32 unkC_31:3;
u32 yaw:3;
u32 unkC_28:1;
u32 padC_27:28;
s16 unk10;
@@ -77,7 +77,7 @@ void func_8035CFC4(Actor *this) {
local->unk9 = 0xA;
local->unkA = 0xE;
local->unkB = 9;
local->unkC_31 = 1;
local->yaw = 1;
local->unk10 = 0x11A;
local->unk12 = 25000;
local->unk14 = 1.0f;
+2 -2
View File
@@ -12,7 +12,7 @@ typedef struct {
u8 unk9;
u8 unkA;
u8 unkB;
u32 unkC_31:3;
u32 yaw:3;
u32 unkC_28:1;
u32 padC_27:28;
s16 unk10;
@@ -92,7 +92,7 @@ void func_8035D2FC(Actor *this) {
local->unk9 = 6;
local->unkA = 8;
local->unkB = 4;
local->unkC_31 = 0;
local->yaw = 0;
local->unk10 = 0x10C; //SFX_10C_MUMMY_TALKING
local->unk12 = 20000;
local->unk14 = 1.5f;
+2 -2
View File
@@ -14,14 +14,14 @@ void func_8036158C(Actor *this);
u8 D_80373130[] = {0, 1, 0, 0};
ActorInfo D_80373134 = {
0x1a6, 0x289, 0x431,
MARKER_1A6_BETA_VENT, ACTOR_289_BETA_VENT, ASSET_431_MODEL_BETA_VENT,
0x0, NULL,
func_8036158C, NULL, actor_draw,
0, 0, 0.0f, 0
};
ActorInfo D_80373158 = {
0x1a6, 0x28f, 0x431,
MARKER_1A6_BETA_VENT, ACTOR_28F_BETA_VENT, ASSET_431_MODEL_BETA_VENT,
0x0, NULL,
func_8036158C, NULL, actor_draw,
0, 0, 0.0f, 0
+1 -1
View File
@@ -587,7 +587,7 @@ void func_80363330(Actor *this){
void func_80363388(struct_core2_DB010 *arg0, s32 arg1){
f32 sp2C[3];
s32 sp20[3];
s32 tmp_v0 = codeA5BC0_getPositionAndReturnRadius(arg0, sp20);
s32 tmp_v0 = codeA5BC0_getPositionAndSelectorOrRadius(arg0, sp20);
sp2C[0] = (f32)sp20[0];
sp2C[1] = (f32)sp20[1];
sp2C[2] = (f32)sp20[2];
+2 -2
View File
@@ -1305,8 +1305,8 @@ void __gcpausemenu_drawSprite(Gfx **gdl, Mtx **mptr, Vtx **vptr, BKSprite *sprit
_frame = sprite_getFramePtr(sprite, frame);
sp2C = _frame->w;
sp28 = _frame->h;
func_803382E4(5);
func_80338338(0xFF, 0xFF, 0xFF);
codeAEDA0_setSpriteDrawMode(5);
codeAEDA0_setPrimaryColorRGB(0xFF, 0xFF, 0xFF);
func_803382FC(a);
func_8033837C(0);
viewport_getPosition_vec3f(sp50);
+3 -3
View File
@@ -49,7 +49,7 @@ typedef struct {
u8 next_state;
// u8 pad3[1];
f32 duration;
s32 model_index;
s32 modelId;
s32 anim_index;
f32 scale;
}TransitionInfo;
@@ -183,8 +183,8 @@ void _gctranstion_changeState(s32 state, TransitionInfo *desc){
s_current_transition.model_ptr = assetcache_get(0x7D2); //scene transition black
else if(state == TRANSITION_STATE_6_LOADING_WHITE)
s_current_transition.model_ptr = assetcache_get(0x7D3); //scene transition white
else if(desc != NULL && desc->model_index != 0)
s_current_transition.model_ptr = assetcache_get(desc->model_index);
else if(desc != NULL && desc->modelId != 0)
s_current_transition.model_ptr = assetcache_get(desc->modelId);
//load transistion animation
if(desc != NULL && desc->anim_index != NULL){
+8 -8
View File
@@ -8,7 +8,7 @@
#include "time.h"
extern void func_80344090(BKSpriteDisplayData *self, s32 frame, Gfx **gfx);
BKSprite *func_8033B6C4(enum asset_e sprite_id, BKSpriteDisplayData **arg1);
BKSprite *codeB3A80_getSprite(enum asset_e sprite_id, BKSpriteDisplayData **arg1);
typedef struct struct_18_s{
s16 sfx_id; /* enum sfx_e */
@@ -426,7 +426,7 @@ s32 D_8036D924[] = { 70, 35, 18, 9, 4, 2, 1};
char D_803830B0[0x30];
void sfxsource_freeSfxsourceByIndex(u8);
void func_80338338(s32, s32, s32);
void codeAEDA0_setPrimaryColorRGB(s32, s32, s32);
void func_803382FC(u8);
/* .code */
@@ -845,10 +845,10 @@ void func_803164B0(GcZoombox *this, Gfx **gfx, Mtx **mtx, s32 arg3, s32 arg4, BK
if (this->portrait_id == ZOOMBOX_SPRITE_46_TUMBLAR) {
arg6 = 0.75f;
}
func_80338338(0xFF, 0xFF, 0xFF);
codeAEDA0_setPrimaryColorRGB(0xFF, 0xFF, 0xFF);
func_803382FC(this->unk168 * arg6);
func_803382E4(5);
func_80335D30(gfx);
codeAEDA0_setSpriteDrawMode(5);
codeAEDA0_drawSprite(gfx);
viewport_setRenderViewportAndOrthoMatrix(gfx, mtx);
mlMtxIdent();
if (this->unk1A4_24) {
@@ -866,7 +866,7 @@ void func_803164B0(GcZoombox *this, Gfx **gfx, Mtx **mtx, s32 arg3, s32 arg4, BK
gSPMatrix((*gfx)++, (*mtx)++, G_MTX_LOAD | G_MTX_MODELVIEW);
modelRender_setDepthMode(MODEL_RENDER_DEPTH_NONE);
func_80344090(arg5, this->unk186, gfx);
func_8033687C(gfx);
codeAEDA0_postDrawSprite(gfx);
viewport_setRenderViewportAndPerspectiveMatrix(gfx, mtx);
}
@@ -1337,9 +1337,9 @@ void gczoombox_update(GcZoombox *this){
}
void __gczoombox_load_sprite(GcZoombox *this, GcZoomboxSprite portrait_id){
this->unkF8 = func_8033B6C4(D_8036C6C0[portrait_id].spite_id, &this->unkFC);
this->unkF8 = codeB3A80_getSprite(D_8036C6C0[portrait_id].spite_id, &this->unkFC);
this->frame_count = this->unkF8->frameCnt;
func_803382E4(-1);
codeAEDA0_setSpriteDrawMode(-1);
func_80338308(sprite_getUnk8(this->unkF8), sprite_getUnkA(this->unkF8));
}
+28 -25
View File
@@ -691,7 +691,7 @@ void func_80303C54(Cube *cube, ActorMarker *marker, f32 arg2, s32 arg3, s32 *arg
while (*arg4 != -1){
phi_s0 = func_803322F0(cube, marker, arg2, arg3, arg4);
if (phi_s0 != NULL) {
if (phi_s0->is_actor && phi_s0->marker->unk58 != NULL) {
if (phi_s0->isActorProp && phi_s0->marker->unk58 != NULL) {
if (phi_s0->marker->unk58(phi_s0->marker, marker) == 0) {
phi_s0 = NULL;
}
@@ -716,9 +716,9 @@ void func_80303D78(ActorMarker *marker, f32 arg1, UNK_TYPE(s32) arg2) {
sp5C = 0;
sp50[0] = (f32) marker->propPtr->x;
sp50[1] = (f32) marker->propPtr->y;
sp50[2] = (f32) marker->propPtr->z;
sp50[0] = (f32) marker->propPtr->position_x;
sp50[1] = (f32) marker->propPtr->position_y;
sp50[2] = (f32) marker->propPtr->position_z;
cube_positionToIndices(sp60, sp50);
for(sp6C[2] = sp60[2] - 1; sp6C[2] <= sp60[2] + 1; sp6C[2]++){
for(sp6C[1] = sp60[1] - 1; sp6C[1] <= sp60[1] + 1; sp6C[1]++){
@@ -924,7 +924,7 @@ void cubeList_fromFile(File *file_ptr) {
if (cube->unk0_4) {
for(iPtr = cube->prop1Ptr; iPtr < &cube->prop1Ptr[cube->unk0_4] ;iPtr++){
if (!iPtr->bit0) {
bitfield_setBit(D_8036A9E0, iPtr->unkA, TRUE);
bitfield_setBit(D_8036A9E0, iPtr->markerId, TRUE);
}
}
}
@@ -948,7 +948,7 @@ s32 func_80304984(s32 actor_id, u32 *arg1) {
NodeProp *temp_v0 = cubeList_findNodePropByActorIdAndPosition_s32(actor_id, NULL);
if (temp_v0 != 0) {
*arg1 = temp_v0->radius;
*arg1 = temp_v0->selector_or_radius;
return 1;
}
@@ -1046,18 +1046,18 @@ NodeProp *nodeprop_findByActorIdAndPosition_s16(enum actor_e actor_id, s16 *posi
}
s32 nodeprop_getRadius(NodeProp *arg0) {
return arg0->radius;
return arg0->selector_or_radius;
}
void nodeprop_getPosition_s32(NodeProp *nodeProp, s32 dst[3]) {
TUPLE_ASSIGN(dst, nodeProp->x, nodeProp->y, nodeProp->z)
TUPLE_ASSIGN(dst, nodeProp->position_x, nodeProp->position_y, nodeProp->position_z)
}
void nodeprop_getPosition(NodeProp *nodeProp, f32 dst[3]) {
TUPLE_ASSIGN(dst, nodeProp->x, nodeProp->y, nodeProp->z)
TUPLE_ASSIGN(dst, nodeProp->position_x, nodeProp->position_y, nodeProp->position_z)
}
u32 nodeprop_getYaw(NodeProp *nodeProp) {
u32 nodeProp_getYaw(NodeProp *nodeProp) {
return nodeProp->yaw;
}
@@ -1070,9 +1070,9 @@ bool nodeprop_findPositionFromActorId(enum actor_e actor_id, s32 *position) {
node_prop = cubeList_findNodePropByActorIdAndPosition_s32(actor_id, NULL);
if (node_prop != 0) {
position[0] = (s32) node_prop->x;
position[1] = (s32) node_prop->y;
position[2] = (s32) node_prop->z;
position[0] = (s32) node_prop->position_x;
position[1] = (s32) node_prop->position_y;
position[2] = (s32) node_prop->position_z;
return TRUE;
}
return FALSE;
@@ -1113,7 +1113,10 @@ NodeProp *func_80304ED0(enum actor_e *arg0 , f32 arg1[3]) {
return NULL;
}
for(i = 0; i < cnt; i++){
dist_sq = func_80304E9C(sp34[0] - sp4C[i]->x, sp34[1] - sp4C[i]->y, sp34[2] - sp4C[i]->z);
dist_sq = func_80304E9C(
sp34[0] - sp4C[i]->position_x,
sp34[1] - sp4C[i]->position_y,
sp34[2] - sp4C[i]->position_z);
if (dist_sq < min_dist_sq) {
min_dist_sq = dist_sq;
closest_node_ptr = sp4C[i];
@@ -2034,8 +2037,8 @@ void func_80307CA0(ActorMarker *marker) {
for(i = 0; cubePtrList[i] != NULL; i++) {
for(node_idx = 0; node_idx < cubePtrList[i]->unk0_4; node_idx++){
node = codeA5BC0_getPropNodeAtIndex(cubePtrList[i], node_idx);
if (codeA5BC0_getNodePropUnkA(node) == marker_bitfield) {
node_radius = codeA5BC0_getPositionAndReturnRadius(node, node_position);
if (codeA5BC0_getNodePropMarkerId(node) == marker_bitfield) {
node_radius = codeA5BC0_getPositionAndSelectorOrRadius(node, node_position);
if( ((node_position[0] - node_radius) < marker_position[0]) && (marker_position[0] < (node_position[0] + node_radius))
&& ((node_position[1] - node_radius) < marker_position[1]) && (marker_position[1] < (node_position[1] + node_radius))
&& ((node_position[2] - node_radius) < marker_position[2]) && (marker_position[2] < (node_position[2] + node_radius))
@@ -2097,9 +2100,9 @@ u32 func_80307EA8(s32 arg0, s32 position[3], s32 *arg2, s32 *arg3) {
var_s4 = temp_v0->prop1Ptr[D_803820B4].unk10_31;
*arg2 = temp_v0->prop1Ptr[D_803820B4].unk10_19;
*arg3 = temp_v0->prop1Ptr[D_803820B4].bit0;
position[0] = temp_v0->prop1Ptr[D_803820B4].x;
position[1] = temp_v0->prop1Ptr[D_803820B4].y;
position[2] = temp_v0->prop1Ptr[D_803820B4].z;
position[0] = temp_v0->prop1Ptr[D_803820B4].position_x;
position[1] = temp_v0->prop1Ptr[D_803820B4].position_y;
position[2] = temp_v0->prop1Ptr[D_803820B4].position_z;
D_803820B4++;
}
if ((temp_v0 == NULL) || (D_803820B4 >= temp_v0->prop1Cnt)) {
@@ -2170,7 +2173,7 @@ bool func_803082D8(Cube *arg0, s32 *arg1, bool arg2, bool arg3) {
bool var_a0;
var_v0 = arg0->prop2Ptr + *arg1;
while ((var_v0->is_actor == 1) && (*arg1 < arg0->prop2Cnt)) {
while ((var_v0->isActorProp == 1) && (*arg1 < arg0->prop2Cnt)) {
(*arg1)++;
var_v0++;
}
@@ -2179,10 +2182,10 @@ bool func_803082D8(Cube *arg0, s32 *arg1, bool arg2, bool arg3) {
*arg1 = 0;
return FALSE;
}
var_a0 = var_v0->unk8_4;
var_a0 = var_v0->isNotFeatherEggOrNote;
(*arg1)++;
if (arg2) {
var_v0->unk8_4 = arg3;
var_v0->isNotFeatherEggOrNote = arg3;
}
return var_a0;
}
@@ -2391,8 +2394,8 @@ static void __code7AF80_func_80308984(void) {
// this iterates over the cubes and assumes that the cubes pointer is currently at index 0
for(iCube = sCubeList.cubes; iCube < sCubeList.cubes + sCubeList.cubeCnt; iCube++){
for(iNode = iCube->prop1Ptr; iNode < iCube->prop1Ptr + iCube->prop1Cnt; iNode++){
if (iNode->bit6 == 6 && iNode->bit0 == FALSE){
u32 tmp = iNode->unk8;
if (iNode->category == 6 && iNode->bit0 == FALSE){
u32 tmp = iNode->actorId;
if(tmp >= unk8_range_min && tmp <= unk8_range_max) {
for(i = 0; D_8036ABAC[i] != tmp && D_8036ABAC[i] != -1; i++){
@@ -2405,7 +2408,7 @@ static void __code7AF80_func_80308984(void) {
for(jCube = sCubeList.cubes; jCube < sCubeList.cubes + sCubeList.cubeCnt; jCube++){
for(jNode = jCube->prop1Ptr; jNode < jCube->prop1Ptr + jCube->prop1Cnt; jNode++){
if (jNode->bit6 == 6 && jNode->bit0 == FALSE && jNode->unk8 == D_8036ABC0[i]) {
if (jNode->category == 6 && jNode->bit0 == FALSE && jNode->actorId == D_8036ABC0[i]) {
__code7AF80_addCubeIndexToD_80382150(jCube - sCubeList.cubes);
D_80382150[temp_s4 + 1]++;
jNode = jCube->prop1Ptr + jCube->prop1Cnt;
+1 -1
View File
@@ -214,7 +214,7 @@ void func_802C1674(NodeProp *arg0, ActorMarker *arg1){
}
void func_802C169C(NodeProp *arg0, ActorMarker *arg1){
func_802C16CC(func_8033451C(arg0->unk8));
func_802C16CC(func_8033451C(arg0->actorId));
}
// sets up dynamic camera for cubes in "area" of arg0
+5 -5
View File
@@ -180,8 +180,8 @@ void __particleEmitter_drawOnPass(ParticleEmitter *this, Gfx **gfx, Mtx **mtx, V
|| this->rgb[2] != 0xff
|| this->alpha != 0xff
){
func_803382E4((this->draw_mode & PART_EMIT_NO_DEPTH)? 9: 0xf);
func_80338338(this->rgb[0], this->rgb[1], this->rgb[2]);
codeAEDA0_setSpriteDrawMode((this->draw_mode & PART_EMIT_NO_DEPTH)? 9: 0xf);
codeAEDA0_setPrimaryColorRGB(this->rgb[0], this->rgb[1], this->rgb[2]);
func_803382B4(
(this->rgb[0] < 8)? 0 : this->rgb[0] - 8,
(this->rgb[1] < 8)? 0 : this->rgb[1] - 8,
@@ -189,7 +189,7 @@ void __particleEmitter_drawOnPass(ParticleEmitter *this, Gfx **gfx, Mtx **mtx, V
(this->draw_mode & PART_EMIT_NO_OPA)? 0xff : this->alpha
);
func_80338370();
func_80335D30(gfx);
codeAEDA0_drawSprite(gfx);
}
else if(this->draw_mode & PART_EMIT_NO_DEPTH){//L802EF0C0
gSPDisplayList((*gfx)++, D_80368978);
@@ -222,7 +222,7 @@ void __particleEmitter_drawOnPass(ParticleEmitter *this, Gfx **gfx, Mtx **mtx, V
}//L802EF338
if( this->rgb[0] != 0xff || this->rgb[1] != 0xff || this->rgb[2] != 0xff || this->alpha != 0xff
){
func_8033687C(gfx);
codeAEDA0_postDrawSprite(gfx);
}
}
}
@@ -344,7 +344,7 @@ void particleEmitter_setSprite(ParticleEmitter *this, enum asset_e sprite_id){
if(sprite_id != this->assetId_0_15){
this->assetId_0_15 = sprite_id;
func_802EE930(this);
this->sprite_1C = func_8033B6C4(sprite_id, &this->unk34);
this->sprite_1C = codeB3A80_getSprite(sprite_id, &this->unk34);
}
}
+76 -62
View File
@@ -2,6 +2,8 @@
#include "functions.h"
#include "variables.h"
#define PROP_MODEL_COUNT 0x2A2
#define PROP_SPRITE_COUNT 0x168
extern f32 func_8033A244(f32);
@@ -9,14 +11,14 @@ typedef struct{
BKModelBin *model_bin;
s32 timestamp;
f32 scale;
}propModelListModel;
} PropModelData;
typedef struct{
BKSprite *sprite;
BKSpriteDisplayData *display;
s32 timestamp;
f32 scale;
}propModelListSprite;
} PropSpriteData;
BKModelBin *propModelList_getModel(s32 arg0);
@@ -24,15 +26,15 @@ BKModelBin *propModelList_getModel(s32 arg0);
s32 D_8036B800 = 0;
/* .bss */
static propModelListModel *sPropModelList;
static propModelListSprite *sPropSpriteList;
static PropModelData *sPropModelList;
static PropSpriteData *sPropSpriteList;
BKSpriteDisplayData *propModelList_getSpriteDisplayList(s32 arg0);
void propModelList_drawModel(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 position[3], f32 rotation[3], f32 scale, s32 model_index, Cube* arg7){
void propModelList_drawModel(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 position[3], f32 rotation[3], f32 scale, s32 modelId, Cube* arg7){
BKModelBin * model;
model = propModelList_getModel(model_index);
model = propModelList_getModel(modelId);
func_8033A244(3700.0f);
func_8033A28C(1);
modelRender_setDepthMode(MODEL_RENDER_DEPTH_FULL);
@@ -40,28 +42,32 @@ void propModelList_drawModel(Gfx **gfx, Mtx **mtx, Vtx **vtx, f32 position[3], f
modelRender_draw(gfx, mtx, position, rotation, scale, NULL, model);
}
void propModelList_drawSprite(Gfx **gfx, Mtx **mtx, Vtx **Vtx, f32 position[3], f32 scale, s32 sprite_index, Cube *arg6, s32 r, s32 b, s32 g, s32 mirrored, s32 frame) {
void propModelList_drawSprite(
Gfx **gfx, Mtx **mtx, Vtx **Vtx,
f32 position[3], f32 scale, s32 spriteId, Cube *arg6,
s32 rgb_remove_red, s32 rgb_remove_green, s32 rgb_remove_blue,
s32 mirrored, s32 frame) {
f32 scale_f3[3];
BKSpriteDisplayData *sprite;
sprite = propModelList_getSpriteDisplayList(sprite_index);
sprite = propModelList_getSpriteDisplayList(spriteId);
scale_f3[0] = scale;
scale_f3[1] = scale;
scale_f3[2] = scale;
func_80338338(0xFF - (r * 0x10), 0xFF - (b * 0x10), 0xFF - (g * 0x10));
if (func_80344C20(sprite) & 0xB00) {
func_803382E4(0xB);
codeAEDA0_setPrimaryColorRGB(0xFF - (rgb_remove_red * 0x10), 0xFF - (rgb_remove_green * 0x10), 0xFF - (rgb_remove_blue * 0x10));
if (codeBD100_getSpriteType(sprite) & 0xB00) {
codeAEDA0_setSpriteDrawMode(0xB);
} else {
func_803382E4(0xE);
codeAEDA0_setSpriteDrawMode(0xE);
}
func_80335D30(gfx);
codeAEDA0_drawSprite(gfx);
func_80344138(sprite, frame, mirrored, position, scale_f3, gfx, mtx);
func_8033687C(gfx);
codeAEDA0_postDrawSprite(gfx);
}
BKModelBin *propModelList_getModel(s32 arg0){
if(sPropModelList[arg0].model_bin == NULL){
sPropModelList[arg0].model_bin = assetcache_get(0x2d1 + arg0);
sPropModelList[arg0].model_bin = assetcache_get(MODEL_ASSET_OFFSET + arg0);
}
sPropModelList[arg0].timestamp = globalTimer_getTime();
return sPropModelList[arg0].model_bin;
@@ -74,8 +80,8 @@ BKModelBin *propModelList_getModelIfActive(s32 arg0){
BKSpriteDisplayData *propModelList_getSpriteDisplayList(s32 arg0)
{
if (((propModelListSprite *)((s32)sPropSpriteList + arg0*sizeof(propModelListSprite)))->sprite == 0){
((propModelListSprite *)((s32)sPropSpriteList + arg0*sizeof(propModelListSprite)))->sprite = func_8033B6C4(arg0 + 0x572, &((propModelListSprite *)((s32)sPropSpriteList + arg0*sizeof(propModelListSprite)))->display);
if (((PropSpriteData *)((s32)sPropSpriteList + arg0*sizeof(PropSpriteData)))->sprite == 0){
((PropSpriteData *)((s32)sPropSpriteList + arg0*sizeof(PropSpriteData)))->sprite = codeB3A80_getSprite(arg0 + SPRITE_ASSET_OFFSET, &((PropSpriteData *)((s32)sPropSpriteList + arg0*sizeof(PropSpriteData)))->display);
}
sPropSpriteList[arg0].timestamp = globalTimer_getTime();
return sPropSpriteList[arg0].display;
@@ -87,39 +93,39 @@ BKSprite *propModelList_getSprite(s32 arg0){
}
f32 propModelList_getScale(Prop *arg0){
if(arg0->is_3d){
if(arg0->isModelProp){
ModelProp* ModelProp = &arg0->modelProp;
return sPropModelList[arg0->spriteProp.sprite_index].scale;
return sPropModelList[arg0->spriteProp.spriteId].scale;
}
else{//L8030A65C
SpriteProp *spriteProp = &arg0->spriteProp;
return sPropSpriteList[spriteProp->sprite_index].scale;
return sPropSpriteList[spriteProp->spriteId].scale;
}
}
void propModelList_setScale(Prop *arg0, f32 arg1){
if(arg0->is_3d){
if(arg0->isModelProp){
ModelProp* ModelProp = &arg0->modelProp;
sPropModelList[arg0->spriteProp.sprite_index].scale = (f32)ModelProp->scale*arg1/100.0f;
sPropModelList[arg0->spriteProp.spriteId].scale = (f32)ModelProp->scale*arg1/100.0f;
}
else{//L8030A65C
SpriteProp *spriteProp = &arg0->spriteProp;
sPropSpriteList[spriteProp->sprite_index].scale = (f32)spriteProp->scale*arg1/100.0f;
sPropSpriteList[spriteProp->spriteId].scale = (f32)spriteProp->scale*arg1/100.0f;
}
}
void propModelList_free(void){
propModelListModel* iPtr;
propModelListSprite* jPtr;
PropModelData* iPtr;
PropSpriteData* jPtr;
for(iPtr = sPropModelList; iPtr < &sPropModelList[0x2A2]; iPtr++){
for(iPtr = sPropModelList; iPtr < &sPropModelList[PROP_MODEL_COUNT]; iPtr++){
if(iPtr->model_bin){
assetcache_release(iPtr->model_bin);
}
}
for(jPtr = sPropSpriteList; jPtr < &sPropSpriteList[0x168]; jPtr++){
for(jPtr = sPropSpriteList; jPtr < &sPropSpriteList[PROP_SPRITE_COUNT]; jPtr++){
if(jPtr->sprite){
func_8033B338(&jPtr->sprite, &jPtr->display);
codeB3A80_releaseSprite(&jPtr->sprite, &jPtr->display);
}
}
free(sPropModelList);
@@ -129,17 +135,17 @@ void propModelList_free(void){
}
void propModelList_init(void){//init
propModelListModel* iPtr;
propModelListSprite* jPtr;
PropModelData* iPtr;
PropSpriteData* jPtr;
sPropModelList = (propModelListModel *)malloc(0x2A2 * sizeof(propModelListModel));
sPropSpriteList = (propModelListSprite *)malloc(0x168 * sizeof(propModelListSprite));
sPropModelList = (PropModelData *)malloc(PROP_MODEL_COUNT * sizeof(PropModelData));
sPropSpriteList = (PropSpriteData *)malloc(PROP_SPRITE_COUNT * sizeof(PropSpriteData));
D_8036B800 = 0;
for(iPtr = sPropModelList; iPtr < &sPropModelList[0x2A2]; iPtr++){
for(iPtr = sPropModelList; iPtr < &sPropModelList[PROP_MODEL_COUNT]; iPtr++){
iPtr->model_bin = NULL;
iPtr->scale = 0.0f;
}
for(jPtr = sPropSpriteList; jPtr < &sPropSpriteList[0x168]; jPtr++){
for(jPtr = sPropSpriteList; jPtr < &sPropSpriteList[PROP_SPRITE_COUNT]; jPtr++){
jPtr->sprite = NULL;
jPtr->scale = 0.0f;
}
@@ -157,25 +163,34 @@ void propModelList_flush(s32 level) {
static s32 D_8036B808 = 0;
s32 oldest_active_time;
s32 var_s0;
propModelListModel *sp3C;
propModelListSprite *temp_a0_2;
PropModelData *model_entry;
PropSpriteData *sprite_entry;
oldest_active_time = globalTimer_getTime() - func_80255B08(level);
for(var_s0 = 0; (sPropModelList != NULL) && (var_s0 < ((level == 1) ? 0x28 : 0x2A1)); var_s0++, D_8036B804 = (D_8036B804 >= 0x2A1)? 0: D_8036B804 + 1){
sp3C = (propModelListModel*)((u32)sPropModelList + sizeof(propModelListModel)*D_8036B804);
if ((sp3C->model_bin != NULL) && ((sp3C->timestamp < oldest_active_time) || (level == 3))){
assetcache_release(sp3C->model_bin);
sp3C->model_bin = NULL;
for(var_s0 = 0;
(sPropModelList != NULL) && (var_s0 < ((level == 1) ? 0x28 : PROP_MODEL_COUNT - 1));
var_s0++, D_8036B804 = (D_8036B804 >= PROP_MODEL_COUNT - 1)? 0: D_8036B804 + 1)
{
model_entry = (PropModelData*)((u32)sPropModelList + sizeof(PropModelData)*D_8036B804);
if ((model_entry->model_bin != NULL) && ((model_entry->timestamp < oldest_active_time) || (level == 3))){
assetcache_release(model_entry->model_bin);
model_entry->model_bin = NULL;
if( (level != 1) && (func_80254BC4(1))){
return;
}
}
}
for(var_s0 = 0; (sPropSpriteList != NULL) && (var_s0 < ((level == 1) ? 0x28 : 0x167)); var_s0++, D_8036B808 = (D_8036B808 >= 0x167)? 0: D_8036B808 + 1){
temp_a0_2 = (propModelListSprite*)((u32)sPropSpriteList + sizeof(propModelListSprite)*D_8036B808);
if ((temp_a0_2->sprite != 0) && ((temp_a0_2->timestamp < oldest_active_time) || (level == 3))){
func_8033B338(&temp_a0_2->sprite, &temp_a0_2->display);
for(var_s0 = 0;
(sPropSpriteList != NULL) && (var_s0 < ((level == 1) ? 0x28 : PROP_SPRITE_COUNT - 1));
var_s0++, D_8036B808 = (D_8036B808 >= PROP_SPRITE_COUNT - 1)? 0: D_8036B808 + 1)
{
sprite_entry = (PropSpriteData*)((u32)sPropSpriteList + sizeof(PropSpriteData)*D_8036B808);
if ((sprite_entry->sprite != 0) &&
((sprite_entry->timestamp < oldest_active_time) ||
(level == 3)))
{
codeB3A80_releaseSprite(&sprite_entry->sprite, &sprite_entry->display);
if( (level != 1) && (func_80254BC4(1))){
return;
}
@@ -187,12 +202,12 @@ void propModelList_defrag(void) {
BKModelBin *temp_a0;
s32 phi_s2;
sPropSpriteList = (propModelListSprite *) defrag(sPropSpriteList);
sPropModelList = (propModelListModel *) defrag(sPropModelList);
sPropSpriteList = (PropSpriteData *) defrag(sPropSpriteList);
sPropModelList = (PropModelData *) defrag(sPropModelList);
if (!func_802559A0() && !func_80255AE4() && sPropModelList != NULL) {
for(phi_s2 = 0x14; (phi_s2 != 0) && !func_80255AE4(); phi_s2--){
D_8036B800++;
if (D_8036B800 >= 0x2A2) {
if (D_8036B800 >= PROP_MODEL_COUNT) {
D_8036B800 = 0;
}
temp_a0 = sPropModelList[D_8036B800].model_bin;
@@ -206,25 +221,24 @@ void propModelList_defrag(void) {
void propModelList_refresh(void) {
s32 model_list_index;
s32 temp_t7;
propModelListSprite *phi_s0;
PropSpriteData *sprite_entry;
s32 phi_s2;
propModelListModel *phi_s0_2;
PropModelData *model_entry;
for(phi_s0 = sPropSpriteList; phi_s0 < sPropSpriteList + 360; phi_s0++){
if (phi_s0->sprite != NULL) {
temp_t7 = phi_s0 - sPropSpriteList;
func_8033B338(&phi_s0->sprite, &phi_s0->display);
phi_s2 = temp_t7 *sizeof(propModelListSprite);
*(BKSprite **)((s32)sPropSpriteList + phi_s2) = func_8033B6C4(temp_t7 + 0x572, (BKSpriteDisplayData **)((s32)sPropSpriteList + phi_s2 + 4));
for(sprite_entry = sPropSpriteList; sprite_entry < sPropSpriteList + 360; sprite_entry++){
if (sprite_entry->sprite != NULL) {
temp_t7 = sprite_entry - sPropSpriteList;
codeB3A80_releaseSprite(&sprite_entry->sprite, &sprite_entry->display);
phi_s2 = temp_t7 *sizeof(PropSpriteData);
*(BKSprite **)((s32)sPropSpriteList + phi_s2) = codeB3A80_getSprite(temp_t7 + SPRITE_ASSET_OFFSET, (BKSpriteDisplayData **)((s32)sPropSpriteList + phi_s2 + 4));
}
}
for(phi_s0_2 = sPropModelList; phi_s0_2 < sPropModelList + 674; phi_s0_2++){
if(phi_s0_2->model_bin != NULL){
model_list_index = phi_s0_2 - sPropModelList;
assetcache_release(phi_s0_2->model_bin);
sPropModelList[model_list_index].model_bin = (BKModelBin *) assetcache_get(model_list_index + 0x2D1);
for(model_entry = sPropModelList; model_entry < sPropModelList + 674; model_entry++){
if(model_entry->model_bin != NULL){
model_list_index = model_entry - sPropModelList;
assetcache_release(model_entry->model_bin);
sPropModelList[model_list_index].model_bin = (BKModelBin *) assetcache_get(model_list_index + MODEL_ASSET_OFFSET);
}
}
}
+4 -4
View File
@@ -803,10 +803,10 @@ void func_80388CE4(vector(AnSeqElement) **arg0, ActorMarker *arg1) {
void func_80388D30(vector(AnSeqElement) **arg0, ActorMarker *arg1) {
anSeq_func_80288F78(arg0, 0.0257f, (SFX_6B_LOCKUP_OPENING << 0x10) | (0x40 << 8) | 0xFF);
anSeq_func_80288F78(arg0, 0.6287f, (SFX_6C_LOCKUP_CLOSING << 0x10) | (0x80 << 8) | 0xFA);
anSeq_func_80288F78(arg0, 0.7126f, (SFX_3F_CAULDRON_SQEAK_1 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.77f, (SFX_40_CAULDRON_SQEAK_2 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.8079f, (SFX_3F_CAULDRON_SQEAK_1 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.9142f, (SFX_40_CAULDRON_SQEAK_2 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.7126f, (SFX_3F_CAULDRON_SQUEAK_1 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.77f, (SFX_40_CAULDRON_SQUEAK_2 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.8079f, (SFX_3F_CAULDRON_SQUEAK_1 << 0x10) | (0x99 << 8) | 0x65);
anSeq_func_80288F78(arg0, 0.9142f, (SFX_40_CAULDRON_SQUEAK_2 << 0x10) | (0x99 << 8) | 0x65);
}
void func_80388DE4(vector(AnSeqElement) **arg0, ActorMarker *arg1) {
+3 -3
View File
@@ -15,7 +15,7 @@ extern ActorInfo D_8038E8A8;
/* .data */
ActorInfo D_8038DC90 =
{
MARKER_17_CONCERT_BANJO, ACTOR_8E_CONCERT_BANJO, ASSET_355_MODEL_CONCERT_BANJO,
MARKER_17_CONCERT_BANJO, ACTOR_8E_CONCERT_BANJO, ASSET_355_MODEL_CONCERT_BANJO,
1, NULL,
NULL, func_802E07E0, func_802E0738,
0, 0, 5.0f, 0
@@ -47,7 +47,7 @@ ActorInfo D_8038DCFC =
ActorInfo D_8038DD20 =
{
MARKER_1B_CONCERT_TOOTY, ACTOR_92_CONCERT_TOOTY, ASSET_35A_MODEL_CONCERT_TOOTY,
MARKER_1B_CONCERT_TOOTY, ACTOR_92_CONCERT_TOOTY, ASSET_35A_MODEL_CONCERT_TOOTY,
1, NULL,
NULL, func_802E07E0, func_802E0738,
0, 0, 3.0f, 0
@@ -471,7 +471,7 @@ ActorInfo D_8038E470 =
ActorInfo D_8038E494 =
{
0x143, 0x2FA, 0x46A,
0x143, ACTOR_2FA_BANJOS_HOUSE_ROYSTEN, 0x46A,
1, NULL,
NULL, func_802E07E0, func_802E0738,
0, 0, 0.0f, 0
+1 -1
View File
@@ -282,7 +282,7 @@ void chBossJinjo_update(Actor *this){
case BOSSJINJO_STATE_5_HIT:
chfinalboss_getPosition(position_finalboss);
position_finalboss[1] += 100.0f;
chfinalboss_func_80387470(this, position_finalboss, 1200.0f, 3840.0f, 200.0f, 2500.0f, 70.0f);
chfinalboss_flyTo(this, position_finalboss, 1200.0f, 3840.0f, 200.0f, 2500.0f, 70.0f);
chbossjinjo_func_8038C79C(this);
break;
}

Some files were not shown because too many files have changed in this diff Show More