v2_muladds( phys->grab_mouse_delta, vg.mouse_delta, 0.02f,
phys->grab_mouse_delta );
v2_normalize_clamp( phys->grab_mouse_delta );
+
+ if( freecam )
+ v2_zero( phys->grab_mouse_delta );
}
else
v2_zero( phys->grab_mouse_delta );
v2f walk = { player.input_walkh->axis.value,
player.input_walkv->axis.value };
+
+ if( freecam )
+ v2_zero( walk );
if( v2_length2(walk) > 0.001f )
v2_normalize_clamp( walk );
{
player_mouseview();
- float movespeed = fc_speed;
+ float movespeed = fc_speed * VG_TIMESTEP_FIXED;
v3f lookdir = { 0.0f, 0.0f, -1.0f },
sidedir = { 1.0f, 0.0f, 0.0f };
static v3f move_vel = { 0.0f, 0.0f, 0.0f };
- /* TODO */
-#if 0
- if( vg_get_button( "forward" ) )
- v3_muladds( move_vel, lookdir, VG_TIMESTEP_FIXED * movespeed, move_vel );
- if( vg_get_button( "back" ) )
- v3_muladds( move_vel, lookdir, VG_TIMESTEP_FIXED *-movespeed, move_vel );
- if( vg_get_button( "left" ) )
- v3_muladds( move_vel, sidedir, VG_TIMESTEP_FIXED *-movespeed, move_vel );
- if( vg_get_button( "right" ) )
- v3_muladds( move_vel, sidedir, VG_TIMESTEP_FIXED * movespeed, move_vel );
-#endif
+ v2f steer = { player.input_js1h->axis.value,
+ player.input_js1v->axis.value };
+
+ v3_muladds( move_vel, sidedir, movespeed*steer[0], move_vel );
+ v3_muladds( move_vel, lookdir, -movespeed*steer[1], move_vel );
v3_muls( move_vel, 0.7f, move_vel );
v3_add( move_vel, player.camera_pos, player.camera_pos );
{
mesh_bind( &world.mesh_geo );
world_render_if( shader, k_geo_type_solid, bind_point );
+
+ glDisable( GL_CULL_FACE );
mesh_bind( &world.mesh_no_collide );
world_render_if( shader, k_geo_type_nonsolid, bind_point );
+ glEnable( GL_CULL_FACE );
}
VG_STATIC void bindpoint_diffuse_texture1( struct world_material *mat )