#pragma once #include "MadUtility.h" #include "CCamera.h" #include <io.h> #include <stdio.h> #define MENU_MAIN 1000 #define MENU_PAUSE 2500 #define MENU_GAMEOVER 1500 #define MENU_GOAL 1100 #define MENU_MAP 2000 #define MENU_TIMEOUT 2800 #define MENU_DISPLAY 3000 #define MENU_CAMERA 4000 #define MENU_BALL 5000 #define MENU_CONTROL 6000 #define MENU_TIMER 7000 #define MENU_GRAPHICS 8000 #define MENU_ENV 8500 #define MENU_DEAD 9000 #define ITEM_MAIN_START 1 #define ITEM_MAIN_MAP 2 #define ITEM_MAIN_DISPLAY 3 #define ITEM_MAIN_CAMERA 4 #define ITEM_MAIN_GRAPHICS 5 #define ITEM_MAIN_BALL 6 #define ITEM_MAIN_CONTROL 7 #define ITEM_MAIN_TIMER 8 #define ITEM_GAMEOVER 1 #define ITEM_GOAL 1 #define ITEM_DEAD 1 #define ITEM_EXIT 9 #define ITEM_GRAPHICS_TEXTURED 1 #define ITEM_GRAPHICS_NORMAL 2 #define ITEM_GRAPHICS_WIREFRAME 3 #define ITEM_GRAPHICS_SOLID 4 #define ITEM_GRAPHICS_ROBOT 5 #define ITEM_GRAPHICS_NOROBOT 6 #define ITEM_GRAPHICS_ENV 7 #define ITEM_GRAPHICS_BACK 8 #define ITEM_ENV_DEFAULT 1 #define ITEM_ENV_METAL 2 #define ITEM_ENV_GLASS 3 #define ITEM_ENV_PLASTIC 4 #define ITEM_ENV_SHINING 5 #define ITEM_ENV_BACK 6 #define ITEM_DISPLAY_W_640x480 1 #define ITEM_DISPLAY_W_800x600 2 #define ITEM_DISPLAY_W_1024x768 3 #define ITEM_DISPLAY_FULLSCREEN 4 #define ITEM_DISPLAY_BACK 5 #define ITEM_CAMERA_FOLLOW 1 #define ITEM_CAMERA_NFOLLOW 2 #define ITEM_CAMERA_BACK 3 #define ITEM_CONTROL_ROLL 1 #define ITEM_CONTROL_LUKE 2 #define ITEM_CONTROL_SNS20 3 #define ITEM_CONTROL_SNS40 4 #define ITEM_CONTROL_SNS60 5 #define ITEM_CONTROL_SNS80 6 #define ITEM_CONTROL_BACK 7 #define ITEM_BALL_METAL 1 #define ITEM_BALL_GLASS 2 #define ITEM_BALL_PLASTIC 3 #define ITEM_BALL_SHINING 4 #define ITEM_BALL_BACK 5 #define ITEM_TIMER_100 1 #define ITEM_TIMER_300 2 #define ITEM_TIMER_600 3 #define ITEM_TIMER_UNLIMITED 4 #define ITEM_TIMER_BACK 5 #define ITEM_MAP 0 #define ITEM_MAP_BACK 9 using namespace vcg; class CConsole { public: /**vettore che contiene il nome delle mappe che la console trova nella directory del gioco*/ string map[100]; /**vettore che contiene il nome del file che contiene le texture delle sfere*/ string sphere[100]; /**numero dei file texture sfere che sono state trovate*/ int numsphere; /**numero delle mappe che sono state trovate*/ int nummap; /**dimensione X della console*/ int SizeX; /**dimensione Y della console*/ int SizeY; /**numero degli item da visualizzare nel menu corrente*/ int numitem; /**nome del file della mappa corrente*/ char filemap[120]; /**nome del file della mappa corrente*/ char filesphere[120]; /**contiene la stringa dell'item selezionato*/ char selitem[120]; public: CConsole(void); ~CConsole(void); //===========================DrawBox========================= //Disegna nella console un box partendo dalle coordinate (x,y) // di dimensione (sizex)X(sizey) di colore nero se sel=true // altrimenti bianco trasparante //============================================================ void DrawBox(int x, int y , int sizex, int sizey, bool sel); //====================title============================== //scrive nel menu come titolo la stringa puntata da t //======================================================= void title(char *t); //====================menu=============================== //Disegna un menu nella console. //type: tipo di menu valori possibili:(MENU_MAIN,MENU_PAUSE, //MENU_GAMEOVER,MENU_GOAL,MENU_MAP,MENU_TIMEOUT,MENU_DISPLAY, //MENU_CAMERA,MENU_BALL,MENU_CONTROL,MENU_TIMER,MENU_GRAPHICS, //MENU_ENV,MENU_DEAD) <br> //selpos: posizione nel menu dell'item selezionato //======================================================= void menu(int type,int selpos); //====================item=============================== //Disegna un item ne menu. <br> // pos: posizione dell'item nel menu <br> // str: la stringa che viene visualizzata <br> // sel: se true item selezionato altrimenti false <br> //======================================================= void item(int pos,char *str,bool sel); //=================setSize=============================== //permette di definire le dimensione della console <br> // X: coordinata X <br> // Y: coordinata Y <br> //======================================================= void setSize(int X, int Y); //=================printf================================ //stampa nella console alle coordinta x,y la stringa // contenuta in format //======================================================= void printf(int x, int y, char* format); //=================glPrintf============================== //stampa una stringa centrata in (x,y). <br> //x,y: coordinate di stampa <br> //align: valore di allineamento <br> //scale: valore di scala <br> //sel: booleano che indica che la strina è selezionata // oppure no <br> //format...: stringa da stampare formattata //======================================================= void glPrintf(GLuint x, GLuint y, int align, GLfloat scale,bool sel,char* format, ...); //==================ListMap============================== //crea la lista delle mappe presenti nella directory. <br> //dirPath: directory di ricerca //======================================================== void ListMap(string dirPath); //==================ListSphere===================================== //crea la lista delle texture sphere presenti nella directory. <br> //dirPath: directory di ricerca //================================================================= void ListSphere(string dirPath); };