Difference between revisions of "Data Types"
From RuneWiki
Jump to navigationJump to searchPeterbjornx (talk | contribs) |
Peterbjornx (talk | contribs) (Added standard datatypes) |
||
Line 5: | Line 5: | ||
RuneScape uses a number of standard and non-standard data types. | RuneScape uses a number of standard and non-standard data types. | ||
+ | == Standard data types == | ||
+ | These datatypes can also be read/written by a DataWriter/DataReader implementation (DataStreams and Buffers) | ||
+ | |||
+ | Naming conventions: | ||
+ | {| border=2 | ||
+ | ! Official name | ||
+ | ! Datatype name | ||
+ | ! JaGeX name | ||
+ | ! Encoding | ||
+ | |- | ||
+ | | Byte | ||
+ | | byte | ||
+ | | 1,1b | ||
+ | |- | ||
+ | | WORD | ||
+ | | short | ||
+ | | 2,2b | ||
+ | |- | ||
+ | | DWORD | ||
+ | | int,int32 | ||
+ | | 4,4b | ||
+ | |- | ||
+ | | QWORD | ||
+ | | long,int64 | ||
+ | | 8,8b | ||
+ | |- | ||
+ | | C style string | ||
+ | | string,String,char *,char[] | ||
+ | | str,strbyte | ||
+ | | text bytes then '\n' or 10 | ||
+ | |- | ||
+ | | Java style string | ||
+ | | string,String,char *,char[] | ||
+ | | strraw | ||
+ | | WORD length then text bytes | ||
+ | |} | ||
== Non Standard Data Types == | == Non Standard Data Types == | ||
Revision as of 10:32, 22 September 2009
Stub
This article is a stub. You can help RuneWiki by expanding it. |
Introduction
RuneScape uses a number of standard and non-standard data types.
Standard data types
These datatypes can also be read/written by a DataWriter/DataReader implementation (DataStreams and Buffers)
Naming conventions:
Official name | Datatype name | JaGeX name | Encoding |
---|---|---|---|
Byte | byte | 1,1b | |
WORD | short | 2,2b | |
DWORD | int,int32 | 4,4b | |
QWORD | long,int64 | 8,8b | |
C style string | string,String,char *,char[] | str,strbyte | text bytes then '\n' or 10 |
Java style string | string,String,char *,char[] | strraw | WORD length then text bytes |
Non Standard Data Types
winterLove name | JaGeX name | Read transformation | Write transformation |
---|---|---|---|
Special A | Unknown | value - 128 | value + 128 |
Special C | Unknown | 0 - value | 0 - value |
Special S | Unknown | 128 - value | 128 - value |
SpaceSaverA | smarts | (value[0] < 128) ? (((value[0] - 128)<<8)+value[1]) : value[0] | if(value < 128) putword(value+32768) else putbyte(value); |
SpaceSaverB | smart | ((value[0]<<8)+value[1]) - 49152 | if(i < 64 && i >= -64) putbyte(i + 64) else if(i < 16384 && i >= -16384) putword(i + 49152); |
tribyte / RGBColour / 3Byte / int3 | 3 | (value[0] << 24) + (value[1] << 16) + value[2] | putbyte(value >> 24);putbyte(value >> 16);putbyte(value); |
Additionally, RuneScape also uses two additional integers (named int 1 and int 2).