diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2016-01-29 18:36:31 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2016-01-29 18:36:31 -0500 |
commit | 2bf93c5905319e9181f87b3f83cd3bce7b9feeca (patch) | |
tree | 3ebf17c8879e5d6243d81aac8f1c36eb226fac26 /macros/map.asm | |
parent | ed3f9395f6d45f6554ed9d9c49c41ea86a8e2447 (diff) |
Import stuff from pokecrystal; diff gold and silver
Diffstat (limited to 'macros/map.asm')
-rw-r--r-- | macros/map.asm | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/macros/map.asm b/macros/map.asm new file mode 100644 index 00000000..2e876577 --- /dev/null +++ b/macros/map.asm @@ -0,0 +1,189 @@ +map: MACRO + db GROUP_\1, MAP_\1 +ENDM + +roam_map: MACRO +; A map and an arbitrary number of some more maps. + + map \1 + db \2 + + rept \2 + map \3 + shift + endr + + db 0 +ENDM + +person_event: macro + db \1 ; sprite + db \2 + 4 ; y + db \3 + 4 ; x + db \4 ; movement function + dn \5, \6 ; radius: y, x + db \7 ; clock_hour + db \8 ; clock_daytime + shift + dn \8, \9 ; color_function + shift + db \9 ; sight_range + shift + dw \9 ; pointer + shift + dw \9 ; event flag + endm + +signpost: macro + db \1 ; y + db \2 ; x + db \3 ; function + dw \4 ; pointer + endm + +xy_trigger: macro + db \1 ; number + db \2 ; y + db \3 ; x + db \4 ; unknown1 + dw \5 ; script + db \6 ; unknown2 + db \7 ; unknown3 + endm + +warp_def: macro + db \1 ; y + db \2 ; x + db \3 ; warp_to + map \4 ; map + endm + + +map_header: MACRO + ; label, tileset, permission, location, music, phone service flag, time of day, fishing group +\1_MapHeader: + db BANK(\1_SecondMapHeader), \2, \3 + dw \1_SecondMapHeader + db \4, \5 + dn \6, \7 + db \8 +ENDM + + +map_header_2: MACRO +; label, map, border block, connections +\1_SecondMapHeader:: + db \3 + db \2_HEIGHT, \2_WIDTH + db BANK(\1_BlockData) + dw \1_BlockData + db BANK(\1_MapScriptHeader) + dw \1_MapScriptHeader + dw \1_MapEventHeader + db \4 +ENDM + +connection: MACRO +if "\1" == "north" +;\2: map id +;\3: map label (eventually will be rolled into map id) +;\4: x +;\5: offset? +;\6: strip length +;\7: this map id + map \2 + dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5 + dw OverworldMap + \4 + 3 + db \6 + db \2_WIDTH + db \2_HEIGHT * 2 - 1 + db (\4 - \5) * -2 + dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1 +endc + +if "\1" == "south" +;\2: map id +;\3: map label (eventually will be rolled into map id) +;\4: x +;\5: offset? +;\6: strip length +;\7: this map id + map \2 + dw \3_BlockData + \5 + dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3 + db \6 + db \2_WIDTH + db 0 + db (\4 - \5) * -2 + dw OverworldMap + \2_WIDTH + 7 +endc + +if "\1" == "west" +;\2: map id +;\3: map label (eventually will be rolled into map id) +;\4: y +;\5: offset? +;\6: strip length +;\7: this map id + map \2 + dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3 + dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3) + db \6 + db \2_WIDTH + db (\4 - \5) * -2 + db \2_WIDTH * 2 - 1 + dw OverworldMap + \2_WIDTH * 2 + 6 +endc + +if "\1" == "east" +;\2: map id +;\3: map label (eventually will be rolled into map id) +;\4: y +;\5: offset? +;\6: strip length +;\7: this map id + map \2 + dw \3_BlockData + (\2_WIDTH * \5) + dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3 + db \6 + db \2_WIDTH + db (\4 - \5) * -2 + db 0 + dw OverworldMap + \2_WIDTH + 7 +endc + +ENDM + +mapgroup: MACRO +GROUP_\1 EQU const_value + enum MAP_\1 +\1_HEIGHT EQU \2 +\1_WIDTH EQU \3 +ENDM + +newgroup: MACRO +const_value = const_value + 1 + enum_start 1 +ENDM + +elevfloor: MACRO + db \1, \2 + map \3 +ENDM + +itemball: MACRO +if _NARG == 2 + db \1, \2 +else + db \1, 1 +endc +endm + +stonetable: MACRO + db \1, \2 + dw \3 +endm + +maptrigger: MACRO + dw \1, 0 +endm |