See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [C++] Fonctions à N arguments  (Read 31541 times)

0 Members and 1 Guest are viewing this topic.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #50 - 15 August 2007, 02:09:17
Ca rock ce panel ? ca doit etre super cool de definir un bouton en une ligne et de le voir apparaitre...
Tellement pénible les panels Orbiter... comprend pas pourquoi j'ai pas fait ca pour le DGIV :)

Dan


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #51 - 15 August 2007, 02:14:53
Par contre si tu veux un "effet mémoire" ou les fonctions suivante prennent les derniers parametres utilisé
(ca evite un gros platra) c'est possible:

Code: [Select]
InitialiseDiode(DIODE_CHECK_ELEC, 132, 26, XdiodeBmp, YdiodeBmp, false);    
InitialiseDiode(DIODE_CHECK_ATMO, 171, 26);
InitialiseDiode(DIODE_CHECK_HYDRO, 210, 26);
InitialiseDiode(DIODE_CHECK_TEMP, 249, 26);
InitialiseDiode(DIODE_CHECK_WATER, 288, 26);
InitialiseDiode(DIODE_CHECK_DOCK, 327, 26

// nouveau style, diode bleue:
InitialiseDiode(DIODE_CHECK_ENGINE, 366, 26, XdiodeBleu, YdiodeBleu, false);  
InitialiseDiode(DIODE_CHECK_PROBE, 405, 26);  
InitialiseDiode(DIODE_CHECK_ANTEN, 444, 26);  
InitialiseDiode(DIODE_CHECK_GYRO, 483, 26)

Mais bon la c'est pousser mémé dans les orties quand même...

Dan



Message modifié ( 15-08-2007 02:18 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #52 - 15 August 2007, 02:24:02
J'en suis pas encore là ...
Je fais tout sur notepad avant ... en visant le zéro erreur de compile au moment ou je vais fnaliser les copiés collés ...:badsmile:
Pour être sûr de ne pas foutre la zone dans les register qui existent déjà.
Un peu de tri à faire quand même entre ceux qui sont déjà implémentés et les displays.
Je fais super gaffe quand même, parce que ça a été bien pénible de récupérer tous les chiffres sur le background  ;)

Ensuite seulement, je rajouterais un bouton en une ligne ! :)
En faisant des bonds de joie évidamment ...
Car ce qui est génial dans ton système c'est qu'en plus de le dessiner au bon endroit, tout est dispo pour s'amuser
ensuite en runtime, ce qui n'est pas le cas avec la manière de faire par défaut d'Orbiter. Une fois fait le register, le
redraw event il faut encore définir un paquet de variables pour pouvoir faire bouger tout ça !
D'une pierre deux coups quoi !
Bravo !

J'ai hâte de m'y mettre ensuite, car c'est quand même le runtime qui est le plus rigolo à faire !

T'es sûr que ce serait tant que ça la zone de redéfinir le DGIV comme ça ?
De toutes façons, une fois le truc finalisé et carré, le code sera à dispo pour faire un panel sur le frelon stuveux !
Ou pour symphony ! Avec une dizaine de types bien organisés et nommés pour faire péter un panel complet en une
journée ;)



Message modifié ( 15-08-2007 02:24 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #53 - 15 August 2007, 02:43:49
Quote
picto a écrit:
De toutes façons, une fois le truc finalisé et carré, le code sera à dispo pour faire un panel sur le frelon stuveux !
Ou pour symphony ! Avec une dizaine de types bien organisés et nommés pour faire péter un panel complet en une
journée ;)

C'est gentil mais j'adore justement faire ce genre de code, le ferais donc moi-même  ;)

Pour le frelon ouais mais faudrais quand même des systemes derriere, les 647 diodes
qui clignotent si elles représentent rien :sick:

En fait les panel area c'est chiant à mourir mais c'est pas le plus long à faire. Sur
le DGIV ca à du me prendre 1% du temps total de dev et encore. Mais c'est tellement chiant
qu'un tel code c'est du bonheur pure. 'ffectivement...

