diff options
| author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-11-04 15:16:20 -0500 |
|---|---|---|
| committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-11-04 19:44:31 -0500 |
| commit | aae999f72bd81a3156c7e00da4ebf499f52da5a6 (patch) | |
| tree | 32fef70a31af3a0b5ad2b0d34042c312574fb42d /engine/bg_map_attributes.asm | |
| parent | Merge branch 'master' of https://github.com/pret/pokered (diff) | |
| download | pokeyellow-aae999f72bd81a3156c7e00da4ebf499f52da5a6.tar.gz pokeyellow-aae999f72bd81a3156c7e00da4ebf499f52da5a6.tar.xz pokeyellow-aae999f72bd81a3156c7e00da4ebf499f52da5a6.zip | |
Start reorganizing pokeyellow
Diffstat (limited to 'engine/bg_map_attributes.asm')
| -rw-r--r-- | engine/bg_map_attributes.asm | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/engine/bg_map_attributes.asm b/engine/bg_map_attributes.asm deleted file mode 100644 index 4c50bcf8..00000000 --- a/engine/bg_map_attributes.asm +++ /dev/null @@ -1,219 +0,0 @@ -INCLUDE "data/bg_map_attributes.asm" - -LoadBGMapAttributes:: - ld hl, BGMapAttributesPointers - ld a, c ; c = which packet - push af ; save for later (to determine if we're handling the trainer card or party menu) - dec a ; read this code as: - add a ; dec a - ld e, a ; add a - xor a ; ld e, a - ld d, a ; ld d, 0 - add hl, de ; add hl, de - ld a, [hli] ; ld a, [hli] - ld e, a ; ld h, [hl] - ld a, [hl] ; ld l, a - ld h, a - ld a, e - ld l, a - - di - ld a, $1 - ldh [rVBK], a - push hl - ld a, [hl] - ld c, a ; save attribute count for later - ld de, $10 - add hl, de - ld a, h - ldh [rHDMA1], a - ld a, l - ldh [rHDMA2], a - ld de, vBGMap0 - ld a, d - ldh [rHDMA3], a - ld a, e - ldh [rHDMA4], a - - ldh a, [rLCDC] - and rLCDC_ENABLE_MASK ; is LCD off? - jr z, .lcdOff ; if off, transfer immediately -; wait for VBlank if LCD is on -.waitForVBlankLoop1 - ldh a, [rLY] - cp $90 - jr nz, .waitForVBlankLoop1 -.waitForAccessibleVRAMLoop1 - ldh a, [rSTAT] - and %10 ; are we in HBlank or VBlank? - jr nz, .waitForAccessibleVRAMLoop1 ; loop until we're in a safe period to transfer to VRAM -.lcdOff - ld a, c ; number of BG attributes to transfer, plus 1 times 16 - ldh [rHDMA5], a ; initiate transfer - call Func_3082 ; update audio so it doesn't "lag" - pop hl - ld a, [hli] - ld c, a ; number of BG attributes to transfer, plus 1 times 16 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a ; offset of the attributes - add hl, de ; hl = new pointer - ld a, h - ldh [rHDMA1], a - ld a, l - ldh [rHDMA2], a - ld de, vBGMap1 ; copy to vBGMap1 - ld a, d - ldh [rHDMA3], a - ld a, e - ldh [rHDMA4], a -; LCD check again - ldh a, [rLCDC] - and rLCDC_ENABLE_MASK ; is LCD off? - jr z, .lcdOff2 ; if off, transfer immediately -; wait for VBlank if LCD is on -.waitForVBlankLoop2 - ldh a, [rLY] - cp $90 - jr nz, .waitForVBlankLoop2 -.waitForAccessibleVRAMLoop2 - ldh a, [rSTAT] - and %10 ; are we in HBlank or VBlank? - jr nz, .waitForAccessibleVRAMLoop2 ; loop until we're in a safe period to transfer to VRAM -.lcdOff2 - ld a, c - ldh [rHDMA5], a - pop af - dec a - dec a - dec a - dec a - jr nz, .checkIfHandlingPartyMenu - call HandleBadgeFaceAttributes - jr .done -.checkIfHandlingPartyMenu - dec a - call z, HandlePartyHPBarAttributes -.done - call Func_3082 - ldh a, [rIF] - res VBLANK, a - ldh [rIF], a - xor a - ldh [rVBK], a - ei - ret - -BGMapAttributesPointers: - dw BGMapAttributes_Unknown1 - dw BGMapAttributes_Unknown2 - dw BGMapAttributes_GameFreakIntro - dw BGMapAttributes_TrainerCard - dw BGMapAttributes_PartyMenu - dw BGMapAttributes_NidorinoIntro - dw BGMapAttributes_TitleScreen - dw BGMapAttributes_Slots - dw BGMapAttributes_Pokedex - dw BGMapAttributes_StatusScreen - dw BGMapAttributes_Battle - dw BGMapAttributes_WholeScreen - dw BGMapAttributes_Unknown13 - -HandleBadgeFaceAttributes: -; zero out the attributes if the player doesn't have the respective badge -; BOULDERBADGE - ld hl, vBGMap1 + $183 - ld de, wTrainerCardBadgeAttributes + 6 * 0 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; CASCADEBADGE - ld hl, vBGMap1 + $187 - ld de, wTrainerCardBadgeAttributes + 6 * 1 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; THUNDERBADGE - ld hl, vBGMap1 + $18b - ld de, wTrainerCardBadgeAttributes + 6 * 2 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; RAINBOWBADGE - ld hl, vBGMap1 + $18f - ld de, wTrainerCardBadgeAttributes + 6 * 3 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; SOULBADGE - ld hl, vBGMap1 + $1e3 - ld de, wTrainerCardBadgeAttributes + 6 * 6 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; MARSHBADGE - ld hl, vBGMap1 + $1e7 - ld de, wTrainerCardBadgeAttributes + 6 * 7 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; VOLCANOBADGE - ld hl, vBGMap1 + $1eb - ld de, wTrainerCardBadgeAttributes + 6 * 8 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes -; EARTHBADGE - ld hl, vBGMap1 + $1ef - ld de, wTrainerCardBadgeAttributes + 6 * 9 - ld a, [de] - and a - call z, ZeroOutCurrentBadgeAttributes - ret - -ZeroOutCurrentBadgeAttributes: - push hl - xor a - ld [hli], a - ld [hl], a - ld bc, $1f - add hl, bc - ld [hli], a - ld [hl], a - pop hl - ret - -HandlePartyHPBarAttributes: -; hp bars require 3 (green, orange, red) colours, when there are only 2 "free" colours per palette -; therefore, we must transfer individual bg attributes where the locations of the hp bars are in vram - ld hl, vBGMap1 + $25 ; location of start of the HP bar in vram - ld de, wPartyHPBarAttributes - ld c, PARTY_LENGTH -.loop - push bc - push hl - ld a, [de] - and $3 ; 4 possible palettes - rept 7 ; hp bar length in tiles - ld [hli], a - endr - pop hl - ld bc, $40 ; get 2nd party location - add hl, bc - push hl - - push de ; (inefficiently) copy de to hl - pop hl - - ld bc, $6 - add hl, bc ; get the next palette - - push hl - pop de ; copy back to de - - pop hl - pop bc - dec c - jr nz, .loop - ret |
