codice:
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
MSG msg;
bool done = false;
mouse.init();
aumento = 8.25f/90.0f;
if (MessageBox(NULL,"Eseguire in modalità fullscreen?", "FullScreen?", MB_YESNO|MB_ICONQUESTION)==IDNO){ // chiede all'utente se vuole che il programma venga eseguito in modalità schermo intero
fullscreen=false;
}
if (!CreateGLWindow("Fruit killer :D",640,480,16,fullscreen)){ // crea la finestra
return 0;
}
while(!done){
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
if (msg.message==WM_QUIT){
done = true;
}else{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}else{
if(!caricato){ // carico tutti i modelli 3D
ShowCursor(FALSE);
frutta = new Frutti(hDC, &barra, aumento, loading);
ortaggi = new Ortaggi(hDC, &barra, aumento, loading);
vari = new Vari(hDC, &barra, aumento, loading);
scia = new Scia(spade, &mouse, 200);
esplosione = new Scia(spade, &mouse, 2000);
banane = new Scia(spade, &mouse, 150);
esplosione->setSel(0);
gest = new Gestore(&hDC, &hInstance, (Frutti*)frutta, (Ortaggi*)ortaggi, (Vari*)vari, &mouse, &spade, scia, esplosione, banane, &writers, &comic, &menu_tex, &splash, &bonus_tex);
caricato=true;
}
if (gest->getCur()){
ShowCursor(TRUE);
}
if (gest->getLuce()){
glDisable(GL_LIGHT0);
}
else{
glEnable(GL_LIGHT0);
}
if (gest->getNebbia()){
glEnable(GL_FOG);
}
else{
glDisable(GL_FOG);
}
if ((active && !DrawGLScene())){
done=TRUE;
}else{
SwapBuffers(hDC);
}
if (keys[VK_ESCAPE]){
keys[VK_ESCAPE] = FALSE;
gest->pausa();
}
done = gest->getFine();
}
}
delete frutta;
delete ortaggi;
delete vari;
delete gest;
delete scia;
glDisable(GL_LIGHTING);
KillGLWindow();
return (msg.wParam);
}