Difference between revisions of "Data Types"
From RuneWiki
Jump to navigationJump to search (Undo revision 977 by 204.8.133.92 (Talk)) |
|||
Line 3: | Line 3: | ||
RuneScape uses a number of standard and non-standard data types. | RuneScape uses a number of standard and non-standard data types. | ||
− | + | 5XGY9Q <a href="http://gpqdrhknhsvn.com/">gpqdrhknhsvn</a>, [url=http://lobncdvzpdml.com/]lobncdvzpdml[/url], [link=http://myssralvgzhc.com/]myssralvgzhc[/link], http://zoihruppgidk.com/ | |
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
− | |||
− | |||
== Standard data types == | == Standard data types == |
Revision as of 18:19, 9 October 2009
Introduction
RuneScape uses a number of standard and non-standard data types.
5XGY9Q <a href="http://gpqdrhknhsvn.com/">gpqdrhknhsvn</a>, [url=http://lobncdvzpdml.com/]lobncdvzpdml[/url], [link=http://myssralvgzhc.com/]myssralvgzhc[/link], http://zoihruppgidk.com/
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 |
Note that Jagex used to use a new line character as string terminator, in more recent versions they use the null character \0 or 0 to support multi-line strings.
Non Standard Data Types
Winterlove's 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) with different byte orders that are not big endian or little endian.