WOWCube Docs logo
WOWCube Docs
Mission Control
Section Shortcuts
APIExamplesSourceWOWConnectChangelog
Filters
SDK and language defaults persist in cookies.
SDK version
Navigation Tree
Collapsed by default, focused on the active path.
Made byMcKay Seamons
GitHub
  1. Home
  2. Docs
  3. Source
  4. fixed.inc
Mission NodeSDK 6.3Pawnfixed.inc

fixed.inc

SDK Source File: fixed.inc

Source / SDK 6.3 / Pawn / Core

fixed.inc

fixed.inc
CPP
1/* Fixed point arithmetic
2 *
3 * (c) Copyright 1998-2011, ITB CompuPhase
4 * This file is provided as is (no warranties).
5 */
6#pragma library Fixed
7
8const fround_method: {
9 fround_round = 0,
10 fround_floor,
11 fround_ceil,
12 fround_tozero,
13 fround_unbiased
14};
15
16native Fixed:fixed(value);
17native Fixed:strfixed(const string[]);
18native Fixed:fmul(Fixed:oper1, Fixed:oper2);
19native Fixed:fdiv(Fixed:dividend, Fixed:divisor);
20native Fixed:ffract(Fixed:value);
21native fround(Fixed:value, fround_method:method=fround_round);
22native Fixed:fpower(Fixed:value, exponent);
23native Fixed:fsqroot(Fixed:value);
24native Fixed:fabs(Fixed:value);
25native fint(Fixed:value);
26
27#pragma rational Fixed(3)
28
29/* user defined operators */
30native Fixed:operator*(Fixed:oper1, Fixed:oper2) = fmul;
31native Fixed:operator/(Fixed:oper1, Fixed:oper2) = fdiv;
32native Fixed:operator=(oper) = fixed;
33
34stock Fixed:operator++(Fixed:oper)
35 return oper + fixed(1);
36
37stock Fixed:operator--(Fixed:oper)
38 return oper - fixed(1);
39
40stock Fixed:operator*(Fixed:oper1, oper2)
41 return Fixed: (_:oper1 * oper2); /* "*" is commutative */
42
43stock Fixed:operator/(Fixed:oper1, oper2)
44 return oper1 / fixed(oper2);
45
46stock Fixed:operator/(oper1, Fixed:oper2)
47 return fdiv(fixed(oper1), oper2);
48
49stock Fixed:operator+(Fixed:oper1, oper2)
50 return oper1 + fixed(oper2); /* "+" is commutative */
51
52stock Fixed:operator-(Fixed:oper1, oper2)
53 return oper1 - fixed(oper2);
54
55stock Fixed:operator-(oper1, Fixed:oper2)
56 return fixed(oper1) - oper2;
57
58stock bool:operator>(Fixed:oper1, oper2)
59 return oper1 > fixed(oper2);
60
61stock bool:operator>(oper1, Fixed:oper2)
62 return fixed(oper1) > oper2;
63
64stock bool:operator>=(Fixed:oper1, oper2)
65 return oper1 >= fixed(oper2);
66
67stock bool:operator>=(oper1, Fixed:oper2)
68 return fixed(oper1) >= oper2;
69
70stock bool:operator<(Fixed:oper1, oper2)
71 return oper1 < fixed(oper2);
72
73stock bool:operator<(oper1, Fixed:oper2)
74 return fixed(oper1) < oper2;
75
76stock bool:operator<=(Fixed:oper1, oper2)
77 return oper1 <= fixed(oper2);
78
79stock bool:operator<=(oper1, Fixed:oper2)
80 return fixed(oper1) <= oper2;
81
82stock bool:operator==(Fixed:oper1, oper2) /* "==" is commutative */
83 return oper1 == fixed(oper2);
84
85stock bool:operator!=(Fixed:oper1, oper2) /* "!=" is commutative */
86 return oper1 != fixed(oper2);
87
88/* forbidden operations */
89forward operator%(Fixed:oper1, Fixed:oper2);
90forward operator%(Fixed:oper1, oper2);
91forward operator%(oper1, Fixed:oper2);
92
93
94
Wrapped for easier reading. Turn wrap off to inspect exact line lengths.
Context Rail

Related nodes

graphics.inc
Source / SDK 6.3 / Pawn / Core
leaderboard.inc
Source / SDK 6.3 / Pawn / Core
log.inc
Source / SDK 6.3 / Pawn / Core
math.inc
Source / SDK 6.3 / Pawn / Core
Previous Node
wowcore.inc
Source / SDK 6.2 / Pawn / Core
Next Node
graphics.inc
Source / SDK 6.3 / Pawn / Core