diff --git a/engine/events/hidden_objects/bookshelves.asm b/engine/events/hidden_objects/bookshelves.asm index b58444af8d..a2cfb648a0 100644 --- a/engine/events/hidden_objects/bookshelves.asm +++ b/engine/events/hidden_objects/bookshelves.asm @@ -24,7 +24,7 @@ PrintBookshelfText:: pop af call PrintPredefTextID xor a - ldh [hFFDB], a + ldh [hWasBookShelfTextFound], a ret .nextBookshelfEntry1 inc hl @@ -33,7 +33,7 @@ PrintBookshelfText:: jr .loop .noMatch ld a, $ff - ldh [hFFDB], a + ldh [hWasBookShelfTextFound], a farjp PrintCardKeyText INCLUDE "data/tilesets/bookshelf_tile_ids.asm" diff --git a/engine/overworld/sprite_collisions.asm b/engine/overworld/sprite_collisions.asm index dc57d5b9c3..e0fbe0fe04 100644 --- a/engine/overworld/sprite_collisions.asm +++ b/engine/overworld/sprite_collisions.asm @@ -80,7 +80,7 @@ DetectCollisionBetweenSprites: and $f0 or c - ldh [hFF90], a ; store Y coordinate adjusted for direction of movement + ldh [hSpriteCollisionsTempYStore], a ; store Y coordinate adjusted for direction of movement ld a, [hli] ; a = [i#SPRITESTATEDATA1_XSTEPVECTOR] (-1, 0, or 1) call SetSpriteCollisionValues @@ -93,7 +93,7 @@ DetectCollisionBetweenSprites: and $f0 or c - ldh [hFF91], a ; store X coordinate adjusted for direction of movement + ldh [hSpriteCollisionsTempXStore], a ; store X coordinate adjusted for direction of movement ld a, l add 7 @@ -103,15 +103,15 @@ DetectCollisionBetweenSprites: ld [hld], a ; zero [i#SPRITESTATEDATA1_0D] XXX what's this for? ld [hld], a ; zero [i#SPRITESTATEDATA1_COLLISIONDATA] - ldh a, [hFF91] + ldh a, [hSpriteCollisionsTempXStore] ld [hld], a ; [i#SPRITESTATEDATA1_XADJUSTED] - ldh a, [hFF90] + ldh a, [hSpriteCollisionsTempYStore] ld [hl], a ; [i#SPRITESTATEDATA1_YADJUSTED] xor a ; zero the loop counter .loop - ldh [hFF8F], a ; store loop counter + ldh [hSpriteCollisionsLoopCounter], a ; store loop counter swap a ld e, a ldh a, [hCurrentSpriteOffset] @@ -155,7 +155,7 @@ DetectCollisionBetweenSprites: cpl inc a .noCarry1 - ldh [hFF90], a ; store the distance between the two sprites' adjusted Y values + ldh [hSpriteCollisionsTempYStore], a ; store the distance between the two sprites' adjusted Y values ; Use the carry flag set by the above subtraction to determine which sprite's ; Y coordinate is larger. This information is used later to set @@ -177,11 +177,11 @@ DetectCollisionBetweenSprites: ld b, 9 .next1 - ldh a, [hFF90] ; a = distance between adjusted Y coordinates + ldh a, [hSpriteCollisionsTempYStore] ; a = distance between adjusted Y coordinates sub b - ldh [hFF92], a ; store distance adjusted using sprite i's direction + ldh [hSpriteCollisionsAdjustedDistance], a ; store distance adjusted using sprite i's direction ld a, b - ldh [hFF90], a ; store 7 or 9 depending on sprite i's delta Y + ldh [hSpriteCollisionsTempYStore], a ; store 7 or 9 depending on sprite i's delta Y jr c, .checkXDistance ; If sprite j's delta Y is 0, then b = 7, else b = 9. @@ -194,7 +194,7 @@ DetectCollisionBetweenSprites: ld b, 9 .next2 - ldh a, [hFF92] ; a = distance adjusted using sprite i's direction + ldh a, [hSpriteCollisionsAdjustedDistance] ; a = distance adjusted using sprite i's direction sub b ; adjust distance using sprite j's direction jr z, .checkXDistance jr nc, .next ; go to next sprite if distance is still positive after both adjustments @@ -226,7 +226,7 @@ DetectCollisionBetweenSprites: cpl inc a .noCarry2 - ldh [hFF91], a ; store the distance between the two sprites' adjusted X values + ldh [hSpriteCollisionsTempXStore], a ; store the distance between the two sprites' adjusted X values ; Use the carry flag set by the above subtraction to determine which sprite's ; X coordinate is larger. This information is used later to set @@ -248,11 +248,11 @@ DetectCollisionBetweenSprites: ld b, 9 .next3 - ldh a, [hFF91] ; a = distance between adjusted X coordinates + ldh a, [hSpriteCollisionsTempXStore] ; a = distance between adjusted X coordinates sub b - ldh [hFF92], a ; store distance adjusted using sprite i's direction + ldh [hSpriteCollisionsAdjustedDistance], a ; store distance adjusted using sprite i's direction ld a, b - ldh [hFF91], a ; store 7 or 9 depending on sprite i's delta X + ldh [hSpriteCollisionsTempXStore], a ; store 7 or 9 depending on sprite i's delta X jr c, .collision ; If sprite j's delta X is 0, then b = 7, else b = 9. @@ -265,15 +265,15 @@ DetectCollisionBetweenSprites: ld b, 9 .next4 - ldh a, [hFF92] ; a = distance adjusted using sprite i's direction + ldh a, [hSpriteCollisionsAdjustedDistance] ; a = distance adjusted using sprite i's direction sub b ; adjust distance using sprite j's direction jr z, .collision jr nc, .next ; go to next sprite if distance is still positive after both adjustments .collision - ldh a, [hFF91] ; a = 7 or 9 depending on sprite i's delta X + ldh a, [hSpriteCollisionsTempXStore] ; a = 7 or 9 depending on sprite i's delta X ld b, a - ldh a, [hFF90] ; a = 7 or 9 depending on sprite i's delta Y + ldh a, [hSpriteCollisionsTempYStore] ; a = 7 or 9 depending on sprite i's delta Y inc l ; If delta X isn't 0 and delta Y is 0, then b = %0011, else b = %1100. @@ -296,7 +296,7 @@ DetectCollisionBetweenSprites: ; to indicate which sprite the collision occurred with inc l inc l - ldh a, [hFF8F] ; a = loop counter + ldh a, [hSpriteCollisionsLoopCounter] ; a = loop counter ld de, SpriteCollisionBitTable add a add e @@ -313,7 +313,7 @@ DetectCollisionBetweenSprites: ld [hl], a .next - ldh a, [hFF8F] ; a = loop counter + ldh a, [hSpriteCollisionsLoopCounter] ; a = loop counter inc a cp $10 jp nz, .loop diff --git a/home/hidden_objects.asm b/home/hidden_objects.asm index 6e7d980a7d..723e3056b6 100644 --- a/home/hidden_objects.asm +++ b/home/hidden_objects.asm @@ -26,7 +26,7 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: jr .done .hiddenObjectNotFound farcall PrintBookshelfText - ldh a, [hFFDB] + ldh a, [hWasBookShelfTextFound] and a jr z, .done .nothingFound diff --git a/ram/hram.asm b/ram/hram.asm index 0607a48437..1288efef8c 100644 --- a/ram/hram.asm +++ b/ram/hram.asm @@ -85,10 +85,10 @@ hSpriteScreenX:: db hSpriteScreenY:: db NEXTU -hFF8F:: db -hFF90:: db -hFF91:: db -hFF92:: db +hSpriteCollisionsLoopCounter:: db +hSpriteCollisionsTempYStore:: db +hSpriteCollisionsTempXStore:: db +hSpriteCollisionsAdjustedDistance:: db ENDU hTilePlayerStandingOn:: db @@ -330,8 +330,7 @@ hGymTrashCanRandNumMask:: db NEXTU -hFFDB:: db -hFFDC:: db +hWasBookShelfTextFound:: db ; set to 0 if found, $FF if not found when attempting to interact with a hidden object ENDU ds 1