Add zoom, tweakable with zoom_fov, default key: Z (like optifine)

This commit is contained in:
Esteban I. Ruiz Moreno 2013-03-31 00:30:32 -03:00 committed by est31
parent c013c73f33
commit 2c31b79235
7 changed files with 20 additions and 2 deletions

@ -103,6 +103,7 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
m_cache_fall_bobbing_amount = g_settings->getFloat("fall_bobbing_amount"); m_cache_fall_bobbing_amount = g_settings->getFloat("fall_bobbing_amount");
m_cache_view_bobbing_amount = g_settings->getFloat("view_bobbing_amount"); m_cache_view_bobbing_amount = g_settings->getFloat("view_bobbing_amount");
m_cache_fov = g_settings->getFloat("fov"); m_cache_fov = g_settings->getFloat("fov");
m_cache_zoom_fov = g_settings->getFloat("zoom_fov");
m_cache_view_bobbing = g_settings->getBool("view_bobbing"); m_cache_view_bobbing = g_settings->getBool("view_bobbing");
m_nametags.clear(); m_nametags.clear();
} }
@ -387,8 +388,13 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime,
if (m_camera_mode == CAMERA_MODE_THIRD_FRONT) if (m_camera_mode == CAMERA_MODE_THIRD_FRONT)
m_camera_position = my_cp; m_camera_position = my_cp;
// Get FOV setting // Get FOV
f32 fov_degrees = m_cache_fov; f32 fov_degrees;
if (player->getPlayerControl().zoom) {
fov_degrees = m_cache_zoom_fov;
} else {
fov_degrees = m_cache_fov;
}
fov_degrees = MYMAX(fov_degrees, 10.0); fov_degrees = MYMAX(fov_degrees, 10.0);
fov_degrees = MYMIN(fov_degrees, 170.0); fov_degrees = MYMIN(fov_degrees, 170.0);

@ -231,6 +231,7 @@ private:
f32 m_cache_fall_bobbing_amount; f32 m_cache_fall_bobbing_amount;
f32 m_cache_view_bobbing_amount; f32 m_cache_view_bobbing_amount;
f32 m_cache_fov; f32 m_cache_fov;
f32 m_cache_zoom_fov;
bool m_cache_view_bobbing; bool m_cache_view_bobbing;
std::list<Nametag *> m_nametags; std::list<Nametag *> m_nametags;

@ -59,6 +59,7 @@ public:
INCREASE_VIEWING_RANGE, INCREASE_VIEWING_RANGE,
DECREASE_VIEWING_RANGE, DECREASE_VIEWING_RANGE,
RANGESELECT, RANGESELECT,
ZOOM,
QUICKTUNE_NEXT, QUICKTUNE_NEXT,
QUICKTUNE_PREV, QUICKTUNE_PREV,

@ -40,6 +40,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("keymap_jump", "KEY_SPACE"); settings->setDefault("keymap_jump", "KEY_SPACE");
settings->setDefault("keymap_sneak", "KEY_LSHIFT"); settings->setDefault("keymap_sneak", "KEY_LSHIFT");
settings->setDefault("keymap_drop", "KEY_KEY_Q"); settings->setDefault("keymap_drop", "KEY_KEY_Q");
settings->setDefault("keymap_zoom", "KEY_KEY_Z");
settings->setDefault("keymap_inventory", "KEY_KEY_I"); settings->setDefault("keymap_inventory", "KEY_KEY_I");
settings->setDefault("keymap_special1", "KEY_KEY_E"); settings->setDefault("keymap_special1", "KEY_KEY_E");
settings->setDefault("keymap_chat", "KEY_KEY_T"); settings->setDefault("keymap_chat", "KEY_KEY_T");
@ -74,6 +75,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("always_fly_fast", "true"); settings->setDefault("always_fly_fast", "true");
settings->setDefault("directional_colored_fog", "true"); settings->setDefault("directional_colored_fog", "true");
settings->setDefault("tooltip_show_delay", "400"); settings->setDefault("tooltip_show_delay", "400");
settings->setDefault("zoom_fov", "15");
// Some (temporary) keys for debugging // Some (temporary) keys for debugging
settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P"); settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P");

