48 Commits
Author SHA1 Message Date
MrBruh 0bfe211289 Web: stable pages hashed less often, fewer clock reads
18-player Blood Gulch in Chrome at 1080p: 135 to 225 FPS.
2026-10-11 14:59:19 +13:00
MrBruh fc61004479 Touch controls: the profile's buttons and sticks, finger sizes, opacity
The stick moves the player through the game's input state (keyboard_controls_update), as the keys do, so it moves with a southpaw or legacy stick layout too, where it was the left stick. The buttons are named by the profile's button layout, which the game sends the overlay as it changes (host_touch_bindings): with Swap triggers the right trigger's button says Grenade.

No control is smaller than a finger (48 dp across). The overlay's opacity can be set; a floating move stick (off by default) goes where the thumb lands in the lower left. Hide is remembered, and Hide and Options act as the finger lifts on them, so a swipe that starts on them aims rather than opens the options mid-fight. A label too long for its button is drawn smaller.

TouchControls, TouchLayout, GyroscopeAim and HaloActivity's touch layout files in the repository's style; the layout file is version 3 (opacity, floating stick), and versions 1 and 2 still load. CI runs the layout tests.
2026-10-10 11:19:06 +13:00
MrBruh 141e5984f5 Touch aiming with the stick's aim assist and invert
The touch controls' swipe was added after the aim assist, through the mouse's hook: no friction over a target and no adhesion to a moving one, which a controller has. It is now a turn made the stick's rate before the magnetism (halo_linux_touch_look, one port: hook in player_control.c), so the zoom, the stun and the magnetism act on it as on the stick's, and it counts as aiming for them; it follows the profile's invert look as the stick does (input_abstraction_port_look_inverted). input.touch_aim_assist (default true) turns the aim assist off. The mouse's hook is as before the touch controls.
2026-10-10 11:19:06 +13:00
MrBruh d518f54a6f No debug keyboard End or Escape restart outside the editor (#178)
The Xbox debug keyboard's End and Escape stop the movie and restart the map; this keyboard reaches the game only through the console and the menus' text boxes, so they only ever did so by accident (End in a text box too). They are left out, and with them the keys the console consumed on closing and the test and CI steps that extracted them; Escape still closes the console, and the held-key guard still keeps it from pausing.
2026-10-09 21:13:08 +13:00
MrBruh 989913d252 Merge pull request #178 from eltanschauung/fix/console-escape-capture
Fix Escape restarting the level from the console

Conflict with #222's typing guard resolved: the held keys are kept over a switch of the menus, typing or the console.
2026-10-09 21:10:19 +13:00
MrBruh 66d34b9e65 Keyboard crouch walk at 0.97, without its test (#190)
0.97 is safely below player_control.c's 0.98 cutoff, diagonals too, with no one-float-step margin to guard; the test that extracted the gate by its braces, and the harness flags only it used, are dropped.
2026-10-09 21:04:26 +13:00
eltanschauung f502268853 Fix keyboard crouch walking 2026-10-08 03:12:19 -04:00
eltanschauung 6694d6180e Fix Escape restarting the level from the console 2026-10-07 21:13:27 -04:00
TwistedFlog 6b1d81c7b1 Custom Edition Map Discrepancy Fixes
Fixed: Weapons whose trigger had flag "analog rate of fire" now read how far the trigger is pulled: fully for mouse/keyboard, the actual pressure for a controller trigger. Before they never fired.
source/input/input_abstraction.c
source/input/input_abstraction.h
source/game/player_control.c

Fixed: Weapon spawn orientation on Custom Edition maps. Multiplayer weapons and items now spawn facing the way the map places them, as in Halo PC.
source/game/game_engine.c

Added: PC vehicle set. There's a new PC option in the vehicle set list, between Gun Turrets and Custom. A team set to PC gets every vehicle the map places, as in Halo PC. On Custom Edition maps that means every placement whose spawn flags name the gametype.
port/assets/menus/ce/strings.xml
port/linux/game/menu_functions.c
source/game/game_engine.h
source/game/game_engine.c

Added: Start LAN, internet and split screen games alone. A game with one machine and one player can now start. Pressing start alone begins the countdown, others can join while the game is in progress, and the lobby no longer says it's waiting for another machine or player.
source/networking/network_server_manager.c
source/interface/ui_widget_game_data_input_functions.c
2026-10-07 17:45:15 -06:00
MrBruh c9ee319ab5 Add the PC menus 2026-10-04 01:56:45 +13:00
MrBruh 4adc3a87a5 Remove matching tooling and HALO_LINUX ifdefs 2026-09-30 21:49:46 +13:00
MrBruh a17d89c6f1 Merge bnunu/halo-1 main 2026-09-30 18:13:05 +13:00
Jonas Volman f3aadeab98 Reconcile five Halo functions and approved declaration batches
Integrate coherent B3, P2/K17 prerequisites, completed K1-K16 + S, and the independent profile/effects rulings. Five gains and two explicitly approved B3 debits: net +3 strict functions, +2770 meaningful/+2800 padded bytes (+2774 progress credit). No additional losses; Halo objects 394 to 396 and data unchanged.

Clean rebuild, identical 8252-row stable sweep, 68 valid parks, admission/provider checks, 467-unit warning comparison, unchanged fake scan, and 1318 tests passed. Preserve canonical helper recoveries and unrelated work. Full evidence and disclosures in docs/object_matching_logs/astra_five_function_reconciliation_20260928.md.
2026-09-28 23:17:10 -07:00
MrBruh b0e3bc96e3 Fix framerate-dependent timing 2026-09-27 19:23:44 +13:00
Jonas VolmanandClaude Opus 5 84dce510b3 Wave 10: six functions strict exact (input_xbox complete, pill2d, smoothing)
- input.h: struct key_stroke ascii_code is a char (January stores NONE as
  -1; XINPUT_DEBUG_KEYSTROKE.Ascii is CHAR); edit_text.c drops its (byte)
  cast on the NONE test and stays 5/5. Measured board-wide over all 24
  includers: 0 regressions.
- input_xbox (27/27): _input_get_device_states with indexed gamepad and
  button loops and a MIN tick clamp (park reopen);
  _input_update_keyboard_devices with a short key-code loop and uncast
  ascii ternary (park reopen)
- _structure_test_pill2d (624 B, previously unwritten): left/right offset
  line tests via point_from_line2d and the nearer collision
- _find_turning_point: normalize2d/point_from_line2d/set_real_vector2d
  replace hand-expanded helper math
- _structure_visibility_build_surfaces_traverse_leaf: the static
  bounding_rectangles_intersect returns short through one result (park
  reopen)

Rejected: _first_person_weapon_update (removed NULL guards, UB hold).
Follow-up: _path_test_pill_endpoint_near_wall_ok_bit is file-local in both
path_smoothing.c and path_structure_bsp.c; its owner is path_structure_bsp.h.
Stable diff: 0 regressions; parks 226 -> 223.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:06:06 -07:00
Jonas VolmanandClaude Opus 5 ae10935da6 Match action_vehicle seat evaluation and reopen the input_xbox analog park
Wave w3d batch 1 (the structural retarget: census the frame, the [ebp+/-N] slots
and the relocations before proposing any shape).

- action_vehicle _action_vehicle_evaluate_seat (+976): the unit called
  vehicle_specific_definition_get through a C4013 implicit declaration; including
  its genuine owner units/vehicle_definitions.h fixes the call, and January's
  single-exit shape puts the three seat points in the taken branch's own block
  instead of behind an early return.
- input_xbox _input_update_analog_button_state (+48): park reopened and removed.
- effects _effect_allowed_by_environment and _effect_generate_particles: coupled
  A8 callee/caller re-baseline, ZERO credit. Both are now January-exact in padded
  size (and relocation count for the caller) and stay parked and fuzzy; the
  remeasures carry dated evidence in config/parked.json.

Full ninja, parks 277 active / 0 stale / 0 invalid, stable diff vs
scratch/claude250k-start.json: gained 3 / 1,824 bytes, regressions 0; fake scan
0 leads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 20:14:01 -07:00
Jonas VolmanandClaude Opus 5 e123a1d824 input_xbox: 2 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _input_flush_rumble, _input_get_raw_data_string. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 2 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:43 -07:00
Jonas VolmanandClaude Opus 5 6afca0e7bc input_abstraction: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _input_abstraction_update. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:42 -07:00
Jonas Volman d6250fa794 Reconcile sixth 10K exact source batch 2026-09-12 12:36:44 -07:00
Jonas Volman 303c1d55a7 Reconcile Bink UI network HS and sound graphs 2026-09-08 12:49:14 -07:00
Jonas Volman 4c862ae20d Recover input and unit HUD sounds with source-authentic admission 2026-09-04 17:08:42 -07:00
Jonas Volman d556ba5304 Recover HUD damage and device/input updates with verified owners 2026-09-04 16:33:36 -07:00
Jonas Volman 4795da4089 Recover device, input, HUD and game leaves without exact regressions 2026-09-04 15:43:51 -07:00
Jonas Volman 96086c9c4c Reconcile AI profiling and networking; recover input and file helpers 2026-09-04 14:59:42 -07:00
Jonas Volman 58618a7909 Complete player control input cluster 2026-09-03 05:46:48 -07:00
Jonas Volman 493e090fc3 Recover player UI control-profile cluster 2026-09-02 07:21:57 -07:00
Jonas Volman 435e80783d Recover exact UI widget support wave 2026-09-02 07:17:04 -07:00
Jonas Volman 9f74e9937f Import 909 authenticated January and HCEA symbol names 2026-08-31 16:11:03 -07:00
Jonas Volman 770f1c7113 Advance five objects with exact public leaves 2026-08-28 17:01:33 -07:00
Jonas Volman aefb6568cf Recover input deadzone and tick helpers 2026-08-27 00:50:30 -07:00
Jonas Volman 0084879456 Match input gamepad state accessor 2026-08-21 09:52:53 -07:00
Jonas Volman 8961132283 Recover input abstraction lifecycle preferences 2026-08-21 01:30:10 -07:00
Jonas Volman 9e42d1125c Withdraw unauthenticated typed-wave BSS 2026-08-20 21:13:47 -07:00
Jonas Volman 2ba1c02d32 Recover eleven typed leaf functions 2026-08-20 20:49:05 -07:00
Jonas Volman a6be9cfa02 Recover input suppression helpers 2026-08-20 16:19:22 -07:00
Jonas Volman 94d6a5846e Match input frame end 2026-07-15 10:43:08 -07:00
Jonas Volman e6150470f4 Match input_mouse_button_is_down 2026-07-14 12:46:06 -07:00
Jonas Volman 59a6d459c9 Match input_get_mouse_state 2026-07-14 12:46:06 -07:00
Jonas Volman 1a169cfce1 Match input_deactivate 2026-07-14 12:46:06 -07:00
Jonas Volman 008de7deb0 Match input_activate 2026-07-14 12:46:06 -07:00
punpckhdq cce8ecb1f2 Use space before equals (#21) 2026-06-08 02:44:47 +01:00
Berthalamew 52a0dc4c28 add tag definitions and misc function prototypes (#19)
* misc changes

- add function prototypes and change types
- add profile_initialize

* add tag definitions and prototypes

- real math changes
2026-05-05 18:56:06 +01:00
Berthalamewandpunpckhdq 4817ee1995 console/terminal related work (#8)
* misc changes and additions

formatting changes and add structs/constants for terminal work

* match write_to_error_file and add error_global_data

* console work

* requested changes

* terminal work

100% match all terminal functions

* Formatting

---------

Co-authored-by: punpckhdq <121350336+punpckhdq@users.noreply.github.com>
2026-01-06 23:30:12 +00:00
punpckhdq 035a6fc2d0 input.h prototypes 2025-11-28 13:58:19 +00:00
punpckhdq 4d7f732d30 Match shell.c 2025-11-27 12:36:28 +00:00
punpckhdq 4bd27e8251 Push all applicable HCEX header stubs 2025-11-27 10:43:31 +00:00
punpckhdq 82f700b45b HaloAutoTest.c: match 2025-11-27 02:50:32 +00:00
punpckhdq e830efbd7c Initial commit 2025-11-27 02:27:27 +00:00