2022-04-16 03:28:10 +02:00
-- name: Super Mario 74 (+EE)
-- description: This is two romhacks in one.\n\nSuper Mario 74 and Super Mario 74 Extreme Edition.\n\nThere are 60 custom levels, with a total of 308 stars.\n\nUse the chat command '/swap' to swap between EE and normal.\n\nCreated by Lugmillord\n\nPorted to PC by PeachyPeach and jesusyoshi54\n\nPorted to coop by djoslin0
-- incompatible: romhack
------------------
-- level values --
------------------
gLevelValues.entryLevel = LEVEL_CASTLE_COURTYARD
gLevelValues.exitCastleLevel = LEVEL_CASTLE_COURTYARD
gLevelValues.exitCastleWarpNode = 0x40
2022-04-16 03:33:10 +02:00
gLevelValues.skipCreditsAt = LEVEL_BOB
2022-04-16 03:28:10 +02:00
---------------------
-- behavior values --
---------------------
gBehaviorValues.KoopaBobAgility = 6.0
gBehaviorValues.KoopaThiAgility = 6.0
gBehaviorValues.trajectories . KoopaBobTrajectory = get_trajectory ( ' KoopaTHI_path ' )
gBehaviorValues.trajectories . KoopaThiTrajectory = get_trajectory ( ' KoopaTHI_path_EE ' )
gBehaviorValues.dialogs . KoopaQuickBobStartDialog = DIALOG_009
gBehaviorValues.dialogs . KoopaQuickThiStartDialog = DIALOG_009
gBehaviorValues.dialogs . KoopaQuickBobWinDialog = DIALOG_031
gBehaviorValues.dialogs . KoopaQuickThiWinDialog = DIALOG_031
--------------
-- movtexs --
--------------
movtexqc_register ( ' bbh_2_Movtex_0 ' , 0 + 4 , 2 , 0 )
movtexqc_register ( ' ccm_1_Movtex_0 ' , 1 + 4 , 1 , 0 )
movtexqc_register ( ' hmc_1_Movtex_0 ' , 3 + 4 , 1 , 0 )
movtexqc_register ( ' ssl_1_Movtex_0 ' , 4 + 4 , 1 , 0 )
movtexqc_register ( ' ssl_2_Movtex_0 ' , 4 + 4 , 2 , 0 )
movtexqc_register ( ' bob_1_Movtex_0 ' , 5 + 4 , 1 , 0 )
movtexqc_register ( ' sl_1_Movtex_0 ' , 6 + 4 , 1 , 0 )
movtexqc_register ( ' sl_2_Movtex_0 ' , 6 + 4 , 2 , 0 )
movtexqc_register ( ' wdw_1_Movtex_0 ' , 7 + 4 , 1 , 0 )
movtexqc_register ( ' jrb_1_Movtex_0 ' , 8 + 4 , 1 , 0 )
movtexqc_register ( ' bitfs_1_Movtex_0 ' , 15 + 4 , 1 , 0 )
movtexqc_register ( ' ddd_1_Movtex_0 ' , 19 + 4 , 1 , 0 )
movtexqc_register ( ' castle_courtyard_1_Movtex_0 ' , 22 + 4 , 1 , 0 )
movtexqc_register ( ' cotmc_1_Movtex_0 ' , 24 + 4 , 1 , 0 )
movtexqc_register ( ' wmotr_2_Movtex_0 ' , 27 + 4 , 2 , 0 )
-----------
-- music --
-----------
smlua_audio_utils_replace_sequence ( 0x02 , 0x11 , 80 , " 02_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x03 , 0x1E , 75 , " 03_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x04 , 0x25 , 70 , " 04_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x05 , 0x13 , 75 , " 05_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x06 , 0x0F , 75 , " 06_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x08 , 0x0B , 70 , " 08_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x09 , 0x0D , 65 , " 09_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x0B , 0x25 , 65 , " 0B_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x0C , 0x15 , 85 , " 0C_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x11 , 0x19 , 70 , " 11_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x13 , 0x25 , 65 , " 13_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x18 , 0x1C , 75 , " 18_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x1E , 0x11 , 75 , " 1E_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x21 , 0x25 , 75 , " 21_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x22 , 0x25 , 80 , " 22_Seq_sm74_custom " )
smlua_audio_utils_replace_sequence ( 0x23 , 0x25 , 80 , " 23_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x24 , 0x24 , 70 , " 24_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x25 , 0x25 , 85 , " 25_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x26 , 0x13 , 75 , " 26_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x27 , 0x11 , 75 , " 27_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x28 , 0x25 , 85 , " 28_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x29 , 0x23 , 70 , " 29_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x2A , 0x21 , 80 , " 2A_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x2B , 0x25 , 80 , " 2B_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x2C , 0x25 , 70 , " 2C_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x2D , 0x0E , 75 , " 2D_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x2E , 0x18 , 80 , " 2E_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x2F , 0x1D , 70 , " 2F_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x30 , 0x23 , 65 , " 30_Seq_sm74EE_custom " )
smlua_audio_utils_replace_sequence ( 0x31 , 0x11 , 80 , " 31_Seq_sm74EE_custom " )
------------
-- camera --
------------
camera_set_use_course_specific_settings ( false )
----------------------------------
function mario_update_local ( m )
override_camera ( )
end
function mario_update ( m )
if m.playerIndex == 0 then
mario_update_local ( m )
end
end
function on_level_init ( )
local m = gMarioStates [ 0 ]
local np = gNetworkPlayers [ 0 ]
save_file_set_using_backup_slot ( np.currAreaIndex ~= 1 )
gMarioStates [ 0 ] . numStars = save_file_get_total_star_count ( get_current_save_file_num ( ) - 1 , COURSE_MIN - 1 , COURSE_MAX - 1 )
gLevelValues.exitCastleArea = gNetworkPlayers [ 0 ] . currAreaIndex
star_areas_replace ( )
course_names_swap ( )
dialog_swap ( )
end
function get_star_collection_dialog ( )
return 0
end
function on_swap_command ( msg )
local np = gNetworkPlayers [ 0 ]
if np.currAreaIndex == 1 then
djui_chat_message_create ( ' Swapping to Extreme Edition ' )
else
djui_chat_message_create ( ' Swapping to normal edition ' )
end
warp_to_level ( np.currLevelNum , np.currAreaIndex ~ 3 , np.currActNum )
return true
end
hook_event ( HOOK_MARIO_UPDATE , mario_update )
hook_event ( HOOK_ON_LEVEL_INIT , on_level_init )
hook_event ( HOOK_GET_STAR_COLLECTION_DIALOG , get_star_collection_dialog )
hook_chat_command ( ' swap ' , " swap between Extreme Edition and normal " , on_swap_command )