@blamnetwork/blf 1.0.0-alpha.4 → 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.
Files changed (198) hide show
  1. package/README.md +17 -7
  2. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.d.ts +2 -1
  3. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.d.ts.map +1 -1
  4. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.js +4 -3
  5. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.d.ts +45 -0
  6. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.d.ts.map +1 -0
  7. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.js +60 -0
  8. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.d.ts +1 -0
  9. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.d.ts.map +1 -1
  10. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.js +1 -0
  11. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.d.ts +4 -0
  12. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.d.ts.map +1 -1
  13. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.js +4 -0
  14. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts +97 -14
  15. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.d.ts.map +1 -1
  16. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +159 -55
  17. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.d.ts +10 -1
  18. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.d.ts.map +1 -1
  19. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +13 -3
  20. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.d.ts +26 -0
  21. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.d.ts.map +1 -0
  22. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.js +26 -0
  23. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.d.ts +33 -0
  24. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.d.ts.map +1 -0
  25. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.js +33 -0
  26. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.d.ts +25 -0
  27. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.d.ts.map +1 -0
  28. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.js +25 -0
  29. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.d.ts +7 -0
  30. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.d.ts.map +1 -0
  31. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.js +7 -0
  32. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.d.ts +9 -3
  33. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.d.ts.map +1 -1
  34. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +15 -9
  35. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.d.ts +2 -1
  36. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.d.ts.map +1 -1
  37. package/dist/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +6 -5
  38. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.d.ts +37 -0
  39. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.d.ts.map +1 -0
  40. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.js +125 -0
  41. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.d.ts +14 -0
  42. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.d.ts.map +1 -0
  43. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.js +30 -0
  44. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.d.ts +114 -0
  45. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.d.ts.map +1 -0
  46. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.js +292 -0
  47. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.d.ts +74 -0
  48. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.d.ts.map +1 -0
  49. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.js +184 -0
  50. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.d.ts +10 -0
  51. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.d.ts.map +1 -0
  52. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.js +16 -0
  53. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.d.ts +28 -0
  54. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.d.ts.map +1 -0
  55. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.js +109 -0
  56. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.d.ts +56 -0
  57. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.d.ts.map +1 -0
  58. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.js +142 -0
  59. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.d.ts +27 -0
  60. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.d.ts.map +1 -0
  61. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.js +190 -0
  62. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.d.ts +45 -0
  63. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.d.ts.map +1 -0
  64. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.js +60 -0
  65. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.d.ts +11 -0
  66. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.d.ts.map +1 -0
  67. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.js +10 -0
  68. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.d.ts +10 -0
  69. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.d.ts.map +1 -0
  70. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.js +18 -0
  71. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.d.ts +8 -0
  72. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.d.ts.map +1 -0
  73. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +18 -0
  74. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.d.ts +13 -0
  75. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.d.ts.map +1 -0
  76. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.js +39 -0
  77. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.d.ts +34 -0
  78. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.d.ts.map +1 -0
  79. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.js +59 -0
  80. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.d.ts +18 -0
  81. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.d.ts.map +1 -0
  82. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.js +17 -0
  83. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.d.ts +478 -0
  84. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.d.ts.map +1 -0
  85. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.js +1696 -0
  86. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.d.ts +58 -0
  87. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.d.ts.map +1 -0
  88. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.js +226 -0
  89. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.d.ts +34 -0
  90. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.d.ts.map +1 -0
  91. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.js +34 -0
  92. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.d.ts +36 -0
  93. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.d.ts.map +1 -0
  94. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.js +36 -0
  95. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.d.ts +31 -0
  96. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.d.ts.map +1 -0
  97. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.js +31 -0
  98. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.d.ts +7 -0
  99. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.d.ts.map +1 -0
  100. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.js +7 -0
  101. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.d.ts +85 -0
  102. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.d.ts.map +1 -0
  103. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.js +502 -0
  104. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.d.ts +27 -0
  105. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.d.ts.map +1 -0
  106. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.js +119 -0
  107. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.d.ts +29 -0
  108. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.d.ts.map +1 -0
  109. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.js +116 -0
  110. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts +22 -0
  111. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.d.ts.map +1 -0
  112. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +54 -0
  113. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.d.ts +22 -0
  114. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.d.ts.map +1 -0
  115. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.js +82 -0
  116. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.d.ts +22 -0
  117. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.d.ts.map +1 -0
  118. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.js +85 -0
  119. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.d.ts +13 -0
  120. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.d.ts.map +1 -0
  121. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.js +75 -0
  122. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts +4 -0
  123. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts.map +1 -0
  124. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.js +3 -0
  125. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.d.ts +2 -0
  126. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.d.ts.map +1 -0
  127. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.js +1 -0
  128. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.d.ts +66 -0
  129. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.d.ts.map +1 -0
  130. package/dist/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.js +586 -0
  131. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts +5 -0
  132. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.d.ts.map +1 -0
  133. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.js +4 -0
  134. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.d.ts +24 -0
  135. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.d.ts.map +1 -0
  136. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.js +130 -0
  137. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.d.ts +15 -0
  138. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.d.ts.map +1 -0
  139. package/dist/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.js +85 -0
  140. package/dist/helpers/convert_reach_gametype.d.ts +17 -0
  141. package/dist/helpers/convert_reach_gametype.d.ts.map +1 -0
  142. package/dist/helpers/convert_reach_gametype.js +191 -0
  143. package/dist/helpers/index.d.ts +2 -0
  144. package/dist/helpers/index.d.ts.map +1 -0
  145. package/dist/helpers/index.js +1 -0
  146. package/dist/versions/haloreach_mcc/v_untracked_25_08_19_1352.d.ts +9 -0
  147. package/dist/versions/haloreach_mcc/v_untracked_25_08_19_1352.d.ts.map +1 -0
  148. package/dist/versions/haloreach_mcc/v_untracked_25_08_19_1352.js +8 -0
  149. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/c_game_engine_survival_variant.js +4 -3
  150. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/game_engine_enums.js +64 -0
  151. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/index.js +1 -0
  152. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/index.js +4 -0
  153. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_actions.js +162 -56
  154. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_conditions.js +14 -4
  155. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_object.js +29 -0
  156. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_player.js +36 -0
  157. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_explicit_team.js +28 -0
  158. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_hud_widgets.js +10 -0
  159. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_references.js +19 -10
  160. package/dist-cjs/blam/haloreach/v12065_11_08_24_1738_tu1actual/game/megalogamengine/megalogamengine_text.js +6 -5
  161. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant.js +129 -0
  162. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_custom_variant_au1_settings.js +34 -0
  163. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_default.js +305 -0
  164. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_survival_variant.js +192 -0
  165. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_engine_traits.js +20 -0
  166. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_game_variant.js +113 -0
  167. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_player_traits.js +151 -0
  168. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/c_string_table.js +195 -0
  169. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/game_engine_enums.js +64 -0
  170. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/index.js +26 -0
  171. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalo_game_statistic.js +22 -0
  172. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_megalogamengine_map_permissions.js +22 -0
  173. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_object_filter.js +43 -0
  174. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/c_trigger.js +63 -0
  175. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/index.js +33 -0
  176. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_actions.js +1748 -0
  177. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_conditions.js +234 -0
  178. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_object.js +37 -0
  179. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_player.js +39 -0
  180. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_explicit_team.js +34 -0
  181. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_hud_widgets.js +10 -0
  182. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_references.js +517 -0
  183. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/megalogamengine_text.js +125 -0
  184. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_custom_game_engine_definition.js +120 -0
  185. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_game_engine_player_rating_parameters.js +58 -0
  186. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_user_defined_option.js +87 -0
  187. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variable_metadata.js +93 -0
  188. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/game/megalogamengine/s_variant_variable.js +79 -0
  189. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/index.js +19 -0
  190. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/index.js +17 -0
  191. package/dist-cjs/blam/haloreach_mcc/v_untracked_25_08_19_1352/saved_games/saved_game_files.js +591 -0
  192. package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/index.js +19 -0
  193. package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_game_variant.js +133 -0
  194. package/dist-cjs/chunks/haloreach_mcc/v_untracked_25_08_19_1352/s_blf_chunk_packed_game_variant.js +88 -0
  195. package/dist-cjs/helpers/convert_reach_gametype.js +194 -0
  196. package/dist-cjs/helpers/index.js +5 -0
  197. package/dist-cjs/versions/haloreach_mcc/v_untracked_25_08_19_1352.js +24 -0
  198. package/package.json +26 -4
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.c_game_engine_survival_variant = exports.s_survival_round_properties = exports.s_custom_skull = exports.s_survival_wave_properties = exports.c_ai_traits = void 0;
4
+ const c_game_engine_default_1 = require("./c_game_engine_default");
5
+ const c_player_traits_1 = require("./c_player_traits");
6
+ const game_engine_enums_1 = require("./game_engine_enums");
7
+ class c_ai_traits {
8
+ m_vision = 0;
9
+ m_sound = 0;
10
+ m_luck = 0;
11
+ m_weapon = 0;
12
+ m_grenade = 0;
13
+ m_equipment_drop_setting = 0;
14
+ m_assasination_immunity_setting = 0;
15
+ m_headshot_immunity_setting = 0;
16
+ m_damage_resistance = 0;
17
+ m_damage_modifier = 0;
18
+ decode(bitstream) {
19
+ this.m_vision = bitstream.read_integer("vision", 3);
20
+ this.m_sound = bitstream.read_integer("sound", 2);
21
+ this.m_luck = bitstream.read_integer("luck", 3);
22
+ this.m_weapon = bitstream.read_integer("weapon", 2);
23
+ this.m_grenade = bitstream.read_integer("grenade", 2);
24
+ this.m_equipment_drop_setting = bitstream.read_integer("equipment-drop-setting", 2);
25
+ this.m_assasination_immunity_setting = bitstream.read_integer("assasination-immunity-setting", 2);
26
+ this.m_headshot_immunity_setting = bitstream.read_integer("headshot-immunity-setting", 2);
27
+ this.m_damage_resistance = bitstream.read_integer("damage-resistance", 4);
28
+ this.m_damage_modifier = bitstream.read_integer("damage-modifier", 4);
29
+ }
30
+ encode(bitstream) {
31
+ bitstream.write_integer(this.m_vision, 3);
32
+ bitstream.write_integer(this.m_sound, 2);
33
+ bitstream.write_integer(this.m_luck, 3);
34
+ bitstream.write_integer(this.m_weapon, 2);
35
+ bitstream.write_integer(this.m_grenade, 2);
36
+ bitstream.write_integer(this.m_equipment_drop_setting, 2);
37
+ bitstream.write_integer(this.m_assasination_immunity_setting, 2);
38
+ bitstream.write_integer(this.m_headshot_immunity_setting, 2);
39
+ bitstream.write_integer(this.m_damage_resistance, 4);
40
+ bitstream.write_integer(this.m_damage_modifier, 4);
41
+ }
42
+ }
43
+ exports.c_ai_traits = c_ai_traits;
44
+ class s_survival_wave_properties {
45
+ m_wave_flags = 0;
46
+ m_wave_squad_advance_type = 0;
47
+ m_wave_squad_count = 0;
48
+ m_squads = Array.from({ length: 12 }, () => 0);
49
+ decode(bitstream) {
50
+ this.m_wave_flags = bitstream.read_integer("wave_flags", 1);
51
+ this.m_wave_squad_advance_type = bitstream.read_integer("wave_squad_advance_type", 1);
52
+ this.m_wave_squad_count = bitstream.read_integer("wave-squad-count", 4);
53
+ for (let i = 0; i < 12; i++) {
54
+ this.m_squads[i] = bitstream.read_integer("possible-wave-squad", 8);
55
+ }
56
+ }
57
+ encode(bitstream) {
58
+ bitstream.write_integer(this.m_wave_flags, 1);
59
+ bitstream.write_integer(this.m_wave_squad_advance_type, 1);
60
+ bitstream.write_integer(this.m_wave_squad_count, 4);
61
+ for (let i = 0; i < 12; i++) {
62
+ bitstream.write_integer(this.m_squads[i], 8);
63
+ }
64
+ }
65
+ }
66
+ exports.s_survival_wave_properties = s_survival_wave_properties;
67
+ class s_custom_skull {
68
+ m_spartan_traits = new c_player_traits_1.c_player_traits();
69
+ m_elite_traits = new c_player_traits_1.c_player_traits();
70
+ m_wave_traits = new c_ai_traits();
71
+ decode(bitstream) {
72
+ this.m_spartan_traits.decode(bitstream);
73
+ this.m_elite_traits.decode(bitstream);
74
+ this.m_wave_traits.decode(bitstream);
75
+ }
76
+ encode(bitstream) {
77
+ this.m_spartan_traits.encode(bitstream);
78
+ this.m_elite_traits.encode(bitstream);
79
+ this.m_wave_traits.encode(bitstream);
80
+ }
81
+ }
82
+ exports.s_custom_skull = s_custom_skull;
83
+ class s_survival_round_properties {
84
+ m_skull_flags = 0;
85
+ m_initial_wave_options = new s_survival_wave_properties();
86
+ m_main_wave_options = new s_survival_wave_properties();
87
+ m_boss_wave_options = new s_survival_wave_properties();
88
+ decode(bitstream) {
89
+ this.m_skull_flags = bitstream.read_integer("skull-flags", 18);
90
+ this.m_initial_wave_options.decode(bitstream);
91
+ this.m_main_wave_options.decode(bitstream);
92
+ this.m_boss_wave_options.decode(bitstream);
93
+ }
94
+ encode(bitstream) {
95
+ bitstream.write_integer(this.m_skull_flags, 18);
96
+ this.m_initial_wave_options.encode(bitstream);
97
+ this.m_main_wave_options.encode(bitstream);
98
+ this.m_boss_wave_options.encode(bitstream);
99
+ }
100
+ }
101
+ exports.s_survival_round_properties = s_survival_round_properties;
102
+ class c_game_engine_survival_variant {
103
+ m_base_variant = new c_game_engine_default_1.c_game_engine_base_variant();
104
+ m_variant_flags = new game_engine_enums_1.e_survival_variant_flags();
105
+ /** 3 bits; when >= 2, `m_additional_flags` is present on the wire. */
106
+ m_encoding_version = 0;
107
+ m_set_count = 0;
108
+ m_bonus_lives_awarded = 0;
109
+ m_bonus_target = 0;
110
+ m_bonus_lives_on_elite_player_death = 0;
111
+ m_shared_team_life_count = 0;
112
+ m_elite_life_count = 0;
113
+ m_extra_life_score_target = 0;
114
+ m_maximum_lives = 0;
115
+ m_generator_count = 0;
116
+ m_spartan_traits = new c_player_traits_1.c_player_traits();
117
+ m_elite_traits = new c_player_traits_1.c_player_traits();
118
+ m_ai_traits = new c_ai_traits();
119
+ m_red_skull = new s_custom_skull();
120
+ m_blue_skull = new s_custom_skull();
121
+ m_yellow_skull = new s_custom_skull();
122
+ m_elite_respawn_options = new c_game_engine_default_1.c_game_engine_respawn_options();
123
+ m_round_1_properties = new s_survival_round_properties();
124
+ m_round_2_properties = new s_survival_round_properties();
125
+ m_round_3_properties = new s_survival_round_properties();
126
+ m_bonus_round_duration = 0;
127
+ m_bonus_round_skull_flags = 0;
128
+ m_bonus_round_properties = new s_survival_wave_properties();
129
+ /** 8 bits when `m_encoding_version` >= 2 (e.g. alpha_sync_slayer). */
130
+ m_additional_flags = 0;
131
+ decode(bitstream) {
132
+ this.m_base_variant.decode(bitstream);
133
+ this.m_variant_flags = game_engine_enums_1.e_survival_variant_flags.from_raw(bitstream.read_integer("m_variant_flags", 5));
134
+ this.m_encoding_version = bitstream.read_integer("encoding-version", 3);
135
+ this.m_set_count = bitstream.read_integer("set-count", 8);
136
+ this.m_bonus_lives_awarded = bitstream.read_integer("bonus-lives-awarded", 4);
137
+ this.m_bonus_target = bitstream.read_integer("bonus-target", 15);
138
+ this.m_bonus_lives_on_elite_player_death = bitstream.read_integer("bonus-lives-on-elite-player-death", 15);
139
+ this.m_shared_team_life_count = bitstream.read_integer("shared-team-life-count", 7);
140
+ this.m_elite_life_count = bitstream.read_integer("elite-life-count", 7);
141
+ this.m_extra_life_score_target = bitstream.read_integer("extra-life-score-target", 15);
142
+ this.m_maximum_lives = bitstream.read_integer("maximum-lives", 7);
143
+ this.m_generator_count = bitstream.read_integer("generator-count", 2);
144
+ this.m_spartan_traits.decode(bitstream);
145
+ this.m_elite_traits.decode(bitstream);
146
+ this.m_ai_traits.decode(bitstream);
147
+ this.m_red_skull.decode(bitstream);
148
+ this.m_blue_skull.decode(bitstream);
149
+ this.m_yellow_skull.decode(bitstream);
150
+ this.m_elite_respawn_options.decode(bitstream);
151
+ this.m_round_1_properties.decode(bitstream);
152
+ this.m_round_2_properties.decode(bitstream);
153
+ this.m_round_3_properties.decode(bitstream);
154
+ this.m_bonus_round_duration = bitstream.read_integer("duration-seconds", 12);
155
+ this.m_bonus_round_skull_flags = bitstream.read_integer("skull-flags", 18);
156
+ this.m_bonus_round_properties.decode(bitstream);
157
+ if (this.m_encoding_version >= 2) {
158
+ this.m_additional_flags = bitstream.read_integer("additional-flags", 8);
159
+ }
160
+ }
161
+ encode(bitstream) {
162
+ this.m_base_variant.encode(bitstream);
163
+ bitstream.write_integer(this.m_variant_flags.to_raw(), 5);
164
+ bitstream.write_integer(this.m_encoding_version, 3);
165
+ bitstream.write_integer(this.m_set_count, 8);
166
+ bitstream.write_integer(this.m_bonus_lives_awarded, 4);
167
+ bitstream.write_integer(this.m_bonus_target, 15);
168
+ bitstream.write_integer(this.m_bonus_lives_on_elite_player_death, 15);
169
+ bitstream.write_integer(this.m_shared_team_life_count, 7);
170
+ bitstream.write_integer(this.m_elite_life_count, 7);
171
+ bitstream.write_integer(this.m_extra_life_score_target, 15);
172
+ bitstream.write_integer(this.m_maximum_lives, 7);
173
+ bitstream.write_integer(this.m_generator_count, 2);
174
+ this.m_spartan_traits.encode(bitstream);
175
+ this.m_elite_traits.encode(bitstream);
176
+ this.m_ai_traits.encode(bitstream);
177
+ this.m_red_skull.encode(bitstream);
178
+ this.m_blue_skull.encode(bitstream);
179
+ this.m_yellow_skull.encode(bitstream);
180
+ this.m_elite_respawn_options.encode(bitstream);
181
+ this.m_round_1_properties.encode(bitstream);
182
+ this.m_round_2_properties.encode(bitstream);
183
+ this.m_round_3_properties.encode(bitstream);
184
+ bitstream.write_integer(this.m_bonus_round_duration, 12);
185
+ bitstream.write_integer(this.m_bonus_round_skull_flags, 18);
186
+ this.m_bonus_round_properties.encode(bitstream);
187
+ if (this.m_encoding_version >= 2) {
188
+ bitstream.write_integer(this.m_additional_flags, 8);
189
+ }
190
+ }
191
+ }
192
+ exports.c_game_engine_survival_variant = c_game_engine_survival_variant;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.s_player_trait_option = void 0;
4
+ const c_player_traits_1 = require("./c_player_traits");
5
+ class s_player_trait_option {
6
+ m_name_string_index = 0;
7
+ m_description_string_index = 0;
8
+ m_player_traits = new c_player_traits_1.c_player_traits();
9
+ decode(bitstream) {
10
+ this.m_name_string_index = bitstream.read_integer("name-string-index", 7);
11
+ this.m_description_string_index = bitstream.read_integer("description-string-index", 7);
12
+ this.m_player_traits.decode(bitstream);
13
+ }
14
+ encode(bitstream) {
15
+ bitstream.write_integer(this.m_name_string_index, 7);
16
+ bitstream.write_integer(this.m_description_string_index, 7);
17
+ this.m_player_traits.encode(bitstream);
18
+ }
19
+ }
20
+ exports.s_player_trait_option = s_player_trait_option;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.c_game_variant = exports.e_game_mode = void 0;
4
+ const bitstream_1 = require("../../../../bitstream");
5
+ const error_1 = require("../../../../error");
6
+ const c_game_engine_custom_variant_1 = require("./c_game_engine_custom_variant");
7
+ const c_game_engine_default_1 = require("./c_game_engine_default");
8
+ const c_game_engine_survival_variant_1 = require("./c_game_engine_survival_variant");
9
+ /** Matches `e_game_mode` in blf_lib. */
10
+ var e_game_mode;
11
+ (function (e_game_mode) {
12
+ e_game_mode[e_game_mode["sandbox"] = 1] = "sandbox";
13
+ e_game_mode[e_game_mode["custom"] = 2] = "custom";
14
+ e_game_mode[e_game_mode["campaign"] = 3] = "campaign";
15
+ e_game_mode[e_game_mode["survival"] = 4] = "survival";
16
+ })(e_game_mode || (exports.e_game_mode = e_game_mode = {}));
17
+ /**
18
+ * Halo Reach game variant gametype bitstream body (after the `mpvr` hash header).
19
+ * Mirrors `c_game_variant` in blf_lib — decode-only.
20
+ */
21
+ class c_game_variant {
22
+ m_game_engine = e_game_mode.custom;
23
+ m_campaign_variant;
24
+ m_custom_variant;
25
+ m_survival_variant;
26
+ decode(bitstream) {
27
+ this.m_game_engine = bitstream.read_enum("game-engine", 4, e_game_mode);
28
+ switch (this.m_game_engine) {
29
+ case e_game_mode.sandbox:
30
+ throw new error_1.BlfError("Decoding forge (sandbox) game variants is not supported yet");
31
+ case e_game_mode.custom: {
32
+ const custom = new c_game_engine_custom_variant_1.c_game_engine_custom_variant();
33
+ custom.decode(bitstream);
34
+ this.m_custom_variant = custom;
35
+ break;
36
+ }
37
+ case e_game_mode.campaign: {
38
+ const campaign = new c_game_engine_default_1.c_game_engine_base_variant();
39
+ campaign.decode(bitstream);
40
+ this.m_campaign_variant = campaign;
41
+ break;
42
+ }
43
+ case e_game_mode.survival: {
44
+ const survival = new c_game_engine_survival_variant_1.c_game_engine_survival_variant();
45
+ survival.decode(bitstream);
46
+ this.m_survival_variant = survival;
47
+ break;
48
+ }
49
+ default:
50
+ throw new error_1.BlfError(`Unrecognized game engine ${this.m_game_engine}`);
51
+ }
52
+ }
53
+ encode(bitstream) {
54
+ bitstream.write_enum(this.m_game_engine, 4);
55
+ switch (this.m_game_engine) {
56
+ case e_game_mode.sandbox:
57
+ throw new error_1.BlfError("Encoding forge variants is currently unsupported");
58
+ case e_game_mode.custom:
59
+ if (!this.m_custom_variant) {
60
+ throw new error_1.BlfError("m_custom_variant does not exist");
61
+ }
62
+ this.m_custom_variant.encode(bitstream);
63
+ break;
64
+ case e_game_mode.campaign:
65
+ if (!this.m_campaign_variant) {
66
+ throw new error_1.BlfError("m_campaign_variant does not exist");
67
+ }
68
+ this.m_campaign_variant.encode(bitstream);
69
+ break;
70
+ case e_game_mode.survival:
71
+ if (!this.m_survival_variant) {
72
+ throw new error_1.BlfError("m_survival_variant does not exist");
73
+ }
74
+ this.m_survival_variant.encode(bitstream);
75
+ break;
76
+ default:
77
+ throw new error_1.BlfError(`Unrecognized game engine ${this.m_game_engine}`);
78
+ }
79
+ }
80
+ /** Decode gametype bytes from a standalone buffer (convenience wrapper). */
81
+ static decode_bytes(gametype_bytes) {
82
+ const bitstream = bitstream_1.c_bitstream_reader.new(gametype_bytes, bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian);
83
+ bitstream.begin_reading();
84
+ const variant = new c_game_variant();
85
+ variant.decode(bitstream);
86
+ bitstream.finish_reading();
87
+ return variant;
88
+ }
89
+ get_metadata() {
90
+ switch (this.m_game_engine) {
91
+ case e_game_mode.sandbox:
92
+ throw new error_1.BlfError("Forge variants are currently unsupported");
93
+ case e_game_mode.custom:
94
+ if (!this.m_custom_variant) {
95
+ throw new error_1.BlfError("m_custom_variant does not exist");
96
+ }
97
+ return this.m_custom_variant.m_base_variant.m_metadata;
98
+ case e_game_mode.campaign:
99
+ if (!this.m_campaign_variant) {
100
+ throw new error_1.BlfError("m_campaign_variant does not exist");
101
+ }
102
+ return this.m_campaign_variant.m_metadata;
103
+ case e_game_mode.survival:
104
+ if (!this.m_survival_variant) {
105
+ throw new error_1.BlfError("m_survival_variant does not exist");
106
+ }
107
+ return this.m_survival_variant.m_base_variant.m_metadata;
108
+ default:
109
+ throw new error_1.BlfError(`Unrecognized game engine ${this.m_game_engine}`);
110
+ }
111
+ }
112
+ }
113
+ exports.c_game_variant = c_game_variant;
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.c_player_traits = exports.c_player_trait_sensors = exports.c_player_trait_appearance = exports.c_player_trait_movement = exports.c_player_trait_weapons = exports.c_player_trait_shield_vitality = void 0;
4
+ class c_player_trait_shield_vitality {
5
+ m_damage_resistance_percentage_setting = 0;
6
+ m_body_multiplier = 0;
7
+ m_body_recharge_rate = 0;
8
+ m_shield_multiplier = 0;
9
+ m_shield_recharge_rate = 0;
10
+ m_overshield_recharge_rate = 0;
11
+ m_headshot_immunity_setting = 0;
12
+ m_vampirism_percentage_setting = 0;
13
+ m_assasination_immunity = 0;
14
+ m_cannot_die_from_damage = 0;
15
+ }
16
+ exports.c_player_trait_shield_vitality = c_player_trait_shield_vitality;
17
+ class c_player_trait_weapons {
18
+ m_damage_modifier_percentage_setting = 0;
19
+ m_melee_damage_modifier_percentage_setting = 0;
20
+ m_initial_primary_weapon_absolute_index = 0;
21
+ m_initial_secondary_weapon_absolute_index = 0;
22
+ m_initial_grenade_count_setting = 0;
23
+ m_infinite_ammo_setting = 0;
24
+ m_recharging_grenades_setting = 0;
25
+ m_weapon_pickup_setting = 0;
26
+ m_equipment_usage_setting = 0;
27
+ m_equipment_drop_on_death_setting = 0;
28
+ m_infinite_equipment_setting = 0;
29
+ m_initial_equipment_absolute_index = 0;
30
+ }
31
+ exports.c_player_trait_weapons = c_player_trait_weapons;
32
+ class c_player_trait_movement {
33
+ m_speed_setting = 0;
34
+ m_gravity_setting = 0;
35
+ m_vehicle_usage_setting = 0;
36
+ m_double_jump_setting = 0;
37
+ m_jump_modifier = -1;
38
+ }
39
+ exports.c_player_trait_movement = c_player_trait_movement;
40
+ class c_player_trait_appearance {
41
+ m_active_camo_setting = 0;
42
+ m_waypoint_setting = 0;
43
+ m_gamertag_setting = 0;
44
+ m_aura_setting = 0;
45
+ m_forced_change_color_setting = 0;
46
+ }
47
+ exports.c_player_trait_appearance = c_player_trait_appearance;
48
+ class c_player_trait_sensors {
49
+ m_motion_tracker_setting = 0;
50
+ m_motion_tracker_range_setting = 0;
51
+ m_directional_damage_setting = 0;
52
+ }
53
+ exports.c_player_trait_sensors = c_player_trait_sensors;
54
+ class c_player_traits {
55
+ m_shield_vitality_traits = new c_player_trait_shield_vitality();
56
+ m_weapon_traits = new c_player_trait_weapons();
57
+ m_movement_traits = new c_player_trait_movement();
58
+ m_appearance_traits = new c_player_trait_appearance();
59
+ m_sensor_traits = new c_player_trait_sensors();
60
+ decode(bitstream) {
61
+ const sv = this.m_shield_vitality_traits;
62
+ sv.m_damage_resistance_percentage_setting = bitstream.read_integer("damage-resistance", 4);
63
+ sv.m_body_multiplier = bitstream.read_integer("body-multiplier", 3);
64
+ sv.m_body_recharge_rate = bitstream.read_integer("body-recharge-rate", 4);
65
+ sv.m_shield_multiplier = bitstream.read_integer("shield-multiplier", 3);
66
+ sv.m_shield_recharge_rate = bitstream.read_integer("shield-recharge-rate", 4);
67
+ sv.m_overshield_recharge_rate = bitstream.read_integer("overshield-recharge-rate", 4);
68
+ sv.m_headshot_immunity_setting = bitstream.read_integer("headshot-immunity", 2);
69
+ sv.m_vampirism_percentage_setting = bitstream.read_integer("vampirism", 3);
70
+ sv.m_assasination_immunity = bitstream.read_integer("assasination-immunity", 2);
71
+ sv.m_cannot_die_from_damage = bitstream.read_integer("cannot-die-from-damage", 2);
72
+ const w = this.m_weapon_traits;
73
+ w.m_damage_modifier_percentage_setting = bitstream.read_integer("damage-modifier", 4);
74
+ w.m_melee_damage_modifier_percentage_setting = bitstream.read_integer("melee-damage-modifier", 4);
75
+ w.m_initial_primary_weapon_absolute_index = bitstream.read_signed_integer("player-trait-initial-primary-weapon", 8);
76
+ w.m_initial_secondary_weapon_absolute_index = bitstream.read_signed_integer("player-trait-initial-secondary-weapon", 8);
77
+ w.m_initial_grenade_count_setting = bitstream.read_integer("player-trait-initial-grenade-count", 4);
78
+ w.m_infinite_ammo_setting = bitstream.read_integer("player-traits-infinite-ammo-setting", 2);
79
+ w.m_recharging_grenades_setting = bitstream.read_integer("player-traits-recharging-grenades", 2);
80
+ w.m_weapon_pickup_setting = bitstream.read_integer("player-traits-weapon-pickup-allowed", 2);
81
+ w.m_equipment_usage_setting = bitstream.read_integer("player-traits-equipment-usage", 2);
82
+ w.m_equipment_drop_on_death_setting = bitstream.read_integer("player-traits-equipment-drop", 2);
83
+ w.m_infinite_equipment_setting = bitstream.read_integer("player-traits-infinite-equipment", 2);
84
+ w.m_initial_equipment_absolute_index = bitstream.read_signed_integer("player-trait-initial-equipment", 8);
85
+ const m = this.m_movement_traits;
86
+ m.m_speed_setting = bitstream.read_integer("player-speed", 5);
87
+ m.m_gravity_setting = bitstream.read_integer("player-gravity", 4);
88
+ m.m_vehicle_usage_setting = bitstream.read_integer("player-traits-movement-vehicle-usage", 4);
89
+ m.m_double_jump_setting = bitstream.read_integer("player-traits-movement-double-jump", 2);
90
+ if (bitstream.read_bool("player-traits-movement-jump-modifier-changed")) {
91
+ m.m_jump_modifier = bitstream.read_integer("player-traits-movement-jump-modifier", 9);
92
+ }
93
+ else {
94
+ m.m_jump_modifier = -1;
95
+ }
96
+ const a = this.m_appearance_traits;
97
+ a.m_active_camo_setting = bitstream.read_integer("player-traits-appearance-active-camo", 3);
98
+ a.m_waypoint_setting = bitstream.read_integer("player-traits-appearance-waypoint", 2);
99
+ a.m_gamertag_setting = bitstream.read_integer("player-traits-appearance-gamertag", 2);
100
+ a.m_aura_setting = bitstream.read_integer("player-traits-appearance-aura", 3);
101
+ a.m_forced_change_color_setting = bitstream.read_integer("player-traits-appearance-forced-change-color", 4);
102
+ const s = this.m_sensor_traits;
103
+ s.m_motion_tracker_setting = bitstream.read_integer("player-traits-sensors-motion-tracker", 3);
104
+ s.m_motion_tracker_range_setting = bitstream.read_integer("motion-tracker-range", 3);
105
+ s.m_directional_damage_setting = bitstream.read_integer("player-traits-sensors-directional-damage", 2);
106
+ }
107
+ encode(bitstream) {
108
+ bitstream.write_integer(this.m_shield_vitality_traits.m_damage_resistance_percentage_setting, 4);
109
+ bitstream.write_integer(this.m_shield_vitality_traits.m_body_multiplier, 3);
110
+ bitstream.write_integer(this.m_shield_vitality_traits.m_body_recharge_rate, 4);
111
+ bitstream.write_integer(this.m_shield_vitality_traits.m_shield_multiplier, 3);
112
+ bitstream.write_integer(this.m_shield_vitality_traits.m_shield_recharge_rate, 4);
113
+ bitstream.write_integer(this.m_shield_vitality_traits.m_overshield_recharge_rate, 4);
114
+ bitstream.write_integer(this.m_shield_vitality_traits.m_headshot_immunity_setting, 2);
115
+ bitstream.write_integer(this.m_shield_vitality_traits.m_vampirism_percentage_setting, 3);
116
+ bitstream.write_integer(this.m_shield_vitality_traits.m_assasination_immunity, 2);
117
+ bitstream.write_integer(this.m_shield_vitality_traits.m_cannot_die_from_damage, 2);
118
+ bitstream.write_integer(this.m_weapon_traits.m_damage_modifier_percentage_setting, 4);
119
+ bitstream.write_integer(this.m_weapon_traits.m_melee_damage_modifier_percentage_setting, 4);
120
+ bitstream.write_signed_integer(this.m_weapon_traits.m_initial_primary_weapon_absolute_index, 8);
121
+ bitstream.write_signed_integer(this.m_weapon_traits.m_initial_secondary_weapon_absolute_index, 8);
122
+ bitstream.write_integer(this.m_weapon_traits.m_initial_grenade_count_setting, 4);
123
+ bitstream.write_integer(this.m_weapon_traits.m_infinite_ammo_setting, 2);
124
+ bitstream.write_integer(this.m_weapon_traits.m_recharging_grenades_setting, 2);
125
+ bitstream.write_integer(this.m_weapon_traits.m_weapon_pickup_setting, 2);
126
+ bitstream.write_integer(this.m_weapon_traits.m_equipment_usage_setting, 2);
127
+ bitstream.write_integer(this.m_weapon_traits.m_equipment_drop_on_death_setting, 2);
128
+ bitstream.write_integer(this.m_weapon_traits.m_infinite_equipment_setting, 2);
129
+ bitstream.write_signed_integer(this.m_weapon_traits.m_initial_equipment_absolute_index, 8);
130
+ bitstream.write_integer(this.m_movement_traits.m_speed_setting, 5);
131
+ bitstream.write_integer(this.m_movement_traits.m_gravity_setting, 4);
132
+ bitstream.write_integer(this.m_movement_traits.m_vehicle_usage_setting, 4);
133
+ bitstream.write_integer(this.m_movement_traits.m_double_jump_setting, 2);
134
+ if (this.m_movement_traits.m_jump_modifier === -1) {
135
+ bitstream.write_bool(false);
136
+ }
137
+ else {
138
+ bitstream.write_bool(true);
139
+ bitstream.write_signed_integer(this.m_movement_traits.m_jump_modifier, 9);
140
+ }
141
+ bitstream.write_integer(this.m_appearance_traits.m_active_camo_setting, 3);
142
+ bitstream.write_integer(this.m_appearance_traits.m_waypoint_setting, 2);
143
+ bitstream.write_integer(this.m_appearance_traits.m_gamertag_setting, 2);
144
+ bitstream.write_integer(this.m_appearance_traits.m_aura_setting, 3);
145
+ bitstream.write_integer(this.m_appearance_traits.m_forced_change_color_setting, 4);
146
+ bitstream.write_integer(this.m_sensor_traits.m_motion_tracker_setting, 3);
147
+ bitstream.write_integer(this.m_sensor_traits.m_motion_tracker_range_setting, 3);
148
+ bitstream.write_integer(this.m_sensor_traits.m_directional_damage_setting, 2);
149
+ }
150
+ }
151
+ exports.c_player_traits = c_player_traits;
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.c_string_table = exports.c_single_language_string_table = exports.k_language_count = void 0;
4
+ const bitstream_1 = require("../../../../bitstream");
5
+ const data_compress_1 = require("../../../common/memory/data_compress");
6
+ exports.k_language_count = 12;
7
+ /** One wire byte per code unit (U+00–U+FF), matching blf_lib extended ASCII / NullString slots. */
8
+ function read_null_terminated_string(data, offset) {
9
+ let end = offset;
10
+ while (end < data.length && data[end] !== 0) {
11
+ end++;
12
+ }
13
+ let out = "";
14
+ for (let i = offset; i < end; i++) {
15
+ out += String.fromCharCode(data[i]);
16
+ }
17
+ return out;
18
+ }
19
+ function write_null_terminated_string(writer, value, max_length) {
20
+ writer.write_string_extended_ascii(value, max_length);
21
+ }
22
+ /** Wire byte length (one byte per decoded code unit). */
23
+ function string_byte_length(value) {
24
+ for (let i = 0; i < value.length; i++) {
25
+ if (value.charCodeAt(i) > 0xff) {
26
+ throw new Error(`String table entry U+${value.charCodeAt(i).toString(16)} cannot be encoded as Latin-1`);
27
+ }
28
+ }
29
+ return value.length;
30
+ }
31
+ function write_buffer_blob(bitstream, buffer, buffer_size_bit_length, is_compressed) {
32
+ bitstream.write_integer(buffer.length, buffer_size_bit_length);
33
+ if (is_compressed) {
34
+ const compressed = (0, data_compress_1.runtime_data_compress)(buffer, true);
35
+ bitstream.write_bool(true);
36
+ bitstream.write_integer(compressed.length, buffer_size_bit_length);
37
+ bitstream.write_raw_data(compressed, compressed.length * 8);
38
+ }
39
+ else {
40
+ bitstream.write_bool(false);
41
+ bitstream.write_raw_data(buffer, buffer.length * 8);
42
+ }
43
+ }
44
+ class c_single_language_string_table {
45
+ max_string_count;
46
+ max_string_length;
47
+ offset_bit_length;
48
+ buffer_size_bit_length;
49
+ count_bit_length;
50
+ strings = [];
51
+ m_buffer_is_compressed = true;
52
+ constructor(max_string_count, max_string_length, offset_bit_length, buffer_size_bit_length, count_bit_length) {
53
+ this.max_string_count = max_string_count;
54
+ this.max_string_length = max_string_length;
55
+ this.offset_bit_length = offset_bit_length;
56
+ this.buffer_size_bit_length = buffer_size_bit_length;
57
+ this.count_bit_length = count_bit_length;
58
+ }
59
+ decode(bitstream) {
60
+ this.strings = [];
61
+ const string_count = bitstream.read_integer("string-count", this.count_bit_length);
62
+ if (string_count === 0) {
63
+ return;
64
+ }
65
+ const offsets = [];
66
+ for (let i = 0; i < string_count; i++) {
67
+ if (bitstream.read_bool("exists")) {
68
+ offsets.push(bitstream.read_integer("offset", this.offset_bit_length));
69
+ }
70
+ else {
71
+ offsets.push(0);
72
+ }
73
+ }
74
+ const buffer_size = bitstream.read_integer("size", this.buffer_size_bit_length);
75
+ this.m_buffer_is_compressed = bitstream.read_bool("compressed");
76
+ const string_data = this.m_buffer_is_compressed
77
+ ? (0, data_compress_1.runtime_data_decompress)(bitstream.read_raw_data(bitstream.read_integer("compressed-buffer-size", this.buffer_size_bit_length) * 8))
78
+ : bitstream.read_raw_data(buffer_size * 8);
79
+ for (const offset of offsets) {
80
+ this.strings.push(read_null_terminated_string(string_data, offset));
81
+ }
82
+ }
83
+ encode(bitstream) {
84
+ bitstream.write_integer(this.strings.length, this.count_bit_length);
85
+ if (this.strings.length === 0) {
86
+ return;
87
+ }
88
+ const string_writer = bitstream_1.c_bitstream_writer.new_from_instance(this.max_string_count * this.max_string_length, bitstream);
89
+ string_writer.begin_writing();
90
+ let offset = 0;
91
+ for (const string of this.strings) {
92
+ bitstream.write_bool(true);
93
+ bitstream.write_integer(offset, this.offset_bit_length);
94
+ write_null_terminated_string(string_writer, string, this.max_string_length);
95
+ offset += string_byte_length(string) + 1;
96
+ }
97
+ string_writer.finish_writing();
98
+ const buffer = string_writer.get_data();
99
+ write_buffer_blob(bitstream, buffer, this.buffer_size_bit_length, this.m_buffer_is_compressed);
100
+ }
101
+ }
102
+ exports.c_single_language_string_table = c_single_language_string_table;
103
+ class c_string_table {
104
+ max_string_count;
105
+ max_string_length;
106
+ offset_bit_length;
107
+ buffer_size_bit_length;
108
+ count_bit_length;
109
+ strings = Array.from({ length: exports.k_language_count }, () => []);
110
+ m_buffer_is_compressed = true;
111
+ constructor(max_string_count, max_string_length, offset_bit_length, buffer_size_bit_length, count_bit_length) {
112
+ this.max_string_count = max_string_count;
113
+ this.max_string_length = max_string_length;
114
+ this.offset_bit_length = offset_bit_length;
115
+ this.buffer_size_bit_length = buffer_size_bit_length;
116
+ this.count_bit_length = count_bit_length;
117
+ }
118
+ decode(bitstream) {
119
+ this.strings = Array.from({ length: exports.k_language_count }, () => []);
120
+ const string_count = bitstream.read_integer("string-count", this.count_bit_length);
121
+ if (string_count === 0) {
122
+ return;
123
+ }
124
+ const offsets = Array.from({ length: exports.k_language_count }, () => Array.from({ length: string_count }, () => -1));
125
+ for (let j = 0; j < string_count; j++) {
126
+ for (let i = 0; i < exports.k_language_count; i++) {
127
+ if (bitstream.read_bool("exists")) {
128
+ offsets[i][j] = bitstream.read_integer("index", this.offset_bit_length);
129
+ }
130
+ }
131
+ }
132
+ const buffer_size = bitstream.read_integer("size", this.buffer_size_bit_length);
133
+ this.m_buffer_is_compressed = bitstream.read_bool("compressed");
134
+ const string_data = this.m_buffer_is_compressed
135
+ ? (0, data_compress_1.runtime_data_decompress)(bitstream.read_raw_data(bitstream.read_integer("compressed-buffer-size", this.buffer_size_bit_length) * 8))
136
+ : bitstream.read_raw_data(buffer_size * 8);
137
+ for (let i = 0; i < exports.k_language_count; i++) {
138
+ for (let j = 0; j < string_count; j++) {
139
+ const offset = offsets[i][j];
140
+ if (offset < 0) {
141
+ this.strings[i].push(null);
142
+ }
143
+ else {
144
+ this.strings[i].push(read_null_terminated_string(string_data, offset));
145
+ }
146
+ }
147
+ }
148
+ }
149
+ encode(bitstream) {
150
+ const string_count = this.strings[0]?.length ?? 0;
151
+ bitstream.write_integer(string_count, this.count_bit_length);
152
+ if (string_count === 0) {
153
+ return;
154
+ }
155
+ const string_writer = bitstream_1.c_bitstream_writer.new(exports.k_language_count * this.max_string_count * this.max_string_length, bitstream_1.e_bitstream_byte_order._bitstream_byte_order_big_endian);
156
+ string_writer.begin_writing();
157
+ let offset = 0;
158
+ for (let j = 0; j < string_count; j++) {
159
+ let deduplicate = true;
160
+ const reference = this.strings[0]?.[j] ?? null;
161
+ if (reference === null) {
162
+ deduplicate = false;
163
+ }
164
+ else {
165
+ for (let i = 1; i < exports.k_language_count; i++) {
166
+ if (this.strings[i]?.[j] !== reference) {
167
+ deduplicate = false;
168
+ break;
169
+ }
170
+ }
171
+ }
172
+ for (let i = 0; i < exports.k_language_count; i++) {
173
+ const string = this.strings[i]?.[j] ?? null;
174
+ if (string === null) {
175
+ bitstream.write_bool(false);
176
+ continue;
177
+ }
178
+ bitstream.write_bool(true);
179
+ bitstream.write_integer(offset, this.offset_bit_length);
180
+ if (!deduplicate) {
181
+ write_null_terminated_string(string_writer, string, this.max_string_length);
182
+ offset += string_byte_length(string) + 1;
183
+ }
184
+ }
185
+ if (deduplicate && reference !== null) {
186
+ write_null_terminated_string(string_writer, reference, this.max_string_length);
187
+ offset += string_byte_length(reference) + 1;
188
+ }
189
+ }
190
+ string_writer.finish_writing();
191
+ const buffer = string_writer.get_data();
192
+ write_buffer_blob(bitstream, buffer, this.buffer_size_bit_length, this.m_buffer_is_compressed);
193
+ }
194
+ }
195
+ exports.c_string_table = c_string_table;