-# Gitignore for MMV project.
-# Whitelist mode
+*.o
+*.so
+*.dll
+*.log
-# Ignore all but directories
-*
-!*/
+# soft links
+steamworks_sdk
+vg
bin/
-restricted/
dist/
-# ALLOW ============================
-!.gitattributes
-!.gitignore
-!.gitmodules
-
-# Code sources _____________________
-# C source files
-!*.c
-!*.h
-
-# Blender projects
-!*.blend
-
-# GLSL shader source files
-!*.fs
-!*.vs
-!*.gls
-!*.glsl
-
-# Python source files
-!*.py
-
-# Build scripts
-!*.sh
-!*.bat
-!*.conf
-
-# Compiled resources _______________
-# MMV proprietary files
-!*.vmd
-!*.vma
-!*.cfg
-!*.vmv
-!*.map
-!*.mdl
-
-# Other game assets (3rd party)
-!*.bdf
-!*.png
-!*.ogg
-!*.txt
-!*.tga
-!*.vdf
-!*.qoi
+compile_commands.json
+#include <time.h>
#include "vg/vg_platform.h"
#include "vg/vg_log.h"
#include "vg/vg_opt.h"
{
vg_build_start( "skaterift_server", compiler );
vg_build_object( "server.c " );
- vg_build_link( "-pthread -lm -lsdkencryptedappticket -lsteam_api " );
+ vg_build_link( "-lm -lsdkencryptedappticket -lsteam_api " );
vg_build_library_dir( "-L./vg/dep/steam " );
vg_build_bin_dependency_file( "vg/dep/steam/steamclient.so" );
vg_build_symbolic_link( "sound_src", "sound" );
vg_build_syscall( "mkdir -p %s/cfg", vg_compiler.build_dir );
- vg_build_miniaudio();
vg_build();
compiled_something = 1;
}
if( vg_long_opt( "mingw" ) )
build_game( k_compiler_mingw );
+ if( vg_opt('p') || vg_long_opt("run") )
+ {
+ chdir( vg_compiler.build_dir );
+ if( vg_compiler.compiler == k_compiler_mingw )
+ vg_build_syscall( "wine %s.exe", vg_compiler.name );
+ else
+ vg_build_syscall( "./%s", vg_compiler.name );
+ chdir( "../../" );
+ }
+
if( vg_long_opt( "tar" ) || vg_opt( 't' ) )
{
vg_build_syscall( "mkdir -p dist" );
vg_compiler.name, uid, vg_compiler.build_dir );
}
- if( vg_opt('p') || vg_long_opt("run") )
- {
- chdir( vg_compiler.build_dir );
- vg_build_syscall( "./%s", vg_compiler.name );
- chdir( "../../" );
- }
-
if( vg_long_opt( "zip" ) || vg_opt( 'z' ) )
{
vg_build_syscall( "mkdir -p dist" );
-clang -fsanitize=address -O0 -Ivg/src build.c -o /tmp/tmpsr && /tmp/tmpsr $@
+clang -fsanitize=address -O0 -I./vg build.c -o /tmp/tmpsr && /tmp/tmpsr $@
#define VG_3D
#define VG_FRAMEBUFFER_RESIZE 1
#include "vg/vg.h"
-#include "anyascii/anyascii.h"
+#include "submodules/anyascii/impl/c/anyascii.c"
#define RESET_MAX_TIME 45.0
#include "player.h"
#include "shaders/menu.h"
-#include "vg/vg_steam_friends.h"
-
-#define CUTE_FILES_IMPLEMENTATION
-#include "vg/dep/randygaul/cute_files.h"
+#include "vg_steam_friends.h"
+#include "submodules/tinydir/tinydir.h"
VG_STATIC mdl_context menu_model;
VG_STATIC glmesh menu_glmesh;
VG_STATIC void menu_btn_fuckoff( int event )
{
- glfwSetWindowShouldClose( vg.window, 1 );
+ vg.window_should_close = 1;
}
VG_STATIC void menu_btn_quit( int event )
game_menu.map_count = 0;
game_menu.selected_map = 0;
- cf_dir_t dir;
- cf_dir_open( &dir, "maps" );
+ tinydir_dir dir;
+ tinydir_open( &dir, "maps" );
while( dir.has_next )
{
- cf_file_t file;
- cf_read_file( &dir, &file );
+ tinydir_file file;
+ tinydir_readfile( &dir, &file );
if( file.is_reg )
{
break;
}
- cf_dir_next( &dir );
+ tinydir_next( &dir );
}
- cf_dir_close(&dir);
+ tinydir_close(&dir);
}
VG_STATIC void menu_crap_ui(void)
+++ /dev/null
-cd bin/skaterift-clang/
-./skaterift $@
-cd ../../
v2_muladds( player.angles, vg.mouse_delta, 0.0025f, player.angles );
- if( vg.gamepad_use_trackpad_look )
+ if( vg_input.controller_should_use_trackpad_look )
{
static v2f last_input;
static v2f vel;
}
v3_add( dt, phys->rb.co, phys->rb.co );
+ if( len )
+ {
+ struct world_material *surface_mat = world_contact_material(manifold);
+ player.surface_prop = surface_mat->info.surface_prop;
+ }
+
/* jump */
if( player.input_jump->button.value )
{
#define _DEFAULT_SOURCE
#include <unistd.h>
#include <signal.h>
+#include <time.h>
volatile sig_atomic_t sig_stop;
* ' ' '--' [] '----- '----- ' ' '---' SOFTWARE
*
* =============================================================================
- *
- * register: shader register & init scheduling
- * init: initialization
- * update: logic
- * render: graphics
- * free: resource free
- *
*/
-#define VG_3D
#define VG_STATIC static
-//#define VG_STATIC
-
-//#define VG_MINIMAL_TEST
-#ifndef VG_MINIMAL_TEST
-
+#define VG_GAME
#define SR_NETWORKED
#include "common.h"
vg_mem.use_libc_malloc = 0;
vg_set_mem_quota( 128*1024*1024 );
vg_enter( argc, argv, "Voyager Game Engine" );
+
+ return 0;
}
VG_STATIC void highscores_save_at_exit(void*_)
highscores_serialize_all();
}
-VG_STATIC void vg_preload(void)
+VG_STATIC void vg_launch_opt(void)
{
+}
+
+VG_STATIC void vg_preload(void)
+{
vg_convar_push( (struct vg_convar){
.name = "cl_ui",
.data = &cl_ui,
player.phys.rb.co[0], player.phys.rb.co[1], player.phys.rb.co[2] );
ui_text( (ui_px [2]){ 0, 40 }, buf, 1, k_text_align_left );
- if( vg.gamepad_ready )
+ if( vg_input.controller_handle )
{
- for( int i=0; i<6; i++ )
+ for( int i=0; i<vg_list_size(vg_input.controller_axises); i++ )
{
- snprintf( buf, 40, "%.2f", vg.gamepad.axes[i] );
+ snprintf( buf, 40, "%.2f", vg_input.controller_axises[i] );
ui_text( (ui_px [2]){ 0, (i+3)*20 }, buf, 1, k_text_align_left );
}
}
"Gamepad not ready", 1, k_text_align_left );
}
}
-
-#else
-
-#define VG_TIMESTEP_FIXED (1.0/60.0)
-#define VG_3D
-#define VG_FRAMEBUFFER_RESIZE 1
-#include "vg/vg.h"
-
-int main( int argc, char *argv[] )
-{
- vg_prealloc_quota( 512*1024*1024 );
- vg_enter( argc, argv, "Voyager Game Engine" );
-}
-
-VG_STATIC void vg_preload(void)
-{
-vg_info(" Copyright . . . -----, ,----- ,---. .---. \n" );
-vg_info(" 2021-2022 |\\ /| | / | | | | /| \n" );
-vg_info(" | \\ / | +-- / +----- +---' | / | \n" );
-vg_info(" | \\ / | | / | | \\ | / | \n" );
-vg_info(" | \\/ | | / | | \\ | / | \n" );
-vg_info(" ' ' '--' [] '----- '----- ' ' '---' "
- "SOFTWARE\n" );
-}
-
-VG_STATIC void vg_load(void)
-{
- vg_bake_shaders();
- vg_console_load_autos();
-}
-
-VG_STATIC void vg_start(void)
-{
-}
-
-VG_STATIC void vg_update( int loaded )
-{
-}
-
-VG_STATIC void vg_update_fixed( int loaded )
-{
-}
-
-VG_STATIC void vg_update_post( int loaded )
-{
-}
-
-VG_STATIC void vg_framebuffer_resize( int w, int h )
-{
-}
-
-VG_STATIC void vg_render(void)
-{
- glBindFramebuffer( GL_FRAMEBUFFER, 0 );
- glViewport( 0,0, vg.window_x, vg.window_y );
- glDisable( GL_DEPTH_TEST );
-
- glClearColor( 0.11f, 0.35f, 0.37f, 1.0f );
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT );
-
- /* Other shite */
- glDisable(GL_BLEND);
- glDisable( GL_DEPTH_TEST );
- vg_lines_drawall( (float *)vg.pv );
- glViewport( 0,0, vg.window_x, vg.window_y );
-}
-
-VG_STATIC void vg_ui(void)
-{
-}
-
-#endif
{
steamworks_event_loop( hSteamClientPipe );
+ /* TODO
+ * We can probably request this from SDL too
+ */
if( steam_hInput )
{
SteamAPI_ISteamInput_RunFrame( steam_hInput, 0 );
InputHandle_t joy0 = SteamAPI_ISteamInput_GetControllerForGamepadIndex(
steam_hInput, 0 );
- vg.gamepad_use_trackpad_look = 0;
+ vg_input.controller_should_use_trackpad_look = 0;
if( joy0 != 0 )
{
ESteamInputType type = SteamAPI_ISteamInput_GetInputTypeForHandle(
if( type == k_ESteamInputType_SteamController )
{
- vg.gamepad_use_trackpad_look = 1;
+ vg_input.controller_should_use_trackpad_look = 1;
menu_display_controller = k_menu_controller_type_steam;
}
else if( type == k_ESteamInputType_SteamDeckController )
#ifndef ROUTES_H
#define ROUTES_H
+#include <time.h>
#include "world.h"
#include "world_gate.h"