From f938d76711bd40b3503769cfb2bc5f4fd459f702 Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Sun, 23 Apr 2023 16:54:33 +0200 Subject: [PATCH] levels 2-1, 2-2 and 2-3 --- .gitignore | 1 + CMakeLists.txt | 5 ++++- assets/1_3.txt | 26 +++++++++++++------------- assets/2_1.txt | 20 ++++++++++++++++++-- assets/2_2.txt | 19 +++++++++++++++++++ assets/2_3.txt | 30 ++++++++++++++++++++++++++++++ converters.py | 7 +++++++ src/main.cc | 8 ++++++-- src/raytracing.cc | 2 +- 9 files changed, 99 insertions(+), 19 deletions(-) create mode 100644 assets/2_2.txt create mode 100644 assets/2_3.txt diff --git a/.gitignore b/.gitignore index 6c4d1e9..b0da511 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__ /build-*/ *.g3a *.mp4 +*.jpg diff --git a/CMakeLists.txt b/CMakeLists.txt index 9201ff1..4b7e9c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,10 @@ if(AZUR_PLATFORM STREQUAL gint) assets/font.png assets/1_1.txt assets/1_2.txt - assets/1_3.txt) + assets/1_3.txt + assets/2_1.txt + assets/2_2.txt + assets/2_3.txt) endif() if(AZUR_PLATFORM STREQUAL linux) diff --git a/assets/1_3.txt b/assets/1_3.txt index 8ab4e15..0c613aa 100644 --- a/assets/1_3.txt +++ b/assets/1_3.txt @@ -1,20 +1,20 @@ name: 1-3 -finish: 36 +finish: 39 -1-4: text "Oh, we have mirrors too.\nAbsolutely not for safety reasons." +1-6: text "Oh, we have mirrors too.\nAbsolutely not for safety reasons." 3-33: mirror -6: plane DAMAGE BOX -8: plane DAMAGE BIGDOT -10: plane DAMAGE BOX_DOT +8: plane DAMAGE BOX +10: plane DAMAGE BIGDOT +12: plane DAMAGE BOX_DOT -12-15: text "Ok, I lied.\n\nThere MIGHT be invisible red stuff." +15-18: text "Ok, I lied.\n\nThere MIGHT be invisible red stuff." -18: plane INVIS BOX -20: plane INVIS BIGDOT -22: plane ARROW ARROW_+X -24: plane ARROW ARROW_-X -26: plane INVIS BOX_DOT +21: plane INVIS BOX +23: plane INVIS BIGDOT +25: plane ARROW ARROW_+X +27: plane ARROW ARROW_-X +29: plane INVIS VLINES_2_4 -28-30: text "Wow, you're good.\nYou're gonna run the lab\ninto the ground." -32-34: text "The DROP. *" +31-33: text "Wow, you're good.\nYou're gonna run the lab\ninto the ground." +35-37: text "The DROP. *" diff --git a/assets/2_1.txt b/assets/2_1.txt index c865803..7aa39d5 100644 --- a/assets/2_1.txt +++ b/assets/2_1.txt @@ -1,4 +1,20 @@ name: 2-1 -finish: 10 +finish: 32 -1-4: text "You don't have a reflection\nin the mirror.\n\nWhat does that tell us\nabout you?" +1-4: text "Falling in 3, 2...\nOh, wait, you're already falling." + +6: plane DAMAGE DIAGONAL+ +8: plane DAMAGE DIAGONAL- +10: plane ARROW ARROW_+Z +12: plane DAMAGE BOX +13: plane ARROW ARROW_-X +14: plane ARROW ARROW_+X + +16-30: mirror +18: plane DAMAGE RING +20: plane ARROW ARROW_-Z +21: plane DAMAGE BOX +22: plane ARROW ARROW_-X +23: plane DAMAGE DOT +24: plane ARROW ARROW_+X +27: plane DAMAGE VLINES_2_4 diff --git a/assets/2_2.txt b/assets/2_2.txt new file mode 100644 index 0000000..ebbe888 --- /dev/null +++ b/assets/2_2.txt @@ -0,0 +1,19 @@ +name: 2-2 +finish: 34 + +1-30: mirror +2-5: text "You don't have a reflection\nin the mirror.\n\nWhat does that tell us\nabout you?" + +7: plane ARROW ARROW_+X +9: plane DAMAGE HLINES_1_5 +11: plane DAMAGE VLINES_2_4 +13: plane ARROW ARROW_-Z +15: plane DAMAGE BIGDOT +16: plane DAMAGE BOX +18: plane DAMAGE BIGDOT +20: plane ARROW ARROW_-X +22: plane DAMAGE VLINES_2_4 +24: plane ARROW ARROW_+Z +26: plane DAMAGE HLINES_2_4 + +30-33: text "Look at you, all dizzy\njust from rolling a bit.\n\nFocus, I need some results!" diff --git a/assets/2_3.txt b/assets/2_3.txt new file mode 100644 index 0000000..e698f2c --- /dev/null +++ b/assets/2_3.txt @@ -0,0 +1,30 @@ +name: 2-3 +finish: 57 + +1-3: text "Let's see if you can\nthread the needle here." + +5: plane DAMAGE 0b11111'11101'11111'11111'11111 +7: plane DAMAGE 0b11111'11111'11111'10111'11111 +9: plane DAMAGE 0b11111'10111'11111'11111'11111 +11: plane DAMAGE 0b11111'11111'11111'11101'11111 + +14-17: text "Trick question!\nYou just had to roll." +18-20: text "No longer though." + +22: plane DAMAGE 0b01111'11111'11111'11111'11111 +24: plane DAMAGE 0b11111'10111'11111'11111'11111 +26: plane DAMAGE 0b11111'11111'11011'11111'11111 +28: plane DAMAGE 0b11111'11111'11111'11101'11111 +30: plane DAMAGE 0b11111'11111'11011'11111'11111 + +34: plane DAMAGE 0b11111'11101'11111'11111'11111 +36: plane ARROW ARROW_+Z +38: plane DAMAGE 0b11111'10111'11111'11111'11111 +40: plane ARROW ARROW_+X +42: plane DAMAGE 0b01111'11111'11111'11111'11111 +44: plane ARROW ARROW_-X +46: plane DAMAGE 0b11111'11111'11111'11101'11111 +48: plane ARROW ARROW_+Z +50: plane DAMAGE 0b11111'11111'11111'11101'11111 + +52-55: text "Not bad...\nFinally someone promising." diff --git a/converters.py b/converters.py index 1a84a22..8708149 100644 --- a/converters.py +++ b/converters.py @@ -88,9 +88,16 @@ def convert_level(input, params): predef_shapes = { "VLINES_1_5": 0b1000110001100011000110001, + "VLINES_2_4": 0b0101001010010100101001010, + "HLINES_1_5": 0b1111100000000000000011111, + "HLINES_2_4": 0b0000011111000001111100000, "BOX": 0b1111110001100011000111111, "BOX_DOT": 0b1111110001101011000111111, "BIGDOT": 0b0000001110011100111000000, + "DOT": 0b0000000000001000000000000, + "RING": 0b0000001110010100111000000, + "DIAGONAL+": 0b0001100111011101110011000, + "DIAGONAL-": 0b1100011100011100011100011, "ARROW_+X": 0b0010000010111110001000100, "ARROW_-X": 0b0010001000111110100000100, "ARROW_+Z": 0b0010001110101010010000100, diff --git a/src/main.cc b/src/main.cc index 6de4191..895a0d7 100644 --- a/src/main.cc +++ b/src/main.cc @@ -237,7 +237,7 @@ vec3 operator * (mat3 const &M, vec3 const &u) return v; } -__attribute__((maybe_unused)) +__attribute__((unused)) static void print_text(int x, int y, char const *fmt, ...) { static char str[128]; @@ -277,8 +277,11 @@ static bool debug = false; #ifdef AZUR_TOOLKIT_GINT extern struct level level_1_1, level_1_2, level_1_3; +extern struct level level_2_1, level_2_2, level_2_3; +extern struct level level_3_1, level_3_2, level_3_3; static struct level const *levels[] = { &level_1_1, &level_1_2, &level_1_3, + &level_2_1, &level_2_2, &level_2_3, }; #else /* Basic basic level */ @@ -508,7 +511,8 @@ int update(void) // End of level - if(!w->mirror && !w->plane && !w->text && w->depth >= level->finish) { + if(!w->mirror && !w->plane && !w->text && w->depth >= level->finish + && !reset_frames) { if(is_final_level(current_level)) { // TODO: Main menu return 1; diff --git a/src/raytracing.cc b/src/raytracing.cc index 295d0d6..dc286ac 100644 --- a/src/raytracing.cc +++ b/src/raytracing.cc @@ -27,7 +27,7 @@ bool camera_rolling(struct camera const *camera) if(camera->roll > 6.0 && camera->roll_quadrant == 0) distance = fabsf(target_roll - (camera->roll - 2*M_PI)); - return distance > 0.2; + return distance > 0.3; } void camera_roll(struct camera *camera, float snap_factor)