| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| getcvarfixed [2019/04/22 19:28] – korshun | getcvarfixed [2019/08/26 01:30] (current) – korshun |
|---|
| ====== GetCVarFixed ====== | ====== GetCVarFixed ====== |
| |
| | ZDoom provides [[zdoom>GetCVar]] for ints and [[zdoom>GetCVarString]] for strings, but doesn't provide a way to retrieve the value of ''float'' CVars. ACSUtils implements ''GetCVarFixed'' by calling [[zdoom>GetCVarString]] to retrieve the value of the CVar as a string, and parsing it with [[number_parsing|atof]]. |
| | |
| | |
| | <note important>If the CVar's value is outside the range of fixed-point numbers, the result is clamped to ''-32768.0''..''32767.99997'' range.</note> |
| | |
| | <note important>The function names begin with ''a_'' because [[GDCC]] defines its own broken ''GetCVarFixed'', which causes a compilation error if another function named ''GetCVarFixed'' exists.</note> |
| | |
| | <note tip>If you're not using [[GDCC]], you can remove the ''a_'' prefix by adding the following to your code: |
| | <code> |
| | function GetCVarFixed(str name) |
| | { |
| | return a_GetCVarFixed(name); |
| | } |
| | |
| | function GetUserCVarFixed(int player, str name) |
| | { |
| | return a_GetUserCVarFixed(player, name); |
| | } |
| | </code> |
| | </note> |
| | |
| | ===== Functions ===== |
| | |
| | ==== GetCVarFixed ==== |
| ''fixed a_GetCVarFixed(str name)'' | ''fixed a_GetCVarFixed(str name)'' |
| |
| ZDoom provides [[zdoom>GetCVar]] for ints and [[zdoom>GetCVarString]] for strings, but doesn't provide a way to retrieve the value of ''float'' CVars. ACSUtils implements ''GetCVarFixed'' by calling [[zdoom>GetCVarString]] to retrieve the value of the CVar as a string, and parsing it with [[number parsing]] functions. | Analogous to [[zdoom>GetCVar]] and [[zdoom>GetCVarString]]. |
| | |
| | ==== GetUserCVarFixed ==== |
| | ''fixed a_GetUserCVarFixed(int player, str name)'' |
| | |
| | A version of ''GetCVarFixed'' for user CVars. Calls [[zdoom>GetCVarString]] internally instead of [[zdoom>GetCVar]]. Analogous to [[zdoom>GetUserCVar]] and [[zdoom>GetUserCVarString]]. |
| |
| <note important>If the CVar's value is outside the range of fixed-point numbers, the function returns ''0.0''.</note> | |
| |
| <note important>The function is called ''a_GetCVarFixed'' and not ''GetCVarFixed'' because [[GDCC]] defines its own broken ''GetCVarFixed'', which causes a compilation error if another function named ''GetCVarFixed'' exists.</note> | |
| |