mirror of
https://git.code.sf.net/p/quake/game-source
synced 2024-11-22 20:11:49 +00:00
53 lines
658 B
C++
53 lines
658 B
C++
#include "math.qh"
|
|
#include "builtins.qh"
|
|
|
|
/* Ugh. QuakeC doesn't include these ops. */
|
|
float (float num, float bits)
|
|
shl =
|
|
{
|
|
if (bits >= 16) {
|
|
num *= 65536;
|
|
bits -= 16;
|
|
}
|
|
if (bits >= 8) {
|
|
num *= 256;
|
|
bits -= 8;
|
|
}
|
|
if (bits >= 4) {
|
|
num *= 16;
|
|
bits -= 4;
|
|
}
|
|
if (bits >= 2) {
|
|
num *= 4;
|
|
bits -= 2;
|
|
}
|
|
if (bits >= 1) {
|
|
num *= 2;
|
|
}
|
|
return num;
|
|
};
|
|
|
|
float (float num, float bits)
|
|
shr =
|
|
{
|
|
if (bits >= 16) {
|
|
num /= 65536;
|
|
bits -= 16;
|
|
}
|
|
if (bits >= 8) {
|
|
num /= 256;
|
|
bits -= 8;
|
|
}
|
|
if (bits >= 4) {
|
|
num /= 16;
|
|
bits -= 4;
|
|
}
|
|
if (bits >= 2) {
|
|
num /= 4;
|
|
bits -= 2;
|
|
}
|
|
if (bits >= 1) {
|
|
num /= 2;
|
|
}
|
|
return floor (num);
|
|
};
|