@blamnetwork/blf 1.0.0-beta.1 → 1.0.0-beta.4
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 +1 -1
- package/dist/automapper/create_map.d.ts +5 -0
- package/dist/automapper/create_map.d.ts.map +1 -0
- package/dist/automapper/create_map.js +6 -0
- package/dist/automapper/create_mapper.d.ts +6 -0
- package/dist/automapper/create_mapper.d.ts.map +1 -0
- package/dist/automapper/create_mapper.js +9 -0
- package/dist/automapper/enum_by_name.d.ts +16 -0
- package/dist/automapper/enum_by_name.d.ts.map +1 -0
- package/dist/automapper/enum_by_name.js +50 -0
- package/dist/automapper/index.d.ts +7 -0
- package/dist/automapper/index.d.ts.map +1 -0
- package/dist/automapper/index.js +6 -0
- package/dist/automapper/stage3_metadata.d.ts +7 -0
- package/dist/automapper/stage3_metadata.d.ts.map +1 -0
- package/dist/automapper/stage3_metadata.js +38 -0
- package/dist/bitstream/enum.d.ts +5 -1
- package/dist/bitstream/enum.d.ts.map +1 -1
- package/dist/bitstream/enum.js +21 -1
- package/dist/bitstream/reader.d.ts.map +1 -1
- package/dist/bitstream/reader.js +3 -6
- package/dist/bitstream/writer.d.ts +2 -1
- package/dist/bitstream/writer.d.ts.map +1 -1
- package/dist/bitstream/writer.js +3 -2
- package/dist/blam/common/math/real_types.d.ts +19 -0
- package/dist/blam/common/math/real_types.d.ts.map +1 -0
- package/dist/blam/common/math/real_types.js +21 -0
- package/dist/blam/common/math/unit_vector_quantization.d.ts +6 -0
- package/dist/blam/common/math/unit_vector_quantization.d.ts.map +1 -0
- package/dist/blam/common/math/unit_vector_quantization.js +26 -0
- package/dist/blam/common/simulation/simulation_encoding.d.ts +7 -0
- package/dist/blam/common/simulation/simulation_encoding.d.ts.map +1 -0
- package/dist/blam/common/simulation/simulation_encoding.js +23 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.js +272 -112
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.js +113 -28
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.d.ts +7 -4
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.js +752 -279
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.js +485 -170
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.js +74 -14
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.d.ts +2 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.js +153 -87
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.js +435 -140
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.js +206 -144
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.js +93 -23
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.js +81 -16
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.js +70 -15
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.js +108 -33
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.js +113 -33
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts +130 -26
- 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 +3193 -1602
- 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 +418 -208
- 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 +744 -459
- 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 +218 -98
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.d.ts +5 -4
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.js +242 -107
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.js +177 -52
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.js +187 -72
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.js +134 -66
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.js +138 -63
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/math/real_math.d.ts +23 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/math/real_math.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/math/real_math.js +110 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/memory/bitstream_extensions.d.ts +5 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/memory/bitstream_extensions.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/memory/bitstream_extensions.js +39 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.d.ts +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.d.ts.map +1 -1
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.js +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/scenario_map_variant.d.ts +104 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/scenario_map_variant.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/scenario_map_variant.js +681 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/simulation/simulation_encoding.d.ts +5 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/simulation/simulation_encoding.d.ts.map +1 -0
- package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/simulation/simulation_encoding.js +28 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_custom_variant.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_custom_variant.js +285 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_custom_variant_au1_settings.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_custom_variant_au1_settings.js +115 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_game_engine_default.d.ts +7 -4
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_default.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_default.js +765 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_survival_variant.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_survival_variant.js +504 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_traits.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_traits.js +76 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_game_variant.d.ts +2 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_variant.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_variant.js +175 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_player_traits.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_player_traits.js +437 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_string_table.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_string_table.js +252 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/game_engine_enums.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/game_engine_enums.js +130 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/index.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_megalo_game_statistic.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_megalo_game_statistic.js +83 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/c_megalogamengine_map_permissions.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +73 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_object_filter.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_object_filter.js +114 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_trigger.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_trigger.js +139 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/index.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_actions.d.ts +187 -26
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_actions.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_actions.js +3636 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_conditions.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_conditions.js +436 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_object.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_player.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_team.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_hud_widgets.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_references.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_references.js +787 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_text.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_text.js +239 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/s_custom_game_engine_definition.d.ts +5 -4
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_custom_game_engine_definition.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_custom_game_engine_definition.js +251 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +179 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_user_defined_option.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_user_defined_option.js +197 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_variable_metadata.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_variable_metadata.js +153 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_variant_variable.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_variant_variable.js +150 -0
- package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/index.d.ts.map +1 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/index.d.ts +3 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/index.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/index.js +2 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/saved_game_files.d.ts +2 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/saved_game_files.d.ts.map +1 -0
- package/dist/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/saved_game_files.js +1 -0
- package/dist/blf_chunk.d.ts +2 -2
- package/dist/blf_chunk.d.ts.map +1 -1
- package/dist/blf_chunk.js +20 -15
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.d.ts +3 -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 +3 -2
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.d.ts +1 -1
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.d.ts.map +1 -1
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.js +7 -7
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_map_variant.d.ts +19 -0
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_map_variant.d.ts.map +1 -0
- package/dist/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_map_variant.js +106 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_16_1352/index.d.ts +6 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_16_1352/index.d.ts.map +1 -0
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_16_1352/index.js +5 -0
- package/dist/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_game_variant.d.ts +1 -1
- package/dist/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_game_variant.d.ts.map +1 -1
- package/dist/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_game_variant.js +1 -1
- package/dist/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_packed_game_variant.d.ts +1 -1
- package/dist/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_packed_game_variant.d.ts.map +1 -1
- package/dist/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_packed_game_variant.js +1 -1
- 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/automap.d.ts +9 -0
- package/dist/helpers/automap.d.ts.map +1 -0
- package/dist/helpers/automap.js +34 -0
- package/dist/helpers/convert_reach_gametype.d.ts +12 -11
- package/dist/helpers/convert_reach_gametype.d.ts.map +1 -1
- package/dist/helpers/convert_reach_gametype.js +403 -109
- package/dist/helpers/game_variant_json.d.ts +19 -0
- package/dist/helpers/game_variant_json.d.ts.map +1 -0
- package/dist/helpers/game_variant_json.js +121 -0
- package/dist/helpers/index.d.ts +1 -1
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +1 -1
- package/dist/helpers/reach_gametype_automap.d.ts +10 -0
- package/dist/helpers/reach_gametype_automap.d.ts.map +1 -0
- package/dist/helpers/reach_gametype_automap.js +45 -0
- package/dist/helpers/reach_gametype_automapper.d.ts +5 -0
- package/dist/helpers/reach_gametype_automapper.d.ts.map +1 -0
- package/dist/helpers/reach_gametype_automapper.js +9 -0
- package/dist/helpers/reach_gametype_conversion_error.d.ts +11 -0
- package/dist/helpers/reach_gametype_conversion_error.d.ts.map +1 -0
- package/dist/helpers/reach_gametype_conversion_error.js +11 -0
- package/dist/types/static_array.d.ts +6 -0
- package/dist/types/static_array.d.ts.map +1 -0
- package/dist/types/static_array.js +3 -0
- package/dist/versions/haloreach/v12065_11_08_24_1738_tu1actual.d.ts +1 -0
- package/dist/versions/haloreach/v12065_11_08_24_1738_tu1actual.d.ts.map +1 -1
- package/dist/versions/haloreach/v12065_11_08_24_1738_tu1actual.js +1 -0
- package/dist/versions/haloreach_mcc/{v_untracked_25_08_19_1352.js → v_untracked_25_08_16_1352.d.ts} +5 -3
- package/dist/versions/haloreach_mcc/{v_untracked_25_08_19_1352.d.ts.map → v_untracked_25_08_16_1352.d.ts.map} +1 -1
- package/dist/versions/haloreach_mcc/{v_untracked_25_08_19_1352.d.ts → v_untracked_25_08_16_1352.js} +4 -4
- package/dist/versions/mcc/v2025_08_16_178512_1_release.d.ts +4 -0
- package/dist/versions/mcc/v2025_08_16_178512_1_release.d.ts.map +1 -0
- package/dist/versions/mcc/v2025_08_16_178512_1_release.js +3 -0
- package/dist-cjs/automapper/create_map.js +9 -0
- package/dist-cjs/automapper/create_mapper.js +12 -0
- package/dist-cjs/automapper/enum_by_name.js +55 -0
- package/dist-cjs/automapper/index.js +20 -0
- package/dist-cjs/automapper/stage3_metadata.js +43 -0
- package/dist-cjs/bitstream/enum.js +25 -2
- package/dist-cjs/bitstream/reader.js +2 -5
- package/dist-cjs/bitstream/writer.js +3 -2
- package/dist-cjs/blam/common/math/real_types.js +27 -0
- package/dist-cjs/blam/common/math/unit_vector_quantization.js +29 -0
- package/dist-cjs/blam/common/simulation/simulation_encoding.js +26 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant.js +271 -112
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_custom_variant_au1_settings.js +114 -30
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_default.js +743 -280
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.js +480 -170
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_traits.js +74 -15
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant.js +152 -87
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_player_traits.js +431 -142
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_string_table.js +205 -145
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.js +92 -23
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalo_game_statistic.js +82 -18
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_megalogamengine_map_permissions.js +70 -16
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_object_filter.js +108 -34
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/c_trigger.js +112 -33
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +3150 -1607
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +413 -208
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +735 -459
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +216 -99
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_custom_game_engine_definition.js +240 -106
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_game_engine_player_rating_parameters.js +178 -54
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_user_defined_option.js +186 -73
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variable_metadata.js +135 -68
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/s_variant_variable.js +137 -63
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/math/real_math.js +116 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/memory/bitstream_extensions.js +43 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/index.js +1 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/saved_games/scenario_map_variant.js +687 -0
- package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/simulation/simulation_encoding.js +32 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_custom_variant.js +288 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_custom_variant_au1_settings.js +118 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_default.js +768 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_survival_variant.js +507 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_engine_traits.js +79 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_variant.js +178 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_player_traits.js +440 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_string_table.js +255 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/game_engine_enums.js +133 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_megalo_game_statistic.js +86 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +76 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_object_filter.js +117 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/c_trigger.js +142 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_actions.js +3640 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_conditions.js +439 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_references.js +793 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_text.js +242 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_custom_game_engine_definition.js +254 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +182 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_user_defined_option.js +200 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_variable_metadata.js +160 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/s_variant_variable.js +153 -0
- package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/saved_games/index.js +1 -0
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_16_1352/saved_games/saved_game_files.js +17 -0
- package/dist-cjs/blf_chunk.js +20 -15
- package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/index.js +19 -13
- package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_content_header.js +7 -7
- package/dist-cjs/chunks/haloreach/v12065_11_08_24_1738_tu1actual/s_blf_chunk_map_variant.js +109 -0
- package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_16_1352/index.js +26 -0
- package/dist-cjs/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_game_variant.js +1 -1
- package/dist-cjs/chunks/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/s_blf_chunk_packed_game_variant.js +1 -1
- package/dist-cjs/chunks/mcc/s_blf_chunk_fileshare_metadata.js +110 -0
- package/dist-cjs/helpers/automap.js +40 -0
- package/dist-cjs/helpers/convert_reach_gametype.js +407 -111
- package/dist-cjs/helpers/game_variant_json.js +127 -0
- package/dist-cjs/helpers/index.js +2 -1
- package/dist-cjs/helpers/reach_gametype_automap.js +81 -0
- package/dist-cjs/helpers/reach_gametype_automapper.js +13 -0
- package/dist-cjs/helpers/reach_gametype_conversion_error.js +14 -0
- package/dist-cjs/types/static_array.js +6 -0
- package/dist-cjs/versions/haloreach/v12065_11_08_24_1738_tu1actual.js +1 -0
- package/dist-cjs/versions/haloreach_mcc/{v_untracked_25_08_19_1352.js → v_untracked_25_08_16_1352.js} +4 -3
- package/dist-cjs/versions/mcc/v2025_08_16_178512_1_release.js +20 -0
- package/package.json +14 -3
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.js +0 -125
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.js +0 -30
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.js +0 -292
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.js +0 -184
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.js +0 -16
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.js +0 -109
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.js +0 -142
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.js +0 -190
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.js +0 -60
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.js +0 -18
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +0 -18
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.js +0 -39
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.js +0 -59
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.js +0 -1696
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.js +0 -226
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.js +0 -502
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.js +0 -119
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.js +0 -116
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +0 -54
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.js +0 -82
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.js +0 -85
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.js +0 -75
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.d.ts +0 -2
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.js +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.d.ts +0 -66
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.d.ts.map +0 -1
- package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.js +0 -586
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts +0 -5
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts.map +0 -1
- package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.js +0 -4
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.js +0 -129
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.js +0 -34
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.js +0 -305
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.js +0 -192
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.js +0 -20
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.js +0 -113
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.js +0 -151
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.js +0 -195
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.js +0 -64
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.js +0 -22
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +0 -22
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.js +0 -43
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.js +0 -63
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.js +0 -1748
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.js +0 -234
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.js +0 -517
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.js +0 -125
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.js +0 -120
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +0 -58
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.js +0 -87
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.js +0 -93
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.js +0 -79
- package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.js +0 -591
- package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.js +0 -19
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_game_engine_custom_variant.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_game_engine_custom_variant_au1_settings.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_game_engine_survival_variant.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_game_engine_traits.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_player_traits.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/c_string_table.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/game_engine_enums.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/index.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/index.js +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/c_megalo_game_statistic.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/c_megalogamengine_map_permissions.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/c_object_filter.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/c_trigger.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/index.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/index.js +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_conditions.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_object.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_object.js +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_player.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_player.js +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_team.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_team.js +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_hud_widgets.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_hud_widgets.js +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_references.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_text.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/s_user_defined_option.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/s_variable_metadata.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/s_variant_variable.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/index.d.ts +0 -0
- /package/dist/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/index.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/index.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/index.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_object.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_player.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_explicit_team.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/game/megalogamengine/megalogamengine_hud_widgets.js +0 -0
- /package/dist-cjs/blam/haloreach_mcc/{v_untracked_25_08_19_1352 → v_untracked_25_08_16_1352}/index.js +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Stage-3 `@AutoMap` for Reach gametype classes.
|
|
4
|
+
* Compatible with `@craftycodie/cstruct` field decorators in the same project.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AUTOMAP_PROPERTIES_METADATA_KEY = void 0;
|
|
8
|
+
exports.AutoMap = AutoMap;
|
|
9
|
+
exports.stage3AutoMapMetadata = stage3AutoMapMetadata;
|
|
10
|
+
const classes_1 = require("@automapper/classes");
|
|
11
|
+
var classes_2 = require("@automapper/classes");
|
|
12
|
+
Object.defineProperty(exports, "AUTOMAP_PROPERTIES_METADATA_KEY", { enumerable: true, get: function () { return classes_2.AUTOMAP_PROPERTIES_METADATA_KEY; } });
|
|
13
|
+
function resolveOptions(typeFnOrOptions) {
|
|
14
|
+
if (typeFnOrOptions === undefined) {
|
|
15
|
+
throw new Error("@AutoMap requires an explicit type, e.g. @AutoMap(() => MyType)");
|
|
16
|
+
}
|
|
17
|
+
if (typeof typeFnOrOptions === "function") {
|
|
18
|
+
return {
|
|
19
|
+
type: typeFnOrOptions,
|
|
20
|
+
depth: 1,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return { depth: 1, ...typeFnOrOptions };
|
|
24
|
+
}
|
|
25
|
+
function AutoMap(typeFnOrOptions) {
|
|
26
|
+
const options = resolveOptions(typeFnOrOptions);
|
|
27
|
+
return (_value, context) => {
|
|
28
|
+
if (context.kind !== "field") {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const metadata = context.metadata;
|
|
32
|
+
const list = metadata[classes_1.AUTOMAP_PROPERTIES_METADATA_KEY] ?? [];
|
|
33
|
+
list.push([String(context.name), options]);
|
|
34
|
+
metadata[classes_1.AUTOMAP_PROPERTIES_METADATA_KEY] = list;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function stage3AutoMapMetadata(ctor) {
|
|
38
|
+
const classMetadata = ctor[Symbol.metadata];
|
|
39
|
+
return classMetadata?.[classes_1.AUTOMAP_PROPERTIES_METADATA_KEY] ?? [];
|
|
40
|
+
}
|
|
@@ -1,50 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Convert game variants between Halo Reach TU1 and MCC
|
|
3
|
+
* Convert game variants between Halo: Reach TU1 (Xbox 360) and MCC.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Cross-build conversion uses AutoMapper (`@automapper/core` + `@automapper/classes`)
|
|
6
|
+
* with profiles registered from the source instance graph, then applies build-specific
|
|
7
|
+
* remaps in place on the mapped target instances.
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
9
|
+
* TU1 → MCC is always possible for supported variant kinds (custom / survival).
|
|
10
|
+
* MCC → TU1 rejects MCC-only megalo features and fails when temporary object,
|
|
11
|
+
* player, or team references cannot be mapped onto free global slots.
|
|
13
12
|
*/
|
|
14
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.e_reach_gametype_conversion_error = void 0;
|
|
15
15
|
exports.convert_reach_gametype = convert_reach_gametype;
|
|
16
16
|
const c_game_variant_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_variant");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
17
|
+
const megalogamengine_explicit_object_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object");
|
|
18
|
+
const megalogamengine_explicit_player_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player");
|
|
19
|
+
const megalogamengine_explicit_team_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team");
|
|
20
|
+
const megalogamengine_references_1 = require("../blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references");
|
|
21
|
+
const c_game_variant_2 = require("../blam/haloreach_mcc/v_untracked_25_08_16_1352/game/c_game_variant");
|
|
22
|
+
const megalogamengine_actions_1 = require("../blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_actions");
|
|
23
|
+
const megalogamengine_explicit_object_2 = require("../blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_explicit_object");
|
|
24
|
+
const megalogamengine_explicit_player_2 = require("../blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_explicit_player");
|
|
25
|
+
const megalogamengine_explicit_team_2 = require("../blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_explicit_team");
|
|
26
|
+
const megalogamengine_references_2 = require("../blam/haloreach_mcc/v_untracked_25_08_16_1352/game/megalogamengine/megalogamengine_references");
|
|
23
27
|
const error_1 = require("../error");
|
|
24
|
-
|
|
28
|
+
const reach_gametype_automap_1 = require("./reach_gametype_automap");
|
|
29
|
+
const reach_gametype_automapper_1 = require("./reach_gametype_automapper");
|
|
30
|
+
const reach_gametype_conversion_error_1 = require("./reach_gametype_conversion_error");
|
|
31
|
+
var reach_gametype_conversion_error_2 = require("./reach_gametype_conversion_error");
|
|
32
|
+
Object.defineProperty(exports, "e_reach_gametype_conversion_error", { enumerable: true, get: function () { return reach_gametype_conversion_error_2.e_reach_gametype_conversion_error; } });
|
|
25
33
|
const MCC_ONLY_MATH_OPS = [
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
megalogamengine_actions_1.e_math_operation.shift_left_with,
|
|
35
|
+
megalogamengine_actions_1.e_math_operation.shift_right_with,
|
|
36
|
+
];
|
|
37
|
+
const MCC_ONLY_ACTION_TYPES = [
|
|
38
|
+
megalogamengine_actions_1.e_action_type.begin,
|
|
39
|
+
megalogamengine_actions_1.e_action_type.hs_function_call,
|
|
40
|
+
megalogamengine_actions_1.e_action_type.get_button_time,
|
|
41
|
+
megalogamengine_actions_1.e_action_type.team_set_vehicle_spawning,
|
|
42
|
+
megalogamengine_actions_1.e_action_type.player_set_vehicle_spawning,
|
|
43
|
+
megalogamengine_actions_1.e_action_type.set_player_respawn_vehicle,
|
|
44
|
+
megalogamengine_actions_1.e_action_type.set_team_respawn_vehicle,
|
|
45
|
+
megalogamengine_actions_1.e_action_type.hide_object,
|
|
28
46
|
];
|
|
29
|
-
/** TU1 survival `m_campaign_difficulty_level` when converting from MCC. */
|
|
30
47
|
const TU1_SURVIVAL_CAMPAIGN_DIFFICULTY = 1;
|
|
31
|
-
/** MCC survival `m_encoding_version` when converting from TU1. */
|
|
32
48
|
const MCC_SURVIVAL_ENCODING_VERSION = 2;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
// ---------------------------------------------------------------------------
|
|
49
|
+
const HR_GVAR_PREFIX = "$hr_gvar_";
|
|
50
|
+
const MAX_OBJECT_GLOBALS = 16;
|
|
51
|
+
const MAX_PLAYER_GLOBALS = 8;
|
|
52
|
+
const MAX_TEAM_GLOBALS = 8;
|
|
48
53
|
function visit_object_tree(root, fn) {
|
|
49
54
|
if (root === null || typeof root !== "object") {
|
|
50
55
|
return;
|
|
@@ -61,133 +66,424 @@ function visit_object_tree(root, fn) {
|
|
|
61
66
|
visit_object_tree(value, fn);
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
|
-
function
|
|
69
|
+
function remap_temporary_explicit_refs(root, maps) {
|
|
65
70
|
visit_object_tree(root, (obj) => {
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
const objectType = obj.m_explicit_object_type;
|
|
72
|
+
if (typeof objectType === "number" &&
|
|
73
|
+
objectType >= megalogamengine_explicit_object_2.e_explicit_object_type.temporary_0 &&
|
|
74
|
+
objectType <= megalogamengine_explicit_object_2.e_explicit_object_type.temporary_7) {
|
|
75
|
+
const temporaryIndex = objectType - megalogamengine_explicit_object_2.e_explicit_object_type.temporary_0;
|
|
76
|
+
const globalIndex = maps.object.get(temporaryIndex);
|
|
77
|
+
if (globalIndex !== undefined) {
|
|
78
|
+
obj.m_explicit_object_type =
|
|
79
|
+
megalogamengine_explicit_object_1.e_explicit_object_type.global_0 + globalIndex;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const playerType = obj.m_explicit_player_type;
|
|
83
|
+
if (typeof playerType === "number" &&
|
|
84
|
+
playerType >= megalogamengine_explicit_player_2.e_explicit_player_type.temporary_0 &&
|
|
85
|
+
playerType <= megalogamengine_explicit_player_2.e_explicit_player_type.temporary_2) {
|
|
86
|
+
const temporaryIndex = playerType - megalogamengine_explicit_player_2.e_explicit_player_type.temporary_0;
|
|
87
|
+
const globalIndex = maps.player.get(temporaryIndex);
|
|
88
|
+
if (globalIndex !== undefined) {
|
|
89
|
+
obj.m_explicit_player_type =
|
|
90
|
+
megalogamengine_explicit_player_1.e_explicit_player_type.global_0 + globalIndex;
|
|
91
|
+
}
|
|
68
92
|
}
|
|
69
|
-
|
|
70
|
-
|
|
93
|
+
const teamType = obj.m_explicit_team_type;
|
|
94
|
+
if (typeof teamType === "number" &&
|
|
95
|
+
teamType >= megalogamengine_explicit_team_2.e_explicit_team_type.temporary_0 &&
|
|
96
|
+
teamType <= megalogamengine_explicit_team_2.e_explicit_team_type.temporary_5) {
|
|
97
|
+
const temporaryIndex = teamType - megalogamengine_explicit_team_2.e_explicit_team_type.temporary_0;
|
|
98
|
+
const globalIndex = maps.team.get(temporaryIndex);
|
|
99
|
+
if (globalIndex !== undefined) {
|
|
100
|
+
obj.m_explicit_team_type =
|
|
101
|
+
megalogamengine_explicit_team_1.e_explicit_team_type.global_0 + globalIndex;
|
|
102
|
+
}
|
|
71
103
|
}
|
|
72
104
|
});
|
|
73
105
|
}
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
106
|
+
function extend_global_metadata(metadata, maps) {
|
|
107
|
+
const maxObjectGlobal = Math.max(0, ...maps.object.values());
|
|
108
|
+
while (metadata.m_object_variables.length <= maxObjectGlobal) {
|
|
109
|
+
metadata.m_object_variables.push(0);
|
|
110
|
+
}
|
|
111
|
+
const maxPlayerGlobal = Math.max(0, ...maps.player.values());
|
|
112
|
+
while (metadata.m_player_variables.length <= maxPlayerGlobal) {
|
|
113
|
+
metadata.m_player_variables.push(0);
|
|
114
|
+
}
|
|
115
|
+
const maxTeamGlobal = Math.max(0, ...maps.team.values());
|
|
116
|
+
while (metadata.m_team_variables.length <= maxTeamGlobal) {
|
|
117
|
+
metadata.m_team_variables.push([0, 0]);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function apply_survival_mcc_to_tu1(survival) {
|
|
121
|
+
if (survival === undefined) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
survival.m_campaign_difficulty_level = TU1_SURVIVAL_CAMPAIGN_DIFFICULTY;
|
|
125
|
+
delete survival.m_encoding_version;
|
|
126
|
+
delete survival.m_additional_flags;
|
|
127
|
+
}
|
|
128
|
+
function apply_survival_tu1_to_mcc(survival) {
|
|
129
|
+
if (survival === undefined) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
survival.m_encoding_version = MCC_SURVIVAL_ENCODING_VERSION;
|
|
133
|
+
survival.m_additional_flags = 0;
|
|
134
|
+
delete survival.m_campaign_difficulty_level;
|
|
135
|
+
}
|
|
136
|
+
function first_localized_string(table) {
|
|
137
|
+
const value = table?.strings[0]?.[0];
|
|
138
|
+
if (value === null || value === undefined || value.length === 0) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
function resolve_hr_gvar_name(value, localized_name) {
|
|
144
|
+
if (value === undefined || !value.startsWith(HR_GVAR_PREFIX)) {
|
|
145
|
+
return value ?? "";
|
|
146
|
+
}
|
|
147
|
+
const localized = first_localized_string(localized_name);
|
|
148
|
+
if (localized !== undefined) {
|
|
149
|
+
return localized;
|
|
150
|
+
}
|
|
151
|
+
return value.slice(HR_GVAR_PREFIX.length).replaceAll("_", " ");
|
|
152
|
+
}
|
|
153
|
+
function resolve_hr_gvar_description(value, localized_description) {
|
|
154
|
+
if (value === undefined || !value.startsWith(HR_GVAR_PREFIX)) {
|
|
155
|
+
return value ?? "";
|
|
156
|
+
}
|
|
157
|
+
return first_localized_string(localized_description) ?? "";
|
|
158
|
+
}
|
|
159
|
+
function apply_mcc_to_tu1_name_description(from, to) {
|
|
160
|
+
const mccCustom = from.m_custom_variant;
|
|
161
|
+
const tu1Custom = to.m_custom_variant;
|
|
162
|
+
if (mccCustom === undefined || tu1Custom === undefined) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const metadata = tu1Custom.m_base_variant.m_metadata;
|
|
166
|
+
metadata.name = resolve_hr_gvar_name(mccCustom.m_base_variant.m_metadata.name, mccCustom.m_localized_name);
|
|
167
|
+
metadata.description = resolve_hr_gvar_description(mccCustom.m_base_variant.m_metadata.description, mccCustom.m_localized_description);
|
|
168
|
+
}
|
|
169
|
+
function object_global_index(value) {
|
|
170
|
+
if (value >= megalogamengine_explicit_object_1.e_explicit_object_type.global_0 &&
|
|
171
|
+
value <= megalogamengine_explicit_object_1.e_explicit_object_type.global_15) {
|
|
172
|
+
return value - megalogamengine_explicit_object_1.e_explicit_object_type.global_0;
|
|
173
|
+
}
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
function object_temporary_index(value) {
|
|
177
|
+
if (value >= megalogamengine_explicit_object_2.e_explicit_object_type.temporary_0 &&
|
|
178
|
+
value <= megalogamengine_explicit_object_2.e_explicit_object_type.temporary_7) {
|
|
179
|
+
return value - megalogamengine_explicit_object_2.e_explicit_object_type.temporary_0;
|
|
180
|
+
}
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
function player_global_index(value) {
|
|
184
|
+
if (value >= megalogamengine_explicit_player_1.e_explicit_player_type.global_0 &&
|
|
185
|
+
value <= megalogamengine_explicit_player_1.e_explicit_player_type.global_7) {
|
|
186
|
+
return value - megalogamengine_explicit_player_1.e_explicit_player_type.global_0;
|
|
187
|
+
}
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
function player_temporary_index(value) {
|
|
191
|
+
if (value >= megalogamengine_explicit_player_2.e_explicit_player_type.temporary_0 &&
|
|
192
|
+
value <= megalogamengine_explicit_player_2.e_explicit_player_type.temporary_2) {
|
|
193
|
+
return value - megalogamengine_explicit_player_2.e_explicit_player_type.temporary_0;
|
|
194
|
+
}
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
function team_global_index(value) {
|
|
198
|
+
if (value >= megalogamengine_explicit_team_1.e_explicit_team_type.global_0 &&
|
|
199
|
+
value <= megalogamengine_explicit_team_1.e_explicit_team_type.global_7) {
|
|
200
|
+
return value - megalogamengine_explicit_team_1.e_explicit_team_type.global_0;
|
|
201
|
+
}
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
function team_temporary_index(value) {
|
|
205
|
+
if (value >= megalogamengine_explicit_team_2.e_explicit_team_type.temporary_0 &&
|
|
206
|
+
value <= megalogamengine_explicit_team_2.e_explicit_team_type.temporary_5) {
|
|
207
|
+
return value - megalogamengine_explicit_team_2.e_explicit_team_type.temporary_0;
|
|
208
|
+
}
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
function reserve_metadata_slots(usage, metadata) {
|
|
212
|
+
for (let i = 0; i < metadata.m_object_variables.length; i++) {
|
|
213
|
+
usage.object.add(i);
|
|
214
|
+
}
|
|
215
|
+
for (let i = 0; i < metadata.m_player_variables.length; i++) {
|
|
216
|
+
usage.player.add(i);
|
|
217
|
+
}
|
|
218
|
+
for (let i = 0; i < metadata.m_team_variables.length; i++) {
|
|
219
|
+
usage.team.add(i);
|
|
220
|
+
}
|
|
221
|
+
for (let i = 0; i < metadata.m_numeric_variables.length; i++) {
|
|
222
|
+
usage.numeric.add(i);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
function collect_slot_usage_from_object(obj, globals, temporaries) {
|
|
226
|
+
const objectType = obj.m_explicit_object_type;
|
|
227
|
+
if (typeof objectType === "number") {
|
|
228
|
+
const globalIndex = object_global_index(objectType);
|
|
229
|
+
if (globalIndex !== undefined) {
|
|
230
|
+
globals.object.add(globalIndex);
|
|
78
231
|
}
|
|
79
|
-
|
|
80
|
-
|
|
232
|
+
const temporaryIndex = object_temporary_index(objectType);
|
|
233
|
+
if (temporaryIndex !== undefined) {
|
|
234
|
+
temporaries.object.add(temporaryIndex);
|
|
81
235
|
}
|
|
82
|
-
}
|
|
236
|
+
}
|
|
237
|
+
const playerType = obj.m_explicit_player_type;
|
|
238
|
+
if (typeof playerType === "number") {
|
|
239
|
+
const globalIndex = player_global_index(playerType);
|
|
240
|
+
if (globalIndex !== undefined) {
|
|
241
|
+
globals.player.add(globalIndex);
|
|
242
|
+
}
|
|
243
|
+
const temporaryIndex = player_temporary_index(playerType);
|
|
244
|
+
if (temporaryIndex !== undefined) {
|
|
245
|
+
temporaries.player.add(temporaryIndex);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const teamType = obj.m_explicit_team_type;
|
|
249
|
+
if (typeof teamType === "number") {
|
|
250
|
+
const globalIndex = team_global_index(teamType);
|
|
251
|
+
if (globalIndex !== undefined) {
|
|
252
|
+
globals.team.add(globalIndex);
|
|
253
|
+
}
|
|
254
|
+
const temporaryIndex = team_temporary_index(teamType);
|
|
255
|
+
if (temporaryIndex !== undefined) {
|
|
256
|
+
temporaries.team.add(temporaryIndex);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (obj.m_type === 4 && typeof obj.m_variable_index === "number") {
|
|
260
|
+
globals.numeric.add(obj.m_variable_index);
|
|
261
|
+
}
|
|
83
262
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
263
|
+
function collect_slot_usage(root) {
|
|
264
|
+
const globals = {
|
|
265
|
+
object: new Set(),
|
|
266
|
+
player: new Set(),
|
|
267
|
+
team: new Set(),
|
|
268
|
+
numeric: new Set(),
|
|
269
|
+
};
|
|
270
|
+
const temporaries = {
|
|
271
|
+
object: new Set(),
|
|
272
|
+
player: new Set(),
|
|
273
|
+
team: new Set(),
|
|
274
|
+
};
|
|
275
|
+
visit_object_tree(root, (obj) => collect_slot_usage_from_object(obj, globals, temporaries));
|
|
276
|
+
return { globals, temporaries };
|
|
277
|
+
}
|
|
278
|
+
function allocate_global_slot(used, max) {
|
|
279
|
+
for (let index = 0; index < max; index++) {
|
|
280
|
+
if (!used.has(index)) {
|
|
281
|
+
used.add(index);
|
|
282
|
+
return index;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
function build_temporary_to_global_maps(globals, temporaries) {
|
|
288
|
+
const maps = {
|
|
289
|
+
object: new Map(),
|
|
290
|
+
player: new Map(),
|
|
291
|
+
team: new Map(),
|
|
292
|
+
};
|
|
293
|
+
for (const temporaryIndex of [...temporaries.object].sort((a, b) => a - b)) {
|
|
294
|
+
const globalIndex = allocate_global_slot(globals.object, MAX_OBJECT_GLOBALS);
|
|
295
|
+
if (globalIndex === undefined) {
|
|
91
296
|
return;
|
|
92
297
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
298
|
+
maps.object.set(temporaryIndex, globalIndex);
|
|
299
|
+
}
|
|
300
|
+
for (const temporaryIndex of [...temporaries.player].sort((a, b) => a - b)) {
|
|
301
|
+
const globalIndex = allocate_global_slot(globals.player, MAX_PLAYER_GLOBALS);
|
|
302
|
+
if (globalIndex === undefined) {
|
|
98
303
|
return;
|
|
99
304
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
305
|
+
maps.player.set(temporaryIndex, globalIndex);
|
|
306
|
+
}
|
|
307
|
+
for (const temporaryIndex of [...temporaries.team].sort((a, b) => a - b)) {
|
|
308
|
+
const globalIndex = allocate_global_slot(globals.team, MAX_TEAM_GLOBALS);
|
|
309
|
+
if (globalIndex === undefined) {
|
|
105
310
|
return;
|
|
106
311
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
312
|
+
maps.team.set(temporaryIndex, globalIndex);
|
|
313
|
+
}
|
|
314
|
+
return maps;
|
|
315
|
+
}
|
|
316
|
+
function get_custom_engine_tu1(variant) {
|
|
317
|
+
return variant.m_custom_variant?.m_game_engine;
|
|
318
|
+
}
|
|
319
|
+
function copy_variable_metadata_mcc_to_tu1(from, to) {
|
|
320
|
+
to.m_numeric_variables = from.m_numeric_variables.map(([ref, state]) => [
|
|
321
|
+
reach_gametype_automap_1.mccToTu1Mapper.map(ref, megalogamengine_references_2.c_custom_variable_reference, megalogamengine_references_1.c_custom_variable_reference),
|
|
322
|
+
state,
|
|
323
|
+
]);
|
|
324
|
+
to.m_timer_variables = from.m_timer_variables.map((ref) => reach_gametype_automap_1.mccToTu1Mapper.map(ref, megalogamengine_references_2.c_custom_variable_reference, megalogamengine_references_1.c_custom_variable_reference));
|
|
325
|
+
to.m_team_variables = from.m_team_variables.map(([value, state]) => [
|
|
326
|
+
value,
|
|
327
|
+
state,
|
|
328
|
+
]);
|
|
329
|
+
to.m_player_variables = [...from.m_player_variables];
|
|
330
|
+
to.m_object_variables = [...from.m_object_variables];
|
|
331
|
+
}
|
|
332
|
+
function copy_variable_metadata_tu1_to_mcc(from, to) {
|
|
333
|
+
to.m_numeric_variables = from.m_numeric_variables.map(([ref, state]) => [
|
|
334
|
+
reach_gametype_automap_1.tu1ToMccMapper.map(ref, megalogamengine_references_1.c_custom_variable_reference, megalogamengine_references_2.c_custom_variable_reference),
|
|
335
|
+
state,
|
|
336
|
+
]);
|
|
337
|
+
to.m_timer_variables = from.m_timer_variables.map((ref) => reach_gametype_automap_1.tu1ToMccMapper.map(ref, megalogamengine_references_1.c_custom_variable_reference, megalogamengine_references_2.c_custom_variable_reference));
|
|
338
|
+
to.m_team_variables = from.m_team_variables.map(([value, state]) => [
|
|
339
|
+
value,
|
|
340
|
+
state,
|
|
341
|
+
]);
|
|
342
|
+
to.m_player_variables = [...from.m_player_variables];
|
|
343
|
+
to.m_object_variables = [...from.m_object_variables];
|
|
344
|
+
}
|
|
345
|
+
function copy_engine_variable_metadata_mcc_to_tu1(from, to) {
|
|
346
|
+
copy_variable_metadata_mcc_to_tu1(from.m_global_variable_metadata, to.m_global_variable_metadata);
|
|
347
|
+
copy_variable_metadata_mcc_to_tu1(from.m_player_variable_metadata, to.m_player_variable_metadata);
|
|
348
|
+
copy_variable_metadata_mcc_to_tu1(from.m_object_variable_metadata, to.m_object_variable_metadata);
|
|
349
|
+
copy_variable_metadata_mcc_to_tu1(from.m_team_variable_metadata, to.m_team_variable_metadata);
|
|
350
|
+
}
|
|
351
|
+
function copy_engine_variable_metadata_tu1_to_mcc(from, to) {
|
|
352
|
+
copy_variable_metadata_tu1_to_mcc(from.m_global_variable_metadata, to.m_global_variable_metadata);
|
|
353
|
+
copy_variable_metadata_tu1_to_mcc(from.m_player_variable_metadata, to.m_player_variable_metadata);
|
|
354
|
+
copy_variable_metadata_tu1_to_mcc(from.m_object_variable_metadata, to.m_object_variable_metadata);
|
|
355
|
+
copy_variable_metadata_tu1_to_mcc(from.m_team_variable_metadata, to.m_team_variable_metadata);
|
|
356
|
+
}
|
|
357
|
+
function get_custom_engine(variant) {
|
|
358
|
+
return variant.m_custom_variant?.m_game_engine;
|
|
359
|
+
}
|
|
360
|
+
function apply_mcc_to_tu1_megalo_remapping(variant, maps) {
|
|
361
|
+
const engine = variant.m_custom_variant?.m_game_engine;
|
|
362
|
+
if (!engine) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
remap_temporary_explicit_refs(engine, maps);
|
|
366
|
+
extend_global_metadata(engine.m_global_variable_metadata, maps);
|
|
367
|
+
}
|
|
368
|
+
function variant_uses_mcc_only_math_ops(variant) {
|
|
369
|
+
let found = false;
|
|
370
|
+
visit_object_tree(variant, (obj) => {
|
|
371
|
+
if (found) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
const op = obj.m_operation ?? obj.m_math_operation;
|
|
375
|
+
if (typeof op === "number" && MCC_ONLY_MATH_OPS.includes(op)) {
|
|
111
376
|
found = true;
|
|
112
377
|
}
|
|
113
378
|
});
|
|
114
379
|
return found;
|
|
115
380
|
}
|
|
116
|
-
function
|
|
381
|
+
function variant_uses_mcc_only_action_types(variant) {
|
|
117
382
|
let found = false;
|
|
118
383
|
visit_object_tree(variant, (obj) => {
|
|
119
384
|
if (found) {
|
|
120
385
|
return;
|
|
121
386
|
}
|
|
122
|
-
const
|
|
123
|
-
if (typeof
|
|
387
|
+
const actionType = obj.m_type;
|
|
388
|
+
if (typeof actionType === "number" &&
|
|
389
|
+
MCC_ONLY_ACTION_TYPES.includes(actionType)) {
|
|
124
390
|
found = true;
|
|
125
391
|
}
|
|
126
392
|
});
|
|
127
393
|
return found;
|
|
128
394
|
}
|
|
129
|
-
|
|
130
|
-
|
|
395
|
+
function plan_temporary_relocation(variant) {
|
|
396
|
+
const engine = get_custom_engine(variant);
|
|
397
|
+
if (!engine) {
|
|
398
|
+
return { object: new Map(), player: new Map(), team: new Map() };
|
|
399
|
+
}
|
|
400
|
+
const { globals, temporaries } = collect_slot_usage(engine);
|
|
401
|
+
reserve_metadata_slots(globals, engine.m_global_variable_metadata);
|
|
402
|
+
if (temporaries.object.size === 0 &&
|
|
403
|
+
temporaries.player.size === 0 &&
|
|
404
|
+
temporaries.team.size === 0) {
|
|
405
|
+
return { object: new Map(), player: new Map(), team: new Map() };
|
|
406
|
+
}
|
|
407
|
+
return build_temporary_to_global_maps(globals, temporaries);
|
|
408
|
+
}
|
|
409
|
+
function check_mcc_game_variant_to_tu1(from) {
|
|
410
|
+
if (from.m_game_engine === c_game_variant_2.e_game_mode.sandbox) {
|
|
411
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.forge_variant;
|
|
412
|
+
}
|
|
413
|
+
if (from.m_game_engine === c_game_variant_2.e_game_mode.campaign) {
|
|
414
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.campaign_variant;
|
|
415
|
+
}
|
|
131
416
|
if (from.m_game_engine === c_game_variant_2.e_game_mode.survival &&
|
|
132
417
|
from.m_survival_variant !== undefined &&
|
|
133
418
|
from.m_survival_variant.m_additional_flags !== 0) {
|
|
134
|
-
return
|
|
419
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.mcc_survival_additional_flags;
|
|
135
420
|
}
|
|
136
|
-
if (
|
|
137
|
-
return
|
|
421
|
+
if (variant_uses_mcc_only_action_types(from)) {
|
|
422
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.mcc_exclusive_action;
|
|
138
423
|
}
|
|
139
424
|
if (variant_uses_mcc_only_math_ops(from)) {
|
|
140
|
-
return
|
|
425
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.mcc_exclusive_math_operator;
|
|
141
426
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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;
|
|
427
|
+
if (plan_temporary_relocation(from) === undefined) {
|
|
428
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.insufficient_global_slots;
|
|
429
|
+
}
|
|
430
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.ok;
|
|
151
431
|
}
|
|
152
|
-
function
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
432
|
+
function check_tu1_game_variant_to_mcc(from) {
|
|
433
|
+
if (from.m_game_engine === c_game_variant_1.e_game_mode.sandbox) {
|
|
434
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.forge_variant;
|
|
435
|
+
}
|
|
436
|
+
if (from.m_game_engine === c_game_variant_1.e_game_mode.campaign) {
|
|
437
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.campaign_variant;
|
|
438
|
+
}
|
|
439
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.ok;
|
|
156
440
|
}
|
|
157
|
-
// ---------------------------------------------------------------------------
|
|
158
|
-
// Conversion (cross-version only)
|
|
159
|
-
// ---------------------------------------------------------------------------
|
|
160
441
|
function convert_mcc_to_tu1(from, to) {
|
|
161
|
-
|
|
162
|
-
|
|
442
|
+
const error = check_mcc_game_variant_to_tu1(from);
|
|
443
|
+
if (error !== reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.ok) {
|
|
444
|
+
return error;
|
|
445
|
+
}
|
|
446
|
+
const maps = plan_temporary_relocation(from);
|
|
447
|
+
if (maps === undefined) {
|
|
448
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.insufficient_global_slots;
|
|
163
449
|
}
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
450
|
+
const converted = (0, reach_gametype_automapper_1.map_reach_gametype_mcc_to_tu1)(from);
|
|
451
|
+
const sourceEngine = get_custom_engine(from);
|
|
452
|
+
const targetEngine = converted.m_custom_variant?.m_game_engine;
|
|
453
|
+
if (sourceEngine !== undefined && targetEngine !== undefined) {
|
|
454
|
+
copy_engine_variable_metadata_mcc_to_tu1(sourceEngine, targetEngine);
|
|
168
455
|
}
|
|
169
|
-
|
|
170
|
-
|
|
456
|
+
apply_mcc_to_tu1_megalo_remapping(converted, maps);
|
|
457
|
+
apply_mcc_to_tu1_name_description(from, converted);
|
|
458
|
+
apply_survival_mcc_to_tu1(converted.m_survival_variant);
|
|
459
|
+
Object.assign(to, converted);
|
|
460
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.ok;
|
|
171
461
|
}
|
|
172
462
|
function convert_tu1_to_mcc(from, to) {
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
survival_json_tu1_to_mcc(data.m_survival_variant);
|
|
463
|
+
const error = check_tu1_game_variant_to_mcc(from);
|
|
464
|
+
if (error !== reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.ok) {
|
|
465
|
+
return error;
|
|
177
466
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
throw new error_1.BlfError("Forge game variants are not supported. Where did you even get this?");
|
|
467
|
+
const converted = (0, reach_gametype_automapper_1.map_reach_gametype_tu1_to_mcc)(from);
|
|
468
|
+
const sourceEngine = get_custom_engine_tu1(from);
|
|
469
|
+
const targetEngine = converted.m_custom_variant?.m_game_engine;
|
|
470
|
+
if (sourceEngine !== undefined && targetEngine !== undefined) {
|
|
471
|
+
copy_engine_variable_metadata_tu1_to_mcc(sourceEngine, targetEngine);
|
|
184
472
|
}
|
|
473
|
+
apply_survival_tu1_to_mcc(converted.m_survival_variant);
|
|
474
|
+
Object.assign(to, converted);
|
|
475
|
+
return reach_gametype_conversion_error_1.e_reach_gametype_conversion_error.ok;
|
|
476
|
+
}
|
|
477
|
+
function assert_cross_version(from, to) {
|
|
185
478
|
const from_is_mcc = from instanceof c_game_variant_2.c_game_variant;
|
|
186
479
|
const to_is_mcc = to instanceof c_game_variant_2.c_game_variant;
|
|
187
480
|
if (from_is_mcc === to_is_mcc) {
|
|
188
481
|
throw new error_1.BlfError("convert_reach_gametype only supports cross-version conversion between Reach TU1 and Reach MCC");
|
|
189
482
|
}
|
|
190
|
-
|
|
483
|
+
}
|
|
484
|
+
function convert_reach_gametype(from, to) {
|
|
485
|
+
assert_cross_version(from, to);
|
|
486
|
+
if (from instanceof c_game_variant_2.c_game_variant) {
|
|
191
487
|
return convert_mcc_to_tu1(from, to);
|
|
192
488
|
}
|
|
193
489
|
return convert_tu1_to_mcc(from, to);
|