shithub: pokered

Download patch

ref: d307c854991f5eb24e12935e6906ad81ed244334
parent: cdd34eb45b5093e595455b4f4556bed643cceafa
author: yenatch <yenatch@gmail.com>
date: Sun May 25 06:09:39 EDT 2014

Clean up some bank 3 functions and rename flag action functions.

--- a/engine/battle/15.asm
+++ b/engine/battle/15.asm
@@ -17,8 +17,8 @@
 	ld a, [wWhichPokemon] ; $cf92
 	ld c, a
 	ld b, $2
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld a, c
 	and a
 	pop hl
@@ -251,8 +251,8 @@
 	ld a, [wWhichPokemon] ; $cf92
 	ld c, a
 	ld b, $1
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	pop hl
 	pop af
 	ld [W_CURENEMYLVL], a ; $d127
@@ -277,14 +277,14 @@
 	ld c, a
 	ld b, $1
 	push bc
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld hl, $ccf5
 	xor a
 	ld [hl], a
 	pop bc
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	jp Predef
 
 Func_5546c: ; 5546c (15:546c)
 	ld a, [W_PLAYERMONSALIVEFLAGS]
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -320,12 +320,12 @@
 	ld b, $1
 	push bc
 	ld hl, W_PLAYERMONSALIVEFLAGS
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld hl, $ccf5
 	pop bc
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	call Func_3cba6
 	call LoadScreenTilesFromBuffer1
 	call Func_3cc91
@@ -1053,8 +1053,8 @@
 	ld c, a
 	ld hl, W_PLAYERMONSALIVEFLAGS ; clear fainted mon's alive flag
 	ld b, $0
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld hl, W_ENEMYBATTSTATUS1 ; $d067
 	res 2, [hl]   ; reset "attacking multiple times" flag
 	ld a, [$d083]
@@ -1153,12 +1153,12 @@
 	ld hl, W_PLAYERMONSALIVEFLAGS
 	ld b, $1
 	push bc
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	pop bc
 	ld hl, $ccf5
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	call Func_3cba6
 	call GBPalWhiteOut
 	call Func_3ee5b
@@ -2440,12 +2440,12 @@
 	ld b, $1
 	push bc
 	ld hl, W_PLAYERMONSALIVEFLAGS
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	pop bc
 	ld hl, $ccf5
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	call Func_3cba6
 	call Func_3cc91
 	call SaveScreenTilesToBuffer1
@@ -6185,8 +6185,8 @@
 	ld c, a
 	ld b, $1
 	ld hl, wPokedexSeen ; $d30a
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld hl, W_ENEMYMONLEVEL ; $cff3
 	ld de, $cd23
 	ld bc, $b
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -489,7 +489,7 @@
 	ret
 
 Func_3b057: ; 3b057 (e:7057)
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	jp Predef
 
 INCLUDE "data/evos_moves.asm"
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -59,8 +59,8 @@
 	ld c, a
 	ld hl, wPokedexOwned ; $d2f7
 	ld b, $1
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	pop af
 	ld [$d11e], a
 	call GetMonName
--- a/engine/hidden_object_functions7.asm
+++ b/engine/hidden_object_functions7.asm
@@ -194,8 +194,8 @@
 
 CinnabarGymQuiz_1ea8a: ; 1ea8a (7:6a8a)
 	ld hl, $d79c
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	jp Predef
 
 CinnabarGymQuiz_1ea92: ; 1ea92 (7:6a92)
 	call YesNoChoice
@@ -227,8 +227,8 @@
 	ld c, a
 	ld b, $2
 	ld hl, $d79a
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld a, c
 	and a
 	ret nz
--- a/engine/items/itemfinder.asm
+++ b/engine/items/itemfinder.asm
@@ -11,8 +11,8 @@
 	ld hl, $d6f0
 	ld c, b
 	ld b, $2
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld a, c
 	pop hl
 	pop bc
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -18,8 +18,8 @@
 .TMfoundLoop
 	pop hl
 	ld b, $2  ; read corresponding bit from TM compatibility array
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	jp Predef
 
 ; converts TM/HM number in $d11e into move number
 ; HMs start at 51
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -78,7 +78,7 @@
 	dbw BANK(Func_f71e),Func_f71e
 	db BANK(InitializePlayerData)
 	dw InitializePlayerData
