From dbfd9d9c62e3bfd156ced2d9fed00a3747842c9e Mon Sep 17 00:00:00 2001 From: Jonas Volman Date: Thu, 16 Jul 2026 13:35:22 -0700 Subject: [PATCH] Match player control camera and direction tests --- source/game/player_control.c | 34 ++++++++++++++++++++++++++++++++++ source/game/player_control.h | 13 +++++++++++++ 2 files changed, 47 insertions(+) diff --git a/source/game/player_control.c b/source/game/player_control.c index cd43e9b7..1e6415bc 100644 --- a/source/game/player_control.c +++ b/source/game/player_control.c @@ -181,6 +181,7 @@ symbols in this file: /* ---------- headers */ #include "cseries.h" +#include "game/game.h" #include "game/player_control.h" #include "players.h" @@ -212,6 +213,25 @@ void player_control_dispose_from_old_map( return; } +boolean code_000a5780( + void) +{ + return (boolean)(!TEST_FLAG( + player_control_globals->flags, + _player_control_camera_control_disabled_bit) && + !game_time_get_paused()); +} + +boolean scripted_player_control_set_camera_control( + boolean camera_control) +{ + SET_FLAG( + player_control_globals->flags, + _player_control_camera_control_disabled_bit, + !camera_control); + return camera_control; +} + void player_control_action_test_reset( void) { @@ -322,4 +342,18 @@ boolean player_control_action_test_look_relative_down( _player_control_look_relative_down_bit); } +boolean player_control_action_test_move_relative_all_directions( + void) +{ + return !(~player_control_globals->action_flags & + _player_control_move_relative_all_directions_flags); +} + +boolean player_control_action_test_look_relative_all_directions( + void) +{ + return !(~player_control_globals->action_flags & + _player_control_look_relative_all_directions_flags); +} + /* ---------- private code */ diff --git a/source/game/player_control.h b/source/game/player_control.h index e0140773..9acaba24 100644 --- a/source/game/player_control.h +++ b/source/game/player_control.h @@ -19,6 +19,13 @@ enum _player_control_look_relative_right_bit, }; +enum +{ + _player_control_camera_control_disabled_bit, + _player_control_look_relative_all_directions_flags = 0x780, + _player_control_move_relative_all_directions_flags = 0x7800, +}; + /* ---------- structures */ struct player_control_globals_header @@ -44,6 +51,8 @@ void player_control_dispose( void); void player_control_dispose_from_old_map( void); +boolean scripted_player_control_set_camera_control( + boolean camera_control); void player_control_action_test_reset( void); boolean player_control_action_test_accept( @@ -68,6 +77,10 @@ boolean player_control_action_test_look_relative_up( void); boolean player_control_action_test_look_relative_down( void); +boolean player_control_action_test_move_relative_all_directions( + void); +boolean player_control_action_test_look_relative_all_directions( + void); /* ---------- globals */