Skip to content

Commit 2c31b79

Browse files
EXio4est31
authored andcommitted
Add zoom, tweakable with zoom_fov, default key: Z (like optifine)
1 parent c013c73 commit 2c31b79

7 files changed

+20
-2
lines changed

src/camera.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
103103
m_cache_fall_bobbing_amount = g_settings->getFloat("fall_bobbing_amount");
104104
m_cache_view_bobbing_amount = g_settings->getFloat("view_bobbing_amount");
105105
m_cache_fov = g_settings->getFloat("fov");
106+
m_cache_zoom_fov = g_settings->getFloat("zoom_fov");
106107
m_cache_view_bobbing = g_settings->getBool("view_bobbing");
107108
m_nametags.clear();
108109
}
@@ -387,8 +388,13 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime,
387388
if (m_camera_mode == CAMERA_MODE_THIRD_FRONT)
388389
m_camera_position = my_cp;
389390

390-
// Get FOV setting
391-
f32 fov_degrees = m_cache_fov;
391+
// Get FOV
392+
f32 fov_degrees;
393+
if (player->getPlayerControl().zoom) {
394+
fov_degrees = m_cache_zoom_fov;
395+
} else {
396+
fov_degrees = m_cache_fov;
397+
}
392398
fov_degrees = MYMAX(fov_degrees, 10.0);
393399
fov_degrees = MYMIN(fov_degrees, 170.0);
394400

src/camera.h

+1
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ class Camera
231231
f32 m_cache_fall_bobbing_amount;
232232
f32 m_cache_view_bobbing_amount;
233233
f32 m_cache_fov;
234+
f32 m_cache_zoom_fov;
234235
bool m_cache_view_bobbing;
235236

236237
std::list<Nametag *> m_nametags;

src/client/keys.h

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class KeyType {
5959
INCREASE_VIEWING_RANGE,
6060
DECREASE_VIEWING_RANGE,
6161
RANGESELECT,
62+
ZOOM,
6263

6364
QUICKTUNE_NEXT,
6465
QUICKTUNE_PREV,

src/defaultsettings.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ void set_default_settings(Settings *settings)
4040
settings->setDefault("keymap_jump", "KEY_SPACE");
4141
settings->setDefault("keymap_sneak", "KEY_LSHIFT");
4242
settings->setDefault("keymap_drop", "KEY_KEY_Q");
43+
settings->setDefault("keymap_zoom", "KEY_KEY_Z");
4344
settings->setDefault("keymap_inventory", "KEY_KEY_I");
4445
settings->setDefault("keymap_special1", "KEY_KEY_E");
4546
settings->setDefault("keymap_chat", "KEY_KEY_T");
@@ -74,6 +75,7 @@ void set_default_settings(Settings *settings)
7475
settings->setDefault("always_fly_fast", "true");
7576
settings->setDefault("directional_colored_fog", "true");
7677
settings->setDefault("tooltip_show_delay", "400");
78+
settings->setDefault("zoom_fov", "15");
7779

7880
// Some (temporary) keys for debugging
7981
settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P");

src/game.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1371,6 +1371,7 @@ void KeyCache::populate()
13711371
= getKeySetting("keymap_decrease_viewing_range_min");
13721372
key[KeyType::RANGESELECT]
13731373
= getKeySetting("keymap_rangeselect");
1374+
key[KeyType::ZOOM] = getKeySetting("keymap_zoom");
13741375

13751376
key[KeyType::QUICKTUNE_NEXT] = getKeySetting("keymap_quicktune_next");
13761377
key[KeyType::QUICKTUNE_PREV] = getKeySetting("keymap_quicktune_prev");
@@ -3270,6 +3271,7 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
32703271
isKeyDown(KeyType::JUMP),
32713272
isKeyDown(KeyType::SPECIAL1),
32723273
isKeyDown(KeyType::SNEAK),
3274+
isKeyDown(KeyType::ZOOM),
32733275
isLeftPressed(),
32743276
isRightPressed(),
32753277
cam.camera_pitch,

src/guiKeyChangeMenu.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ enum
5959
GUI_ID_KEY_INVENTORY_BUTTON,
6060
GUI_ID_KEY_DUMP_BUTTON,
6161
GUI_ID_KEY_RANGE_BUTTON,
62+
GUI_ID_KEY_ZOOM_BUTTON,
6263
// other
6364
GUI_ID_CB_AUX1_DESCENDS,
6465
GUI_ID_CB_DOUBLETAP_JUMP,
@@ -414,5 +415,6 @@ void GUIKeyChangeMenu::init_keys()
414415
this->add_key(GUI_ID_KEY_NOCLIP_BUTTON, wgettext("Toggle noclip"), "keymap_noclip");
415416
this->add_key(GUI_ID_KEY_RANGE_BUTTON, wgettext("Range select"), "keymap_rangeselect");
416417
this->add_key(GUI_ID_KEY_DUMP_BUTTON, wgettext("Print stacks"), "keymap_print_debug_stacks");
418+
this->add_key(GUI_ID_KEY_ZOOM_BUTTON, wgettext("Zoom"), "keymap_zoom");
417419
}
418420

src/player.h

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ struct PlayerControl
4949
sidew_move_joystick_axis = .0f;
5050
forw_move_joystick_axis = .0f;
5151
}
52+
5253
PlayerControl(
5354
bool a_up,
5455
bool a_down,
@@ -57,6 +58,7 @@ struct PlayerControl
5758
bool a_jump,
5859
bool a_aux1,
5960
bool a_sneak,
61+
bool a_zoom,
6062
bool a_LMB,
6163
bool a_RMB,
6264
float a_pitch,
@@ -72,6 +74,7 @@ struct PlayerControl
7274
jump = a_jump;
7375
aux1 = a_aux1;
7476
sneak = a_sneak;
77+
zoom = a_zoom;
7578
LMB = a_LMB;
7679
RMB = a_RMB;
7780
pitch = a_pitch;
@@ -86,6 +89,7 @@ struct PlayerControl
8689
bool jump;
8790
bool aux1;
8891
bool sneak;
92+
bool zoom;
8993
bool LMB;
9094
bool RMB;
9195
float pitch;

0 commit comments

Comments
 (0)