0 Members and 1 Guest are viewing this topic.
case AID_ATMOSPHERE: if (iEtatSysteme[SYSTEM_ATMOSPHERE]==1 && SYSatmo.bFaitClignoterAlarme == TRUE) { oapiBlt (surf, srf[6], 0, 0, (SYSTEM_ATMOSPHERE-1)*37, 0, 37, 37); } else if (iEtatSysteme[SYSTEM_ATMOSPHERE]==1 && SYSatmo.bFaitClignoterAlarme == FALSE) { oapiBlt (surf, srf[6], 0, 0, (SYSTEM_ATMOSPHERE-1)*37, 37, 37, 37); } else if (iEtatSysteme[SYSTEM_ATMOSPHERE]==0 || SYSatmo.bResetAlarmOnPanelZero == TRUE) { oapiBlt (surf, srf[6], 0, 0, (SYSTEM_ATMOSPHERE-1)*37, 37, 37, 37); iEtatSysteme[SYSTEM_ATMOSPHERE]=0; } return true;
case AID_MFD1_LBUTTONS: RedrawPanel_MFDButton (surf, MFD_LEFT, 0); return true; case AID_MFD1_RBUTTONS: RedrawPanel_MFDButton (surf, MFD_LEFT, 1); return true; case AID_MFD2_LBUTTONS: RedrawPanel_MFDButton (surf, MFD_RIGHT, 0); return true;
case AID_MECHANICAL_OPEN_DOCK: case AID_MECHANICAL_SELECT_DOCK: case AID_MECHANICAL_SPEED_ROTATION_ARM: case AID_MECHANICAL_GEAR: case AID_ENERGIE_SELECT_POWER: case AID_XFEED: case AID_SELECTTANKOUTPUT: case AID_SELECTPROBE: case AID_LIFE_SUPPORT_SELECT_WATER_TANK: RedrawPanel_Bouton_Selecteur (surf); return true;
void Irridium::RedrawPanel_Bouton_Selecteur (SURFHANDLE surf){ if(!surf) return; bool bCentVingtCinqAntiHoraire = false; bool bQuatreVingtDixAntiHoraire = false; bool bQuaranteCinqAntiHoraire= false; bool bZeroDegre = false; bool bQuaranteCinqHoraire = false; bool bQuatreVingtDixHoraire = false; bool bCentVingtCinqHoraire = false; bool bCentQuatreVingtDegre = false; if(bCentVingtCinqAntiHoraire == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 0, 30, 30); else if(bQuatreVingtDixAntiHoraire == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 30, 30, 30); else if(bQuaranteCinqAntiHoraire == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 60, 30, 30); else if(bZeroDegre == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 90, 30, 30); else if(bQuaranteCinqHoraire == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 120, 30, 30); else if(bQuatreVingtDixHoraire == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 150, 30, 30); else if(bCentVingtCinqHoraire == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 180, 30, 30); else if(bCentQuatreVingtDegre == TRUE) oapiBlt (surf, srf[1], 0, 0, 330, 210, 30, 30); else oapiBlt (surf, srf[1], 0, 0, 330, 90, 30, 30); }
enum{ VALEUR_A= 12, VALEUR_B, // 13 VALEUR_C, // 14}
enum{ VALEUR_A, // 0 VALEUR_B, // 1 VALEUR_C, // 2}
enum{ GEORGE, //0 BERNARD, //1 ALBERT, //2}MesVariables[3];
MesVariables[GEORGE]=1;MesVariables[BERNARD]=1;MesVariables[ALBERT]=1;
// reinitialise toutes les variablesfor(I=GEORGE;I<ALBERT;I++) MesVariables[I]=0;
function(int quelvariable){ if(MesVariables[quelvariable]==TRUE) TraiteLaZone(quelvariable);}// traite la zone georgefunction(GEORGE);
picto a écrit:Pratique ça ...Ca peut remplacer tous les define ?
enum{ GEORGE, //0 BERNARD, //1 ALBERT, //2 PICTO, //3}MesVariables[3];MesVariables[PICTO]=1; // ERREUR ERREUR LE TABLEAUX FAIT 3 VALEURS ET PICTO C'EST LA QUATRIEME !!!
enum{ GEORGE, //0 BERNARD, //1 ALBERT, //2 PICTO, //3 FIN_VARIABLE //4}MesVariables[FIN_VARIABLE];MesVariables[PICTO]=1; // C'EST OK !!!
enum{ GEORGE, //0 BERNARD, //1 ALBERT, //2 PICTO, //3 DANSTEPH, //4 FIN_VARIABLE //5}MesVariables[FIN_VARIABLE];MesVariables[DANSTEPH]=1; // C'EST AUTOMATIQUEMENT OK !!!
// DANS LE HEADER EN DEHORS DE LA CLASSE// pour nos zone AID on rajoute un nombre on peut pas commencer a zero#define AID_DIODE =54 // on enum tout nos boutons, si on en rajoute on le fera avant le dernier FIN_DIODE// qui ne sert qu'a nous donner ou ca fini cette enum.enum Suit { DIODE_PANNE_EGT, // prend la valeur 0 DIODE_PANNE_AML, // prend la valeur 1 DIODE_REFUEL_ON, // prend la valeur 2 DIODE_DOCKING_OFF, // prend la valeur 3 FIN_DIODE // prend la valeur 4};
// DANS LE HEADER MAIS DANS LA CLASSE//nos variables etat des diode BOOL VariableEtatDiode[FIN_DIODE];//et les position x et y sur la bitmap pour le blt.int iBmpPosDiode_X[FIN_DIODE];int iBmbPosDiode_Y[FIN_DIODE];
//declaration des zones diodes dans panel: oapiRegisterPanelArea (AID_DIODE+DIODE_PANNE_EGT,...) //zone 54 oapiRegisterPanelArea (AID_DIODE+DIODE_PANNE_AML,...) //zone 55 oapiRegisterPanelArea (AID_DIODE+DIODE_REFUEL_ON,...) //zone 56 oapiRegisterPanelArea (AID_DIODE+DIODE_DOCKING_OFF,...) //zone 57
void Irridium::clbkPanelRedrawEvent (int id, int event, SURFHANDLE surf){ // toutes les zone diode appeleront la meme fonction: if(id>=AID_DIODE+DIODE_PANNE_EGT&&id<AID_DIODE+FIN_DIODE) { // on passe l'id pour retrouver les bonne variables RedrawPanel_Bouton_Selecteur(surf,id); return 1; // ne traite pas le "switch(id)" dans ces cas }}void Irridium::RedrawPanel_Bouton_Selecteur (SURFHANDLE surf,int id){ //ici id=54 si c'est la zone zéro, nos variables elle commencent a zero // donc on deduit l'offset des zone diode id=id-AID_DIODE; //voila c'est bon si ID a la bonne valeur if(VariableEtatDiode[id]==TRUE) { oapiBlt (surf, srf[1], 0, 0,BitmapPositionDiode_X[id],BitmapPositionDiode_Y[id], 30, 30); }}
VariableEtatDiode[DIODE_PANNE_EGT]=FALSE; VariableEtatDiode[DIODE_PANNE_AML]=TRUE; VariableEtatDiode[DIODE_REFUEL_ON]=FALSE; VariableEtatDiode[DIODE_DOCKING_OFF]=TRUE;
Diode[DIODE_PANNE_EGT]=FALSE; Diode[DIODE_PANNE_AML]=TRUE; Diode[DIODE_REFUEL_ON]=FALSE; Diode[DIODE_DOCKING_OFF]=TRUE;
if (iEtatSysteme[SYSTEM_ATMOSPHERE]==1
void InitialiseBouton(int MotCle,int SourceBitmapX,int SourceBitmapY,BOOL EtatInitial){ Diode[MotCle]=EtatInitial; iBmpPosDiode_X[MotCle]=SourceBitmapX; iBmpPosDiode_Y[MotCle]=SourceBitmapY;}