Commit Graph

626 Commits

Author SHA1 Message Date
izawartka
23756cd5c4 Add spdlog wide char support
- Added spdlog wide char support
- Cleaned up common includes
2026-03-23 00:16:51 +01:00
izawartka
8867853d23 Fix MouseModule events not working in fullscreen
- Fixed some MouseModule events not working when the game is in fullscreen mode
2026-03-22 22:53:12 +01:00
izawartka
d83c773344 Add MouseExclusiveInitEvent
- Added MouseExclusiveInitEvent
2026-03-22 22:52:21 +01:00
izawartka
45981f66fd Add game functions for mouse exclusivity control
- Added Game::Functions::InitMouseExclusiveType
- Added Game::Functions::DeinitMouseExclusiveType
2026-03-22 22:51:54 +01:00
izawartka
1b7682e90b Refactor cursor visibility control
**POSSIBLY BREAKING CHANGE**
- Refactored MouseModule cursor visibility control to allow for forcing the cursor to be visible or invisible
- Added CursorVisibilityConverter
- Updated ModMenuModule::MouseDebugMenu to work correctly with the new visibility control
- Updated ModMenuModule::MouseControlCheat to work correctly with the new visibility control
2026-03-22 20:26:55 +01:00
izawartka
f7da947dc8 Add events for cursor hide / show
- Added HideCursorEvent
- Added ShowCursorEvent
2026-03-22 20:20:52 +01:00
izawartka
647ed40a6f Added hide / show cursor game functions
- Added Game::Functions::HideCursor function
- Added Game::Functions::ShowCursor function
2026-03-22 20:10:11 +01:00
izawartka
2666795f80 1.3.0 Release tweaks
- Bumped up version number to 1.3.0
- Updated README.md
2026-03-08 22:28:07 +01:00
izawartka
c58c089add Optimize CameraCheat
- Optimized ModMenuModule::CameraCheat by adding ModMenuModule::Utils::Vertex::CachedCameraTransform and updating it only if camera transform changes
2026-03-06 17:39:20 +01:00
izawartka
40734da4ac Extract native cheats categorization to utils
**POSSIBLY BREAKING CHANGE**
- Extracted native cheats categorization from ModMenuModule::NativeCheatsKeeperCheat to ModMenuModule::Utils::CategorizedNativeCheats
- Updated ModMenuModule and converters to work correctly with the above change
2026-03-06 16:24:37 +01:00
izawartka
686ecafa3a Update NativeCheatsKeeperCheat to use cheat indexes
**POSSIBLY BREAKING CHANGE**
- Updated ModMenuModule::NativeCheatsKeeperCheat to operate on cheat indexes (former cheat addresses) instead of on const references to NativeCheatDefs
- Updated other ModMenuModule classes to work correctly with the above change
2026-03-05 21:11:27 +01:00
izawartka
958b0d05b1 Hide MouseDebugMenu
- Removed ModMenuModule::MouseDebugMenu from ModMenuModule::MiscMenu
- Marked ModMenuModule::MouseDebugMenu as unused
2026-03-05 20:30:26 +01:00
izawartka
ee76d18ec0 Updated the code to use silent failing event removal
- Updated the codebase to use silent failing Core::EventListenerSupport::RemoveEventListener
- Slitghtly updated MouseModule::MouseManager::Detach error check logic and its log message
2026-03-05 18:44:06 +01:00
izawartka
2f4c83a4fd Add quick action "Key already in use" message
- Added ModMenuModule::QuickActionKeySegment providing a message if a key is already in use
- Updated ModMenuModule::AddQuickActionMenu to use ModMenuModule::QuickActionKeySegment
- Updated ModMenuModule::QuickActionOptionsMenu to use ModMenuModule::QuickActionKeySegment
2026-03-05 18:32:17 +01:00
izawartka
0799950e51 Add template SegmentSupport::DeleteSegment method
- Added ModMenuModule::SegmentSupport::DeleteSegment<SegmentT>(SegmentT&* segment) method to not have to cast segments to ModMenuModule::SegmentBase*& before deletion
2026-03-05 18:30:23 +01:00
izawartka
8f72358c73 Rename AddQuickActionMenu methods & fields
- Renamed ModMenuModule::AddQuickActionMenu methods to not confuse them with ModMenuModule::SegmentSupport methods
    - CreateSegment ->CreateOptionsSegment
    - AttachSegment -> AttachOptionsSegment
    - DetachSegment -> DetachOptionsSegment
    - DestroySegment -> DestroyOptionsSegment
