@blamnetwork/blf 1.0.0-alpha.5 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -7
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.d.ts +4 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.js +4 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts +82 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +99 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.d.ts +9 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +10 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.d.ts +26 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.js +26 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.d.ts +33 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.js +33 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.d.ts +25 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.js +25 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.d.ts +7 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.js +7 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.d.ts +6 -2
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +6 -2
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.d.ts +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +1 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.d.ts +37 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.js +125 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.d.ts +14 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.js +30 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.d.ts +114 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.js +292 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.d.ts +74 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.js +184 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.d.ts +10 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.js +16 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.d.ts +28 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.js +109 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.d.ts +56 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.js +142 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.d.ts +27 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.js +190 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.d.ts +45 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.js +60 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.d.ts +11 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.js +10 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.d.ts +10 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.js +18 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.d.ts +8 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +18 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.d.ts +13 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.js +39 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.d.ts +34 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.js +59 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.d.ts +18 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.js +17 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.d.ts +478 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.js +1696 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.d.ts +58 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.js +226 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.d.ts +34 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.js +34 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.d.ts +36 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.js +36 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.d.ts +31 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.js +31 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.d.ts +7 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.js +7 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.d.ts +85 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.js +502 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.d.ts +27 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.js +119 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.d.ts +29 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.js +116 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts +22 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +54 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.d.ts +22 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.js +82 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.d.ts +22 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.js +85 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.d.ts +13 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.js +75 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts +4 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.js +3 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.d.ts +2 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.js +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.d.ts +66 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.js +586 -0
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts +2 -2
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts.map +1 -1
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.js +2 -2
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts +5 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts.map +1 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.js +4 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.d.ts +24 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.d.ts.map +1 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.js +130 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.d.ts +15 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.d.ts.map +1 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.js +85 -0
- package/dist/chunks/mcc/s_blf_chunk_fileshare_metadata.d.ts +12 -0
- package/dist/chunks/mcc/s_blf_chunk_fileshare_metadata.d.ts.map +1 -0
- package/dist/chunks/mcc/s_blf_chunk_fileshare_metadata.js +107 -0
- package/dist/helpers/convert_reach_gametype.d.ts +17 -0
- package/dist/helpers/convert_reach_gametype.d.ts.map +1 -0
- package/dist/helpers/convert_reach_gametype.js +197 -0
- package/dist/helpers/index.d.ts +2 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +1 -0
- package/dist/versions/haloreach_mcc/v_untracked_25_08_19_1352.d.ts +9 -0
- package/dist/versions/haloreach_mcc/v_untracked_25_08_19_1352.d.ts.map +1 -0
- package/dist/versions/haloreach_mcc/v_untracked_25_08_19_1352.js +8 -0
- package/dist/versions/mcc/v_25_08_16.d.ts +2 -0
- package/dist/versions/mcc/v_25_08_16.d.ts.map +1 -0
- package/dist/versions/mcc/v_25_08_16.js +1 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.js +4 -1
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +142 -42
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +13 -4
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.js +29 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.js +36 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.js +28 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.js +10 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +15 -11
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +5 -5
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.js +129 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.js +34 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.js +305 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.js +192 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.js +20 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.js +113 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.js +151 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.js +195 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.js +64 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.js +26 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.js +22 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +22 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.js +43 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.js +63 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.js +33 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.js +1748 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.js +234 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.js +37 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.js +39 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.js +34 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.js +10 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.js +517 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.js +125 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.js +120 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +58 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.js +87 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.js +93 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.js +79 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.js +19 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.js +17 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.js +591 -0
- package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.js +17 -13
- package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.js +23 -0
- package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.js +133 -0
- package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.js +88 -0
- package/dist-cjs/chunks/mcc/s_blf_chunk_fileshare_metadata.js +110 -0
- package/dist-cjs/helpers/convert_reach_gametype.js +200 -0
- package/dist-cjs/helpers/index.js +5 -0
- package/dist-cjs/versions/haloreach_mcc/v_untracked_25_08_19_1352.js +24 -0
- package/dist-cjs/versions/mcc/v_25_08_16.js +17 -0
- package/package.json +35 -4
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_enums.d.ts +0 -170
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_enums.d.ts.map +0 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_enums.js +0 -191
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_enums.js +0 -195
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { c } from "@craftycodie/cstruct";
|
|
2
|
+
import { c_game_variant } from "../../../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant";
|
|
3
|
+
import { BLFChunkBase } from "../../../blf_chunk";
|
|
4
|
+
/** Gametype storage slot size (bytes). */
|
|
5
|
+
export declare const variant_storage_capacity = 20480;
|
|
6
|
+
/** mpvr body size: hash/header (28) + padded gametype slot. */
|
|
7
|
+
export declare const MPVR_PAYLOAD_SIZE: number;
|
|
8
|
+
/**
|
|
9
|
+
* Reach game variant chunk (`mpvr` 54.1).
|
|
10
|
+
*
|
|
11
|
+
* Payload layout matches blf_lib: hash + header fields + gametype bitstream,
|
|
12
|
+
* all read through one big-endian bitstream.
|
|
13
|
+
*/
|
|
14
|
+
export declare class s_blf_chunk_game_variant extends BLFChunkBase {
|
|
15
|
+
hash: Uint8Array;
|
|
16
|
+
unknown04: number;
|
|
17
|
+
unknown06: number;
|
|
18
|
+
variant_length: number;
|
|
19
|
+
game_variant: c_game_variant;
|
|
20
|
+
static create(game_variant: c_game_variant): s_blf_chunk_game_variant;
|
|
21
|
+
read_body(payload: Uint8Array, endian: c.Endian): void;
|
|
22
|
+
write_body(endian: c.Endian): Uint8Array;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=s_blf_chunk_game_variant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s_blf_chunk_game_variant.d.ts","sourceRoot":"","sources":["../../../../src/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAC;AAO9C,OAAO,EAAE,cAAc,EAAE,MAAM,2EAA2E,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAO,MAAM,oBAAoB,CAAC;AAGvD,0CAA0C;AAC1C,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;;;;GAKG;AACH,qBACa,wBAAyB,SAAQ,YAAY;IACxD,IAAI,EAAE,UAAU,CAAsB;IACtC,SAAS,SAAM;IACf,SAAS,SAAK;IACd,cAAc,SAAK;IACnB,YAAY,iBAAwB;IAEpC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,GAAG,wBAAwB;IAMrE,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI;IAwBtD,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,UAAU;CAuDzC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { c_bitstream_reader, c_bitstream_writer, e_bitstream_byte_order, } from "../../../bitstream";
|
|
36
|
+
import { security_calculate_hash } from "../../../blam/common/cache/security_functions";
|
|
37
|
+
import { c_game_variant } from "../../../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant";
|
|
38
|
+
import { BLFChunkBase, blf } from "../../../blf_chunk";
|
|
39
|
+
import { BlfError } from "../../../error";
|
|
40
|
+
/** Gametype storage slot size (bytes). */
|
|
41
|
+
export const variant_storage_capacity = 0x5000;
|
|
42
|
+
/** mpvr body size: hash/header (28) + padded gametype slot. */
|
|
43
|
+
export const MPVR_PAYLOAD_SIZE = 28 + variant_storage_capacity;
|
|
44
|
+
/**
|
|
45
|
+
* Reach game variant chunk (`mpvr` 54.1).
|
|
46
|
+
*
|
|
47
|
+
* Payload layout matches blf_lib: hash + header fields + gametype bitstream,
|
|
48
|
+
* all read through one big-endian bitstream.
|
|
49
|
+
*/
|
|
50
|
+
let s_blf_chunk_game_variant = (() => {
|
|
51
|
+
let _classDecorators = [blf.chunk("mpvr", 54.1)];
|
|
52
|
+
let _classDescriptor;
|
|
53
|
+
let _classExtraInitializers = [];
|
|
54
|
+
let _classThis;
|
|
55
|
+
let _classSuper = BLFChunkBase;
|
|
56
|
+
var s_blf_chunk_game_variant = class extends _classSuper {
|
|
57
|
+
static { _classThis = this; }
|
|
58
|
+
static {
|
|
59
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
60
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
61
|
+
s_blf_chunk_game_variant = _classThis = _classDescriptor.value;
|
|
62
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
64
|
+
}
|
|
65
|
+
hash = new Uint8Array(20);
|
|
66
|
+
unknown04 = -1;
|
|
67
|
+
unknown06 = 0;
|
|
68
|
+
variant_length = 0;
|
|
69
|
+
game_variant = new c_game_variant();
|
|
70
|
+
static create(game_variant) {
|
|
71
|
+
const chunk = new s_blf_chunk_game_variant();
|
|
72
|
+
chunk.game_variant = game_variant;
|
|
73
|
+
return chunk;
|
|
74
|
+
}
|
|
75
|
+
read_body(payload, endian) {
|
|
76
|
+
if (payload.length === 0) {
|
|
77
|
+
throw new BlfError("mpvr chunk payload is empty");
|
|
78
|
+
}
|
|
79
|
+
const byte_order = endian === "big"
|
|
80
|
+
? e_bitstream_byte_order._bitstream_byte_order_big_endian
|
|
81
|
+
: e_bitstream_byte_order._bitstream_byte_order_little_endian;
|
|
82
|
+
const bitstream = c_bitstream_reader.new(payload, byte_order);
|
|
83
|
+
bitstream.begin_reading();
|
|
84
|
+
this.hash = bitstream.read_raw_data(20 * 8);
|
|
85
|
+
this.unknown04 = bitstream.read_signed_integer("unknown04", 16);
|
|
86
|
+
this.unknown06 = bitstream.read_integer("unknown06", 16);
|
|
87
|
+
this.variant_length = bitstream.read_integer("variant-length", 32);
|
|
88
|
+
this.game_variant = new c_game_variant();
|
|
89
|
+
this.game_variant.decode(bitstream);
|
|
90
|
+
bitstream.finish_reading();
|
|
91
|
+
}
|
|
92
|
+
write_body(endian) {
|
|
93
|
+
const byte_order = endian === "big"
|
|
94
|
+
? e_bitstream_byte_order._bitstream_byte_order_big_endian
|
|
95
|
+
: e_bitstream_byte_order._bitstream_byte_order_little_endian;
|
|
96
|
+
const gametype_bitstream = c_bitstream_writer.new(variant_storage_capacity, byte_order);
|
|
97
|
+
gametype_bitstream.begin_writing();
|
|
98
|
+
this.game_variant.encode(gametype_bitstream);
|
|
99
|
+
gametype_bitstream.finish_writing();
|
|
100
|
+
const gametype_data = gametype_bitstream.get_data();
|
|
101
|
+
const gametype_length = gametype_data.length;
|
|
102
|
+
if (gametype_length > variant_storage_capacity) {
|
|
103
|
+
throw new BlfError(`mpvr gametype too large: ${gametype_length} bytes (max ${variant_storage_capacity})`);
|
|
104
|
+
}
|
|
105
|
+
const hashable_bitstream = c_bitstream_writer.new(4 + gametype_length, byte_order);
|
|
106
|
+
hashable_bitstream.begin_writing();
|
|
107
|
+
hashable_bitstream.write_integer(gametype_length, 32);
|
|
108
|
+
hashable_bitstream.write_raw_data(gametype_data, gametype_length * 8);
|
|
109
|
+
hashable_bitstream.finish_writing();
|
|
110
|
+
const hash = security_calculate_hash(hashable_bitstream.get_data());
|
|
111
|
+
const payload_bitstream = c_bitstream_writer.new(variant_storage_capacity, byte_order);
|
|
112
|
+
payload_bitstream.begin_writing();
|
|
113
|
+
payload_bitstream.write_raw_data(hash, hash.length * 8);
|
|
114
|
+
payload_bitstream.write_signed_integer(this.unknown04, 16);
|
|
115
|
+
payload_bitstream.write_integer(this.unknown06, 16);
|
|
116
|
+
payload_bitstream.write_integer(gametype_length, 32);
|
|
117
|
+
payload_bitstream.write_raw_data(gametype_data, gametype_length * 8);
|
|
118
|
+
const pad_bytes = variant_storage_capacity - gametype_length;
|
|
119
|
+
if (pad_bytes > 0) {
|
|
120
|
+
payload_bitstream.seek_relative(pad_bytes * 8);
|
|
121
|
+
}
|
|
122
|
+
payload_bitstream.finish_writing();
|
|
123
|
+
this.hash = hash;
|
|
124
|
+
this.variant_length = gametype_length;
|
|
125
|
+
return payload_bitstream.get_data();
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
return s_blf_chunk_game_variant = _classThis;
|
|
129
|
+
})();
|
|
130
|
+
export { s_blf_chunk_game_variant };
|
package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { c } from "@craftycodie/cstruct";
|
|
2
|
+
import { c_game_variant } from "../../../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant";
|
|
3
|
+
import { BLFChunkBase } from "../../../blf_chunk";
|
|
4
|
+
/**
|
|
5
|
+
* Reach matchmaking game variant chunk (`gvar` 54.1).
|
|
6
|
+
*
|
|
7
|
+
* Payload is the gametype bitstream only (no mpvr hash/header wrapper).
|
|
8
|
+
*/
|
|
9
|
+
export declare class s_blf_chunk_packed_game_variant extends BLFChunkBase {
|
|
10
|
+
game_variant: c_game_variant;
|
|
11
|
+
static create(game_variant: c_game_variant): s_blf_chunk_packed_game_variant;
|
|
12
|
+
read_body(payload: Uint8Array, _endian: c.Endian): void;
|
|
13
|
+
write_body(_endian: c.Endian): Uint8Array;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=s_blf_chunk_packed_game_variant.d.ts.map
|
package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s_blf_chunk_packed_game_variant.d.ts","sourceRoot":"","sources":["../../../../src/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAC;AAM9C,OAAO,EAAE,cAAc,EAAE,MAAM,2EAA2E,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAO,MAAM,oBAAoB,CAAC;AAGvD;;;;GAIG;AACH,qBACa,+BAAgC,SAAQ,YAAY;IAC/D,YAAY,iBAAwB;IAEpC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,GAAG,+BAA+B;IAM5E,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI;IAevD,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG,UAAU;CAU1C"}
|
package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { c_bitstream_reader, c_bitstream_writer, e_bitstream_byte_order, } from "../../../bitstream";
|
|
36
|
+
import { c_game_variant } from "../../../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant";
|
|
37
|
+
import { BLFChunkBase, blf } from "../../../blf_chunk";
|
|
38
|
+
import { BlfError } from "../../../error";
|
|
39
|
+
/**
|
|
40
|
+
* Reach matchmaking game variant chunk (`gvar` 54.1).
|
|
41
|
+
*
|
|
42
|
+
* Payload is the gametype bitstream only (no mpvr hash/header wrapper).
|
|
43
|
+
*/
|
|
44
|
+
let s_blf_chunk_packed_game_variant = (() => {
|
|
45
|
+
let _classDecorators = [blf.chunk("gvar", 54.1)];
|
|
46
|
+
let _classDescriptor;
|
|
47
|
+
let _classExtraInitializers = [];
|
|
48
|
+
let _classThis;
|
|
49
|
+
let _classSuper = BLFChunkBase;
|
|
50
|
+
var s_blf_chunk_packed_game_variant = class extends _classSuper {
|
|
51
|
+
static { _classThis = this; }
|
|
52
|
+
static {
|
|
53
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
54
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
55
|
+
s_blf_chunk_packed_game_variant = _classThis = _classDescriptor.value;
|
|
56
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
57
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
58
|
+
}
|
|
59
|
+
game_variant = new c_game_variant();
|
|
60
|
+
static create(game_variant) {
|
|
61
|
+
const chunk = new s_blf_chunk_packed_game_variant();
|
|
62
|
+
chunk.game_variant = game_variant;
|
|
63
|
+
return chunk;
|
|
64
|
+
}
|
|
65
|
+
read_body(payload, _endian) {
|
|
66
|
+
if (payload.length === 0) {
|
|
67
|
+
throw new BlfError("gvar chunk payload is empty");
|
|
68
|
+
}
|
|
69
|
+
const bitstream = c_bitstream_reader.new(payload, e_bitstream_byte_order._bitstream_byte_order_big_endian);
|
|
70
|
+
bitstream.begin_reading();
|
|
71
|
+
this.game_variant = new c_game_variant();
|
|
72
|
+
this.game_variant.decode(bitstream);
|
|
73
|
+
bitstream.finish_reading();
|
|
74
|
+
}
|
|
75
|
+
write_body(_endian) {
|
|
76
|
+
const bitstream = c_bitstream_writer.new(0x5028, e_bitstream_byte_order._bitstream_byte_order_big_endian);
|
|
77
|
+
bitstream.begin_writing();
|
|
78
|
+
this.game_variant.encode(bitstream);
|
|
79
|
+
bitstream.finish_writing();
|
|
80
|
+
return bitstream.get_data();
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
return s_blf_chunk_packed_game_variant = _classThis;
|
|
84
|
+
})();
|
|
85
|
+
export { s_blf_chunk_packed_game_variant };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CStructBLFChunk } from "../../blf_chunk";
|
|
2
|
+
export declare class s_blf_chunk_fileshare_metadata extends CStructBLFChunk {
|
|
3
|
+
unknown0: bigint;
|
|
4
|
+
unknown8: Uint8Array<ArrayBuffer>;
|
|
5
|
+
unknown28: string;
|
|
6
|
+
unknown4c: bigint;
|
|
7
|
+
unknown54: Uint8Array<ArrayBuffer>;
|
|
8
|
+
unknown74: string;
|
|
9
|
+
unknown98: string;
|
|
10
|
+
attestation_signature: Uint8Array<ArrayBuffer>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=s_blf_chunk_fileshare_metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s_blf_chunk_fileshare_metadata.d.ts","sourceRoot":"","sources":["../../../src/chunks/mcc/s_blf_chunk_fileshare_metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,qBAEa,8BAA+B,SAAQ,eAAe;IAEjE,QAAQ,SAAM;IAGd,QAAQ,0BAAsB;IAG9B,SAAS,SAAM;IAGf,SAAS,SAAM;IAGf,SAAS,0BAAsB;IAG/B,SAAS,SAAM;IAGf,SAAS,SAAM;IAGf,qBAAqB,0BAAuB;CAC7C"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import { c } from "@craftycodie/cstruct";
|
|
36
|
+
import { blf, CStructBLFChunk } from "../../blf_chunk";
|
|
37
|
+
let s_blf_chunk_fileshare_metadata = (() => {
|
|
38
|
+
let _classDecorators = [blf.chunk("_fsm", 1.1), c.struct()];
|
|
39
|
+
let _classDescriptor;
|
|
40
|
+
let _classExtraInitializers = [];
|
|
41
|
+
let _classThis;
|
|
42
|
+
let _classSuper = CStructBLFChunk;
|
|
43
|
+
let _unknown0_decorators;
|
|
44
|
+
let _unknown0_initializers = [];
|
|
45
|
+
let _unknown0_extraInitializers = [];
|
|
46
|
+
let _unknown8_decorators;
|
|
47
|
+
let _unknown8_initializers = [];
|
|
48
|
+
let _unknown8_extraInitializers = [];
|
|
49
|
+
let _unknown28_decorators;
|
|
50
|
+
let _unknown28_initializers = [];
|
|
51
|
+
let _unknown28_extraInitializers = [];
|
|
52
|
+
let _unknown4c_decorators;
|
|
53
|
+
let _unknown4c_initializers = [];
|
|
54
|
+
let _unknown4c_extraInitializers = [];
|
|
55
|
+
let _unknown54_decorators;
|
|
56
|
+
let _unknown54_initializers = [];
|
|
57
|
+
let _unknown54_extraInitializers = [];
|
|
58
|
+
let _unknown74_decorators;
|
|
59
|
+
let _unknown74_initializers = [];
|
|
60
|
+
let _unknown74_extraInitializers = [];
|
|
61
|
+
let _unknown98_decorators;
|
|
62
|
+
let _unknown98_initializers = [];
|
|
63
|
+
let _unknown98_extraInitializers = [];
|
|
64
|
+
let _attestation_signature_decorators;
|
|
65
|
+
let _attestation_signature_initializers = [];
|
|
66
|
+
let _attestation_signature_extraInitializers = [];
|
|
67
|
+
var s_blf_chunk_fileshare_metadata = class extends _classSuper {
|
|
68
|
+
static { _classThis = this; }
|
|
69
|
+
static {
|
|
70
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
71
|
+
_unknown0_decorators = [c.field("u64")];
|
|
72
|
+
_unknown8_decorators = [c.field("u8", { count: 32 })];
|
|
73
|
+
_unknown28_decorators = [c.field(c.String(36))];
|
|
74
|
+
_unknown4c_decorators = [c.field("u64")];
|
|
75
|
+
_unknown54_decorators = [c.field("u8", { count: 32 })];
|
|
76
|
+
_unknown74_decorators = [c.field(c.String(36))];
|
|
77
|
+
_unknown98_decorators = [c.field(c.String(40))];
|
|
78
|
+
_attestation_signature_decorators = [c.field("u8", { count: 256, pad_after: 4 })];
|
|
79
|
+
__esDecorate(null, null, _unknown0_decorators, { kind: "field", name: "unknown0", static: false, private: false, access: { has: obj => "unknown0" in obj, get: obj => obj.unknown0, set: (obj, value) => { obj.unknown0 = value; } }, metadata: _metadata }, _unknown0_initializers, _unknown0_extraInitializers);
|
|
80
|
+
__esDecorate(null, null, _unknown8_decorators, { kind: "field", name: "unknown8", static: false, private: false, access: { has: obj => "unknown8" in obj, get: obj => obj.unknown8, set: (obj, value) => { obj.unknown8 = value; } }, metadata: _metadata }, _unknown8_initializers, _unknown8_extraInitializers);
|
|
81
|
+
__esDecorate(null, null, _unknown28_decorators, { kind: "field", name: "unknown28", static: false, private: false, access: { has: obj => "unknown28" in obj, get: obj => obj.unknown28, set: (obj, value) => { obj.unknown28 = value; } }, metadata: _metadata }, _unknown28_initializers, _unknown28_extraInitializers);
|
|
82
|
+
__esDecorate(null, null, _unknown4c_decorators, { kind: "field", name: "unknown4c", static: false, private: false, access: { has: obj => "unknown4c" in obj, get: obj => obj.unknown4c, set: (obj, value) => { obj.unknown4c = value; } }, metadata: _metadata }, _unknown4c_initializers, _unknown4c_extraInitializers);
|
|
83
|
+
__esDecorate(null, null, _unknown54_decorators, { kind: "field", name: "unknown54", static: false, private: false, access: { has: obj => "unknown54" in obj, get: obj => obj.unknown54, set: (obj, value) => { obj.unknown54 = value; } }, metadata: _metadata }, _unknown54_initializers, _unknown54_extraInitializers);
|
|
84
|
+
__esDecorate(null, null, _unknown74_decorators, { kind: "field", name: "unknown74", static: false, private: false, access: { has: obj => "unknown74" in obj, get: obj => obj.unknown74, set: (obj, value) => { obj.unknown74 = value; } }, metadata: _metadata }, _unknown74_initializers, _unknown74_extraInitializers);
|
|
85
|
+
__esDecorate(null, null, _unknown98_decorators, { kind: "field", name: "unknown98", static: false, private: false, access: { has: obj => "unknown98" in obj, get: obj => obj.unknown98, set: (obj, value) => { obj.unknown98 = value; } }, metadata: _metadata }, _unknown98_initializers, _unknown98_extraInitializers);
|
|
86
|
+
__esDecorate(null, null, _attestation_signature_decorators, { kind: "field", name: "attestation_signature", static: false, private: false, access: { has: obj => "attestation_signature" in obj, get: obj => obj.attestation_signature, set: (obj, value) => { obj.attestation_signature = value; } }, metadata: _metadata }, _attestation_signature_initializers, _attestation_signature_extraInitializers);
|
|
87
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
88
|
+
s_blf_chunk_fileshare_metadata = _classThis = _classDescriptor.value;
|
|
89
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
90
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
91
|
+
}
|
|
92
|
+
unknown0 = __runInitializers(this, _unknown0_initializers, 0n);
|
|
93
|
+
unknown8 = (__runInitializers(this, _unknown0_extraInitializers), __runInitializers(this, _unknown8_initializers, new Uint8Array(32)));
|
|
94
|
+
unknown28 = (__runInitializers(this, _unknown8_extraInitializers), __runInitializers(this, _unknown28_initializers, ""));
|
|
95
|
+
unknown4c = (__runInitializers(this, _unknown28_extraInitializers), __runInitializers(this, _unknown4c_initializers, 0n));
|
|
96
|
+
unknown54 = (__runInitializers(this, _unknown4c_extraInitializers), __runInitializers(this, _unknown54_initializers, new Uint8Array(32)));
|
|
97
|
+
unknown74 = (__runInitializers(this, _unknown54_extraInitializers), __runInitializers(this, _unknown74_initializers, ""));
|
|
98
|
+
unknown98 = (__runInitializers(this, _unknown74_extraInitializers), __runInitializers(this, _unknown98_initializers, ""));
|
|
99
|
+
attestation_signature = (__runInitializers(this, _unknown98_extraInitializers), __runInitializers(this, _attestation_signature_initializers, new Uint8Array(256)));
|
|
100
|
+
constructor() {
|
|
101
|
+
super(...arguments);
|
|
102
|
+
__runInitializers(this, _attestation_signature_extraInitializers);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
return s_blf_chunk_fileshare_metadata = _classThis;
|
|
106
|
+
})();
|
|
107
|
+
export { s_blf_chunk_fileshare_metadata };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert game variants between Halo Reach TU1 and MCC builds.
|
|
3
|
+
*
|
|
4
|
+
* JSON-clone the variant, reject MCC-only megalo features, remap what moved
|
|
5
|
+
* between builds, then write the four top-level fields onto `to`.
|
|
6
|
+
*
|
|
7
|
+
* Differences handled here:
|
|
8
|
+
* - MCC-only: temporary explicit refs, `<<=`, `>>=`
|
|
9
|
+
* - `set_to_absolute` exists in both builds but moved (TU1 = 10, MCC = 12)
|
|
10
|
+
* - Survival: unrelated fields — MCC→TU1 sets `m_campaign_difficulty_level` to 1;
|
|
11
|
+
* TU1→MCC sets `m_encoding_version` to 2; `m_additional_flags` only on MCC
|
|
12
|
+
*/
|
|
13
|
+
import { type c_game_variant as c_game_variant_tu1 } from "../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant";
|
|
14
|
+
import { c_game_variant as c_game_variant_mcc } from "../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant";
|
|
15
|
+
export declare function convert_reach_gametype(from: c_game_variant_mcc, to: c_game_variant_tu1): boolean;
|
|
16
|
+
export declare function convert_reach_gametype(from: c_game_variant_tu1, to: c_game_variant_mcc): boolean;
|
|
17
|
+
//# sourceMappingURL=convert_reach_gametype.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert_reach_gametype.d.ts","sourceRoot":"","sources":["../../src/helpers/convert_reach_gametype.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,cAAc,IAAI,kBAAkB,EAE1C,MAAM,sEAAsE,CAAC;AAE9E,OAAO,EACL,cAAc,IAAI,kBAAkB,EAErC,MAAM,qEAAqE,CAAC;AAuO7E,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC;AACX,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert game variants between Halo Reach TU1 and MCC builds.
|
|
3
|
+
*
|
|
4
|
+
* JSON-clone the variant, reject MCC-only megalo features, remap what moved
|
|
5
|
+
* between builds, then write the four top-level fields onto `to`.
|
|
6
|
+
*
|
|
7
|
+
* Differences handled here:
|
|
8
|
+
* - MCC-only: temporary explicit refs, `<<=`, `>>=`
|
|
9
|
+
* - `set_to_absolute` exists in both builds but moved (TU1 = 10, MCC = 12)
|
|
10
|
+
* - Survival: unrelated fields — MCC→TU1 sets `m_campaign_difficulty_level` to 1;
|
|
11
|
+
* TU1→MCC sets `m_encoding_version` to 2; `m_additional_flags` only on MCC
|
|
12
|
+
*/
|
|
13
|
+
import { e_game_mode as e_game_mode_tu1, } from "../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant";
|
|
14
|
+
import { e_math_operation as e_math_operation_tu1 } from "../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions";
|
|
15
|
+
import { c_game_variant as c_game_variant_mcc, e_game_mode as e_game_mode_mcc, } from "../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant";
|
|
16
|
+
import { e_math_operation as e_math_operation_mcc } from "../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions";
|
|
17
|
+
import { e_explicit_object_type as e_explicit_object_type_mcc } from "../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object";
|
|
18
|
+
import { e_explicit_player_type as e_explicit_player_type_mcc } from "../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player";
|
|
19
|
+
import { e_explicit_team_type as e_explicit_team_type_mcc } from "../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team";
|
|
20
|
+
import { BlfError } from "../error";
|
|
21
|
+
/** MCC math ops with no TU1 equivalent (`<<=`, `>>=`). */
|
|
22
|
+
const MCC_ONLY_MATH_OPS = [
|
|
23
|
+
e_math_operation_mcc.shift_left_with,
|
|
24
|
+
e_math_operation_mcc.shift_right_with,
|
|
25
|
+
];
|
|
26
|
+
/** TU1 survival `m_campaign_difficulty_level` when converting from MCC. */
|
|
27
|
+
const TU1_SURVIVAL_CAMPAIGN_DIFFICULTY = 1;
|
|
28
|
+
/** MCC survival `m_encoding_version` when converting from TU1. */
|
|
29
|
+
const MCC_SURVIVAL_ENCODING_VERSION = 2;
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// JSON helpers
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
const JSON_BIGINT_TAG = "__bigint__";
|
|
34
|
+
function json_clone(value) {
|
|
35
|
+
return JSON.parse(JSON.stringify(value, (_key, v) => typeof v === "bigint" ? { [JSON_BIGINT_TAG]: v.toString() } : v), (_key, v) => v !== null &&
|
|
36
|
+
typeof v === "object" &&
|
|
37
|
+
JSON_BIGINT_TAG in v &&
|
|
38
|
+
typeof v[JSON_BIGINT_TAG] === "string"
|
|
39
|
+
? BigInt(v[JSON_BIGINT_TAG])
|
|
40
|
+
: v);
|
|
41
|
+
}
|
|
42
|
+
function write_game_variant_json(to, data) {
|
|
43
|
+
to.m_game_engine = data.m_game_engine;
|
|
44
|
+
to.m_campaign_variant = data.m_campaign_variant;
|
|
45
|
+
to.m_custom_variant = data.m_custom_variant;
|
|
46
|
+
to.m_survival_variant = data.m_survival_variant;
|
|
47
|
+
}
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Tree walk
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
function visit_object_tree(root, fn) {
|
|
52
|
+
if (root === null || typeof root !== "object") {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (Array.isArray(root)) {
|
|
56
|
+
for (const item of root) {
|
|
57
|
+
visit_object_tree(item, fn);
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const obj = root;
|
|
62
|
+
fn(obj);
|
|
63
|
+
for (const value of Object.values(obj)) {
|
|
64
|
+
visit_object_tree(value, fn);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function remap_set_to_absolute_mcc_to_tu1(root) {
|
|
68
|
+
visit_object_tree(root, (obj) => {
|
|
69
|
+
if (obj.m_operation === e_math_operation_mcc.set_to_absolute) {
|
|
70
|
+
obj.m_operation = e_math_operation_tu1.set_to_absolute;
|
|
71
|
+
}
|
|
72
|
+
if (obj.m_math_operation === e_math_operation_mcc.set_to_absolute) {
|
|
73
|
+
obj.m_math_operation = e_math_operation_tu1.set_to_absolute;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function remap_set_to_absolute_tu1_to_mcc(root) {
|
|
78
|
+
visit_object_tree(root, (obj) => {
|
|
79
|
+
if (obj.m_operation === e_math_operation_tu1.set_to_absolute) {
|
|
80
|
+
obj.m_operation = e_math_operation_mcc.set_to_absolute;
|
|
81
|
+
}
|
|
82
|
+
if (obj.m_math_operation === e_math_operation_tu1.set_to_absolute) {
|
|
83
|
+
obj.m_math_operation = e_math_operation_mcc.set_to_absolute;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
// MCC → TU1 compatibility checks
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
function variant_uses_temporary_explicit_refs(variant) {
|
|
91
|
+
let found = false;
|
|
92
|
+
visit_object_tree(variant, (obj) => {
|
|
93
|
+
if (found) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const team = obj.m_explicit_team_type;
|
|
97
|
+
if (typeof team === "number" &&
|
|
98
|
+
team >= e_explicit_team_type_mcc.temporary_0 &&
|
|
99
|
+
team <= e_explicit_team_type_mcc.temporary_5) {
|
|
100
|
+
found = true;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const player = obj.m_explicit_player_type;
|
|
104
|
+
if (typeof player === "number" &&
|
|
105
|
+
player >= e_explicit_player_type_mcc.temporary_0 &&
|
|
106
|
+
player <= e_explicit_player_type_mcc.temporary_2) {
|
|
107
|
+
found = true;
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const object = obj.m_explicit_object_type;
|
|
111
|
+
if (typeof object === "number" &&
|
|
112
|
+
object >= e_explicit_object_type_mcc.temporary_0 &&
|
|
113
|
+
object <= e_explicit_object_type_mcc.temporary_7) {
|
|
114
|
+
found = true;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
return found;
|
|
118
|
+
}
|
|
119
|
+
function variant_uses_mcc_only_math_ops(variant) {
|
|
120
|
+
let found = false;
|
|
121
|
+
visit_object_tree(variant, (obj) => {
|
|
122
|
+
if (found) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const op = obj.m_operation ?? obj.m_math_operation;
|
|
126
|
+
if (typeof op === "number" && MCC_ONLY_MATH_OPS.includes(op)) {
|
|
127
|
+
found = true;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return found;
|
|
131
|
+
}
|
|
132
|
+
/** Returns false when MCC features cannot be represented in TU1. */
|
|
133
|
+
function can_convert_mcc_game_variant_to_tu1(from) {
|
|
134
|
+
if (from.m_game_engine === e_game_mode_mcc.survival &&
|
|
135
|
+
from.m_survival_variant !== undefined &&
|
|
136
|
+
from.m_survival_variant.m_additional_flags !== 0) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
if (variant_uses_temporary_explicit_refs(from)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
if (variant_uses_mcc_only_math_ops(from)) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
// ---------------------------------------------------------------------------
|
|
148
|
+
// Survival (MCC and TU1 use different field names for unrelated data)
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
function survival_json_mcc_to_tu1(survival) {
|
|
151
|
+
survival.m_campaign_difficulty_level = TU1_SURVIVAL_CAMPAIGN_DIFFICULTY;
|
|
152
|
+
survival.m_encoding_version = undefined;
|
|
153
|
+
survival.m_additional_flags = undefined;
|
|
154
|
+
}
|
|
155
|
+
function survival_json_tu1_to_mcc(survival) {
|
|
156
|
+
survival.m_encoding_version = MCC_SURVIVAL_ENCODING_VERSION;
|
|
157
|
+
survival.m_campaign_difficulty_level = undefined;
|
|
158
|
+
survival.m_additional_flags = 0;
|
|
159
|
+
}
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
// Conversion (cross-version only)
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
function convert_mcc_to_tu1(from, to) {
|
|
164
|
+
if (!can_convert_mcc_game_variant_to_tu1(from)) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
const data = json_clone(from);
|
|
168
|
+
remap_set_to_absolute_mcc_to_tu1(data);
|
|
169
|
+
if (data.m_survival_variant !== undefined) {
|
|
170
|
+
survival_json_mcc_to_tu1(data.m_survival_variant);
|
|
171
|
+
}
|
|
172
|
+
write_game_variant_json(to, data);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
function convert_tu1_to_mcc(from, to) {
|
|
176
|
+
const data = json_clone(from);
|
|
177
|
+
remap_set_to_absolute_tu1_to_mcc(data);
|
|
178
|
+
if (data.m_survival_variant !== undefined) {
|
|
179
|
+
survival_json_tu1_to_mcc(data.m_survival_variant);
|
|
180
|
+
}
|
|
181
|
+
write_game_variant_json(to, data);
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
export function convert_reach_gametype(from, to) {
|
|
185
|
+
if (from.m_game_engine === e_game_mode_tu1.sandbox) {
|
|
186
|
+
throw new BlfError("Forge game variants are not supported. Where did you even get this?");
|
|
187
|
+
}
|
|
188
|
+
const from_is_mcc = from instanceof c_game_variant_mcc;
|
|
189
|
+
const to_is_mcc = to instanceof c_game_variant_mcc;
|
|
190
|
+
if (from_is_mcc === to_is_mcc) {
|
|
191
|
+
throw new BlfError("convert_reach_gametype only supports cross-version conversion between Reach TU1 and Reach MCC");
|
|
192
|
+
}
|
|
193
|
+
if (from_is_mcc) {
|
|
194
|
+
return convert_mcc_to_tu1(from, to);
|
|
195
|
+
}
|
|
196
|
+
return convert_tu1_to_mcc(from, to);
|
|
197
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { convert_reach_gametype } from "./convert_reach_gametype";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "../../blam/common";
|
|
2
|
+
export * from "../../blam/haloreach_mcc/v_untracked_25_08_19_1352";
|
|
3
|
+
export * from "../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data";
|
|
4
|
+
export * from "../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file";
|
|
5
|
+
export * from "../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file";
|
|
6
|
+
export * from "../../chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header";
|
|
7
|
+
export * from "../../chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant";
|
|
8
|
+
export * from "../../chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant";
|
|
9
|
+
//# sourceMappingURL=v_untracked_25_08_19_1352.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v_untracked_25_08_19_1352.d.ts","sourceRoot":"","sources":["../../../src/versions/haloreach_mcc/v_untracked_25_08_19_1352.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oDAAoD,CAAC;AACnE,cAAc,gFAAgF,CAAC;AAC/F,cAAc,4EAA4E,CAAC;AAC3F,cAAc,8EAA8E,CAAC;AAC7F,cAAc,kFAAkF,CAAC;AACjG,cAAc,+EAA+E,CAAC;AAC9F,cAAc,sFAAsF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "../../blam/common";
|
|
2
|
+
export * from "../../blam/haloreach_mcc/v_untracked_25_08_19_1352";
|
|
3
|
+
export * from "../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data";
|
|
4
|
+
export * from "../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file";
|
|
5
|
+
export * from "../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file";
|
|
6
|
+
export * from "../../chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header";
|
|
7
|
+
export * from "../../chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant";
|
|
8
|
+
export * from "../../chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant";
|