From cfdc6e8e95e57051adfdcce7e36587b603ab3e6e Mon Sep 17 00:00:00 2001 From: Lephe Date: Thu, 23 Jul 2020 10:21:50 +0200 Subject: [PATCH] add a simple (non-exhaustive) bopti test on fx-9860G --- assets-fx/img/bopti_1col.png | Bin 0 -> 140 bytes assets-fx/img/bopti_2col.png | Bin 0 -> 140 bytes assets-fx/img/bopti_3col.png | Bin 0 -> 141 bytes assets-fx/img/opt_gint_bopti.png | Bin 0 -> 4981 bytes src/gint/bopti.c | 92 ++++++++++++++++++++++++++++++- 5 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 assets-fx/img/bopti_1col.png create mode 100644 assets-fx/img/bopti_2col.png create mode 100644 assets-fx/img/bopti_3col.png create mode 100644 assets-fx/img/opt_gint_bopti.png diff --git a/assets-fx/img/bopti_1col.png b/assets-fx/img/bopti_1col.png new file mode 100644 index 0000000000000000000000000000000000000000..f1fca5b1506ee9165e12060f3bbfb6c376008bd8 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDb50q$YKTtZeb8+WSBKa0w~B{ z;_2(k{)AmjNS0IHvE?98NZZrJF@)oKZ?7X4gMvWImjC~6@;M5`UR$i({uKbLh*2~7a(GbNb- literal 0 HcmV?d00001 diff --git a/assets-fx/img/bopti_2col.png b/assets-fx/img/bopti_2col.png new file mode 100644 index 0000000000000000000000000000000000000000..793fe8b3c24f36f189889f8367a52f3323eff3b9 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^DnQJ_!2~2T&vE?(Qk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{Rz96kgQ77yc=79LfW1#jv*44_f9y-$)F(6u;p+0Huno`<$MbkI4li2^Wlls jdc*KvpI&X~m@Ta@ZYKLvJ^kJ#pf(0iS3j3^P6?zdop!_u%bPfo7h k)3#GJexH@jA>Y}tA9!VdO5YU_1L|Y&boFyt=akR{02Q7l9{>OV literal 0 HcmV?d00001 diff --git a/assets-fx/img/opt_gint_bopti.png b/assets-fx/img/opt_gint_bopti.png new file mode 100644 index 0000000000000000000000000000000000000000..838821688b62a208db158f7e5991ca5dda0dd312 GIT binary patch literal 4981 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 #include +#ifdef FXCG50 /* gintctl_gint_bopti(): Test image rendering */ void gintctl_gint_bopti(void) { -#ifdef FXCG50 extern bopti_image_t img_swift; extern bopti_image_t img_swords; extern bopti_image_t img_potion_17x22, img_potion_18x22; @@ -62,5 +62,93 @@ void gintctl_gint_bopti(void) key = getkey().key; } -#endif } +#endif + +#ifdef FX9860G +static void img(int x, int y, bopti_image_t *img, int sub, int flags) +{ + int ix = 0; + int w = img->width; + + if(sub) x += 2, ix += 2, w -= 4; + dsubimage(x, y, img, ix, 0, w, img->height, flags); +} +#define img(x, y, i) img(x, y, & img_bopti_##i, sub, flags) + +void gintctl_gint_bopti(void) +{ + extern bopti_image_t img_opt_gint_bopti; + extern bopti_image_t img_bopti_1col; + extern bopti_image_t img_bopti_2col; + extern bopti_image_t img_bopti_3col; + + int key = 0; + int cols=0, flags=DIMAGE_NONE, sub=0, back=0; + + while(key != KEY_EXIT) + { + dclear(back ? C_BLACK : C_WHITE); + + if(cols == 0) + { + img( -6, 4, 1col); + img( 20, 4, 1col); + img( 42, 4, 1col); + img( 64, 4, 1col); + img( 90, 4, 1col); + img(122, 4, 1col); + + dsubimage(0, 10, &img_bopti_1col, 6, 0, 6, 4, flags); + dsubimage(5, 16, &img_bopti_1col, 6, 0, 6, 4, flags); + dsubimage(4, 22, &img_bopti_1col, 5, 0, 7, 4, flags); + dsubimage(3, 28, &img_bopti_1col, 4, 0, 8, 4, flags); + dsubimage(2, 34, &img_bopti_1col, 3, 0, 9, 4, flags); + dsubimage(1, 40, &img_bopti_1col, 2, 0,10, 4, flags); + dsubimage(0, 40, &img_bopti_1col, 1, 0,11, 4, flags); + dsubimage(0, 46, &img_bopti_1col, 0, 0,12, 4, flags); + + img(33, 12, 1col); + } + else if(cols == 1) + { + img(-10, 4, 2col); + img( 28, 4, 2col); + img( 96, 4, 2col); + img( 46, 12, 2col); + } + else if(cols == 2) + { + img(-30, 4, 3col); + img( 90, 4, 3col); + img( -4, 12, 3col); + img( 64, 12, 3col); + } + else if(cols == 3) + { + img( 0, 4, 1col); + img( 20, 4, 1col); + img( 42, 4, 1col); + img( 64, 4, 1col); + img(116, 4, 1col); + } + + dsubimage(0, 56, &img_opt_gint_bopti, 0,0,128,8, DIMAGE_NONE); + dsubimage(0, 56, &img_opt_gint_bopti, 0, 9*cols, 21, 8, + DIMAGE_NONE); + if(flags & DIMAGE_NOCLIP) + { + dsubimage(86, 56, &img_opt_gint_bopti, 86, 9, 21, 8, + DIMAGE_NONE); + } + + dupdate(); + + key = getkey().key; + if(key == KEY_F1) cols = (cols + 1) % 4; + if(key == KEY_F4) sub = !sub; + if(key == KEY_F5) flags ^= DIMAGE_NOCLIP; + if(key == KEY_F6) back = !back; + } +} +#endif