- Renamed ModMenuModule::AddQuickActionMenu fields to keep them consistent with method names
    - m_segmentBaseIndex -> m_optionsSegmentBaseIndex
    - m_segmentContainer -> m_optionsSegmentContainer
    - m_segmentInstance -> m_optionsSegment
2026-03-05 18:28:13 +01:00
izawartka
35d52c9042 Add methods related to checking if a key is in use
- Added KeyBindingModule::BindManager::GetBindsByKey method
- Added KeyBindingModule::BindManager::CheckKeyIsInUse method
- Added ModMenuModule::QuickActionManager::CheckKeyIsInUse static method
2026-03-05 18:22:14 +01:00
izawartka
0a9322f2e7 Add KeyBindUpdateEvent
- Added KeyBindingModule::KeyBindUpdateEvent
2026-03-04 23:24:01 +01:00
izawartka
634cfc0ac4 Improve BindManager memor safety
*BREAKING CHANGE*
- Updated KeyBindingModule::BindManager to return weak pointers instead of raw pointers to improve memory safety
- Updated the codebase to work correctly with the above changes
    - Updated ModMenuModule::MenuManager
    - Updated ModMenuModule::QuickActionManager
    - Updated UiModule::KeyBindChangeController
    - Updated UiModule::StandardBindsSupport
2026-03-04 23:24:01 +01:00
izawartka
9b3e7f3cce Add Watched specialization for opt. resolvers
- Added Core::Watched specialization for resolvers that return std::optional
2026-03-04 23:24:01 +01:00
izawartka
341bdb34ae Update MenuItemController
- Updated UiModule::MenuItemController
    - Added comments to document and unify interface's behavior
    - Added SetEditStateChangeCallback method
- Updated other UiModule controllers to implement EditStateChangeCallback
2026-03-04 23:24:01 +01:00
izawartka
1988d9186c Add QuickActionManager sorting
- Added sorting by id in ModMenuModule::QuickActionManager::GetAll
2026-03-04 23:24:01 +01:00
izawartka
fa1217cb78 Add QuickActionManager listening control
- Added ModMenuModule::QuickActionManager::SetListen and IsListening methods
2026-03-04 23:24:01 +01:00
izawartka
a33e3afbb0 Improve EventListenerSupport class
- Optimized Core::EventListenerSupport
- Updated Core::EventListenerSupport::HasEventListener to be const
- Updated Core::EventListenerSupport::RemoveEventListener to have an optional param failSilently = false
2026-03-04 23:24:01 +01:00
izawartka
29b81cfd40 Update ToastManager to clear toasts on game end
- Updated ModMenuModule::ToastManager to clear toasts on game end
2026-03-04 23:24:01 +01:00
izawartka
43b29b476b Update SegmentSupport methods
- Renamed ModMenuModule::SegmentSupport::CreateAttachSetVisibleSegment to CreateAttachSegment
- Updated ModMenuModule::SegmentSupport::AddAttachSetVisibleSegment
    - Renamed to AddAttachSegment
    - Retyped to bool to return a success status
    - Improved logging
