- m4x4f world_4x4;
- m4x3_expand( world_matrix, world_4x4 );
-
- m4x4_projection( vg_pv,
- freecam? 90.0f: 130.0f,
- (float)vg_window_x / (float)vg_window_y,
- 0.01f, 1000.0f );
- m4x4_mul( vg_pv, world_4x4, vg_pv );
-
- if( debugroad )
- draw_road_patch_dev( &road_main );
-
- vg_line( (v3f){ 0.0f, 0.0f, 0.0f }, (v3f){ 1.0f, 0.0f, 0.0f }, 0xffff0000 );
- vg_line( (v3f){ 0.0f, 0.0f, 0.0f }, (v3f){ 0.0f, 1.0f, 0.0f }, 0xff00ff00 );
- vg_line( (v3f){ 0.0f, 0.0f, 0.0f }, (v3f){ 0.0f, 0.0f, 1.0f }, 0xff0000ff );
-
- v3f board_fwd = { -sinf( player_yaw ), 0.0f, cosf( player_yaw ) };
- v3f board_side = { -board_fwd[2], 0.0f, board_fwd[0] };
- v3f bnw, bne, bse, bsw;
-
- v3_muladds( player_pos, board_fwd, 0.75f, bnw );
- v3_muladds( player_pos, board_fwd, -0.75f, bsw );
- v3_muladds( bnw, board_side, 0.1f, bne );
- v3_muladds( bnw, board_side, -0.1f, bnw );
- v3_muladds( bsw, board_side, 0.1f, bse );
- v3_muladds( bsw, board_side, -0.1f, bsw );
-
- vg_line( bnw, bne, 0xff00ff00 );
- vg_line( bne, bse, 0xff00ff00 );
- vg_line( bse, bsw, 0xff00ff00 );
- vg_line( bsw, bnw, 0xff00ff00 );
-
- glEnable( GL_DEPTH_TEST );
-
- v3f leg_dr, leg_dl, leg_ar, leg_al;
-
- v3_sub( foot_l, butt, leg_dl );
- v3_sub( foot_r, butt, leg_dr );
- leg_dl[1] = 0.0f;
- leg_dr[1] = 0.0f;
- v3_normalize( leg_dl );
- v3_normalize( leg_dr );
-
- v3f v0;
- v3_sub( butt, knee_l, v0 );
- float leg_pl = atan2f( v0[1], v3_dot( v0, leg_dl ) );
-
- v3_sub( knee_l, foot_l, v0 );
- float knee_pl = atan2f( v0[1], v3_dot( v0, leg_dl ) );
-
- float leg_yl = -atan2f( leg_dl[2], leg_dl[0] ),
- leg_yr = atan2f( leg_dr[2], leg_dr[0] );
-
- SHADER_USE( shader_debug_vcol );
- m4x3f temp;
- m4x4f temp1;
-
- vg_tex2d_bind( &tex_grid, 0 );
- scene_tree_sway = 0.0f;
-
- vg_line( head, butt, 0xff0000ff );
- vg_line( butt, knee_l, 0xff0000ff );
- vg_line( butt, knee_r, 0xff0000ff );
- vg_line( foot_l, knee_l, 0xff00a0ff );
- vg_line( foot_r, knee_r, 0xff00a0ff );
- vg_line( head, shoulder_r, 0xa0ff00ff );
- vg_line( shoulder_r, hand_r, 0xffff00ff );
- m4x3_identity( temp );
-
- m4x3_translate( temp, knee_l );
- m4x3_rotate_x( temp, knee_pl );
- m4x3_rotate_y( temp, leg_yl );
-
- m4x3_expand( temp, temp1 );
- glUniformMatrix4fv( SHADER_UNIFORM( shader_debug_vcol, "uMdl" ),
- 1, GL_FALSE, (float *)temp1 );
-
- scene_draw( &player_scene, -1, 0 );
-
- m4x3_identity( temp );
- m4x3_expand( temp, temp1 );
- glUniformMatrix4fv( SHADER_UNIFORM( shader_debug_vcol, "uMdl" ),
- 1, GL_FALSE, (float *)temp1 );
-
- vg_tex2d_bind( &tex_norwey, 0 );
- scene_tree_sway = 0.1f;
- scene_draw( &test_scene, -1, 0 );
-
- vg_tex2d_bind( &tex_grid, 0 );
- scene_tree_sway = 0.0f;
- scene_draw( &world_scene, world_terrain_count, 0 );
-
- vg_tex2d_bind( &tex_road, 0 );
- scene_draw( &world_scene, world_road_count, world_terrain_count );