summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorIIMarckus <iimarckus@gmail.com>2020-09-22 00:52:25 -0600
committerIIMarckus <iimarckus@gmail.com>2020-09-22 13:24:13 -0600
commita6e999910355e5a08de4937129aa236d0b083a50 (patch)
tree97307a63eca79cbe533b28e038287cc8022970f7 /source
parentf56f72b262056824b392c4e8a64137c8094765fc (diff)
Add functions calculating puzzle id from coordinates on map
Diffstat (limited to 'source')
-rw-r--r--source/bank_01.asm34
-rw-r--r--source/bank_20.asm51
-rw-r--r--source/bank_3c.asm12
3 files changed, 97 insertions, 0 deletions
diff --git a/source/bank_01.asm b/source/bank_01.asm
index 30e904d..f188759 100644
--- a/source/bank_01.asm
+++ b/source/bank_01.asm
@@ -1,4 +1,6 @@
INCLUDE "macros.inc"
+INCLUDE "level_constants.inc"
+INCLUDE "puzzle_constants.inc"
SECTION "text_2_char_draw", ROMX[$5e3c], BANK[$01]
@@ -31,6 +33,38 @@ puzzle_name_textbox_clear:
jp nz, .loop
ret
+SECTION "calc_town_map_puzzle_index", ROMX[$61FA], BANK[$01]
+calc_town_map_puzzle_index::
+ ld a, [w_town_map_level]
+ cp LEVEL_MEW
+ jr nz, .not_mew
+ ld a, PUZZLE_MEW
+ jp farcall_ret
+
+.not_mew
+ ld a, [w_town_map_y]
+ ld c, a
+ add a
+ add a
+ add c
+ ld c, a
+ ld a, [w_town_map_x]
+ add c
+ ld c, a
+ ld a, [w_town_map_level]
+ add a
+ add a
+ add a
+ add a
+ add c
+ ld c, a
+ ld a, [w_town_map_level]
+ xor $ff
+ inc a
+ add c
+ add PUZZLE_DIGLETT
+ jp farcall_ret
+
SECTION "function_01_6306", ROMX[$6306], BANK[$01]
function_01_6306::
ld c, 16
diff --git a/source/bank_20.asm b/source/bank_20.asm
new file mode 100644
index 0000000..da85a69
--- /dev/null
+++ b/source/bank_20.asm
@@ -0,0 +1,51 @@
+INCLUDE "level_constants.inc"
+INCLUDE "puzzle_constants.inc"
+
+SECTION "calc_safari_map_puzzle_index", ROMX[$46B5], BANK[$20]
+calc_safari_map_puzzle_index::
+ ld a, [w_safari_map_level]
+ cp LEVEL_JUNGLE_ZONE
+ jp z, calc_safari_map_level_4_puzzle_index
+ ld a, [w_safari_map_y]
+ ld c, a
+ add a
+ add a
+ add c
+ ld c, a
+ ld a, [w_safari_map_x]
+ add c
+ ld c, a
+ ld a, [w_safari_map_level]
+ add a
+ add a
+ add a
+ add a
+ add c
+ ld c, a
+ ld a, [w_safari_map_level]
+ xor $ff
+ inc a
+ add c
+ add PUZZLE_SAFARI_HAUNTER
+ jp farcall_ret
+
+SECTION "calc_safari_map_level_4_puzzle_index", ROMX[$5258], BANK[$20]
+calc_safari_map_level_4_puzzle_index::
+ ld a, [w_safari_map_y]
+ add a
+ add a
+ ld c, a
+ ld a, [w_safari_map_x]
+ add c
+ ld l, a
+ ld h, 0
+ ld de, .level_4_puzzles
+ add hl, de
+ ld a, [hl]
+ jp farcall_ret
+
+.level_4_puzzles:
+ db PUZZLE_THREE_POKEMON, PUZZLE_SAFARI_GLOOM, 00, 00
+ db PUZZLE_TEAM_ROCKET, PUZZLE_PIKACHU_AND_TOGEPI, 00, 00
+ db PUZZLE_HIDDEN_VILLAGE, PUZZLE_SNOWMAN, 00, 00
+ db 00, 00, 00, 00
diff --git a/source/bank_3c.asm b/source/bank_3c.asm
index 2cfed7e..0d03b21 100644
--- a/source/bank_3c.asm
+++ b/source/bank_3c.asm
@@ -6,3 +6,15 @@ textbox_border_load::
ld bc, gfx_textbox_border_dark.end - gfx_textbox_border_dark
call vram_copy
jp farcall_ret
+
+SECTION "calc_easy_picross_puzzle_index", ROMX[$649d], BANK[$3c]
+calc_easy_picross_puzzle_index::
+ ld a, [w_easy_picross_y]
+ ld c, a
+ add a
+ add a
+ add c
+ ld c, a
+ ld a, [w_easy_picross_x]
+ add c
+ jp farcall_ret