summaryrefslogtreecommitdiff
path: root/source/bank_01.asm
blob: a4b95bc482be4fc4a07895f66355c44acef93a1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
INCLUDE "code_macros.inc"
INCLUDE "const_macros.inc"
INCLUDE "gfx_macros.inc"
INCLUDE "level_constants.inc"
INCLUDE "puzzle_constants.inc"

SECTION "text_2_char_draw", ROMX[$5e3c], BANK[$01]

puzzle_name_textbox_clear:
    xor a
    ld [w_dbe4], a

.loop
    ld16 w_vwf_char_addr, gfx_blank_char
    ld a, BANK(gfx_blank_char)
    ld [w_vwf_char_bank], a
    ld a, [w_dbe4]
    add a
    add a
    add a
    add 40
    ld [w_vwf_char_start_x], a
    add 7
    ld [w_vwf_char_end_x], a
    ld a, 15
    ld [w_vwf_char_start_y], a
    ld a, 26
    ld [w_vwf_char_end_y], a
    call vwf_char_draw

    ld a, [w_dbe4]
    inc a
    ld [w_dbe4], a
    cp 11
    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 TOWN_MAP_PUZZLES
    jp farcall_ret

SECTION "function_01_6306", ROMX[$6306], BANK[$01]
function_01_6306::
    ld c, 16
.loop
    push bc
    push hl
    push de
    push af
    ld bc, 8 tiles
    call vram_copy
    farcall function_05_7089
    pop af
    pop de
    pop hl
    push hl
    ld hl, 8 tiles
    add hl, de
    ld e, l
    ld d, h
    pop hl
    ld bc, 8 tiles
    add hl, bc
    pop bc
    dec c
    jp nz, .loop
    ret