summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm564
1 files changed, 13 insertions, 551 deletions
diff --git a/main.asm b/main.asm
index f16f61dac..1440d7933 100644
--- a/main.asm
+++ b/main.asm
@@ -2473,9 +2473,9 @@ SurfFunction: ; c909
jr nz, .cannotsurf
ld a, [PlayerState]
cp PLAYER_SURF
- jr z, .alreadysurfing
+ jr z, .alreadyfail
cp PLAYER_SURF_PIKA
- jr z, .alreadysurfing
+ jr z, .alreadyfail
call GetFacingTileCoord
call GetTileCollision
cp $1
@@ -2489,7 +2489,7 @@ SurfFunction: ; c909
.asm_c956
ld a, $80
ret
-.alreadysurfing
+.alreadyfail
ld a, $3
ret
.cannotsurf
@@ -2603,9 +2603,9 @@ CheckDirection: ; c9cb
TrySurfOW:: ; c9e7
; Checking a tile in the overworld.
-; Return carry if surfing is allowed.
+; Return carry if fail is allowed.
-; Don't ask to surf if already surfing.
+; Don't ask to surf if already fail.
ld a, [PlayerState]
cp PLAYER_SURF_PIKA
jr z, .quit
@@ -3577,21 +3577,20 @@ FishFunction: ; cf8e
dw .TryFish
dw .FishNoBite
dw .FishGotSomething
- dw .SurfingFish
dw .FailFish
+ dw .FishNoFish
.TryFish: ; cfaf
ld a, [PlayerState]
cp PLAYER_SURF
- jr z, .surfing
+ jr z, .fail
cp PLAYER_SURF_PIKA
- jr z, .surfing
+ jr z, .fail
call GetFacingTileCoord
call GetTileCollision
cp $1
jr z, .facingwater
-
-.surfing
+.fail
ld a, $3
ret
@@ -3622,7 +3621,7 @@ FishFunction: ; cf8e
ld a, $1
ret
-.SurfingFish: ; cff1
+.FailFish: ; cff1
ld a, $80
ret
@@ -3642,7 +3641,7 @@ FishFunction: ; cf8e
ld a, $81
ret
-.FailFish: ; d010
+.FishNoFish: ; d010
ld a, $0
ld [Buffer6], a
ld hl, Script_NotEvenANibble2
@@ -5405,55 +5404,7 @@ UpdateItemDescription: ; 0x244c3
callba PrintItemDescription
ret
-Pokepic:: ; 244e3
- ld hl, PokepicMenuDataHeader
- call CopyMenuDataHeader
- call MenuBox
- call UpdateSprites
- call ApplyTilemap
- ld b, SCGB_POKEPIC
- call GetSGBLayout
- xor a
- ld [hBGMapMode], a
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld de, VTiles1
- predef GetFrontpic
- ld a, [wMenuBorderTopCoord]
- inc a
- ld b, a
- ld a, [wMenuBorderLeftCoord]
- inc a
- ld c, a
- call Coord2Tile
- ld a, $80
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- call WaitBGMap
- ret
-
-ClosePokepic:: ; 24528
- ld hl, PokepicMenuDataHeader
- call CopyMenuDataHeader
- call ClearMenuBoxInterior
- call WaitBGMap
- call GetMemSGBLayout
- xor a
- ld [hBGMapMode], a
- call OverworldTextModeSwitch
- call ApplyTilemap
- call UpdateSprites
- call LoadStandardFont
- ret
-
-PokepicMenuDataHeader: ; 0x24547
- db $40 ; flags
- db 04, 06 ; start coords
- db 13, 14 ; end coords
- dw NULL
- db 1 ; default option
+INCLUDE "engine/pokepic.asm"
LoadObjectMasks: ; 2454f
ld hl, wObjectMasks
@@ -10089,496 +10040,7 @@ _SwitchPartyMons:
call CopyBytes
ret
-GetUnownLetter: ; 51040
-; Return Unown letter in UnownLetter based on DVs at hl
-
-; Take the middle 2 bits of each DV and place them in order:
-; atk def spd spc
-; .ww..xx. .yy..zz.
-
- ; atk
- ld a, [hl]
- and %01100000
- sla a
- ld b, a
- ; def
- ld a, [hli]
- and %00000110
- swap a
- srl a
- or b
- ld b, a
-
- ; spd
- ld a, [hl]
- and %01100000
- swap a
- sla a
- or b
- ld b, a
- ; spc
- ld a, [hl]
- and %00000110
- srl a
- or b
-
-; Divide by 10 to get 0-25
- ld [hDividend + 3], a
- xor a
- ld [hDividend], a
- ld [hDividend + 1], a
- ld [hDividend + 2], a
- ld a, 10
- ld [hDivisor], a
- ld b, 4
- call Divide
-
-; Increment to get 1-26
- ld a, [hQuotient + 2]
- inc a
- ld [UnownLetter], a
- ret
-
-GetFrontpic: ; 51077
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call IsAPokemon
- ret c
- ld a, [rSVBK]
- push af
- call _GetFrontpic
- pop af
- ld [rSVBK], a
- ret
-
-FrontpicPredef: ; 5108b
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call IsAPokemon
- ret c
- ld a, [rSVBK]
- push af
- xor a
- ld [hBGMapMode], a
- call _GetFrontpic
- call Function51103
- pop af
- ld [rSVBK], a
- ret
-
-_GetFrontpic: ; 510a5
- push de
- call GetBaseData
- ld a, [BasePicSize]
- and $f
- ld b, a
- push bc
- call GetFrontpicPointer
- ld a, $6
- ld [rSVBK], a
- ld a, b
- ld de, wDecompressScratch + $800
- call FarDecompress
- pop bc
- ld hl, wDecompressScratch
- ld de, wDecompressScratch + $800
- call Function512ab
- pop hl
- push hl
- ld de, wDecompressScratch
- ld c, 7 * 7
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- pop hl
- ret
-
-GetFrontpicPointer: ; 510d7
-GLOBAL PicPointers, UnownPicPointers
-
- ld a, [CurPartySpecies]
- cp UNOWN
- jr z, .unown
- ld a, [CurPartySpecies]
- ld d, BANK(PicPointers)
- jr .ok
-
-.unown
- ld a, [UnownLetter]
- ld d, BANK(UnownPicPointers)
-
-.ok
- ld hl, PicPointers ; UnownPicPointers
- dec a
- ld bc, 6
- call AddNTimes
- ld a, d
- call GetFarByte
- call FixPicBank
- push af
- inc hl
- ld a, d
- call GetFarHalfword
- pop bc
- ret
-
-Function51103: ; 51103
- ld a, $1
- ld [rVBK], a
- push hl
- ld de, wDecompressScratch
- ld c, 7 * 7
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- pop hl
- ld de, 7 * 7 tiles
- add hl, de
- push hl
- ld a, $1
- ld hl, BasePicSize
- call GetFarWRAMByte
- pop hl
- and $f
- ld de, w6_d800 + 5 * 5 tiles
- ld c, 5 * 5
- cp 5
- jr z, .got_dims
- ld de, w6_d800 + 6 * 6 tiles
- ld c, 6 * 6
- cp 6
- jr z, .got_dims
- ld de, w6_d800 + 7 * 7 tiles
- ld c, 7 * 7
-.got_dims
-
- push hl
- push bc
- call Function5114f
- pop bc
- pop hl
- ld de, wDecompressScratch
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- xor a
- ld [rVBK], a
- ret
-
-Function5114f: ; 5114f
- ld hl, wDecompressScratch
- swap c
- ld a, c
- and $f
- ld b, a
- ld a, c
- and $f0
- ld c, a
- push bc
- call LoadFrontpic
- pop bc
-.asm_51161
- push bc
- ld c, $0
- call LoadFrontpic
- pop bc
- dec b
- jr nz, .asm_51161
- ret
-
-GetBackpic: ; 5116c
- ld a, [CurPartySpecies]
- call IsAPokemon
- ret c
-
- ld a, [CurPartySpecies]
- ld b, a
- ld a, [UnownLetter]
- ld c, a
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
-
- ; These are assumed to be at the same
- ; address in their respective banks.
- GLOBAL PicPointers, UnownPicPointers
- ld hl, PicPointers ; UnownPicPointers
- ld a, b
- ld d, BANK(PicPointers)
- cp UNOWN
- jr nz, .ok
- ld a, c
- ld d, BANK(UnownPicPointers)
-.ok
- dec a
- ld bc, 6
- call AddNTimes
- ld bc, 3
- add hl, bc
- ld a, d
- call GetFarByte
- call FixPicBank
- push af
- inc hl
- ld a, d
- call GetFarHalfword
- ld de, wDecompressScratch
- pop af
- call FarDecompress
- ld hl, wDecompressScratch
- ld c, 6 * 6
- call FixBackpicAlignment
- pop hl
- ld de, wDecompressScratch
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- pop af
- ld [rSVBK], a
- ret
-
-FixPicBank: ; 511c5
-; This is a thing for some reason.
- push hl
- push bc
- sub PICS_1 - PICS_FIX
- ld c, a
- ld b, 0
- ld hl, .PicsBanks
- add hl, bc
- ld a, [hl]
- pop bc
- pop hl
- ret
-
-.PicsBanks: ; 511d4
- db PICS_1
- db PICS_2
- db PICS_3
- db PICS_4
- db PICS_5
- db PICS_6
- db PICS_7
- db PICS_8
- db PICS_9
- db PICS_10
- db PICS_11
- db PICS_12
- db PICS_13
- db PICS_14
- db PICS_15
- db PICS_16
- db PICS_17
- db PICS_18
- db PICS_19
- db PICS_19 + 1
- db PICS_19 + 2
- db PICS_19 + 3
- db PICS_19 + 4
- db PICS_19 + 5
-
-Function511ec: ; 511ec
- ld a, c
- push de
- ld hl, PicPointers
- dec a
- ld bc, 6
- call AddNTimes
- ld a, BANK(PicPointers)
- call GetFarByte
- call FixPicBank
- push af
- inc hl
- ld a, BANK(PicPointers)
- call GetFarHalfword
- pop af
- pop de
- call FarDecompress
- ret
-
-GetTrainerPic: ; 5120d
- ld a, [TrainerClass]
- and a
- ret z
- cp NUM_TRAINER_CLASSES
- ret nc
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld hl, TrainerPicPointers
- ld a, [TrainerClass]
- dec a
- ld bc, 3
- call AddNTimes
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld a, BANK(TrainerPicPointers)
- call GetFarByte
- call FixPicBank
- push af
- inc hl
- ld a, BANK(TrainerPicPointers)
- call GetFarHalfword
- pop af
- ld de, wDecompressScratch
- call FarDecompress
- pop hl
- ld de, wDecompressScratch
- ld c, 7 * 7
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- pop af
- ld [rSVBK], a
- call WaitBGMap
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-DecompressPredef: ; 5125d
-; Decompress lz data from b:hl to scratch space at 6:d000, then copy it to address de.
-
- ld a, [rSVBK]
- push af
- ld a, 6
- ld [rSVBK], a
-
- push de
- push bc
- ld a, b
- ld de, wDecompressScratch
- call FarDecompress
- pop bc
- ld de, wDecompressScratch
- pop hl
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
-
- pop af
- ld [rSVBK], a
- ret
-
-FixBackpicAlignment: ; 5127c
- push de
- push bc
- ld a, [wBoxAlignment]
- and a
- jr z, .keep_dims
- ld a, c
- cp 7 * 7
- ld de, 7 * 7 tiles
- jr z, .got_dims
- cp 6 * 6
- ld de, 6 * 6 tiles
- jr z, .got_dims
- ld de, 5 * 5 tiles
-
-.got_dims
- ld a, [hl]
- ld b, $0
- ld c, $8
-.loop
- rra
- rl b
- dec c
- jr nz, .loop
- ld a, b
- ld [hli], a
- dec de
- ld a, e
- or d
- jr nz, .got_dims
-
-.keep_dims
- pop bc
- pop de
- ret
-
-Function512ab: ; 512ab
- ld a, b
- cp 6
- jr z, .six
- cp 5
- jr z, .five
-
-.seven_loop
- ld c, $70
- call LoadFrontpic
- dec b
- jr nz, .seven_loop
- ret
-
-.six
- ld c, $70
- xor a
- call .Fill
-.six_loop
- ld c, $10
- xor a
- call .Fill
- ld c, $60
- call LoadFrontpic
- dec b
- jr nz, .six_loop
- ret
-
-.five
- ld c, $70
- xor a
- call .Fill
-.five_loop
- ld c, $20
- xor a
- call .Fill
- ld c, $50
- call LoadFrontpic
- dec b
- jr nz, .five_loop
- ld c, $70
- xor a
- call .Fill
- ret
-
-.Fill
- ld [hli], a
- dec c
- jr nz, .Fill
- ret
-
-LoadFrontpic: ; 512f2
- ld a, [wBoxAlignment]
- and a
- jr nz, .x_flip
-.left_loop
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .left_loop
- ret
-
-.x_flip
- push bc
-.right_loop
- ld a, [de]
- inc de
- ld b, a
- xor a
- rept 8
- rr b
- rla
- endr
- ld [hli], a
- dec c
- jr nz, .right_loop
- pop bc
- ret
+INCLUDE "gfx/load_pics.asm"
Function51322: ; 51322
ld a, BANK(sBoxCount)