- Updated ModMenuModule::MouseControlCheat
- Added an option to not remove a CameraWorker when the game is paused (ModMenuModule::MouseControlWorker::RemoveOnGamePause method)
- Updated RotateCameraWorker to use the above method returning false
- Updated ModMenuModule::CameraCheat
- Added an option to adjust ModMenuModule::CameraCheat horizontal rotation center Z
- Updated it to use the camera ped instead of current player ped (99% of cases the same thing)
- Slightly refactored
- Updated ModMenuModule::Utils::Vertex to use external horRotCenter
- Updated ModMenuModule::Utils::Vertex
- Updated so world space z position 0 is the bottom of the map
- Removed redundant zoomFactor and simplified calculations
- Replaced ToSetZPosition and ScaleXY with TransformArrows
- Fixed issues with misaligned arrows in 3D camera mode
- Fixed arrows scaling problem when using additional z offset
- Added ModMenuModule::MouseControlOptions::rotateCamera
- Updated ModMenuModule::MouseControlMenu to include the above option
- Updated ModMenuModule::MouseControl worker sets and GetAppliableWorkerSetType logic
- Added ModMenuModule::RotateCameraWorker
- Updated ModMenuModule::MouseControlWorkerRegistry to use RotateCameraWorker when the player is driving a car
- Added ModMenuModule::CameraCheatOptions::followPedRotationOffset option
- Updated ModMenuModule::CameraAdvancedMenu to include the above option input
- Updated base options in ModMenuModule::Utils::CameraEasyMode to include the above option
- Added MouseModule::MouseManager::GetClientAreaAspectRatio static method
- Updated MouseModule::MouseManager::GetClientAreaSize static method
- Made it public
- Made it return actual size, not the coords of bottom-right pixel
- Updated other MouseModule::MouseManager methods to work with the new GetClientAreaSize logic
- Updated game structs in gta2.h:
- Added CAR_LOCK_STATE enum
- Renamed and retyped Car::locksDoor
- Renamed PLAYER_PHYSICS_STATE to PLAYER_CONTROL_STATE and updated it
- Renamed and retyped Player::state1
- Updated comments on Player cameras
- Updated ModMenuModule::CameraCheat and ModMenuModule::MouseControlCheat to use auxiliary player ped when it is set as the current one
- Renamed ModMenuModule::MouseControlCheat::GetPlayerRotation function to GetPlayerPedRotation and changed its return type
- Added Game::Utils::GetPlayer helper function
- Added Game::Utils::GetPlayerCurrentPed helper function
- Added Game::Utils::GetPlayerCurrentPedRotationPtr helper function
- Added Game::Functions::GetCurrentPed function
- Moved "Camera control" menu button from ModMenuModule::MiscMenu to ModMenuModule::MainMenu
- Updated "Native cheats" menu button text in ModMenuModule::MainMenu
- Added back a spacer in ModMenuModule::CameraRenderingMenu
- Updated ModMenuModule::CameraPosCheatCoordSegment constructor coordLabel param type to std::string_view
- Updated ModMenuModule::SavedCarsCheat::SaveCar to use emplace instead of insert
- Updated ModMenuModule::CheatBase constructor persistenceKey param type to std::string_view
- Updated UiModule::Text constructor text param type to std::string_view
- Updated UiModule::Text::SetText text param type to std::string_view
- Updated UiModule::KeyBindChangeController constructor keyBindName param type to std::string_view
- Updated ModMenuModule::ShadowsFixCheat to be always enabled
- Removed "Shadows fix" toggle from ModMenuModule::CameraRenderingMenu
- Replaced ModMenuModule::Utils::CameraEasyMode::CameraEasyMode::FixShadows enum option with a dummy Unmodified2 option that acts just like Unmodified
- Added backwards compatibility code related to the removal of the FixShadows option
**POSSIBLY BREAKING CHANGE**
- Removed ModMenuModule::ForceControlsCheat::GetControlIndex as the same function is now served by Game::Utils
- Renamed ModMenuModule::ForceControlsCheat::CheckUsesController to CheckUsesGamepad
- Updated ModMenuModule::MouseControlCheat to work correctly with the above changes
- Renamed ModMenuModule::MouseControlCheat::EnsureNotControllerControls to EnsureNotGamepadControls
- Unified persistence file location to always be [exe_dir]\seukomod.dat. It used to be [exe_dir]\scripts\seukomod.dat in ASI builds.
- Added PersistenceModule::PersistenceManager::CopyLegacyFileIfExists static method for backwards copatibility
- Updated PersistenceModule to use wide character strings for paths
- Added PersistenceModule::PersistenceManager::GetRootDirectory to extract that logic out of UpdatePersistenceFilePath method