ref: b1cb3788938fa981e65619f022a41f1c1d91ae3b
parent: ef9e59101e10aed82184bd2fd063b1109e2e4f6a
author: dannye <corrnondacqb@yahoo.com>
date: Mon Jul 13 23:46:23 EDT 2015
Comment naming screen also use more joypad constants
--- a/engine/battle/end_of_battle.asm
+++ b/engine/battle/end_of_battle.asm
@@ -41,7 +41,7 @@
call PrintText
.evolution
xor a
- ld [wccd4], a
+ ld [wForceEvolution], a
predef EvolutionAfterBattle
.resetVariables
xor a
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -816,7 +816,7 @@
dec a
ld [wWhichPokemon], a
ld a, $1
- ld [wccd4], a
+ ld [wForceEvolution], a
ld a, [wTradingWhichEnemyMon]
ld hl, wEnemyPartyMons
ld b, 0
--- a/engine/evolution.asm
+++ b/engine/evolution.asm
@@ -27,7 +27,7 @@
ld a, [wHPBarMaxHP + 1]
ld [wcf91], a
ld [wd0b5], a
- call Func_7beb9
+ call Evolution_LoadPic
ld de, vFrontPic
ld hl, vBackPic
ld bc, 7 * 7
@@ -35,7 +35,7 @@
ld a, [wHPBarMaxHP]
ld [wcf91], a
ld [wd0b5], a
- call Func_7beb9
+ call Evolution_LoadPic
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [wHPBarMaxHP]
@@ -51,8 +51,8 @@
ld bc, $110
.asm_7be63
push bc
- call Func_7befa
- jr c, .asm_7bea9
+ call Evolution_CheckForCancel
+ jr c, .evolutionCancelled
call Func_7bec2
pop bc
inc b
@@ -65,7 +65,7 @@
ld [wHPBarOldHP], a
call Func_7bed6
ld a, [wHPBarMaxHP + 1]
-.asm_7be81
+.afterCancellation
ld [wcf1d], a
ld a, $ff
ld [wc0ee], a
@@ -86,18 +86,18 @@
ret z
scf
ret
-.asm_7bea9
+.evolutionCancelled
pop bc
ld a, $1
ld [wHPBarOldHP + 1], a
ld a, [wHPBarMaxHP]
- jr .asm_7be81
+ jr .afterCancellation
EvolutionSetWholeScreenPalette: ; 7beb4 (1e:7eb4)
ld b, $b
jp GoPAL_SET
-Func_7beb9: ; 7beb9 (1e:7eb9)
+Evolution_LoadPic: ; 7beb9 (1e:7eb9)
call GetMonHeader
hlCoord 7, 2
jp LoadFlippedFrontSpriteByMonIndex
@@ -138,22 +138,22 @@
pop bc
ret
-Func_7befa: ; 7befa (1e:7efa)
+Evolution_CheckForCancel: ; 7befa (1e:7efa)
call DelayFrame
push bc
call JoypadLowSensitivity
ld a, [hJoy5]
pop bc
- and $2
- jr nz, .asm_7bf0d
-.asm_7bf08
+ and B_BUTTON
+ jr nz, .pressedB
+.notAllowedToCancel
dec c
- jr nz, Func_7befa
+ jr nz, Evolution_CheckForCancel
and a
ret
-.asm_7bf0d
- ld a, [wccd4]
+.pressedB
+ ld a, [wForceEvolution]
and a
- jr nz, .asm_7bf08
+ jr nz, .notAllowedToCancel
scf
ret
--- a/engine/evolve_trade.asm
+++ b/engine/evolve_trade.asm
@@ -35,7 +35,7 @@
dec a
ld [wWhichPokemon], a
ld a, $1
- ld [wccd4], a
+ ld [wForceEvolution], a
ld a, LINK_STATE_TRADING
ld [wLinkState], a
callab TryEvolvingMon
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -76,7 +76,7 @@
ld a, b
cp EV_ITEM
jr z, .checkItemEvo
- ld a, [wccd4]
+ ld a, [wForceEvolution]
and a
jr nz, Evolution_PartyMonLoop
ld a, b
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -643,7 +643,7 @@
ld a,b
ld [wcf91],a
ld a,$01
- ld [wccd4],a
+ ld [wForceEvolution],a
ld a,(SFX_02_3e - SFX_Headers_02) / 3
call PlaySoundWaitForCurrent
call WaitForSoundToFinish
@@ -1275,7 +1275,7 @@
ld [wcc49],a
predef LearnMoveFromLevelUp ; learn level up move, if any
xor a
- ld [wccd4],a
+ ld [wForceEvolution],a
callab TryEvolvingMon ; evolve pokemon, if appropriate
ld a,$01
ld [wUpdateSpritesEnabled],a
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -90,7 +90,7 @@
call ContinueGame
ld hl,wd126
set 5,[hl]
-.next6
+.inputLoop
xor a
ld [hJoyPressed],a
ld [hJoyReleased],a
@@ -98,11 +98,11 @@
call Joypad
ld a,[hJoyHeld]
bit 0,a
- jr nz,.next5
+ jr nz,.pressedA
bit 1,a
- jp nz,.next0
- jr .next6
-.next5
+ jp nz,.next0 ; pressedB
+ jr .inputLoop
+.pressedA
call GBPalWhiteOutWithDelay3
call ClearScreen
ld a,4
@@ -121,6 +121,7 @@
set 2,[hl] ; fly warp or dungeon warp
call SpecialWarpIn
jp SpecialEnterMap
+
Func_5bff: ; 5bff (1:5bff)
ld a,1
ld [wd358],a
@@ -468,7 +469,7 @@
call JoypadLowSensitivity
ld a,[hJoy5]
ld b,a
- and a,%11111011 ; any key besides select pressed?
+ and a,A_BUTTON | B_BUTTON | START | D_RIGHT | D_LEFT | D_UP | D_DOWN ; any key besides select pressed?
jr z,.getJoypadStateLoop
bit 1,b ; B button pressed?
jr nz,.exitMenu
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -21,7 +21,7 @@
pop hl
ld a, [wCurrentMenuItem]
and a
- jr nz, .asm_654c
+ jr nz, .declinedNickname
ld a, [wUpdateSpritesEnabled]
push af
xor a
@@ -32,9 +32,9 @@
call DisplayNamingScreen
ld a, [W_ISINBATTLE]
and a
- jr nz, .asm_653e
+ jr nz, .inBattle
call ReloadMapSpriteTilePatterns
-.asm_653e
+.inBattle
call LoadScreenTilesFromBuffer1
pop hl
pop af
@@ -42,11 +42,11 @@
ld a, [wcf4b]
cp $50
ret nz
-.asm_654c
+.declinedNickname
ld d, h
ld e, l
ld hl, wcd6d
- ld bc, $000b
+ ld bc, 11
jp CopyData
DoYouWantToNicknameText: ; 0x6557
@@ -65,7 +65,7 @@
call LoadGBPal
ld a, [wcf4b]
cp $50
- jr z, .asm_6594
+ jr z, .playerCancelled
ld hl, wPartyMonNicks
ld bc, $b
ld a, [wWhichPokemon]
@@ -73,11 +73,11 @@
ld e, l
ld d, h
ld hl, wHPBarMaxHP
- ld bc, $b
+ ld bc, 11
call CopyData
and a
ret
-.asm_6594
+.playerCancelled
scf
ret
@@ -115,17 +115,17 @@
ld [hli], a
ld [hli], a
ld [wAnimCounter], a
-.asm_65ed
+.selectReturnPoint
call PrintAlphabet
call GBPalNormal
-.asm_65f3
+.ABStartReturnPoint
ld a, [wHPBarMaxHP + 1]
and a
- jr nz, .asm_662d
- call Func_680e
-.asm_65fc
+ jr nz, .submitNickname
+ call PrintNicknameAndUnderscores
+.dPadReturnPoint
call PlaceMenuCursor
-.asm_65ff
+.inputLoop
ld a, [wCurrentMenuItem]
push af
callba AnimatePartyMon_ForceSpeed1
@@ -134,17 +134,17 @@
call JoypadLowSensitivity
ld a, [hJoyPressed]
and a
- jr z, .asm_65ff
- ld hl, .unknownPointerTable_665e
-.asm_661a
+ jr z, .inputLoop
+ ld hl, .namingScreenButtonFunctions
+.checkForPressedButton
sla a
- jr c, .asm_6624
+ jr c, .foundPressedButton
inc hl
inc hl
inc hl
inc hl
- jr .asm_661a
-.asm_6624
+ jr .checkForPressedButton
+.foundPressedButton
ld a, [hli]
ld e, a
ld a, [hli]
@@ -154,10 +154,11 @@
ld l, a
push de
jp [hl]
-.asm_662d
+
+.submitNickname
pop de
ld hl, wcf4b
- ld bc, $b
+ ld bc, 11
call CopyData
call GBPalWhiteOutWithDelay3
call ClearScreen
@@ -175,52 +176,54 @@
ld b, BANK(LoadHudTilePatterns)
jp Bankswitch
-.unknownPointerTable_665e: ; 665e (1:665e)
- dw .asm_65fc
- dw .asm_673e
- dw .asm_65fc
- dw .asm_672c
- dw .asm_65fc
- dw .asm_6718
- dw .asm_65fc
- dw .asm_6702
- dw .asm_65f3
- dw .asm_668c
- dw .asm_65ed
- dw .asm_6683
- dw .asm_65f3
- dw .deleteLetter
- dw .asm_65f3
- dw .asm_6692
+.namingScreenButtonFunctions
+ dw .dPadReturnPoint
+ dw .pressedDown
+ dw .dPadReturnPoint
+ dw .pressedUp
+ dw .dPadReturnPoint
+ dw .pressedLeft
+ dw .dPadReturnPoint
+ dw .pressedRight
+ dw .ABStartReturnPoint
+ dw .pressedStart
+ dw .selectReturnPoint
+ dw .pressedSelect
+ dw .ABStartReturnPoint
+ dw .pressedB
+ dw .ABStartReturnPoint
+ dw .pressedA
-.asm_667e
+.pressedA_changedCase
pop de
- ld de, .asm_65ed
+ ld de, .selectReturnPoint
push de
-.asm_6683
+.pressedSelect
ld a, [wHPBarOldHP]
xor $1
ld [wHPBarOldHP], a
ret
-.asm_668c
+
+.pressedStart
ld a, $1
ld [wHPBarMaxHP + 1], a
ret
-.asm_6692
+
+.pressedA
ld a, [wCurrentMenuItem]
- cp $5
- jr nz, .asm_66a0
+ cp $5 ; "ED" row
+ jr nz, .didNotPressED
ld a, [wTopMenuItemX]
- cp $11
- jr z, .asm_668c
-.asm_66a0
+ cp $11 ; "ED" column
+ jr z, .pressedStart
+.didNotPressED
ld a, [wCurrentMenuItem]
- cp $6
- jr nz, .asm_66ae
+ cp $6 ; case swtich row
+ jr nz, .didNotPressCaseSwtich
ld a, [wTopMenuItemX]
- cp $1
- jr z, .asm_667e
-.asm_66ae
+ cp $1 ; case switch column
+ jr z, .pressedA_changedCase
+.didNotPressCaseSwtich
ld hl, wMenuCursorLocation
ld a, [hli]
ld h, [hl]
@@ -232,10 +235,10 @@
ld a, [wHPBarNewHP]
cp $e5
ld de, Dakutens
- jr z, .asm_66e3
+ jr z, .dakutensAndHandakutens
cp $e4
ld de, Handakutens
- jr z, .asm_66e3
+ jr z, .dakutensAndHandakutens
ld a, [wNamingScreenType]
cp NAME_MON_SCREEN
jr nc, .checkMonNameLength
@@ -248,9 +251,10 @@
.checkNameLength
jr c, .addLetter
ret
-.asm_66e3
+
+.dakutensAndHandakutens
push hl
- call Func_6871
+ call DakutensAndHandakutens
pop hl
ret nc
dec hl
@@ -261,7 +265,7 @@
ld a, (SFX_02_40 - SFX_Headers_02) / 3
call PlaySound
ret
-.deleteLetter
+.pressedB
ld a, [wHPBarMaxHP]
and a
ret z
@@ -269,55 +273,55 @@
dec hl
ld [hl], $50
ret
-.asm_6702
+.pressedRight
ld a, [wCurrentMenuItem]
cp $6
- ret z
+ ret z ; can't scroll right on bottom row
ld a, [wTopMenuItemX]
- cp $11
- jp z, .asm_6714
+ cp $11 ; max
+ jp z, .wrapToFirstColumn
inc a
inc a
- jr .asm_6755
-.asm_6714
+ jr .done
+.wrapToFirstColumn
ld a, $1
- jr .asm_6755
-.asm_6718
+ jr .done
+.pressedLeft
ld a, [wCurrentMenuItem]
cp $6
- ret z
+ ret z ; can't scroll right on bottom row
ld a, [wTopMenuItemX]
dec a
- jp z, .asm_6728
+ jp z, .wrapToLastColumn
dec a
- jr .asm_6755
-.asm_6728
- ld a, $11
- jr .asm_6755
-.asm_672c
+ jr .done
+.wrapToLastColumn
+ ld a, $11 ; max
+ jr .done
+.pressedUp
ld a, [wCurrentMenuItem]
dec a
ld [wCurrentMenuItem], a
and a
ret nz
- ld a, $6
+ ld a, $6 ; wrap to bottom row
ld [wCurrentMenuItem], a
- ld a, $1
- jr .asm_6755
-.asm_673e
+ ld a, $1 ; force left column
+ jr .done
+.pressedDown
ld a, [wCurrentMenuItem]
inc a
ld [wCurrentMenuItem], a
cp $7
- jr nz, .asm_6750
+ jr nz, .wrapToTopRow
ld a, $1
ld [wCurrentMenuItem], a
- jr .asm_6755
-.asm_6750
+ jr .done
+.wrapToTopRow
cp $6
ret nz
ld a, $1
-.asm_6755
+.done
ld [wTopMenuItemX], a
jp EraseMenuCursor
@@ -336,25 +340,25 @@
ld a, [wHPBarOldHP]
and a
ld de, LowerCaseAlphabet
- jr nz, .asm_677e
+ jr nz, .lowercase
ld de, UpperCaseAlphabet
-.asm_677e
+.lowercase
hlCoord 2, 5
- ld bc, $509
-.asm_6784
+ ld bc, $509 ; 5 rows, 9 columns
+.outerLoop
push bc
-.asm_6785
+.innerLoop
ld a, [de]
ld [hli], a
inc hl
inc de
dec c
- jr nz, .asm_6785
- ld bc, $16
+ jr nz, .innerLoop
+ ld bc, SCREEN_WIDTH + 2
add hl, bc
pop bc
dec b
- jr nz, .asm_6784
+ jr nz, .outerLoop
call PlaceString
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
@@ -366,7 +370,7 @@
UpperCaseAlphabet: ; 67d6 (1:67d6)
db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/",$f2,",¥lower case@"
-Func_680e: ; 680e (1:680e)
+PrintNicknameAndUnderscores: ; 680e (1:680e)
call CalcStringLength
ld a, c
ld [wHPBarMaxHP], a
@@ -379,46 +383,48 @@
hlCoord 10, 3
ld a, [wNamingScreenType]
cp NAME_MON_SCREEN
- jr nc, .asm_6835
- ld b, $7
- jr .asm_6837
-.asm_6835
- ld b, $a
-.asm_6837
- ld a, $76
-.asm_6839
+ jr nc, .pokemon1
+ ld b, 7 ; player or rival max name length
+ jr .playerOrRival1
+.pokemon1
+ ld b, 10 ; pokemon max name length
+.playerOrRival1
+ ld a, $76 ; underscore tile id
+.placeUnderscoreLoop
ld [hli], a
dec b
- jr nz, .asm_6839
+ jr nz, .placeUnderscoreLoop
ld a, [wNamingScreenType]
cp NAME_MON_SCREEN
ld a, [wHPBarMaxHP]
- jr nc, .asm_684b
- cp $7
- jr .asm_684d
-.asm_684b
- cp $a
-.asm_684d
- jr nz, .asm_6867
+ jr nc, .pokemon2
+ cp 7 ; player or rival max name length
+ jr .playerOrRival2
+.pokemon2
+ cp 10 ; pokemon max name length
+.playerOrRival2
+ jr nz, .emptySpacesRemaining
+ ; when all spaces are filled, force the cursor onto the ED tile
call EraseMenuCursor
- ld a, $11
+ ld a, $11 ; "ED" x coord
ld [wTopMenuItemX], a
- ld a, $5
+ ld a, $5 ; "ED" y corrd
ld [wCurrentMenuItem], a
ld a, [wNamingScreenType]
cp NAME_MON_SCREEN
- ld a, $9
- jr nc, .asm_6867
- ld a, $6
-.asm_6867
+ ld a, 9 ; keep the last underscore raised
+ jr nc, .pokemon3
+ ld a, 6 ; keep the last underscore raised
+.pokemon3
+.emptySpacesRemaining
ld c, a
ld b, $0
hlCoord 10, 3
add hl, bc
- ld [hl], $77
+ ld [hl], $77 ; raised underscore tile id
ret
-Func_6871: ; 6871 (1:6871)
+DakutensAndHandakutens: ; 6871 (1:6871)
push de
call CalcStringLength
dec hl
@@ -452,13 +458,13 @@
CalcStringLength: ; 68eb (1:68eb)
ld hl, wcf4b
ld c, $0
-.asm_68f0
+.loop
ld a, [hl]
cp $50
ret z
inc hl
inc c
- jr .asm_68f0
+ jr .loop
PrintNamingText: ; 68f8 (1:68f8)
hlCoord 0, 1
--- a/engine/menu/pokedex.asm
+++ b/engine/menu/pokedex.asm
@@ -554,7 +554,7 @@
.waitForButtonPress
call JoypadLowSensitivity
ld a,[hJoy5]
- and a,%00000011 ; A button and B button
+ and a,A_BUTTON | B_BUTTON
jr z,.waitForButtonPress
pop af
ld [hTilesetType],a
--- a/home/text.asm
+++ b/home/text.asm
@@ -576,7 +576,7 @@
push bc
call Joypad
ld a,[hJoyHeld]
- and a,%00000011 ; A and B buttons
+ and a,A_BUTTON | B_BUTTON
jr nz,.skipDelay
ld c,30
call DelayFrames
@@ -654,7 +654,7 @@
call Joypad
pop de
ld a,[hJoyHeld] ; joypad state
- and a,%00000011 ; is A or B button pressed?
+ and a,A_BUTTON | B_BUTTON
jr nz,.skipDelay ; if so, skip the delay
ld c,10
call DelayFrames
--- a/main.asm
+++ b/main.asm
@@ -3461,7 +3461,7 @@
set 6, [hl] ; indicate that the player has tried pushing
ret z ; the player must try pushing twice before the boulder will move
ld a, [hJoyHeld]
- and $f0
+ and D_RIGHT | D_LEFT | D_UP | D_DOWN
ret z
predef CheckForCollisionWhenPushingBoulder
ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult]
--- a/wram.asm
+++ b/wram.asm
@@ -399,7 +399,8 @@
; overloaded with below labels
wccd3:: ds 1 ; used in battle, pokemon, PC and game corner stuff
-wccd4:: ds 1 ; used in evolving pokemon and has a direct reference for simulated joypad stuff in vermillion and seafoam
+wForceEvolution::
+wccd4:: ds 1 ; has a direct reference for simulated joypad stuff in vermillion and seafoam
; if [ccd5] != 1, the second AI layer is not applied
wAILayer2Encouragement:: ; ccd5