64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
| 
								 | 
							
								HandleOwlStatue:
							 | 
						||
| 
								 | 
							
								    call GetRoomStatusAddressInHL
							 | 
						||
| 
								 | 
							
								    ld   a, [hl]
							 | 
						||
| 
								 | 
							
								    and  $20
							 | 
						||
| 
								 | 
							
								    ret  nz
							 | 
						||
| 
								 | 
							
								    ld   a, [hl]
							 | 
						||
| 
								 | 
							
								    or   $20
							 | 
						||
| 
								 | 
							
								    ld   [hl], a
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ld   hl, $7B16
							 | 
						||
| 
								 | 
							
								    call OffsetPointerByRoomNumber
							 | 
						||
| 
								 | 
							
								    ld   a, [hl]
							 | 
						||
| 
								 | 
							
								    ldh  [$F1], a
							 | 
						||
| 
								 | 
							
								    call ItemMessage
							 | 
						||
| 
								 | 
							
								    call GiveItemFromChest
							 | 
						||
| 
								 | 
							
								    ret
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								GetRoomStatusAddressInHL:
							 | 
						||
| 
								 | 
							
								    ld   a, [$DBA5] ; isIndoor
							 | 
						||
| 
								 | 
							
								    ld   d, a
							 | 
						||
| 
								 | 
							
								    ld   hl, $D800
							 | 
						||
| 
								 | 
							
								    ldh  a, [$F6]   ; room nr
							 | 
						||
| 
								 | 
							
								    ld   e, a
							 | 
						||
| 
								 | 
							
								    ldh  a, [$F7]   ; map nr
							 | 
						||
| 
								 | 
							
								    cp   $FF
							 | 
						||
| 
								 | 
							
								    jr   nz, .notColorDungeon
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ld   d, $00
							 | 
						||
| 
								 | 
							
								    ld   hl, $DDE0
							 | 
						||
| 
								 | 
							
								    jr   .notIndoorB
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.notColorDungeon:
							 | 
						||
| 
								 | 
							
								    cp   $1A
							 | 
						||
| 
								 | 
							
								    jr   nc, .notIndoorB
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    cp   $06
							 | 
						||
| 
								 | 
							
								    jr   c, .notIndoorB
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    inc  d
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.notIndoorB:
							 | 
						||
| 
								 | 
							
								    add  hl, de
							 | 
						||
| 
								 | 
							
								    ret
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								RenderOwlStatueItem:
							 | 
						||
| 
								 | 
							
								    ldh  a, [$F6] ; map room
							 | 
						||
| 
								 | 
							
								    cp $B2
							 | 
						||
| 
								 | 
							
								    jr nz, .NotYipYip
							 | 
						||
| 
								 | 
							
								    ; Add 2 to room to set room pointer to an empty room for trade items
							 | 
						||
| 
								 | 
							
								    add a, 2
							 | 
						||
| 
								 | 
							
								    ldh [$F6], a
							 | 
						||
| 
								 | 
							
								    call RenderItemForRoom
							 | 
						||
| 
								 | 
							
								    ldh  a, [$F6] ; map room
							 | 
						||
| 
								 | 
							
								    ; ...and undo it
							 | 
						||
| 
								 | 
							
								    sub a, 2
							 | 
						||
| 
								 | 
							
								    ldh [$F6], a
							 | 
						||
| 
								 | 
							
								    ret
							 | 
						||
| 
								 | 
							
								.NotYipYip:
							 | 
						||
| 
								 | 
							
								    call RenderItemForRoom
							 | 
						||
| 
								 | 
							
								    ret
							 |