2021-09-19 18:51:21 +00:00
|
|
|
// Yes, these are exactly what every tutorial presents as a bad example of C
|
|
|
|
// macros, especially if they are nested within each other.
|
|
|
|
// MODDERS: Turn into template functions.
|
|
|
|
#define clamp_max(v, max) ((v) < max ? (v) : max)
|
|
|
|
#define clamp_min(v, min) ((v) > min ? (v) : min)
|
2021-09-19 20:46:21 +00:00
|
|
|
#define clamp_max_2(v, max) ((v) > max ? max : (v))
|
|
|
|
#define clamp_min_2(v, min) ((v) < min ? min : (v))
|
2021-09-17 13:12:41 +00:00
|
|
|
#define clamp_max_2_ge(v, max) ((v) >= max ? max : (v))
|
2021-09-19 18:51:21 +00:00
|
|
|
|
|
|
|
#define clamp_inc(v, max) \
|
|
|
|
(v)++; \
|
|
|
|
if((v) > (max)) { \
|
|
|
|
(v) = (max); \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define clamp_dec(v, min) \
|
|
|
|
(v)--; \
|
|
|
|
if((v) < (min)) { \
|
|
|
|
(v) = (min); \
|
|
|
|
}
|