
D'ailleurs, faut quel niveau en C pour contribuer ? parce que bon, ça m'étonnerait que certains veuillent de mon éditeur asm à faire tourner sur émulateur de machine à base de 68k

Godzil (./329) :
Non tu manque cruellement d'un bon editeur de fichier C qui te propose de la completion automatique, avec un tel editeur, impossible (ou presque) de faire ce genre d'erreurs
Folco (./330) :
D'ailleurs, faut quel niveau en C pour contribuer ?
Kevin Kofler (./334) :Ah bon ? Heureusement que tu es là pour rétablir la vérité
Soit dit au passage que si tu veux vraiment contribuer, tu devrais contribuer à TIGCC, pas GCC4TI.GCC4TI se contente essentiellement d'utiliser le code du projet TIGCC et de rajouter quelques patches de mauvaise qualité qui dégradent le tout.
if (Key == KEY_MODE) { if ((MenuResult = DrawMenu(&ModeMenu,DScreen)) == 1) { if ((MenuResult2 = DrawMenu(&ModeMenuLP,DScreen)) == 1) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane0 = A_NORMAL; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane0 = A_NORMAL; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane0 = A_NORMAL; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane0 = A_NORMAL; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane0 = A_NORMAL; } if (MenuResult2 == 2) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane0 = A_REVERSE; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane0 = A_REVERSE; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane0 = A_REVERSE; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane0 = A_REVERSE; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane0 = A_REVERSE; } if (MenuResult2 == 3) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane0 = A_XOR; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane0 = A_XOR; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane0 = A_XOR; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane0 = A_XOR; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane0 = A_XOR; } } if (MenuResult == 2) { if ((MenuResult2 = DrawMenu(&ModeMenuLP,DScreen)) == 1) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane1 = A_NORMAL; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane1 = A_NORMAL; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane1 = A_NORMAL; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane1 = A_NORMAL; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane1 = A_NORMAL; } if (MenuResult2 == 2) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane1 = A_REVERSE; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane1 = A_REVERSE; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane1 = A_REVERSE; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane1 = A_REVERSE; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane1 = A_REVERSE; } if (MenuResult2 == 3) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane1 = A_XOR; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane1 = A_XOR; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane1 = A_XOR; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane1 = A_XOR; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane1 = A_XOR; } } }
unsigned char flag; /* ou autre type */ switch (DrawMenu(&ModeMenuLP,DScreen)) { case 1: flag = A_NORMAL; break; case 2: flag = A_REVERSE; break; case 3: flag = A_XOR; break; } switch (MainData.Tool) { case TOOL_LINE: MainData.LineModePlane0 = flag; case TOOL_CIRCLE: etc. }
MenuResult = DrawMenu(&ModeMenu,DScreen); if (MenuResult == 1)
Font_Type_t Font_Type; if (Key == KEY_MODE) { MenuResult = DrawMenu(&ModeMenu,DScreen); MenuResult2 = DrawMenu(&ModeMenuLP,DScreen); if (MenuResult2 == 1) { Font_Type = A_NORMAL; } if (MenuResult2 == 2) { Font_Type = A_REVERSE; } if (MenuResult2 == 3) { Font_Type = = A_XOR; } if (MenuResult == 1) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane0 = Font_Type; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane0 = Font_Type; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane0 = Font_Type; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane0 = Font_Type; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane0 = Font_Type; } if (MenuResult == 2) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane1 = Font_Type; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane1 = Font_Type; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane1 = Font_Type; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane1 = Font_Type; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane1 = Font_Type; } }
typedef enum Plane_Index_e { PLANE_0, PLANE_1, PLANE_COUNT /* Comme l'enum commence à 0 , PLANE_0 = 0, PLANE_1 = 1 et PLANE_COUNT = 2, ça tombe bien non ? */ } Plane_Index_t; typedef struct Type_De_Main_Data_s { Font_Type_t LineModePlane[PLANE_COUNT]; Font_Type_t CircleModePlane[PLANE_COUNT]; Font_Type_t EllipseModePlane[PLANE_COUNT]; Font_Type_t RectangleModePlane[PLANE_COUNT]; Font_Type_t FrameModePlane[PLANE_COUNT]; } Type_De_Main_Data_t;
Type_De_Main_Data_t MainData; Font_Type_t Font_Type; Plane_Index_t Plane_Index; Boolean_t Update_Font_Type; if (Key == KEY_MODE) { MenuResult = DrawMenu(&ModeMenu,DScreen); MenuResult2 = DrawMenu(&ModeMenuLP,DScreen); if (MenuResult2 == 1) { Font_Type = A_NORMAL; } else if (MenuResult2 == 2) { Font_Type = A_REVERSE; } else if (MenuResult2 == 3) { Font_Type = = A_XOR; } else { Font_Type = -1; /* à remplacer par un code d'erreur nommé */ } if (MenuResult == 1) { Plane_Index = PLANE_0; Update_Font_Type = TRUE; } else if (MenuResult == 2) { Plane_Index = PLANE_1; Update_Font_Type = TRUE; } else { Update_Font_Type = FALSE; } if ((Font_Type != -1) && (Update_Font_Typ == TRUE)) { if (MainData.Tool == TOOL_LINE) MainData.LineModePlane [Plane_Index] = Font_Type; if (MainData.Tool == TOOL_CIRCLE) MainData.CircleModePlane [Plane_Index] = Font_Type; if (MainData.Tool == TOOL_ELLIPSE) MainData.EllipseModePlane [Plane_Index] = Font_Type; if (MainData.Tool == TOOL_RECTANGLE) MainData.RectangleModePlane [Plane_Index] = Font_Type; if (MainData.Tool == TOOL_FRAME) MainData.FrameModePlane [Plane_Index] = Font_Type; } }
Kevin Kofler (./356) :
Les switches donnent aussi un code meilleur (plus petit et plus rapide) qu'une suite de if si tes valeurs sont suffisamment denses (c'est-à-dire plus proches de 1, 2, 3 que de -32768, 0, 32767).
Ximoon (./355) :
Edit : et perso j'aurais aussi fait un tableau à deux dimensions comme Kevin le suggère
Ximoon (./355) :
Enfin pour de vrai, ce n'est pas possible de t'arranger pour que tes DrawMenu retournent directement La bonne valeur de Plane_Index et de Font_Type ?![]()