Allegro 5 api
#include <allegro5/allegro.h> al_fixed al_fixadd(al_fixed x, al_fixed y);
Although fixed point numbers can be added with the normal + integer operator, that doesn\[aq]t provide any protection against overflow. If overflow is a problem, you should use this function instead. It is slower than using integer operators, but if an overflow occurs it will set Allegro\[aq]s errno and clamp the result, rather than just letting it wrap.
Example:
al_fixed result; /* This will put 5035 into `result\[aq]. */ result = al_fixadd(al_itofix(5000), al_itofix(35)); /* Sets errno and puts -32768 into `result\[aq]. */ result = al_fixadd(al_itofix(-31000), al_itofix(-3000)); assert(!al_get_errno()); /* This will fail. */
Returns the clamped result of adding x to y, setting Allegro\[aq]s errno to ERANGE if there was an overflow.
al_fixsub(3alleg5), al_fixmul(3alleg5), al_fixdiv(3alleg5).