Data Types
From RuneWiki
Types
Name | Length | Notes |
---|---|---|
Byte | 1 | 0 to 255 unsigned | -128 to +127 signed |
Word | 2 | 0 to 65,535 unsigned | -32,768 to +32,767 signed |
SWord* | 3 | 0 to 16,777,215 unsigned | −8,388,608 to 8,388,607 signed |
DWord | 4 | 0 to 4,294,967,295 unsigned | -2,147,483,648 to 2,147,483,647 signed |
QWord | 8 | 0 to 18,446,744,073,709,551,615 unsigned | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 signed |
String | 1+ | Newline-terminated, not null-terminated like C |
*SWord means sesqui word, or one and a half words.
Special Types
Name | Base | Notes |
---|---|---|
Base37 | QWord | |
Interface Color | Word | 5-bits per channel |
Model Color | Word |
Byte Transformations
These transformations only apply to the least significant byte, regardless of the endianness.
Name | Operation |
---|---|
Add | byte + 128 |
Subtract | 128 - byte |
Negate | -byte |
Byte Order
Also known as Endianness.
Name | Order |
---|---|
Big | 4, 3, 2, 1 |
Little | 1, 2, 3, 4 |
Middle-Big* | 3, 4, 1, 2 |
Middle-Little* | 2, 1, 4, 3 |
*Middle-Big and Middle-Little are not a standard order or naming scheme. I call them that because they start with the big significant bytes or the little significant bytes.