# Scalevar

Jump to navigation
Jump to search

**mulscale** <Result> <Factor 1> <Factor 2> <Divisor>

In C terms, this command performs roughly the expression `<Result> = (<Factor 1> * <Factor 2>) / <Divisor>`

.

In CON terms, it is very similar to the following series of commands:

set <Result> <Factor 1> mul <Result> <Factor 2> div <Result> <Divisor>

The main difference is that the calculation uses 64 bits to prevent overflow, while using gamevars for intermediate values would limit it to 31 bits.

For example, statusbarscale use a scaling factor of 100. If you wanted to scale the screen coordinates of a sprite, you would do:

scalevarResult Coordinate userdef[].statusbarscale 100

Note that the equation above is very likely to surpass 31 bits. Using 16 bits of precision for rotatesprite, the maximum screen coordinate would be 327. So **scalevar** is required.