Marrant que tu programme sur notepad d'abord... j'ai jamais vu ca :badsmile:
Dev C++ est justement la pour t'aider avec les codes couleurs, voir si ca compile etc etc...


Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #54 - 15 August 2007, 03:33:36
1% ..... chui pas rendu :sick:
Tiens j'te l'montre vite fait le notepad ....
C'est prêt .... yapluka copier coller au bon endroit  .....
J'ai perdu un pousssoooâââââârrrrrrrr :cry: :sad: ...
Bah deux lignes pour le redéclarer !!! C'est coooolllll !!!!!!
Il reste les oapiregister classiques pour les redraw never et les displays ....

[EDIT] Ce qui était là faisait 2255 erreurs à la compile :badsmile:



Message modifié ( 15-08-2007 05:13 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #55 - 15 August 2007, 03:43:53
Impec :applause: j'espere que ca marche ;)
Si c'est du premier coup t'est champion :applause:

Encore un truc important: la protection.
OrbiterSound ne plante jamais car toutes les fonctions controlent la validité des parametres en entrée...

Typique la function de définition devrais le faire aussi, c'est vraiment le bon endroit.

"motcle" c'est facile, ca doit pas etre en desous de l'enum de ce panel et pas plus haut
SBitmapY doit pas etre plus petit que zero, pas plus grand que le panel,etat peux
pas etre autre chose que zero ou 1... etc etc

Code: [Select]
void InitialiseSelecteur(int MotCle,int SBitmapX,int SBitmapY,int PosPanelX,int PosPanelY,BOOL Etat)
{
        if(MotClé<LEPLUSPETITMOCLE)
        {
              //ERREUR
              LogError("Putain erreur dans InitialiseSelecteur");
              return;  //fait rien
        }

etc etc

}

Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #56 - 15 August 2007, 04:22:04

:lol:

1>Le journal de génération a été enregistré à
l'emplacement "file://d:\10_ORBITER_DEV\orbitersdk\samples\MonAddon\Debug\BuildLog.htm"
1>Irridium - 2255 erreur(s), 0 avertissement(s)
========== Régénération globale : 0 a réussi, 1 a échoué, 0 a été ignoré ==========


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #57 - 15 August 2007, 04:33:01
Quote
picto a écrit:
1&gtIrridium - 2255 erreur(s), 0 avertissement(s)
========== Régénération globale : 0 a réussi, 1 a échoué, 0 a été ignoré ==========

C'est en bonne voie quoi :badsmile:

T'inquiete une ou deux lignes et ca redescendra très vite...

Mais pourquoi tu fait ca sur notepad ? :wonder: mystere...

Dan



Message modifié ( 15-08-2007 04:33 )


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #58 - 15 August 2007, 04:56:08
note qu'on est (je suis) très con....

Ca fait quand meme beaucoup de variables tableau et les structures c'est pas fait pour les chien... :rant: :sick:


Code: [Select]
typedef structure
{
     bool Etat;
     int iBmpPos_X;
     int iBmbPos_Y;
     int AidPosZone_X;
     int AidPosZone_Y;
}BOUTONDIODE;

BOUTONDIODE Bascule[FIN_BOUTON_BASCULE]:
BOUTONDIODE Diode[FIN_BOUTON_DIODE]:
BOUTONDIODE Selecteur[FIN_BOUTON_SELECTEUR]:

Bascule[COMPUTER_POWER].Etat=FALSE;
Diode[COMPUTER_POWER].Etat=FALSE;
Selecteur[TRAIN_ATTERO].Etat=FALSE;


//Dans functions
Selecteur[NUMBOUT].AidPosZone_X=PozZone;


BEAUCOUP plus simple, clair et logique et tout et tout.. en plus aucun risque de mélanger :pfff:

(Super désolé d'y penser que maintenant :sad:... chui dans "FsPX")

Dan



Message modifié ( 15-08-2007 04:58 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #59 - 15 August 2007, 05:04:48
Quote
Mais pourquoi tu fait ca sur notepad ?  mystere...

Ben pour faire moins d'erreurs :lol:


Plus que cinq erreurs ... à chaque fois la même sur les fonctions init mais je ne comprend pas le problème là ...

Code: [Select]
void Irridium::InitialiseDiode(int MotCle,int SourceBitmapX,int SourceBitmapY,int PositionPanelX,int
PositionPanelY,BOOL EtatInitial)
{
      [b]Diode[MotCle]=EtatInitial;[/b]

1>MesFonctions.cpp
1>d:\10_orbiter_dev\orbitersdk\samples\monaddon\mesfonctions.cpp(51) : error C2440: '=' : impossible de convertir
de 'BOOL' en ''
1>        La conversion en type énumération requiert un cast explicite (static_cast, cast de style C ou cast de style
fonction)

C'est ce qui est en rouge qu'il n'aime pas ...
Ca le met en boule côôaaa



Message modifié ( 15-08-2007 05:09 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #60 - 15 August 2007, 05:29:03
C'est bien du BOOL Diode[] ?

T'a pas énumerer un DIODE des fois ? :doubt: Il a l'air de penser que Diode est un "enum" ?


Considere vraiment de faire lesc changements de mon post plus haut sur les structures... la c'est
très moche justement avec pleins de variables tableaux... pas glop et justement pas robuste...

Désolé encore :sad:

Le changement devrais pas etre trop gros.... juste quelques nom et de la simplification surtout...
Et beaucoup plus élégant ! (important ca)

(rassure toi je dois recommencer FsPX a zero aussi ;)

Dan



Message modifié ( 15-08-2007 05:32 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #61 - 15 August 2007, 05:58:05
Je comprend pas la question sur t'as pas énumérer ...
Ben si justement  :doubt:
Oki pour les typedef struct, mais j'aimerais comprendre ce que me veut le compilateur.
J'écume Google mais c'est difficile là dessus :sick:
Voilà les seules infos que me donne le compilateur.
Tout le code associé sur ce cas particulier ( identique aux quatre autres erreurs est sur ce post. Ca peut aider à
comprendre le problème sans doute ....


mesfonctions.cpp(78 ): Selecteur[MotCle]=EtatInitial;

Code: [Select]
void Irridium::InitialiseSelecteur(int MotCle,int SourceBitmapX,int SourceBitmapY,int PositionPanelX,int
PositionPanelY,[b]bool EtatInitial[/b])
{
      [b]Selecteur[/b][MotCle]=[b]EtatInitial[/b];




irridium.h(176): Selecteur[FIN_BOUTON_SELECTEUR];

Code: [Select]
enum
{
MECHANICAL_OPEN_DOCK,
MECHANICAL_SELECT_DOCK,
MECHANICAL_SPEED_ROTATION_ARM,
MECHANICAL_GEAR,
ELECTRICAL_SELECT_POWER,
XFEED  ,
SELECTTANKOUTPUT,
SELECTPROBE,
LIFE_SUPPORT_SELECT_WATER_TANK,
FIN_BOUTON_SELECTEUR,
}
[b]Selecteur[/b][FIN_BOUTON_SELECTEUR];

et SetClassCap.cpp

Code: [Select]
InitialiseSelecteur(MECHANICAL_OPEN_DOCK ,1089, 431, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(MECHANICAL_SELECT_DOCK ,1144, 431, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(MECHANICAL_SPEED_ROTATION_ARM ,979, 431, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(MECHANICAL_GEAR ,759, 431, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(ELECTRICAL_SELECT_POWER ,456, 279, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(XFEED ,164, 169, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(SELECTTANKOUTPUT ,239, 169, X0DegreBmp, Y0DegreBmp, true);
InitialiseSelecteur(SELECTPROBE ,368, 169, X0DegreBmp, Y0DegreBmp, true);

Et la même erreur associée .... je l'ai sur les cinq fonctions d'initialisation quand je veux rentrer les valeurs
true ou false de setclasscap visiblement .... Le seul truc approchant que j'ai lu sur google pour le moment est que des
define serait sûr de fonctionner mais que c'est moins élégant :doubt:



1>MesFonctions.cpp
1>d:\10_orbiter_dev\orbitersdk\samples\monaddon\mesfonctions.cpp(51) : error C2440: '=' : impossible de convertir de 'bool' en ''
1>        La conversion en type énumération requiert un cast explicite (static_cast, cast de style C ou cast de style
fonction)



Message modifié ( 15-08-2007 06:01 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #62 - 15 August 2007, 06:00:55
L'a pas de type ton selecteur:

Selecteur[FIN_BOUTON_SELECTEUR];

Mieux comme ca:

BOOL Selecteur[FIN_BOUTON_SELECTEUR];

ou

int Selecteur[FIN_BOUTON_SELECTEUR];

Dan



Message modifié ( 15-08-2007 06:01 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #63 - 15 August 2007, 06:04:32
Désolé :sad:
C'est sans doute ce qu'il voulait me dire par ce : 'bool' en ' '
L'aurait mieux fait de m'écrire de 'bool' en 'RIEN'
Là j'aurais compris ....

Bon, je regarde si ça fonctionne ... puis Typedef struct ;)
Ca marche pas .... :sad:
Pas de CTD mais rien ...
que le background.
Même en redraw always ou avec des trigger.
Dès que je tripote  les Aid ça crashe ... ça veut dire que les zones existent bien grâce
àux fonctions d'initialisation.
En débug, j'ai vérifié que les AID correspondent bien  .... la galère encore quoi :sad:



Message modifié ( 15-08-2007 07:47 )

Pic

Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #64 - 15 August 2007, 08:21:05
Pfffff !!!!

Je crois que j'ai trouvé .... dans le redraw event il y a ce test ....

Code: [Select]
if(EtatBascule[id]==TRUE)
{
oapiBlt (surf, srf[1], 0, 0,iBmpPosBascule_X[id],iBmpPosBascule_Y[id], 30, 45);
}

Le tableau existe bien ....

Code: [Select]
bool EtatBascule[FIN_BOUTON_BASCULE];
Mais il est désespérément VIDE !!!



Message modifié ( 15-08-2007 10:50 )

Pic

Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #65 - 15 August 2007, 09:12:40
Si quelqu'un voit l'erreur de logique là dedans, je suis preneur ...
Jean Peuplus .... Je jette l'éponge :sad: Je vois plus rien :sad:

J'ai mis les inits dans le FIRST STEP INIT de post step pour être sûr ... là j'en montre un seul, ils sont tous pareils...
XbasculeBmp, YbasculeBmp sont des constantes dont je suis sûr ... elles fonctionnaient en dur dans le code avant ...

InitialiseBascule(ELECTRICAL_GEN_ONE      ,107, 279, XbasculeBmp, YbasculeBmp, true);
Etc ...
Etc...


Ca appelle la fonction d'init

void Irridium::InitialiseBascule(int MotCle,int SourceBitmapX,int SourceBitmapY,int PositionPanelX,int
PositionPanelY,BOOL EtatInitial)
{
      Bascule[MotCle]=EtatInitial;
      iBmpPosBascule_X[MotCle]=SourceBitmapX;
      iBmpPosBascule_Y[MotCle]=SourceBitmapY;
      AidPosZoneBascule_X[MotCle]=PositionPanelX;
      AidPosZoneBascule_Y[MotCle]=PositionPanelY;
}


dans le InitPanel je construis bien la zone en REDRAW ALWAYS pour être sûr qu'il se passe quelque chose

for(int I=AID_BOUTON_BASCULE;I<AID_BOUTON_BASCULE+FIN_BOUTON_BASCULE-1;I++)
{
     int A=I-AID_BOUTON_BASCULE;
       oapiRegisterPanelArea (I,_R(AidPosZoneBascule_X[A],AidPosZoneBascule_Y[A],AidPosZoneBascule_X[A]
+30,AidPosZoneBascule_Y[A]+45), PANEL_REDRAW_ALWAYS, PANEL_MOUSE_LBDOWN);
}



dans le callback redraw event j'appelle la fonction de blt

   if(id >=AID_BOUTON_BASCULE + ELECTRICAL_GEN_ONE && id <AID_BOUTON_BASCULE +
FIN_BOUTON_BASCULE-1)
   {
      RedrawPanel_Bouton_Bascule(surf,id);
      return 1;  
   }


Le test se fait sur la présence du AID ce coup ci ...
et en regardant bien le code, le Id de cet endroit correspond bien au A du register panel ....


void Irridium::RedrawPanel_Bouton_Bascule (SURFHANDLE surf,int id)
{
   id = id-AID_BOUTON_BASCULE;
   if(Bascule[id]==TRUE)
   {
      oapiBlt (surf, srf[1], 0, 0,iBmpPosBascule_X[id],iBmpPosBascule_Y[id], 30, 45);
   }
}



J'ai quand même mis un trigger dans post step

      for(int I=AID_BOUTON_BASCULE;I<AID_BOUTON_BASCULE+FIN_BOUTON_BASCULE-1;I++)
         oapiTriggerPanelRedrawArea (1,  I);


Et rien .... pas de crash .... ça crash si je tripote le I du Trigger juste pour
vérifier que les zones existent bien dans le register ... Rien ... le vide intersidéral !
Juste le background :doubt:
En écrivant ceci j'ai cru déceler une erreur de logique dans le redraw event ... id correpondant au A et je me suis dit qu'il valait mieux qu'il corresponde au I du register .... J'ai donc essayé ça aussi ...
id = id+AID_BOUTON_BASCULE; dans la fonction de Bilt ... mais toujours rien ...
Et encore une .... inversion des positions panel  et des sources bitmap dans la fonction init ...
J'ai inversé .... ça n'a rien changé ...  :sad: :wall:
Le cafouillage viens peut être des id du callback redraw event et de la fonction de Bilt mais je ne vois pas  ....



Message modifié ( 15-08-2007 11:04 )

Pic

Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #66 - 15 August 2007, 10:49:37
J'avais oublié de réécrire les cases :doubt:

Donc bravo Dan, tes fonctions sont nickels :beer:
Encore un peu d'ajustage et ce sera bon ... 5 bilts foireux sur 250 ça va quand même .
C'est vachement bien ton système car la fonction de dessin est très souple.
Couplée à des fonctions malignes pour le mouse event, je suis sûr que ça peut pas
mal prémâcher le boulot d'écriture final d'un système complet !

Donc récapitulatif pour créer un nouveau bouton sans se fatiguer :badsmile:
Une ligne dans post step .... une ligne en enum ou en Typedef ... on verra ;)
PLUS une ligne case: dans redraw event .... :sick:  

C'est assez chouette à faire quand même. Son type plus son nom, ça a quand même de la gueule !!! :wor:

case AID_BOUTON_SELECTEUR + MECHANICAL_OPEN_DOCK:
case AID_BOUTON_SELECTEUR + SELECTPROBE:
case AID_BOUTON_POUSSOIR + CREW_MANAGEMENT_OPEN_AIRLOCK:
case AID_BOUTON_BASCULE + PROBES_DOOR3 :
case AID_DIODE_DOUBLE + DIODE_PROBES_DOOR1_A :
case AID_DIODE_DOUBLE + DIODE_PROBES_DOOR1_AA:
case AID_DIODE_SIMPLE + DIODE_CHECK_ELEC:



Message modifié ( 15-08-2007 11:29 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #67 - 15 August 2007, 12:29:53
Quote
picto a écrit:
J'avais oublié de réécrire les cases :doubt:

Ben non, y a plus besoin de case :sick: c'est t'automatique aussi...
Je reprend:

AU DEBUT DE clbkPanelRedrawEvent tu va tester avec un if() si "id" rentre dans le
cas de tes AID speciaux. Si oui il execute la fonction pour traiter ces redraw
et SORT de la fonction clbkPanelRedrawEvent  donc ne fais jamais le switch... Oki ?

Code: [Select]
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_Diode(surf,id);
return 1;  // ne traite pas le switch(id) dans ces cas
}


               // jamais executé si ID est un des AID_DIODE
               switch(id)
               {
                    CASE GLOUGLOU:
                           break;
                }
}

donc en fait:

1-Declarer un nouvel "enum"
2-Appel de la fonction "initButton()" dans clbkSetClassCap
3-.. heuu ben non rien, c'est fini tout le reste est automatique.


T'au-to-ma-ti-qu-e !  je disais :hot:

Dan
"coin coin"



Message modifié ( 15-08-2007 12:31 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #68 - 15 August 2007, 12:35:54
Ben ouais ... mais si j'écris pas les case : y'a rien à l'écran :sick:

Pour avoir quelque chose qui aparaisse, j'ai dû faire ça ...

Code: [Select]
case AID_BOUTON_SELECTEUR + MECHANICAL_OPEN_DOCK:
case AID_BOUTON_SELECTEUR + MECHANICAL_SELECT_DOCK:
case AID_BOUTON_SELECTEUR + MECHANICAL_SPEED_ROTATION_ARM:
case AID_BOUTON_SELECTEUR + MECHANICAL_GEAR:
case AID_BOUTON_SELECTEUR + ELECTRICAL_SELECT_POWER:
case AID_BOUTON_SELECTEUR + XFEED :
case AID_BOUTON_SELECTEUR + SELECTTANKOUTPUT:
case AID_BOUTON_SELECTEUR + SELECTPROBE:
case AID_BOUTON_SELECTEUR + LIFE_SUPPORT_SELECT_WATER_TANK:
if(id >=AID_BOUTON_SELECTEUR + MECHANICAL_OPEN_DOCK && id <AID_BOUTON_SELECTEUR +
FIN_BOUTON_SELECTEUR-1)
{
RedrawPanel_Bouton_Selecteur(surf,id);
return 1;  
}



Message modifié ( 15-08-2007 12:37 )

Pic

Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #69 - 15 August 2007, 12:40:51

OOOUUUUPPPPSSSS, je viens de lire un truc qui a sans doute son importance ....
AU DEBUT de void Irridium::clbkPanelRedrawEvent (int id, int event, SURFHANDLE surf)
Moi, j'ai mis ça au milieu des switch .... ptête ça l'essplicationne de mes misères ....


Pic

Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #70 - 15 August 2007, 12:51:00
Ah ben oui ..... :sick:

Ca marche beaucoup mieux devant le switch id,
Par contre, je suis un peu inquiet sur un cas particulier ...
Car avec cette fonction et la façon de déclarer une surf, il n'y a plus de possibilité d'erreurs sur le nombre de pixels ...
Je veux dire déclarer une zone plus petite que la surf sur le panel ... Hors, j'en ai une qui ne veut absolument pas apparaitre ... et elle est dans une liste qui fonctionne  ....

:wall: Je viens de comprendre .... cinq listes ... cinq types d'objet ... cinq erreurs .... :sick:
C'est la dernière de chaque tas qui n'apparait pas ... C'est le coup du  -1 qui traine quelque part ... chaiplutroôôou ... que tu disais méfiance paske dans le feu de la cogite t'étais plus très sûr du bien fondé de ce choix ....

J'ai déplacé un enum ... et Magie ... un bouton apparait .... un autre disparait ....



Message modifié ( 15-08-2007 13:08 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #71 - 15 August 2007, 13:09:57
Quote
picto a écrit:
Je veux dire déclarer une zone plus petite que la surf sur le panel ... Hors, j'en ai une qui ne veut absolument pas
apparaitre ... et elle est dans une liste qui fonctionne  ....

C'est la derniere ou la premiere de ce type de bouton je parie ?

Dan


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #72 - 15 August 2007, 13:13:11
ouais faut pas de -1 la... je pense que t'a corrigé ?


if(id >=AID_BOUTON_SELECTEUR && id <AID_BOUTON_SELECTEUR + FIN_BOUTON_SELECTEUR-1)


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #73 - 15 August 2007, 13:23:10
Oublie pas d'enlever le redraw always des test ;)

Une fois tout ok tu me dis ? je te fais le topo pour passer les tableaux en structure,
franchement tu regrettera pas c'est beaucoup plus clair et correct. Autant
le faire maintenant.

Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #74 - 15 August 2007, 13:40:03
Pour le redraw always oui c'est fait ... ;)
Le coup du dernier de la liste, c'est plus vicieux que ça .... je trouve pas :sick:
J'en suis là et ça change rien :doubt: Et c'est pas une déconnade ... Y'a une vicelardise dans les enum ...
mais laquelle ... si je trouve pas, m'en vais te rajouter un avant dernier fictif, ça va pas être long :badsmile:


if(id >=AID_DIODE_SIMPLE + DIODE_CHECK_ELEC && id <=AID_DIODE_SIMPLE
+FIN_DIODE_SIMPLE+1)


Pic