forked from Mirrorlandia_minetest/minetest
Add zoom, tweakable with zoom_fov, default key: Z (like optifine)
This commit is contained in:
parent
c013c73f33
commit
2c31b79235
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user