Commit graph

25 commits

Author SHA1 Message Date
MrTheShy ae9afafc69 Merge branch 'pr/keyboard-fixes' into split-screen 2026-03-06 17:31:39 +01:00
MrTheShy 0545e15c48 Fix Escape key not opening pause menu during tutorial hints
The KBM pause check had a IsTutorialVisible guard that blocked
Escape entirely while any tutorial popup was on screen. The
controller path never had this restriction. Removed the check
so Escape behaves the same as Start on controller.
2026-03-06 13:19:07 +01:00
MrTheShy 66d8c647ce Fix splitscreen mouse, keyboard cursor, and local player join
Mouse hover and click in split-screen was broken: the coordinate
conversion from window pixels to Flash/SWF space did not account for
the viewport tile-origin offset or the smaller display dimensions of
each splitscreen quadrant. Now the mouse position is mapped through
three steps: window pixels to UIController screen space, subtract the
viewport origin (which varies per quadrant/split type), then scale
from display size to SWF authoring size. This fixes hover highlighting
and click targeting in all splitscreen layouts.

Mouse input was also bleeding into other splitscreen players' UI groups
because the scene lookup iterated all groups. Now it only checks the
fullscreen group and the primary (KBM) player's group, so controller
players' menus are never affected by mouse movement.

Mouse grab/release (cursor lock for gameplay) was triggering for every
local player's tick, causing fights between splitscreen players over
the cursor state. Now only the primary pad player controls grab state.

The in-game keyboard scene in PC mode had no cursor movement: typing
always appended at the end and backspace always deleted from the end.
Added a cursor position tracker (m_iCursorPos) so that characters are
inserted at the cursor, backspace deletes behind it, and arrow keys,
Home, End, and Delete all work as expected. The Flash caret is synced
to the cursor position each tick. Also stopped syncing the text buffer
back from Flash in PC mode, which was resetting the cursor every tick.
Arrow keys in PC mode no longer get forwarded to Flash (which would
move the on-screen keyboard selector instead of the text cursor).

AddLocalPlayerByUserIndex was calling NotifyPlayerJoined before the
IQNet slot was actually registered, passing a pointer obtained via
GetLocalPlayerByUserIndex which checks customData (not set yet at that
point). Now AddLocalPlayerByUserIndex is called first, and if it
succeeds, the notification uses the static m_player array directly.
The stub AddLocalPlayerByUserIndex now properly initialises the slot
with gamertag and remote/host flags instead of being a no-op.

IsSignedIn was hardcoded to return true only for pad 0, preventing
splitscreen players from joining. Now it checks IsPadConnected so any
connected controller can sign in.

GetXUID returned INVALID_XUID for all pads except 0, which broke
splitscreen player identity. Now each pad gets a unique XUID derived
from the base value plus the pad index.