-	dbw BANK(HandleBitArray),HandleBitArray
+	dbw BANK(FlagActionPredef),FlagActionPredef
 	db BANK(RemoveMissableObject)
 	dw RemoveMissableObject
 	db BANK(IsMissableObjectHidden)
--- a/main.asm
+++ b/main.asm
@@ -7666,10 +7666,9 @@
 	pop de
 	ret
 
-; calls HandleBitArray
-HandleBitArray_Bank0:: ; 31c7 (0:31c7)
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+TrainerFlagAction::
+	ld a, $10 ; FlagActionPredef
+	jp Predef
 
 ; direct talking to a trainer (rather than getting seen by one)
 TalkToTrainer:: ; 31cc (0:31cc)
@@ -7681,7 +7680,7 @@
 	ld a, [wTrainerHeaderFlagBit]
 	ld c, a
 	ld b, $2
-	call HandleBitArray_Bank0      ; read trainer's flag
+	call TrainerFlagAction      ; read trainer's flag
 	ld a, c
 	and a
 	jr z, .trainerNotYetFought     ; test trainer's flag
@@ -7774,7 +7773,7 @@
 	ld a, [wTrainerHeaderFlagBit]
 	ld c, a
 	ld b, $1
-	call HandleBitArray_Bank0   ; flag trainer as fought
+	call TrainerFlagAction   ; flag trainer as fought
 	ld a, [W_ENEMYMONORTRAINERCLASS]
 	cp $c8
 	jr nc, .skipRemoveSprite    ; test if trainer was fought (in that case skip removing the corresponding sprite)
@@ -7857,7 +7856,7 @@
 	ld b, $2
 	ld a, [wTrainerHeaderFlagBit]
 	ld c, a
-	call HandleBitArray_Bank0        ; read trainer flag
+	call TrainerFlagAction        ; read trainer flag
 	ld a, c
 	and a
 	jr nz, .trainerAlreadyFought
@@ -10173,6 +10172,7 @@
 	dw ElevatorText                         ; id = 41
 	dw PokemonStuffText                     ; id = 42
 
+
 SECTION "bank1",ROMX,BANK[$1]
 
 SpriteFacingAndAnimationTable: ; 4000 (1:4000)
@@ -10285,12 +10285,9 @@
 
 INCLUDE "engine/titlescreen.asm"
 
-NintenText: ; 45aa (1:45aa)
-	db "NINTEN@"
+NintenText: db "NINTEN@"
+SonyText:   db "SONY@"
 
-SonyText: ; 45b1 (1:45b1)
-	db "SONY@"
-
 ; loads pokemon data from one of multiple sources to $cf98
 ; loads base stats to $d0b8
 ; INPUT:
@@ -10541,12 +10538,13 @@
 	jr nz, .waitLoop
 	ret
 
-PrintWaitingText: ; 4c05 (1:4c05)
-	FuncCoord 3, 10 ; $c46b
+
+PrintWaitingText:
+	FuncCoord 3, 10
 	ld hl, Coord
 	ld b, $1
 	ld c, $b
-	ld a, [W_ISINBATTLE] ; $d057
+	ld a, [W_ISINBATTLE]
 	and a
 	jr z, .asm_4c17
 	call TextBoxBorder
@@ -10554,16 +10552,17 @@
 .asm_4c17
 	call Func_5ab3
 .asm_4c1a
-	FuncCoord 4, 11 ; $c480
+	FuncCoord 4, 11
 	ld hl, Coord
 	ld de, WaitingText
 	call PlaceString
-	ld c, $32
+	ld c, 50
 	jp DelayFrames
 
-WaitingText: ; 4c28 (1:4c28)
+WaitingText:
 	db "Waiting...!@"
 
+
 _UpdateSprites: ; 4c34 (1:4c34)
 	ld h, $c1
 	inc h
@@ -10594,7 +10593,7 @@
 	jp nz, UpdateNonPlayerSprite
 	jp UpdatePlayerSprite
 
