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

38 lines
1.4 KiB
Markdown

\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{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\|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