Pinned internal resolution to 1920x1080 and removed GetSystemMetrics
auto-detection which was picking up the native monitor resolution and
breaking the 16:9 assumption in the viewport math and Flash layout.
DPI awareness is kept for consistent pixel coordinates.
2026-03-06 11:46:51 +01:00
Marvelco b7b29c0b7b
Fixed the double block break in Creative mode (#642)
* this seems unnecessary

* fixed the double block break on single click
2026-03-06 07:48:27 +07:00
void_17 55231bb8d3
Remove AUTO_VAR macro and _toString function (#592) 2026-03-06 02:11:18 +07:00
Korean 8d5452679f
Updated to work with KBM refactor (#507) 2026-03-05 14:48:06 +07:00
Alezito2008 053eb0119c
Fix F3 opening host menu (#522)
* Fix debug menu opening game info menu

* remove redundant F4 handling
2026-03-05 14:26:19 +07:00
daoge_cmd 1dc8a005ed refactor: refactor KBM input code 2026-03-05 01:12:48 +08:00
rtm516 b1b622c303
Fix overlapping debug menus and screens (#294)
* Fix overlapping debug menus and screens

Also resolves a formatting issue with clang-format

* Update readme
2026-03-04 12:31:47 +08:00
Fin 30ecc80250
Add menu display check for sneak toggle in flying mode (#319)
Fixes being able to fly down while a menu is open.
2026-03-04 04:13:35 +07:00
4win ca7615d77d
feat: make the game sensitivity slider affect mouse sensitivity (#255) 2026-03-03 15:13:20 +08:00
daoge b3feddfef3
feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict

* feat: TU19 (Dec 2014) Features & Content (#32)

* December 2014 files

* Working release build

* Fix compilation issues

* Add sound to Windows64Media

* Add DLC content and force Tutorial DLC

* Revert "Add DLC content and force Tutorial DLC"

This reverts commit 97a4399472.

* Disable broken light packing

* Disable breakpoint during DLC texture map load

Allows DLC loading but the DLC textures are still broken

* Fix post build not working

* ...

* fix vs2022 build

* fix cmake build

---------

Co-authored-by: Loki <lokirautio@gmail.com>
2026-03-03 03:04:10 +08:00
void_17 b9a2951901 Revert "Get rid of MSVC's __int64"
This reverts commit d63f79325f.
2026-03-02 17:39:35 +07:00
void_17 119bff3514 Revert "shared_ptr -> std::shared_ptr"
This reverts commit 7074f35e4b.
2026-03-02 17:37:16 +07:00
void_17 8a2a62ea1d Revert "Add hook for modloader (#117)"
This reverts commit 7bee4770df.
2026-03-02 17:37:12 +07:00
void_17 7ae0c13854 Revert "dynamic_pointer_cast -> std::dynamic_pointer_cast"
This reverts commit 07ad68bc15.
2026-03-02 17:36:56 +07:00
void_17 07ad68bc15 dynamic_pointer_cast -> std::dynamic_pointer_cast 2026-03-02 17:10:34 +07:00
Daniel McGuire 7bee4770df
Add hook for modloader (#117) 2026-03-02 16:12:49 +07:00
void_17 7074f35e4b shared_ptr -> std::shared_ptr
This is one of the first commits in a plan to remove all `using namespace std;` lines in the entire codebase as it is considered anti-pattern today.
2026-03-02 15:58:20 +07:00
void_17 d63f79325f Get rid of MSVC's __int64
Use either int64_t, uint64_t or long long and unsigned long long, defined as per C++11 standard
2026-03-02 15:53:32 +07:00
Sean Hoyt b5111232aa
feat: Windows64 local multiplayer support (#13)
- Skip QuadrantSignin (profile selector) on Windows64 in both LoadMenu
  and CreateWorldMenu, proceeding directly to local play since Xbox Live
  stubs always return true for IsSignedInLive()
- Fix IsLocalMultiplayerAvailable() to not require IsHiDef() on Windows64
- Allow pad-connected players to join without a profile sign-in check
- Fix ghost RemotePlayer creation by scanning all local player slots and
  matching on server-assigned player index rather than controller slot,
  fixing P3/P4 ghost entities when joining out of controller order
- Give each player a unique name (Player 1-4) based on controller index
  instead of a single shared stub name
- Use raw XInput (XInputGetState) for secondary controller join detection,
  bypassing the 4J toggle system which consumes all button presses before
  game logic runs; uses a 120-frame latch for a reliable detection window
- Add .gitignore for Visual Studio build artifacts and output directories
2026-03-02 00:50:48 +08:00
daoge_cmd 5fa4418adb feat: implement per-frame mouse look for reduced input latency on Windows 2026-03-01 21:50:44 +08:00
daoge_cmd 2aee607d6c feat: implement game-tick input handling and per-frame edge detection 2026-03-01 19:59:48 +08:00
daoge_cmd bdef1f9412 feat: add support for keyboard and mouse input 2026-03-01 19:20:41 +08:00
daoge_cmd b691c43c44 Initial commit 2026-03-01 12:16:08 +08:00