-UpdateNonPlayerSprite: ; 4c5c (1:4c5c)
+UpdateNonPlayerSprite:
 	dec a
 	swap a
 	ld [$ff93], a  ; $10 * sprite#
@@ -10607,36 +10606,46 @@
 .unequal
 	jp Func_4ed1
 
-Func_4c70: ; 4c70 (1:4c70)
+
+Func_4c70:
 	nop
-	ld h, $c1
+
+	ld h, $c100 / $100
 	ld a, [H_CURRENTSPRITEOFFSET]
-	add $0
+	add $c100 % $100
 	ld l, a
+
 	ld a, [hl]
 	and a
 	ret z
+
 	ld a, l
-	add $3
+	add 3
 	ld l, a
+
 	ld a, [hli]
 	call Func_4d72
+
 	ld a, [hli]
-	add $4
+	add 4
 	add b
 	and $f0
 	or c
 	ld [$ff90], a
+
 	ld a, [hli]
 	call Func_4d72
+
 	ld a, [hl]
 	add b
 	and $f0
 	or c
 	ld [$ff91], a
+
 	ld a, l
-	add $7
+	add 7
 	ld l, a
+
 	xor a
 	ld [hld], a
 	ld [hld], a
@@ -10646,31 +10655,36 @@
 	ld [hl], a
 	xor a
 
-Func_4ca5: ; 4ca5 (1:4ca5)
+.loop
 	ld [$ff8f], a
 	swap a
 	ld e, a
 	ld a, [H_CURRENTSPRITEOFFSET]
 	cp e
-	jp z, .asm_4d69
+	jp z, .next
+
 	ld d, h
 	ld a, [de]
 	and a
-	jp z, .asm_4d69
+	jp z, .next
+
 	inc e
 	inc e
 	ld a, [de]
 	inc a
-	jp z, .asm_4d69
+	jp z, .next
+
 	ld a, [H_CURRENTSPRITEOFFSET]
-	add $a
+	add 10
 	ld l, a
 	inc e
+
 	ld a, [de]
 	call Func_4d72
 	inc e
+
 	ld a, [de]
-	add $4
+	add 4
 	add b
 	and $f0
 	or c
@@ -10680,16 +10694,17 @@
 	inc a
 .asm_4cd4
 	ld [$ff90], a
+
 	push af
 	rl c
 	pop af
 	ccf
 	rl c
-	ld b, $7
+	ld b, 7
 	ld a, [hl]
 	and $f
 	jr z, .asm_4ce6
-	ld b, $9
+	ld b, 9
 .asm_4ce6
 	ld a, [$ff90]
 	sub b
@@ -10697,22 +10712,25 @@
 	ld a, b
 	ld [$ff90], a
 	jr c, .asm_4d01
-	ld b, $7
+
+	ld b, 7
 	dec e
 	ld a, [de]
 	inc e
 	and a
 	jr z, .asm_4cfa
-	ld b, $9
+	ld b, 9
 .asm_4cfa
 	ld a, [$ff92]
 	sub b
 	jr z, .asm_4d01
-	jr nc, .asm_4d69
+	jr nc, .next
+
 .asm_4d01
 	inc e
 	inc l
 	ld a, [de]
+
 	push bc
 	call Func_4d72
 	inc e
@@ -10721,6 +10739,7 @@
 	and $f0
 	or c
 	pop bc
+
 	sub [hl]
 	jr nc, .asm_4d14
 	cpl
@@ -10727,16 +10746,17 @@
 	inc a
 .asm_4d14
 	ld [$ff91], a
+
 	push af
 	rl c
 	pop af
 	ccf
 	rl c
-	ld b, $7
+	ld b, 7
 	ld a, [hl]
 	and $f
 	jr z, .asm_4d26
-	ld b, $9
+	ld b, 9
 .asm_4d26
 	ld a, [$ff91]
 	sub b
@@ -10744,18 +10764,19 @@
 	ld a, b
 	ld [$ff91], a
 	jr c, .asm_4d41
-	ld b, $7
+	ld b, 7
 	dec e
 	ld a, [de]
 	inc e
 	and a
 	jr z, .asm_4d3a
