Document fish bug properly (#995)

This commit is contained in:
Idain 2022-08-31 19:13:10 -04:00 committed by GitHub
parent 4883950318
commit 01dffba788
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 37 deletions

View File

@ -66,7 +66,7 @@ Fixes in the [multi-player battle engine](#multi-player-battle-engine) category
- [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks) - [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks)
- [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map) - [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map)
- [Swimming NPCs aren't limited by their movement radius](#swimming-npcs-arent-limited-by-their-movement-radius) - [Swimming NPCs aren't limited by their movement radius](#swimming-npcs-arent-limited-by-their-movement-radius)
- [You can Surf and fish on top of NPCs](#you-can-surf-and-fish-on-top-of-npcs) - [You can fish on top of NPCs](#you-can-fish-on-top-of-npcs)
- [Pokémon deposited in the Day-Care might lose experience](#pok%C3%A9mon-deposited-in-the-day-care-might-lose-experience) - [Pokémon deposited in the Day-Care might lose experience](#pok%C3%A9mon-deposited-in-the-day-care-might-lose-experience)
- [Graphics](#graphics) - [Graphics](#graphics)
- [In-battle “`…`” ellipsis is too high](#in-battle--ellipsis-is-too-high) - [In-battle “`…`” ellipsis is too high](#in-battle--ellipsis-is-too-high)
@ -1658,57 +1658,31 @@ This bug is why the Lapras in [maps/UnionCaveB2F.asm](https://github.com/pret/po
``` ```
### You can Surf and fish on top of NPCs ### You can fish on top of NPCs
**Fix**: Edit [engine/events/overworld.asm](https://github.com/pret/pokecrystal/blob/master/engine/events/overworld.asm): **Fix**: Edit [engine/events/overworld.asm](https://github.com/pret/pokecrystal/blob/master/engine/events/overworld.asm):
```diff
SurfFunction:
...
.TrySurf:
-; BUG: You can Surf and fish on top of NPCs (see docs/bugs_and_glitches.md)
ld de, ENGINE_FOGBADGE
call CheckBadge
jr c, .nofogbadge
ld hl, wBikeFlags
bit BIKEFLAGS_ALWAYS_ON_BIKE_F, [hl]
jr nz, .cannotsurf
ld a, [wPlayerState]
cp PLAYER_SURF
jr z, .alreadyfail
cp PLAYER_SURF_PIKA
jr z, .alreadyfail
+ call GetFacingObject
+ jr nc, .cannotsurf
call GetFacingTileCoord
call GetTileCollision
cp WATER_TILE
jr nz, .cannotsurf
call CheckDirection
jr c, .cannotsurf
- farcall CheckFacingObject
- jr c, .cannotsurf
ld a, $1
ret
```
```diff ```diff
FishFunction: FishFunction:
... ...
.TryFish: .TryFish:
-; BUG: You can fish on top of NPCs (see docs/bugs_and_glitches.md)
ld a, [wPlayerState] ld a, [wPlayerState]
cp PLAYER_SURF cp PLAYER_SURF
jr z, .fail jr z, .fail
cp PLAYER_SURF_PIKA cp PLAYER_SURF_PIKA
jr z, .fail jr z, .fail
+ call GetFacingObject
+ jr nc, .fail
call GetFacingTileCoord call GetFacingTileCoord
call GetTileCollision call GetTileCollision
cp WATER_TILE cp WATER_TILE
jr z, .facingwater - jr z, .facingwater
+ jr nz, .fail
+ farcall CheckFacingObject
+ jr nc, .facingwater
.fail
ld a, $3
ret
``` ```

View File

@ -344,7 +344,6 @@ SurfFunction:
dw .AlreadySurfing dw .AlreadySurfing
.TrySurf: .TrySurf:
; BUG: You can Surf and fish on top of NPCs (see docs/bugs_and_glitches.md)
ld de, ENGINE_FOGBADGE ld de, ENGINE_FOGBADGE
call CheckBadge call CheckBadge
jr c, .nofogbadge jr c, .nofogbadge
@ -1443,6 +1442,7 @@ FishFunction:
dw .FishNoFish dw .FishNoFish
.TryFish: .TryFish:
; BUG: You can fish on top of NPCs (see docs/bugs_and_glitches.md)
ld a, [wPlayerState] ld a, [wPlayerState]
cp PLAYER_SURF cp PLAYER_SURF
jr z, .fail jr z, .fail