From 81f73656bf281fc0598670cbed4867551ffb6ed1 Mon Sep 17 00:00:00 2001 From: Tituya Date: Fri, 30 Apr 2021 17:32:49 +0200 Subject: [PATCH] dirty fix but it's AST3 so it's ok --- compile_levels.py | 3 +-- editor/AST3generator.py | 7 +++++-- editor/levels/0.lvl | 2 +- editor/levels/1.lvl | 4 ++-- editor/levels/10.lvl | 2 +- editor/levels/11.lvl | 2 +- editor/levels/12.lvl | 2 +- editor/levels/13.lvl | 2 +- editor/levels/14.lvl | 2 +- editor/levels/15.lvl | 2 +- editor/levels/16.lvl | 2 +- editor/levels/17.lvl | 2 +- editor/levels/18.lvl | 4 ++++ editor/levels/2.lvl | 2 +- editor/levels/3.lvl | 2 +- editor/levels/4.lvl | 2 +- editor/levels/5.lvl | 2 +- editor/levels/6.lvl | 2 +- editor/levels/7.lvl | 2 +- editor/levels/8.lvl | 2 +- editor/levels/9.lvl | 2 +- src/main.c | 8 +++----- 22 files changed, 32 insertions(+), 28 deletions(-) create mode 100644 editor/levels/18.lvl diff --git a/compile_levels.py b/compile_levels.py index 74bbb85..2a1d275 100755 --- a/compile_levels.py +++ b/compile_levels.py @@ -7,8 +7,7 @@ while 1: try: lv = open(f"editor/levels/{ids}.lvl","r") ide = lv.readlines() - if ide[1]!='\n': - save.write(f"case {ids}:\nmemcpy(level,\"{str(ide[0][:-2])}\",350);\n*appear={ide[1][:-1]};\n*disappear={ide[2]};\n*nbswitch={ide[3]};\nbreak;\n") + save.write(f"case {ids}:\nmemcpy(level,\"{str(ide[0][:-2])}\",350);\n*appear={ide[1][:-1]};\n*disappear={ide[2][:-1]};\n*nbswitch={ide[3]};\nbreak;\n") ids+=1 except FileNotFoundError: lv.close() diff --git a/editor/AST3generator.py b/editor/AST3generator.py index 9d0959b..370b7fe 100755 --- a/editor/AST3generator.py +++ b/editor/AST3generator.py @@ -107,12 +107,15 @@ def place(): fenetre.blit(levelgr, (10, 60)) fenetre.blit(timeapp, (55, 10)) fenetre.blit(timedisa, (140, 10)) - fenetre.blit(nbswitchfont, (370, 10)) + if "z" in str(grille): + fenetre.blit(nbswitchfont, (370, 10)) if id_level==0 : fenetre.blit(font.render("NIVEAU DE TEST",1,(0,180,255)), (600,10)) pygame.display.flip() def write(): + global nbswitch f = open(f"editor/levels/{id_level}.lvl","w+") + if "z" not in str(grille): nbswitch = 1 f.write(str(grille).replace("]","").replace("(","").replace(")","").replace("'","").replace("[","").replace(" ","").replace(",","")+f"{gravityid}\n{app}\n{disa}\n{nbswitch}") f.close() @@ -130,7 +133,7 @@ id_level = 0 gravityid = 6 disa = 10 app = 13 -nbswitch = -1 +nbswitch = 1 lock="" tab = 0 diff --git a/editor/levels/0.lvl b/editor/levels/0.lvl index e739900..8e71bbc 100755 --- a/editor/levels/0.lvl +++ b/editor/levels/0.lvl @@ -1,4 +1,4 @@ 11111111111111111111000111000000000000000000000001100000000000000000000000110e00000b0000l000S000000111111aaaaaaa11111111111111ddd1ddddddd1mmm1000000011ddd111111111mmm1000000011ddd111111111ccc101BB00011ddd1ddddddd1ccc10i00000111111aaaaaaa111110i000001100000000000030010i0000011000000000000300h0i1BBB111s000K00000k0300h0i0000011111111ddd1111111111000116 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/1.lvl b/editor/levels/1.lvl index bceeb37..dad93ab 100755 --- a/editor/levels/1.lvl +++ b/editor/levels/1.lvl @@ -1,4 +1,4 @@ 10011111111dddd1111111111000111100000000000000000000011110011111111ddd100001111111001dd000ddddd111111111111001dd0t0ddddddddd11000001001dd000ddddddddd11000001001aaaaaaaaaaaaaa110s00010010000000000000e11d1100100100000000000aaa11111001001000000000ddddd1111100100100000000011111100010000010000000003000000001000001000K0000030k00010011111111111111111111116 -13 +11 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/10.lvl b/editor/levels/10.lvl index b5bd444..42b8a2c 100755 --- a/editor/levels/10.lvl +++ b/editor/levels/10.lvl @@ -1,4 +1,4 @@ 11111111t133111111100011111111111133311111110K01111100000100111111111000111110s00010i11111100000001111d110K10i11111d000000011111110K10i1111a001BBBBB11110000010i111d0a010000011110000010i11a03011d0ddd1111001ddd0i1d0a0d110000011110000000i0a30111100e00111100000k0130ad11110aa001111dd000001031111111ddd11111111111B1001111111aaa11111111111010011111110001116 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/11.lvl b/editor/levels/11.lvl index b9ebdbe..8602403 100755 --- a/editor/levels/11.lvl +++ b/editor/levels/11.lvl @@ -1,4 +1,4 @@ 1ddddddddddd11dddddddddd11dddddddddd00000dd3aaa11i1dd111100000000000030000i1dd000000000001110003000i1d000001111100K000003000i1d00000S00k0000000003aBB110s000100000ddd011103atl11111331ddddddddddddddd1111ddd001dddddddd11d0S0ddd11ddd00d1dd11d000300000dd11ddd000000000000300000dd11dddaaa00000000d3S00e0dd11dddddd00S0d111d3d000ddd11ddddddddddddddddddddddd16 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/12.lvl b/editor/levels/12.lvl index 275fdc9..a347bcc 100755 --- a/editor/levels/12.lvl +++ b/editor/levels/12.lvl @@ -1,4 +1,4 @@ 1111111111010001dd11111110000001000013331001000000000000100t01000h0010000001111iB111111000h0013311111e00ik11d111000300300000d10ddi011d0010003003000s0d10aai01000010001hh1hh11111000i01h1h1100010010000011dd0i000000h00010010001a11aa01dd0dd110001001000h0110001dd1d1110S0100100010110000S0S0001ddd100h0001Kd100000S0S001111100h00011111111dddd10h00011111111116 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/13.lvl b/editor/levels/13.lvl index 3b4ff32..8e1b788 100755 --- a/editor/levels/13.lvl +++ b/editor/levels/13.lvl @@ -1,4 +1,4 @@ 11111111111111111111111111ddddddddd0S00ddddddddddd1ddddaaaaa000000ddddddddd1ddd00S000000e0ddd0dddddd1dd000000ddddddd00000dddd1daaaa00dd11100S00S000ddd10000000d00000000000S00dd10K000h0d00001100000000dd1111000ddd000000S0d0h00dd1ddd000dd000dd000ddd000dd1dddhhdd000ddddddddd000dd1ddb00S0000100000dd0000dd1dtb00000011s000000000ddd111111d11111111111111dddd6 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/14.lvl b/editor/levels/14.lvl index 74a3c39..08988b6 100755 --- a/editor/levels/14.lvl +++ b/editor/levels/14.lvl @@ -1,4 +1,4 @@ 1111111111111ddd11iK1d00100000d111000000011it1d00000000d100000000011i31110011100d13331110e011ihhh11100000d100011111111i00000000000d100000011111i00111011100d1000000000011000s111111111000000000011dd0001hk001111i00Sddd001dddd00hh0000001i000111000aad1ddhddd0000000001110000001111111dd0000000111000000001111111dd000011110000000001111111111111111ddd13100017 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/15.lvl b/editor/levels/15.lvl index e2e480f..4d25a33 100755 --- a/editor/levels/15.lvl +++ b/editor/levels/15.lvl @@ -1,4 +1,4 @@ i011100dd1111dddm111ddmd1i01d1000000010S0011100S01i01d100000001000000000001i01d1cc111001hh1c11111001i01ddddddi00i000bddd00001i01dd1133i00i000lddd000K1100000000i00i00001d110011300000000i00100331d100003300000010i001s03t1d1000031111100hki0011111ddd1BB1110S01hh11100m0000aaa0000110001001d100m000000000001100e1001d100m0aaa000aaa0110d11001111111ddddddddd116 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/16.lvl b/editor/levels/16.lvl index 6a13da1..1de4975 100755 --- a/editor/levels/16.lvl +++ b/editor/levels/16.lvl @@ -1,4 +1,4 @@ 11111dddd100d110111111331000000000000d1d0000dd10s0111d00000000K1d10000d11111ddddd11ddhh1dddd000dddd11100Sh00dd00000dd00000001i0000000dd000000d0000S001i01100d0dd00d000dd0000001i0d00Sd0dd00dd10ddhh00l01i0ddddd0dd00ddi0d00000001iBBBdd0011aaddi0d0S00d0011000dd000300ddi0d0000d00110mmdd000d00ddi0dd00dd0011emtdddddd00ddi0ddddddkk1111111111100111Bdddd110016 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/17.lvl b/editor/levels/17.lvl index 89884d0..977b885 100644 --- a/editor/levels/17.lvl +++ b/editor/levels/17.lvl @@ -1,4 +1,4 @@ 101111110111111111100111110dS00d00000001111100111110aaa0d00000K010000001111100h00d0S0000010ddaaa1111100000ddd1111110ddddd1111111a00000S1e3s00100S0111100z0000000111dda100k0100000z000000000ddddd00001000111ddaaaaa000000000101001100Saddddd0000000001010011000000aa11111111111110011000a000003000000010000011000a0a0003010000t100000110111111011111111110011117 13 10 -18 \ No newline at end of file +19 \ No newline at end of file diff --git a/editor/levels/18.lvl b/editor/levels/18.lvl new file mode 100644 index 0000000..4c84c77 --- /dev/null +++ b/editor/levels/18.lvl @@ -0,0 +1,4 @@ +11111111111111111111111111000000000000000000000001100000000000000000000000110ddd0d0ddd0d0d0d0d0ddd01100d00d00d00d0d00d00d0d01100d00d00d00d0d00d00ddd01100d00d00d00ddd00d00d0d011000000000000000000000001100000000000000000000000110000000111111111111111111000000000000010001000001100000000000000000000000110s0000z00001000100000e0111111111111111111111111116 +13 +10 +5 \ No newline at end of file diff --git a/editor/levels/2.lvl b/editor/levels/2.lvl index 2690b13..d85cfee 100755 --- a/editor/levels/2.lvl +++ b/editor/levels/2.lvl @@ -1,4 +1,4 @@ 1dddddd100111111111111111000000000011111000000000000000000l01100c00000000001aaaaaaa111100c00000000011dddddddddd1001aaaaaaaaa11cccccccccc1001ddddddddd1000000000001331000000aa000000000000s10e1k0000000001ccccccccc111111111113311100000000011001000000000110000000001100b0000000001100000000011t0b00000000011000K0000011111aaaaaaaaa1111111110011111ddddddddd16 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/3.lvl b/editor/levels/3.lvl index adf6609..65da0ed 100755 --- a/editor/levels/3.lvl +++ b/editor/levels/3.lvl @@ -1,4 +1,4 @@ 11001111111001111111111111000111dddd000000000100013000111dddd00000000010003300000000dd11111000010e03100000000dd03a01000011111111110000dd03a01000000001100s1dd00ddt3a0100000000110001dd00dd1110100000000110001dd0Kdd00001ddd000ddd10001dd00dd00001111100ddd10001dd00dd00001000000ddd30001dd0000000010k000000330001dd0000000010000000031d001111111001111111111117 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/4.lvl b/editor/levels/4.lvl index a98c35c..33d1770 100755 --- a/editor/levels/4.lvl +++ b/editor/levels/4.lvl @@ -1,4 +1,4 @@ 11111111111011111dddd1111100001dd0000dd100000000011s0001dd0d11dd10000000001111001dd0d111dd00111100011dd001dt0d10000001dd100011dd001d11d10000001dd100011dd00dd11110011111dd100011dd00000000001dddddd100011dd1111dbd1111ddd111100011ddddddd0dd1d1ddd100000011ddddddd0000d1ddd1e0000011ddddddd1110d1ddd111cccc11dddddddddd0d1ddd111dddd111111111111011111111111116 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/5.lvl b/editor/levels/5.lvl index d376b0c..8f20cc4 100755 --- a/editor/levels/5.lvl +++ b/editor/levels/5.lvl @@ -1,4 +1,4 @@ 000000000000000000000000000000000000000000000000t000000000000000000000000000011dd111111111111111110000100000100000010000001000011cc001s0000d00000001000010000e111dd0100000dd100001001111000d0000000dd100001000001000111d000ddd1000010000000000000000ddd1000011111111111d111B11111000000000000000000000000000000000000000000000000000000000000000000000000000006 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/6.lvl b/editor/levels/6.lvl index 7fcc797..c0c3263 100755 --- a/editor/levels/6.lvl +++ b/editor/levels/6.lvl @@ -1,4 +1,4 @@ 10001011111011111111111111000101dd10001111dddd11110000101dd10001000000000001111101dd1aaa1000ccccddd110s00010013331000000000011dddd110010001mmmdd00000100000000010e010t0dd00000011111100011111d1dddddd1111k00000001d000111001111111111111101d00000000000111000010000100000000000000010K010000100011100000011110001000010001110000dd11110001011111011111111111117 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/7.lvl b/editor/levels/7.lvl index a45bc7b..4c98595 100755 --- a/editor/levels/7.lvl +++ b/editor/levels/7.lvl @@ -1,4 +1,4 @@ 111001111111100i0d0011111100000111ddd000i0d0000001100000000000000itd00000e1111111ddd111111111111111100000000000000000h00d0000111111111dd111110100d000110001100000000010100d0001000011000000000i0d00d0000000000000000000i0d00d00001111dd111100000ild00111111000011111ddd00i0d0011111d000011111ddd00i0d0011111d0s0011111ddd00i0d0011111111001111111100i0d00111116 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/8.lvl b/editor/levels/8.lvl index 438149e..15d0ae4 100755 --- a/editor/levels/8.lvl +++ b/editor/levels/8.lvl @@ -1,4 +1,4 @@ dddddddddddddddddddddddddBBBBBBBBBBBBBBBBBBBBBBBBB100001kk10011111dt0a000011000010010010000d11a00001100001BB100100000000000013000000000010001110000000300000000001aaaaaa0000000111111000001000000001111110dd00000001000000001000110000000a001BBBd00a0100013000000000010001000010003300s000000010K0100001e003aaBBBBBBBBBBBBBBBBBBBaaaaddddddddddddddddddddddddd6 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/editor/levels/9.lvl b/editor/levels/9.lvl index 1374d7f..55230eb 100755 --- a/editor/levels/9.lvl +++ b/editor/levels/9.lvl @@ -1,4 +1,4 @@ 00000ddddddd100000000000011111111111111111110011111000000dd1111ddd0K10000b1100111000000100000100000110000100000010000010010011000k111dd101dd00d10000011000110000001000001BBBB011000100011dd1000001dddd01100010ddd1dd1d00dd1011001133310ddd1dd1BBBBB1t00001100000ddd1dd1000001ddd1111s0000ddd1dd10000011111111BBB111aaaaa110001111111100000000000e10000000000006 13 10 --1 \ No newline at end of file +1 \ No newline at end of file diff --git a/src/main.c b/src/main.c index 2945aac..a8f66ab 100644 --- a/src/main.c +++ b/src/main.c @@ -69,7 +69,6 @@ void game(int *id_level, char mode, char *type) &disappear, &nbswitch); player_x = start_x; player_y = start_y; - draw_level(level); while (game_loop) { while (!frame_elapsed) sleep(); @@ -149,7 +148,7 @@ void game(int *id_level, char mode, char *type) hspd = 0; // Action key if (keydown(KEY_SHIFT) && !check && - (nbswitch > 0 || nbswitch == -1) && + nbswitch > 0 && ((collide_solid(player_x, player_y - 1, level) && gravity) || (collide_solid(player_x, player_y + 1, level) && @@ -159,7 +158,7 @@ void game(int *id_level, char mode, char *type) gravity = 1; else gravity = 0; - if (check_nbswitch && nbswitch != 0) { + if (check_nbswitch && nbswitch > 0) { nbswitch -= 1; } check = 1; @@ -236,6 +235,7 @@ void game(int *id_level, char mode, char *type) &gravity, &appear, &disappear, &nbswitch); player_x = start_x; player_y = start_y; + check_nbswitch = 0; blackout = 0; double_check = 1; framelevel = 0; @@ -487,8 +487,6 @@ void game(int *id_level, char mode, char *type) if (mode) { if (*id_level == 0) { game_loop = 0; - draw_end(framelevel, *id_level, 0); - sleep_ms(2500); *id_level = 1; } if (game_loop) // end of a level with level selection