From 52fab98176a52c21e2d2b6edc8bb3ff6661a0da7 Mon Sep 17 00:00:00 2001 From: Agent X <44549182+Agent-11@users.noreply.github.com> Date: Sat, 23 Dec 2023 11:30:18 -0500 Subject: [PATCH] Make default mods a little smaller by removing Flood --- mods/flood/a-levels.lua | 102 ---- mods/flood/a-utils.lua | 166 ------ mods/flood/actors/ctt_geo.bin | Bin 33804 -> 0 bytes mods/flood/actors/flood_geo.bin | Bin 9735 -> 0 bytes mods/flood/actors/koopa_flag_geo.bin | Bin 2140 -> 0 bytes mods/flood/actors/launchpad_collision.col | Bin 157 -> 0 bytes mods/flood/actors/launchpad_geo.bin | Bin 1451 -> 0 bytes mods/flood/levels/level_sa_entry.lvl | Bin 66035 -> 0 bytes mods/flood/main.lua | 642 ---------------------- mods/flood/misc.lua | 210 ------- mods/flood/sound/00_pinball_custom.m64 | Bin 3209 -> 0 bytes mods/flood/spectator.lua | 163 ------ mods/flood/textures/flood_flag.png | Bin 952 -> 0 bytes mods/flood/textures/flood_flag.tex | Bin 967 -> 0 bytes 14 files changed, 1283 deletions(-) delete mode 100644 mods/flood/a-levels.lua delete mode 100644 mods/flood/a-utils.lua delete mode 100644 mods/flood/actors/ctt_geo.bin delete mode 100644 mods/flood/actors/flood_geo.bin delete mode 100644 mods/flood/actors/koopa_flag_geo.bin delete mode 100644 mods/flood/actors/launchpad_collision.col delete mode 100644 mods/flood/actors/launchpad_geo.bin delete mode 100644 mods/flood/levels/level_sa_entry.lvl delete mode 100644 mods/flood/main.lua delete mode 100644 mods/flood/misc.lua delete mode 100644 mods/flood/sound/00_pinball_custom.m64 delete mode 100644 mods/flood/spectator.lua delete mode 100644 mods/flood/textures/flood_flag.png delete mode 100644 mods/flood/textures/flood_flag.tex diff --git a/mods/flood/a-levels.lua b/mods/flood/a-levels.lua deleted file mode 100644 index 0d4b8810..00000000 --- a/mods/flood/a-levels.lua +++ /dev/null @@ -1,102 +0,0 @@ -unsupported = false - -FLOOD_WATER = 0 -FLOOD_LAVA = 1 -FLOOD_SAND = 2 -FLOOD_MUD = 3 - -FLOOD_BONUS_LEVELS = 0 -FLOOD_LEVEL_COUNT = 0 - -LEVEL_LOBBY = LEVEL_CASTLE_GROUNDS -LEVEL_CTT = LEVEL_SA - -GAME_VANILLA = 0 -GAME_STAR_ROAD = 1 - -game = GAME_VANILLA - ---- @class FloodLevel ---- @field public name string ---- @field public goalPos Vec3f ---- @field public speed number ---- @field public area integer ---- @field public type integer ---- @field public time integer ---- @field public customStartPos Vec3f - ---- @type FloodLevel[] -gLevels = {} -gMapRotation = {} - --- localize functions to improve performance -local table_insert,djui_popup_create = table.insert,djui_popup_create - -local function flood_define_level(bonus, level, name, goalPos, speed, area, type, customStartPos) - gLevels[level] = { name = name, goalPos = goalPos, speed = speed, area = area, type = type, time = 0, customStartPos = customStartPos } - table_insert(gMapRotation, level) - - if bonus then FLOOD_BONUS_LEVELS = FLOOD_BONUS_LEVELS + 1 end - FLOOD_LEVEL_COUNT = FLOOD_LEVEL_COUNT + 1 -end -_G.flood_define_level = flood_define_level - -local function flood_load_vanilla_levels() - game = GAME_VANILLA - - -- bonus level name goal position speed area type custom start pos - flood_define_level(false, LEVEL_BOB, "bob", { x = 3304, y = 4242, z = -4603, a = 0x0000 }, 2.5, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_WF, "wf", { x = 414, y = 5325, z = -20, a = 0x0000 }, 4.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_CCM, "ccm", { x = -478, y = 3471, z = -964, a = 0x0000 }, 5.0, 1, FLOOD_WATER, { x = 3336, y = -3800, z = 0, a = 0x0000 }) - flood_define_level(false, LEVEL_BITDW, "bitdw", { x = 6772, y = 2867, z = 0, a = -0x4000 }, 4.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_BBH, "bbh", { x = 655, y = 3277, z = 244, a = 0x8000 }, 3.5, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_HMC, "hmc", { x = -4163, y = 2355, z = -2544, a = 0x0000 }, 5.0, 1, FLOOD_WATER, { x = -3538, y = -3979, z = 3568, a = 0x8000 }) - flood_define_level(false, LEVEL_LLL, "lll", { x = 2523, y = 3591, z = -898, a = -0x8000 }, 3.5, 2, FLOOD_LAVA, nil) - flood_define_level(false, LEVEL_SSL, "ssl", { x = 512, y = 4815, z = -551, a = 0x0000 }, 3.0, 2, FLOOD_SAND, nil) - flood_define_level(false, LEVEL_WDW, "wdw", { x = 1467, y = 4096, z = 93, a = -0x4000 }, 4.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_TTM, "ttm", { x = 1053, y = 2309, z = 305, a = 0x0000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_THI, "thi", { x = 1037, y = 4060, z = -2091, a = 0x0000 }, 4.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_TTC, "ttc", { x = 2208, y = 7051, z = 2217, a = 0x0000 }, 4.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_BITS, "bits", { x = 369, y = 6552, z = -6000, a = 0x0000 }, 4.5, 1, FLOOD_LAVA, nil) - flood_define_level(false, LEVEL_CTT, "ctt", { x = 0, y = 700, z = 0, a = 0x0000 }, 5.0, 1, FLOOD_LAVA, nil) - flood_define_level(true, LEVEL_SL, "sl", { x = 40, y = 4864, z = 240, a = 0x0000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(true, LEVEL_RR, "rr", { x = 0, y = 3468, z = -2335, a = 0x0000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(true, LEVEL_CASTLE_GROUNDS, "castle_grounds", { x = 0, y = 7583, z = -4015, a = 0x0000 }, 7.0, 1, FLOOD_WATER, nil) -end - -local function flood_load_star_road_levels() - game = GAME_STAR_ROAD - - -- bonus level name goal position speed area type custom start pos - flood_define_level(false, LEVEL_BOB, "bob", { x = 5364, y = 1875, z = 2251, a = 0x0000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_WF, "wf", { x = 208, y = 2448, z = -2080, a = 0x4000 }, 5.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_JRB, "jrb", { x = -4672, y = 3541, z = -3619, a = -0x4000 }, 4.0, 1, FLOOD_WATER, { x = 2316, y = -448, z = -5150, a = 0x0000 }) - flood_define_level(false, LEVEL_CCM, "ccm", { x = 5709, y = 3501, z = -2141, a = -0x4000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_PSS, "pss", { x = -3415, y = 4573, z = 2678, a = 0x0000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_BITDW, "bitdw", { x = 455, y = 2324, z = 0, a = -0x4000 }, 3.0, 1, FLOOD_MUD, nil) - flood_define_level(false, LEVEL_BBH, "bbh", { x = 4376, y = 2632, z = -4542, a = 0x0000 }, 3.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_LLL, "lll", { x = 4348, y = 4638, z = 3877, a = -0x4000 }, 7.0, 1, FLOOD_SAND, nil) - flood_define_level(false, LEVEL_SL, "sl", { x = 4543, y = 3709, z = 3311, a = 0x8000 }, 2.5, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_WDW, "wdw", { x = -3342, y = 2603, z = 845, a = 0x4000 }, 4.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_TTM, "ttm", { x = 1033, y = 4813, z = -6320, a = 0x8000 }, 2.0, 1, FLOOD_WATER, nil) - flood_define_level(false, LEVEL_TTC, "ttc", { x = 1405, y = 3425, z = -3463, a = 0x8000 }, 4.0, 1, FLOOD_LAVA, nil) - flood_define_level(false, LEVEL_RR, "rr", { x = 5052, y = 11056, z = 413, a = -0x4000 }, 4.0, 1, FLOOD_WATER, { x = 3923, y = -3283, z = -1323, a = 0x8000 }) - flood_define_level(true, LEVEL_CASTLE_GROUNDS, "castle_grounds", { x = -8455, y = 2746, z = 2876, a = 0x8000 }, 15.0, 1, FLOOD_WATER, { x = -1644, y = -614, z = -1524, a = -0x4000 }) -end - --- load romhack levels -for mod in pairs(gActiveMods) do - if gActiveMods[mod].incompatible ~= nil and gActiveMods[mod].incompatible:find("romhack") then - if gActiveMods[mod].relativePath == "star-road" then - flood_load_star_road_levels() - else - unsupported = true - djui_popup_create("\\#ff0000\\This rom hack is not supported with Flood.", 2) - end - break - end -end - -if not unsupported and game == GAME_VANILLA then - flood_load_vanilla_levels() -end \ No newline at end of file diff --git a/mods/flood/a-utils.lua b/mods/flood/a-utils.lua deleted file mode 100644 index 0f1c333f..00000000 --- a/mods/flood/a-utils.lua +++ /dev/null @@ -1,166 +0,0 @@ -moveset = false -cheats = false - -for mod in pairs(gActiveMods) do - if gActiveMods[mod].name:find("Object Spawner") then - cheats = true - end -end - -if gServerSettings.enableCheats ~= 0 then - cheats = true -end - -for i in pairs(gActiveMods) do - if (gActiveMods[i].incompatible ~= nil and gActiveMods[i].incompatible:find("moveset")) or gActiveMods[i].name:find("Squishy's Server") or (gActiveMods[i].name:find("Pasta") and gActiveMods[i].name:find("Castle")) then - moveset = true - end -end - --- localize functions to improve performance -local math_floor,is_player_active,table_insert,is_game_paused,djui_hud_set_color = math.floor,is_player_active,table.insert,is_game_paused,djui_hud_set_color - -rom_hack_cam_set_collisions(false) - --- Rounds up or down depending on the decimal position of `x`. ---- @param x number ---- @return integer -function math_round(x) - return if_then_else(x - math.floor(x) >= 0.5, math.ceil(x), math.floor(x)) -end - --- Recieves a value of any type and converts it into a boolean. -function tobool(v) - local type = type(v) - if type == "boolean" then - return v - elseif type == "number" then - return v == 1 - elseif type == "string" then - return v == "true" - elseif type == "table" or type == "function" or type == "thread" or type == "userdata" then - return true - end - return false -end - -function switch(param, case_table) - local case = case_table[param] - if case then return case() end - local def = case_table['default'] - return def and def() or nil -end - ---- @param m MarioState -function active_player(m) - local np = gNetworkPlayers[m.playerIndex] - if m.playerIndex == 0 then - return 1 - end - if not np.connected then - return 0 - end - if np.currCourseNum ~= gNetworkPlayers[0].currCourseNum then - return 0 - end - if np.currActNum ~= gNetworkPlayers[0].currActNum then - return 0 - end - if np.currLevelNum ~= gNetworkPlayers[0].currLevelNum then - return 0 - end - if np.currAreaIndex ~= gNetworkPlayers[0].currAreaIndex then - return 0 - end - return is_player_active(m) -end - -function if_then_else(cond, ifTrue, ifFalse) - if cond then return ifTrue end - return ifFalse -end - -function string_without_hex(name) - local s = '' - local inSlash = false - for i = 1, #name do - local c = name:sub(i,i) - if c == '\\' then - inSlash = not inSlash - elseif not inSlash then - s = s .. c - end - end - return s -end - -function on_or_off(value) - if value then return "\\#00ff00\\ON" end - return "\\#ff0000\\OFF" -end - -function split(s) - local result = {} - for match in (s):gmatch(string.format("[^%s]+", " ")) do - table.insert(result, match) - end - return result -end - -function djui_hud_set_adjusted_color(r, g, b, a) - local multiplier = 1 - if is_game_paused() then multiplier = 0.5 end - djui_hud_set_color(r * multiplier, g * multiplier, b * multiplier, a) -end - -function SEQUENCE_ARGS(priority, seqId) - return ((priority << 8) | seqId) -end - ---- @param m MarioState -function mario_set_full_health(m) - m.health = 0x880 - m.healCounter = 0 - m.hurtCounter = 0 -end - -local levelToCourse = { - [LEVEL_NONE] = COURSE_NONE, - [LEVEL_BOB] = COURSE_BOB, - [LEVEL_WF] = COURSE_WF, - [LEVEL_JRB] = COURSE_JRB, - [LEVEL_CCM] = COURSE_CCM, - [LEVEL_BBH] = COURSE_BBH, - [LEVEL_HMC] = COURSE_HMC, - [LEVEL_LLL] = COURSE_LLL, - [LEVEL_SSL] = COURSE_SSL, - [LEVEL_DDD] = COURSE_DDD, - [LEVEL_SL] = COURSE_SL, - [LEVEL_WDW] = COURSE_WDW, - [LEVEL_TTM] = COURSE_TTM, - [LEVEL_THI] = COURSE_THI, - [LEVEL_TTC] = COURSE_TTC, - [LEVEL_RR] = COURSE_RR, - [LEVEL_BITDW] = COURSE_BITDW, - [LEVEL_BITFS] = COURSE_BITFS, - [LEVEL_BITS] = COURSE_BITS, - [LEVEL_PSS] = COURSE_PSS, - [LEVEL_COTMC] = COURSE_COTMC, - [LEVEL_TOTWC] = COURSE_TOTWC, - [LEVEL_VCUTM] = COURSE_VCUTM, - [LEVEL_WMOTR] = COURSE_WMOTR, - [LEVEL_SA] = COURSE_SA, - [LEVEL_ENDING] = COURSE_CAKE_END, -} - -function level_to_course(level) - return levelToCourse[level] or COURSE_NONE -end - -function timestamp(seconds) - seconds = seconds / 30 - local minutes = math.floor(seconds / 60) - local milliseconds = math.floor((seconds - math.floor(seconds)) * 1000) - seconds = math.floor(seconds) % 60 - return string.format("%d:%02d:%03d", minutes, seconds, milliseconds) -end \ No newline at end of file diff --git a/mods/flood/actors/ctt_geo.bin b/mods/flood/actors/ctt_geo.bin deleted file mode 100644 index 17ea767738222bf1d70153d78f397b0617f96722..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33804 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�rgop2h&j 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 V0V9!jsb`-aVjWlyY diff --git a/mods/flood/actors/flood_geo.bin b/mods/flood/actors/flood_geo.bin deleted file mode 100644 index 0b531d1c68db6e7172491974e24c4b5629978e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9735 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 Vzl_6fUBAUl)J|ON{{zQ^-kJyPPB8!g diff --git a/mods/flood/actors/koopa_flag_geo.bin b/mods/flood/actors/koopa_flag_geo.bin deleted file mode 100644 index 9c472be26dbea0ca353a169e641462f47f8d9f4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2140 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�oPnd}RE|z)^LqMZ3Tl7J5WVHeW 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 Rzw$Y$r<`Ls{tvSw#h%#>z_b7W diff --git a/mods/flood/main.lua b/mods/flood/main.lua deleted file mode 100644 index 428513c2..00000000 --- a/mods/flood/main.lua +++ /dev/null @@ -1,642 +0,0 @@ --- name: Flood --- incompatible: gamemode --- description: Flood v2.4.5\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod adds a flood escape gamemode\nto sm64ex-coop, you must escape the flood and reach the top of the level before everything is flooded. - -if unsupported then return end - -local ROUND_STATE_INACTIVE = 0 -ROUND_STATE_ACTIVE = 1 -local ROUND_COOLDOWN = 600 - -local SPEEDRUN_MODE_OFF = 0 -local SPEEDRUN_MODE_PROGRESS = 1 -local SPEEDRUN_MODE_RESTART = 2 - -local TEX_FLOOD_FLAG = get_texture_info("flood_flag") - -gGlobalSyncTable.roundState = ROUND_STATE_INACTIVE -gGlobalSyncTable.timer = ROUND_COOLDOWN -gGlobalSyncTable.level = LEVEL_BOB -gGlobalSyncTable.waterLevel = -20000 -gGlobalSyncTable.speedMultiplier = 1 - -local sFlagIconPrevPos = { x = 0, y = 0 } - -local globalTimer = 0 -local listedSurvivors = false -local speedrunner = 0 - --- localize functions to improve performance -local network_player_connected_count,init_single_mario,warp_to_level,play_sound,network_is_server,network_get_player_text_color_string,djui_chat_message_create,disable_time_stop,network_player_set_description,set_mario_action,obj_get_first_with_behavior_id,obj_check_hitbox_overlap,spawn_mist_particles,vec3f_dist,play_race_fanfare,play_music,djui_hud_set_resolution,djui_hud_get_screen_height,djui_hud_get_screen_width,djui_hud_render_rect,djui_hud_set_font,djui_hud_world_pos_to_screen_pos,clampf,math_floor,djui_hud_measure_text,djui_hud_print_text,hud_render_power_meter,hud_get_value,save_file_erase_current_backup_save,save_file_set_flags,save_file_set_using_backup_slot,find_floor_height,spawn_non_sync_object,set_environment_region,vec3f_set,vec3f_copy,math_random,set_ttc_speed_setting,get_level_name,hud_hide,smlua_text_utils_secret_star_replace,smlua_audio_utils_replace_sequence = network_player_connected_count,init_single_mario,warp_to_level,play_sound,network_is_server,network_get_player_text_color_string,djui_chat_message_create,disable_time_stop,network_player_set_description,set_mario_action,obj_get_first_with_behavior_id,obj_check_hitbox_overlap,spawn_mist_particles,vec3f_dist,play_race_fanfare,play_music,djui_hud_set_resolution,djui_hud_get_screen_height,djui_hud_get_screen_width,djui_hud_render_rect,djui_hud_set_font,djui_hud_world_pos_to_screen_pos,clampf,math.floor,djui_hud_measure_text,djui_hud_print_text,hud_render_power_meter,hud_get_value,save_file_erase_current_backup_save,save_file_set_flags,save_file_set_using_backup_slot,find_floor_height,spawn_non_sync_object,set_environment_region,vec3f_set,vec3f_copy,math.random,set_ttc_speed_setting,get_level_name,hud_hide,smlua_text_utils_secret_star_replace,smlua_audio_utils_replace_sequence - -function speedrun_mode(mode) - if mode == nil then - return speedrunner > 0 and network_player_connected_count() == 1 - else - return speedrunner == mode and network_player_connected_count() == 1 - end -end - --- runs serverside -local function round_start() - gGlobalSyncTable.roundState = ROUND_STATE_ACTIVE - gGlobalSyncTable.timer = if_then_else(gGlobalSyncTable.level == LEVEL_CTT or (gGlobalSyncTable.level == LEVEL_RR and game == GAME_STAR_ROAD), 730, 100) -end - --- runs serverside -local function round_end() - gGlobalSyncTable.roundState = ROUND_STATE_INACTIVE - gGlobalSyncTable.timer = ROUND_COOLDOWN - gGlobalSyncTable.waterLevel = -20000 -end - -local function get_dest_act() - if game ~= GAME_STAR_ROAD then - return if_then_else(gNetworkPlayers[0].currLevelNum == LEVEL_CASTLE_GROUNDS, 99, 6) - else - if gNetworkPlayers[0].currLevelNum == LEVEL_CASTLE_GROUNDS then - return 99 - end - return if_then_else(gNetworkPlayers[0].currLevelNum == LEVEL_BBH, 1, 6) - end -end - -local function get_modifiers_string() - if not cheats and not moveset then return "" end - - local modifiers = " (" - if moveset then - modifiers = modifiers .. "Moveset" - else - modifiers = modifiers .. "No moveset" - end - if cheats then - modifiers = modifiers .. ", cheats" - end - modifiers = modifiers .. ")" - return modifiers -end - -function level_restart() - round_start() - init_single_mario(gMarioStates[0]) - mario_set_full_health(gMarioStates[0]) - gLevels[gGlobalSyncTable.level].time = 0 - warp_to_level(gGlobalSyncTable.level, gLevels[gGlobalSyncTable.level].area, get_dest_act()) -end - -local function server_update() - if gGlobalSyncTable.roundState == ROUND_STATE_ACTIVE then - if gNetworkPlayers[0].currLevelNum == gGlobalSyncTable.level then - gGlobalSyncTable.waterLevel = gGlobalSyncTable.waterLevel + gLevels[gGlobalSyncTable.level].speed * gGlobalSyncTable.speedMultiplier - - local active = 0 - for i = 0, (MAX_PLAYERS - 1) do - local m = gMarioStates[i] - if active_player(m) ~= 0 and m.health > 0xFF and not gPlayerSyncTable[i].finished then - active = active + 1 - end - end - - if active == 0 then - local dead = 0 - for i = 0, (MAX_PLAYERS) - 1 do - if active_player(gMarioStates[i]) ~= 0 and gMarioStates[i].health <= 0xFF then - dead = dead + 1 - end - end - if dead == network_player_connected_count() or (speedrun_mode() and gNetworkPlayers[0].currLevelNum ~= LEVEL_CTT) then - gGlobalSyncTable.timer = 0 - end - - if gGlobalSyncTable.timer > 0 then - gGlobalSyncTable.timer = gGlobalSyncTable.timer - 1 - else - round_end() - - if not speedrun_mode() or speedrun_mode(SPEEDRUN_MODE_PROGRESS) then - -- move to the next level - local finished = 0 - for i = 0, (MAX_PLAYERS - 1) do - if active_player(gMarioStates[i]) ~= 0 and gPlayerSyncTable[i].finished then - finished = finished + 1 - end - end - - if finished ~= 0 then - -- calculate position - local position = 1 - for k, v in pairs(gMapRotation) do - if gGlobalSyncTable.level == v then - position = k - end - end - - position = position + 1 - if position > FLOOD_LEVEL_COUNT - FLOOD_BONUS_LEVELS then - position = 1 - end - - gGlobalSyncTable.level = gMapRotation[position] - end - end - end - end - end - else - if network_player_connected_count() > 1 then - if gGlobalSyncTable.timer > 0 then - gGlobalSyncTable.timer = gGlobalSyncTable.timer - 1 - - if gGlobalSyncTable.timer == 30 or gGlobalSyncTable.timer == 60 or gGlobalSyncTable.timer == 90 then - play_sound(SOUND_MENU_CHANGE_SELECT, gMarioStates[0].marioObj.header.gfx.cameraToObject) - elseif gGlobalSyncTable.timer == 11 then - play_sound(SOUND_GENERAL_RACE_GUN_SHOT, gMarioStates[0].marioObj.header.gfx.cameraToObject) - end - else - round_start() - end - end - end -end - -local function update() - if network_is_server() then server_update() end - - gServerSettings.playerInteractions = PLAYER_INTERACTIONS_NONE - - if gGlobalSyncTable.roundState == ROUND_STATE_INACTIVE then - if gNetworkPlayers[0].currLevelNum ~= LEVEL_LOBBY or gNetworkPlayers[0].currActNum ~= 0 then - if speedrun_mode() then - level_restart() - end - - warp_to_level(LEVEL_LOBBY, 1, 0) - - if not listedSurvivors and globalTimer > 5 then - listedSurvivors = true - local finished = 0 - local string = "Survivors:" - for i = 0, (MAX_PLAYERS - 1) do - if gNetworkPlayers[i].connected and gPlayerSyncTable[i].finished then - string = string .. "\n" .. network_get_player_text_color_string(i) .. gNetworkPlayers[i].name - finished = finished + 1 - end - end - if finished == 0 then - string = string .. "\n\\#ff0000\\None" - end - djui_chat_message_create(string) - end - end - elseif gGlobalSyncTable.roundState == ROUND_STATE_ACTIVE then - local act = get_dest_act() - if gNetworkPlayers[0].currLevelNum ~= gGlobalSyncTable.level or gNetworkPlayers[0].currActNum ~= act then - listedSurvivors = false - mario_set_full_health(gMarioStates[0]) - gLevels[gGlobalSyncTable.level].time = 0 - gPlayerSyncTable[0].finished = false - warp_to_level(gGlobalSyncTable.level, gLevels[gGlobalSyncTable.level].area, act) - end - end - - -- stops the star spawn cutscenes from happening - local m = gMarioStates[0] - if m.area ~= nil and m.area.camera ~= nil and (m.area.camera.cutscene == CUTSCENE_STAR_SPAWN or m.area.camera.cutscene == CUTSCENE_RED_COIN_STAR_SPAWN) then - m.area.camera.cutscene = 0 - m.freeze = 0 - disable_time_stop() - end - - globalTimer = globalTimer + 1 -end - ---- @param m MarioState -local function mario_update(m) - if not gNetworkPlayers[m.playerIndex].connected then return end - - if m.health > 0xFF then - network_player_set_description(gNetworkPlayers[m.playerIndex], "Alive", 75, 255, 75, 255) - else - network_player_set_description(gNetworkPlayers[m.playerIndex], "Dead", 255, 75, 75, 255) - end - - if m.playerIndex ~= 0 then return end - - -- action specific modifications - if m.action == ACT_STEEP_JUMP then - m.action = ACT_JUMP - elseif m.action == ACT_JUMBO_STAR_CUTSCENE then - m.flags = m.flags | MARIO_WING_CAP - end - - -- disable instant warps - if m.floor ~= nil and (m.floor.type == SURFACE_WARP or (m.floor.type >= SURFACE_PAINTING_WARP_D3 and m.floor.type <= SURFACE_PAINTING_WARP_FC) or (m.floor.type >= SURFACE_INSTANT_WARP_1B and m.floor.type <= SURFACE_INSTANT_WARP_1E)) then - m.floor.type = SURFACE_DEFAULT - end - - -- disable insta kills - if m.floor ~= nil and (m.floor.type == SURFACE_INSTANT_QUICKSAND or m.floor.type == SURFACE_INSTANT_MOVING_QUICKSAND) then - m.floor.type = SURFACE_BURNING - end - - -- disable damage in lobby - if gGlobalSyncTable.roundState == ROUND_STATE_INACTIVE then - mario_set_full_health(m) - m.peakHeight = m.pos.y - return - end - - -- dialog boxes - if (m.action == ACT_SPAWN_NO_SPIN_AIRBORNE or m.action == ACT_SPAWN_NO_SPIN_LANDING or m.action == ACT_SPAWN_SPIN_AIRBORNE or m.action == ACT_SPAWN_SPIN_LANDING) and m.pos.y < m.floorHeight + 10 then - set_mario_action(m, ACT_FREEFALL, 0) - end - - -- manage CTT - if gNetworkPlayers[0].currLevelNum == LEVEL_CTT then - m.peakHeight = m.pos.y - - local star = obj_get_first_with_behavior_id(id_bhvFinalStar) - if star ~= nil and obj_check_hitbox_overlap(m.marioObj, star) and m.action ~= ACT_JUMBO_STAR_CUTSCENE then - spawn_mist_particles() - set_mario_action(m, ACT_JUMBO_STAR_CUTSCENE, 0) - end - - if m.action == ACT_JUMBO_STAR_CUTSCENE and m.actionTimer >= 499 then - set_mario_spectator(m) - end - end - - -- check if the player has reached the end of the level - if gNetworkPlayers[0].currLevelNum == gGlobalSyncTable.level and not gPlayerSyncTable[0].finished and ((gNetworkPlayers[0].currLevelNum ~= LEVEL_CTT and m.pos.y == m.floorHeight) - or (gNetworkPlayers[0].currLevelNum == LEVEL_CTT and m.action == ACT_JUMBO_STAR_CUTSCENE) or (m.action & ACT_FLAG_ON_POLE) ~= 0) - and vec3f_dist(m.pos, gLevels[gGlobalSyncTable.level].goalPos) < 600 then - gPlayerSyncTable[0].finished = true - - local string = "" - if gNetworkPlayers[0].currLevelNum ~= LEVEL_CTT and not (game == GAME_STAR_ROAD and gNetworkPlayers[0].currLevelNum == LEVEL_RR) then - string = string .. "\\#00ff00\\You escaped the flood!\n" - play_race_fanfare() - else - string = string .. "\\#00ff00\\You escaped the \\#ffff00\\final\\#00ff00\\ flood! Congratulations!\n" - play_music(0, SEQUENCE_ARGS(8, SEQ_EVENT_CUTSCENE_VICTORY), 0) - end - string = string .. "\\#ffffff\\Time: " .. string.format("%.3f", gLevels[gGlobalSyncTable.level].time / 30) .. get_modifiers_string() - - djui_chat_message_create(string) - end - - -- update spectator if finished, manage other things if not - if gPlayerSyncTable[0].finished then - mario_set_full_health(m) - if network_player_connected_count() > 1 and m.action ~= ACT_JUMBO_STAR_CUTSCENE then - set_mario_spectator(m) - end - else - if m.pos.y + 40 < gGlobalSyncTable.waterLevel then - m.health = m.health - 30 - end - - if m.action == ACT_QUICKSAND_DEATH then - m.health = 0xFF - end - - if m.health <= 0xFF then - if network_player_connected_count() > 1 then - m.area.camera.cutscene = 0 - set_mario_spectator(m) - end - else - gLevels[gGlobalSyncTable.level].time = gLevels[gGlobalSyncTable.level].time + 1 - end - end -end - -local function on_hud_render() - local water = obj_get_first_with_behavior_id(id_bhvWater) - if gNetworkPlayers[0].currLevelNum == gGlobalSyncTable.level and water ~= nil then - djui_hud_set_resolution(RESOLUTION_DJUI) - - if gLakituState.pos.y < gGlobalSyncTable.waterLevel - 10 then - switch(water.oAnimState, { - [FLOOD_WATER] = function() - djui_hud_set_adjusted_color(0, 20, 200, 120) - end, - [FLOOD_LAVA] = function() - djui_hud_set_adjusted_color(200, 0, 0, 220) - end, - [FLOOD_SAND] = function() - djui_hud_set_adjusted_color(254, 193, 121, 220) - end, - [FLOOD_MUD] = function() - djui_hud_set_adjusted_color(74, 123, 0, 220) - end - }) - djui_hud_render_rect(0, 0, djui_hud_get_screen_width(), djui_hud_get_screen_height()) - end - end - - djui_hud_set_resolution(RESOLUTION_N64) - djui_hud_set_font(FONT_TINY) - - local level = gLevels[gNetworkPlayers[0].currLevelNum] - if level ~= nil and level.name ~= "ctt" then - local out = { x = 0, y = 0, z = 0 } - djui_hud_world_pos_to_screen_pos(level.goalPos, out) - local dX = clampf(out.x - 5, 0, djui_hud_get_screen_width() - 19.2) - local dY = clampf(out.y - 20, 0, djui_hud_get_screen_height() - 19.2) - - djui_hud_set_adjusted_color(255, 255, 255, 200) - djui_hud_render_texture_interpolated(TEX_FLOOD_FLAG, sFlagIconPrevPos.x, sFlagIconPrevPos.y, 0.15, 0.15, dX, dY, 0.15, 0.15) - - sFlagIconPrevPos.x = dX - sFlagIconPrevPos.y = dY - end - - local text = if_then_else(gGlobalSyncTable.roundState == ROUND_STATE_INACTIVE, "Type '/flood start' to start a round", "0.000 seconds" .. get_modifiers_string()) - if gNetworkPlayers[0].currAreaSyncValid then - if gGlobalSyncTable.roundState == ROUND_STATE_INACTIVE then - text = if_then_else(network_player_connected_count() > 1, "Round starts in " .. tostring(math_floor(gGlobalSyncTable.timer / 30)), "Type '/flood start' to start a round") - elseif gNetworkPlayers[0].currLevelNum == gGlobalSyncTable.level then - text = tostring(string.format("%.3f", gLevels[gGlobalSyncTable.level].time / 30)) .. " seconds" .. get_modifiers_string() - end - end - - local scale = 1 - local width = djui_hud_measure_text(text) * scale - local x = (djui_hud_get_screen_width() - width) * 0.5 - - djui_hud_set_adjusted_color(0, 0, 0, 128) - djui_hud_render_rect(x - 6, 0, width + 12, 16) - djui_hud_set_adjusted_color(255, 255, 255, 255) - djui_hud_print_text(text, x, 0, scale) - - hud_render_power_meter(gMarioStates[0].health, djui_hud_get_screen_width() - 64, 0, 64, 64) - - djui_hud_set_font(FONT_HUD) - - djui_hud_render_texture(gTextures.coin, 5, 5, 1, 1) - djui_hud_print_text(">", 21, 5, 1) - djui_hud_print_text(tostring(hud_get_value(HUD_DISPLAY_COINS)), 37, 5, 1) - - if gGlobalSyncTable.speedMultiplier ~= 1 then - djui_hud_print_text(string.format("%.2fx", gGlobalSyncTable.speedMultiplier), 5, 24, 1) - end -end - -local function on_level_init() - -- reset save - save_file_erase_current_backup_save() - if gNetworkPlayers[0].currLevelNum ~= LEVEL_CASTLE_GROUNDS then - save_file_set_flags(SAVE_FLAG_HAVE_VANISH_CAP) - save_file_set_flags(SAVE_FLAG_HAVE_WING_CAP) - end - save_file_set_using_backup_slot(true) - - if gGlobalSyncTable.roundState == ROUND_STATE_ACTIVE then - if network_is_server() then - local start = gLevels[gGlobalSyncTable.level].customStartPos - if start ~= nil then - gGlobalSyncTable.waterLevel = find_floor_height(start.x, start.y, start.z) - 1200 - else - -- only sub areas have a weird issue where this function appears to always return the floor lower limit on level init - gGlobalSyncTable.waterLevel = if_then_else(gLevels[gGlobalSyncTable.level].area == 1, find_floor_height(gMarioStates[0].pos.x, gMarioStates[0].pos.y, gMarioStates[0].pos.z), gMarioStates[0].pos.y) - 1200 - end - end - - if game == GAME_VANILLA then - if gNetworkPlayers[0].currLevelNum == LEVEL_BITS then - spawn_non_sync_object( - id_bhvCustomStaticObject, - E_MODEL_CTT, - 10000, -2000, -40000, - function(o) obj_scale(o, 0.5) end - ) - elseif gNetworkPlayers[0].currLevelNum == LEVEL_WDW then - set_environment_region(1, -20000) - end - end - - spawn_non_sync_object( - id_bhvWater, - E_MODEL_FLOOD, - 0, gGlobalSyncTable.waterLevel, 0, - nil - ) - end - - local pos = gLevels[gNetworkPlayers[0].currLevelNum].goalPos - if pos == nil then return end - - if gNetworkPlayers[0].currLevelNum == LEVEL_CTT then - spawn_non_sync_object( - id_bhvFinalStar, - E_MODEL_STAR, - pos.x, pos.y, pos.z, - nil - ) - else - spawn_non_sync_object( - id_bhvFloodFlag, - E_MODEL_KOOPA_FLAG, - pos.x, pos.y, pos.z, - --- @param o Object - function(o) - o.oFaceAnglePitch = 0 - o.oFaceAngleYaw = pos.a - o.oFaceAngleRoll = 0 - end - ) - end -end - --- dynos warps mario back to castle grounds facing the wrong way, likely something from the title screen -local function on_warp() - --- @type MarioState - local m = gMarioStates[0] - if gNetworkPlayers[0].currLevelNum == LEVEL_CASTLE_GROUNDS then - if game == GAME_VANILLA then - m.faceAngle.y = m.faceAngle.y + 0x8000 - elseif game == GAME_STAR_ROAD then - if gGlobalSyncTable.roundState == ROUND_STATE_INACTIVE then - vec3f_set(m.pos, -6797, 1830, 2710) - m.faceAngle.y = 0x6000 - else - vec3f_set(m.pos, -1644, -614, -1524) - m.faceAngle.y = -0x4000 - end - end - - if gGlobalSyncTable.roundState == ROUND_STATE_ACTIVE then - play_music(0, SEQUENCE_ARGS(4, SEQ_LEVEL_BOSS_KOOPA_FINAL), 0) - end - elseif gLevels[gGlobalSyncTable.level].customStartPos ~= nil then - local start = gLevels[gGlobalSyncTable.level].customStartPos - vec3f_copy(m.pos, start) - set_mario_action(m, ACT_SPAWN_SPIN_AIRBORNE, 0) - m.faceAngle.y = start.a - end -end - -local function on_player_connected() - if network_is_server() and gGlobalSyncTable.roundState == ROUND_STATE_INACTIVE then gGlobalSyncTable.timer = ROUND_COOLDOWN end -end - -local function on_start_command(msg) - if msg == "?" then - djui_chat_message_create("/flood \\#00ffff\\start\\#ffff00\\ [random|1-" .. FLOOD_LEVEL_COUNT .. "]\\#ffffff\\\nSets the level to a random one or a specific one, you can also leave it empty for normal progression.") - return true - end - - if msg == "random" then - gGlobalSyncTable.level = gLevels[math_random(1, FLOOD_LEVEL_COUNT)] - else - local override = tonumber(msg) - if override ~= nil then - override = clamp(math_floor(override), 1, FLOOD_LEVEL_COUNT) - gGlobalSyncTable.level = gMapRotation[override] - else - for k, v in pairs(gLevels) do - if msg ~= nil and msg:lower() == v.name then - gGlobalSyncTable.level = k - end - end - end - end - if gGlobalSyncTable.roundState == ROUND_STATE_ACTIVE then - network_send(true, { restart = true }) - level_restart() - else - round_start() - end - return true -end - -local function on_speed_command(msg) - local speed = tonumber(msg) - if speed ~= nil then - speed = clampf(speed, 0, 10) - djui_chat_message_create("Water speed set to " .. speed) - gGlobalSyncTable.speedMultiplier = speed - return true - end - - djui_chat_message_create("/flood \\#00ffff\\speed\\#ffff00\\ [number]\\#ffffff\\\nSets the speed multiplier of the flood") - return true -end - -local function on_ttc_speed_command(msg) - if gGlobalSyncTable.roundState ~= ROUND_STATE_INACTIVE then - djui_chat_message_create("\\#ff0000\\You can only change the TTC speed before the round starts!") - return true - end - - msg = msg:lower() - if msg == "fast" then - set_ttc_speed_setting(TTC_SPEED_FAST) - djui_chat_message_create("TTC speed set to fast") - return true - elseif msg == "slow" then - set_ttc_speed_setting(TTC_SPEED_SLOW) - djui_chat_message_create("TTC speed set to slow") - return true - elseif msg == "random" then - set_ttc_speed_setting(TTC_SPEED_RANDOM) - djui_chat_message_create("TTC speed set to random") - return true - elseif msg == "stopped" then - set_ttc_speed_setting(TTC_SPEED_STOPPED) - djui_chat_message_create("TTC speed stopped") - return true - end - - djui_chat_message_create("/flood \\#00ffff\\ttc-speed\\#ffff00\\ [fast|slow|random|stopped]\\#ffffff\\\nChanges the speed of TTC") - return true -end - -local function on_speedrun_command(msg) - msg = msg:lower() - if msg == "off" then - djui_chat_message_create("Speedrun mode status: \\#ff0000\\OFF") - speedrunner = SPEEDRUN_MODE_OFF - return true - elseif msg == "progress" then - djui_chat_message_create("Speedrun mode status: \\#00ff00\\Progress Level") - speedrunner = SPEEDRUN_MODE_PROGRESS - return true - elseif msg == "restart" then - djui_chat_message_create("Speedrun mode status: \\#00ff00\\Restart Level") - speedrunner = SPEEDRUN_MODE_RESTART - return true - end - - djui_chat_message_create("/flood \\#00ffff\\speedrun\\#ffff00\\ [off|progress|restart]\\#ffffff\\\nTo make adjustments to singleplayer Flood helpful for speedrunners") - return true -end - -local function on_scoreboard_command() - djui_chat_message_create("Times:") - local modifiers = get_modifiers_string() - local total = 0 - for i = 1, FLOOD_LEVEL_COUNT do - local level = gMapRotation[i] - djui_chat_message_create(get_level_name(level_to_course(level), level, 1) .. " - " .. timestamp(gLevels[level].time) .. modifiers) - total = total + gLevels[level].time - end - - djui_chat_message_create("Total Time: " .. timestamp(total)) - return true -end - -local function on_flood_command(msg) - local args = split(msg) - if args[1] == "start" then - return on_start_command(args[2]) - elseif args[1] == "speed" then - return on_speed_command(args[2]) - elseif args[1] == "ttc-speed" then - return on_ttc_speed_command(args[2]) - elseif args[1] == "speedrun" then - return on_speedrun_command(args[2]) - elseif args[1] == "scoreboard" then - return on_scoreboard_command() - end - - djui_chat_message_create("/flood \\#00ffff\\[start|speed|ttc-speed|speedrun|scoreboard]") - return true -end - -gServerSettings.skipIntro = 1 -gServerSettings.stayInLevelAfterStar = 2 - -gLevelValues.entryLevel = LEVEL_LOBBY -gLevelValues.floorLowerLimit = -20000 -gLevelValues.floorLowerLimitMisc = -20000 + 1000 -gLevelValues.floorLowerLimitShadow = -20000 + 1000.0 -gLevelValues.fixCollisionBugs = 1 -gLevelValues.fixCollisionBugsRoundedCorners = 0 - -hud_hide() - -if game == GAME_VANILLA then - set_ttc_speed_setting(TTC_SPEED_SLOW) - - smlua_text_utils_secret_star_replace(COURSE_SA, " Climb The Tower Flood") - - smlua_audio_utils_replace_sequence(SEQ_LEVEL_BOSS_KOOPA_FINAL, 37, 60, "00_pinball_custom") -end - -hook_event(HOOK_UPDATE, update) -hook_event(HOOK_MARIO_UPDATE, mario_update) -hook_event(HOOK_ON_HUD_RENDER, on_hud_render) -hook_event(HOOK_ON_LEVEL_INIT, on_level_init) -hook_event(HOOK_ON_WARP, on_warp) -hook_event(HOOK_ON_PLAYER_CONNECTED, on_player_connected) - -if network_is_server() then - hook_chat_command("flood", "\\#00ffff\\[start|speed|ttc-speed|speedrun|scoreboard]", on_flood_command) -end - -for i = 0, (MAX_PLAYERS - 1) do - gPlayerSyncTable[i].finished = false -end \ No newline at end of file diff --git a/mods/flood/misc.lua b/mods/flood/misc.lua deleted file mode 100644 index 4368e538..00000000 --- a/mods/flood/misc.lua +++ /dev/null @@ -1,210 +0,0 @@ -if unsupported then return end - -E_MODEL_FLOOD = smlua_model_util_get_id("flood_geo") -E_MODEL_CTT = smlua_model_util_get_id("ctt_geo") -- easter egg in the distance -E_MODEL_LAUNCHPAD = smlua_model_util_get_id("launchpad_geo") - -local COL_LAUNCHPAD = smlua_collision_util_get("launchpad_collision") - --- localize functions to improve performance -local get_environment_region,set_environment_region,set_override_far,cur_obj_scale,cur_obj_init_animation,bhv_pole_base_loop,nearest_mario_state_to_object,play_mario_jump_sound,set_mario_action,spawn_non_sync_object,mario_set_forward_vel,vec3f_set,load_object_collision_model,obj_mark_for_deletion,network_is_server,obj_check_hitbox_overlap,obj_has_behavior_id = get_environment_region,set_environment_region,set_override_far,cur_obj_scale,cur_obj_init_animation,bhv_pole_base_loop,nearest_mario_state_to_object,play_mario_jump_sound,set_mario_action,spawn_non_sync_object,mario_set_forward_vel,vec3f_set,load_object_collision_model,obj_mark_for_deletion,network_is_server,obj_check_hitbox_overlap,obj_has_behavior_id - ---- @param o Object -local function bhv_water_init(o) - o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE - o.oAnimState = gLevels[gGlobalSyncTable.level].type - - o.header.gfx.skipInViewCheck = true - - o.oFaceAnglePitch = 0 - o.oFaceAngleRoll = 0 -end - ---- @param o Object -local function bhv_water_loop(o) - o.oPosY = gGlobalSyncTable.waterLevel - - if game == GAME_VANILLA and gGlobalSyncTable.level ~= LEVEL_SSL then - o.oFaceAngleYaw = o.oTimer * 5 * (gLevels[gNetworkPlayers[0].currLevelNum].speed or 1) - end - - if game == GAME_VANILLA and gNetworkPlayers[0].currLevelNum ~= LEVEL_WDW and gNetworkPlayers[0].currLevelNum ~= LEVEL_HMC then - for i = 1, 3 do - if get_environment_region(i) < gGlobalSyncTable.waterLevel then - set_environment_region(i, -20000) - end - end - else - set_environment_region(1, -20000) - end -end - -id_bhvWater = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_water_init, bhv_water_loop) - - ---- @param o Object -local function bhv_custom_static_object_init(o) - o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE - o.header.gfx.skipInViewCheck = true - set_override_far(50000) -end - -id_bhvCustomStaticObject = hook_behavior(nil, OBJ_LIST_LEVEL, true, bhv_custom_static_object_init, nil) - - ---- @param o Object -local function bhv_final_star_init(o) - o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE - o.hitboxRadius = 160 - o.hitboxHeight = 100 - - cur_obj_scale(2) -end - ---- @param o Object -local function bhv_final_star_loop(o) - o.oFaceAngleYaw = o.oFaceAngleYaw + 0x800 -end - -id_bhvFinalStar = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_final_star_init, bhv_final_star_loop) - - ---- @param o Object -local function bhv_flood_flag_init(o) - o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE - o.oInteractType = INTERACT_POLE - o.hitboxRadius = 80 - o.hitboxHeight = 700 - o.oIntangibleTimer = 0 - o.oAnimations = gObjectAnimations.koopa_flag_seg6_anims_06001028 - - cur_obj_init_animation(0) -end - ---- @param o Object -local function bhv_flood_flag_loop(o) - bhv_pole_base_loop() -end - -id_bhvFloodFlag = hook_behavior(nil, OBJ_LIST_POLELIKE, true, bhv_flood_flag_init, bhv_flood_flag_loop) - - -local function bhv_launchpad_init(o) - o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE - o.oCollisionDistance = 500 - o.collisionData = COL_LAUNCHPAD - obj_scale(o, 0.85) -end - -local function bhv_launchpad_loop(o) - local m = nearest_mario_state_to_object(o) - if m.marioObj.platform == o then - play_mario_jump_sound(m) - if o.oBehParams2ndByte ~= 255 then - set_mario_action(m, ACT_TWIRLING, 0) - m.vel.y = o.oBehParams2ndByte - else - spawn_non_sync_object( - id_bhvWingCap, - E_MODEL_NONE, - m.pos.x + m.vel.x, m.pos.y + m.vel.y, m.pos.z + m.vel.z, - nil - ) - set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0) - mario_set_forward_vel(m, 100) - vec3f_set(m.angleVel, 0, 0, 0) - vec3f_set(m.faceAngle, 0, 0x4500, 0) - m.vel.y = 55 - end - end - load_object_collision_model() -end - -id_bhvLaunchpad = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_launchpad_init, bhv_launchpad_loop) - - ---- @param o Object -local function obj_hide(o) - o.header.gfx.node.flags = o.header.gfx.node.flags | GRAPH_RENDER_INVISIBLE -end - ---- @param o Object -local function obj_mark_for_deletion_on_sync(o) - if gNetworkPlayers[0].currAreaSyncValid then obj_mark_for_deletion(o) end -end - -hook_behavior(id_bhvStar, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvHoot, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvWarpPipe, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvFadingWarp, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvBalconyBigBoo, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvExclamationBox, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvWaterLevelDiamond, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) -hook_behavior(id_bhvKoopaRaceEndpoint, OBJ_LIST_UNIMPORTANT, true, obj_hide, obj_mark_for_deletion_on_sync) - ---- @param m MarioState -local function before_phys_step(m) - if m.playerIndex ~= 0 then return end - - if m.pos.y + 40 < gGlobalSyncTable.waterLevel and gNetworkPlayers[m.playerIndex].currLevelNum == gGlobalSyncTable.level then - m.vel.y = m.vel.y + 2 - m.peakHeight = m.pos.y - end -end - ---- @param m MarioState ---- @param o Object -local function allow_interact(m, o) - if m.action == ACT_SPECTATOR or - (o.header.gfx.node.flags & GRAPH_RENDER_ACTIVE) == 0 or - o.oInteractType == INTERACT_WARP_DOOR or - o.oInteractType == INTERACT_WARP then - return false - end - - return true -end - -local function on_death() - local m = gMarioStates[0] - if m.floor.type == SURFACE_DEATH_PLANE or m.floor.type == SURFACE_VERTICAL_WIND then - m.health = 0xFF - end - return false -end - -local function on_pause_exit() - if network_is_server() then - network_send(true, { restart = true }) - level_restart() - end - return false -end - ---- @param m MarioState -local function allow_hazard_surface(m) - if m.health <= 0xFF then return false end - return true -end - --- thanks Peachy ---- @param o Object -local function on_object_unload(o) - local m = gMarioStates[0] - if (o.header.gfx.node.flags & GRAPH_RENDER_INVISIBLE) == 0 and obj_has_behavior_id(o, id_bhv1Up) == 1 and obj_check_hitbox_overlap(o, m.marioObj) then - m.healCounter = 31 - m.hurtCounter = 0 - end -end - -local function on_packet_receive(dataTable) - if dataTable.restart then level_restart() end -end - -hook_event(HOOK_BEFORE_PHYS_STEP, before_phys_step) -hook_event(HOOK_ALLOW_INTERACT, allow_interact) -hook_event(HOOK_ON_DEATH, on_death) -hook_event(HOOK_ON_PAUSE_EXIT, on_pause_exit) -hook_event(HOOK_ALLOW_HAZARD_SURFACE, allow_hazard_surface) -hook_event(HOOK_ON_OBJECT_UNLOAD, on_object_unload) -hook_event(HOOK_ON_PACKET_RECEIVE, on_packet_receive) \ No newline at end of file diff --git a/mods/flood/sound/00_pinball_custom.m64 b/mods/flood/sound/00_pinball_custom.m64 deleted file mode 100644 index 9375c879bd4f06fa3f6d692379398415add4f103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3209 zcmdT`eTY<56u!zE5n55FO$=V`O&WKdd3Sm-2#TqOA6G8vYqwe1zGqKf&XjbICpO2xIP;ZNXAP?UeH#vmyV7%WX!nC*t-l@bGK2~`{pJ!^n^0{k< zSSy%Z5N>pfq#5I z#tl#B)u)u}r(6*cF$it7&X`4mZe#`{w6zsa5mD_UYJ3!Rx3P}-p<{mN8e^udok2?4 zdgpOu?8g4J5Z}H!Y}oidN4Wtm#79I%iGX5?>S_noHQmZI=GPkYds#Djrx?SdaAUU} zS?(Z)xrV z<{hu#pVsyqZO`{>v6pDON!#nSy;<8kb$R)&whw6gNQI;l04r#LImRUv%?pMLEGy-x zf^!KXSL71p1;etsBJ(AS6fKst6ce#eYP+v!iSY1+KwO1MalimB8UUOEP$@yKbC7Eh zjDo+>_T`F#vGmjaxjfFGs$n<0Qc>YFPt=T)od?mO=!Bd*cxN1P(*jTENja-ZdC<(D zrkiT5s@`vGMfto#{3`sB-&`H!=oJbq&HjecqGtBo&u0}?wB-&sEbp0N?z!1cK{7X} zxC!Msl=j7_`vrc=Q0#%6()J%()+E}m(vLo?<$W!Za_z^l+^DFZhuz9&gq9ED?AWdd zXHd#uA4x!*NWD#SOQs1NBw9WR>{dx_lWEIX>LZa%bT+7D9ECOO)OWawf zoD)v!n3HObgE=*6o5PC4bI#;7(qUvHwQ9LKv1gEmIoJ0 zb|~5&r#2L}cOU1lPi%$xfFsU2VtR+;^p<_!fizbqb`R2}8#1ENGD@1>1g%aML;t@9 z>c+;sMpw=6M63=S?)0yrTt|Z&ULmP)KV;*#(RK9QZ74w-Dxu1)n+Q~4A_m5=@B}bg zw*U8s&DpxpL&BY8oVj5Z^xVQxRlJ6mktYI!c!iOy7@9q@M|iw_wnM@<^BKx{{O5!( zB8eXykFWAR$nag`%S?;6WDB7;_ z;mwLaHxDNGhBp``LiCbo^<&}s_yGDQMaw0@qa*1(5{F5^E#B-FZAW5FlGpE-6pIyM z;k~E`P4aNIFdBy*&U|maqD7K`cwW+ez61Ka1&X?T_)S=IEs#gAnBEoUWfZ7ijG2nqEOy3600D? z2$rGM_;hG0y1yY#d|Y|V_fl%3|MLo|$KsD+jni!aWD1t2DTU6PDdKqH({ERtW`TGu mJcbko_9(B|v?WfkMzdQ3UuZr1*cA8UN}e*0j5re_tIYg diff --git a/mods/flood/spectator.lua b/mods/flood/spectator.lua deleted file mode 100644 index 0912e23f..00000000 --- a/mods/flood/spectator.lua +++ /dev/null @@ -1,163 +0,0 @@ -if unsupported then return end - -local MARIO_HEAD_POS = 120 - -local sPlayerFirstPerson = { - pos = { x = 0, y = 0, z = 0 }, - freecam = camera_config_is_free_cam_enabled(), - pitch = 0, - yaw = 0, - fov = 70 -} - --- localize functions to improve performance - spectator.lua -local camera_config_get_x_sensitivity,camera_config_get_y_sensitivity,camera_config_is_x_inverted,camera_config_is_y_inverted,is_game_paused,djui_hud_get_raw_mouse_y,clamp,djui_hud_get_raw_mouse_x,vec3f_copy,mario_drop_held_object,set_mario_animation,vec3f_set,vec3f_mul,djui_hud_set_mouse_locked,camera_freeze,maxf,camera_config_is_free_cam_enabled,set_override_near,set_override_fov,camera_unfreeze,camera_config_is_mouse_look_enabled,allocate_mario_action = camera_config_get_x_sensitivity,camera_config_get_y_sensitivity,camera_config_is_x_inverted,camera_config_is_y_inverted,is_game_paused,djui_hud_get_raw_mouse_y,clamp,djui_hud_get_raw_mouse_x,vec3f_copy,mario_drop_held_object,set_mario_animation,vec3f_set,vec3f_mul,djui_hud_set_mouse_locked,camera_freeze,maxf,camera_config_is_free_cam_enabled,set_override_near,set_override_fov,camera_unfreeze,camera_config_is_mouse_look_enabled,allocate_mario_action - ---- @param m MarioState -local function update_fp_camera(m) - gLakituState.mode = CAMERA_MODE_FREE_ROAM - gLakituState.defMode = CAMERA_MODE_FREE_ROAM - - local sensX = 0.3 * camera_config_get_x_sensitivity() - local sensY = 0.4 * camera_config_get_y_sensitivity() - local invX = if_then_else(camera_config_is_x_inverted(), 1, -1) - local invY = if_then_else(camera_config_is_y_inverted(), 1, -1) - - if not is_game_paused() then - -- update pitch - sPlayerFirstPerson.pitch = sPlayerFirstPerson.pitch - sensY * (invY * m.controller.extStickY - 1.5 * djui_hud_get_raw_mouse_y()) - sPlayerFirstPerson.pitch = clamp(sPlayerFirstPerson.pitch, -0x3F00, 0x3F00) - - -- update yaw - if (m.controller.buttonPressed & L_TRIG) ~= 0 then - sPlayerFirstPerson.yaw = m.faceAngle.y + 0x8000 - else - sPlayerFirstPerson.yaw = sPlayerFirstPerson.yaw + sensX * (invX * m.controller.extStickX - 1.5 * djui_hud_get_raw_mouse_x()) - end - sPlayerFirstPerson.yaw = (sPlayerFirstPerson.yaw + 0x10000) % 0x10000 - end - - gLakituState.yaw = sPlayerFirstPerson.yaw - m.area.camera.yaw = sPlayerFirstPerson.yaw - - -- update pos - gLakituState.pos.x = sPlayerFirstPerson.pos.x + coss(sPlayerFirstPerson.pitch) * sins(sPlayerFirstPerson.yaw) - gLakituState.pos.y = sPlayerFirstPerson.pos.y + sins(sPlayerFirstPerson.pitch) + MARIO_HEAD_POS - gLakituState.pos.z = sPlayerFirstPerson.pos.z + coss(sPlayerFirstPerson.pitch) * coss(sPlayerFirstPerson.yaw) - vec3f_copy(m.area.camera.pos, gLakituState.pos) - vec3f_copy(gLakituState.curPos, gLakituState.pos) - vec3f_copy(gLakituState.goalPos, gLakituState.pos) - - -- update focus - gLakituState.focus.x = sPlayerFirstPerson.pos.x - 100 * coss(sPlayerFirstPerson.pitch) * sins(sPlayerFirstPerson.yaw) - gLakituState.focus.y = sPlayerFirstPerson.pos.y - 100 * sins(sPlayerFirstPerson.pitch) + MARIO_HEAD_POS - gLakituState.focus.z = sPlayerFirstPerson.pos.z - 100 * coss(sPlayerFirstPerson.pitch) * coss(sPlayerFirstPerson.yaw) - vec3f_copy(m.area.camera.focus, gLakituState.focus) - vec3f_copy(gLakituState.curFocus, gLakituState.focus) - vec3f_copy(gLakituState.goalFocus, gLakituState.focus) - - -- set other values - gLakituState.posHSpeed = 0 - gLakituState.posVSpeed = 0 - gLakituState.focHSpeed = 0 - gLakituState.focVSpeed = 0 -end - ---- @param m MarioState -function set_mario_spectator(m) - if m.action ~= ACT_SPECTATOR then - sPlayerFirstPerson.pos = { x = m.pos.x, y = if_then_else(m.health > 0xFF, m.pos.y, gGlobalSyncTable.waterLevel), z = m.pos.z } - end - m.action = ACT_SPECTATOR -end - ---- @param m MarioState -local function act_spectator(m) - mario_drop_held_object(m) - m.squishTimer = 0 - - set_mario_animation(m, MARIO_ANIM_DROWNING_PART2) - m.marioBodyState.eyeState = MARIO_EYES_DEAD - m.faceAngle.x = 0 - m.faceAngle.z = 0 - - if gPlayerSyncTable[m.playerIndex].finished then - m.marioObj.header.gfx.node.flags = m.marioObj.header.gfx.node.flags & ~GRAPH_RENDER_ACTIVE - local goalPos = gLevels[gGlobalSyncTable.level].goalPos - vec3f_set(m.pos, goalPos.x, goalPos.y + 600, goalPos.z) - mario_set_full_health(m) - else - m.pos.y = gGlobalSyncTable.waterLevel - 70 - vec3f_copy(m.marioObj.header.gfx.pos, m.pos) - vec3f_copy(m.marioObj.header.gfx.angle, m.faceAngle) - m.marioObj.header.gfx.angle.y = 0 - m.health = 0xFF - m.healCounter = 0 - m.hurtCounter = 0 - end - - if m.playerIndex ~= 0 then return end - - if not is_game_paused() then - local forward = { x = sins(m.faceAngle.y), y = 0, z = coss(m.faceAngle.y) } - local right = { x = sins(m.faceAngle.y - 0x4000), y = 0, z = coss(m.faceAngle.y - 0x4000) } - local dir = { x = forward.x * m.controller.stickY + right.x * m.controller.stickX, y = 0, z = forward.z * m.controller.stickY + right.z * m.controller.stickX } - local speed = if_then_else((m.controller.buttonDown & B_BUTTON) ~= 0, 2, 1) - dir = vec3f_mul(dir, speed) - - sPlayerFirstPerson.pos.x = sPlayerFirstPerson.pos.x + dir.x - sPlayerFirstPerson.pos.z = sPlayerFirstPerson.pos.z + dir.z - - if (m.input & INPUT_A_DOWN) ~= 0 then - sPlayerFirstPerson.pos.y = sPlayerFirstPerson.pos.y + (50 * speed) - end - if (m.input & INPUT_Z_DOWN) ~= 0 then - sPlayerFirstPerson.pos.y = sPlayerFirstPerson.pos.y - (50 * speed) - end - end - - m.faceAngle.y = m.area.camera.yaw + 0x8000 - - djui_hud_set_mouse_locked(not is_game_paused()) - - camera_freeze() - update_fp_camera(m) -end - ---- @param m MarioState -local function on_set_mario_action(m) - if m.action == ACT_VERTICAL_WIND then - m.vel.y = maxf(m.vel.y, 0) - end - - if m.playerIndex ~= 0 then return end - - if m.action == ACT_SPECTATOR then - sPlayerFirstPerson.freecam = camera_config_is_free_cam_enabled() - camera_freeze() - set_override_near(45) - set_override_fov(sPlayerFirstPerson.fov) - sPlayerFirstPerson.pitch = 0 - sPlayerFirstPerson.yaw = m.faceAngle.y + 0x8000 - else - if sPlayerFirstPerson.freecam then - gLakituState.mode = CAMERA_MODE_NEWCAM - gLakituState.defMode = CAMERA_MODE_NEWCAM - end - camera_unfreeze() - set_override_near(0) - set_override_fov(0) - sPlayerFirstPerson.pitch = 0 - sPlayerFirstPerson.yaw = 0 - if not camera_config_is_mouse_look_enabled() then - djui_hud_set_mouse_locked(false) - end - end -end - -ACT_SPECTATOR = allocate_mario_action(ACT_GROUP_AIRBORNE | ACT_FLAG_INVULNERABLE) - -hook_event(HOOK_ON_SET_MARIO_ACTION, on_set_mario_action) - ----@diagnostic disable-next-line: missing-parameter -hook_mario_action(ACT_SPECTATOR, act_spectator) \ No newline at end of file diff --git a/mods/flood/textures/flood_flag.png b/mods/flood/textures/flood_flag.png deleted file mode 100644 index 9fd94df8b2d4d4a979baad8cf75e167adb9b93d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qt-49vcsE{-7;ac}RQ%@R(OY5jO?YIXiW?}E3! z723UZ5+5L)-b=5rfS+8e#pN)6VUAFt@|9u(9W@XRnKHI;D?cQ$h zs?|Fe?p!5l`k$xj%Io?~-!neH)r!j~Gr7I^;)|Ol+*amK7;edBZ!@j#diWK{4fJ9# zzHeG?()Vy%(vKIt5wV$!TlQX;$&xv|GU><5-Uz>wK>n38*SP(cM{k%A#gtLKsE}uO z*TbtN+~-1)8I0{s)Mw3}wK3_(gWeypXBoFtKJPc}d+1_l!RO({kXsjZbr-xGl)GmUy}Bkb$?(eD^tY0`sKf++K_0F6?iYve$Z}&1Ub#!^OC!|2q3|srBN0 zBF)$NrQI23KU8jK?v#tA3nKZng ztM3; zvGEeqgK37c+NunBQdcJ{vLDEO?Dd>s+L2!6>_@h{81iJJwcp>h+)-Kb7MNu2@2LIb zkdq>~!d3SCd**|zN{0j;ESNal86I*d$S}4jHx#f4^f3&yATW1zZrfJJxaP}Sl@+C& Qu0TG6r>mdKI;Vst0BhoKNdN!< diff --git a/mods/flood/textures/flood_flag.tex b/mods/flood/textures/flood_flag.tex deleted file mode 100644 index cbf50d056f08f77ac599169753119f1bc34686d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmZSLO3TU5Pl->imP=1#f*T#N#GK-@X*Y6{z95Fd!hL;Nh`WZgD*pM*-I(`Mu9uID6!K zJ*_66`91GBdwmqU_LWMHd!A~>(F_~xCZBxL^{nW#`xPJSs(I|QUeEGA8}FXGZ1>Oq z`!bHr%AVDIwto@Zz1`kbt9LHkxk}RXKTp+_*Y%seXMBFE6_-(Fa(nT`7dK0|t<0Y= z+>*=QW?J3#@GFoT=*3`s-?ZGM@8PzjA1`_%Vlx@H?7c3NC3ARX(vO$D5q>9u{3~a! zar-Zi-Y_AGDWiH(A2trE)YTr;cMor85PNREB<(fp{=iUHrigj<%YRGB2gzx)mEVid zVzQWjewH%OoG_mFy&F|nF3dHbRogpXO-{2-sji&q#qr{^Z_aAg+effm*xxQ?uk}Wo z&EAWLi*Zf=b@t;@>&5#-ny>RqyEDvwsNBxnD=+yjw`i{e!|d%BC&zOpL|m);q|L~4 z`IcXuYQw|VU!R0CX?Qn6wRo5Txtxi=Jj6cOlfO;F%tX8!0D zpb^K#cVxC>V}-SafO<>IqbVC4=7?k^G8RPrn9s!Ypjq*Ah*U$px}DUvj#Eqz4lg{t zN`b*nu1>C%?EtINuAl&h7^P+WtSkpy7tLC~S0aNUMs1y{DubR#W!o&~2SFRTR~Rzr ziS2EPVtP>YQCrKBAy49B<0YmC(+p*`RT=W6u1;2DKal&_>p8=;BfZMmk8F1_B zzrSm_qq5{JFv;BCQTxXsCq;0DtL*vr%m-PO4hcF~FmbpuJmgT2VQf)uC}0ujV;E>b fVD9SNwylnF&6l?-D@r+CfqVu}S3j3^P6