@ -1371,6 +1371,7 @@ void KeyCache::populate()
= getKeySetting("keymap_decrease_viewing_range_min"); = getKeySetting("keymap_decrease_viewing_range_min");
key[KeyType::RANGESELECT] key[KeyType::RANGESELECT]
= getKeySetting("keymap_rangeselect"); = getKeySetting("keymap_rangeselect");
key[KeyType::ZOOM] = getKeySetting("keymap_zoom");
key[KeyType::QUICKTUNE_NEXT] = getKeySetting("keymap_quicktune_next"); key[KeyType::QUICKTUNE_NEXT] = getKeySetting("keymap_quicktune_next");
key[KeyType::QUICKTUNE_PREV] = getKeySetting("keymap_quicktune_prev"); key[KeyType::QUICKTUNE_PREV] = getKeySetting("keymap_quicktune_prev");
@ -3270,6 +3271,7 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
isKeyDown(KeyType::JUMP), isKeyDown(KeyType::JUMP),
isKeyDown(KeyType::SPECIAL1), isKeyDown(KeyType::SPECIAL1),
isKeyDown(KeyType::SNEAK), isKeyDown(KeyType::SNEAK),
isKeyDown(KeyType::ZOOM),
isLeftPressed(), isLeftPressed(),
isRightPressed(), isRightPressed(),
cam.camera_pitch, cam.camera_pitch,

@ -59,6 +59,7 @@ enum
GUI_ID_KEY_INVENTORY_BUTTON, GUI_ID_KEY_INVENTORY_BUTTON,
GUI_ID_KEY_DUMP_BUTTON, GUI_ID_KEY_DUMP_BUTTON,
GUI_ID_KEY_RANGE_BUTTON, GUI_ID_KEY_RANGE_BUTTON,
GUI_ID_KEY_ZOOM_BUTTON,
// other // other
GUI_ID_CB_AUX1_DESCENDS, GUI_ID_CB_AUX1_DESCENDS,
GUI_ID_CB_DOUBLETAP_JUMP, GUI_ID_CB_DOUBLETAP_JUMP,
@ -414,5 +415,6 @@ void GUIKeyChangeMenu::init_keys()
this->add_key(GUI_ID_KEY_NOCLIP_BUTTON, wgettext("Toggle noclip"), "keymap_noclip"); this->add_key(GUI_ID_KEY_NOCLIP_BUTTON, wgettext("Toggle noclip"), "keymap_noclip");
this->add_key(GUI_ID_KEY_RANGE_BUTTON, wgettext("Range select"), "keymap_rangeselect"); this->add_key(GUI_ID_KEY_RANGE_BUTTON, wgettext("Range select"), "keymap_rangeselect");
this->add_key(GUI_ID_KEY_DUMP_BUTTON, wgettext("Print stacks"), "keymap_print_debug_stacks"); this->add_key(GUI_ID_KEY_DUMP_BUTTON, wgettext("Print stacks"), "keymap_print_debug_stacks");
this->add_key(GUI_ID_KEY_ZOOM_BUTTON, wgettext("Zoom"), "keymap_zoom");
} }

@ -49,6 +49,7 @@ struct PlayerControl
sidew_move_joystick_axis = .0f; sidew_move_joystick_axis = .0f;
forw_move_joystick_axis = .0f; forw_move_joystick_axis = .0f;
} }
PlayerControl( PlayerControl(
bool a_up, bool a_up,
bool a_down, bool a_down,
@ -57,6 +58,7 @@ struct PlayerControl
bool a_jump, bool a_jump,
bool a_aux1, bool a_aux1,
bool a_sneak, bool a_sneak,
bool a_zoom,
bool a_LMB, bool a_LMB,
bool a_RMB, bool a_RMB,
float a_pitch, float a_pitch,
@ -72,6 +74,7 @@ struct PlayerControl
jump = a_jump; jump = a_jump;
aux1 = a_aux1; aux1 = a_aux1;
sneak = a_sneak; sneak = a_sneak;
zoom = a_zoom;
LMB = a_LMB; LMB = a_LMB;
RMB = a_RMB; RMB = a_RMB;
pitch = a_pitch; pitch = a_pitch;
@ -86,6 +89,7 @@ struct PlayerControl
bool jump; bool jump;
bool aux1; bool aux1;
bool sneak; bool sneak;
bool zoom;
bool LMB; bool LMB;
bool RMB; bool RMB;
float pitch; float pitch;