rswiki-book/src/317/317-Construct-map-region.md

1.4 KiB

\[Category Packet

{{packet|name=Construct map region|description=Constructs a new map region from a palette of 8x8 tiles.|opcode=241|type=Variable Short|length=N/A|revision=317}} == Construct Map Region ==

=== Description ===

The construct map region packet sends a dynamic map region that is constructed by using groups of 8*8 tiles. It is generally used for instanced areas, such as fight caves, and in later revisions, player owned houses.

=== Packet Structure ===

{| border=2 ! Data type ! Description |- | [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]] | The region Y coordinate (absolute Y coordinate / 8), plus 6. |- | #Bit block | See below. |- | [[Data Types#Standard data types|Short]] | The region X coordinate (absolute X coordinate / 8), plus 6. |}

==== Bit block ====

The bit block actually contains the 'palette' of map regions to make up the new region.

There is a loop, like this, used to construct it:

for(int z = 0; z < 4; z++) { for(int x = 0; x < 13; x++) { for(int y = 0; y < 13; y++) { // data for this region } } }

The individual format in each iteration of the loop is:

  • '''1 bit''' - set to 0 to indicate to display nothing, 1 to display a region
  • '''26 bits''' - if the flag above is set to 1 - region x << 14 | region y << 3