JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Ugly hack for making a screencast
[vor.git] / main.c
diff --git a/main.c b/main.c
index 4a482fc..f4cf4aa 100644 (file)
--- a/main.c
+++ b/main.c
@@ -32,6 +32,7 @@
 
 #include "args.h"
 #include "common.h"
+#include <config.h>
 #include "vorconfig.h"
 #include "dust.h"
 #include "file.h"
@@ -137,6 +138,7 @@ extern int optind, opterr, optopt;
 
 // ************************************* FUNCS
 
+#ifdef HAVE_NANOSLEEP
 void
 tiny_sleep() {
        struct timespec t;
@@ -144,6 +146,9 @@ tiny_sleep() {
        t.tv_nsec = 1;
        nanosleep(&t, 0);
 }
+#else
+#define tiny_sleep()
+#endif
 
 void
 init_engine_dots() {
@@ -530,7 +535,7 @@ draw_title_page(void)
        x = (XSIZE-font_width(text))/2 + cos(fadetimer/4.5)*10;
        font_write(x,YSIZE-100 + cos(fadetimer/3)*5,text);
 
-       text = "Version " VERSION;
+       text = "Version " PACKAGE_VERSION;
        x = (XSIZE-font_width(text))/2 + sin(fadetimer/4.5)*10;
        font_write(x,YSIZE-50 + sin(fadetimer/2)*5,text);
 }
@@ -661,6 +666,10 @@ gameloop() {
                if(ms_frame > 50) {
                        ms_frame = 50;
                }
+               if(ms_frame < 35) {
+                       SDL_Delay(35 - ms_frame);
+                       ms_frame = 35;
+               }
                t_frame = gamespeed * ms_frame / 50;
                frames++;
 
@@ -799,6 +808,21 @@ gameloop() {
 
 
                        draw();
+                                                               {
+                                                                       FILE *screenshot_fp;
+                                                                       char tmp[30];
+                                                                       char *screenshot_filename = &(tmp[0]);
+                                                                       for(;;) {
+                                                                               snprintf(screenshot_filename, 30, "vor-screenshot-%04i.bmp", screenshot_number++);
+                                                                               screenshot_fp = fopen(screenshot_filename, "r");
+                                                                               if(screenshot_fp) {
+                                                                                       fclose(screenshot_fp);
+                                                                               } else {
+                                                                                       break;
+                                                                               }
+                                                                       }
+                                                                       SDL_SaveBMP(surf_screen, screenshot_filename);
+                                                               }
 
                        // new game
                        if((keystate[SDLK_SPACE] || keystate[SDLK_1] || keystate[SDLK_2])
@@ -862,7 +886,7 @@ main(int argc, char **argv) {
        frames = 0;
        gameloop();
        end = SDL_GetTicks();
-       // printf("%ld frames in %ld ms, %.2f fps.\n", frames, end-start, frames * 1000.0 / (end-start));
+       printf("%ld frames in %ld ms, %.2f fps.\n", frames, end-start, frames * 1000.0 / (end-start));
 
        return 0;
 }