Repository navigation
Edition of commands for better co-op - #352
GalaxyMinus wants to merge 37 commits into
Conversation
…o the bringto command so that host can bringto everyone to itself or to the whole lobby, there doesn't seem to be a problem with the windows build so far but need to test the android and linux versions!
The arm64 and Android guests are compiled for arm64_32-apple-watchos and
their Darwin assembly converted to ELF (tools/android_asm_convert.py). The
converter took a quoted .ascii/.asciz operand for a quoted symbol name and
dropped a leading "_" from it, as it does from symbols; and its quoted-name
pattern ended at an escaped quote (\"), so the "_" of a word after one was
dropped too. Clang writes byte tables as .ascii strings, so a table holding
95 ("_") lost that byte and everything after it moved down by one.
In Opus that table was CELT's pulse cache (modes.c, cache_bits50): the bits
a band may have are read off it, and shifted by a byte it lets a band have
more pulses than the PVQ tables hold. Decoding a frame from another player
then read past CELT_PVQ_U_ROW in decode_pulses (n 32, k 240) and crashed: a
client on the Steam Frame, in a CTF game on the internet. The guest's own
encoder could crash likewise in encode_pulses. The same build of Opus,
driven with the game's settings and with clean, corrupt, truncated and
random packets and voice_audio_play's loss handling, crashed within a few
thousand frames (and identically at -O0); with the fix it ran 4.8 million
decodes clean, and its encoded bytes and decoded samples are identical to a
native 64-bit build's.
The same loss hit other strings and tables of the guest: musl's iswalpha,
iswpunct and towctrans tables and iconv's charmaps; tomlc17's "_0123..."
digit sets (TOML numbers with "_"); the attract mode's "_de"/"_fr" names,
"_lan_", "_lit" and "_%s"; the progress bar's compressed monk tone and the
DirectSound effects image; and assertion and error texts. All are now
assembled as compiled.
String directives now go through unchanged, and quoted names honour
escapes. tools/test_android_asm_convert.py checks both, and a table of
every byte value through clang, the conversion and the assembler.
…coding Every build sends one 20 ms frame per packet (voice_audio_encode). A packet whose table of contents says otherwise, or that Opus cannot parse, is damaged: voice_audio_play now drops it before the decoder sees it (opus_packet_get_nb_samples), and the next frame makes up for it as lost. Cheap defence in depth: Opus's decoder already refuses such packets, and the crash in decode_pulses came from a valid packet and the guest's garbled pulse cache, fixed in the assembly conversion.
# Conflicts: # source/hs/hs.c
|
should add extra commands for listing players with numbers and banning players using that number, in case someone has symbols or anything |
dont we have the ban inside the game listings? (tab in pc or scores in mobile), though thinking about it i could try to add the bringto command as an extra option in the game interface so we dont depend on the command and typing name |
|
i also plan on working an autocomplete function with tab, just like tab works with commands in haloscript! |
yeah idk where i got bans from, think i meant just a way to do those bringto commands to players with crazy names. index based on the scoreborad list would work. |
The postgame host map picker opens without menu history. Give it the existing main_menu_if_no_history flag used by the lobby so leaving the last screen restores the main menu instead of leaving only the background. Update the generator and generated XML together. Preserve OpenCE's existing handlers; no MCC code or regression-test files are included. This local menu change does not require a network version bump. Resolved the fork cherry-pick against OpenCE main 8102e71 by adding only the flag override. Windows portable release build passed. Existing menu teardown, touch and web checks returned 28 passes and 6 failures: missing m.lib/pthread.h and Windows path separators in POSIX-oriented tests. Android and web build targets were unavailable locally. Checked generator round-trip stability and git diff --check. The two simple wrappers were regenerated through ce_menus.widget_xml from their exported XML fields; the original PC tag inputs were unavailable. No upstream runtime game session or Linux build was run. Earlier scripted runtime verification was performed on the GulchCE implementation, not this upstream revision. (cherry picked from commit c811c7f)
…-guest-strings arm64 and Android guests: string literals kept byte for byte (fixes a voice chat crash)
Restore the pause header and footer bands while retaining Settings, the campaign body gradient, and the Xbox footer alpha of 191/255. Initialize the scripted timer scaling flags so stack data cannot shrink its digits. Move Edit Gametypes and its divider inside the connected panel. This implementation-only upstream contribution excludes MCC, regression tests, documentation, optional regeneration commands and workflows. The complete fixes and tests remain on GulchCE testing and the local validation branch. Original cherry-picked changes below were combined and scoped to OpenCE; authorship is retained. Validated: portable release Windows builds on both bases; 25 upstream art/timer tests and 52 GulchCE tests before upstream test exclusion; hidden Xbox and MCC pause captures, both timer HUD settings, and multiplayer menu captures. Final generator matches all committed pause SVGs. Android/web targets are unavailable in this Windows configuration; online co-op was not replayed. (cherry picked from commit a0c2057) (cherry picked from commit c76a3a5) (cherry picked from commit f0804e1) (cherry picked from commit bff920f) (cherry picked from commit b1b59eb7237d901dba10aa0b5187b184f3f44a7b)
…iplayer-menu-fix Restore the main menu when leaving the postgame host screen
Apply the existing campaign gradient to the three- and four-button online pause artwork, retaining the translucent footer. Admit full-screen Xbox network campaigns to the existing Settings insertion while keeping local split-screen unchanged and preventing network Settings from pausing time. Checked Windows release build, pause-art and campaign-context harnesses, and hidden two-peer Xbox multiplayer and co-op sessions. The co-op client can select and open Settings. Android/web builds are unavailable in this Windows configuration; no wire-format or simulation contract changed. (cherry picked from commit 04cd1e2)
Upscale the original vehicle/passenger labels, warnings, reload dots and messaging sheets without changing their glyph layout or sprite coordinates. Use the existing Xbox controller redraws for A/B/X/Y/Black/White prompts; other controller symbols retain the original Xbox art through upscaling. Match the existing high-resolution vehicle meter contour to remove the double wrench. Restore the rounded diamond sniper reticle, contain the flashlight fill and assign discrete thresholds to whole ammunition bullets. The HUD module owns interpolation and tag selection. A narrow texture-cache hook is needed to obtain decoded original pixels and invalidate generated textures with their source; the messaging hook selects the existing button art. Both respect the High-Res HUD setting. MCC's separate draw/texture paths remain intact. No MCC bitmap data is embedded; label interpolation was retained at the user's request, with its limited sharpness acknowledged. Validated Windows portable release build; 246 focused HUD tests; 15,360 real GPU ammunition checks; hidden Xbox HUD captures enabled/disabled; Xbox/MCC/Xbox transitions at 30 and 120 FPS with no exceptions. Player health and sniper zoom-label pixels outside the targeted regions are unchanged. Android/web targets are unavailable in this Windows build configuration; Custom Edition gameplay data is unavailable, so that path was inspected. No simulation or network format changes; network version stays unchanged. (cherry picked from commit 5398553)
Increase the existing Xbox faces from 20 to 26 HUD units, centre them on the text capital midpoint and compensate for the text renderer's following-run inset. Preserve their original artwork and split-screen scale. Checked the portable Windows OpenCE build and hidden 1280x720 gameplay captures; the Press X to prompt has balanced visible gaps. Retain the repository's rocket reticle unchanged at the user's request.
…Edition#380) Default high-resolution gameplay A/B/X/Y/Black/White buttons to plain Xbox faces made from the existing redraws. Retain the shaded faces as Gems and keep glyph geometry unchanged. Show Button Style below High-Res HUD only while enabled, following pending edits and closing the row gap when hidden. Recreate owned glyph placeholders on style changes and dispose them on map unload. Validated the Windows release build, hidden menu captures with both styles and HUD off, isolated Xbox gameplay, and 268 focused production-code and menu checks including repeated visibility/focus and glyph lifecycle changes. Android and Web builds were attempted but their targets are unavailable in this Windows configuration. (cherry picked from commit e8f36b8)
…munityEdition#380) Use the supplied transparent A/B/X/Y artwork for Gems, fitted within the existing button bounds. Preserve the original menu redraws as Menu Gems and share their Black/White glyphs between both gem styles. Classic remains the default. Keep the source PNGs and deterministic asset conversion, and reserve enough placeholder entries for all styles across map changes. Validated the Windows release build and 269 focused checks, including generated texture bounds, centering, repeatable output, all three native/MCC style transitions, disposal, and menu row spacing. Existing menu glyph PNGs remain unchanged. (cherry picked from commit 5f66c51)
…tyEdition#380) Xbox button definitions override prompt text with full-opacity colors. Honor that existing override for Classic, Gems and Menu Gems while retaining text alpha for icons without it. Embedded artwork supplies RGB. Validated original Xbox a10/Blood Gulch definitions, opaque asset interiors, Windows portable release compilation, and production-function checks for all three styles, full/partial alpha, fallback, and cleanup. Android/Web targets were unavailable in the Windows configuration. No MCC/fork code, tests, documentation, assets or workflow changes included. (cherry picked from commit ce6cf74)
…fixes Fix low-res bitmaps overlap issue with High-Res HUD, as well as general high-res bitmap issues
Match visible A/B/X/Y and supplied trigger/thumbstick artwork to the Xbox bitmap bounds and center prompts around the visible glyph. Keep Black and White unchanged. Preserve all three stick press frames and rename the Menu Gems display label to Dark Gems without changing saved values. Use the original HUD ONE/INVSRCALPHA blend for sticks and triggers, with premultiplied asset edges, to avoid dimming them by prompt alpha twice. Increase the existing high-res texture table so every new frame loads. All changes remain in the existing high-res feature and menu wiring; low-res fallbacks and unrelated icon indices retain their existing paths. Checked: 358 focused HUD/menu/MCC tests on testing, Windows portable release builds on testing and a clean upstream checkout, and hidden Xbox a10 captures for size, spacing and brightness. Android/Web targets are absent from this Windows build graph. No protocol or simulation changes. (cherry picked from commit c21ec87)
…fixes-2 Fixes to latest high-res HUD commit
Recheck committed font settings before cached font selection, including when high-resolution text was disabled at first use. At each frame boundary, invalidate only cached HUD/title bitmaps affected by a changed setting so both enabling and disabling rebuild the appropriate texture on next use. Keep decoded replacements, font atlases, world textures and menu Apply/Cancel semantics intact. This corrects shared cache behavior; it adds no MCC data, map-family routing or networking/simulation changes. Validation: Windows portable release build and 370 focused production-code, HUD, menu and MCC checks passed. Tests cover repeated toggles, disabled text at startup, font scale/cache reuse, selective bitmap refresh and Apply/Cancel. Android and Web targets were attempted but are unavailable in this Windows build graph. Live Custom Edition validation is limited by unavailable maps. (cherry picked from commit ddeb650d82a73b570e182ff2bfd87e3cc3daa98d)
…ixes Fix regression in pause menu & The Maw timer, restoring legacy Xbox behaviour. Fix incorrect Edit Gametypes positioning
# Conflicts: # source/game/cheats.c
Bringto changes
The new
bringtocommand now allows a player to teleport to a player in specific rather than just the host, it still works as before withbringtowith no arguments to teleport all the players in session to the host, but also adds thebringto {player}to teleport into a player in cooperative playThe command right now has checks for
Spawn command
This also adds a new
spawnfor tags, where it can instanciate any valid vehicle, weapon or equipment present in the tags by searching it through the .map files and verifying if the type is a weapon (ex assault rifle), vehicle (ex warthog) or equipment (ex health pack)This command aims to allow players to spawn vehicles at will, when there's not enough vehicles, or just for fun!
The command has checks for