2026-03-04 23:24:00 +01:00
izawartka
8d0f3403c6 Add SwitchCameraModeAction
- Added CameraEasyModesListConverter
- Added ModMenuModule::SwitchCameraModeAction
- Added ModMenuModule::SelectCameraModesMenu
- Added ModMenuModule::SwitchCameraModeSegment
- Added ModMenuModule::Utils::CameraEasyMode::GetNextMode util function
2026-03-04 23:24:00 +01:00
izawartka
6cf41c970b Add Quick Action segments submenus support
- Extended ModMenuModule::AddQuickActionMenu to allow for submenus in Quick Action segments
- Added ModMenuModule::SegmentBase::OnPassedMenuAction virtual method
2026-03-04 23:24:00 +01:00
izawartka
203b5ae8d1 Add an option to manually save selected menu index
- Added ModMenuModule::MenuBase::SaveCurrentSelectedIndex method
2026-03-03 19:53:13 +01:00
izawartka
6e3e7074f5 Add Elipsis and All<=>Specified converters
- Added ElipsisConverter
- Added AllSpecifiedConverter
2026-03-03 19:52:12 +01:00
izawartka
4c567a0e05 Rename Game::Game fields
- Renamed Game::Game::CurrentPlayer field to currentPlayer
- Renamed Game::Game::CurrentPlayer2 field to currentPlayer2
2026-03-02 20:44:26 +01:00
izawartka
bc32e2da95 Fix buggy MouseControlMenu
- Fixed ModMenuModule::MouseControlMenu items sometimes initializing in wrong order causing their indicies to be mixed up
2026-03-02 19:07:22 +01:00
izawartka
6c79ef39ee Make MouseControlCheat use ForceControlsCheat
- Updated ModMenuModule::MouseControlCheat to use ModMenuModule::ForceControlsCheat instead of directly modifying keyboard state to prevent multiplayer desync
2026-03-02 19:06:50 +01:00
izawartka
43a8aab0fc Add ForceControlsCheat
- Added MouseMenuModule::ForceControlsCheat
2026-03-02 16:27:51 +01:00
izawartka
ccfc843d44 Add CameraCheat dependencies method
- Added ModMenuModule::CameraPosCheat as a dependency for ModMenuModule::CameraCheats
2026-03-02 16:15:01 +01:00
izawartka
1a542ae158 Add cheat dependencies system
- Added an option to specify dependencies for cheats added to ModMenuModule::CheatRegistry
2026-03-02 16:13:49 +01:00
izawartka
d08d805d16 Update controls related game structs and getters
- Added Game::Controls struct
- Added Game::Memory::GetControls function
- Updated Game::KEYBOARD_STATE struct
2026-03-02 16:10:05 +01:00
izawartka
5bfd1eb08a Add KeyboardGetDataEvent
- Added KeyboardGetDataEvent
2026-02-27 11:18:18 +01:00
izawartka
bc6ffdfc63 Add MouseControlMenu
- Added ModMenuModule::MouseControlMenu
2026-02-27 02:49:18 +01:00
izawartka
cfaa5a7430 Implement MouseControlCheat auto mode
- Added ModMenuModule::MouseControlCheat auto mode
2026-02-27 02:48:20 +01:00
izawartka
17eb6ff18b Add CameraCheat CheatOptionsUpdateEvent support
- Added ModMenuModule::CheatOptionsUpdateEvent support for ModMenuModule::CameraCheat
2026-02-27 02:47:39 +01:00
izawartka
c088b7a4b8 Add MouseControlCheat
- Added ModMenuModule::MouseControlCheat
2026-02-27 02:42:37 +01:00
izawartka
24d7cc770a Add keyboard related game structs and functions
- Added Game structs and enums:
    - DirectInput_DeviceObjectData
    - KeyboardEvent
    - REPLAY_STATUS
    - Keyboard
    - Tick
- Added Game::Memory getter functions:
    - GetIsMultiplayer
    - GetDirectInputDeviceObjectData
    - GetDirectInputDeviceObjectDataCount
    - GetKeyboard
    - GetTick
2026-02-27 01:06:02 +01:00
izawartka
c5f2d5c72e Add CheatOptionsUpdateEvent
- Added ModMenuModule::CheatOptionsUpdateEvent
2026-02-27 01:06:02 +01:00
izawartka
56e0d456c6 Add FloatConverter zero precision support
- Added a support for setting precision to 0 in FloatConverter
2026-02-25 19:46:35 +01:00
izawartka
9b5224699a Fix MouseManager bug at locked first tick
- Fixed MouseModule::MouseManager dispatching MouseLockMoveEvent with wrong delta at first tick after turning on cursor lock
2026-02-25 18:33:19 +01:00
izawartka
e90198e7aa Add KeyboardStateUpdateEvent
- Added KeyboardStateUpdateEvent
- Renamed Game::KEYBOARD_STATE enum values to start with KEYBOARD_STATE prefix
2026-02-25 15:11:49 +01:00
izawartka
bf90fc0b7a Add GamePauseEvent and GameUnpauseEvent
- Added GamePauseEvent
- Added GameUnpauseEvent
- Added Game::Functions functions:
    - ToggleGamePause
    - UnpauseGame
2026-02-25 15:10:24 +01:00
izawartka
d8aab826ae Minor bugfixes
- Updated ModMenuModule::CameraPos::GetAllCameraPosCheatModes to return const reference
- Fixed indenting in ModMenuModule::CameraAdvancedMenu
- Fixed missing SetPreviousSelectedIndex in ModMenuModule::CameraRenderingMenu::Attach
- Added missing Init method in KeyboardEvent
2026-02-25 13:19:13 +01:00
izawartka
a611c5fa53 Add MouseDebugMenu
- Added temporary ModMenuModule::MouseDebugMenu
2026-02-24 17:25:13 +01:00