Eh bien voila j'écris ce topic pour tous ceux qui veulent créer des boites de dialogues (comme celles du TIOS) sans avoir à taper 50 fois le même code...
#define USE_TI92PLUS // Ne pas compiler pour
#define USE_V200 // Ti-89 (pour le moment)
#define SAVE_SCREEN
#define OPTIMIZE_ROM_CALLS
#define voir(expr) printf(#expr " = %d\n", expr)
#define voir_str(expr) printf(#expr " = %s\n", expr)
#include <tigcclib.h>
char *titre,*request[5],*text[5];
void dialogue(char *titre,char *text[5],char *request[5], int bt_1, int bt_2) {
int nb_text=0,nb_req=0,i=0,y=15,taille_max=0;
for(i=0;i<5;i++) {
if(strlen(text[i])) ++nb_text; //Nombre de textes
taille_max=max(taille_max,strlen(text[i]));
if(strlen(request[i])) ++nb_req; //Nombre de requests
taille_max=max(taille_max,strlen(request[i]))
}
taille_max=max((6*taille_max),(4*strlen(titre)));
int taillex=taille_max+10,tailley=10*nb_text+12*nb_req+29;
//11 car 8 pour la taille du texte et 3 pour le decalage vertical +29 pour les boutons
char buffer[105]; //100 pour 20*5 requests + 5 '\0'
char buffer2[21];
char buffer3[21];
char buffer4[21];
char buffer5[21];
char *buf=buffer;
char *buf2=buffer2;
char *buf3=buffer3;
char *buf4=buffer4;
char *buf5=buffer5;
int decalage_buffer=0;
if(nb_req)
taillex=max(taillex,200);
if(bt_1||bt_2)
taillex=max(taillex,35);
if(bt_1&&bt_2)
taillex=max(taillex,70); //Pour la place occupee par les boutons s'il y en a
HANDLE h = DialogNewSimple (taillex,tailley);
DialogAddTitle (h,titre,bt_1,bt_2);
for(i=0;i<nb_text;i++,y+=10)
DialogAddText (h,3,y,text[i]);
for(i=0;i<nb_req;i++,y+=12,decalage_buffer+=20)
DialogAddRequest (h,3,y,request[i],decalage_buffer,20,30-strlen(request[i]));
DialogDo(h,CENTER,CENTER,buffer,NULL);
if(nb_req==0)
goto fin;
while(*buf2++=*buf++); //Copie dans buffer2
if(nb_req<2)
goto fin;
buf+=(20-(strlen(buffer2)+1)); //Va au 3eme buffer
while(*buf3++=*buf++); //Copie dans buffer3
if(nb_req<3)
goto fin;
buf+=(20-(strlen(buffer3)+1)); //Va au 4eme buffer
while(*buf4++=*buf++); //Copie dans buffer4
if(nb_req<4)
goto fin;
buf+=(20-(strlen(buffer4)+1)); //Va au 5eme buffer
while(*buf5++=*buf++); //Copie dans buffer5
if(nb_req<5)
goto fin;
fin:
HeapFree (h);
}
void _main(void)
{
int bt_1,bt_2;
titre="Creation de votre personnage - Page 1";
text[0]="Vous allez maintenant créer";
text[1]="votre personnage et choisir";
text[2]="ses aptitudes et caractéristiques.";
request[0]="Entrez votre nom:";
bt_1=BT_NONE;
bt_2=BT_OK;
dialogue(titre, text, request, bt_1, bt_2);
}
Comment l'utiliser: Il n'y a qu' à assigner des chaînes de caractères aux variables *text[5], *request[5] et *titre.
Les popups ne sont pas encore gérées, désolé(ça viendra..., faut juste que je relise un peu la documentation).

...
je comprends rien avec leur buffers c'est quand même vachement plus facile avec le TI-Basic !") et qui veulent faire un peu comme en TI-Basic (moi-même je me suis dit ce que je viens de citer