TNToon > étrange, ton code a l´air pourtant bon.
Si celui que je t´ai proposé plus haut marche, essaie progressivement de désactiver quelques trucs, épure, et surtout, vérifie la casse.
ElHuron > cette technique d´utilisation (avec des |, n´est en aucun cas des parametres variables
c´est une gestion de flags, tout simplement, fait par une astuce sympa, que je vais expliquer plus bas.
Pour de vrais arguments variables, regarde mon tuto §G.17 (stdarg)
Pour le truc de SDL, voici un exemple :
- define PARAM1 1
- define PARAM2 2
- define PARAM3 4
- define PARAM4 8
- define PARAM5 16
Comme tu vois, ces nombres sont uniquement des puissances de 2.
Si tu les mets en binaire, ça fait :
1
10
100
1000
10000
...
Si tu fais un | logique dessus, ça cumulera
par exemple :
10 | 1000 = 1010 -> tu as ainsi 2 flags d´activés.
Entete de fonction :
int fonction(int flags)
Pour relire ça dans ta fonction, tu fais simplement :
if (flags&PARAM1)
{
// code a faire si le param 1 est activé.
}