-	ld b, $9
+	ld b, 9
 .asm_4d3a
 	ld a, [$ff92]
 	sub b
 	jr z, .asm_4d41
-	jr nc, .asm_4d69
+	jr nc, .next
+
 .asm_4d41
 	ld a, [$ff91]
 	ld b, a
@@ -10763,10 +10784,10 @@
 	inc l
 	cp b
 	jr c, .asm_4d4e
-	ld b, $c
+	ld b, 12
 	jr .asm_4d50
 .asm_4d4e
-	ld b, $3
+	ld b, 3
 .asm_4d50
 	ld a, c
 	and b
@@ -10776,7 +10797,7 @@
 	inc l
 	inc l
 	ld a, [$ff8f]
-	ld de, DiagonalLines ; $4d85
+	ld de, DiagonalLines
 	add a
 	add e
 	ld e, a
@@ -10790,46 +10811,56 @@
 	ld a, [de]
 	or [hl]
 	ld [hl], a
-.asm_4d69
+
+.next
 	ld a, [$ff8f]
 	inc a
 	cp $10
-	jp nz, Func_4ca5
+	jp nz, .loop
 	ret
 
-Func_4d72: ; 4d72 (1:4d72)
+Func_4d72:
 	and a
-	ld b, $0
-	ld c, $0
-	jr z, .asm_4d84
-	ld c, $9
-	cp $ff
-	jr z, .asm_4d83
-	ld c, $7
-	ld a, $0
-.asm_4d83
+	ld b, 0
+	ld c, 0
+	jr z, .done
+	ld c, 9
+	cp -1
+	jr z, .ok
+	ld c, 7
+	ld a, 0
+.ok
 	ld b, a
-.asm_4d84
+.done
 	ret
 
-DiagonalLines: ; 4d85 (1:4d85)
-	INCBIN "gfx/diagonal_lines.2bpp"
+DiagonalLines: INCBIN "gfx/diagonal_lines.2bpp"
 
-Func_4da5: ; 4da5 (1:4da5)
+
+TestBattle:
 	ret
 
-Func_4da6: ; 4da6 (1:4da6)
+.loop
 	call GBPalNormal
-	ld a, $80
+
+	; Don't mess around
+	; with obedience.
+	ld a, %10000000 ; EARTHBADGE
 	ld [W_OBTAINEDBADGES], a
+
 	ld hl, W_FLAGS_D733
 	set 0, [hl]
+
+	; Reset the party.
 	ld hl, W_NUMINPARTY
 	xor a
 	ld [hli], a
 	dec a
 	ld [hl], a
-	ld a, $1
+
+	; Give the player a
+	; level 20 Rhydon.
+	ld a, RHYDON
 	ld [$cf91], a
 	ld a, 20
 	ld [W_CURENEMYLVL], a
@@ -10837,17 +10868,26 @@
 	ld [$cc49], a
 	ld [W_CURMAP], a
 	call AddPokemonToParty
+
+	; Fight against a
+	; level 20 Rhydon.
 	ld a, RHYDON
 	ld [W_CUROPPONENT], a
-	ld a, $2c
+
+	ld a, $2c ; PREDEF_BATTLE
 	call Predef
-	ld a, $1
+
+	; When the battle ends,
+	; do it all again.
+	ld a, 1
 	ld [$cfcb], a
 	ld [H_AUTOBGTRANSFERENABLED], a
-	jr Func_4da6
+	jr .loop
 
-PickupItem: ; 4de1 (1:4de1)
+
+PickupItem:
 	call EnableAutoTextBoxDrawing
+
 	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
 	ld b, a
 	ld hl, W_MISSABLEOBJECTLIST
@@ -10859,44 +10899,49 @@
 	jr z, .isMissable
 	inc hl
 	jr .missableObjectsListLoop
+
 .isMissable
 	ld a, [hl]
 	ld [$ffdb], a
+
 	ld hl, W_MAPSPRITEEXTRADATA
 	ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
 	dec a
 	add a
-	ld d, $0
+	ld d, 0
 	ld e, a
-	add hl, de        ; seek to item data of found item
-	ld a, [hl]        ; read Item type
-	ld b, a
-	ld c, 1          ; quantity is 1
+	add hl, de
+	ld a, [hl]
+	ld b, a ; item
+	ld c, 1 ; quantity
 	call GiveItem
 	jr nc, .BagFull
