diff --git a/0broken.kble b/0broken.kble new file mode 100644 index 0000000..2dfc950 Binary files /dev/null and b/0broken.kble differ diff --git a/CMakeLists.txt b/CMakeLists.txt index e4c2d25..c345618 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ project(MTEM C) include(GenerateG3A) include(Fxconv) -find_package(Gint 2.4.0 REQUIRED) +find_package(Gint 2.5.0 REQUIRED) find_package(LibImg 2.4.0 REQUIRED) include_directories(include generated/include) @@ -60,8 +60,9 @@ set(LEVELS assets/levels/01/2dos.kble assets/levels/01/3secrets.kble assets/levels/02/0martha.kble - assets/levels/02/1roots.kble + assets/levels/02/1eden.kble assets/levels/02/2noon.kble + assets/levels/02/3midnight.kble ) add_custom_target(filepaths diff --git a/assets/graphics/tileset.png b/assets/graphics/tileset.png index 61d990a..8b64525 100644 Binary files a/assets/graphics/tileset.png and b/assets/graphics/tileset.png differ diff --git a/assets/levels/02/0martha.kble b/assets/levels/02/0martha.kble index f8640de..ee2929d 100644 Binary files a/assets/levels/02/0martha.kble and b/assets/levels/02/0martha.kble differ diff --git a/assets/levels/02/1eden.kble b/assets/levels/02/1eden.kble new file mode 100644 index 0000000..f3ac2dd Binary files /dev/null and b/assets/levels/02/1eden.kble differ diff --git a/assets/levels/02/1roots.kble b/assets/levels/02/1roots.kble deleted file mode 100644 index 129bfcd..0000000 Binary files a/assets/levels/02/1roots.kble and /dev/null differ diff --git a/assets/levels/02/3midnight.kble b/assets/levels/02/3midnight.kble new file mode 100644 index 0000000..2947345 Binary files /dev/null and b/assets/levels/02/3midnight.kble differ diff --git a/include/conf.h b/include/conf.h index ad3f71a..591d3b3 100644 --- a/include/conf.h +++ b/include/conf.h @@ -25,3 +25,4 @@ #define BURST_BOOST 0.5 #define V_TRANS_SPD (1.0 / 20.0) #define H_TRANS_SPD (1.0 / 20.0) +/* #define RECORDING */ diff --git a/src/main.c b/src/main.c index acf68ba..9fbe063 100644 --- a/src/main.c +++ b/src/main.c @@ -20,13 +20,25 @@ #include #include #include +#include + +#ifdef RECORDING +#define DUPDATE() \ + do { \ + dupdate(); \ + if (usb_is_open()) \ + usb_fxlink_screenshot(1); \ + } while (0); +#else +#define DUPDATE() dupdate(); +#endif #define PANIC(msg) \ do { \ dclear(ZX_BLACK); \ dprint_opt(DWIDTH / 2, DHEIGHT / 2, ZX_RED, C_NONE, \ DTEXT_CENTER, DTEXT_MIDDLE, "ERROR: %s", msg); \ - dupdate(); \ + DUPDATE(); \ getkey(); \ return 0; \ } while (0); @@ -71,6 +83,12 @@ main(void) struct Transition transition; particles_init(); +#ifdef RECORDING + /* open usb for screenshots */ + usb_interface_t const *interfaces[] = {&usb_ff_bulk, NULL}; + usb_open(interfaces, GINT_CALL_NULL); +#endif + /* set font */ dfont(&font_main); @@ -96,9 +114,11 @@ main(void) /* skip render frames */ i = 1 + frameskip; while (i-- > 0) { +#ifndef RECORDING /* frameskip adjustement */ if (has_ticked - 1 > frameskip) frameskip = has_ticked - 1; +#endif /* speed limiter */ while (!has_ticked) @@ -247,11 +267,15 @@ main(void) PANIC("missing game_state case (draw)"); break; } - dupdate(); + DUPDATE(); /* return to main menu */ /* TODO don't hardcode this */ if (keydown(KEY_MENU)) { +#ifdef RECORDING + if (usb_is_open()) + usb_close(); +#endif gint_osmenu(); if (game_state == Playing) game_state = GamePause; @@ -259,6 +283,10 @@ main(void) } timer_stop(timer); +#ifdef RECORDING + if (usb_is_open()) + usb_close(); +#endif return 1; }