More flight mode stuff
This commit is contained in:
@@ -117,9 +117,11 @@ evtman_init ()
|
||||
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_DOWN, evt_pred_key, KEY (SDLK_SPACE), evt_cb_flag_on, "flying_up");
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_UP, evt_pred_key, KEY (SDLK_SPACE), evt_cb_flag_off, "flying_up");
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_DOWN, evt_pred_key, KEY (SDLK_LSHIFT), evt_cb_flag_on, "flying_down");
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_UP, evt_pred_key, KEY (SDLK_LSHIFT), evt_cb_flag_off, "flying_down");
|
||||
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_DOWN, evt_pred_key, KEY (SDLK_LCTRL), evt_cb_flag_on, "flying_down");
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_UP, evt_pred_key, KEY (SDLK_LCTRL), evt_cb_flag_off, "flying_down");
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_DOWN, evt_pred_key, KEY (SDLK_LSHIFT), evt_cb_flag_on, "flying_fast");
|
||||
evtman_add_handler (0, SDL_EVENT_KEY_UP, evt_pred_key, KEY (SDLK_LSHIFT), evt_cb_flag_off, "flying_fast");
|
||||
|
||||
#undef KEY
|
||||
}
|
||||
|
||||
|
||||
+14
-7
@@ -30,12 +30,19 @@ game_state_tick (int ticks)
|
||||
sky. */
|
||||
sky_entity->position[0] = camera_position[0];
|
||||
sky_entity->position[2] = camera_position[2];
|
||||
|
||||
int speed = 5;
|
||||
|
||||
if (flags_get ("flight_enabled") && flags_get ("flying_fast"))
|
||||
{
|
||||
speed = 10;
|
||||
}
|
||||
|
||||
if (flags_get ("moving_forward"))
|
||||
{
|
||||
vec3 dir, change, new_pos;
|
||||
camera_get_direction (dir);
|
||||
glm_vec3_scale (dir, delta_time * 5, change);
|
||||
glm_vec3_scale (dir, delta_time * speed, change);
|
||||
glm_vec3_add (player_entity->position, change, new_pos);
|
||||
glm_vec3_copy (new_pos, player_entity->position);
|
||||
}
|
||||
@@ -44,7 +51,7 @@ game_state_tick (int ticks)
|
||||
{
|
||||
vec3 dir, change, new_pos;
|
||||
camera_get_direction (dir);
|
||||
glm_vec3_scale (dir, delta_time * 5, change);
|
||||
glm_vec3_scale (dir, delta_time * speed, change);
|
||||
glm_vec3_sub (player_entity->position, change, new_pos);
|
||||
glm_vec3_copy (new_pos, player_entity->position);
|
||||
}
|
||||
@@ -53,7 +60,7 @@ game_state_tick (int ticks)
|
||||
{
|
||||
vec3 right, change, new_pos;
|
||||
camera_get_right (right);
|
||||
glm_vec3_scale (right, delta_time * 5, change);
|
||||
glm_vec3_scale (right, delta_time * speed, change);
|
||||
glm_vec3_add (player_entity->position, change, new_pos);
|
||||
glm_vec3_copy (new_pos, player_entity->position);
|
||||
}
|
||||
@@ -62,15 +69,15 @@ game_state_tick (int ticks)
|
||||
{
|
||||
vec3 right, change, new_pos;
|
||||
camera_get_right (right);
|
||||
glm_vec3_scale (right, delta_time * 5, change);
|
||||
glm_vec3_scale (right, delta_time * speed, change);
|
||||
glm_vec3_sub (player_entity->position, change, new_pos);
|
||||
glm_vec3_copy (new_pos, player_entity->position);
|
||||
}
|
||||
|
||||
|
||||
if (flags_get ("flying_up") && flags_get ("flight_enabled"))
|
||||
{
|
||||
vec3 change, new_pos;
|
||||
glm_vec3_scale (GLM_YUP, delta_time * 5, change);
|
||||
glm_vec3_scale (GLM_YUP, delta_time * speed, change);
|
||||
glm_vec3_add (player_entity->position, change, new_pos);
|
||||
glm_vec3_copy (new_pos, player_entity->position);
|
||||
}
|
||||
@@ -78,7 +85,7 @@ game_state_tick (int ticks)
|
||||
if (flags_get ("flying_down") && flags_get ("flight_enabled"))
|
||||
{
|
||||
vec3 change, new_pos;
|
||||
glm_vec3_scale (GLM_YUP, delta_time * 5, change);
|
||||
glm_vec3_scale (GLM_YUP, delta_time * speed, change);
|
||||
glm_vec3_sub (player_entity->position, change, new_pos);
|
||||
glm_vec3_copy (new_pos, player_entity->position);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user