+
 	ld a, [$ffdb]
 	ld [$cc4d], a
-	ld a, $11
-	call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
-	ld a, $1
+	ld a, $11 ; RemoveMissableObject
+	call Predef
+	ld a, 1
 	ld [$cc3c], a
 	ld hl, FoundItemText
-	jr .printText
+	jr .print
+
 .BagFull
 	ld hl, NoMoreRoomForItemText
-.printText
+.print
 	call PrintText
 	ret
 
-FoundItemText: ; 4e26 (1:4e26)
+FoundItemText:
 	TX_FAR _FoundItemText
 	db $0B
 	db "@"
 
-NoMoreRoomForItemText: ; 4e2c (1:4e2c)
+NoMoreRoomForItemText:
 	TX_FAR _NoMoreRoomForItemText
 	db "@"
 
+
 UpdatePlayerSprite: ; 4e31 (1:4e31)
 	ld a, [wSpriteStateData2]
 	and a
@@ -13200,9 +13245,9 @@
 
 SECTION "bank3",ROMX,BANK[$3]
 
-_GetJoypadState: ; c000 (3:4000)
+_GetJoypadState::
 	ld a, [H_JOYPADSTATE]
-	cp A_BUTTON | B_BUTTON | SELECT | START ; soft reset sequence
+	cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
 	jp z, HandleJoypadResetButtons
 	ld b, a
 	ld a, [H_OLDPRESSEDBUTTONS]
@@ -14436,8 +14481,8 @@
 	ld c, a
 	ld b, $1
 	ld hl, W_TOWNVISITEDFLAG   ; mark town as visited (for flying)
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 .notInTown
 	ld hl, MapHSPointers
 	ld a, [W_CURMAP] ; $d35e
@@ -14519,7 +14564,7 @@
 	ld a, [$d048]
 	ld c, a
 	ld b, $1
-	call HandleBitArray2 ; set flag iff Item is hidden
+	call MissableObjectFlagAction ; set flag iff Item is hidden
 .asm_f19d
 	ld hl, $d048
 	inc [hl]
@@ -14544,7 +14589,7 @@
 	ld c, a
 	ld b, $2
 	ld hl, W_MISSABLEOBJECTFLAGS
-	call HandleBitArray2
+	call MissableObjectFlagAction
 	ld a, c
 	and a
 	jr nz, .hidden
@@ -14561,7 +14606,7 @@
 	ld a, [$cc4d]
 	ld c, a
 	ld b, $0
-	call HandleBitArray2   ; reset "removed" flag
+	call MissableObjectFlagAction   ; reset "removed" flag
 	jp UpdateSprites
 
 ; removes missable object (items, leg. pokemon, etc.) from the map
@@ -14571,53 +14616,58 @@
 	ld a, [$cc4d]
 	ld c, a
 	ld b, $1
-	call HandleBitArray2   ; set "removed" flag
+	call MissableObjectFlagAction   ; set "removed" flag
 	jp UpdateSprites
 
-; functionally identical to _HandleBitArray, but with less optimized instructions
-; executes operations on a field of bits
-; b = 0 -> reset bit
-; b = 1 -> set bit
-; b = 2 -> read bit (into c and z-flag)
-; hl: base address
-; c: bit index
-HandleBitArray2: ; f1e6 (3:71e6)
+MissableObjectFlagAction:
+; identical to FlagAction
+
 	push hl
 	push de
 	push bc
+
+	; bit
 	ld a, c
 	ld d, a
-	and $7
-	ld e, a        ; store bit offset in e
+	and 7
+	ld e, a
+
+	; byte
 	ld a, d
 	srl a
 	srl a
-	srl a          ; calc byte offset
+	srl a
 	add l
 	ld l, a
-	jr nc, .noCarry
+	jr nc, .ok
 	inc h
-.noCarry
+.ok
+
+	; d = 1 << e (bitmask)
 	inc e
-	ld d, $1
-.shiftLeftLoop     ; d = 1 << e, bitmask for the used bit
+	ld d, 1
+.shift
 	dec e
