ゲームのHPとかMPみたいにMAX値を超えたり0を下回ると困る数字の処理って
一般的にはどうしているんでしょう?
↓みたいな感じでやっているんですけど

class MyFunc{
public:
       //上限を超える、0を下回るときの処理
       static float trimZeroMax( float val, float val_max ){
              if ( val > val_max ) { val = val_max; }
              if ( val < 0 ) { val = 0; }

              return val;
       }
};

//使うとき(ダメージ処理、回復処理の後)
hp = MyFunc::trimZeroMax( hp, hp_max );