Clipov 2-[ Tomas Benda >@0Clipov Library 2 continuing with automated functions Features: - local cabinet ( set, print, swap, random value ) - execute string ( 2 arguments ) - random drawing color ( make rgb, make b&w, menu select ) - local grid named GRID ( create, clear, shuffle, set, get, save, load, destroy ) BSetLocalCabinet)6BM66(  ~~~~~~}}}}}}}}}~~~bbbFFF#WH* EEEsssOA&noٳh#...Roooze;HHHAAAyGooo_N.^^^ Q߷kvE}}}000AAASetLocalCabinetSetLocalCabinet'6x Expression or String local variables cabinet[1]:0 item 1|item 2 cabinet[2]:0 item 1|item 2 cabinet[3]:0 item 1|item 2 cabinet[4]:0 item 1|item 2 cabinet[5]:0 item 1|item 2 cabinet[6]:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2if (argument_relative) { if (cabinet) { cabinet[1]+=argument0; cabinet[2]+=argument1; cabinet[3]+=argument2; cabinet[4]+=argument3; cabinet[5]+=argument4; cabinet[6]+=argument5; } else { show_debug_message('Trying to modify non-existing cabinet.'); } } else { cabinet[1]=argument0; cabinet[2]=argument1; cabinet[3]=argument2; cabinet[4]=argument3; cabinet[5]=argument4; cabinet[6]=argument5; cabinet=1; } PrintWholeCabinet(6BM66(  nnnnnnnnnnnnmllkllmnnnnncx}nHVZ$%IX\FTXnuCPT$%n.8:g|IX\nBPT|Pae_sxnzn1;>BPSnnnnnnnnnnnnnPrintWholeCabinetPrintWholeCabinet at (x,y)PrintWholeCabinet LineWidth:20 item 1|item 2Border:10 item 1|item 2BckgCol: c_ltgray item 1|item 2OutlCol: c_black item 1|item 2 DrawBckg:1 item 1|item 2 AlphaBckg:0.5 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2 if (cabinet) { //------------------------------------------- var cab,lining, l_now,i,al; al=draw_get_alpha(); lining=argument0; l_now=0; cab=1; i=1; max_width=0; while (i<7) { a=string_width(string(cabinet[i])); if (a>max_width) max_width=a; i=i+1; } all_height=5*lining; all_height+=string_height(string(cabinet[6])); B=argument1; if (argument4) { draw_set_alpha(argument5); draw_rectangle_color(x-(B),y-(all_height/10),x+max_width+(B),y+all_height+(all_height/10),argument2,argument2,argument2,argument2,0); draw_rectangle_color(x-(B),y-(all_height/10),x+max_width+(B),y+all_height+(all_height/10),argument3,argument3,argument3,argument3,1); } draw_set_alpha(1); draw_text(x,y+l_now,string(cabinet[cab])); l_now+=lining; cab+=1; draw_text(x,y+l_now,string(cabinet[cab])); l_now+=lining; cab+=1; draw_text(x,y+l_now,string(cabinet[cab])); l_now+=lining; cab+=1; draw_text(x,y+l_now,string(cabinet[cab])); l_now+=lining; cab+=1; draw_text(x,y+l_now,string(cabinet[cab])); l_now+=lining; cab+=1; draw_text(x,y+l_now,string(cabinet[cab])); l_now+=lining; cab+=1; } else { show_debug_message('Cabinet doesnt exist => cannot be processed.'); }  SwapCabinet16BM66(  ~~~|||zzzxxxxxxyyyzzz|||~~~bbbFFF#WH* EEEsssOA&noٳh#...Roooze;HHHAAAyGooo_N.^^^ OܴiuDvvv--->>>EEE@@@FFFIII???HHHDDDDDDIIILLLHHHKKKHHH SwapCabinet SwapCabinet SwapCabinetCabinetNumber:1 item 1|item 2CabinetNumber:2 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2if (cabinet) { var a; a=cabinet[argument0]; cabinet[argument0]=cabinet[argument1]; cabinet[argument1]=a; } else { show_debug_message('Trying to swap values in non-existing cabinet.'); } Irandom'6BM66(  ^VyXwYY~SrX}[[[\^YsYw_\Y}^}3h3a/V5h;t7h3]7m1c)Hv%Do+T1X7]?v?z=q7c8\5j5h3Y1]-X+Jd)F[!;N17 7V9hAz?zCk9a3]'J{!5 !7B0IO,EO(BQ4MY1IS %+1Rs;jA}ExC|?h%=J'AR1IQ4LX-07.085O[*BM'-)BN+FV1XAxH~=h=c!3;+DV'AR/HT2KW-19-1:6PZ3O\Bfv3N_+DR+Fd9fG|=e+Ls#3/EO-EW-EU6LV+DV*EW9Q\3MY9Xjc;]q-FT/Nh3TAiAz5_%=R8MW.18-3=8OY-GX+DX5NX-BNTPz+BN3Tl7c=\;e7q%Bc3GO,2<,4?7OX-GW+FY/FN;[mv'AP1N]9fAo;h/X+Ll1JV'AQ-CT3MU)BV#9F?_m}/L[/JX3T}Ao;e3f3[V?d/L[7T[;YhdDo-FT5a9_;h1]1]_t-AL3c?q8_1_/[N]mua)N9i6_/Y-[1_HRZF+Y4Z2S~-X+Y%LHP'R/]8c2U)N{)P}+T%L'PLfm}fH-['P-]+V4^%Fs%Ht'Hv'Fs'Jx'L}#Bs!Dx!DvBvAt#J'N)N+T+R+P+LQjIbJcLbLbLcMkLfMkMeMiMhOlPiRiRoPeWn5cabinet[N]=random integer between inclusive4cabinet[@0]=random integer between <@1,@2> inclusive5cabinet[N]=random integer between inclusive cabinet[N]:1 item 1|item 2Min:1 item 1|item 2Max:6 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2if (cabinet) { cabinet[argument0]=irandom_range(argument1,argument2); } else { show_debug_message('Trying to modify non-existing cabinet.'); }  ExecuteString,6BM66(  QQQQQ ExecuteStringExecuteString: @0Arguments: @1, @2, @3, @4, @5String: item 1|item 2 Argument 1:0 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2.execute_string(argument0,argument1,argument2); RandomColor-6BM66(  nnnnnnnnnnnnnnnnnnnnnnn-/6-/6n-/6-/6n-/6-/6n-/6-/6-/6n-/6-/6n-/6-/6nnnmmm-/6-/6-/6nmmm-/6-/6-/6nmmm-/6-/6-/6nnnnnnnnnn RandomColor RandomColor RandomColorRedMin:0 item 1|item 2RedMax:255 item 1|item 2 GreenMin:0 item 1|item 2 GreenMax:255 item 1|item 2BlueMin:0 item 1|item 2BlueMax:255 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2draw_set_color(make_color_rgb(irandom_range(argument0,argument1)mod 255,irandom_range(argument2,argument3)mod 255,irandom_range(argument4,argument5)mod 255));  RandomColorBW.6BM66(  nnnnnnnnnnnnnnnnnnnnnnn-/6-/6n-/6-/6n-/6-/6n-/6-/6-/6n-/6-/6n-/6-/6nnn111111111n111111111n111111111nKKKKKKKKKnKKKKKKKKKnKKKKKKKKKnnnnnnn RandomColorBW RandomColorBW RandomColorBWMin:0 item 1|item 2Max:255 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2h var a; a=irandom_range(argument0,argument1)mod 255; draw_set_color(make_color_rgb(a,a,a)); RandomColorSelect/6BM66(  nnnnnnnnnnnnnnnnnnnnnnn-/6-/6n-/6-/6n-/6-/6n-/6-/6-/6n-/6n-/6nnnmmm-/6-/6-/6nmmm-/6-/6-/6nmmm-/6-/6-/6nnnnnnnnnnRandomColorSelectRandomColorSelectRandomColorSelectColor1: 0 item 1|item 2Color2: 0 item 1|item 2Color3: 0 item 1|item 2Color4: 0 item 1|item 2Color5: 0 item 1|item 2Color6: 0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2ovar a; a=irandom_range(1,6); switch a { case 1: draw_set_color(argument0); break; case 2: draw_set_color(argument1); break; case 3: draw_set_color(argument2); break; case 4: draw_set_color(argument3); break; case 5: draw_set_color(argument4); break; case 6: draw_set_color(argument5); break; default: draw_set_color(c_black); break; } GridCreate76BM66(  ~~~yyyuuuyyy~~~zzzzzzuuussssssuuu~~~vvvqqqqqqvvvyyyqqqqqquuuvvvqqqqqqssszzzyyyuuu~~~uuusssqqqzzzvvv GridCreateGridCreate (@0,@1) GridCreate Argument 0:10 item 1|item 2 Argument 1:10 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 21GRID=ds_grid_create(argument0,argument1);  GridClear86BM66(  -wwwwww-~~~-----zzzzzzqqq-----~~~--qqq-qqq--~~~~~~----ppp,+~~~---+'$tttzzz-*"8[zdim~~~pppMcw6`w|[q7by~\r7by~\r7by~\r7by~\r7by~\r7b^tgy GridCleards_grid GRID clears with @0 GridClearValue:0 item 1|item 2 Argument 1:0 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2ds_grid_clear(GRID,argument0); GridShuffle:6BM66(  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM GridShuffle GridShuffle GridShuffle Argument 0:0 item 1|item 2 Argument 1:0 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2ds_grid_shuffle(GRID);  GridSetValue96BM66(  jF^&lKXxnOX|tyeoQW{qT qZoTWzoST a6VwjS SSeBUSSS pTUSYZ[p GridSetValue"GridSetValue @2 in position @0, @1 GridSetValuex_grid:0 item 1|item 2y_grid:0 item 1|item 2value:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2@ds_grid_set(GRID,argument0,argument1,argument2);  GridGetValue;6BM66(  |pipipipixqys2+++0tp3++/L9++/XH6e]4. ]N5xtxt8`R3vqaT4upg[2rlM7uo GridGetValue"GridGetValue cabinet[@0]=(@1,@2)) GridGetValue cabinet[?]:1 item 1|item 2grid_x:0 item 1|item 2grid_y:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2 if (cabinet) { cabinet[argument0]=ds_grid_get(GRID,argument1,argument2); } else { show_debug_message('Trying to write values into non-existing cabinet.'); } SaveGrid=6BM66(  zzz h9NNNa~~~ X0l/Ixo&azzzczzzzzz`oHzzzH(Azzz~~~`zauuul ]3zuuu`Aqqq& ]3z~~~sssqqqllH r?AzzzcU o=Uzz~~~o&zzzzzz ~xoz~~~?VAzzz ~SaveGrid SaveGrid (@0)SaveGrid filename:'grid_temp.tmp' item 1|item 2 Argument 1:0 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2 var soubor, save_string; save_string=ds_grid_write(GRID); soubor=file_text_open_write(argument0); file_text_write_string(soubor,save_string); file_text_close(soubor); LoadGrid<6BM66(  ~~~yyytttssssssssssssssstttyyy~~~zzzpQooooo~~~~~~pQoeyDT5ٞzzz~~~_EyDT]zzzzzzٞݡ~~~_ET5]www{{{zzz{lN9vzzzdIl{v~~~Ԛ~~~zzzxWlٞzzzsssuuu_EyDׁzzzqqq_EyDv~~~N9ԚyDv~~~dIguuudI4sss~~~5555TD,LoadGrid LoadGrid (@0)LoadGrid filename:'grid_temp.tmp' item 1|item 26 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2var soubor, save_string; soubor=file_text_open_read(argument0); save_string=file_text_read_string(soubor); file_text_close(soubor); ds_grid_read(GRID,save_string);  GridDestroy>6BM66(  ll||ppHHRR}}~vvBBRRxx<<IIWWz::VV\\{++))LL~~~NN++**WWUU;;YYyPP::rruuLLuuZZ@@{{]]ww GridDestroy GridDestroy GridDestroy Argument 0:0 item 1|item 2 Argument 1:0 item 1|item 2 Argument 2:0 item 1|item 2 Argument 3:0 item 1|item 2 Argument 4:0 item 1|item 2 Argument 5:0 item 1|item 2 Argument 6:0 item 1|item 2 Argument 7:0 item 1|item 2ds_grid_destroy(GRID);