mirror of
https://github.com/moparisthebest/rswiki-book
synced 2024-12-17 21:22:24 -05:00
43 lines
1.3 KiB
Plaintext
43 lines
1.3 KiB
Plaintext
[[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 |