-	jr z, .operationSelect
+	jr z, .shifted
 	sla d
-	jr .shiftLeftLoop
-.operationSelect
+	jr .shift
+.shifted
+
 	ld a, b
 	and a
-	jr z, .resetBit
-	cp $2
-	jr z, .readBit
-	ld a, [hl] ; set bit
+	jr z, .reset
+	cp 2
+	jr z, .read
+
+.set
+	ld a, [hl]
 	ld b, a
 	ld a, d
 	or b
 	ld [hl], a
 	jr .done
-.resetBit
+
+.reset
 	ld a, [hl]
 	ld b, a
 	ld a, d
@@ -14625,11 +14675,13 @@
 	and b
 	ld [hl], a
 	jr .done
-.readBit
+
+.read
 	ld a, [hl]
 	ld b, a
 	ld a, d
 	and b
+
 .done
 	pop bc
 	pop de
@@ -14831,7 +14883,7 @@
 	ld c, a
 	ld b, $2
 	ld hl, wPokedexOwned ; $d2f7
-	call _HandleBitArray
+	call FlagAction
 	ld a, c
 	ld [$d153], a
 	ld a, [$d11e]
@@ -14839,10 +14891,10 @@
 	ld c, a
 	ld b, $1
 	push bc
-	call _HandleBitArray
+	call FlagAction
 	pop bc
 	ld hl, wPokedexSeen ; $d30a
-	call _HandleBitArray
+	call FlagAction
 	pop hl
 	push hl
 	ld a, [W_ISINBATTLE] ; $d057
@@ -15069,10 +15121,10 @@
 	ld b, $1
 	ld hl, wPokedexOwned
 	push bc
-	call _HandleBitArray ; add to owned pokemon
+	call FlagAction ; add to owned pokemon
 	pop bc
 	ld hl, wPokedexSeen
-	call _HandleBitArray ; add to seen pokemon
+	call FlagAction ; add to seen pokemon
 	and a
 	ret                  ; return success
 
@@ -15249,52 +15301,63 @@
 	and a
 	ret
 
-; predef $10
-; executes operations on a field of bits
-; b = 0 -> reset bit
-; b = 1 -> set bit
-; b = 2 -> read bit (into c and z-flag)
-; hl: base address
-; c: bit index
-HandleBitArray: ; f666 (3:7666)
+
+FlagActionPredef:
 	call GetPredefRegisters
 
-_HandleBitArray: ; f669 (3:7669)
+FlagAction:
+; Perform action b on bit c
+; in the bitfield at hl.
+;  0: reset
+;  1: set
+;  2: read
+; Return the result in c.
+
 	push hl
 	push de
 	push bc
+
+	; bit
 	ld a, c
 	ld d, a
-	and $7
-	ld e, a        ; store bit offset in e
+	and 7
+	ld e, a
+
+	; byte
 	ld a, d
 	srl a
 	srl a
-	srl a          ; calc byte offset
+	srl a
 	add l
 	ld l, a
-	jr nc, .noCarry
+	jr nc, .ok
 	inc h
-.noCarry
+.ok
+
+	; d = 1 << e (bitmask)
 	inc e
-	ld d, $1
-.shiftLeftLoop     ; d = 1 << e, bitmask for the used bit
+	ld d, 1
+.shift
 	dec e
-	jr z, .operationSelect
+	jr z, .shifted
 	sla d
-	jr .shiftLeftLoop
-.operationSelect
+	jr .shift
+.shifted
+
 	ld a, b
 	and a
-	jr z, .resetBit
-	cp $2
-	jr z, .readBit
-	ld b, [hl] ; set bit
+	jr z, .reset
+	cp 2
+	jr z, .read
+
+.set
+	ld b, [hl]
 	ld a, d
 	or b
 	ld [hl], a
 	jr .done
-.resetBit
+
+.reset
 	ld b, [hl]
 	ld a, d
 	xor $ff
@@ -15301,7 +15364,8 @@
 	and b
 	ld [hl], a
 	jr .done
-.readBit
+
+.read
 	ld b, [hl]
 	ld a, d
 	and b
@@ -15312,43 +15376,55 @@
 	ld c, a
 	ret
 
