diff --git a/data/tr1/ship/cfg/TR1X_gameflow.json5 b/data/tr1/ship/cfg/TR1X_gameflow.json5 index ea8e4217b..e4a40615c 100644 --- a/data/tr1/ship/cfg/TR1X_gameflow.json5 +++ b/data/tr1/ship/cfg/TR1X_gameflow.json5 @@ -689,6 +689,7 @@ "KEYMAP_SAVE": "Quick Save", "KEYMAP_STEP_LEFT": "Step Left", "KEYMAP_STEP_RIGHT": "Step Right", + "KEYMAP_TOGGLE_PHOTO_MODE": "Toggle Photo Mode", "KEYMAP_TOGGLE_UI": "Toggle UI", "KEYMAP_TURBO_CHEAT": "Turbo Speed", "KEYMAP_USE_BIG_MEDI": "Large Medi", diff --git a/data/tr1/ship/cfg/TR1X_gameflow_demo_pc.json5 b/data/tr1/ship/cfg/TR1X_gameflow_demo_pc.json5 index 40b644696..8f41377f8 100644 --- a/data/tr1/ship/cfg/TR1X_gameflow_demo_pc.json5 +++ b/data/tr1/ship/cfg/TR1X_gameflow_demo_pc.json5 @@ -182,6 +182,7 @@ "KEYMAP_SAVE": "Quick Save", "KEYMAP_STEP_LEFT": "Step Left", "KEYMAP_STEP_RIGHT": "Step Right", + "KEYMAP_TOGGLE_PHOTO_MODE": "Toggle Photo Mode", "KEYMAP_TOGGLE_UI": "Toggle UI", "KEYMAP_TURBO_CHEAT": "Turbo Speed", "KEYMAP_USE_BIG_MEDI": "Large Medi", diff --git a/data/tr1/ship/cfg/TR1X_gameflow_ub.json5 b/data/tr1/ship/cfg/TR1X_gameflow_ub.json5 index 93cb8f00e..991122d4f 100644 --- a/data/tr1/ship/cfg/TR1X_gameflow_ub.json5 +++ b/data/tr1/ship/cfg/TR1X_gameflow_ub.json5 @@ -254,6 +254,7 @@ "KEYMAP_SAVE": "Quick Save", "KEYMAP_STEP_LEFT": "Step Left", "KEYMAP_STEP_RIGHT": "Step Right", + "KEYMAP_TOGGLE_PHOTO_MODE": "Toggle Photo Mode", "KEYMAP_TOGGLE_UI": "Toggle UI", "KEYMAP_TURBO_CHEAT": "Turbo Speed", "KEYMAP_USE_BIG_MEDI": "Large Medi", diff --git a/src/tr1/game/game_string.def b/src/tr1/game/game_string.def index 659cd2df7..00e014610 100644 --- a/src/tr1/game/game_string.def +++ b/src/tr1/game/game_string.def @@ -73,6 +73,7 @@ GS_DEFINE(KEYMAP_TURBO_CHEAT, "Turbo Speed") GS_DEFINE(KEYMAP_ENTER_CONSOLE, "Enter Console") GS_DEFINE(KEYMAP_CHANGE_TARGET, "Change Target") GS_DEFINE(KEYMAP_TOGGLE_UI, "Toggle UI") +GS_DEFINE(KEYMAP_TOGGLE_PHOTO_MODE, "Toggle Photo Mode") GS_DEFINE(KEYMAP_CAMERA_FORWARD, "Camera Forward") GS_DEFINE(KEYMAP_CAMERA_BACK, "Camera Back") GS_DEFINE(KEYMAP_CAMERA_LEFT, "Camera Left") diff --git a/src/tr1/game/option/option_control.c b/src/tr1/game/option/option_control.c index ce487d812..a4b6926a2 100644 --- a/src/tr1/game/option/option_control.c +++ b/src/tr1/game/option/option_control.c @@ -128,6 +128,7 @@ static const TEXT_COLUMN_PLACEMENT CtrlTextPlacementNormal[] = { { INPUT_ROLE_OPTION, GS_ID(KEYMAP_INVENTORY), false }, { INPUT_ROLE_PAUSE, GS_ID(KEYMAP_PAUSE), true }, { INPUT_ROLE_CHANGE_TARGET, GS_ID(KEYMAP_CHANGE_TARGET), true }, + { INPUT_ROLE_TOGGLE_PHOTO_MODE, GS_ID(KEYMAP_TOGGLE_PHOTO_MODE), true }, { INPUT_ROLE_CAMERA_UP, GS_ID(KEYMAP_CAMERA_UP), true }, { INPUT_ROLE_CAMERA_DOWN, GS_ID(KEYMAP_CAMERA_DOWN), true }, { INPUT_ROLE_CAMERA_FORWARD, GS_ID(KEYMAP_CAMERA_FORWARD), true }, @@ -167,6 +168,7 @@ static const TEXT_COLUMN_PLACEMENT CtrlTextPlacementCheats[] = { { INPUT_ROLE_OPTION, GS_ID(KEYMAP_INVENTORY), false }, { INPUT_ROLE_PAUSE, GS_ID(KEYMAP_PAUSE), true }, { INPUT_ROLE_CHANGE_TARGET, GS_ID(KEYMAP_CHANGE_TARGET), true }, + { INPUT_ROLE_TOGGLE_PHOTO_MODE, GS_ID(KEYMAP_TOGGLE_PHOTO_MODE), true }, { INPUT_ROLE_CAMERA_UP, GS_ID(KEYMAP_CAMERA_UP), true }, { INPUT_ROLE_CAMERA_DOWN, GS_ID(KEYMAP_CAMERA_DOWN), true }, { INPUT_ROLE_CAMERA_FORWARD, GS_ID(KEYMAP_CAMERA_FORWARD), true }, diff --git a/src/tr1/global/types.h b/src/tr1/global/types.h index d48733e61..32f7cae92 100644 --- a/src/tr1/global/types.h +++ b/src/tr1/global/types.h @@ -969,6 +969,7 @@ typedef union INPUT_STATE { uint64_t enter_console : 1; uint64_t change_target : 1; uint64_t toggle_ui : 1; + uint64_t toggle_photo_mode : 1; }; } INPUT_STATE; @@ -1011,7 +1012,8 @@ typedef enum { INPUT_ROLE_TOGGLE_UI = 35, INPUT_ROLE_CAMERA_UP = 36, INPUT_ROLE_CAMERA_DOWN = 37, - INPUT_ROLE_NUMBER_OF = 38, + INPUT_ROLE_TOGGLE_PHOTO_MODE = 38, + INPUT_ROLE_NUMBER_OF = 39, } INPUT_ROLE; typedef enum { diff --git a/src/tr1/specific/s_input.c b/src/tr1/specific/s_input.c index 1a15bb13e..53370d8b4 100644 --- a/src/tr1/specific/s_input.c +++ b/src/tr1/specific/s_input.c @@ -67,6 +67,7 @@ static INPUT_SCANCODE m_Layout[INPUT_LAYOUT_NUMBER_OF][INPUT_ROLE_NUMBER_OF] = { SDL_SCANCODE_H, // INPUT_ROLE_TOGGLE_UI SDL_SCANCODE_Q, // INPUT_ROLE_CAMERA_UP SDL_SCANCODE_E, // INPUT_ROLE_CAMERA_DOWN + SDL_SCANCODE_F1, // INPUT_ROLE_TOGGLE_PHOTO_MODE }, // custom user controls @@ -109,6 +110,7 @@ static INPUT_SCANCODE m_Layout[INPUT_LAYOUT_NUMBER_OF][INPUT_ROLE_NUMBER_OF] = { SDL_SCANCODE_H, // INPUT_ROLE_TOGGLE_UI SDL_SCANCODE_Q, // INPUT_ROLE_CAMERA_UP SDL_SCANCODE_E, // INPUT_ROLE_CAMERA_DOWN + SDL_SCANCODE_F1, // INPUT_ROLE_TOGGLE_PHOTO_MODE }, { @@ -150,6 +152,7 @@ static INPUT_SCANCODE m_Layout[INPUT_LAYOUT_NUMBER_OF][INPUT_ROLE_NUMBER_OF] = { SDL_SCANCODE_H, // INPUT_ROLE_TOGGLE_UI SDL_SCANCODE_Q, // INPUT_ROLE_CAMERA_UP SDL_SCANCODE_E, // INPUT_ROLE_CAMERA_DOWN + SDL_SCANCODE_F1, // INPUT_ROLE_TOGGLE_PHOTO_MODE }, { @@ -191,6 +194,7 @@ static INPUT_SCANCODE m_Layout[INPUT_LAYOUT_NUMBER_OF][INPUT_ROLE_NUMBER_OF] = { SDL_SCANCODE_H, // INPUT_ROLE_TOGGLE_UI SDL_SCANCODE_Q, // INPUT_ROLE_CAMERA_UP SDL_SCANCODE_E, // INPUT_ROLE_CAMERA_DOWN + SDL_SCANCODE_F1, // INPUT_ROLE_TOGGLE_PHOTO_MODE } // clang-format on }; @@ -237,6 +241,7 @@ static CONTROLLER_MAP { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_UI { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, -1 }, // INPUT_ROLE_CAMERA_UP { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, 1 }, // INPUT_ROLE_CAMERA_DOWN + { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_PHOTO_MODE }, { @@ -278,6 +283,7 @@ static CONTROLLER_MAP { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_UI { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, -1 }, // INPUT_ROLE_CAMERA_UP { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, 1 }, // INPUT_ROLE_CAMERA_DOWN + { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_PHOTO_MODE }, { @@ -319,6 +325,7 @@ static CONTROLLER_MAP { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_UI { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, -1 }, // INPUT_ROLE_CAMERA_UP { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, 1 }, // INPUT_ROLE_CAMERA_DOWN + { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_PHOTO_MODE }, { @@ -360,6 +367,7 @@ static CONTROLLER_MAP { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_UI { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, -1 }, // INPUT_ROLE_CAMERA_UP { BT_AXIS, {SDL_CONTROLLER_AXIS_LEFTY}, 1 }, // INPUT_ROLE_CAMERA_DOWN + { BT_BUTTON, {SDL_CONTROLLER_BUTTON_INVALID}, 0 }, // INPUT_ROLE_TOGGLE_PHOTO_MODE } // clang-format on }; @@ -873,6 +881,7 @@ static INPUT_STATE M_GetControllerState( state.roll |= M_GetBindState(INPUT_ROLE_ROLL, cntlr_layout_num); state.option |= M_GetBindState(INPUT_ROLE_OPTION, cntlr_layout_num); state.pause |= M_GetBindState(INPUT_ROLE_PAUSE, cntlr_layout_num); + state.toggle_photo_mode |= M_GetBindState(INPUT_ROLE_TOGGLE_PHOTO_MODE, cntlr_layout_num); state.camera_up |= M_GetBindState(INPUT_ROLE_CAMERA_UP, cntlr_layout_num); state.camera_down |= M_GetBindState(INPUT_ROLE_CAMERA_DOWN, cntlr_layout_num); state.camera_forward |= M_GetBindState(INPUT_ROLE_CAMERA_FORWARD, cntlr_layout_num); @@ -974,6 +983,7 @@ INPUT_STATE S_Input_GetCurrentState( linput.roll = M_Key(INPUT_ROLE_ROLL, layout_num); linput.option = M_Key(INPUT_ROLE_OPTION, layout_num); linput.pause = M_Key(INPUT_ROLE_PAUSE, layout_num); + linput.toggle_photo_mode = M_Key(INPUT_ROLE_TOGGLE_PHOTO_MODE, layout_num); linput.camera_up = M_Key(INPUT_ROLE_CAMERA_UP, layout_num); linput.camera_down = M_Key(INPUT_ROLE_CAMERA_DOWN, layout_num); linput.camera_forward = M_Key(INPUT_ROLE_CAMERA_FORWARD, layout_num);