diff options
Diffstat (limited to 'src/engine/bank07.asm')
-rw-r--r-- | src/engine/bank07.asm | 104 |
1 files changed, 99 insertions, 5 deletions
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 25534f1..0b2ec00 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -128,8 +128,83 @@ Func_1c477: ; 1c477 (7:4477) pop hl ret +; Loads NPC Sprite Data Func_1c485: ; 1c485 (7:4485) - INCROM $1c485, $1c50a + push hl + push bc + push de + xor a + ld [wd3aa], a + ld b, a + ld c, $08 + ld hl, wd34a + ld de, $c +.findEmptyIndexLoop + ld a, [hl] + or a + jr z, .foundEmptyIndex + add hl, de + inc b + dec c + jr nz, .findEmptyIndexLoop + ld hl, wd34a + debug_ret + jr .exit +.foundEmptyIndex + ld a, b + ld [wd3aa], a + ld a, [wd3b3] + farcall CreateSpriteAndAnimBufferEntry + jr c, .exit + ld a, [wd3aa] + call Func_39a7 + push hl + ld a, [wTempNPC] + ld [hli], a + ld a, [wWhichSprite] + ld [hli], a + ld a, [wLoadNPCXPos] + ld [hli], a + ld a, [wLoadNPCYPos] + ld [hli], a + ld a, [wLoadNPCDirection] + ld [hli], a + ld a, [wd3b2] + ld [hli], a + ld a, [wd3b1] + ld [hli], a + ld a, [wLoadNPCDirection] + ld [hli], a + call Func_1c58e + call Func_1c5b9 + ld hl, wd349 + inc [hl] + pop hl + call Func_1c665 + call Func_1c6e3 + ld a, [wTempNPC] + call Func_1c4fa + jr nc, .exit + ld a, $01 + ld [wd3b8], a +.exit + pop de + pop bc + pop hl + ret + +Func_1c4fa: ; 1c4fa (7:44fa) + cp RONALD1 + jr z, .asm_1c508 + cp RONALD2 + jr z, .asm_1c508 + cp RONALD3 + jr z, .asm_1c508 + or a + ret +.asm_1c508 + scf + ret Func_1c50a: ; 1c50a (7:450a) push hl @@ -190,10 +265,10 @@ Func_1c557: ; 1c557 (7:4557) ld c, a ld a, [wd3aa] push af - ld a, [wd3ab] + ld a, [wTempNPC] push af ld a, c - ld [wd3ab], a + ld [wTempNPC], a ld c, $0 call Func_39c3 jr c, .asm_1c570 @@ -202,7 +277,7 @@ Func_1c557: ; 1c557 (7:4557) .asm_1c570 pop af - ld [wd3ab], a + ld [wTempNPC], a pop af ld [wd3aa], a ld a, c @@ -253,6 +328,7 @@ Func_1c58e: ; 1c58e (7:458e) ret ; 0x1c5b9 +Func_1c5b9: ; 1c5b9 (7:45b9) INCROM $1c5b9, $1c5e9 Func_1c5e9: ; 1c5e9 (7:45e9) @@ -274,7 +350,25 @@ Func_1c5e9: ; 1c5e9 (7:45e9) INCROM $1c5ff, $1c610 Func_1c610: ; 1c610 (7:4610) - INCROM $1c610, $1c6f8 + INCROM $1c610, $1c665 + +Func_1c665: ; 1c665 (7:4665) + INCROM $1c665, $1c6e3 + +Func_1c6e3: ; 1c6e3 (7:46e3) + push hl + push bc + ld a, [$d3aa] + ld l, $02 + call Func_39ad + ld a, [hli] + ld b, a + ld c, [hl] + ld a, $40 + call SetPermissionOfMapPosition + pop bc + pop hl + ret Func_1c6f8: ; 1c6f8 (7:46f8) INCROM $1c6f8, $1c719 |