-HealParty: ; f6a5 (3:76a5)
+
+HealParty:
+; Restore HP and PP.
+
 	ld hl, W_PARTYMON1
 	ld de, W_PARTYMON1_HP
-.HealPokemon: ; f6ab (3:76ab)
+.healmon
 	ld a, [hli]
 	cp $ff
-	jr z, .DoneHealing ; End if there's no Pokémon
+	jr z, .done
+
 	push hl
 	push de
-	ld hl, $0003 ; Status offset
+
+	ld hl, $0003 ; status
 	add hl, de
 	xor a
-	ld [hl], a ; Clean status conditions
+	ld [hl], a
+
 	push de
 	ld b, $4 ; A Pokémon has 4 moves
-.RestorePP: ; f6bb (3:76bb)
-	ld hl, $0007 ; Move offset
+.pp
+	ld hl, $0007 ; moves
 	add hl, de
+
 	ld a, [hl]
 	and a
-	jr z, .HealNext ; Skip if there's no move here
+	jr z, .nextmove
+
 	dec a
-	ld hl, $001c ; PP offset
+	ld hl, $001c ; pp
 	add hl, de
+
 	push hl
 	push de
 	push bc
+
 	ld hl, Moves
 	ld bc, $0006
 	call AddNTimes
 	ld de, $cd6d
 	ld a, BANK(Moves)
-	call FarCopyData ; copy move header to memory
-	ld a, [$cd72] ; get default PP
+	call FarCopyData
+	ld a, [$cd72] ; default pp
+
 	pop bc
 	pop de
 	pop hl
+
 	inc de
 	push bc
 	ld b, a
@@ -15357,21 +15433,25 @@
 	add b
 	ld [hl], a
 	pop bc
-.HealNext: ; f6eb (3:76eb)
+
+.nextmove
 	dec b
-	jr nz, .RestorePP ; Continue if there's still moves
+	jr nz, .pp
 	pop de
-	ld hl, $0021 ; Max HP offset
+
+	ld hl, $0021 ; max hp - cur hp
 	add hl, de
 	ld a, [hli]
 	ld [de], a
 	inc de
 	ld a, [hl]
-	ld [de], a ; Restore full HP
+	ld [de], a
+
 	pop de
 	pop hl
+
 	push hl
-	ld bc, $002c
+	ld bc, $002c ; next mon
 	ld h, d
 	ld l, e
 	add hl, bc
@@ -15378,14 +15458,16 @@
 	ld d, h
 	ld e, l
 	pop hl
-	jr .HealPokemon ; Next Pokémon
-.DoneHealing
+	jr .healmon
+
+.done
 	xor a
 	ld [wWhichPokemon], a
 	ld [$d11e], a
+
 	ld a, [W_NUMINPARTY]
 	ld b, a
-.restoreBonusPPLoop ; loop to restore bonus PP from PP Ups
+.ppup
 	push bc
 	call RestoreBonusPP
 	pop bc
@@ -15392,9 +15474,10 @@
 	ld hl, wWhichPokemon
 	inc [hl]
 	dec b
-	jr nz,.restoreBonusPPLoop
+	jr nz, .ppup
 	ret
 
+
 ; predef $9
 ; predef $a
 ; predef $d
@@ -15603,50 +15686,63 @@
 .asm_f84f
 	ret
 
-InitializePlayerData: ; f850 (3:7850)
+
+InitializePlayerData:
+
 	call Random
 	ld a, [hRandomSub]
-	ld [wPlayerID], a          ; set player trainer id
+	ld [wPlayerID], a
+
 	call Random
 	ld a, [hRandomAdd]
 	ld [wPlayerID + 1], a
+
 	ld a, $ff
 	ld [$d71b], a                 ; XXX what's this?
