Files
asarium 9a46e9b55e Fix negative shift warning
This converts the fix conversion macros to constexpr functions which
should have the same runtime effects with the added type safety.
2016-08-11 10:42:40 +02:00

40 lines
709 B
C

/*
* Copyright (C) Volition, Inc. 1999. All rights reserved.
*
* All source code herein is the property of Volition, Inc. You may not sell
* or otherwise commercially exploit the source or things you created based on the
* source.
*
*/
#ifndef _FIX_H
#define _FIX_H
#define F1_0 65536
#define f1_0 65536
fix fixmul(fix a, fix b);
fix fixdiv(fix a, fix b);
fix fixmuldiv(fix a, fix b, fix c);
// Needed for compatibility with MSVC 2013
#if SCP_COMPILER_CXX_CONSTEXPR
#define CONST_EXPR constexpr
#else
#define CONST_EXPR inline
#endif
CONST_EXPR int f2i(fix a) {
return static_cast<int>(a >> 16);
}
CONST_EXPR fix i2f(int a) {
return static_cast<fix>(a << 16);
}
#undef CONST_EXPR
#endif