Data Types: Difference between revisions
From RuneWiki
No edit summary |
|||
| Line 31: | Line 31: | ||
<nowiki>*</nowiki>SWord means sesqui word, or one and a half words. | <nowiki>*</nowiki>SWord means sesqui word, or one and a half words. | ||
===Byte Transformations | ==Special Types== | ||
Base37: Stored in a QWord | |||
Interface Color: Stored in a Word | |||
Model Color: Stored in a Word | |||
==Byte Transformations== | |||
These transformations only apply to the least significant byte, regardless of the endianness. | These transformations only apply to the least significant byte, regardless of the endianness. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 47: | Line 53: | ||
|} | |} | ||
==Byte Order== | |||
Also known as Endianness. | Also known as Endianness. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 66: | Line 72: | ||
|} | |} | ||
<nowiki>*</nowiki>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. | <nowiki>*</nowiki>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. | ||
Revision as of 23:17, 6 September 2021
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
Base37: Stored in a QWord
Interface Color: Stored in a Word
Model Color: Stored in a 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.