Main procedure ----------------
| 48 | // Main procedure |
| 49 | //---------------- |
| 50 | int main(int argc,char **argv) { |
| 51 | |
| 52 | // Create game graphics |
| 53 | CImg<unsigned char> graphics[21] = { |
| 54 | CImg<unsigned char>(data_tomato,100,100,1,3,false), |
| 55 | CImg<unsigned char>(data_heart,100,100,1,3,false), |
| 56 | CImg<unsigned char>(data_dynamite,100,100,1,3,false), |
| 57 | CImg<unsigned char>(data_brain,100,100,1,3,false), |
| 58 | CImg<unsigned char>(data_cdrom,100,100,1,3,false), |
| 59 | CImg<unsigned char>(data_enemy,113,150,1,3,false), |
| 60 | CImg<unsigned char>(data_enemy2,116,155,1,3,false), |
| 61 | CImg<unsigned char>(data_enemy3,104,134,1,3,false), |
| 62 | CImg<unsigned char>(data_enemy4,141,151,1,3,false), |
| 63 | CImg<unsigned char>(data_enemy5,140,152,1,3,false), |
| 64 | CImg<unsigned char>(data_enemy6,131,156,1,3,false), |
| 65 | CImg<unsigned char>(data_enemy7,114,125,1,3,false), |
| 66 | CImg<unsigned char>(data_enemy8,97,125,1,3,false), |
| 67 | CImg<unsigned char>(data_enemy9,143,134,1,3,false), |
| 68 | CImg<unsigned char>(data_enemy10,158,214,1,3,false), |
| 69 | CImg<unsigned char>(data_enemy11,131,168,1,3,false), |
| 70 | CImg<unsigned char>(data_enemy12,114,138,1,3,false), |
| 71 | CImg<unsigned char>(data_enemy13,144,144,1,3,false), |
| 72 | CImg<unsigned char>(data_enemy14,132,153,1,3,false), |
| 73 | CImg<unsigned char>(data_enemy15,152,151,1,3,false), |
| 74 | CImg<unsigned char>(data_enemy16,139,185,1,3,false), |
| 75 | }; |
| 76 | CImg<> masks[21]; |
| 77 | const unsigned char black[] = { 0,0,0 }, white[] = { 255,255,255 }; |
| 78 | |
| 79 | // Display weapon selection menu |
| 80 | CImg<unsigned char> back0(640,480,1,3), title(data_title,294,94,1,3,true), choose(data_choose,524,49,1,3,true); |
| 81 | back0.fill(0).draw_image(back0.width()/2 - title.width()/2,30,title). |
| 82 | draw_image(back0.width()/2 - choose.width()/2,150,choose); |
| 83 | CImgDisplay disp(back0,"OdyKill"); |
| 84 | int weapon=-1; |
| 85 | |
| 86 | while (!disp.is_closed() && !disp.button()) { |
| 87 | weapon = -1; |
| 88 | for (int k=0; k<5; k++) { |
| 89 | const int mx = disp.mouse_x(), my = disp.mouse_y(); |
| 90 | if (!((mx - 40)/110==k && my>250 && my<350)) back0.draw_image(40 + k*110,250,graphics[k]/2.0); |
| 91 | else back0.draw_image(40 + k*110,250,graphics[weapon=k]); |
| 92 | } |
| 93 | CImg<unsigned char> tmp = CImg<unsigned char>().draw_text(0,0, |
| 94 | weapon==0?" Tomato ": |
| 95 | weapon==1?" Heart ": |
| 96 | weapon==2?" Dynamite ": |
| 97 | weapon==3?" Brain ": |
| 98 | weapon==4?" CD-Rom ": |
| 99 | " ",white,black,1,32).resize(-100,-100,1,1), |
| 100 | tmp2 = tmp.get_blur(6).normalize(0,255).draw_image(tmp,0.5f); |
| 101 | cimg_forC(back0,k) back0.draw_image(250,390,0,k,tmp2); |
| 102 | |
| 103 | disp.resize(disp).display(back0).wait(); |
| 104 | if (disp.is_keyCTRLLEFT() && disp.is_keyF()) disp.toggle_fullscreen(); |
| 105 | if (disp.is_closed() || disp.is_keyQ() || disp.is_keyESC()) std::exit(0); |
| 106 | } |
| 107 | disp.hide_mouse(); |
nothing calls this directly
no test coverage detected