ref: a71b7a92b7443ef60df96890e56917d67db9b80b
dir: /home/stone_queue.asm/
HandleStoneQueue:: ; 3567 ld a, [hROMBank] push af call SwitchToMapScriptsBank call .WarpAction pop bc ld a, b rst Bankswitch ret ; 3574 .WarpAction: ; 3574 ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld a, [hl] cp $ff jr z, .nope ld l, a push hl call .IsObjectOnWarp pop hl jr nc, .nope ld d, a ld e, l call .IsObjectInStoneTable jr nc, .nope call CallMapScript farcall EnableScriptMode scf ret .nope and a ret ; 3599 .IsObjectOnWarp: ; 3599 push de ld hl, OBJECT_NEXT_MAP_X add hl, de ld a, [hl] ld hl, OBJECT_NEXT_MAP_Y add hl, de ld e, [hl] sub 4 ld d, a ld a, e sub 4 ld e, a call .check_on_warp pop de ret ; 35b0 .check_on_warp ; 35b0 ld hl, wCurrMapWarpsPointer ld a, [hli] ld h, [hl] ld l, a ld a, [wCurrMapWarpCount] and a jr z, .nope2 .loop push af ld a, [hl] cp e jr nz, .not_on_warp inc hl ld a, [hld] cp d jr nz, .not_on_warp jr .found_warp .not_on_warp ld a, 5 add l ld l, a jr nc, .no_carry inc h .no_carry pop af dec a jr nz, .loop .nope2 and a ret .found_warp pop af ld d, a ld a, [wCurrMapWarpCount] sub d inc a scf ret ; 35de .IsObjectInStoneTable: ; 35de inc e ld hl, CMDQUEUE_ADDR add hl, bc ld a, [hli] ld h, [hl] ld l, a .loop2 ld a, [hli] cp $ff jr z, .nope3 cp d jr nz, .next_inc3 ld a, [hli] cp e jr nz, .next_inc2 ld a, [hli] ld h, [hl] ld l, a jr .yes .next_inc3 inc hl .next_inc2 inc hl inc hl jr .loop2 .nope3 and a ret .yes scf ret ; 3600