Repository navigation
Merge testing - #388
Merged
Merged
Merge testing#388
Conversation
Screen fog stays on the canopy when the field of view is widened
Carry a vehicle no player drives along the host's positions
Added reference to AUR version to the README
FractumSeraph
added a commit
to FractumSeraph/OpenCE
that referenced
this pull request
Oct 17, 2026
…ds menu, on the fork's Halo PC loader OpenCE's pull request OpenCommunityEdition#388 (dd16971, 54c2d31, and its testing branch's merge of OpenCommunityEdition#378, which this fork had already taken by hand): client-side mods, folders of Halo PC tag files whose sounds, bitmaps and text play over a map's on one machine, with a Mods menu, a load order (load_order.toml) and incompatibility checks at startup. Every feature of both sides is kept. The mods on the fork's loader. OpenCE's mods call its own Custom Edition loader (cache_file_formats.c, custom_edition_bitmaps.c, custom_edition_*), which this fork replaced with ChupathingyCE's (ce_*.c). Those files stay deleted (the modify/delete conflicts); what the mods need is ported onto the fork's code instead: - custom_edition_hud_placements_walk: ce_hud_placements_walk, a new public walk in ce_hud.c (ce_hud.h) over the placements ce_hud.c's conversion halves, with its offsets; the conversion itself is left as it was (its harness test, test_ce_hud_scale.py, takes its functions by name). - custom_edition_bitmap_drawable: bitmap_drawable in mod_bitmaps.c (OpenCE's check, which only the mods use now). - custom_edition_loaded_reordered_bitmaps_find, _bitmap_channel_order and halo_custom_edition_texels_channels: the fork draws Halo PC's channel orders by texture flags (D3DCOMMON_PORT_PC_METER, _PC_MULTIPURPOSE), not by OpenCE's address table. mod_bitmaps.c finds, in the loaded map's tags, which of the mods' bitmaps are drawn as model shaders' multipurpose maps or HUD meters (and drawn otherwise too: kept as they are), as OpenCE's custom_edition_bitmaps.c did, and mod_bitmaps_channel_order gives xbox_texture_cache.c the flag for each. - custom_edition_sounds_encode/decode: mod_sounds.c is the fork's loose_sounds.c (d73430a) renamed and moved onto mods.c as OpenCE did; it keeps the fork's own Xbox ADPCM encoder and ce_vorbis.c decoding. - custom_edition_cache_tags_loaded: cache_file_tags_are_ce. A mod's bitmap is rebuilt into the Xbox's layout as it loads (rasterizer_xbox_bitmap_rebuild_hardware_format), so on a Custom Edition map xbox_texture_cache.c does not flag it D3DCOMMON_PORT_PC_LAYOUT. - The fork's ce_tags_pointer reads a Custom Edition map's tags only inside its tag cache and gives zeroes elsewhere, which made every mod's block on a Custom Edition map read as zeroes. The mods now list the memory their tags make (mods_memory_add/remove/contains, mods.c), and ce_tags_pointer reads that too. - Everything the mods store in the game's structures is an Xbox address (XBOX_ADDRESS, XBOX_NULL, xbox_pointer), for the 64-bit builds; mods_read_real reads 32 bits, as the fork's loose sounds did. - A mod's maps are matched by the map file's name: mods_tags_loaded drops the family suffix (bloodgulch@ce is bloodgulch: map_family_parse). - The dedicated servers play no mods: port_mods.c (SDL file I/O, the startup question) is left out of the server builds and server_platform.c answers for it (and platform_ask) with none. - The Chupathingy menus' main menu (the native default) gets OpenCE's MODS row below SETTINGS, as the PC menus have it, so the Mods screen can be reached there too. Conflicts: - source/cache/cache_files.c, xbox_sound_cache.c, xbox_texture_cache.c, source/hs/hs.c: OpenCE's mods hooks and console functions (mods_reload, mods_enable, mods_list) in place of loose_sounds', on both load paths (the fork's Custom Edition path and the Xbox's), unconditional (they were under HALO_CUSTOM_EDITION as loose_sounds was); the fork's hs table of Halo PC's functions keeps its layout (418 + 3 + 24 + 3). - port/linux/game/mod_sounds.c: see above; Vorbis behind HALO_CUSTOM_EDITION. - port/linux/src/port_config.c, port/linux/README.md: audio.loose_sounds goes, as OpenCE removed it (the mods folder replaces the tags folder); both copies of it (git had kept one outside the conflict) are gone, and audio.resampling stays. - port/linux/src/xbox_textures.c: the fork's swizzle comment; OpenCE's HALO_WEB channel reordering (decoded textures put in order before upload) kept for its web build, driven by the fork's pc_meter/pc_multipurpose. - platform.h, sdl_platform.c, menu_tags.c, port_settings.py, bitmaps.xml: both sides. menus.json: OpenCE's mods entries, without the pause art the fork left out of OpenCommunityEdition#378. port/web/licenses.py and tools/ci_build.py: the fork's stb path with OpenCE's wording; the opus and Lucide notices copied again (the fork had lost them). - Android (host_imports.list, guest_host.h, guest_sdl.c, host_sdl.c): both added host_sdl_show_message_box; the fork's general one (any buttons, ids and flags) serves OpenCE's platform_ask too, so it is kept alone. - README.md, AGENTS.md, port/android/README.md, port/linux/README.md, docs/mods.md: OpenCE's text, the fork's tables and names (the Android package net.fractumseraph.halo, the logs folder, ninja browser having no way to add mods yet). - tools/test_mods.py reads debug.txt from the fork's logs folder. The menus: tools/port_settings.py's screens written again (scratchpad regen.py, as for the earlier merges): nothing changed, main_menu.mods.xml as OpenCE's. ce_menus.py's full run needs the PC version's tags, which are not here; its outputs (main_menu.xml, bitmaps.xml, menus.json, the MODS pictures) are OpenCE's, merged by hand. Checked: python tools/network_format.py --record leaves port/linux/network_format.txt as it was (no wire change; network version unchanged). No function or setting is defined twice. In Docker (Arch): ninja linux linux64 server builds (64-bit -Werror; no new warnings); pytest (test_linux_port with assets/maps, test_touch_menu, test_p2p_copies, test_save_folder, test_server_control, test_delta, test_delta_peer, test_profile, test_map_torrents, test_map_families, test_bmp_files, test_host_watch_hash, test_virtual_keyboard_input, test_settings_sections, test_loading_picture, tools/harness with OpenCE's test_mod_files.py, test_map_download, test_ping, test_update_manifest, and OpenCE's test_mods.py playing a mod over Blood Gulch under Xvfb): 779 passed, 34 skipped, 1 failed, the known test_profile.py test_check_program_has_no_data_races (ThreadSanitizer cannot run in Docker); node --test port/web/tests/*.test.js: 18 passed. A mod played over a Custom Edition map (bloodislands@ce): its sound, string list and four bitmaps played, one of them a multipurpose map sampled in Halo PC's channels, a HUD meter of another shape left out, no read outside the tags, and the game ran and exited cleanly. The browser build (ninja browser, emsdk) builds and links; OpenCE's web build's units that changed (xbox_textures.c, the mods, sdl_platform.c, menu_functions.c, ce_hud.c, ce_map_checks.c, xbox_texture_cache.c) compile with its flags (its full build needs a POSIX host). Not built here: Android (ninja android) and Windows. tools/test_map_fuzz.py does not link here: references the merge did not add (ce_map_checks.c's ce_map_refused_verify to map_family_* and map_archive_*, bitmaps.c's to release_assert_failed) are not in its unit list; its own stub of mods_memory_contains links. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.