Difference between revisions of "Data Types"

From RuneWiki
Jump to navigationJump to search
(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).