#include #include "structure.h" #include "hud.h" #include "minefield.h" #include "fonctionUtile.h" const unsigned char minefield_clickedmine[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,2,1,2,2,2,2,2,1,2,1,1,1, 0,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,2,2,3,3,2,2,2,2,2,1,1,1, 0,1,1,1,2,2,3,3,2,2,2,2,2,1,1,1, 0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1, 0,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,2,1,2,2,2,2,2,1,2,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_clickedmine_palette[4]={ 0x7bef,0xf800,0x0,0xffff }; const unsigned char minefield_flag[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,3,3,1,1,1,1,1,2,2, 0,0,1,1,1,3,3,3,3,1,1,1,1,1,2,2, 0,0,1,1,3,3,3,3,3,1,1,1,1,1,2,2, 0,0,1,1,1,3,3,3,3,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,3,3,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,4,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,4,1,1,1,1,1,2,2, 0,0,1,1,1,1,4,4,4,4,1,1,1,1,2,2, 0,0,1,1,4,4,4,4,4,4,4,4,1,1,2,2, 0,0,1,1,4,4,4,4,4,4,4,4,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; const color_t minefield_flag_palette[5]={ 0xffff,0xbdf7,0x7bef,0xf800,0x0 }; const unsigned char minefield_mine[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,2,1,2,2,2,2,2,1,2,1,1,1, 0,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,2,2,3,3,2,2,2,2,2,1,1,1, 0,1,1,1,2,2,3,3,2,2,2,2,2,1,1,1, 0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1, 0,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,2,1,2,2,2,2,2,1,2,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_mine_palette[4]={ 0x7bef,0xbdf7,0x0,0xffff }; const unsigned char minefield_nomine[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,2,1,1,1,1,1,3,1,1,1,1,1,2,1, 0,1,1,2,1,1,1,1,3,1,1,1,1,2,1,1, 0,1,1,1,2,1,3,3,3,3,3,1,2,1,1,1, 0,1,1,1,1,2,3,3,3,3,3,2,1,1,1,1, 0,1,1,1,3,3,2,4,3,3,2,3,3,1,1,1, 0,1,1,1,3,3,4,2,3,2,3,3,3,1,1,1, 0,1,3,3,3,3,3,3,2,3,3,3,3,3,3,1, 0,1,1,1,3,3,3,2,3,2,3,3,3,1,1,1, 0,1,1,1,3,3,2,3,3,3,2,3,3,1,1,1, 0,1,1,1,1,2,3,3,3,3,3,2,1,1,1,1, 0,1,1,1,2,1,3,3,3,3,3,1,2,1,1,1, 0,1,1,2,1,1,1,1,3,1,1,1,1,2,1,1, 0,1,2,1,1,1,1,1,3,1,1,1,1,1,2,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_nomine_palette[5]={ 0x7bef,0xbdf7,0xf800,0x0,0xffff }; const unsigned char minefield_onclick[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_onclick_palette[2]={ 0xa534,0xd69a }; const unsigned char minefield_selected_0[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_0_palette[2]={ 0x7bef,0xbdf7 }; const unsigned char minefield_selected_1[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_1_palette[3]={ 0x7bef,0xbdf7,0x1f }; const unsigned char minefield_selected_2[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1, 0,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_2_palette[3]={ 0x7bef,0xbdf7,0x3e0 }; const unsigned char minefield_selected_3[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_3_palette[3]={ 0x7bef,0xbdf7,0xf800 }; const unsigned char minefield_selected_4[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,2,2,2,1,2,2,2,1,1,1,1, 0,1,1,1,1,2,2,2,1,2,2,2,1,1,1,1, 0,1,1,1,2,2,2,1,1,2,2,2,1,1,1,1, 0,1,1,1,2,2,2,1,1,2,2,2,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_4_palette[3]={ 0x7bef,0xbdf7,0xf }; const unsigned char minefield_selected_5[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_5_palette[3]={ 0x7bef,0xbdf7,0x7800 }; const unsigned char minefield_selected_6[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,1,1,1,1,2,2,2,1,1,1, 0,1,1,2,2,2,1,1,1,1,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_6_palette[3]={ 0x7bef,0xbdf7,0x499 }; const unsigned char minefield_selected_7[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1, 0,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1, 0,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_7_palette[3]={ 0x7bef,0xbdf7,0x0 }; const unsigned char minefield_selected_8[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1, 0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1, 0,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1, 0,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1, 0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1, 0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1, 0,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1, 0,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1, 0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1, 0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t minefield_selected_8_palette[2]={ 0x7bef,0xbdf7 }; const unsigned char minefield_unselected[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2, 0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; const color_t minefield_unselected_palette[3]={ 0xffff,0xbdf7,0x7bef }; const unsigned char* on_the_minefield[] = { minefield_mine, minefield_selected_0, minefield_selected_1, minefield_selected_2, minefield_selected_3, minefield_selected_4, minefield_selected_5, minefield_selected_6, minefield_selected_7, minefield_selected_8 }; const color_t* on_the_minefield_palette[]={ minefield_mine_palette, minefield_selected_0_palette, minefield_selected_1_palette, minefield_selected_2_palette, minefield_selected_3_palette, minefield_selected_4_palette, minefield_selected_5_palette, minefield_selected_6_palette, minefield_selected_7_palette, minefield_selected_8_palette }; const unsigned char corner_top[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }; const color_t corner_top_palette[3]={ 0xbdf7,0x7bef,0xffff }; const unsigned char corner_bottom_left[]={ 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 1,1,1,1,1,1,1,1,1,2,3,4,0,0,0, 1,1,1,1,1,1,1,1,1,2,3,4,0,0,0, 1,1,1,1,1,1,1,1,1,2,3,4,0,0,0, 1,1,1,1,1,1,1,1,1,2,3,4,0,0,0, 1,1,1,1,1,1,1,1,1,2,3,4,0,0,0, 1,1,1,1,1,1,1,1,1,2,3,4,0,0,0, 5,5,5,6,6,6,5,5,5,7,8,4,0,0,0, 8,8,8,8,8,8,8,8,8,8,9,4,0,0,0, 4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; const color_t corner_bottom_left_palette[10]={ 0xffff,0xbdf7,0x1da,0x114,0x91,0x27c,0x2ba,0x177,0xf3,0xd2 }; const unsigned char corner_bottom_right[]={ 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,4,0, 0,0,0,1,2,3,4,4,4,4,4,4,4,0,0, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,6,1,7,8,8,8,3,3,3,8,8,8, 0,0,0,9,10,10,10,10,10,10,10,10,10,10,10, 0,0,0,11,12,12,12,12,12,12,12,12,12,12,12, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; const color_t corner_bottom_right_palette[13]={ 0xffff,0x19a,0x135c,0x2ba,0xbdf7,0x7bef,0xd9,0x129b,0x27c,0xb5,0xf3,0x92,0x91 }; const unsigned char corner_right[]={ 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5 }; const color_t corner_right_palette[6]={ 0xffff,0x19a,0x135c,0x2ba,0xbdf7,0x7bef }; const unsigned char corner_top_left[]={ 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 5,5,0,0,0,0,0,0,0,1,2,3,4,4,4, 5,0,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 4,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 4,4,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 0,0,0,0,0,0,0,0,0,1,2,3,4,4,4, 5,5,0,0,0,0,0,0,0,1,2,3,4,4,4, 5,0,4,0,0,0,0,0,0,1,2,3,4,4,4, 0,4,4,0,0,0,0,0,0,1,2,3,4,4,4 }; const color_t corner_top_left_palette[6]={ 0xbdf7,0x1da,0x114,0x91,0xffff,0x7bef }; const unsigned char corner_top_right[]={ 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,4,0, 0,0,0,1,2,3,4,4,4,4,4,4,4,0,0, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,4,4,4, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5, 0,0,0,1,2,3,4,4,4,4,4,4,5,5,5 }; const color_t corner_top_right_palette[6]={ 0xffff,0x19a,0x135c,0x2ba,0xbdf7,0x7bef }; const unsigned char corner_bottom[]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,3,3,3,3,3,3,2,2,2,2,2, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; const color_t corner_bottom_palette[6]={ 0xffff,0xbdf7,0x27c,0x2ba,0xf3,0x91 }; const unsigned char corner_left[]={ 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0, 0,0,0,1,1,1,1,1,1,2,3,4,0,0,0 }; const color_t corner_left_palette[5]={ 0xffff,0xbdf7,0x1da,0x114,0x91 }; eTypeAction** New_tab2dim_eTypeAction(int height, int lenght) { int i; eTypeAction** tab = (eTypeAction**) malloc (sizeof(eTypeAction)*height); for ( i=0 ; i=0 && x_rand-1=0) tab[y_rand-1][x_rand-1]++; if (tab[y_rand][x_rand-1] != -1 && y_rand=0 && x_rand-1= 0) tab[y_rand][x_rand-1]++; if (tab[y_rand+1][x_rand-1] != -1 && y_rand+1=0 && x_rand-1=0) tab[y_rand+1][x_rand-1]++; if (tab[y_rand-1][x_rand+1] != -1 && y_rand-1=0 && x_rand+1=0) tab[y_rand-1][x_rand+1]++; if (tab[y_rand][x_rand+1] != -1 && y_rand=0 && x_rand+1= 0) tab[y_rand][x_rand+1]++; if (tab[y_rand+1][x_rand+1] != -1 && y_rand+1=0 && x_rand+1=0) tab[y_rand+1][x_rand+1]++; if (tab[y_rand-1][x_rand] != -1 && y_rand-1=0 && x_rand=0) tab[y_rand-1][x_rand]++; if (tab[y_rand+1][x_rand] != -1 && y_rand+1=0 && x_rand=0) tab[y_rand+1][x_rand]++; i++; } }while (i<=nb_mine); } void Display_minefield_border(int height, int lenght, tPos scrolling) { int i; for (i=scrolling.x ; i=-16 && i<384) { if (scrolling.y>=0) CopySpriteNbitMasked( corner_top , i , scrolling.y-52 , 16, 52, corner_top_palette, 0x9a57 , 8); if (scrolling.y+16*height<216) CopySpriteNbitMasked( corner_bottom , i , scrolling.y+16*height , 16, 15, corner_bottom_palette, 0x9a57 , 8); } } for (i=scrolling.y ; i=-16 && i<216) { if (scrolling.x>=0) CopySpriteNbitMasked( corner_right , scrolling.x-15 , i , 15, 16, corner_right_palette, 0x9a57 , 8); if (scrolling.x+16*lenght<384) CopySpriteNbitMasked( corner_left , scrolling.x+16*lenght , i , 15 , 16 , corner_left_palette, 0x9a57 , 8); } } CopySpriteNbitMasked( corner_top_right , scrolling.x-15 , scrolling.y-52 , 15, 52, corner_top_right_palette, 0x9a57 , 8); CopySpriteNbitMasked( corner_top_left , scrolling.x+16*lenght, scrolling.y-52 , 15, 52, corner_top_left_palette, 0x9a57 , 8); CopySpriteNbitMasked( corner_bottom_left , scrolling.x+16*lenght , scrolling.y+16*height , 15, 15, corner_bottom_left_palette, 0x9a57 , 8); CopySpriteNbitMasked( corner_bottom_right , scrolling.x-15 , scrolling.y+16*height , 15, 15, corner_bottom_right_palette, 0x9a57 , 8); } void Display_minefield(int** tab, eTypeAction** tab_action,int height, int lenght, tPos scrolling) { int x = scrolling.x; int y = scrolling.y; int i, j; Display_windows(scrolling,height,lenght); for ( i=0 ; i0-20 && x+j*16<384 && y+i*16>0-20 && y+i*16<216) { if (tab_action[i][j]==clicked) CopySpriteNbitMasked( on_the_minefield[tab[i][j]+1] , x+j*16 , y+i*16 , 16, 16, on_the_minefield_palette[tab[i][j]+1], 0x9a57 , 8); else if (tab_action[i][j]==flaged) CopySpriteNbitMasked( minefield_flag , x+j*16 , y+i*16 , 16, 16, minefield_flag_palette , 0x9a57 , 8); else if (tab_action[i][j]==none) CopySpriteNbitMasked( minefield_unselected , x+j*16 , y+i*16 , 16, 16, minefield_unselected_palette , 0x9a57 , 8); else if (tab_action[i][j]==clicked_on_mine) CopySpriteNbitMasked( minefield_clickedmine , x+j*16 , y+i*16 , 16, 16, minefield_clickedmine_palette , 0x9a57 , 8); else CopySpriteNbitMasked( minefield_nomine , x+j*16 , y+i*16 , 16, 16, minefield_nomine_palette , 0x9a57 , 8); } } } Display_minefield_border(height,lenght,scrolling); } void Select_rec (int** minefield,eTypeAction** minefield_action,int height,int lenght,int x, int y) { if ( minefield_action[y][x] == none) { minefield_action[y][x] = clicked; if (minefield[y][x]==0) { if (x-1 >= 0) Select_rec (minefield,minefield_action,height,lenght,x-1,y); if (x+1 < lenght) Select_rec (minefield,minefield_action,height,lenght,x+1,y); if (y-1 >= 0) Select_rec (minefield,minefield_action,height,lenght,x,y-1); if (y+1 < height) Select_rec (minefield,minefield_action,height,lenght,x,y+1); if (x-1 >= 0 && y-1 >= 0) Select_rec (minefield,minefield_action,height,lenght,x-1,y-1); if (x+1 < lenght && y-1 >= 0) Select_rec (minefield,minefield_action,height,lenght,x+1,y-1); if (x-1 >= 0 && y+1 < height) Select_rec (minefield,minefield_action,height,lenght,x-1,y+1); if (x+1 < lenght && y+1 < height) Select_rec (minefield,minefield_action,height,lenght,x+1,y+1); } } } void Display_clicked_field(eTypeAction** tab, int x, int y,tPos scrolling) { if ( tab[y][x] == none) CopySpriteNbitMasked( minefield_onclick, x*16+scrolling.x, y*16+scrolling.y, 16, 16, minefield_onclick_palette, 0x9a57, 8); } tPos Scroll_minefield (tPos cursor, tPos scrolling, int height, int lenght) { tPos scroll_return ; if (cursor.x>384/2-14 && cursor.x216/2-105 && cursor.y