assman was renamed to assfile
[laserbrain_demo] / src / app.cc
index 07ecdec..178b7df 100644 (file)
@@ -2,6 +2,7 @@
 #include <limits.h>
 #include <assert.h>
 #include <goatvr.h>
+#include <assfile.h>
 #include "app.h"
 #include "opengl.h"
 #include "sdr.h"
@@ -63,7 +64,7 @@ static bool bnstate[8];
 static bool keystate[256];
 static bool gpad_bnstate[64];
 static Vec2 joy_move, joy_look;
-static float joy_deadzone = 0.01;
+static float joy_deadzone = 0.1;
 
 static float framerate;
 
@@ -113,6 +114,11 @@ bool app_init(int argc, char **argv)
        app_resize(opt.width, opt.height);
        app_fullscreen(opt.fullscreen);
 
+       if(opt.data_url) {
+               info_log("Adding URL asset source: %s\n", opt.data_url);
+               ass_add_url("data", opt.data_url);
+       }
+
        if(opt.vr) {
                if(goatvr_init() == -1) {
                        return false;
@@ -319,7 +325,18 @@ static void update(float dt)
                jlook_lensq -= jdeadsq;
 
                float mag = len * len;
-               avatar.body_rot += mag * joy_look.x / len * 200.0 * dt;
+
+               if(opt.min_turn > 0.0f) {
+                       static long last_turn;
+                       if(len > 0.5 && time_msec - last_turn > 350) {
+                               float sign = joy_look.x > 0.0f ? 1.0f : -1.0f;
+                               avatar.body_rot += opt.min_turn * sign;
+                               last_turn = time_msec;
+                       }
+               } else {
+                       avatar.body_rot += mag * joy_look.x / len * 200.0 * dt;
+               }
+
                avatar.head_alt += mag * joy_look.y / len * 100.0 * dt;
                if(avatar.head_alt < -90.0f) avatar.head_alt = -90.0f;
                if(avatar.head_alt > 90.0f) avatar.head_alt = 90.0f;
@@ -559,6 +576,12 @@ void app_display()
                vp_width = win_width;
                vp_height = win_height;
 
+               if(!gfbo && !fb_srgb && sdr_post_gamma) {
+                       glViewport(0, 0, win_width, win_height);
+                       slow_post(sdr_post_gamma);
+                       glUseProgram(0);
+               }
+
                if(should_swap) {
                        app_swap_buffers();
                }