Skip to content

Feature/mp3 mouse map control - #230

Open
AluminiumBromid wants to merge 4 commits into
shiiion:primehack-masterfrom
AluminiumBromid:feature/MP3_mouse_map_control
Open

AluminiumBromid wants to merge 4 commits into
shiiion:primehack-masterfrom
AluminiumBromid:feature/MP3_mouse_map_control

Conversation

@AluminiumBromid

Copy link
Copy Markdown

Hi, the past months I've been hard at work to create an implementation to control the map of Metroid Prime 3 with the mouse, as is done in the other games. Metroid Prime 3 is my favorite one of the trilogy (don't smite me), and I really yearned for this feature.
This was not as easy as I thought, but I made it work while still maintaining the usability of the menus.

Usage:
When the 3D map is open, you can rotate the map with mouse/R-stick and translate it with WASD/L-stick while the ingame cursor is locked to the [planet] button.
Hold the "Lock-On" button to control the cursor when using the 3D map.
The "Lock-On" button was chosen because it's the default way the game switches between rotation/translation in the 3D map.
Outside of the 3D map, the cursor functions as before.

I tried to keep the impact on the repo minimal and stay close to the syntax used by this project. I also tried to catch any situation where the map might "jump" after a transition, but I might have missed some.
Currently, the cursor is moveable when "Lock-On" is held. This feels natural for me, but maybe one prefers a switch instead. I am open to feedback.
Thank you.

No solution for settings menu.
…andalone, without disabling access to the other menus.

Usage:
When the 3D map is open, you can rotate the map with mouse/R-stick and translate it with WASD/L-stick while the ingame cursor is locked to the [planet] button.
Hold the "Lock-On" button to control the cursor when using the 3D map.
The "Lock-On" button was choosen because its the default way the game switches between rotation/translation in the 3D map.
Outside of the 3D map, the cursor functions as before.

- Added CheckLockOn() in GCPad, Wiimote, HackConfig
- Reverse engineered web_interface_list-addresses for PRIME_3/PRIME_3_STANDALONE and implemented in AddressDBInit.cpp
- Added menu-cursor-logic in FpsControls.cpp using CheckLockOn() and web_interface_list.
- Reworked MapController.cpp for MP3/Standalone, added VMC option (job==2) to rotate_map_mp3.
- Implemented on_state_change() for MapController to stop the camera from rotating when disabling MapController while in the map.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant