From 84aa5ad890e47bb4d73815ba102789cc368dc288 Mon Sep 17 00:00:00 2001 From: Prince Frizzy Date: Sun, 13 Mar 2022 04:22:48 -0400 Subject: [PATCH] Fixes for multiple players getting a star cutscene, Even if they didn't spawn it. (#22) * Fix up star cutscene issues. --- autogen/lua_definitions/constants.lua | 2901 ++++++++++--------- autogen/lua_definitions/functions.lua | 80 +- autogen/lua_definitions/structs.lua | 38 +- docs/lua/functions.md | 44 + docs/lua/structs.md | 1 + include/object_fields.h | 5 +- src/game/behaviors/king_bobomb.inc.c | 21 +- src/game/behaviors/sparkle_spawn_star.inc.c | 39 +- src/game/behaviors/spawn_star.inc.c | 57 +- src/game/behaviors/ukiki.inc.c | 2 +- src/game/behaviors/wiggler.inc.c | 15 +- src/game/obj_behaviors.c | 20 + src/game/obj_behaviors.h | 2 + src/pc/lua/smlua_cobject_autogen.c | 3 +- src/pc/lua/smlua_functions_autogen.c | 30 + src/pc/network/packets/packet_spawn_star.c | 1 + 16 files changed, 1731 insertions(+), 1528 deletions(-) diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 7959a9857..3aed9fa27 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -265,1425 +265,6 @@ function SOUND_ARG_LOAD(bank, playFlags, soundID, priority, flags2) end ---- @type integer -NO_SOUND = 0 - ---- @type integer -SOUNDARGS_MASK_BANK = 0xF0000000 - ---- @type integer -SOUNDARGS_MASK_PRIORITY = 0x0000FF00 - ---- @type integer -SOUNDARGS_MASK_SOUNDID = 0x00FF0000 - ---- @type integer -SOUNDARGS_MASK_STATUS = 0x0000000F - ---- @type integer -SOUNDARGS_SHIFT_BANK = 28 - ---- @type integer -SOUNDARGS_SHIFT_PRIORITY = 8 - ---- @type integer -SOUNDARGS_SHIFT_SOUNDID = 16 - ---- @type integer -SOUND_ACTION_BONK = SOUND_ARG_LOAD(0, 4, 0x45, 0xA0, 8) - ---- @type integer -SOUND_ACTION_BOUNCE_OFF_OBJECT = SOUND_ARG_LOAD(0, 4, 0x59, 0xB0, 8) - ---- @type integer -SOUND_ACTION_BRUSH_HAIR = SOUND_ARG_LOAD(0, 4, 0x40, 0x80, 8) - ---- @type integer -SOUND_ACTION_CLAP_HANDS_COLD = SOUND_ARG_LOAD(0, 6, 0x2C, 0x00, 8) - ---- @type integer -SOUND_ACTION_CLIMB_DOWN_TREE = 0x003B - ---- @type integer -SOUND_ACTION_CLIMB_UP_POLE = SOUND_ARG_LOAD(0, 4, 0x41, 0x80, 8) - ---- @type integer -SOUND_ACTION_CLIMB_UP_TREE = SOUND_ARG_LOAD(0, 4, 0x3A, 0x80, 8) - ---- @type integer -SOUND_ACTION_FLYING_FAST = SOUND_ARG_LOAD(0, 4, 0x56, 0x80, 8) - ---- @type integer -SOUND_ACTION_HANGING_STEP = SOUND_ARG_LOAD(0, 4, 0x2D, 0xA0, 8) - ---- @type integer -SOUND_ACTION_HIT = SOUND_ARG_LOAD(0, 4, 0x44, 0xC0, 8) - ---- @type integer -SOUND_ACTION_HIT_2 = SOUND_ARG_LOAD(0, 4, 0x44, 0xB0, 8) - ---- @type integer -SOUND_ACTION_HIT_3 = SOUND_ARG_LOAD(0, 4, 0x44, 0xA0, 8) - ---- @type integer -SOUND_ACTION_INTRO_UNK45E = SOUND_ARG_LOAD(0, 4, 0x5E, 0x80, 8) - ---- @type integer -SOUND_ACTION_INTRO_UNK45F = SOUND_ARG_LOAD(0, 4, 0x5F, 0x80, 8) - ---- @type integer -SOUND_ACTION_KEY_SWISH = SOUND_ARG_LOAD(0, 4, 0x36, 0x80, 8) - ---- @type integer -SOUND_ACTION_METAL_BONK = SOUND_ARG_LOAD(0, 4, 0x42, 0x80, 8) - ---- @type integer -SOUND_ACTION_METAL_HEAVY_LANDING = SOUND_ARG_LOAD(0, 4, 0x2B, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_JUMP = SOUND_ARG_LOAD(0, 4, 0x28, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_JUMP_WATER = SOUND_ARG_LOAD(0, 4, 0x50, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_LANDING = SOUND_ARG_LOAD(0, 4, 0x29, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_LAND_WATER = SOUND_ARG_LOAD(0, 4, 0x51, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_STEP = SOUND_ARG_LOAD(0, 4, 0x2A, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_STEP_TIPTOE = SOUND_ARG_LOAD(0, 4, 0x2F, 0x90, 8) - ---- @type integer -SOUND_ACTION_METAL_STEP_WATER = SOUND_ARG_LOAD(0, 4, 0x52, 0x90, 8) - ---- @type integer -SOUND_ACTION_PAT_BACK = SOUND_ARG_LOAD(0, 4, 0x3F, 0x80, 8) - ---- @type integer -SOUND_ACTION_QUICKSAND_STEP = SOUND_ARG_LOAD(0, 4, 0x2E, 0x00, 8) - ---- @type integer -SOUND_ACTION_READ_SIGN = SOUND_ARG_LOAD(0, 4, 0x5B, 0xFF, 8) - ---- @type integer -SOUND_ACTION_SHRINK_INTO_BBH = SOUND_ARG_LOAD(0, 4, 0x46, 0xA0, 8) - ---- @type integer -SOUND_ACTION_SIDE_FLIP_UNK = SOUND_ARG_LOAD(0, 4, 0x5A, 0x80, 8) - ---- @type integer -SOUND_ACTION_SPIN = SOUND_ARG_LOAD(0, 4, 0x37, 0x80, 8) - ---- @type integer -SOUND_ACTION_SWIM = SOUND_ARG_LOAD(0, 4, 0x33, 0x80, 8) - ---- @type integer -SOUND_ACTION_SWIM_FAST = SOUND_ARG_LOAD(0, 4, 0x47, 0xA0, 8) - ---- @type integer -SOUND_ACTION_TELEPORT = SOUND_ARG_LOAD(0, 4, 0x57, 0xC0, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_BODY_HIT_GROUND = SOUND_ARG_LOAD(0, 4, 0x18, 0x80, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_HEAVY_LANDING = SOUND_ARG_LOAD(0, 4, 0x60, 0x80, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_JUMP = SOUND_ARG_LOAD(0, 4, 0x00, 0x80, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_LANDING = SOUND_ARG_LOAD(0, 4, 0x08, 0x80, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_STEP = SOUND_ARG_LOAD(0, 6, 0x10, 0x80, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_STEP_TIPTOE = SOUND_ARG_LOAD(0, 6, 0x20, 0x80, 8) - ---- @type integer -SOUND_ACTION_TERRAIN_STUCK_IN_GROUND = SOUND_ARG_LOAD(0, 4, 0x48, 0x80, 8) - ---- @type integer -SOUND_ACTION_THROW = SOUND_ARG_LOAD(0, 4, 0x35, 0x80, 8) - ---- @type integer -SOUND_ACTION_TWIRL = SOUND_ARG_LOAD(0, 4, 0x38, 0x80, 8) - ---- @type integer -SOUND_ACTION_UNK3C = 0x003C - ---- @type integer -SOUND_ACTION_UNK53 = 0x0053 - ---- @type integer -SOUND_ACTION_UNK54 = 0x0054 - ---- @type integer -SOUND_ACTION_UNK55 = 0x0055 - ---- @type integer -SOUND_ACTION_UNK5D = 0x005D - ---- @type integer -SOUND_ACTION_UNKNOWN430 = SOUND_ARG_LOAD(0, 4, 0x30, 0xC0, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN431 = SOUND_ARG_LOAD(0, 4, 0x31, 0x60, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN432 = SOUND_ARG_LOAD(0, 4, 0x32, 0x80, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN434 = SOUND_ARG_LOAD(0, 4, 0x34, 0x80, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN43D = SOUND_ARG_LOAD(0, 4, 0x3D, 0x80, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN43E = SOUND_ARG_LOAD(0, 4, 0x3E, 0x80, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN458 = SOUND_ARG_LOAD(0, 4, 0x58, 0xA0, 8) - ---- @type integer -SOUND_ACTION_UNKNOWN45C = SOUND_ARG_LOAD(0, 4, 0x5C, 0x80, 8) - ---- @type integer -SOUND_ACTION_UNSTUCK_FROM_GROUND = SOUND_ARG_LOAD(0, 4, 0x43, 0x80, 8) - ---- @type integer -SOUND_AIR_AMP_BUZZ = SOUND_ARG_LOAD(6, 0, 0x03, 0x40, 0) - ---- @type integer -SOUND_AIR_BLOW_FIRE = SOUND_ARG_LOAD(6, 0, 0x04, 0x80, 0) - ---- @type integer -SOUND_AIR_BLOW_WIND = SOUND_ARG_LOAD(6, 0, 0x04, 0x40, 0) - ---- @type integer -SOUND_AIR_BOBOMB_LIT_FUSE = SOUND_ARG_LOAD(6, 0, 0x08, 0x60, 0) - ---- @type integer -SOUND_AIR_BOWSER_SPIT_FIRE = SOUND_ARG_LOAD(6, 0, 0x00, 0x00, 0) - ---- @type integer -SOUND_AIR_CASTLE_OUTDOORS_AMBIENT = SOUND_ARG_LOAD(6, 0, 0x10, 0x40, 0) - ---- @type integer -SOUND_AIR_CHUCKYA_MOVE = SOUND_ARG_LOAD(6, 0, 0x0A, 0x40, 0) - ---- @type integer -SOUND_AIR_HEAVEHO_MOVE = SOUND_ARG_LOAD(6, 0, 0x06, 0x40, 0) - ---- @type integer -SOUND_AIR_HOWLING_WIND = SOUND_ARG_LOAD(6, 0, 0x09, 0x80, 0) - ---- @type integer -SOUND_AIR_LAKITU_FLY = SOUND_ARG_LOAD(6, 0, 0x02, 0x80, 0) - ---- @type integer -SOUND_AIR_LAKITU_FLY_HIGHPRIO = SOUND_ARG_LOAD(6, 0, 0x02, 0xFF, 0) - ---- @type integer -SOUND_AIR_PEACH_TWINKLE = SOUND_ARG_LOAD(6, 0, 0x0B, 0x40, 0) - ---- @type integer -SOUND_AIR_ROUGH_SLIDE = SOUND_ARG_LOAD(6, 0, 0x05, 0x00, 0) - ---- @type integer -SOUND_AIR_UNK01 = 0x6001 - ---- @type integer -SOUND_AIR_UNK07 = 0x6007 - ---- @type integer -SOUND_ENV_BOAT_ROCKING1 = SOUND_ARG_LOAD(4, 0, 0x0B, 0x00, 0) - ---- @type integer -SOUND_ENV_DRONING1 = SOUND_ARG_LOAD(4, 1, 0x03, 0x00, 0) - ---- @type integer -SOUND_ENV_DRONING2 = SOUND_ARG_LOAD(4, 0, 0x04, 0x00, 0) - ---- @type integer -SOUND_ENV_ELEVATOR1 = SOUND_ARG_LOAD(4, 0, 0x02, 0x00, 0) - ---- @type integer -SOUND_ENV_ELEVATOR2 = SOUND_ARG_LOAD(4, 0, 0x08, 0x00, 0) - ---- @type integer -SOUND_ENV_ELEVATOR3 = SOUND_ARG_LOAD(4, 0, 0x0C, 0x00, 0) - ---- @type integer -SOUND_ENV_ELEVATOR4 = SOUND_ARG_LOAD(4, 0, 0x0D, 0x00, 0) - ---- @type integer -SOUND_ENV_ELEVATOR4_2 = SOUND_ARG_LOAD(4, 1, 0x0D, 0x00, 0) - ---- @type integer -SOUND_ENV_MERRY_GO_ROUND_CREAKING = SOUND_ARG_LOAD(4, 0, 0x0F, 0x40, 0) - ---- @type integer -SOUND_ENV_METAL_BOX_PUSH = SOUND_ARG_LOAD(4, 0, 0x17, 0x80, 0) - ---- @type integer -SOUND_ENV_MOVINGSAND = SOUND_ARG_LOAD(4, 0, 0x0E, 0x00, 0) - ---- @type integer -SOUND_ENV_MOVING_SAND_SNOW = 0x4006 - ---- @type integer -SOUND_ENV_SINK_QUICKSAND = SOUND_ARG_LOAD(4, 0, 0x18, 0x80, 0) - ---- @type integer -SOUND_ENV_SLIDING = SOUND_ARG_LOAD(4, 0, 0x13, 0x00, 0) - ---- @type integer -SOUND_ENV_STAR = SOUND_ARG_LOAD(4, 0, 0x14, 0x00, 1) - ---- @type integer -SOUND_ENV_UNK07 = 0x4007 - ---- @type integer -SOUND_ENV_UNK12 = 0x4012 - ---- @type integer -SOUND_ENV_UNKNOWN2 = SOUND_ARG_LOAD(4, 0, 0x0A, 0x00, 0) - ---- @type integer -SOUND_ENV_UNKNOWN4 = SOUND_ARG_LOAD(4, 1, 0x15, 0x00, 0) - ---- @type integer -SOUND_ENV_WATER = SOUND_ARG_LOAD(4, 0, 0x09, 0x00, 0) - ---- @type integer -SOUND_ENV_WATERFALL1 = SOUND_ARG_LOAD(4, 0, 0x00, 0x00, 0) - ---- @type integer -SOUND_ENV_WATERFALL2 = SOUND_ARG_LOAD(4, 0, 0x01, 0x00, 0) - ---- @type integer -SOUND_ENV_WATER_DRAIN = SOUND_ARG_LOAD(4, 1, 0x16, 0x00, 0) - ---- @type integer -SOUND_ENV_WIND1 = SOUND_ARG_LOAD(4, 0, 0x05, 0x00, 0) - ---- @type integer -SOUND_ENV_WIND2 = SOUND_ARG_LOAD(4, 0, 0x10, 0x80, 0) - ---- @type integer -SOUND_GENERAL2_1UP_APPEAR = SOUND_ARG_LOAD(8, 0, 0x63, 0xD0, 8) - ---- @type integer -SOUND_GENERAL2_BIRD_CHIRP2 = SOUND_ARG_LOAD(8, 0, 0x50, 0x40, 0) - ---- @type integer -SOUND_GENERAL2_BOBOMB_EXPLOSION = SOUND_ARG_LOAD(8, 0, 0x2E, 0x20, 8) - ---- @type integer -SOUND_GENERAL2_BOWSER_EXPLODE = SOUND_ARG_LOAD(8, 0, 0x60, 0x00, 8) - ---- @type integer -SOUND_GENERAL2_BOWSER_KEY = SOUND_ARG_LOAD(8, 0, 0x61, 0x00, 8) - ---- @type integer -SOUND_GENERAL2_PURPLE_SWITCH = SOUND_ARG_LOAD(8, 0, 0x3E, 0xC0, 8) - ---- @type integer -SOUND_GENERAL2_PYRAMID_TOP_EXPLOSION = SOUND_ARG_LOAD(8, 1, 0x4C, 0xF0, 8) - ---- @type integer -SOUND_GENERAL2_PYRAMID_TOP_SPIN = SOUND_ARG_LOAD(8, 1, 0x4B, 0xE0, 8) - ---- @type integer -SOUND_GENERAL2_RIGHT_ANSWER = SOUND_ARG_LOAD(8, 0, 0x6A, 0xA0, 8) - ---- @type integer -SOUND_GENERAL2_ROTATING_BLOCK_ALERT = SOUND_ARG_LOAD(8, 0, 0x59, 0x00, 8) - ---- @type integer -SOUND_GENERAL2_ROTATING_BLOCK_CLICK = SOUND_ARG_LOAD(8, 0, 0x40, 0x00, 8) - ---- @type integer -SOUND_GENERAL2_SPINDEL_ROLL = SOUND_ARG_LOAD(8, 0, 0x48, 0x20, 8) - ---- @type integer -SOUND_GENERAL2_STAR_APPEARS = SOUND_ARG_LOAD(8, 0, 0x57, 0xFF, 9) - ---- @type integer -SOUND_GENERAL2_SWITCH_TICK_FAST = SOUND_ARG_LOAD(8, 0, 0x54, 0xF0, 1) - ---- @type integer -SOUND_GENERAL2_SWITCH_TICK_SLOW = SOUND_ARG_LOAD(8, 0, 0x55, 0xF0, 1) - ---- @type integer -SOUND_GENERAL_ACTIVATE_CAP_SWITCH = SOUND_ARG_LOAD(3, 0, 0x00, 0x80, 8) - ---- @type integer -SOUND_GENERAL_BIG_CLOCK = SOUND_ARG_LOAD(3, 0, 0x17, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BIG_POUND = SOUND_ARG_LOAD(3, 0, 0x44, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BIRDS_FLY_AWAY = SOUND_ARG_LOAD(3, 0, 0x69, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BOAT_ROCK = SOUND_ARG_LOAD(3, 0, 0x75, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BOAT_TILT1 = SOUND_ARG_LOAD(3, 0, 0x34, 0x40, 8) - ---- @type integer -SOUND_GENERAL_BOAT_TILT2 = SOUND_ARG_LOAD(3, 0, 0x35, 0x40, 8) - ---- @type integer -SOUND_GENERAL_BOING1 = SOUND_ARG_LOAD(3, 0, 0x6C, 0x40, 8) - ---- @type integer -SOUND_GENERAL_BOING2 = SOUND_ARG_LOAD(3, 0, 0x6D, 0x40, 8) - ---- @type integer -SOUND_GENERAL_BOING2_LOWPRIO = SOUND_ARG_LOAD(3, 0, 0x6D, 0x20, 8) - ---- @type integer -SOUND_GENERAL_BOING3 = 0x3072 - ---- @type integer -SOUND_GENERAL_BOWSER_BOMB_EXPLOSION = SOUND_ARG_LOAD(3, 1, 0x2F, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BOWSER_PLATFORM = SOUND_ARG_LOAD(3, 0, 0x62, 0x80, 8) - ---- @type integer -SOUND_GENERAL_BOWSER_PLATFORM_2 = SOUND_ARG_LOAD(3, 1, 0x62, 0x80, 8) - ---- @type integer -SOUND_GENERAL_BOX_LANDING = SOUND_ARG_LOAD(3, 0, 0x24, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BOX_LANDING_2 = SOUND_ARG_LOAD(3, 2, 0x24, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BREAK_BOX = SOUND_ARG_LOAD(3, 0, 0x41, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_BUBBLES = 0x3008 - ---- @type integer -SOUND_GENERAL_BUTTON_PRESS = SOUND_ARG_LOAD(3, 0, 0x5A, 0x40, 8) - ---- @type integer -SOUND_GENERAL_BUTTON_PRESS_2 = SOUND_ARG_LOAD(3, 1, 0x5A, 0x40, 8) - ---- @type integer -SOUND_GENERAL_BUTTON_PRESS_2_LOWPRIO = SOUND_ARG_LOAD(3, 1, 0x5A, 0x00, 8) - ---- @type integer -SOUND_GENERAL_BUTTON_PRESS_LOWPRIO = SOUND_ARG_LOAD(3, 0, 0x5A, 0x00, 8) - ---- @type integer -SOUND_GENERAL_CAGE_OPEN = SOUND_ARG_LOAD(3, 0, 0x3F, 0xA0, 8) - ---- @type integer -SOUND_GENERAL_CANNON_UP = SOUND_ARG_LOAD(3, 0, 0x47, 0x80, 8) - ---- @type integer -SOUND_GENERAL_CASTLE_TRAP_OPEN = SOUND_ARG_LOAD(3, 0, 0x0E, 0x80, 8) - ---- @type integer -SOUND_GENERAL_CHAIN_CHOMP1 = SOUND_ARG_LOAD(3, 0, 0x39, 0x00, 8) - ---- @type integer -SOUND_GENERAL_CHAIN_CHOMP2 = SOUND_ARG_LOAD(3, 0, 0x3A, 0x00, 8) - ---- @type integer -SOUND_GENERAL_CLAM_SHELL1 = SOUND_ARG_LOAD(3, 1, 0x22, 0x80, 8) - ---- @type integer -SOUND_GENERAL_CLAM_SHELL2 = SOUND_ARG_LOAD(3, 0, 0x26, 0x40, 8) - ---- @type integer -SOUND_GENERAL_CLAM_SHELL3 = SOUND_ARG_LOAD(3, 0, 0x27, 0x40, 8) - ---- @type integer -SOUND_GENERAL_CLOSE_IRON_DOOR = SOUND_ARG_LOAD(3, 0, 0x07, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_CLOSE_WOOD_DOOR = SOUND_ARG_LOAD(3, 0, 0x05, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_COIN = SOUND_ARG_LOAD(3, 8, 0x11, 0x80, 8) - ---- @type integer -SOUND_GENERAL_COIN_DROP = SOUND_ARG_LOAD(3, 0, 0x36, 0x40, 8) - ---- @type integer -SOUND_GENERAL_COIN_SPURT = SOUND_ARG_LOAD(3, 0, 0x30, 0x00, 8) - ---- @type integer -SOUND_GENERAL_COIN_SPURT_2 = SOUND_ARG_LOAD(3, 8, 0x30, 0x00, 8) - ---- @type integer -SOUND_GENERAL_COIN_SPURT_EU = SOUND_ARG_LOAD(3, 8, 0x30, 0x20, 8) - ---- @type integer -SOUND_GENERAL_COIN_WATER = SOUND_ARG_LOAD(3, 8, 0x12, 0x80, 8) - ---- @type integer -SOUND_GENERAL_COLLECT_1UP = SOUND_ARG_LOAD(3, 0, 0x58, 0xFF, 8) - ---- @type integer -SOUND_GENERAL_DONUT_PLATFORM_EXPLOSION = SOUND_ARG_LOAD(3, 0, 0x2E, 0x20, 8) - ---- @type integer -SOUND_GENERAL_DOOR_INSERT_KEY = SOUND_ARG_LOAD(3, 0, 0x42, 0x00, 8) - ---- @type integer -SOUND_GENERAL_DOOR_TURN_KEY = SOUND_ARG_LOAD(3, 0, 0x3B, 0x00, 8) - ---- @type integer -SOUND_GENERAL_ELEVATOR_MOVE = SOUND_ARG_LOAD(3, 0, 0x5B, 0x00, 8) - ---- @type integer -SOUND_GENERAL_ELEVATOR_MOVE_2 = SOUND_ARG_LOAD(3, 1, 0x5B, 0x00, 8) - ---- @type integer -SOUND_GENERAL_ENEMY_ALERT1 = SOUND_ARG_LOAD(3, 0, 0x6F, 0x30, 8) - ---- @type integer -SOUND_GENERAL_EXPLOSION6 = 0x3031 - ---- @type integer -SOUND_GENERAL_EXPLOSION7 = 0x3049 - ---- @type integer -SOUND_GENERAL_FLAME_OUT = SOUND_ARG_LOAD(3, 0, 0x03, 0x80, 8) - ---- @type integer -SOUND_GENERAL_GRAND_STAR = SOUND_ARG_LOAD(3, 0, 0x73, 0x00, 8) - ---- @type integer -SOUND_GENERAL_GRAND_STAR_JUMP = SOUND_ARG_LOAD(3, 0, 0x74, 0x00, 8) - ---- @type integer -SOUND_GENERAL_GRINDEL_ROLL = SOUND_ARG_LOAD(3, 0, 0x48, 0x00, 8) - ---- @type integer -SOUND_GENERAL_HAUNTED_CHAIR = SOUND_ARG_LOAD(3, 0, 0x5D, 0x00, 8) - ---- @type integer -SOUND_GENERAL_HAUNTED_CHAIR_MOVE = SOUND_ARG_LOAD(3, 0, 0x5F, 0x00, 8) - ---- @type integer -SOUND_GENERAL_HEART_SPIN = SOUND_ARG_LOAD(3, 0, 0x64, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_LEVEL_SELECT_CHANGE = SOUND_ARG_LOAD(3, 0, 0x2B, 0x00, 8) - ---- @type integer -SOUND_GENERAL_LOUD_POUND = 0x3018 - ---- @type integer -SOUND_GENERAL_LOUD_POUND2 = 0x3019 - ---- @type integer -SOUND_GENERAL_METAL_POUND = SOUND_ARG_LOAD(3, 0, 0x6B, 0x80, 8) - ---- @type integer -SOUND_GENERAL_MOVING_IN_SAND = SOUND_ARG_LOAD(3, 0, 0x3C, 0x00, 8) - ---- @type integer -SOUND_GENERAL_MOVING_PLATFORM_SWITCH = SOUND_ARG_LOAD(3, 0, 0x3E, 0x00, 8) - ---- @type integer -SOUND_GENERAL_MOVING_WATER = SOUND_ARG_LOAD(3, 0, 0x09, 0x00, 8) - ---- @type integer -SOUND_GENERAL_OPEN_CHEST = SOUND_ARG_LOAD(3, 1, 0x20, 0x80, 8) - ---- @type integer -SOUND_GENERAL_OPEN_IRON_DOOR = SOUND_ARG_LOAD(3, 0, 0x06, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_OPEN_WOOD_DOOR = SOUND_ARG_LOAD(3, 0, 0x04, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_PAINTING_EJECT = SOUND_ARG_LOAD(3, 9, 0x28, 0x00, 8) - ---- @type integer -SOUND_GENERAL_PENDULUM_SWING = SOUND_ARG_LOAD(3, 0, 0x38, 0x00, 8) - ---- @type integer -SOUND_GENERAL_PLATFORM = SOUND_ARG_LOAD(3, 0, 0x2D, 0x80, 8) - ---- @type integer -SOUND_GENERAL_POUND_ROCK = SOUND_ARG_LOAD(3, 0, 0x56, 0x00, 8) - ---- @type integer -SOUND_GENERAL_POUND_WOOD_POST = SOUND_ARG_LOAD(3, 0, 0x65, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_QUIET_BUBBLE = SOUND_ARG_LOAD(3, 0, 0x0B, 0x00, 8) - ---- @type integer -SOUND_GENERAL_QUIET_BUBBLE2 = SOUND_ARG_LOAD(3, 0, 0x0D, 0x00, 8) - ---- @type integer -SOUND_GENERAL_QUIET_POUND1 = SOUND_ARG_LOAD(3, 0, 0x40, 0x40, 8) - ---- @type integer -SOUND_GENERAL_QUIET_POUND1_LOWPRIO = SOUND_ARG_LOAD(3, 0, 0x40, 0x00, 8) - ---- @type integer -SOUND_GENERAL_QUIET_POUND2 = SOUND_ARG_LOAD(3, 0, 0x43, 0x00, 8) - ---- @type integer -SOUND_GENERAL_RACE_GUN_SHOT = SOUND_ARG_LOAD(3, 1, 0x4D, 0x40, 8) - ---- @type integer -SOUND_GENERAL_RED_COIN = SOUND_ARG_LOAD(3, 0, 0x68, 0x90, 8) - ---- @type integer -SOUND_GENERAL_SHAKE_COFFIN = 0x304A - ---- @type integer -SOUND_GENERAL_SHORT_POUND1 = 0x301A - ---- @type integer -SOUND_GENERAL_SHORT_POUND2 = 0x301B - ---- @type integer -SOUND_GENERAL_SHORT_POUND3 = 0x301C - ---- @type integer -SOUND_GENERAL_SHORT_POUND4 = 0x301D - ---- @type integer -SOUND_GENERAL_SHORT_POUND5 = 0x301E - ---- @type integer -SOUND_GENERAL_SHORT_POUND6 = 0x301F - ---- @type integer -SOUND_GENERAL_SHORT_STAR = SOUND_ARG_LOAD(3, 0, 0x16, 0x00, 9) - ---- @type integer -SOUND_GENERAL_SOFT_LANDING = SOUND_ARG_LOAD(3, 0, 0x5E, 0x00, 8) - ---- @type integer -SOUND_GENERAL_SPLATTERING = SOUND_ARG_LOAD(3, 0, 0x71, 0x30, 8) - ---- @type integer -SOUND_GENERAL_STAR_APPEARS = SOUND_ARG_LOAD(3, 0, 0x57, 0xFF, 9) - ---- @type integer -SOUND_GENERAL_STAR_DOOR_CLOSE = SOUND_ARG_LOAD(3, 0, 0x4F, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_STAR_DOOR_OPEN = SOUND_ARG_LOAD(3, 0, 0x4E, 0xC0, 8) - ---- @type integer -SOUND_GENERAL_SWISH_AIR = SOUND_ARG_LOAD(3, 0, 0x5C, 0x00, 8) - ---- @type integer -SOUND_GENERAL_SWISH_AIR_2 = SOUND_ARG_LOAD(3, 1, 0x5C, 0x00, 8) - ---- @type integer -SOUND_GENERAL_SWISH_WATER = SOUND_ARG_LOAD(3, 0, 0x0A, 0x00, 8) - ---- @type integer -SOUND_GENERAL_SWITCH_DOOR_OPEN = SOUND_ARG_LOAD(3, 0, 0x67, 0xA0, 8) - ---- @type integer -SOUND_GENERAL_UNK32 = 0x3032 - ---- @type integer -SOUND_GENERAL_UNK45 = SOUND_ARG_LOAD(3, 0, 0x45, 0x00, 8) - ---- @type integer -SOUND_GENERAL_UNK46 = SOUND_ARG_LOAD(3, 0, 0x46, 0x80, 8) - ---- @type integer -SOUND_GENERAL_UNK46_LOWPRIO = SOUND_ARG_LOAD(3, 0, 0x46, 0x00, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN1 = SOUND_ARG_LOAD(3, 0, 0x25, 0x00, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN1_2 = SOUND_ARG_LOAD(3, 2, 0x25, 0x00, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN3 = SOUND_ARG_LOAD(3, 0, 0x37, 0x80, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN3_2 = SOUND_ARG_LOAD(3, 8, 0x37, 0x80, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN3_LOWPRIO = SOUND_ARG_LOAD(3, 0, 0x37, 0x00, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN4 = SOUND_ARG_LOAD(3, 0, 0x3D, 0x80, 8) - ---- @type integer -SOUND_GENERAL_UNKNOWN4_LOWPRIO = SOUND_ARG_LOAD(3, 0, 0x3D, 0x00, 8) - ---- @type integer -SOUND_GENERAL_VANISH_SFX = SOUND_ARG_LOAD(3, 0, 0x76, 0x20, 8) - ---- @type integer -SOUND_GENERAL_VOLCANO_EXPLOSION = SOUND_ARG_LOAD(3, 0, 0x0C, 0x80, 8) - ---- @type integer -SOUND_GENERAL_WALL_EXPLOSION = SOUND_ARG_LOAD(3, 0, 0x0F, 0x00, 8) - ---- @type integer -SOUND_GENERAL_WATER_LEVEL_TRIG = SOUND_ARG_LOAD(3, 0, 0x66, 0x80, 8) - ---- @type integer -SOUND_GENERAL_YOSHI_TALK = SOUND_ARG_LOAD(3, 0, 0x70, 0x30, 8) - ---- @type integer -SOUND_GENERAL_YOSHI_WALK = SOUND_ARG_LOAD(3, 0, 0x6E, 0x20, 8) - ---- @type integer -SOUND_LO_BITFLAG_UNK1 = 0x10 - ---- @type integer -SOUND_LO_BITFLAG_UNK8 = 0x80 - ---- @type integer -SOUND_MARIO_ATTACKED = SOUND_ARG_LOAD(2, 4, 0x0A, 0xFF, 8) - ---- @type integer -SOUND_MARIO_COUGHING1 = SOUND_ARG_LOAD(2, 4, 0x1B, 0x80, 8) - ---- @type integer -SOUND_MARIO_COUGHING2 = SOUND_ARG_LOAD(2, 4, 0x1C, 0x80, 8) - ---- @type integer -SOUND_MARIO_COUGHING3 = SOUND_ARG_LOAD(2, 4, 0x1D, 0x80, 8) - ---- @type integer -SOUND_MARIO_DOH = SOUND_ARG_LOAD(2, 4, 0x30, 0x80, 8) - ---- @type integer -SOUND_MARIO_DROWNING = SOUND_ARG_LOAD(2, 4, 0x23, 0xF0, 8) - ---- @type integer -SOUND_MARIO_DYING = SOUND_ARG_LOAD(2, 4, 0x15, 0xFF, 8) - ---- @type integer -SOUND_MARIO_EEUH = SOUND_ARG_LOAD(2, 4, 0x09, 0x80, 8) - ---- @type integer -SOUND_MARIO_GAME_OVER = SOUND_ARG_LOAD(2, 4, 0x31, 0xFF, 8) - ---- @type integer -SOUND_MARIO_GROUND_POUND_WAH = SOUND_ARG_LOAD(2, 4, 0x22, 0x80, 8) - ---- @type integer -SOUND_MARIO_HAHA = SOUND_ARG_LOAD(2, 4, 0x11, 0x80, 8) - ---- @type integer -SOUND_MARIO_HAHA_2 = SOUND_ARG_LOAD(2, 4, 0x11, 0xF0, 8) - ---- @type integer -SOUND_MARIO_HELLO = SOUND_ARG_LOAD(2, 4, 0x32, 0xFF, 8) - ---- @type integer -SOUND_MARIO_HERE_WE_GO = SOUND_ARG_LOAD(2, 4, 0x0C, 0x80, 8) - ---- @type integer -SOUND_MARIO_HOOHOO = SOUND_ARG_LOAD(2, 4, 0x03, 0x80, 8) - ---- @type integer -SOUND_MARIO_HRMM = SOUND_ARG_LOAD(2, 4, 0x06, 0x80, 8) - ---- @type integer -SOUND_MARIO_IMA_TIRED = SOUND_ARG_LOAD(2, 4, 0x37, 0x80, 8) - ---- @type integer -SOUND_MARIO_MAMA_MIA = SOUND_ARG_LOAD(2, 4, 0x20, 0x80, 8) - ---- @type integer -SOUND_MARIO_OKEY_DOKEY = 0x2021 - ---- @type integer -SOUND_MARIO_ON_FIRE = SOUND_ARG_LOAD(2, 4, 0x14, 0xA0, 8) - ---- @type integer -SOUND_MARIO_OOOF = SOUND_ARG_LOAD(2, 4, 0x0B, 0x80, 8) - ---- @type integer -SOUND_MARIO_OOOF2 = SOUND_ARG_LOAD(2, 4, 0x0B, 0xD0, 8) - ---- @type integer -SOUND_MARIO_PANTING = SOUND_ARG_LOAD(2, 4, 0x18, 0x80, 8) - ---- @type integer -SOUND_MARIO_PANTING_COLD = SOUND_ARG_LOAD(2, 4, 0x16, 0x80, 8) - ---- @type integer -SOUND_MARIO_PRESS_START_TO_PLAY = SOUND_ARG_LOAD(2, 4, 0x33, 0xFF, 0xA) - ---- @type integer -SOUND_MARIO_PUNCH_HOO = SOUND_ARG_LOAD(2, 4, 0x1F, 0x80, 8) - ---- @type integer -SOUND_MARIO_PUNCH_WAH = SOUND_ARG_LOAD(2, 4, 0x24, 0x80, 8) - ---- @type integer -SOUND_MARIO_PUNCH_YAH = SOUND_ARG_LOAD(2, 4, 0x1E, 0x80, 8) - ---- @type integer -SOUND_MARIO_SNORING1 = SOUND_ARG_LOAD(2, 4, 0x0E, 0x00, 8) - ---- @type integer -SOUND_MARIO_SNORING2 = SOUND_ARG_LOAD(2, 4, 0x0F, 0x00, 8) - ---- @type integer -SOUND_MARIO_SNORING3 = SOUND_ARG_LOAD(2, 4, 0x35, 0x00, 8) - ---- @type integer -SOUND_MARIO_SO_LONGA_BOWSER = SOUND_ARG_LOAD(2, 4, 0x36, 0x80, 8) - ---- @type integer -SOUND_MARIO_TWIRL_BOUNCE = SOUND_ARG_LOAD(2, 4, 0x34, 0x80, 8) - ---- @type integer -SOUND_MARIO_UH = SOUND_ARG_LOAD(2, 4, 0x05, 0x80, 8) - ---- @type integer -SOUND_MARIO_UH2 = SOUND_ARG_LOAD(2, 4, 0x13, 0xD0, 8) - ---- @type integer -SOUND_MARIO_UH2_2 = SOUND_ARG_LOAD(2, 4, 0x13, 0x80, 8) - ---- @type integer -SOUND_MARIO_WAAAOOOW = SOUND_ARG_LOAD(2, 4, 0x10, 0xC0, 8) - ---- @type integer -SOUND_MARIO_WAH2 = SOUND_ARG_LOAD(2, 4, 0x07, 0x80, 8) - ---- @type integer -SOUND_MARIO_WHOA = SOUND_ARG_LOAD(2, 4, 0x08, 0xC0, 8) - ---- @type integer -SOUND_MARIO_YAHOO = SOUND_ARG_LOAD(2, 4, 0x04, 0x80, 8) - ---- @type integer -SOUND_MARIO_YAHOO_WAHA_YIPPEE = SOUND_ARG_LOAD(2, 4, 0x2B, 0x80, 8) - ---- @type integer -SOUND_MARIO_YAH_WAH_HOO = SOUND_ARG_LOAD(2, 4, 0x00, 0x80, 8) - ---- @type integer -SOUND_MARIO_YAWNING = SOUND_ARG_LOAD(2, 4, 0x0D, 0x80, 8) - ---- @type integer -SOUND_MENU_BOWSER_LAUGH = SOUND_ARG_LOAD(7, 0, 0x18, 0x80, 8) - ---- @type integer -SOUND_MENU_CAMERA_BUZZ = SOUND_ARG_LOAD(7, 0, 0x0E, 0x00, 8) - ---- @type integer -SOUND_MENU_CAMERA_TURN = SOUND_ARG_LOAD(7, 0, 0x0F, 0x00, 8) - ---- @type integer -SOUND_MENU_CAMERA_UNUSED1 = 0x701B - ---- @type integer -SOUND_MENU_CAMERA_UNUSED2 = 0x701C - ---- @type integer -SOUND_MENU_CAMERA_ZOOM_IN = SOUND_ARG_LOAD(7, 0, 0x06, 0x00, 8) - ---- @type integer -SOUND_MENU_CAMERA_ZOOM_OUT = SOUND_ARG_LOAD(7, 0, 0x07, 0x00, 8) - ---- @type integer -SOUND_MENU_CHANGE_SELECT = SOUND_ARG_LOAD(7, 0, 0x00, 0xF8, 8) - ---- @type integer -SOUND_MENU_CLICK_CHANGE_VIEW = SOUND_ARG_LOAD(7, 0, 0x1A, 0x80, 8) - ---- @type integer -SOUND_MENU_CLICK_FILE_SELECT = SOUND_ARG_LOAD(7, 0, 0x11, 0x00, 8) - ---- @type integer -SOUND_MENU_COIN_ITS_A_ME_MARIO = SOUND_ARG_LOAD(7, 0, 0x14, 0x00, 8) - ---- @type integer -SOUND_MENU_COLLECT_RED_COIN = SOUND_ARG_LOAD(7, 8, 0x28, 0x90, 8) - ---- @type integer -SOUND_MENU_COLLECT_SECRET = SOUND_ARG_LOAD(7, 0, 0x30, 0x20, 8) - ---- @type integer -SOUND_MENU_ENTER_HOLE = SOUND_ARG_LOAD(7, 1, 0x19, 0x80, 8) - ---- @type integer -SOUND_MENU_ENTER_PIPE = SOUND_ARG_LOAD(7, 0, 0x16, 0xA0, 8) - ---- @type integer -SOUND_MENU_EXIT_A_SIGN = 0x7021 - ---- @type integer -SOUND_MENU_EXIT_PIPE = SOUND_ARG_LOAD(7, 0, 0x17, 0xA0, 8) - ---- @type integer -SOUND_MENU_HAND_APPEAR = SOUND_ARG_LOAD(7, 0, 0x0A, 0x00, 8) - ---- @type integer -SOUND_MENU_HAND_DISAPPEAR = SOUND_ARG_LOAD(7, 0, 0x0B, 0x00, 8) - ---- @type integer -SOUND_MENU_LET_GO_MARIO_FACE = SOUND_ARG_LOAD(7, 0, 0x09, 0x00, 8) - ---- @type integer -SOUND_MENU_MARIO_CASTLE_WARP = SOUND_ARG_LOAD(7, 0, 0x1D, 0xB0, 8) - ---- @type integer -SOUND_MENU_MARIO_CASTLE_WARP2 = SOUND_ARG_LOAD(7, 0, 0x22, 0x20, 8) - ---- @type integer -SOUND_MENU_MESSAGE_APPEAR = SOUND_ARG_LOAD(7, 0, 0x04, 0x00, 8) - ---- @type integer -SOUND_MENU_MESSAGE_DISAPPEAR = SOUND_ARG_LOAD(7, 0, 0x05, 0x00, 8) - ---- @type integer -SOUND_MENU_MESSAGE_NEXT_PAGE = SOUND_ARG_LOAD(7, 0, 0x13, 0x00, 8) - ---- @type integer -SOUND_MENU_PAUSE = SOUND_ARG_LOAD(7, 0, 0x02, 0xF0, 8) - ---- @type integer -SOUND_MENU_PAUSE_2 = SOUND_ARG_LOAD(7, 0, 0x03, 0xFF, 8) - ---- @type integer -SOUND_MENU_PAUSE_HIGHPRIO = SOUND_ARG_LOAD(7, 0, 0x02, 0xFF, 8) - ---- @type integer -SOUND_MENU_PINCH_MARIO_FACE = SOUND_ARG_LOAD(7, 0, 0x08, 0x00, 8) - ---- @type integer -SOUND_MENU_POWER_METER = SOUND_ARG_LOAD(7, 0, 0x0D, 0x00, 8) - ---- @type integer -SOUND_MENU_READ_A_SIGN = 0x7020 - ---- @type integer -SOUND_MENU_REVERSE_PAUSE = 0x7001 - ---- @type integer -SOUND_MENU_STAR_SOUND = SOUND_ARG_LOAD(7, 0, 0x1E, 0xFF, 8) - ---- @type integer -SOUND_MENU_STAR_SOUND_LETS_A_GO = SOUND_ARG_LOAD(7, 0, 0x24, 0xFF, 8) - ---- @type integer -SOUND_MENU_STAR_SOUND_OKEY_DOKEY = SOUND_ARG_LOAD(7, 0, 0x23, 0xFF, 8) - ---- @type integer -SOUND_MENU_THANK_YOU_PLAYING_MY_GAME = SOUND_ARG_LOAD(7, 0, 0x1F, 0xFF, 8) - ---- @type integer -SOUND_MENU_UNK0C = SOUND_ARG_LOAD(7, 0, 0x0C, 0x00, 8) - ---- @type integer -SOUND_MENU_UNK10 = 0x7010 - ---- @type integer -SOUND_MENU_YOSHI_GAIN_LIVES = SOUND_ARG_LOAD(7, 0, 0x15, 0x00, 8) - ---- @type integer -SOUND_MOVING_AIM_CANNON = SOUND_ARG_LOAD(1, 0xD, 0x19, 0x20, 0) - ---- @type integer -SOUND_MOVING_ALMOST_DROWNING = SOUND_ARG_LOAD(1, 0xC, 0x18, 0x00, 0) - ---- @type integer -SOUND_MOVING_FLYING = SOUND_ARG_LOAD(1, 4, 0x17, 0x00, 0) - ---- @type integer -SOUND_MOVING_LAVA_BURN = SOUND_ARG_LOAD(1, 4, 0x10, 0x00, 0) - ---- @type integer -SOUND_MOVING_QUICKSAND_DEATH = SOUND_ARG_LOAD(1, 4, 0x14, 0x00, 0) - ---- @type integer -SOUND_MOVING_RIDING_SHELL_LAVA = SOUND_ARG_LOAD(1, 4, 0x28, 0x00, 0) - ---- @type integer -SOUND_MOVING_SHOCKED = SOUND_ARG_LOAD(1, 4, 0x16, 0x00, 0) - ---- @type integer -SOUND_MOVING_SLIDE_DOWN_POLE = SOUND_ARG_LOAD(1, 4, 0x11, 0x00, 0) - ---- @type integer -SOUND_MOVING_SLIDE_DOWN_TREE = SOUND_ARG_LOAD(1, 4, 0x12, 0x80, 0) - ---- @type integer -SOUND_MOVING_TERRAIN_RIDING_SHELL = SOUND_ARG_LOAD(1, 4, 0x20, 0x00, 0) - ---- @type integer -SOUND_MOVING_TERRAIN_SLIDE = SOUND_ARG_LOAD(1, 4, 0x00, 0x00, 0) - ---- @type integer -SOUND_MOVING_UNK1A = 0x101A - ---- @type integer -SOUND_NO_ECHO = 0x20 - ---- @type integer -SOUND_NO_FREQUENCY_LOSS = 0x8000000 - ---- @type integer -SOUND_NO_PRIORITY_LOSS = 0x4000000 - ---- @type integer -SOUND_NO_VOLUME_LOSS = 0x1000000 - ---- @type integer -SOUND_OBJ2_BABY_PENGUIN_YELL = SOUND_ARG_LOAD(9, 0, 0x45, 0x00, 8) - ---- @type integer -SOUND_OBJ2_BIRD_CHIRP1 = SOUND_ARG_LOAD(9, 0, 0x52, 0x40, 0) - ---- @type integer -SOUND_OBJ2_BOSS_DIALOG_GRUNT = SOUND_ARG_LOAD(9, 0, 0x69, 0x40, 8) - ---- @type integer -SOUND_OBJ2_BOWSER_PUZZLE_PIECE_MOVE = SOUND_ARG_LOAD(9, 0, 0x19, 0x20, 8) - ---- @type integer -SOUND_OBJ2_BOWSER_ROAR = SOUND_ARG_LOAD(9, 0, 0x04, 0x00, 8) - ---- @type integer -SOUND_OBJ2_BOWSER_TELEPORT = SOUND_ARG_LOAD(9, 0, 0x66, 0x80, 8) - ---- @type integer -SOUND_OBJ2_BULLY_ATTACKED = SOUND_ARG_LOAD(9, 0, 0x1C, 0x00, 8) - ---- @type integer -SOUND_OBJ2_EYEROK_SOUND_LONG = SOUND_ARG_LOAD(9, 2, 0x5B, 0x00, 8) - ---- @type integer -SOUND_OBJ2_EYEROK_SOUND_SHORT = SOUND_ARG_LOAD(9, 3, 0x5A, 0x00, 8) - ---- @type integer -SOUND_OBJ2_KING_BOBOMB_DAMAGE = SOUND_ARG_LOAD(9, 1, 0x42, 0x40, 8) - ---- @type integer -SOUND_OBJ2_LARGE_BULLY_ATTACKED = SOUND_ARG_LOAD(9, 0, 0x57, 0x00, 8) - ---- @type integer -SOUND_OBJ2_MONTY_MOLE_APPEAR = SOUND_ARG_LOAD(9, 0, 0x67, 0x80, 8) - ---- @type integer -SOUND_OBJ2_MRI_SPINNING = SOUND_ARG_LOAD(9, 0, 0x6B, 0x00, 8) - ---- @type integer -SOUND_OBJ2_PIRANHA_PLANT_BITE = SOUND_ARG_LOAD(9, 0, 0x10, 0x50, 8) - ---- @type integer -SOUND_OBJ2_PIRANHA_PLANT_DYING = SOUND_ARG_LOAD(9, 0, 0x11, 0x60, 8) - ---- @type integer -SOUND_OBJ2_SCUTTLEBUG_ALERT = SOUND_ARG_LOAD(9, 0, 0x44, 0x40, 8) - ---- @type integer -SOUND_OBJ2_SCUTTLEBUG_WALK = SOUND_ARG_LOAD(9, 0, 0x43, 0x40, 8) - ---- @type integer -SOUND_OBJ2_SWOOP = SOUND_ARG_LOAD(9, 0, 0x49, 0x00, 8) - ---- @type integer -SOUND_OBJ2_WHOMP_SOUND_SHORT = SOUND_ARG_LOAD(9, 3, 0x5A, 0xC0, 8) - ---- @type integer -SOUND_OBJ_BABY_PENGUIN_DIVE = SOUND_ARG_LOAD(5, 0, 0x1F, 0x40, 8) - ---- @type integer -SOUND_OBJ_BABY_PENGUIN_WALK = SOUND_ARG_LOAD(5, 0, 0x02, 0x00, 8) - ---- @type integer -SOUND_OBJ_BIG_PENGUIN_WALK = SOUND_ARG_LOAD(5, 0, 0x09, 0x80, 8) - ---- @type integer -SOUND_OBJ_BIG_PENGUIN_YELL = SOUND_ARG_LOAD(5, 0, 0x2D, 0x00, 8) - ---- @type integer -SOUND_OBJ_BIRD_CHIRP3 = SOUND_ARG_LOAD(5, 0, 0x51, 0x40, 0) - ---- @type integer -SOUND_OBJ_BOBOMB_BUDDY_TALK = SOUND_ARG_LOAD(5, 0, 0x58, 0x40, 8) - ---- @type integer -SOUND_OBJ_BOBOMB_WALK = SOUND_ARG_LOAD(5, 0, 0x27, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOO_BOUNCE_TOP = SOUND_ARG_LOAD(5, 0, 0x0A, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOO_LAUGH_LONG = SOUND_ARG_LOAD(5, 0, 0x48, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOO_LAUGH_SHORT = SOUND_ARG_LOAD(5, 0, 0x0B, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOWSER_DEFEATED = SOUND_ARG_LOAD(5, 0, 0x06, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOWSER_INHALING = SOUND_ARG_LOAD(5, 0, 0x08, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOWSER_INTRO_LAUGH = SOUND_ARG_LOAD(5, 0, 0x5F, 0x80, 9) - ---- @type integer -SOUND_OBJ_BOWSER_LAUGH = SOUND_ARG_LOAD(5, 0, 0x38, 0x80, 8) - ---- @type integer -SOUND_OBJ_BOWSER_SPINNING = SOUND_ARG_LOAD(5, 0, 0x07, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOWSER_TAIL_PICKUP = SOUND_ARG_LOAD(5, 0, 0x05, 0x00, 8) - ---- @type integer -SOUND_OBJ_BOWSER_WALK = SOUND_ARG_LOAD(5, 0, 0x03, 0x00, 8) - ---- @type integer -SOUND_OBJ_BUBBA_CHOMP = SOUND_ARG_LOAD(5, 0, 0x73, 0x40, 8) - ---- @type integer -SOUND_OBJ_BULLY_EXPLODE = SOUND_ARG_LOAD(5, 0, 0x18, 0xA0, 8) - ---- @type integer -SOUND_OBJ_BULLY_EXPLODE_2 = SOUND_ARG_LOAD(5, 1, 0x18, 0xA0, 8) - ---- @type integer -SOUND_OBJ_BULLY_METAL = SOUND_ARG_LOAD(5, 0, 0x17, 0x80, 8) - ---- @type integer -SOUND_OBJ_BULLY_WALK = SOUND_ARG_LOAD(5, 0, 0x1B, 0x30, 8) - ---- @type integer -SOUND_OBJ_BULLY_WALKING = SOUND_ARG_LOAD(5, 0, 0x36, 0x60, 8) - ---- @type integer -SOUND_OBJ_CANNON1 = SOUND_ARG_LOAD(5, 0, 0x0D, 0xF0, 8) - ---- @type integer -SOUND_OBJ_CANNON2 = SOUND_ARG_LOAD(5, 0, 0x0E, 0xF0, 8) - ---- @type integer -SOUND_OBJ_CANNON3 = SOUND_ARG_LOAD(5, 0, 0x0F, 0xF0, 8) - ---- @type integer -SOUND_OBJ_CANNON4 = SOUND_ARG_LOAD(5, 0, 0x25, 0x40, 8) - ---- @type integer -SOUND_OBJ_CHUCKYA_DEATH = SOUND_ARG_LOAD(5, 1, 0x6E, 0x00, 8) - ---- @type integer -SOUND_OBJ_DEFAULT_DEATH = SOUND_ARG_LOAD(5, 0, 0x2C, 0x80, 8) - ---- @type integer -SOUND_OBJ_DIVING_INTO_WATER = SOUND_ARG_LOAD(5, 0, 0x32, 0x40, 8) - ---- @type integer -SOUND_OBJ_DIVING_IN_WATER = SOUND_ARG_LOAD(5, 0, 0x29, 0xA0, 8) - ---- @type integer -SOUND_OBJ_DORRIE = SOUND_ARG_LOAD(5, 0, 0x37, 0x60, 8) - ---- @type integer -SOUND_OBJ_DYING_ENEMY1 = SOUND_ARG_LOAD(5, 0, 0x24, 0x40, 8) - ---- @type integer -SOUND_OBJ_DYING_ENEMY2 = 0x5026 - ---- @type integer -SOUND_OBJ_EEL = SOUND_ARG_LOAD(5, 0, 0x4A, 0x00, 8) - ---- @type integer -SOUND_OBJ_EEL_2 = SOUND_ARG_LOAD(5, 2, 0x4A, 0x00, 8) - ---- @type integer -SOUND_OBJ_ENEMY_DEATH_HIGH = SOUND_ARG_LOAD(5, 0, 0x60, 0xB0, 8) - ---- @type integer -SOUND_OBJ_ENEMY_DEATH_LOW = SOUND_ARG_LOAD(5, 0, 0x61, 0xB0, 8) - ---- @type integer -SOUND_OBJ_ENEMY_DEFEAT_SHRINK = SOUND_ARG_LOAD(5, 0, 0x74, 0x40, 8) - ---- @type integer -SOUND_OBJ_EVIL_LAKITU_THROW = SOUND_ARG_LOAD(5, 0, 0x22, 0x20, 8) - ---- @type integer -SOUND_OBJ_EYEROK_EXPLODE = SOUND_ARG_LOAD(5, 0, 0x6D, 0x00, 8) - ---- @type integer -SOUND_OBJ_EYEROK_SHOW_EYE = SOUND_ARG_LOAD(5, 2, 0x4B, 0x00, 8) - ---- @type integer -SOUND_OBJ_FLAME_BLOWN = SOUND_ARG_LOAD(5, 0, 0x55, 0x80, 8) - ---- @type integer -SOUND_OBJ_GOOMBA_ALERT = SOUND_ARG_LOAD(5, 0, 0x2F, 0x00, 8) - ---- @type integer -SOUND_OBJ_GOOMBA_WALK = SOUND_ARG_LOAD(5, 0, 0x20, 0x00, 8) - ---- @type integer -SOUND_OBJ_HEAVEHO_TOSSED = SOUND_ARG_LOAD(5, 0, 0x5D, 0x40, 8) - ---- @type integer -SOUND_OBJ_JUMP_WALK_WATER = 0x5012 - ---- @type integer -SOUND_OBJ_KING_BOBOMB = SOUND_ARG_LOAD(5, 0, 0x16, 0x80, 8) - ---- @type integer -SOUND_OBJ_KING_BOBOMB_JUMP = SOUND_ARG_LOAD(5, 0, 0x46, 0x80, 8) - ---- @type integer -SOUND_OBJ_KING_BOBOMB_TALK = SOUND_ARG_LOAD(5, 0, 0x41, 0x00, 8) - ---- @type integer -SOUND_OBJ_KING_WHOMP_DEATH = SOUND_ARG_LOAD(5, 1, 0x47, 0xC0, 8) - ---- @type integer -SOUND_OBJ_KLEPTO1 = SOUND_ARG_LOAD(5, 0, 0x3F, 0x40, 8) - ---- @type integer -SOUND_OBJ_KLEPTO2 = SOUND_ARG_LOAD(5, 0, 0x40, 0x60, 8) - ---- @type integer -SOUND_OBJ_KOOPA_DAMAGE = SOUND_ARG_LOAD(5, 0, 0x3E, 0xA0, 8) - ---- @type integer -SOUND_OBJ_KOOPA_FLYGUY_DEATH = SOUND_ARG_LOAD(5, 0, 0x63, 0xB0, 8) - ---- @type integer -SOUND_OBJ_KOOPA_TALK = SOUND_ARG_LOAD(5, 0, 0x3D, 0xA0, 8) - ---- @type integer -SOUND_OBJ_KOOPA_THE_QUICK_WALK = SOUND_ARG_LOAD(5, 0, 0x34, 0x20, 8) - ---- @type integer -SOUND_OBJ_KOOPA_WALK = SOUND_ARG_LOAD(5, 0, 0x35, 0x00, 8) - ---- @type integer -SOUND_OBJ_MAD_PIANO_CHOMPING = SOUND_ARG_LOAD(5, 2, 0x56, 0x40, 8) - ---- @type integer -SOUND_OBJ_MIPS_RABBIT = SOUND_ARG_LOAD(5, 0, 0x6A, 0x00, 8) - ---- @type integer -SOUND_OBJ_MIPS_RABBIT_WATER = SOUND_ARG_LOAD(5, 0, 0x6C, 0x00, 8) - ---- @type integer -SOUND_OBJ_MONTY_MOLE_ATTACK = SOUND_ARG_LOAD(5, 0, 0x22, 0x00, 8) - ---- @type integer -SOUND_OBJ_MRI_DEATH = SOUND_ARG_LOAD(5, 0, 0x14, 0x00, 8) - ---- @type integer -SOUND_OBJ_MRI_SHOOT = SOUND_ARG_LOAD(5, 0, 0x01, 0x00, 8) - ---- @type integer -SOUND_OBJ_MR_BLIZZARD_ALERT = SOUND_ARG_LOAD(5, 0, 0x4C, 0x00, 8) - ---- @type integer -SOUND_OBJ_PIRANHA_PLANT_APPEAR = SOUND_ARG_LOAD(5, 0, 0x54, 0x20, 8) - ---- @type integer -SOUND_OBJ_PIRANHA_PLANT_SHRINK = SOUND_ARG_LOAD(5, 0, 0x33, 0x40, 8) - ---- @type integer -SOUND_OBJ_POKEY_DEATH = SOUND_ARG_LOAD(5, 0, 0x63, 0xC0, 8) - ---- @type integer -SOUND_OBJ_POUNDING1 = SOUND_ARG_LOAD(5, 0, 0x15, 0x50, 8) - ---- @type integer -SOUND_OBJ_POUNDING1_HIGHPRIO = SOUND_ARG_LOAD(5, 0, 0x15, 0x80, 8) - ---- @type integer -SOUND_OBJ_POUNDING_CANNON = SOUND_ARG_LOAD(5, 0, 0x1A, 0x50, 8) - ---- @type integer -SOUND_OBJ_POUNDING_LOUD = SOUND_ARG_LOAD(5, 0, 0x68, 0x40, 8) - ---- @type integer -SOUND_OBJ_SKEETER_WALK = SOUND_ARG_LOAD(5, 0, 0x4E, 0x00, 8) - ---- @type integer -SOUND_OBJ_SNOWMAN_BOUNCE = SOUND_ARG_LOAD(5, 0, 0x64, 0xC0, 8) - ---- @type integer -SOUND_OBJ_SNOWMAN_EXPLODE = SOUND_ARG_LOAD(5, 0, 0x65, 0xD0, 8) - ---- @type integer -SOUND_OBJ_SNOW_SAND1 = SOUND_ARG_LOAD(5, 0, 0x2A, 0x00, 8) - ---- @type integer -SOUND_OBJ_SNOW_SAND2 = SOUND_ARG_LOAD(5, 0, 0x2B, 0x00, 8) - ---- @type integer -SOUND_OBJ_SNUFIT_SHOOT = SOUND_ARG_LOAD(5, 0, 0x4D, 0x00, 8) - ---- @type integer -SOUND_OBJ_SNUFIT_SKEETER_DEATH = SOUND_ARG_LOAD(5, 0, 0x72, 0xC0, 8) - ---- @type integer -SOUND_OBJ_SOMETHING_LANDING = SOUND_ARG_LOAD(5, 0, 0x28, 0x80, 8) - ---- @type integer -SOUND_OBJ_SPINY_UNK59 = SOUND_ARG_LOAD(5, 0, 0x59, 0x10, 8) - ---- @type integer -SOUND_OBJ_STOMPED = SOUND_ARG_LOAD(5, 0, 0x30, 0x80, 8) - ---- @type integer -SOUND_OBJ_SUSHI_SHARK_WATER_SOUND = SOUND_ARG_LOAD(5, 0, 0x00, 0x80, 8) - ---- @type integer -SOUND_OBJ_SWOOP_DEATH = SOUND_ARG_LOAD(5, 0, 0x62, 0xB0, 8) - ---- @type integer -SOUND_OBJ_THWOMP = SOUND_ARG_LOAD(5, 0, 0x0C, 0xA0, 8) - ---- @type integer -SOUND_OBJ_UKIKI_CHATTER_IDLE = SOUND_ARG_LOAD(5, 0, 0x3A, 0x00, 8) - ---- @type integer -SOUND_OBJ_UKIKI_CHATTER_LONG = SOUND_ARG_LOAD(5, 0, 0x21, 0x00, 8) - ---- @type integer -SOUND_OBJ_UKIKI_CHATTER_SHORT = SOUND_ARG_LOAD(5, 0, 0x39, 0x00, 8) - ---- @type integer -SOUND_OBJ_UKIKI_STEP_DEFAULT = SOUND_ARG_LOAD(5, 0, 0x3B, 0x00, 8) - ---- @type integer -SOUND_OBJ_UKIKI_STEP_LEAVES = SOUND_ARG_LOAD(5, 0, 0x3C, 0x00, 8) - ---- @type integer -SOUND_OBJ_UNK23 = 0x5023 - ---- @type integer -SOUND_OBJ_UNKNOWN2 = SOUND_ARG_LOAD(5, 0, 0x13, 0x00, 8) - ---- @type integer -SOUND_OBJ_UNKNOWN3 = SOUND_ARG_LOAD(5, 0, 0x1D, 0x80, 8) - ---- @type integer -SOUND_OBJ_UNKNOWN4 = SOUND_ARG_LOAD(5, 0, 0x1E, 0xA0, 8) - ---- @type integer -SOUND_OBJ_UNKNOWN6 = SOUND_ARG_LOAD(5, 0, 0x31, 0x00, 8) - ---- @type integer -SOUND_OBJ_WALKING_WATER = SOUND_ARG_LOAD(5, 0, 0x4F, 0x00, 8) - ---- @type integer -SOUND_OBJ_WATER_BOMB_BOUNCING = SOUND_ARG_LOAD(5, 0, 0x2E, 0x80, 8) - ---- @type integer -SOUND_OBJ_WHOMP_LOWPRIO = SOUND_ARG_LOAD(5, 0, 0x16, 0x60, 8) - ---- @type integer -SOUND_OBJ_WIGGLER_ATTACKED = SOUND_ARG_LOAD(5, 0, 0x70, 0x60, 8) - ---- @type integer -SOUND_OBJ_WIGGLER_DEATH = 0x505E - ---- @type integer -SOUND_OBJ_WIGGLER_HIGH_PITCH = SOUND_ARG_LOAD(5, 0, 0x5C, 0x40, 8) - ---- @type integer -SOUND_OBJ_WIGGLER_JUMP = SOUND_ARG_LOAD(5, 0, 0x2F, 0x60, 8) - ---- @type integer -SOUND_OBJ_WIGGLER_LOW_PITCH = SOUND_ARG_LOAD(5, 0, 0x71, 0x20, 8) - ---- @type integer -SOUND_OBJ_WIGGLER_TALK = SOUND_ARG_LOAD(5, 0, 0x6F, 0x00, 8) - ---- @type integer -SOUND_PEACH_BAKE_A_CAKE = SOUND_ARG_LOAD(2, 4, 0x3D, 0xFF, 8) - ---- @type integer -SOUND_PEACH_DEAR_MARIO = SOUND_ARG_LOAD(2, 4, 0x28, 0xFF, 8) - ---- @type integer -SOUND_PEACH_FOR_MARIO = SOUND_ARG_LOAD(2, 4, 0x3E, 0xFF, 8) - ---- @type integer -SOUND_PEACH_MARIO = SOUND_ARG_LOAD(2, 4, 0x38, 0xFF, 8) - ---- @type integer -SOUND_PEACH_MARIO2 = SOUND_ARG_LOAD(2, 4, 0x3F, 0xFF, 8) - ---- @type integer -SOUND_PEACH_POWER_OF_THE_STARS = SOUND_ARG_LOAD(2, 4, 0x39, 0xFF, 8) - ---- @type integer -SOUND_PEACH_SOMETHING_SPECIAL = SOUND_ARG_LOAD(2, 4, 0x3C, 0xFF, 8) - ---- @type integer -SOUND_PEACH_THANKS_TO_YOU = SOUND_ARG_LOAD(2, 4, 0x3A, 0xFF, 8) - ---- @type integer -SOUND_PEACH_THANK_YOU_MARIO = SOUND_ARG_LOAD(2, 4, 0x3B, 0xFF, 8) - ---- @type integer -SOUND_STATUS_PLAYING = 2 - ---- @type integer -SOUND_STATUS_STARTING = 1 - ---- @type integer -SOUND_STATUS_STOPPED = 0 - ---- @type integer -SOUND_TERRAIN_DEFAULT = 0 - ---- @type integer -SOUND_TERRAIN_GRASS = 1 - ---- @type integer -SOUND_TERRAIN_ICE = 6 - ---- @type integer -SOUND_TERRAIN_SAND = 7 - ---- @type integer -SOUND_TERRAIN_SNOW = 5 - ---- @type integer -SOUND_TERRAIN_SPOOKY = 4 - ---- @type integer -SOUND_TERRAIN_STONE = 3 - ---- @type integer -SOUND_TERRAIN_WATER = 2 - ---- @type integer -SOUND_VIBRATO = 0x2000000 - --- @class BehaviorId --- @type BehaviorId @@ -2293,13 +874,13 @@ id_bhvUnused20E0 = 200 id_bhvSmallPenguin = 201 --- @type BehaviorId -id_bhvFish2 = 202 +id_bhvManyBlueFishSpawner = 202 --- @type BehaviorId -id_bhvFish3 = 203 +id_bhvFewBlueFishSpawner = 203 --- @type BehaviorId -id_bhvLargeFishGroup = 204 +id_bhvFishSpawner = 204 --- @type BehaviorId id_bhvFish = 205 @@ -7829,6 +6410,1482 @@ E_MODEL_WARIOS_WINGED_METAL_CAP = 374 --- @type ModelExtendedId E_MODEL_MAX = 375 +--- @type integer +NO_SOUND = 0 + +--- @type integer +SOUNDARGS_MASK_BANK = 0xF0000000 + +--- @type integer +SOUNDARGS_MASK_PRIORITY = 0x0000FF00 + +--- @type integer +SOUNDARGS_MASK_SOUNDID = 0x00FF0000 + +--- @type integer +SOUNDARGS_MASK_STATUS = 0x0000000F + +--- @type integer +SOUNDARGS_SHIFT_BANK = 28 + +--- @type integer +SOUNDARGS_SHIFT_PRIORITY = 8 + +--- @type integer +SOUNDARGS_SHIFT_SOUNDID = 16 + +--- @type integer +SOUND_ACTION_BONK = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x45, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_BOUNCE_OFF_OBJECT = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x59, 0xB0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_BRUSH_HAIR = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x40, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_CLAP_HANDS_COLD = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x2C, 0x00, SOUND_VIBRATO | SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_CLIMB_DOWN_TREE = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x3B, 0x00, 0) + +--- @type integer +SOUND_ACTION_CLIMB_UP_POLE = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x41, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_CLIMB_UP_TREE = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x3A, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_FLYING_FAST = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x56, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_HANGING_STEP = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x2D, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_HIT = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x44, 0xC0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_HIT_2 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x44, 0xB0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_HIT_3 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x44, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_INTRO_UNK45E = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x5E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_INTRO_UNK45F = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x5F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_KEY_SWISH = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x36, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_BONK = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x42, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_HEAVY_LANDING = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x2B, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_JUMP = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x28, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_JUMP_WATER = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x50, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_LANDING = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x29, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_LAND_WATER = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x51, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_STEP = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x2A, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_STEP_TIPTOE = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x2F, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_METAL_STEP_WATER = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x52, 0x90, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_PAT_BACK = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x3F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_QUICKSAND_STEP = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x2E, 0x00, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_READ_SIGN = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x5B, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_SHRINK_INTO_BBH = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x46, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_SIDE_FLIP_UNK = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x5A, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_SPIN = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x37, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_SWIM = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x33, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_SWIM_FAST = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x47, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TELEPORT = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x57, 0xC0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_BODY_HIT_GROUND = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x18, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_HEAVY_LANDING = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x60, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_JUMP = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x00, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_LANDING = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x08, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_STEP = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x10, 0x80, SOUND_VIBRATO | SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_STEP_TIPTOE = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x20, 0x80, SOUND_VIBRATO | SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TERRAIN_STUCK_IN_GROUND = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x48, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_THROW = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x35, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_TWIRL = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x38, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNK3C = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x3C, 0x00, 0) + +--- @type integer +SOUND_ACTION_UNK53 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x53, 0x00, 0) + +--- @type integer +SOUND_ACTION_UNK54 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x54, 0x00, 0) + +--- @type integer +SOUND_ACTION_UNK55 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x55, 0x00, 0) + +--- @type integer +SOUND_ACTION_UNK5D = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x5D, 0x00, 0) + +--- @type integer +SOUND_ACTION_UNKNOWN430 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x30, 0xC0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN431 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x31, 0x60, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN432 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x32, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN434 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x34, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN43D = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x3D, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN43E = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x3E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN458 = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x58, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNKNOWN45C = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x5C, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_ACTION_UNSTUCK_FROM_GROUND = SOUND_ARG_LOAD(SOUND_BANK_ACTION, 0x43, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_AIR_AMP_BUZZ = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x03, 0x40, 0) + +--- @type integer +SOUND_AIR_BLOW_FIRE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x04, 0x80, 0) + +--- @type integer +SOUND_AIR_BLOW_WIND = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x04, 0x40, 0) + +--- @type integer +SOUND_AIR_BOBOMB_LIT_FUSE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x08, 0x60, 0) + +--- @type integer +SOUND_AIR_BOWSER_SPIT_FIRE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x00, 0x00, 0) + +--- @type integer +SOUND_AIR_CASTLE_OUTDOORS_AMBIENT = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x10, 0x40, 0) + +--- @type integer +SOUND_AIR_CHUCKYA_MOVE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x0A, 0x40, 0) + +--- @type integer +SOUND_AIR_HEAVEHO_MOVE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x06, 0x40, 0) + +--- @type integer +SOUND_AIR_HOWLING_WIND = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x09, 0x80, 0) + +--- @type integer +SOUND_AIR_LAKITU_FLY = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x02, 0x80, 0) + +--- @type integer +SOUND_AIR_LAKITU_FLY_HIGHPRIO = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x02, 0xFF, 0) + +--- @type integer +SOUND_AIR_PEACH_TWINKLE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x0B, 0x40, 0) + +--- @type integer +SOUND_AIR_ROUGH_SLIDE = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x05, 0x00, 0) + +--- @type integer +SOUND_AIR_UNK01 = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x01, 0x00, 0) + +--- @type integer +SOUND_AIR_UNK07 = SOUND_ARG_LOAD(SOUND_BANK_AIR, 0x07, 0x00, 0) + +--- @type integer +SOUND_BANKS_ALL = ((1 << SOUND_BANK_COUNT) - 1) + +--- @type integer +SOUND_BANKS_ALL_BITS = 0xffff + +--- @type integer +SOUND_BANKS_BACKGROUND = (SOUND_BANKS_ALL & ~SOUND_BANKS_FOREGROUND) + +--- @type integer +SOUND_BANKS_DISABLED_AFTER_CREDITS = ( (1 << SOUND_BANK_ACTION) | (1 << SOUND_BANK_MOVING) | (1 << SOUND_BANK_MARIO_VOICE) | (1 << SOUND_BANK_GENERAL) | (1 << SOUND_BANK_LUIGI_VOICE) | (1 << SOUND_BANK_WARIO_VOICE)) + +--- @type integer +SOUND_BANKS_DISABLED_DURING_INTRO_CUTSCENE = ( (1 << SOUND_BANK_ENV) | (1 << SOUND_BANK_OBJ) | (1 << SOUND_BANK_GENERAL2) | (1 << SOUND_BANK_OBJ2)) + +--- @type integer +SOUND_BANKS_FOREGROUND = ( (1 << SOUND_BANK_ACTION) | (1 << SOUND_BANK_MARIO_VOICE) | (1 << SOUND_BANK_MENU) | (1 << SOUND_BANK_LUIGI_VOICE) | (1 << SOUND_BANK_WARIO_VOICE)) + +--- @type integer +SOUND_BANK_ACTION = 0 + +--- @type integer +SOUND_BANK_AIR = 6 + +--- @type integer +SOUND_BANK_COUNT = 12 + +--- @type integer +SOUND_BANK_ENV = 4 + +--- @type integer +SOUND_BANK_GENERAL = 3 + +--- @type integer +SOUND_BANK_GENERAL2 = 8 + +--- @type integer +SOUND_BANK_LUIGI_VOICE = 10 + +--- @type integer +SOUND_BANK_MARIO_VOICE = 2 + +--- @type integer +SOUND_BANK_MENU = 7 + +--- @type integer +SOUND_BANK_MOVING = 1 + +--- @type integer +SOUND_BANK_OBJ = 5 + +--- @type integer +SOUND_BANK_OBJ2 = 9 + +--- @type integer +SOUND_BANK_WARIO_VOICE = 11 + +--- @type integer +SOUND_CONSTANT_FREQUENCY = 0x8000000 + +--- @type integer +SOUND_DISCRETE = 0x80 + +--- @type integer +SOUND_ENV_BOAT_ROCKING1 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0B, 0x00, 0) + +--- @type integer +SOUND_ENV_DRONING1 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x03, 0x00, SOUND_NO_VOLUME_LOSS) + +--- @type integer +SOUND_ENV_DRONING2 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x04, 0x00, 0) + +--- @type integer +SOUND_ENV_ELEVATOR1 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x02, 0x00, 0) + +--- @type integer +SOUND_ENV_ELEVATOR2 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x08, 0x00, 0) + +--- @type integer +SOUND_ENV_ELEVATOR3 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0C, 0x00, 0) + +--- @type integer +SOUND_ENV_ELEVATOR4 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0D, 0x00, 0) + +--- @type integer +SOUND_ENV_ELEVATOR4_2 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0D, 0x00, SOUND_NO_VOLUME_LOSS) + +--- @type integer +SOUND_ENV_MERRY_GO_ROUND_CREAKING = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0F, 0x40, 0) + +--- @type integer +SOUND_ENV_METAL_BOX_PUSH = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x17, 0x80, 0) + +--- @type integer +SOUND_ENV_MOVINGSAND = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0E, 0x00, 0) + +--- @type integer +SOUND_ENV_MOVING_SAND_SNOW = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x06, 0x00, 0) + +--- @type integer +SOUND_ENV_SINK_QUICKSAND = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x18, 0x80, 0) + +--- @type integer +SOUND_ENV_SLIDING = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x13, 0x00, 0) + +--- @type integer +SOUND_ENV_STAR = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x14, 0x00, SOUND_LOWER_BACKGROUND_MUSIC) + +--- @type integer +SOUND_ENV_UNK07 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x07, 0x00, 0) + +--- @type integer +SOUND_ENV_UNK12 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x12, 0x00, 0) + +--- @type integer +SOUND_ENV_UNKNOWN2 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x0A, 0x00, 0) + +--- @type integer +SOUND_ENV_UNKNOWN4 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x15, 0x00, SOUND_NO_VOLUME_LOSS) + +--- @type integer +SOUND_ENV_WATER = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x09, 0x00, 0) + +--- @type integer +SOUND_ENV_WATERFALL1 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x00, 0x00, 0) + +--- @type integer +SOUND_ENV_WATERFALL2 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x01, 0x00, 0) + +--- @type integer +SOUND_ENV_WATER_DRAIN = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x16, 0x00, SOUND_NO_VOLUME_LOSS) + +--- @type integer +SOUND_ENV_WIND1 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x05, 0x00, 0) + +--- @type integer +SOUND_ENV_WIND2 = SOUND_ARG_LOAD(SOUND_BANK_ENV, 0x10, 0x80, 0) + +--- @type integer +SOUND_GENERAL2_1UP_APPEAR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x63, 0xD0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_BIRD_CHIRP2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x50, 0x40, 0) + +--- @type integer +SOUND_GENERAL2_BOBOMB_EXPLOSION = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x2E, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_BOWSER_EXPLODE = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x60, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_BOWSER_KEY = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x61, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_PURPLE_SWITCH = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x3E, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_PYRAMID_TOP_EXPLOSION = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x4C, 0xF0, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_PYRAMID_TOP_SPIN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x4B, 0xE0, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_RIGHT_ANSWER = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x6A, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_ROTATING_BLOCK_ALERT = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x59, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_ROTATING_BLOCK_CLICK = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x40, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_SPINDEL_ROLL = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x48, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_STAR_APPEARS = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x57, 0xFF, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL2_SWITCH_TICK_FAST = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x54, 0xF0, SOUND_LOWER_BACKGROUND_MUSIC) + +--- @type integer +SOUND_GENERAL2_SWITCH_TICK_SLOW = SOUND_ARG_LOAD(SOUND_BANK_GENERAL2, 0x55, 0xF0, SOUND_LOWER_BACKGROUND_MUSIC) + +--- @type integer +SOUND_GENERAL_ACTIVATE_CAP_SWITCH = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x00, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BIG_CLOCK = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x17, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BIG_POUND = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x44, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BIRDS_FLY_AWAY = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x69, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOAT_ROCK = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x75, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOAT_TILT1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x34, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOAT_TILT2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x35, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOING1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x6C, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOING2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x6D, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOING2_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x6D, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOING3 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x72, 0x00, 0) + +--- @type integer +SOUND_GENERAL_BOWSER_BOMB_EXPLOSION = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2F, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOWSER_PLATFORM = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x62, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOWSER_PLATFORM_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x62, 0x80, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOX_LANDING = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x24, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BOX_LANDING_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x24, 0x00, SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BREAK_BOX = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x41, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BUBBLES = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x08, 0x00, 0) + +--- @type integer +SOUND_GENERAL_BUTTON_PRESS = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5A, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BUTTON_PRESS_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5A, 0x40, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BUTTON_PRESS_2_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5A, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_BUTTON_PRESS_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CAGE_OPEN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3F, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CANNON_UP = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x47, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CASTLE_TRAP_OPEN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0E, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CHAIN_CHOMP1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x39, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CHAIN_CHOMP2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CLAM_SHELL1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x22, 0x80, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CLAM_SHELL2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x26, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CLAM_SHELL3 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x27, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CLOSE_IRON_DOOR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x07, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_CLOSE_WOOD_DOOR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x05, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COIN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x11, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COIN_DROP = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x36, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COIN_SPURT = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x30, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COIN_SPURT_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x30, 0x00, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COIN_SPURT_EU = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x30, 0x20, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COIN_WATER = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x12, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_COLLECT_1UP = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x58, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_DONUT_PLATFORM_EXPLOSION = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2E, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_DOOR_INSERT_KEY = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x42, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_DOOR_TURN_KEY = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_ELEVATOR_MOVE = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_ELEVATOR_MOVE_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5B, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_ENEMY_ALERT1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x6F, 0x30, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_EXPLOSION6 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x31, 0x00, 0) + +--- @type integer +SOUND_GENERAL_EXPLOSION7 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x49, 0x00, 0) + +--- @type integer +SOUND_GENERAL_FLAME_OUT = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x03, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_GRAND_STAR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x73, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_GRAND_STAR_JUMP = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x74, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_GRINDEL_ROLL = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x48, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_HAUNTED_CHAIR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_HAUNTED_CHAIR_MOVE = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5F, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_HEART_SPIN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x64, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_LEVEL_SELECT_CHANGE = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_LOUD_POUND = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x18, 0x00, 0) + +--- @type integer +SOUND_GENERAL_LOUD_POUND2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x19, 0x00, 0) + +--- @type integer +SOUND_GENERAL_METAL_POUND = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x6B, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_MOVING_IN_SAND = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_MOVING_PLATFORM_SWITCH = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3E, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_MOVING_WATER = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x09, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_OPEN_CHEST = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x20, 0x80, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_OPEN_IRON_DOOR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x06, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_OPEN_WOOD_DOOR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x04, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_PAINTING_EJECT = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x28, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_PENDULUM_SWING = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x38, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_PLATFORM = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x2D, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_POUND_ROCK = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x56, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_POUND_WOOD_POST = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x65, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_QUIET_BUBBLE = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_QUIET_BUBBLE2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_QUIET_POUND1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x40, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_QUIET_POUND1_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x40, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_QUIET_POUND2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x43, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_RACE_GUN_SHOT = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x4D, 0x40, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_RED_COIN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x68, 0x90, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SHAKE_COFFIN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x4A, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_POUND1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x1A, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_POUND2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x1B, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_POUND3 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x1C, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_POUND4 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x1D, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_POUND5 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x1E, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_POUND6 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x1F, 0x00, 0) + +--- @type integer +SOUND_GENERAL_SHORT_STAR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x16, 0x00, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SOFT_LANDING = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5E, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SPLATTERING = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x71, 0x30, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_STAR_APPEARS = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x57, 0xFF, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_STAR_DOOR_CLOSE = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x4F, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_STAR_DOOR_OPEN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x4E, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SWISH_AIR = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SWISH_AIR_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x5C, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SWISH_WATER = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_SWITCH_DOOR_OPEN = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x67, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNK32 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x32, 0x00, 0) + +--- @type integer +SOUND_GENERAL_UNK45 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x45, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNK46 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x46, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNK46_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x46, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN1 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x25, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN1_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x25, 0x00, SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN3 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x37, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN3_2 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x37, 0x80, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN3_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x37, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN4 = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3D, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_UNKNOWN4_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x3D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_VANISH_SFX = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x76, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_VOLCANO_EXPLOSION = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0C, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_WALL_EXPLOSION = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x0F, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_WATER_LEVEL_TRIG = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x66, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_YOSHI_TALK = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x70, 0x30, SOUND_DISCRETE) + +--- @type integer +SOUND_GENERAL_YOSHI_WALK = SOUND_ARG_LOAD(SOUND_BANK_GENERAL, 0x6E, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_LOWER_BACKGROUND_MUSIC = 0x10 + +--- @type integer +SOUND_MARIO_ATTACKED = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0A, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_COUGHING1 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x1B, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_COUGHING2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x1C, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_COUGHING3 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x1D, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_DOH = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x30, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_DROWNING = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x23, 0xF0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_DYING = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x15, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_EEUH = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x09, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_GAME_OVER = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x31, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_GROUND_POUND_WAH = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x22, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_HAHA = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x11, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_HAHA_2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x11, 0xF0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_HELLO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x32, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_HERE_WE_GO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0C, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_HOOHOO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x03, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_HRMM = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x06, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_IMA_TIRED = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x37, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_MAMA_MIA = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x20, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_OKEY_DOKEY = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x21, 0x00, 0) + +--- @type integer +SOUND_MARIO_ON_FIRE = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x14, 0xA0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_OOOF = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0B, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_OOOF2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0B, 0xD0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_PANTING = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x18, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_PANTING_COLD = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x16, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_PRESS_START_TO_PLAY = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x33, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_NO_ECHO | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_PUNCH_HOO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x1F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_PUNCH_WAH = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x24, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_PUNCH_YAH = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x1E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_SNORING1 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0E, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_SNORING2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0F, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_SNORING3 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x35, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_SO_LONGA_BOWSER = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x36, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_TWIRL_BOUNCE = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x34, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_UH = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x05, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_UH2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x13, 0xD0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_UH2_2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x13, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_WAAAOOOW = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x10, 0xC0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_WAH2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x07, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_WHOA = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x08, 0xC0, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_YAHOO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x04, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_YAHOO_WAHA_YIPPEE = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x2B, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_YAH_WAH_HOO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x00, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MARIO_YAWNING = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x0D, 0x80, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_BOWSER_LAUGH = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x18, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CAMERA_BUZZ = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x0E, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CAMERA_TURN = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x0F, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CAMERA_UNUSED1 = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x1B, 0x00, 0) + +--- @type integer +SOUND_MENU_CAMERA_UNUSED2 = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x1C, 0x00, 0) + +--- @type integer +SOUND_MENU_CAMERA_ZOOM_IN = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x06, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CAMERA_ZOOM_OUT = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x07, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CHANGE_SELECT = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x00, 0xF8, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CLICK_CHANGE_VIEW = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x1A, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_CLICK_FILE_SELECT = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x11, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_COIN_ITS_A_ME_MARIO = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x14, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_COLLECT_RED_COIN = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x28, 0x90, SOUND_CONSTANT_FREQUENCY | SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_COLLECT_SECRET = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x30, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_ENTER_HOLE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x19, 0x80, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_ENTER_PIPE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x16, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_EXIT_A_SIGN = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x21, 0x00, 0) + +--- @type integer +SOUND_MENU_EXIT_PIPE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x17, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_HAND_APPEAR = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x0A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_HAND_DISAPPEAR = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x0B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_LET_GO_MARIO_FACE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x09, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_MARIO_CASTLE_WARP = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x1D, 0xB0, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_MARIO_CASTLE_WARP2 = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x22, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_MESSAGE_APPEAR = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x04, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_MESSAGE_DISAPPEAR = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x05, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_MESSAGE_NEXT_PAGE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x13, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_PAUSE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x02, 0xF0, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_PAUSE_2 = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x03, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_PAUSE_HIGHPRIO = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x02, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_PINCH_MARIO_FACE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x08, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_POWER_METER = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x0D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_READ_A_SIGN = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x20, 0x00, 0) + +--- @type integer +SOUND_MENU_REVERSE_PAUSE = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x01, 0x00, 0) + +--- @type integer +SOUND_MENU_STAR_SOUND = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x1E, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_STAR_SOUND_LETS_A_GO = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x24, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_STAR_SOUND_OKEY_DOKEY = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x23, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_THANK_YOU_PLAYING_MY_GAME = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x1F, 0xFF, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_UNK0C = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x0C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MENU_UNK10 = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x10, 0x00, 0) + +--- @type integer +SOUND_MENU_YOSHI_GAIN_LIVES = SOUND_ARG_LOAD(SOUND_BANK_MENU, 0x15, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_MOVING_AIM_CANNON = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x19, 0x20, SOUND_NO_VOLUME_LOSS | SOUND_NO_PRIORITY_LOSS | SOUND_CONSTANT_FREQUENCY) + +--- @type integer +SOUND_MOVING_ALMOST_DROWNING = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x18, 0x00, SOUND_NO_PRIORITY_LOSS | SOUND_CONSTANT_FREQUENCY) + +--- @type integer +SOUND_MOVING_FLYING = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x17, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_LAVA_BURN = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x10, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_QUICKSAND_DEATH = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x14, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_RIDING_SHELL_LAVA = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x28, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_SHOCKED = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x16, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_SLIDE_DOWN_POLE = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x11, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_SLIDE_DOWN_TREE = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x12, 0x80, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_TERRAIN_RIDING_SHELL = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x20, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_TERRAIN_SLIDE = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x00, 0x00, SOUND_NO_PRIORITY_LOSS) + +--- @type integer +SOUND_MOVING_UNK1A = SOUND_ARG_LOAD(SOUND_BANK_MOVING, 0x1A, 0x00, 0) + +--- @type integer +SOUND_NO_ECHO = 0x20 + +--- @type integer +SOUND_NO_PRIORITY_LOSS = 0x4000000 + +--- @type integer +SOUND_NO_VOLUME_LOSS = 0x1000000 + +--- @type integer +SOUND_OBJ2_BABY_PENGUIN_YELL = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x45, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_BIRD_CHIRP1 = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x52, 0x40, 0) + +--- @type integer +SOUND_OBJ2_BOSS_DIALOG_GRUNT = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x69, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_BOWSER_PUZZLE_PIECE_MOVE = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x19, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_BOWSER_ROAR = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x04, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_BOWSER_TELEPORT = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x66, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_BULLY_ATTACKED = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x1C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_EYEROK_SOUND_LONG = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x5B, 0x00, SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_EYEROK_SOUND_SHORT = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x5A, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_KING_BOBOMB_DAMAGE = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x42, 0x40, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_LARGE_BULLY_ATTACKED = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x57, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_MONTY_MOLE_APPEAR = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x67, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_MRI_SPINNING = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x6B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_PIRANHA_PLANT_BITE = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x10, 0x50, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_PIRANHA_PLANT_DYING = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x11, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_SCUTTLEBUG_ALERT = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x44, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_SCUTTLEBUG_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x43, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_SWOOP = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x49, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ2_WHOMP_SOUND_SHORT = SOUND_ARG_LOAD(SOUND_BANK_OBJ2, 0x5A, 0xC0, SOUND_NO_VOLUME_LOSS | SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BABY_PENGUIN_DIVE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x1F, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BABY_PENGUIN_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x02, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BIG_PENGUIN_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x09, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BIG_PENGUIN_YELL = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BIRD_CHIRP3 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x51, 0x40, 0) + +--- @type integer +SOUND_OBJ_BOBOMB_BUDDY_TALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x58, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOBOMB_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x27, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOO_BOUNCE_TOP = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x0A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOO_LAUGH_LONG = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x48, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOO_LAUGH_SHORT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x0B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_DEFEATED = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x06, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_INHALING = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x08, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_INTRO_LAUGH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x5F, 0x80, SOUND_LOWER_BACKGROUND_MUSIC | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_LAUGH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x38, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_SPINNING = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x07, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_TAIL_PICKUP = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x05, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BOWSER_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x03, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BUBBA_CHOMP = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x73, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BULLY_EXPLODE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x18, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BULLY_EXPLODE_2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x18, 0xA0, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BULLY_METAL = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x17, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BULLY_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x1B, 0x30, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_BULLY_WALKING = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x36, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_CANNON1 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x0D, 0xF0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_CANNON2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x0E, 0xF0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_CANNON3 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x0F, 0xF0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_CANNON4 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x25, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_CHUCKYA_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x6E, 0x00, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_DEFAULT_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2C, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_DIVING_INTO_WATER = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x32, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_DIVING_IN_WATER = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x29, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_DORRIE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x37, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_DYING_ENEMY1 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x24, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_DYING_ENEMY2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x26, 0x00, 0) + +--- @type integer +SOUND_OBJ_EEL = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_EEL_2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4A, 0x00, SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_ENEMY_DEATH_HIGH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x60, 0xB0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_ENEMY_DEATH_LOW = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x61, 0xB0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_ENEMY_DEFEAT_SHRINK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x74, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_EVIL_LAKITU_THROW = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x22, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_EYEROK_EXPLODE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x6D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_EYEROK_SHOW_EYE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4B, 0x00, SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_FLAME_BLOWN = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x55, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_GOOMBA_ALERT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2F, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_GOOMBA_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x20, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_HEAVEHO_TOSSED = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x5D, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_JUMP_WALK_WATER = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x12, 0x00, 0) + +--- @type integer +SOUND_OBJ_KING_BOBOMB = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x16, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KING_BOBOMB_JUMP = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x46, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KING_BOBOMB_TALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x41, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KING_WHOMP_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x47, 0xC0, SOUND_NO_VOLUME_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KLEPTO1 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x3F, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KLEPTO2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x40, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KOOPA_DAMAGE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x3E, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KOOPA_FLYGUY_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x63, 0xB0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KOOPA_TALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x3D, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KOOPA_THE_QUICK_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x34, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_KOOPA_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x35, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MAD_PIANO_CHOMPING = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x56, 0x40, SOUND_VIBRATO | SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MIPS_RABBIT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x6A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MIPS_RABBIT_WATER = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x6C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MONTY_MOLE_ATTACK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x22, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MRI_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x14, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MRI_SHOOT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x01, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_MR_BLIZZARD_ALERT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_PIRANHA_PLANT_APPEAR = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x54, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_PIRANHA_PLANT_SHRINK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x33, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_POKEY_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x63, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_POUNDING1 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x15, 0x50, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_POUNDING1_HIGHPRIO = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x15, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_POUNDING_CANNON = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x1A, 0x50, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_POUNDING_LOUD = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x68, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SKEETER_WALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4E, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SNOWMAN_BOUNCE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x64, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SNOWMAN_EXPLODE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x65, 0xD0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SNOW_SAND1 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SNOW_SAND2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SNUFIT_SHOOT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4D, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SNUFIT_SKEETER_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x72, 0xC0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SOMETHING_LANDING = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x28, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SPINY_UNK59 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x59, 0x10, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_STOMPED = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x30, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SUSHI_SHARK_WATER_SOUND = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x00, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_SWOOP_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x62, 0xB0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_THWOMP = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x0C, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UKIKI_CHATTER_IDLE = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x3A, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UKIKI_CHATTER_LONG = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x21, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UKIKI_CHATTER_SHORT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x39, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UKIKI_STEP_DEFAULT = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x3B, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UKIKI_STEP_LEAVES = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x3C, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UNK23 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x23, 0x00, 0) + +--- @type integer +SOUND_OBJ_UNKNOWN2 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x13, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UNKNOWN3 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x1D, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UNKNOWN4 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x1E, 0xA0, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_UNKNOWN6 = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x31, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WALKING_WATER = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x4F, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WATER_BOMB_BOUNCING = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2E, 0x80, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WHOMP_LOWPRIO = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x16, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WIGGLER_ATTACKED = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x70, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WIGGLER_DEATH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x5E, 0x00, 0) + +--- @type integer +SOUND_OBJ_WIGGLER_HIGH_PITCH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x5C, 0x40, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WIGGLER_JUMP = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x2F, 0x60, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WIGGLER_LOW_PITCH = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x71, 0x20, SOUND_DISCRETE) + +--- @type integer +SOUND_OBJ_WIGGLER_TALK = SOUND_ARG_LOAD(SOUND_BANK_OBJ, 0x6F, 0x00, SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_BAKE_A_CAKE = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x3D, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_DEAR_MARIO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x28, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_FOR_MARIO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x3E, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_MARIO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x38, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_MARIO2 = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x3F, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_POWER_OF_THE_STARS = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x39, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_SOMETHING_SPECIAL = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x3C, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_THANKS_TO_YOU = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x3A, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_PEACH_THANK_YOU_MARIO = SOUND_ARG_LOAD(SOUND_BANK_MARIO_VOICE, 0x3B, 0xFF, SOUND_NO_PRIORITY_LOSS | SOUND_DISCRETE) + +--- @type integer +SOUND_STATUS_PLAYING = 2 + +--- @type integer +SOUND_STATUS_STOPPED = 0 + +--- @type integer +SOUND_STATUS_WAITING = 1 + +--- @type integer +SOUND_TERRAIN_DEFAULT = 0 + +--- @type integer +SOUND_TERRAIN_GRASS = 1 + +--- @type integer +SOUND_TERRAIN_ICE = 6 + +--- @type integer +SOUND_TERRAIN_SAND = 7 + +--- @type integer +SOUND_TERRAIN_SNOW = 5 + +--- @type integer +SOUND_TERRAIN_SPOOKY = 4 + +--- @type integer +SOUND_TERRAIN_STONE = 3 + +--- @type integer +SOUND_TERRAIN_WATER = 2 + +--- @type integer +SOUND_VIBRATO = 0x2000000 + --- @type integer ANIM_FLAG_2 = (1 << 2) diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index bff8eb978..500f6cd71 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -195,9 +195,9 @@ end --- @param player integer --- @param targetScale integer ---- @param fadeTimer integer +--- @param fadeDuration integer --- @return nil -function fade_volume_scale(player, targetScale, fadeTimer) +function fade_volume_scale(player, targetScale, fadeDuration) -- ... end @@ -283,16 +283,24 @@ function play_toads_jingle() end --- @param player integer ---- @param fadeTimer integer +--- @param fadeDuration integer --- @return nil -function sequence_player_fade_out(player, fadeTimer) +function seq_player_fade_out(player, fadeDuration) -- ... end --- @param player integer ---- @param fadeTimer integer +--- @param fadeDuration integer +--- @param percentage integer --- @return nil -function sequence_player_unlower(player, fadeTimer) +function seq_player_lower_volume(player, fadeDuration, percentage) + -- ... +end + +--- @param player integer +--- @param fadeDuration integer +--- @return nil +function seq_player_unlower_volume(player, fadeDuration) -- ... end @@ -1545,6 +1553,20 @@ function current_mario_room_check(room) -- ... end +--- @param m MarioState +--- @param obj Object +--- @return integer +function is_nearest_mario_state_to_object(m, obj) + -- ... +end + +--- @param m Object +--- @param obj Object +--- @return integer +function is_nearest_player_to_object(m, obj) + -- ... +end + --- @param m MarioState --- @return integer function is_player_active(m) @@ -3369,6 +3391,29 @@ function stub_obj_helpers_4() -- ... end +--- @param a0 integer +--- @param a1 integer +--- @return nil +function queue_rumble_data(a0, a1) + -- ... +end + +--- @param m MarioState +--- @param a0 integer +--- @param a1 integer +--- @return nil +function queue_rumble_data_mario(m, a0, a1) + -- ... +end + +--- @param object Object +--- @param a0 integer +--- @param a1 integer +--- @return nil +function queue_rumble_data_object(object, a0, a1) + -- ... +end + --- @param capPos Vec3s --- @return integer function save_file_get_cap_pos(capPos) @@ -3772,29 +3817,6 @@ function load_object_collision_model() -- ... end ---- @param a0 integer ---- @param a1 integer ---- @return nil -function queue_rumble_data(a0, a1) - -- ... -end - ---- @param m MarioState ---- @param a0 integer ---- @param a1 integer ---- @return nil -function queue_rumble_data_mario(m, a0, a1) - -- ... -end - ---- @param object Object ---- @param a0 integer ---- @param a1 integer ---- @return nil -function queue_rumble_data_object(object, a0, a1) - -- ... -end - --- @class Pointer_BehaviorScript --- @class Pointer_number --- @class Pointer_integer diff --git a/autogen/lua_definitions/structs.lua b/autogen/lua_definitions/structs.lua index d989b58c9..03dc68051 100644 --- a/autogen/lua_definitions/structs.lua +++ b/autogen/lua_definitions/structs.lua @@ -618,10 +618,10 @@ --- @field public oBBallSpawnerMaxSpawnDist number --- @field public oBBallSpawnerPeriodMinus1 integer --- @field public oBBallSpawnerSpawnOdds number ---- @field public oBackAndForthPlatformUnk100 number ---- @field public oBackAndForthPlatformUnkF4 number ---- @field public oBackAndForthPlatformUnkF8 number ---- @field public oBackAndForthPlatformUnkFC number +--- @field public oBackAndForthPlatformDirection number +--- @field public oBackAndForthPlatformDistance number +--- @field public oBackAndForthPlatformPathLength number +--- @field public oBackAndForthPlatformVel number --- @field public oBehParams integer --- @field public oBehParams2ndByte integer --- @field public oBetaTrampolineMarioOnTrampoline integer @@ -634,7 +634,7 @@ --- @field public oBlueFishRandomAngle number --- @field public oBlueFishRandomTime integer --- @field public oBlueFishRandomVel number ---- @field public oBlueFlameUnkF8 number +--- @field public oBlueFlameNextScale number --- @field public oBobombBlinkTimer integer --- @field public oBobombBuddyBlinkTimer integer --- @field public oBobombBuddyCannonStatus integer @@ -829,18 +829,18 @@ --- @field public oFireSpitterScaleVel number --- @field public oFishActiveDistance number --- @field public oFishDepthDistance number ---- @field public oFishPosY number ---- @field public oFishRandomOffset number ---- @field public oFishRandomSpeed integer ---- @field public oFishRandomVel number ---- @field public oFishRespawnDistance number +--- @field public oFishGoalVel number +--- @field public oFishGoalY number +--- @field public oFishHeightOffset number +--- @field public oFishRoamDistance number --- @field public oFishWaterLevel number +--- @field public oFishYawVel integer --- @field public oFlags integer +--- @field public oFlameBowser Object +--- @field public oFlameScale number +--- @field public oFlameSpeedTimerOffset integer --- @field public oFlameThowerFlameUnk110 integer --- @field public oFlameThowerUnk110 integer ---- @field public oFlameUnk100 Object ---- @field public oFlameUnkF4 number ---- @field public oFlameUnkF8 integer --- @field public oFlameUnkFC number --- @field public oFloatingPlatformUnk100 integer --- @field public oFloatingPlatformUnkF4 integer @@ -968,9 +968,8 @@ --- @field public oMacroUnk108 number --- @field public oMacroUnk10C number --- @field public oMacroUnk110 number ---- @field public oMantaUnk1AC integer ---- @field public oMantaUnkF4 integer ---- @field public oMantaUnkF8 integer +--- @field public oMantaTargetPitch integer +--- @field public oMantaTargetYaw integer --- @field public oMarioBurnTimer integer --- @field public oMarioCannonInputYaw integer --- @field public oMarioCannonObjectYaw integer @@ -1128,9 +1127,9 @@ --- @field public oSmallPenguinUnk88 integer --- @field public oSmallPiranhaFlameEndSpeed number --- @field public oSmallPiranhaFlameModel integer +--- @field public oSmallPiranhaFlameNextFlameTimer integer +--- @field public oSmallPiranhaFlameSpeed number --- @field public oSmallPiranhaFlameStartSpeed number ---- @field public oSmallPiranhaFlameUnk100 integer ---- @field public oSmallPiranhaFlameUnk104 number --- @field public oSmokeTimer integer --- @field public oSnowmansBottomUnk1AC integer --- @field public oSnowmansBottomUnkF4 number @@ -1160,6 +1159,7 @@ --- @field public oStarSelectorTimer integer --- @field public oStarSelectorType integer --- @field public oStarSpawnDisFromHome number +--- @field public oStarSpawnExtCutsceneFlags integer --- @field public oStarSpawnUnkFC number --- @field public oStrongWindParticlePenguinObj Object --- @field public oSubAction integer @@ -1455,7 +1455,7 @@ --- @field public numWalls integer --- @field public offsetY number --- @field public radius number ---- @field public unk14 integer +--- @field public unused integer --- @class WarpNode --- @field public destArea integer diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 986c6dd8a..58e04d58b 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -318,6 +318,8 @@ - [calc_new_obj_vel_and_pos_y_underwater](#calc_new_obj_vel_and_pos_y_underwater) - [calc_obj_friction](#calc_obj_friction) - [current_mario_room_check](#current_mario_room_check) + - [is_nearest_mario_state_to_object](#is_nearest_mario_state_to_object) + - [is_nearest_player_to_object](#is_nearest_player_to_object) - [is_player_active](#is_player_active) - [is_point_close_to_object](#is_point_close_to_object) - [is_point_within_radius_of_mario](#is_point_within_radius_of_mario) @@ -5639,6 +5641,48 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
+## [is_nearest_mario_state_to_object](#is_nearest_mario_state_to_object) + +### Lua Example +`local integerValue = is_nearest_mario_state_to_object(m, obj)` + +### Parameters +| Field | Type | +| ----- | ---- | +| m | [MarioState](structs.md#MarioState) | +| obj | [Object](structs.md#Object) | + +### Returns +- `integer` + +### C Prototype +`u8 is_nearest_mario_state_to_object(struct MarioState *m, struct Object *obj);` + +[:arrow_up_small:](#) + +
+ +## [is_nearest_player_to_object](#is_nearest_player_to_object) + +### Lua Example +`local integerValue = is_nearest_player_to_object(m, obj)` + +### Parameters +| Field | Type | +| ----- | ---- | +| m | [Object](structs.md#Object) | +| obj | [Object](structs.md#Object) | + +### Returns +- `integer` + +### C Prototype +`u8 is_nearest_player_to_object(struct Object *m, struct Object *obj);` + +[:arrow_up_small:](#) + +
+ ## [is_player_active](#is_player_active) ### Lua Example diff --git a/docs/lua/structs.md b/docs/lua/structs.md index afaa37385..41577a10d 100644 --- a/docs/lua/structs.md +++ b/docs/lua/structs.md @@ -1462,6 +1462,7 @@ | oSoundEffectUnkF4 | `integer` | | | oStarSpawnDisFromHome | `number` | | | oStarSpawnUnkFC | `number` | | +| oStarSpawnExtCutsceneFlags | `integer` | | | oHiddenStarTriggerCounter | `integer` | | | oSparkleSpawnUnk1B0 | `integer` | | | oUnlockDoorStarState | `integer` | | diff --git a/include/object_fields.h b/include/object_fields.h index 56ffe6962..841ffec6e 100644 --- a/include/object_fields.h +++ b/include/object_fields.h @@ -922,8 +922,9 @@ #define /*0x0F4*/ oSoundEffectUnkF4 OBJECT_FIELD_S32(0x1B) /* Star Spawn */ -#define /*0x0F4*/ oStarSpawnDisFromHome OBJECT_FIELD_F32(0x1B) -#define /*0x0FC*/ oStarSpawnUnkFC OBJECT_FIELD_F32(0x1D) +#define /*0x0F4*/ oStarSpawnDisFromHome OBJECT_FIELD_F32(0x1B) +#define /*0x0F8*/ oStarSpawnUnkFC OBJECT_FIELD_F32(0x1D) +#define /*0x0FC*/ oStarSpawnExtCutsceneFlags OBJECT_FIELD_S16(0x1E, 0) /* Hidden Star */ // Secrets/Red Coins diff --git a/src/game/behaviors/king_bobomb.inc.c b/src/game/behaviors/king_bobomb.inc.c index aff90567c..2404b4da7 100644 --- a/src/game/behaviors/king_bobomb.inc.c +++ b/src/game/behaviors/king_bobomb.inc.c @@ -68,7 +68,7 @@ void king_bobomb_act_0(void) { } s32 mario_is_far_below_object(f32 arg0) { - for (int i = 0; i < MAX_PLAYERS; i++) { + for (s32 i = 0; i < MAX_PLAYERS; i++) { if (!is_player_active(&gMarioStates[i])) { continue; } if (arg0 >= o->oPosY - gMarioStates[i].marioObj->oPosY) { return FALSE; } } @@ -159,10 +159,10 @@ void king_bobomb_act_1(void) { o->oVelY = 0; cur_obj_init_animation_with_sound(11); struct MarioState* marioState = king_bobomb_nearest_mario_state(); - int distanceToPlayer = (marioState != NULL) ? dist_between_objects(o, marioState->marioObj) : 3000; + s32 distanceToPlayer = (marioState != NULL) ? dist_between_objects(o, marioState->marioObj) : 3000; if (marioState != NULL) { - int angleToPlayer = obj_angle_to_object(o, marioState->marioObj); + s32 angleToPlayer = obj_angle_to_object(o, marioState->marioObj); o->oMoveAngleYaw = approach_s16_symmetric(o->oMoveAngleYaw, angleToPlayer, 512); } @@ -226,6 +226,8 @@ void king_bobomb_act_7(void) { void king_bobomb_act_8(void) { if (!(o->header.gfx.node.flags & GRAPH_RENDER_INVISIBLE)) { + struct Object *star = NULL; + create_sound_spawner(SOUND_OBJ_KING_WHOMP_DEATH); cur_obj_hide(); cur_obj_become_intangible(); @@ -233,11 +235,20 @@ void king_bobomb_act_8(void) { spawn_triangle_break_particles(20, 138, 3.0f, 4); cur_obj_shake_screen(SHAKE_POS_SMALL); #ifndef VERSION_JP - cur_obj_spawn_star_at_y_offset(2000.0f, 4500.0f, -4500.0f, 200.0f); + //cur_obj_spawn_star_at_y_offset(2000.0f, 4500.0f, -4500.0f, 200.0f); + f32 objectPosY = o->oPosY; + o->oPosY += 200.0f + gDebugInfo[5][0]; + star = spawn_default_star(2000.0f, 4500.0f, -4500.0f); + o->oPosY = objectPosY; #else o->oPosY += 100.0f; - spawn_default_star(2000.0f, 4500.0f, -4500.0f); + star = spawn_default_star(2000.0f, 4500.0f, -4500.0f); #endif + // If we're not the closet to King-Bombomb, + // Don't play this cutscene! + if (star != NULL && nearest_mario_state_to_object(o) != &gMarioStates[0]) { + star->oStarSpawnExtCutsceneFlags = 0; + } } if (o->oTimer == 60) stop_background_music(SEQUENCE_ARGS(4, SEQ_EVENT_BOSS)); diff --git a/src/game/behaviors/sparkle_spawn_star.inc.c b/src/game/behaviors/sparkle_spawn_star.inc.c index 22448fe38..4e0da912f 100644 --- a/src/game/behaviors/sparkle_spawn_star.inc.c +++ b/src/game/behaviors/sparkle_spawn_star.inc.c @@ -13,10 +13,9 @@ struct ObjectHitbox sSparkleSpawnStarHitbox = { }; void bhv_spawned_star_init(void) { - s32 sp24; if (!(o->oInteractionSubtype & INT_SUBTYPE_NO_EXIT)) o->oBehParams = o->parentObj->oBehParams; - sp24 = (o->oBehParams >> 24) & 0xFF; + s32 sp24 = (o->oBehParams >> 24) & 0xFF; if (bit_shift_left(sp24) & save_file_get_star_flags(gCurrSaveFileNum - 1, gCurrCourseNum - 1)) cur_obj_set_model(smlua_model_util_load(E_MODEL_TRANSPARENT_STAR)); cur_obj_play_sound_2(SOUND_GENERAL2_STAR_APPEARS); @@ -25,12 +24,12 @@ void bhv_spawned_star_init(void) { // path due to jankiness in oBehParams. Send the spawn event here instead. u8 spawnedFromExclamationBox = (o->parentObj != NULL && o->parentObj->behavior == bhvExclamationBox); if (gNetworkAreaLoaded && spawnedFromExclamationBox) { + o->oStarSpawnExtCutsceneFlags = 1; o->parentObj = o; struct Object* spawn_objects[] = { o }; u32 models[] = { MODEL_STAR }; network_send_spawn_objects(spawn_objects, models, 1); } - } void set_sparkle_spawn_star_hitbox(void) { @@ -42,10 +41,8 @@ void set_sparkle_spawn_star_hitbox(void) { } void set_home_to_mario(void) { - f32 sp1C; - f32 sp18; u8 parentIsMario = FALSE; - for (int i = 0; i < MAX_PLAYERS; i++) { + for (s32 i = 0; i < MAX_PLAYERS; i++) { if (o->parentObj == gMarioStates[i].marioObj) { parentIsMario = TRUE; break; @@ -63,8 +60,8 @@ void set_home_to_mario(void) { } o->oHomeY += 250.0f; o->oPosY = o->oHomeY; - sp1C = o->oHomeX - o->oPosX; - sp18 = o->oHomeZ - o->oPosZ; + f32 sp1C = o->oHomeX - o->oPosX; + f32 sp18 = o->oHomeZ - o->oPosZ; o->oForwardVel = sqrtf(sp1C * sp1C + sp18 * sp18) / 23.0f; } @@ -80,8 +77,14 @@ void slow_star_rotation(void) { void bhv_spawned_star_loop(void) { if (o->oAction == 0) { + // All of these are for checking if we spawned the star, If + // we didn't. We don't need the time stop. + u8 playExclamationBoxCutscene = (is_nearest_mario_state_to_object(gMarioState, o) && o->oStarSpawnExtCutsceneFlags); + u8 playGenericSpawnCutscene = (o->parentObj != NULL && o->parentObj == gMarioStates[0].marioObj); + u8 playCutscene = (playExclamationBoxCutscene || playGenericSpawnCutscene); + if (o->oTimer == 0) { - if ((gMarioStates[0].action & ACT_GROUP_MASK) != ACT_GROUP_CUTSCENE) { + if (playCutscene && ((gMarioStates[0].action & ACT_GROUP_MASK) != ACT_GROUP_CUTSCENE)) { cutscene_object(CUTSCENE_STAR_SPAWN, o); gMarioStates[0].freeze = 60; set_time_stop_flags(TIME_STOP_ENABLED | TIME_STOP_MARIO_AND_DOORS); @@ -139,22 +142,22 @@ void bhv_spawned_star_loop(void) { o->oInteractStatus = 0; } -void bhv_spawn_star_no_level_exit(struct Object* object, u32 sp20, u8 networkSendEvent) { +void bhv_spawn_star_no_level_exit(struct Object* object, u32 params, u8 networkSendEvent) { // de-duplication checking for (int i = 0; i < gSpawnedStarNLECount; i++) { - if (gSpawnedStarNLE[i] == sp20) { return; } + if (gSpawnedStarNLE[i] == params) { return; } } if (gSpawnedStarNLECount < 8) { - gSpawnedStarNLE[gSpawnedStarNLECount++] = sp20; + gSpawnedStarNLE[gSpawnedStarNLECount++] = params; } - struct Object *sp1C = spawn_object(object, MODEL_STAR, bhvSpawnedStarNoLevelExit); - if (sp1C != NULL) { - sp1C->oBehParams = sp20 << 24; - sp1C->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; - obj_set_angle(sp1C, 0, 0, 0); + struct Object *star = spawn_object(object, MODEL_STAR, bhvSpawnedStarNoLevelExit); + if (star != NULL) { + star->oBehParams = params << 24; + star->oInteractionSubtype = INT_SUBTYPE_NO_EXIT; + obj_set_angle(star, 0, 0, 0); } if (networkSendEvent) { - network_send_spawn_star_nle(object, sp20); + network_send_spawn_star_nle(object, params); } } diff --git a/src/game/behaviors/spawn_star.inc.c b/src/game/behaviors/spawn_star.inc.c index 5c3026196..e72ddd3e5 100644 --- a/src/game/behaviors/spawn_star.inc.c +++ b/src/game/behaviors/spawn_star.inc.c @@ -43,7 +43,7 @@ void bhv_star_spawn_init(void) { o->oForwardVel = o->oStarSpawnDisFromHome / 30.0f; o->oStarSpawnUnkFC = o->oPosY; - if ((gMarioStates[0].action & ACT_GROUP_MASK) != ACT_GROUP_CUTSCENE) { + if (o->oStarSpawnExtCutsceneFlags && ((gMarioStates[0].action & ACT_GROUP_MASK) != ACT_GROUP_CUTSCENE)) { if (o->oBehParams2ndByte == 0 || gCurrCourseNum == COURSE_BBH) cutscene_object(CUTSCENE_STAR_SPAWN, o); else @@ -114,17 +114,18 @@ void bhv_star_spawn_loop(void) { } } -struct Object *spawn_star(struct Object *sp30, f32 sp34, f32 sp38, f32 sp3C) { - sp30 = spawn_object_abs_with_rot(o, 0, MODEL_STAR, bhvStarSpawnCoordinates, o->oPosX, o->oPosY, +struct Object *spawn_star(struct Object *obj, f32 x, f32 y, f32 z) { + obj = spawn_object_abs_with_rot(o, 0, MODEL_STAR, bhvStarSpawnCoordinates, o->oPosX, o->oPosY, o->oPosZ, 0, 0, 0); - if (sp30 == NULL) { return NULL; } - sp30->oBehParams = o->oBehParams; - sp30->oHomeX = sp34; - sp30->oHomeY = sp38; - sp30->oHomeZ = sp3C; - sp30->oFaceAnglePitch = 0; - sp30->oFaceAngleRoll = 0; - return sp30; + if (obj == NULL) { return NULL; } + obj->oBehParams = o->oBehParams; + obj->oStarSpawnExtCutsceneFlags = 1; + obj->oHomeX = x; + obj->oHomeY = y; + obj->oHomeZ = z; + obj->oFaceAnglePitch = 0; + obj->oFaceAngleRoll = 0; + return obj; } static u8 spawn_star_deduplication(u32* array, u8* count, u32 behParams) { @@ -150,8 +151,10 @@ struct Object* spawn_default_star(f32 x, f32 y, f32 z) { struct Object *star = NULL; star = spawn_star(star, x, y, z); - star->oBehParams2ndByte = 0; - network_send_spawn_star(star, 0, x, y, z, behParams); + if (star != NULL) { + star->oBehParams2ndByte = 0; + network_send_spawn_star(star, 0, x, y, z, behParams); + } return star; } @@ -165,8 +168,10 @@ struct Object* spawn_red_coin_cutscene_star(f32 x, f32 y, f32 z) { struct Object * star = NULL; star = spawn_star(star, x, y, z); - star->oBehParams2ndByte = 1; - network_send_spawn_star(star, 1, x, y, z, behParams); + if (star != NULL) { + star->oBehParams2ndByte = 1; + network_send_spawn_star(star, 1, x, y, z, behParams); + } return star; } @@ -180,28 +185,26 @@ struct Object* spawn_no_exit_star(f32 x, f32 y, f32 z) { struct Object * star = NULL; star = spawn_star(star, x, y, z); - star->oBehParams2ndByte = 1; - star->oInteractionSubtype |= INT_SUBTYPE_NO_EXIT; - network_send_spawn_star(star, 2, x, y, z, behParams); + if (star != NULL) { + star->oBehParams2ndByte = 1; + star->oInteractionSubtype |= INT_SUBTYPE_NO_EXIT; + network_send_spawn_star(star, 2, x, y, z, behParams); + } return star; } void bhv_hidden_red_coin_star_init(void) { - s16 sp36; - struct Object *sp30; - if (gCurrCourseNum != COURSE_JRB) spawn_object(o, MODEL_TRANSPARENT_STAR, bhvRedCoinStarMarker); - sp36 = count_objects_with_behavior(bhvRedCoin); - if (sp36 == 0) { - sp30 = - spawn_object_abs_with_rot(o, 0, MODEL_STAR, bhvStar, o->oPosX, o->oPosY, o->oPosZ, 0, 0, 0); - if (sp30 != NULL) { sp30->oBehParams = o->oBehParams; } + s16 redCoins = count_objects_with_behavior(bhvRedCoin); + if (redCoins == 0) { + struct Object *star = spawn_object_abs_with_rot(o, 0, MODEL_STAR, bhvStar, o->oPosX, o->oPosY, o->oPosZ, 0, 0, 0); + if (star != NULL) { star->oBehParams = o->oBehParams; } o->activeFlags = ACTIVE_FLAG_DEACTIVATED; } - o->oHiddenStarTriggerCounter = 8 - sp36; + o->oHiddenStarTriggerCounter = 8 - redCoins; } void bhv_hidden_red_coin_star_loop(void) { diff --git a/src/game/behaviors/ukiki.inc.c b/src/game/behaviors/ukiki.inc.c index a182aa8cc..3dbb321d7 100644 --- a/src/game/behaviors/ukiki.inc.c +++ b/src/game/behaviors/ukiki.inc.c @@ -358,7 +358,7 @@ u8 ukiki_act_go_to_cage_continue_dialog(void) { return o->oAction == UKIKI_ACT_G void ukiki_act_go_to_cage(void) { struct MarioState* marioState = nearest_mario_state_to_object(o); struct Object* player = marioState->marioObj; - int angleToPlayer = obj_angle_to_object(o, player); + s32 angleToPlayer = obj_angle_to_object(o, player); struct Object* obj; f32 latDistToCage = 0.0f; diff --git a/src/game/behaviors/wiggler.inc.c b/src/game/behaviors/wiggler.inc.c index 4a20ed961..b46c83612 100644 --- a/src/game/behaviors/wiggler.inc.c +++ b/src/game/behaviors/wiggler.inc.c @@ -365,7 +365,14 @@ static void wiggler_act_shrink(void) { // 4 is the default scale, so shrink to 1/4 of regular size if (approach_f32_ptr(&o->header.gfx.scale[0], 1.0f, 0.1f)) { - spawn_default_star(0.0f, 2048.0f, 0.0f); + struct Object *star = spawn_default_star(0.0f, 2048.0f, 0.0f); + + // If we're not the closet to Wiggler, + // Don't play this cutscene! + if (star != NULL && nearest_mario_state_to_object(o) != &gMarioStates[0]) { + star->oStarSpawnExtCutsceneFlags = 0; + } + o->oAction = WIGGLER_ACT_FALL_THROUGH_FLOOR; } @@ -421,7 +428,7 @@ void bhv_wiggler_on_received_post(UNUSED u8 localIndex) { posDiff[0] = o->oPosX - wigglerPrePos[0]; posDiff[1] = o->oPosY - wigglerPrePos[1]; posDiff[2] = o->oPosZ - wigglerPrePos[2]; - for (int i = 0; i < 3; i++) { + for (s32 i = 0; i < 3; i++) { o->oWigglerSegments[i].posX += posDiff[0]; o->oWigglerSegments[i].posY += posDiff[1]; o->oWigglerSegments[i].posZ += posDiff[2]; @@ -458,8 +465,8 @@ void bhv_wiggler_update(void) { } struct Object* player = nearest_player_to_object(o); - int distanceToPlayer = dist_between_objects(o, player); - int angleToPlayer = obj_angle_to_object(o, player); + s32 distanceToPlayer = dist_between_objects(o, player); + s32 angleToPlayer = obj_angle_to_object(o, player); o->oDistanceToMario = distanceToPlayer; o->oAngleToMario = angleToPlayer; diff --git a/src/game/obj_behaviors.c b/src/game/obj_behaviors.c index a3b15c2a4..f634cefc1 100644 --- a/src/game/obj_behaviors.c +++ b/src/game/obj_behaviors.c @@ -571,6 +571,26 @@ struct Object* nearest_player_to_object(struct Object *obj) { return nearest->marioObj; } +/** + * Returns whether or not the MarioState is the closet MarioState + * to the object. + */ +u8 is_nearest_mario_state_to_object(struct MarioState *m, struct Object *obj) { + if (m == NULL || obj == NULL) { return FALSE; } + struct MarioState *nearest = nearest_mario_state_to_object(obj); + return m == nearest; +} + +/** + * Returns whether or not the player is the closet player + * to the object. + */ +u8 is_nearest_player_to_object(struct Object *m, struct Object *obj) { + if (m == NULL || obj == NULL) { return FALSE; } + struct MarioState *nearest = nearest_mario_state_to_object(obj); + return m == nearest->marioObj; +} + /** * Checks whether a point is within distance of a given point. Test is exclusive. */ diff --git a/src/game/obj_behaviors.h b/src/game/obj_behaviors.h index 35355f12b..5dafd81d9 100644 --- a/src/game/obj_behaviors.h +++ b/src/game/obj_behaviors.h @@ -165,4 +165,6 @@ struct Object* spawn_default_star(f32 sp20, f32 sp24, f32 sp28); u8 is_player_active(struct MarioState* m); struct MarioState* nearest_mario_state_to_object(struct Object* obj); struct Object* nearest_player_to_object(struct Object* obj); +u8 is_nearest_mario_state_to_object(struct MarioState* m, struct Object* obj); +u8 is_nearest_player_to_object(struct Object* m, struct Object* obj); #endif // OBJ_BEHAVIORS_H diff --git a/src/pc/lua/smlua_cobject_autogen.c b/src/pc/lua/smlua_cobject_autogen.c index e5ba830ff..ba4cea18a 100644 --- a/src/pc/lua/smlua_cobject_autogen.c +++ b/src/pc/lua/smlua_cobject_autogen.c @@ -678,7 +678,7 @@ static struct LuaObjectField sNetworkPlayerFields[LUA_NETWORK_PLAYER_FIELD_COUNT { "type", LVT_U8, offsetof(struct NetworkPlayer, type), true, LOT_NONE }, }; -#define LUA_OBJECT_FIELD_COUNT 749 +#define LUA_OBJECT_FIELD_COUNT 750 static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = { { "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE }, { "areaTimer", LVT_U32, offsetof(struct Object, areaTimer), false, LOT_NONE }, @@ -1272,6 +1272,7 @@ static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = { { "oStarSelectorTimer", LVT_S32, offsetof(struct Object, oStarSelectorTimer), false, LOT_NONE }, { "oStarSelectorType", LVT_S32, offsetof(struct Object, oStarSelectorType), false, LOT_NONE }, { "oStarSpawnDisFromHome", LVT_F32, offsetof(struct Object, oStarSpawnDisFromHome), false, LOT_NONE }, + { "oStarSpawnExtCutsceneFlags", LVT_S16, offsetof(struct Object, oStarSpawnExtCutsceneFlags), false, LOT_NONE }, { "oStarSpawnUnkFC", LVT_F32, offsetof(struct Object, oStarSpawnUnkFC), false, LOT_NONE }, { "oStrongWindParticlePenguinObj", LVT_COBJECT_P, offsetof(struct Object, oStrongWindParticlePenguinObj), false, LOT_OBJECT }, { "oSubAction", LVT_S32, offsetof(struct Object, oSubAction), false, LOT_NONE }, diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index b18e3ec0b..78501497d 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -3252,6 +3252,34 @@ int smlua_func_geo_obj_transparency_something(lua_State* L) { } */ +int smlua_func_is_nearest_mario_state_to_object(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 2)) { return 0; } + + struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE); + if (!gSmLuaConvertSuccess) { return 0; } + struct Object* obj = (struct Object*)smlua_to_cobject(L, 2, LOT_OBJECT); + if (!gSmLuaConvertSuccess) { return 0; } + + extern u8 is_nearest_mario_state_to_object(struct MarioState *m, struct Object *obj); + lua_pushinteger(L, is_nearest_mario_state_to_object(m, obj)); + + return 1; +} + +int smlua_func_is_nearest_player_to_object(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 2)) { return 0; } + + struct Object* m = (struct Object*)smlua_to_cobject(L, 1, LOT_OBJECT); + if (!gSmLuaConvertSuccess) { return 0; } + struct Object* obj = (struct Object*)smlua_to_cobject(L, 2, LOT_OBJECT); + if (!gSmLuaConvertSuccess) { return 0; } + + extern u8 is_nearest_player_to_object(struct Object *m, struct Object *obj); + lua_pushinteger(L, is_nearest_player_to_object(m, obj)); + + return 1; +} + int smlua_func_is_player_active(lua_State* L) { if(!smlua_functions_valid_param_count(L, 1)) { return 0; } @@ -8408,6 +8436,8 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "calc_obj_friction", smlua_func_calc_obj_friction); smlua_bind_function(L, "current_mario_room_check", smlua_func_current_mario_room_check); //smlua_bind_function(L, "geo_obj_transparency_something", smlua_func_geo_obj_transparency_something); <--- UNIMPLEMENTED + smlua_bind_function(L, "is_nearest_mario_state_to_object", smlua_func_is_nearest_mario_state_to_object); + smlua_bind_function(L, "is_nearest_player_to_object", smlua_func_is_nearest_player_to_object); smlua_bind_function(L, "is_player_active", smlua_func_is_player_active); smlua_bind_function(L, "is_point_close_to_object", smlua_func_is_point_close_to_object); smlua_bind_function(L, "is_point_within_radius_of_mario", smlua_func_is_point_within_radius_of_mario); diff --git a/src/pc/network/packets/packet_spawn_star.c b/src/pc/network/packets/packet_spawn_star.c index 8c6dc4512..c8b82c3f3 100644 --- a/src/pc/network/packets/packet_spawn_star.c +++ b/src/pc/network/packets/packet_spawn_star.c @@ -47,6 +47,7 @@ void network_receive_spawn_star(struct Packet* p) { if (o != NULL) { packet_read(p, &o->oPosX, sizeof(u32) * 3); packet_read(p, &o->oHomeX, sizeof(u32) * 3); + o->oStarSpawnExtCutsceneFlags = 0; } }