@blamnetwork/blf 1.0.0-alpha.5 → 1.0.0-beta.1
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_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/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 +191 -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-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_mcc/v_untracked_25_08_19_1352/index.js +19 -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/helpers/convert_reach_gametype.js +194 -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/package.json +26 -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,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.s_blf_chunk_game_variant = exports.MPVR_PAYLOAD_SIZE = exports.variant_storage_capacity = void 0;
|
|
38
|
+
const bitstream_1 = require("../../../bitstream");
|
|
39
|
+
const security_functions_1 = require("../../../blam/common/cache/security_functions");
|
|
40
|
+
const c_game_variant_1 = require("../../../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant");
|
|
41
|
+
const blf_chunk_1 = require("../../../blf_chunk");
|
|
42
|
+
const error_1 = require("../../../error");
|
|
43
|
+
/** Gametype storage slot size (bytes). */
|
|
44
|
+
exports.variant_storage_capacity = 0x5000;
|
|
45
|
+
/** mpvr body size: hash/header (28) + padded gametype slot. */
|
|
46
|
+
exports.MPVR_PAYLOAD_SIZE = 28 + exports.variant_storage_capacity;
|
|
47
|
+
/**
|
|
48
|
+
* Reach game variant chunk (`mpvr` 54.1).
|
|
49
|
+
*
|
|
50
|
+
* Payload layout matches blf_lib: hash + header fields + gametype bitstream,
|
|
51
|
+
* all read through one big-endian bitstream.
|
|
52
|
+
*/
|
|
53
|
+
let s_blf_chunk_game_variant = (() => {
|
|
54
|
+
let _classDecorators = [blf_chunk_1.blf.chunk("mpvr", 54.1)];
|
|
55
|
+
let _classDescriptor;
|
|
56
|
+
let _classExtraInitializers = [];
|
|
57
|
+
let _classThis;
|
|
58
|
+
let _classSuper = blf_chunk_1.BLFChunkBase;
|
|
59
|
+
var s_blf_chunk_game_variant = class extends _classSuper {
|
|
60
|
+
static { _classThis = this; }
|
|
61
|
+
static {
|
|
62
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
63
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
64
|
+
s_blf_chunk_game_variant = _classThis = _classDescriptor.value;
|
|
65
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
66
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
67
|
+
}
|
|
68
|
+
hash = new Uint8Array(20);
|
|
69
|
+
unknown04 = -1;
|
|
70
|
+
unknown06 = 0;
|
|
71
|
+
variant_length = 0;
|
|
72
|
+
game_variant = new c_game_variant_1.c_game_variant();
|
|
73
|
+
static create(game_variant) {
|
|
74
|
+
const chunk = new s_blf_chunk_game_variant();
|
|
75
|
+
chunk.game_variant = game_variant;
|
|
76
|
+
return chunk;
|
|
77
|
+
}
|
|
78
|
+
read_body(payload, endian) {
|
|
79
|
+
if (payload.length === 0) {
|
|
80
|
+
throw new error_1.BlfError("mpvr chunk payload is empty");
|
|
81
|
+
}
|
|
82
|
+
const byte_order = endian === "big"
|
|
83
|
+
? bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian
|
|
84
|
+
: bitstream_1.e_bitstream_byte_order._bitstream_byte_order_little_endian;
|
|
85
|
+
const bitstream = bitstream_1.c_bitstream_reader.new(payload, byte_order);
|
|
86
|
+
bitstream.begin_reading();
|
|
87
|
+
this.hash = bitstream.read_raw_data(20 * 8);
|
|
88
|
+
this.unknown04 = bitstream.read_signed_integer("unknown04", 16);
|
|
89
|
+
this.unknown06 = bitstream.read_integer("unknown06", 16);
|
|
90
|
+
this.variant_length = bitstream.read_integer("variant-length", 32);
|
|
91
|
+
this.game_variant = new c_game_variant_1.c_game_variant();
|
|
92
|
+
this.game_variant.decode(bitstream);
|
|
93
|
+
bitstream.finish_reading();
|
|
94
|
+
}
|
|
95
|
+
write_body(endian) {
|
|
96
|
+
const byte_order = endian === "big"
|
|
97
|
+
? bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian
|
|
98
|
+
: bitstream_1.e_bitstream_byte_order._bitstream_byte_order_little_endian;
|
|
99
|
+
const gametype_bitstream = bitstream_1.c_bitstream_writer.new(exports.variant_storage_capacity, byte_order);
|
|
100
|
+
gametype_bitstream.begin_writing();
|
|
101
|
+
this.game_variant.encode(gametype_bitstream);
|
|
102
|
+
gametype_bitstream.finish_writing();
|
|
103
|
+
const gametype_data = gametype_bitstream.get_data();
|
|
104
|
+
const gametype_length = gametype_data.length;
|
|
105
|
+
if (gametype_length > exports.variant_storage_capacity) {
|
|
106
|
+
throw new error_1.BlfError(`mpvr gametype too large: ${gametype_length} bytes (max ${exports.variant_storage_capacity})`);
|
|
107
|
+
}
|
|
108
|
+
const hashable_bitstream = bitstream_1.c_bitstream_writer.new(4 + gametype_length, byte_order);
|
|
109
|
+
hashable_bitstream.begin_writing();
|
|
110
|
+
hashable_bitstream.write_integer(gametype_length, 32);
|
|
111
|
+
hashable_bitstream.write_raw_data(gametype_data, gametype_length * 8);
|
|
112
|
+
hashable_bitstream.finish_writing();
|
|
113
|
+
const hash = (0, security_functions_1.security_calculate_hash)(hashable_bitstream.get_data());
|
|
114
|
+
const payload_bitstream = bitstream_1.c_bitstream_writer.new(exports.variant_storage_capacity, byte_order);
|
|
115
|
+
payload_bitstream.begin_writing();
|
|
116
|
+
payload_bitstream.write_raw_data(hash, hash.length * 8);
|
|
117
|
+
payload_bitstream.write_signed_integer(this.unknown04, 16);
|
|
118
|
+
payload_bitstream.write_integer(this.unknown06, 16);
|
|
119
|
+
payload_bitstream.write_integer(gametype_length, 32);
|
|
120
|
+
payload_bitstream.write_raw_data(gametype_data, gametype_length * 8);
|
|
121
|
+
const pad_bytes = exports.variant_storage_capacity - gametype_length;
|
|
122
|
+
if (pad_bytes > 0) {
|
|
123
|
+
payload_bitstream.seek_relative(pad_bytes * 8);
|
|
124
|
+
}
|
|
125
|
+
payload_bitstream.finish_writing();
|
|
126
|
+
this.hash = hash;
|
|
127
|
+
this.variant_length = gametype_length;
|
|
128
|
+
return payload_bitstream.get_data();
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
return s_blf_chunk_game_variant = _classThis;
|
|
132
|
+
})();
|
|
133
|
+
exports.s_blf_chunk_game_variant = s_blf_chunk_game_variant;
|
package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.s_blf_chunk_packed_game_variant = void 0;
|
|
38
|
+
const bitstream_1 = require("../../../bitstream");
|
|
39
|
+
const c_game_variant_1 = require("../../../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant");
|
|
40
|
+
const blf_chunk_1 = require("../../../blf_chunk");
|
|
41
|
+
const error_1 = require("../../../error");
|
|
42
|
+
/**
|
|
43
|
+
* Reach matchmaking game variant chunk (`gvar` 54.1).
|
|
44
|
+
*
|
|
45
|
+
* Payload is the gametype bitstream only (no mpvr hash/header wrapper).
|
|
46
|
+
*/
|
|
47
|
+
let s_blf_chunk_packed_game_variant = (() => {
|
|
48
|
+
let _classDecorators = [blf_chunk_1.blf.chunk("gvar", 54.1)];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
let _classSuper = blf_chunk_1.BLFChunkBase;
|
|
53
|
+
var s_blf_chunk_packed_game_variant = class extends _classSuper {
|
|
54
|
+
static { _classThis = this; }
|
|
55
|
+
static {
|
|
56
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
57
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
58
|
+
s_blf_chunk_packed_game_variant = _classThis = _classDescriptor.value;
|
|
59
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
60
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
61
|
+
}
|
|
62
|
+
game_variant = new c_game_variant_1.c_game_variant();
|
|
63
|
+
static create(game_variant) {
|
|
64
|
+
const chunk = new s_blf_chunk_packed_game_variant();
|
|
65
|
+
chunk.game_variant = game_variant;
|
|
66
|
+
return chunk;
|
|
67
|
+
}
|
|
68
|
+
read_body(payload, _endian) {
|
|
69
|
+
if (payload.length === 0) {
|
|
70
|
+
throw new error_1.BlfError("gvar chunk payload is empty");
|
|
71
|
+
}
|
|
72
|
+
const bitstream = bitstream_1.c_bitstream_reader.new(payload, bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian);
|
|
73
|
+
bitstream.begin_reading();
|
|
74
|
+
this.game_variant = new c_game_variant_1.c_game_variant();
|
|
75
|
+
this.game_variant.decode(bitstream);
|
|
76
|
+
bitstream.finish_reading();
|
|
77
|
+
}
|
|
78
|
+
write_body(_endian) {
|
|
79
|
+
const bitstream = bitstream_1.c_bitstream_writer.new(0x5028, bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian);
|
|
80
|
+
bitstream.begin_writing();
|
|
81
|
+
this.game_variant.encode(bitstream);
|
|
82
|
+
bitstream.finish_writing();
|
|
83
|
+
return bitstream.get_data();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
return s_blf_chunk_packed_game_variant = _classThis;
|
|
87
|
+
})();
|
|
88
|
+
exports.s_blf_chunk_packed_game_variant = s_blf_chunk_packed_game_variant;
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Convert game variants between Halo Reach TU1 and MCC builds.
|
|
4
|
+
*
|
|
5
|
+
* JSON-clone the variant, reject MCC-only megalo features, remap what moved
|
|
6
|
+
* between builds, then write the four top-level fields onto `to`.
|
|
7
|
+
*
|
|
8
|
+
* Differences handled here:
|
|
9
|
+
* - MCC-only: temporary explicit refs, `<<=`, `>>=`
|
|
10
|
+
* - `set_to_absolute` exists in both builds but moved (TU1 = 10, MCC = 12)
|
|
11
|
+
* - Survival: unrelated fields — MCC→TU1 sets `m_campaign_difficulty_level` to 1;
|
|
12
|
+
* TU1→MCC sets `m_encoding_version` to 2; `m_additional_flags` only on MCC
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.convert_reach_gametype = convert_reach_gametype;
|
|
16
|
+
const c_game_variant_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant");
|
|
17
|
+
const megalogamengine_actions_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions");
|
|
18
|
+
const c_game_variant_2 = require("../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant");
|
|
19
|
+
const megalogamengine_actions_2 = require("../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions");
|
|
20
|
+
const megalogamengine_explicit_object_1 = require("../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object");
|
|
21
|
+
const megalogamengine_explicit_player_1 = require("../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player");
|
|
22
|
+
const megalogamengine_explicit_team_1 = require("../blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team");
|
|
23
|
+
const error_1 = require("../error");
|
|
24
|
+
/** MCC math ops with no TU1 equivalent (`<<=`, `>>=`). */
|
|
25
|
+
const MCC_ONLY_MATH_OPS = [
|
|
26
|
+
megalogamengine_actions_2.e_math_operation.shift_left_with,
|
|
27
|
+
megalogamengine_actions_2.e_math_operation.shift_right_with,
|
|
28
|
+
];
|
|
29
|
+
/** TU1 survival `m_campaign_difficulty_level` when converting from MCC. */
|
|
30
|
+
const TU1_SURVIVAL_CAMPAIGN_DIFFICULTY = 1;
|
|
31
|
+
/** MCC survival `m_encoding_version` when converting from TU1. */
|
|
32
|
+
const MCC_SURVIVAL_ENCODING_VERSION = 2;
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// JSON helpers
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
function json_clone(value) {
|
|
37
|
+
return JSON.parse(JSON.stringify(value));
|
|
38
|
+
}
|
|
39
|
+
function write_game_variant_json(to, data) {
|
|
40
|
+
to.m_game_engine = data.m_game_engine;
|
|
41
|
+
to.m_campaign_variant = data.m_campaign_variant;
|
|
42
|
+
to.m_custom_variant = data.m_custom_variant;
|
|
43
|
+
to.m_survival_variant = data.m_survival_variant;
|
|
44
|
+
}
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
// Tree walk
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
function visit_object_tree(root, fn) {
|
|
49
|
+
if (root === null || typeof root !== "object") {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (Array.isArray(root)) {
|
|
53
|
+
for (const item of root) {
|
|
54
|
+
visit_object_tree(item, fn);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const obj = root;
|
|
59
|
+
fn(obj);
|
|
60
|
+
for (const value of Object.values(obj)) {
|
|
61
|
+
visit_object_tree(value, fn);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function remap_set_to_absolute_mcc_to_tu1(root) {
|
|
65
|
+
visit_object_tree(root, (obj) => {
|
|
66
|
+
if (obj.m_operation === megalogamengine_actions_2.e_math_operation.set_to_absolute) {
|
|
67
|
+
obj.m_operation = megalogamengine_actions_1.e_math_operation.set_to_absolute;
|
|
68
|
+
}
|
|
69
|
+
if (obj.m_math_operation === megalogamengine_actions_2.e_math_operation.set_to_absolute) {
|
|
70
|
+
obj.m_math_operation = megalogamengine_actions_1.e_math_operation.set_to_absolute;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function remap_set_to_absolute_tu1_to_mcc(root) {
|
|
75
|
+
visit_object_tree(root, (obj) => {
|
|
76
|
+
if (obj.m_operation === megalogamengine_actions_1.e_math_operation.set_to_absolute) {
|
|
77
|
+
obj.m_operation = megalogamengine_actions_2.e_math_operation.set_to_absolute;
|
|
78
|
+
}
|
|
79
|
+
if (obj.m_math_operation === megalogamengine_actions_1.e_math_operation.set_to_absolute) {
|
|
80
|
+
obj.m_math_operation = megalogamengine_actions_2.e_math_operation.set_to_absolute;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
// MCC → TU1 compatibility checks
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
function variant_uses_temporary_explicit_refs(variant) {
|
|
88
|
+
let found = false;
|
|
89
|
+
visit_object_tree(variant, (obj) => {
|
|
90
|
+
if (found) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const team = obj.m_explicit_team_type;
|
|
94
|
+
if (typeof team === "number" &&
|
|
95
|
+
team >= megalogamengine_explicit_team_1.e_explicit_team_type.temporary_0 &&
|
|
96
|
+
team <= megalogamengine_explicit_team_1.e_explicit_team_type.temporary_5) {
|
|
97
|
+
found = true;
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const player = obj.m_explicit_player_type;
|
|
101
|
+
if (typeof player === "number" &&
|
|
102
|
+
player >= megalogamengine_explicit_player_1.e_explicit_player_type.temporary_0 &&
|
|
103
|
+
player <= megalogamengine_explicit_player_1.e_explicit_player_type.temporary_2) {
|
|
104
|
+
found = true;
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const object = obj.m_explicit_object_type;
|
|
108
|
+
if (typeof object === "number" &&
|
|
109
|
+
object >= megalogamengine_explicit_object_1.e_explicit_object_type.temporary_0 &&
|
|
110
|
+
object <= megalogamengine_explicit_object_1.e_explicit_object_type.temporary_7) {
|
|
111
|
+
found = true;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return found;
|
|
115
|
+
}
|
|
116
|
+
function variant_uses_mcc_only_math_ops(variant) {
|
|
117
|
+
let found = false;
|
|
118
|
+
visit_object_tree(variant, (obj) => {
|
|
119
|
+
if (found) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const op = obj.m_operation ?? obj.m_math_operation;
|
|
123
|
+
if (typeof op === "number" && MCC_ONLY_MATH_OPS.includes(op)) {
|
|
124
|
+
found = true;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return found;
|
|
128
|
+
}
|
|
129
|
+
/** Returns false when MCC features cannot be represented in TU1. */
|
|
130
|
+
function can_convert_mcc_game_variant_to_tu1(from) {
|
|
131
|
+
if (from.m_game_engine === c_game_variant_2.e_game_mode.survival &&
|
|
132
|
+
from.m_survival_variant !== undefined &&
|
|
133
|
+
from.m_survival_variant.m_additional_flags !== 0) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
if (variant_uses_temporary_explicit_refs(from)) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
if (variant_uses_mcc_only_math_ops(from)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
// ---------------------------------------------------------------------------
|
|
145
|
+
// Survival (MCC and TU1 use different field names for unrelated data)
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
function survival_json_mcc_to_tu1(survival) {
|
|
148
|
+
survival.m_campaign_difficulty_level = TU1_SURVIVAL_CAMPAIGN_DIFFICULTY;
|
|
149
|
+
survival.m_encoding_version = undefined;
|
|
150
|
+
survival.m_additional_flags = undefined;
|
|
151
|
+
}
|
|
152
|
+
function survival_json_tu1_to_mcc(survival) {
|
|
153
|
+
survival.m_encoding_version = MCC_SURVIVAL_ENCODING_VERSION;
|
|
154
|
+
survival.m_campaign_difficulty_level = undefined;
|
|
155
|
+
survival.m_additional_flags = 0;
|
|
156
|
+
}
|
|
157
|
+
// ---------------------------------------------------------------------------
|
|
158
|
+
// Conversion (cross-version only)
|
|
159
|
+
// ---------------------------------------------------------------------------
|
|
160
|
+
function convert_mcc_to_tu1(from, to) {
|
|
161
|
+
if (!can_convert_mcc_game_variant_to_tu1(from)) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
const data = json_clone(from);
|
|
165
|
+
remap_set_to_absolute_mcc_to_tu1(data);
|
|
166
|
+
if (data.m_survival_variant !== undefined) {
|
|
167
|
+
survival_json_mcc_to_tu1(data.m_survival_variant);
|
|
168
|
+
}
|
|
169
|
+
write_game_variant_json(to, data);
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
function convert_tu1_to_mcc(from, to) {
|
|
173
|
+
const data = json_clone(from);
|
|
174
|
+
remap_set_to_absolute_tu1_to_mcc(data);
|
|
175
|
+
if (data.m_survival_variant !== undefined) {
|
|
176
|
+
survival_json_tu1_to_mcc(data.m_survival_variant);
|
|
177
|
+
}
|
|
178
|
+
write_game_variant_json(to, data);
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
function convert_reach_gametype(from, to) {
|
|
182
|
+
if (from.m_game_engine === c_game_variant_1.e_game_mode.sandbox) {
|
|
183
|
+
throw new error_1.BlfError("Forge game variants are not supported. Where did you even get this?");
|
|
184
|
+
}
|
|
185
|
+
const from_is_mcc = from instanceof c_game_variant_2.c_game_variant;
|
|
186
|
+
const to_is_mcc = to instanceof c_game_variant_2.c_game_variant;
|
|
187
|
+
if (from_is_mcc === to_is_mcc) {
|
|
188
|
+
throw new error_1.BlfError("convert_reach_gametype only supports cross-version conversion between Reach TU1 and Reach MCC");
|
|
189
|
+
}
|
|
190
|
+
if (from_is_mcc) {
|
|
191
|
+
return convert_mcc_to_tu1(from, to);
|
|
192
|
+
}
|
|
193
|
+
return convert_tu1_to_mcc(from, to);
|
|
194
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convert_reach_gametype = void 0;
|
|
4
|
+
var convert_reach_gametype_1 = require("./convert_reach_gametype");
|
|
5
|
+
Object.defineProperty(exports, "convert_reach_gametype", { enumerable: true, get: function () { return convert_reach_gametype_1.convert_reach_gametype; } });
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../../blam/common"), exports);
|
|
18
|
+
__exportStar(require("../../blam/haloreach_mcc/v_untracked_25_08_19_1352"), exports);
|
|
19
|
+
__exportStar(require("../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_compressed_data"), exports);
|
|
20
|
+
__exportStar(require("../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_end_of_file"), exports);
|
|
21
|
+
__exportStar(require("../../chunks/halo3/v12070_08_09_05_2031_halo3_ship/s_blf_chunk_start_of_file"), exports);
|
|
22
|
+
__exportStar(require("../../chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header"), exports);
|
|
23
|
+
__exportStar(require("../../chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant"), exports);
|
|
24
|
+
__exportStar(require("../../chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blamnetwork/blf",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
4
|
"description": "BLF chunk library for Halo (TypeScript)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist-cjs/index.js",
|
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
"haloreach/*": [
|
|
11
11
|
"./dist/versions/haloreach/*"
|
|
12
12
|
],
|
|
13
|
+
"haloreach_mcc/*": [
|
|
14
|
+
"./dist/versions/haloreach_mcc/*"
|
|
15
|
+
],
|
|
13
16
|
"halo3/*": [
|
|
14
17
|
"./dist/versions/halo3/*"
|
|
15
18
|
],
|
|
@@ -25,12 +28,24 @@
|
|
|
25
28
|
"require": "./dist-cjs/index.js",
|
|
26
29
|
"default": "./dist/index.js"
|
|
27
30
|
},
|
|
31
|
+
"./helpers": {
|
|
32
|
+
"types": "./dist/helpers/index.d.ts",
|
|
33
|
+
"import": "./dist/helpers/index.js",
|
|
34
|
+
"require": "./dist-cjs/helpers/index.js",
|
|
35
|
+
"default": "./dist/helpers/index.js"
|
|
36
|
+
},
|
|
28
37
|
"./haloreach/*": {
|
|
29
38
|
"types": "./dist/versions/haloreach/*.d.ts",
|
|
30
39
|
"import": "./dist/versions/haloreach/*.js",
|
|
31
40
|
"require": "./dist-cjs/versions/haloreach/*.js",
|
|
32
41
|
"default": "./dist/versions/haloreach/*.js"
|
|
33
42
|
},
|
|
43
|
+
"./haloreach_mcc/*": {
|
|
44
|
+
"types": "./dist/versions/haloreach_mcc/*.d.ts",
|
|
45
|
+
"import": "./dist/versions/haloreach_mcc/*.js",
|
|
46
|
+
"require": "./dist-cjs/versions/haloreach_mcc/*.js",
|
|
47
|
+
"default": "./dist/versions/haloreach_mcc/*.js"
|
|
48
|
+
},
|
|
34
49
|
"./halo3/*": {
|
|
35
50
|
"types": "./dist/versions/halo3/*.d.ts",
|
|
36
51
|
"import": "./dist/versions/halo3/*.js",
|
|
@@ -54,9 +69,15 @@
|
|
|
54
69
|
"fix": "ultracite fix",
|
|
55
70
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
56
71
|
"test": "vitest run",
|
|
57
|
-
"
|
|
72
|
+
"docs:gen": "node scripts/generate-docs-version-exports.mjs",
|
|
73
|
+
"docs": "vitepress dev docs",
|
|
74
|
+
"docs:build": "vitepress build docs",
|
|
75
|
+
"docs:preview": "vitepress preview docs",
|
|
76
|
+
"validate": "npm run check && npm run test && npm run typecheck && npm run docs:build",
|
|
58
77
|
"release": "node scripts/release.mjs",
|
|
59
|
-
"prepack": "npm run build"
|
|
78
|
+
"prepack": "npm run build",
|
|
79
|
+
"predocs": "npm run docs:gen",
|
|
80
|
+
"predocs:build": "npm run docs:gen"
|
|
60
81
|
},
|
|
61
82
|
"repository": {
|
|
62
83
|
"type": "git",
|
|
@@ -66,7 +87,7 @@
|
|
|
66
87
|
"bugs": {
|
|
67
88
|
"url": "https://github.com/Blam-Network/blf/issues"
|
|
68
89
|
},
|
|
69
|
-
"homepage": "https://github.
|
|
90
|
+
"homepage": "https://blam-network.github.io/blf/",
|
|
70
91
|
"keywords": [
|
|
71
92
|
"blf",
|
|
72
93
|
"halo",
|
|
@@ -91,6 +112,7 @@
|
|
|
91
112
|
"typescript": "^5",
|
|
92
113
|
"ultracite": "7.7.0",
|
|
93
114
|
"unplugin-swc": "^1.5.9",
|
|
115
|
+
"vitepress": "^1.6.4",
|
|
94
116
|
"vitest": "^3.2.4"
|
|
95
117
|
}
|
|
96
118
|
}
|