diff options
| author | Sylvie <35663410+Rangi42@users.noreply.github.com> | 2024-09-24 09:33:33 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-24 09:33:33 -0400 |
| commit | b5d2540e7c56d7ae596ba49d105b1a01dd6ffd29 (patch) | |
| tree | e5cd5ae7b6f06ce33f495ad3ba995761ec93f72f /engine/overworld | |
| parent | Fix comment: Road -> Roar (#466) (diff) | |
| download | pokeyellow-b5d2540e7c56d7ae596ba49d105b1a01dd6ffd29.tar.gz pokeyellow-b5d2540e7c56d7ae596ba49d105b1a01dd6ffd29.tar.xz pokeyellow-b5d2540e7c56d7ae596ba49d105b1a01dd6ffd29.zip | |
Identify more bit flags (#465)
* Identify more bit flags
* Space
Diffstat (limited to 'engine/overworld')
| -rw-r--r-- | engine/overworld/map_sprites.asm | 4 | ||||
| -rw-r--r-- | engine/overworld/movement.asm | 4 | ||||
| -rw-r--r-- | engine/overworld/player_state.asm | 20 | ||||
| -rw-r--r-- | engine/overworld/spinners.asm | 2 |
4 files changed, 19 insertions, 11 deletions
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm index 75c46474..57c2d4db 100644 --- a/engine/overworld/map_sprites.asm +++ b/engine/overworld/map_sprites.asm @@ -187,7 +187,7 @@ LoadMapSpriteTilePatterns: jr nz, .loadWhileLCDOn pop af pop hl - set 3, h ; add $80 tiles to hl + set 3, h ; add $800 ($80 tiles) to hl (1 << 3 == $8) push hl ld h, d ld l, e @@ -200,7 +200,7 @@ LoadMapSpriteTilePatterns: .loadWhileLCDOn pop af pop hl - set 3, h ; add $80 tiles to hl + set 3, h ; add $800 ($80 tiles) to hl (1 << 3 == $8) ld b, a swap c call CopyVideoData ; load tile pattern data for sprite when walking diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index 5f95cf6c..cb65c997 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -641,7 +641,7 @@ CanWalkOntoTile: add SPRITESTATEDATA2_YDISPLACEMENT ld l, a ld a, [hli] ; x#SPRITESTATEDATA2_YDISPLACEMENT (initialized at $8, keep track of where a sprite did go) - bit 7, d ; check if going upwards (d=$ff) + bit 7, d ; check if going upwards (d == -1) jr nz, .upwards add d ; bug: these tests against $5 probably were supposed to prevent @@ -658,7 +658,7 @@ CanWalkOntoTile: .checkHorizontal ld d, a ld a, [hl] ; x#SPRITESTATEDATA2_XDISPLACEMENT (initialized at $8, keep track of where a sprite did go) - bit 7, e ; check if going left (e=$ff) + bit 7, e ; check if going left (e == -1) jr nz, .left add e cp $5 ; compare, but no conditional jump like in the vertical check above (bug?) diff --git a/engine/overworld/player_state.asm b/engine/overworld/player_state.asm index 4711bb5c..4da437da 100644 --- a/engine/overworld/player_state.asm +++ b/engine/overworld/player_state.asm @@ -294,6 +294,13 @@ _GetTileAndCoordsInFrontOfPlayer: ld [wTileInFrontOfPlayer], a ret +; hPlayerFacing + const_def + const BIT_FACING_DOWN ; 0 + const BIT_FACING_UP ; 1 + const BIT_FACING_LEFT ; 2 + const BIT_FACING_RIGHT ; 3 + GetTileTwoStepsInFrontOfPlayer: xor a ldh [hPlayerFacing], a @@ -306,7 +313,7 @@ GetTileTwoStepsInFrontOfPlayer: jr nz, .notFacingDown ; facing down ld hl, hPlayerFacing - set 0, [hl] + set BIT_FACING_DOWN, [hl] lda_coord 8, 13 inc d jr .storeTile @@ -315,7 +322,7 @@ GetTileTwoStepsInFrontOfPlayer: jr nz, .notFacingUp ; facing up ld hl, hPlayerFacing - set 1, [hl] + set BIT_FACING_UP, [hl] lda_coord 8, 5 dec d jr .storeTile @@ -324,7 +331,7 @@ GetTileTwoStepsInFrontOfPlayer: jr nz, .notFacingLeft ; facing left ld hl, hPlayerFacing - set 2, [hl] + set BIT_FACING_LEFT, [hl] lda_coord 4, 9 dec e jr .storeTile @@ -333,7 +340,7 @@ GetTileTwoStepsInFrontOfPlayer: jr nz, .storeTile ; facing right ld hl, hPlayerFacing - set 3, [hl] + set BIT_FACING_RIGHT, [hl] lda_coord 12, 9 inc e .storeTile @@ -385,7 +392,7 @@ CheckForBoulderCollisionWithSprites: ld de, $f ld hl, wSprite01StateData2MapY ldh a, [hPlayerFacing] - and $3 ; facing up or down? + and (1 << BIT_FACING_UP) | (1 << BIT_FACING_DOWN) jr z, .pushingHorizontallyLoop .pushingVerticallyLoop inc hl @@ -396,6 +403,7 @@ CheckForBoulderCollisionWithSprites: ld a, [hli] ld b, a ldh a, [hPlayerFacing] + assert BIT_FACING_DOWN == 0 rrca jr c, .pushingDown ; pushing up @@ -421,7 +429,7 @@ CheckForBoulderCollisionWithSprites: jr nz, .nextSprite2 ld b, [hl] ldh a, [hPlayerFacing] - bit 2, a + bit BIT_FACING_LEFT, a jr nz, .pushingLeft ; pushing right ldh a, [hPlayerXCoord] diff --git a/engine/overworld/spinners.asm b/engine/overworld/spinners.asm index 98b478c4..261a939e 100644 --- a/engine/overworld/spinners.asm +++ b/engine/overworld/spinners.asm @@ -15,7 +15,7 @@ LoadSpinnerArrowTiles:: ld hl, GymSpinnerArrows .gotSpinnerArrows ld a, [wSimulatedJoypadStatesIndex] - bit 0, a + bit 0, a ; even or odd? jr nz, .alternateGraphics ld de, 6 * 4 add hl, de |
