VG_STATIC glmesh localplayer_meshes[3];
vg_tex2d localplayer_texture = { .path = "textures/ch_gradient.qoi" };
-
-
-
-
+player_instance *tmp_localplayer(void)
+{
+ return &localplayer;
+}
#include "network.h"
-
-#if 0
#include "menu.h"
-#endif
#include "vehicle.h"
static int cl_ui = 1,
int main( int argc, char *argv[] )
{
- vg_mem.use_libc_malloc = 1;
+ vg_mem.use_libc_malloc = 0;
vg_set_mem_quota( 160*1024*1024 );
vg_enter( argc, argv, "Voyager Game Engine" );
vg_release_thread_sync();
}
+void temp_update_playermodel(void){
+ player__use_mesh( &localplayer, &localplayer_meshes[cl_playermdl_id] );
+}
+
VG_STATIC void vg_load(void)
{
vg_loader_step( render_init, NULL );
- //vg_loader_step( menu_init, NULL );
+ vg_loader_step( menu_init, NULL );
vg_loader_step( world_init, NULL );
//vg_loader_step( player_init, NULL );
//vg_loader_step( vehicle_init, NULL );
player__create( &localplayer );
player_avatar_load( &localplayer_avatar, "models/ch_new.mdl" );
player__use_avatar( &localplayer, &localplayer_avatar );
- player__use_mesh( &localplayer, &localplayer_meshes[0] );
+ player__use_mesh( &localplayer, &localplayer_meshes[cl_playermdl_id] );
player__use_texture( &localplayer, &localplayer_texture );
player__bind( &localplayer );
/* 'systems' are completely loaded now */
/* load home world */
- world_load( &world_global.worlds[0], "maps/mp_gridmap.mdl" );
+ world_load( &world_global.worlds[0], "maps/mp_mtzero.mdl" );
#if 0
world_load( &world_global.worlds[1], "maps/mp_gridmap.mdl" );
float dist = 200.0f;
- for( int i=0; i<10; i++ )
- {
- if( ray_world( get_active_world(), rc, rd, &ray ) )
- {
+ for( int i=0; i<10; i++ ){
+ if( ray_world( get_active_world(), rc, rd, &ray ) ){
dist = (float)i*5.0f + ray.dist;
break;
}
- else
- {
+ else{
v3_muladds( rc, rd, ray.dist, rc );
}
}
distances[si] = dist;
- for( int i=0; i<14; i++ )
- {
- if( distances[i] != 200.0f )
- {
+ for( int i=0; i<14; i++ ){
+ if( distances[i] != 200.0f ){
u32 colours[] = { VG__RED, VG__BLUE, VG__GREEN,
VG__CYAN, VG__YELOW, VG__PINK,
VG__WHITE };
v3f ears = { 1.0f,0.0f,0.0f };
m3x3_mulv( main_camera.transform, ears, ears );
- v3_copy( ears, vg_audio.listener_ears );
- v3_copy( main_camera.transform[3], vg_audio.listener_pos );
- v3_copy( localplayer.rb.v, vg_audio.listener_velocity );
+ v3_copy( ears, vg_audio.external_listener_ears );
+ v3_copy( main_camera.transform[3], vg_audio.external_listener_pos );
+
+ /* TODO: this is transformed back and fourth twice. */
+ if( localplayer.gate_waiting ){
+ m4x3_mulv( localplayer.gate_waiting->transport,
+ vg_audio.external_listener_pos,
+ vg_audio.external_listener_pos );
+ }
+
+ v3_copy( localplayer.rb.v, vg_audio.external_lister_velocity );
audio_unlock();
-#if 0
menu_update();
+#if 0
vehicle_update_post();
#endif
}
glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA);
glBlendEquation(GL_FUNC_ADD);
- if( cl_blur )
- {
+ if( cl_blur ){
shader_blitblur_use();
shader_blitblur_uTexMain( 0 );
shader_blitblur_uTexMotion( 1 );
shader_blitblur_uBlurStrength(cl_blur_strength / (vg.frame_delta*60.0f));
v2f menu_blurring;
- //v2_muls( (v2f){ 0.04f, 0.001f }, menu_opacity, menu_blurring );
- v2_muls( (v2f){ 0.04f, 0.001f }, 0.0f, menu_blurring );
+ v2_muls( (v2f){ 0.04f, 0.001f }, menu_opacity, menu_blurring );
shader_blitblur_uOverrideDir( menu_blurring );
if( cl_view_id == 0 )
render_fb_bind_texture( gpipeline.fb_main, 1, 1 );
}
- else
- {
+ else{
shader_blit_use();
shader_blit_uTexMain( 0 );
render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
render_world( view_world, &main_camera, 0 );
- int player_transparent = 1,
- player_draw = 1;
-
-#if 0
- if( (localplayer.subsystem == k_player_subsystem_dead) ||
- (localplayer.camera_mode == k_cam_thirdperson) )
- player_transparent = 0;
-#endif
-
- if( !player_transparent && player_draw )
- player__render( &main_camera, &localplayer );
render_water_texture( view_world, &main_camera, 0 );
render_fb_bind( gpipeline.fb_main );
if( localplayer.gate_waiting ) depth = 0;
render_world_gates( view_world, &main_camera, depth );
- if( player_transparent && player_draw )
+ if( !cl_menu )
render_player_transparent();
}
-VG_STATIC void render_menu(void)
-{
- glClear( GL_DEPTH_BUFFER_BIT );
-#if 0
- menu_render( &main_camera );
-#endif
-}
-
VG_STATIC void render_main_game(void)
{
#if 0
main_camera.fov = fov;
#endif
- /* copy camera from player.
- * TODO: blend with camera from menu */
-
- /* FIXME: TEMP!! */
player__pre_render( &localplayer );
- v3_copy( localplayer.cam.pos, main_camera.pos );
- v3_copy( localplayer.cam.angles, main_camera.angles );
- main_camera.fov = localplayer.cam.fov;
+ v3_lerp( localplayer.cam.pos, menu_camera_pos, menu_opacity,
+ main_camera.pos );
+ main_camera.angles[0] =
+ vg_alerpf( localplayer.cam.angles[0], menu_camera_angles[0],
+ menu_opacity );
+ main_camera.angles[1] =
+ vg_lerpf ( localplayer.cam.angles[1], menu_camera_angles[1],
+ menu_opacity );
+
+ main_camera.fov = vg_lerpf( localplayer.cam.fov, menu_smooth_fov,
+ menu_opacity );
main_camera.nearz = 0.1f;
main_camera.farz = 2100.0f;
camera_update_transform( &main_camera );
- if( localplayer.gate_waiting )
- {
+ if( localplayer.gate_waiting ){
m3x3_mul( localplayer.basis_gate, main_camera.transform,
main_camera.transform );
}
- else
- {
+ else{
m3x3_mul( localplayer.basis, main_camera.transform,
main_camera.transform );
}
-
+
camera_update_view( &main_camera );
camera_update_projection( &main_camera );
camera_finalize( &main_camera );
/* ========== Begin Frame ========== */
render_scene();
- present_view_with_post_processing();
-#if 0
- if( cl_menu )
- {
- render_menu();
+ if( cl_menu ) {
+ glClear( GL_DEPTH_BUFFER_BIT );
+ menu_render_bg();
+ glEnable( GL_DEPTH_TEST );
render_player_transparent();
}
-#endif
+
+ present_view_with_post_processing();
+
+ if( cl_menu )
+ menu_render_fg( &main_camera );
/* =========== End Frame =========== */
}
VG_STATIC void run_light_widget( struct light_widget *lw );
VG_STATIC void vg_ui(void)
{
+#if 0
player__im_gui( &localplayer );
+#endif
world_instance *world = get_active_world();
-
-#if 0
menu_crap_ui();
-#endif
#if 0
if( cl_light_edit )