diff options
| author | IIMarckus <iimarckus@gmail.com> | 2012-08-26 10:35:47 -0600 | 
|---|---|---|
| committer | IIMarckus <iimarckus@gmail.com> | 2012-08-26 10:35:47 -0600 | 
| commit | 4bbef145e06a075f9ee8db12c25277449050944c (patch) | |
| tree | 7db3f2e59f28e19842629fb5dcd8bb83f06c1d53 | |
| parent | fd27fd7b6b01224462954ec6cfd75d044e5cc14d (diff) | |
Add the boulder checking code in Seafoam Islands.
hg-commit-id: e6031dbbcc5b
| -rw-r--r-- | main.asm | 74 | 
1 files changed, 54 insertions, 20 deletions
| @@ -6714,6 +6714,9 @@ ArePlayerCoordsInArray: ; 0x34bf  	ld b,a  	ld a,[W_XCOORD]  	ld c,a +	; fallthrough + +CheckCoords: ; 0x34c7  	xor a  	ld [$cd3d],a  .loop\@ @@ -6740,7 +6743,32 @@ ArePlayerCoordsInArray: ; 0x34bf  	and a  	ret -INCBIN "baserom.gbc",$34E4,$3541-$34E4 +; tests if a boulder's coordinates are in a specified array +; INPUT: +; hl = address of array +; ff8c = which boulder to check? XXX +; OUTPUT: +; [$cd3d] = if there is match, the matching array index +; sets carry if the coordinates are in the array, clears carry if not +CheckBoulderCoords: ; 0x34e4 +	push hl +	ld hl, $c204 +	ld a, [$ff00+$8c] +	swap a +	ld d, $0 +	ld e, a +	add hl, de +	ld a, [hli] +	sub $4 ; because sprite coordinates are offset by 4 +	ld b, a +	ld a, [hl] +	sub $4 ; because sprite coordinates are offset by 4 +	ld c, a +	pop hl +	jp CheckCoords +; 0x34fc + +INCBIN "baserom.gbc",$34fc,$3541-$34fc  Function3541: ; 3541  ; XXX what do these three functions do @@ -45338,8 +45366,8 @@ SeafoamIslands1Script: ; 0x447e9  	bit 7, [hl]  	res 7, [hl]  	jr z, .asm_4483b ; 0x447f8 $41 -	ld hl, Data44846 -	call $34e4 +	ld hl, Seafoam1HolesCoords +	call CheckBoulderCoords  	ret nc  	ld hl, $d7e8  	ld a, [$cd3d] @@ -45369,11 +45397,11 @@ SeafoamIslands1Script: ; 0x447e9  .asm_4483b  	ld a, $9f  	ld [$d71d], a -	ld hl, Data44846 +	ld hl, Seafoam1HolesCoords  	jp $6981  ; 0x44846 -Data44846: ; 0x44846 +Seafoam1HolesCoords: ; 0x44846  	db $06,$11  	db $06,$18  	db $ff @@ -47287,8 +47315,8 @@ SeafoamIslands2Script: ; 0x46315  	bit 7, [hl]  	res 7, [hl]  	jr z, .asm_46362 ; 0x4631f $41 -	ld hl, SeafoamIslands2Script_Unknown4636d -	call $34e4 +	ld hl, Seafoam2HolesCoords +	call CheckBoulderCoords  	ret nc  	ld hl, $d87f  	ld a, [$cd3d] @@ -47318,12 +47346,14 @@ SeafoamIslands2Script: ; 0x46315  .asm_46362  	ld a, $a0  	ld [$d71d], a -	ld hl, SeafoamIslands2Script_Unknown4636d +	ld hl, Seafoam2HolesCoords  	jp $6981  ; 0x4636d -SeafoamIslands2Script_Unknown4636d: ; 0x4636d -INCBIN "baserom.gbc",$4636d,$5 +Seafoam2HolesCoords: ; 0x4636d +	db $06,$12 +	db $06,$17 +	db $ff  SeafoamIslands2Texts: ; 0x46372  	dw BoulderText, BoulderText @@ -47372,8 +47402,8 @@ SeafoamIslands3Script: ; 0x46451  	bit 7, [hl]  	res 7, [hl]  	jr z, .asm_4649e ; 0x4645b $41 -	ld hl, SeafoamIslands3Script_Unknown464a9 -	call $34e4 +	ld hl, Seafoam3HolesCoords +	call CheckBoulderCoords  	ret nc  	ld hl, $d880  	ld a, [$cd3d] @@ -47403,12 +47433,14 @@ SeafoamIslands3Script: ; 0x46451  .asm_4649e  	ld a, $a1  	ld [$d71d], a -	ld hl, SeafoamIslands3Script_Unknown464a9 +	ld hl, Seafoam3HolesCoords  	jp $6981  ; 0x464a9 -SeafoamIslands3Script_Unknown464a9: ; 0x464a9 -INCBIN "baserom.gbc",$464a9,$5 +Seafoam3HolesCoords: ; 0x464a9 +	db $06,$13 +	db $06,$16 +	db $ff  SeafoamIslands3Texts: ; 0x464ae  	dw BoulderText, BoulderText @@ -47457,8 +47489,8 @@ SeafoamIslands4Script: ; 0x4658d  	bit 7, [hl]  	res 7, [hl]  	jr z, .asm_465dc ; 0x46597 $43 -	ld hl, Data465f6 -	call $34e4 +	ld hl, Seafoam4HolesCoords +	call CheckBoulderCoords  	ret nc  	ld hl, $d881  	ld a, [$cd3d] @@ -47489,7 +47521,7 @@ SeafoamIslands4Script: ; 0x4658d  .asm_465dc  	ld a, $a2  	ld [$d71d], a -	ld hl, Data465f6 +	ld hl, Seafoam4HolesCoords  	call $6981  	ld a, [$d732]  	bit 4, a @@ -47500,8 +47532,10 @@ SeafoamIslands4Script: ; 0x4658d  	jp $3d97  ; 0x465f6 -Data465f6: ; 0x465f6 -INCBIN "baserom.gbc",$465f6,$465fb - $465f6 +Seafoam4HolesCoords: ; 0x465f6 +	db $10,$03 +	db $10,$06 +	db $ff  SeafoamIslands4Scripts: ; 0x465fb  	dw SeafoamIslands4Script0, SeafoamIslands4Script1, SeafoamIslands4Script2, SeafoamIslands4Script3 | 
