Il me semble que la fonction TIMER comporte un bug. En tous cas c'est un cas non prévu apparement.
Afin de simuler une fuite d'essence, j'ai écrit cette ligne
- Code: Tout sélectionner
&fs_FUEL_CENTRE = TIMER 0, -83886, 100 // -1% / s
Var 7450, name fs_FUEL_CENTRE, static, Link FSUIPC_INOUT, Offset $0B74, Length 4
Vu que 100% de remplissage équivaut à 8388608, le fait d'écrire ça permet effectivement d'obtenir une fuite de 1% par seconde (pour les besoins d'un exercice). Le hic, c'est que lorsque la valeur approche de 0 mais qu'elle ne l'atteint jamais, la valeur de fs_FUEL_CENTRE devient négative et le TIMER ne s'arrête pas. Etant donné que je n'aurai jamais une valeur initiale de remplissage égale à un nombre entier de décrément pour aboutir à une valeur finale de 0, je vais devoir faire un test pour éviter cet effet, mais bon, c'est pas cool

L'autre effet inattendu, c'est que Microsoft n'a pas dû prévoir d'avoir une valeur négative pour le remplissage des réservoirs. En fait le moteur ne s'arrête pas mais l'avion part en vrille