-	ld hl, W_NUMINPARTY ; $d163
-	call InitializeEmptyList      ; no party mons
-	ld hl, W_NUMINBOX ; $da80
-	call InitializeEmptyList      ; no boxed mons
-	ld hl, wNumBagItems ; $d31d
-	call InitializeEmptyList      ; no items
-	ld hl, wNumBoxItems ; $d53a
-	call InitializeEmptyList      ; no boxed items
-	ld hl, wPlayerMoney + 1 ; $d348
-	ld a, $30
-	ld [hld], a                   ; set money to 00 30 00 (3000)
+
+	ld hl, W_NUMINPARTY
+	call InitializeEmptyList
+	ld hl, W_NUMINBOX
+	call InitializeEmptyList
+	ld hl, wNumBagItems
+	call InitializeEmptyList
+	ld hl, wNumBoxItems
+	call InitializeEmptyList
+
+START_MONEY EQU $3000
+	ld hl, wPlayerMoney + 1
+	ld a, START_MONEY / $100
+	ld [hld], a
 	xor a
 	ld [hli], a
 	inc hl
 	ld [hl], a
-	ld [$cc49], a                 ; XXX what's this?
+
+	ld [$cc49], a
+
 	ld hl, W_OBTAINEDBADGES
-	ld [hli], a                   ; no badges obtained
-	ld [hl], a                    ; XXX what's this?
-	ld hl, wPlayerCoins ; $d5a4
-	ld [hli], a                   ; no coins
+	ld [hli], a
+
 	ld [hl], a
-	ld hl, W_GAMEPROGRESSFLAGS ; $d5f0
+
+	ld hl, wPlayerCoins
+	ld [hli], a
+	ld [hl], a
+
+	ld hl, W_GAMEPROGRESSFLAGS
 	ld bc, $c8
-	call FillMemory               ; clear all game progress flags
+	call FillMemory ; clear all game progress flags
+
 	jp InitializeMissableObjectsFlags
 
-; writes two bytes $00 $ff to hl
-InitializeEmptyList: ; f8a0 (3:78a0)
-	xor a
+InitializeEmptyList:
+	xor a ; count
 	ld [hli], a
-	dec a
+	dec a ; terminator
 	ld [hl], a
 	ret
 
+
 IsItemInBag_: ; f8a5 (3:78a5)
 	call GetPredefRegisters
 	ld hl, wNumBagItems ; $d31d
@@ -16595,13 +16691,12 @@
 INCLUDE "data/cries.asm"
 INCLUDE "engine/battle/e.asm"
 
-; tiles for gameboy and link cable graphics used for trading sequence animation
 TradingAnimationGraphics:
 	INCBIN "gfx/game_boy.norepeat.2bpp"
 	INCBIN "gfx/link_cable.2bpp"
 
-; 4 tiles for actual wire transfer animation (pokeball wandering inside wire)
 TradingAnimationGraphics2:
+; Pokeball traveling through the link cable.
 	INCBIN "gfx/trade2.2bpp"
 
 INCLUDE "engine/evos_moves.asm"
@@ -16942,8 +17037,7 @@
 INCLUDE "data/mapHeaders/safarizonesecrethouse.asm"
 INCLUDE "scripts/safarizonesecrethouse.asm"
 INCLUDE "data/mapObjects/safarizonesecrethouse.asm"
-SafariZoneSecretHouseBlocks:
-	INCBIN "maps/safarizonesecrethouse.blk"
+SafariZoneSecretHouseBlocks: INCBIN "maps/safarizonesecrethouse.blk"
 
 
 SECTION "bank13",ROMX,BANK[$13]
--- a/scripts/cinnabargym.asm
+++ b/scripts/cinnabargym.asm
@@ -87,8 +87,8 @@
 	jp DisplayTextID
 
 CinnabarGymScript_757f1: ; 757f1 (1d:57f1)
-	ld a, $10
-	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	jp Predef
 
 CinnabarGymScript2: ; 757f6 (1d:57f6)
 	ld a, [$d057]
--- a/scripts/route23.asm
+++ b/scripts/route23.asm
@@ -198,8 +198,8 @@
 	ld c, a
 	ld b, $2
 	ld hl, W_OBTAINEDBADGES
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld a, c
 	and a
 	jr nz, .asm_5136e
@@ -216,8 +216,8 @@
 	ld c, a
 	ld b, $1
 	ld hl, $d7ed
-	ld a, $10
-	call Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+	ld a, $10 ; FlagActionPredef
+	call Predef
 	ld a, $2
 	ld [W_ROUTE23CURSCRIPT], a
 	ret