summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-10-11 18:00:03 -0400
committerPikalaxALT <PikalaxALT@gmail.com>2015-10-11 18:00:03 -0400
commit18fb5fc4682a196e80a774af4aa1f68ead8186b9 (patch)
tree2586be36d4160f1d868335e7f974d807a6cdbfac
parent5c181f2d68525ec0ce58dc06accf12d528bcf046 (diff)
more annotations on ModifyPikachuHappiness
-rw-r--r--constants/misc_constants.asm13
-rw-r--r--engine/bank3d/bank3d_battle.asm4
-rw-r--r--engine/bank3d/main.asm158
-rw-r--r--engine/bank3f/main.asm16
-rwxr-xr-xengine/hall_of_fame.asm2
-rw-r--r--engine/menu/bills_pc.asm10
-rwxr-xr-xengine/save.asm2
-rw-r--r--home.asm6
-rw-r--r--macros.asm12
-rwxr-xr-xmain.asm8
-rwxr-xr-xwram.asm4
-rwxr-xr-xyellow/main.asm8
12 files changed, 146 insertions, 97 deletions
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 1c3e07ad..57eca83c 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -196,3 +196,16 @@ LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation
LINK_STATE_BATTLING EQU $04 ; in a link battle
LINK_STATE_RESET EQU $05 ; reset game (unused)
LINK_STATE_TRADING EQU $32 ; in a link trade
+
+const_value set 1
+ const PIKAHAPPY_LEVELUP
+ const PIKAHAPPY_USEDITEM
+ const PIKAHAPPY_3
+ const PIKAHAPPY_GYMLEADER
+ const PIKAHAPPY_USEDTMHM
+ const PIKAHAPPY_WALKING
+ const PIKAHAPPY_DEPOSITED
+ const PIKAHAPPY_FAINTED
+ const PIKAHAPPY_PSNFNT
+ const PIKAHAPPY_10
+ const PIKAHAPPY_11
diff --git a/engine/bank3d/bank3d_battle.asm b/engine/bank3d/bank3d_battle.asm
index 51071db2..5c5acd15 100644
--- a/engine/bank3d/bank3d_battle.asm
+++ b/engine/bank3d/bank3d_battle.asm
@@ -48,10 +48,12 @@ asm_f601d: ; f601d (f:601d)
ld [wEnemyMonPartyPos], a
ld a, $2
ld [W_ISINBATTLE], a
+
+ ; Is this a major story battle?
ld a,[W_LONEATTACKNO]
and a
jp z,InitBattle_Common
- callabd_Func_f430a $4 ; useless since already in bank3d
+ callabd_ModifyPikachuHappiness PIKAHAPPY_GYMLEADER ; useless since already in bank3d
jp InitBattle_Common
InitWildBattle: ; f607c (3d:607c)
diff --git a/engine/bank3d/main.asm b/engine/bank3d/main.asm
index d93f16d2..4c1952f1 100644
--- a/engine/bank3d/main.asm
+++ b/engine/bank3d/main.asm
@@ -53,90 +53,124 @@ Func_f42c2:: ; f42c2 (3d:f42c2)
INCLUDE "engine/battle/decrement_pp.asm"
-Func_f430a:: ; f430a (3d:430a)
- ld a,d
- cp $4
- jr z,.asm_f4320
- cp $6
- jr z,.asm_f4320
+ModifyPikachuHappiness:: ; f430a (3d:430a)
+ ld a, d
+ cp PIKAHAPPY_GYMLEADER
+ jr z, .checkanywhereinparty
+ cp PIKAHAPPY_6
+ jr z, .checkanywhereinparty
push de
- callab Func_fce18
+ callab IsThisPartymonOurPikachu
pop de
ret nc
- jr .asm_f432b
-.asm_f4320
+ jr .proceed
+
+.checkanywhereinparty
push de
- callab Func_fcdb8
+ callab IsPikachuInOurParty
pop de
ret nc
-.asm_f432b
+
+.proceed
push de
- ld e,$0
- ld a,[wd470]
- cp $64
- jr c,.asm_f433b
+ ; Divide [wPikachuHappiness] by 100. Hold the integer part in e.
+ ld e, $0
+ ld a, [wPikachuHappiness]
+ cp 100
+ jr c, .wPikachuHappiness_div_100
inc e
- cp $c8
- jr c,.asm_f433b
+ cp 200
+ jr c, .wPikachuHappiness_div_100
inc e
-.asm_f433b
- ld c,d
+.wPikachuHappiness_div_100
+ ; Get the (d, e) entry from .HappinessChangeTable.
+ ld c, d
dec c
- ld b,$0
- ld hl,Pointer_f4385
- add hl,bc
- add hl,bc
- add hl,bc
- ld d,$0
- add hl,de
- ld a,[hl]
- cp $64
- ld a,[wd470]
- jr nc,.asm_f4357
+ ld b, $0
+ ld hl, .HappinessChangeTable
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ; If [hl] is positive, take min(0xff, [hl] + [wPikachuHappiness]).
+ ; If [hl] is negative, take max(0x00, [hl] + [wPikachuHappiness]).
+ ; Inexplicably, we're using 100 as the threshold for comparison.
+ cp 100
+ ld a, [wPikachuHappiness]
+ jr nc, .negative
add [hl]
- jr nc,.asm_f435b
- ld a,$ff
- jr .asm_f435b
-.asm_f4357
+ jr nc, .okay
+ ld a, -1
+ jr .okay
+
+.negative
add [hl]
- jr c,.asm_f435b
+ jr c, .okay
xor a
-.asm_f435b
- ld [wd470],a
+.okay
+ ld [wPikachuHappiness], a
+
+ ; Restore d and get the d'th entry in .Moods.
pop de
dec d
- ld hl,Pointer_f43a6
- ld e,d
- ld d,$0
- add hl,de
- ld a,[hl]
- ld b,a
+ ld hl, .Moods
+ ld e, d
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld b, a
+ ; Modify Pikachu's mood
cp $80
- jr z,.asm_f4384
- ld a,[wd471]
- jr c,.asm_f437d
+ jr z, .done
+ ld a, [wPikachuMood]
+ jr c, .decreased
cp b
- jr nc,.asm_f4384
- ld a,[wd49c]
+ jr nc, .done
+ ld a, [wd49c]
and a
- jr nz,.asm_f4384
- jr .asm_f4380
-.asm_f437d
+ jr nz, .done
+ jr .update_mood
+
+.decreased
cp b
- jr c,.asm_f4384
-.asm_f4380
- ld a,b
- ld [wd471],a
-.asm_f4384
+ jr c, .done
+.update_mood
+ ld a, b
+ ld [wPikachuMood], a
+.done
ret
-Pointer_f4385:: ; f4385 (3d:4385)
- db $05,$03,$02,$05,$03,$02,$01,$01,$00,$03,$02,$01,$01,$01,$00,$02,$01,$01
- db $fd,$fd,$fb,$ff,$ff,$ff,$fb,$fb,$f6,$fb,$fb,$f6,$f6,$f6,$ec
+.HappinessChangeTable: ; f4385 (3d:4385)
+ ; Increase
+ db 5, 3, 2 ; Gained a level
+ db 5, 3, 2 ; HP restore
+ db 1, 1, 0 ; Unknown (d = 3)
+ db 3, 2, 1 ; Challenged Gym Leader
+ db 1, 1, 0 ; Teach TM/HM
+ db 2, 1, 1 ; Walking around
+ ; Decrease
+ db -3, -3, -5 ; Deposited
+ db -1, -1, -1 ; Fainted in battle
+ db -5, -5, -10 ; Fainted due to Poison outside of battle
+ db -5, -5, -10 ; Unknown (d = 10)
+ db -10, -10, -20 ; Unknown (d = 11)
-Pointer_f43a6:: ; f43a6 (3d:43a6)
- db $8a,$83,$80,$80,$94,$80,$62,$6c,$62,$6c
- db $00
+.Moods: ; f43a6 (3d:43a6)
+ ; Increase
+ db $8a ; Gained a level
+ db $83 ; HP restore
+ db $80 ; Teach TM/HM
+ db $80 ; Challenged Gym Leader
+ db $94 ; Unknown (d = 5)
+ db $80 ; Unknown (d = 6)
+ ; Decrease
+ db $62 ; Deposited
+ db $6c ; Fainted
+ db $62 ; Unknown (d = 9)
+ db $6c ; Unknown (d = 10)
+ db $00 ; Unknown (d = 11)
; f43b1 (3d:43b1)
RedPicBack:: INCBIN "pic/trainer/redb.pic"
diff --git a/engine/bank3f/main.asm b/engine/bank3f/main.asm
index 79994125..86c504f2 100644
--- a/engine/bank3f/main.asm
+++ b/engine/bank3f/main.asm
@@ -10,7 +10,7 @@ Func_fc4dd:: ; fc4dd (3f:44dd)
ld a,[wd430]
bit 7,a
jr nz,.asm_fc4f8
- call Func_fcdb8
+ call IsPikachuInOurParty
jr nc,.asm_fc4f8
ld a,[wWalkBikeSurfState]
and a
@@ -1470,14 +1470,14 @@ Func_fcd83: ; fcd83 (3f:4d83)
Func_fcdad: ; fcdad (3f:4dad)
push bc
push af
- ld a,[wd470]
+ ld a,[wPikachuHappiness]
cp $50
pop bc
ld a,b
pop bc
ret
-Func_fcdb8:: ; fcdb8 (3f:4db8)
+IsPikachuInOurParty:: ; fcdb8 (3f:4db8)
ld hl,wPartySpecies
ld de,wPartyMon1OTID
ld bc,wPartyMonOT
@@ -1547,7 +1547,7 @@ Func_fce0d:: ; fce0d (3f:4e0d)
ld de,wBoxMonOT
jr asm_fce21
-Func_fce18:: ; fce18 (3f:4e18)
+IsThisPartymonOurPikachu:: ; fce18 (3f:4e18)
ld hl,wPartyMon1
ld bc,wPartyMon2 - wPartyMon1
ld de,wPartyMonOT
@@ -1590,12 +1590,12 @@ asm_fce21: ; fce21 (3f:4e21)
Func_fce5a:: ; fce5a (3f:4e5a)
push de
- call Func_fcdb8
+ call IsPikachuInOurParty
pop de
ret nc
ld a,d
cp $80
- ld a,[wd471]
+ ld a,[wPikachuMood]
jr c,.asm_fce6c
cp d
jr c,.asm_fce6e
@@ -1605,7 +1605,7 @@ Func_fce5a:: ; fce5a (3f:4e5a)
ret c
.asm_fce6e
ld a,d
- ld [wd471],a
+ ld [wPikachuMood],a
ret
Func_fce73:: ; fce73 (3f:4e73)
@@ -1619,7 +1619,7 @@ Func_fce73:: ; fce73 (3f:4e73)
cp $ff
jr z,.asm_fcea9
push hl
- call Func_fce18
+ call IsThisPartymonOurPikachu
pop hl
jr nc,.asm_fce9e
ld a,[wWhichPokemon]
diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm
index 71b34dc3..d8ca2d2b 100755
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -156,7 +156,7 @@ HoFDisplayAndRecordMonInfo: ; 7030e (1c:430e)
call HoFDisplayMonInfo
ld a, [wHoFPartyMonIndex]
ld [wWhichPokemon], a
- callab Func_fce18 ; 3f:4e18
+ callab IsThisPartymonOurPikachu ; 3f:4e18
jr nc, .asm_70336
ld e, $22
callab Func_f0000
diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm
index b0fa107e..3f0db4ea 100644
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -228,7 +228,7 @@ BillsPCDeposit: ; 2156d (8:556d)
ld hl, wPartyCount
call DisplayMonListMenu
jp c, BillsPCMenu
- callab Func_fce18
+ callab IsThisPartymonOurPikachu
jr nc, .asm_215ad
call Func_154a
jr z, .asm_215ad
@@ -238,7 +238,7 @@ BillsPCDeposit: ; 2156d (8:556d)
.asm_215ad
call DisplayDepositWithdrawMenu
jp nc, BillsPCMenu
- callab Func_fce18
+ callab IsThisPartymonOurPikachu
jr nc, .asm_215c9
ld e, $1b
callab Func_f0000
@@ -247,7 +247,7 @@ BillsPCDeposit: ; 2156d (8:556d)
ld a, [wcf91]
call PlayCry
.asm_215cf
- callabd_Func_f430a $7
+ callabd_ModifyPikachuHappiness PIKAHAPPY_DEPOSITED
ld a, PARTY_TO_BOX
ld [wMoveMonType], a
call MoveMon
@@ -257,7 +257,7 @@ BillsPCDeposit: ; 2156d (8:556d)
call WaitForSoundToFinish
ld hl, wBoxNumString
ld a, [wCurrentBoxNum]
- and $7f
+ and " "
cp 9
jr c, .singleDigitBoxNum
sub 9
@@ -269,7 +269,7 @@ BillsPCDeposit: ; 2156d (8:556d)
add "1"
.next
ld [hli], a
- ld [hl], $50
+ ld [hl], "@"
ld hl, MonWasStoredText
call PrintText
jp BillsPCMenu
diff --git a/engine/save.asm b/engine/save.asm
index e6369779..a75ec41c 100755
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -248,7 +248,7 @@ SaveSAVtoSRAM2: ; 73b56 (1c:7b56)
ld de, sMainData
ld bc, wPokedexSeenEnd - wPokedexOwned
call CopyData
- ld hl, wd470
+ ld hl, wPikachuHappiness
ld de, sMainData + $179
ld a, [hli]
ld [de], a
diff --git a/home.asm b/home.asm
index 20ffd5c4..c13c2073 100644
--- a/home.asm
+++ b/home.asm
@@ -475,7 +475,7 @@ HandlePartyMenuInput:: ; 1226 (0:1226)
jr nz,.asm_1258
ld a,[wCurrentMenuItem]
ld [wWhichPokemon],a
- callab Func_fce18 ; 3f:4e18
+ callab IsThisPartymonOurPikachu ; 3f:4e18
jr nc,.asm_1258
call Func_154a
jr nz,.asm_128f
@@ -2958,7 +2958,7 @@ IsItemInBag:: ; 3422 (0:3422)
IsSurfingPikachuInParty:: ; 342a (0:342a)
; set bit 6 of wd472 if true
-; also calls Func_3467, which is a bankswitch to Func_fcdb8
+; also calls Func_3467, which is a bankswitch to IsPikachuInOurParty
ld a,[wd472]
and $3f
ld [wd472],a
@@ -3001,7 +3001,7 @@ IsSurfingPikachuInParty:: ; 342a (0:342a)
Func_3467:: ; 3467 (0:3467)
push hl
push bc
- callab Func_fcdb8
+ callab IsPikachuInOurParty
pop bc
pop hl
ret nc
diff --git a/macros.asm b/macros.asm
index 3db547dd..effe098c 100644
--- a/macros.asm
+++ b/macros.asm
@@ -97,16 +97,16 @@ callab: MACRO
call Bankswitch
ENDM
-calladb_Func_f430a: MACRO
- ld hl, Func_f430a
+calladb_ModifyPikachuHappiness: MACRO
+ ld hl, ModifyPikachuHappiness
ld d, \1
- ld b, BANK(Func_f430a)
+ ld b, BANK(ModifyPikachuHappiness)
call Bankswitch
ENDM
-callabd_Func_f430a: MACRO
- ld hl, Func_f430a
- ld b, BANK(Func_f430a)
+callabd_ModifyPikachuHappiness: MACRO
+ ld hl, ModifyPikachuHappiness
+ ld b, BANK(ModifyPikachuHappiness)
ld d, \1
call Bankswitch
ENDM
diff --git a/main.asm b/main.asm
index 8bea15ac..e02b5720 100755
--- a/main.asm
+++ b/main.asm
@@ -2537,11 +2537,11 @@ ApplyOutOfBattlePoisonDamage: ; c3de (3:43de)
ld a, $d0
ld [hSpriteIndexOrTextID], a
call DisplayTextID
- callab Func_fce18
+ callab IsThisPartymonOurPikachu
jr nc, .curMonNotPlayerPikachu
ld e, $3
callab Func_f0000
- callab_Func_f430a_ld_d $9
+ callab_ModifyPikachuHappiness_ld_d PIKAHAPPY_PSNFNT
.curMonNotPlayerPikachu
pop de
pop hl
@@ -2607,9 +2607,9 @@ Func_c4c7: ; c4c7 (3:44c7)
call Random
and $1
jr z, .asm_c4de
- callab_Func_f430a_ld_d $6
+ callab_ModifyPikachuHappiness_ld_d PIKAHAPPY_WALKING
.asm_c4de
- ld hl, wd471
+ ld hl, wPikachuMood
ld a, [hl]
cp $80
jr z, .asm_c4ef
diff --git a/wram.asm b/wram.asm
index f45cfdae..00c220ef 100755
--- a/wram.asm
+++ b/wram.asm
@@ -2523,8 +2523,8 @@ wd44b:: ds 1
ds 36
-wd470:: ds 1
-wd471:: ds 1
+wPikachuHappiness:: ds 1
+wPikachuMood:: ds 1
wd472:: ds 1
wd473:: ds 1
diff --git a/yellow/main.asm b/yellow/main.asm
index 86471d2d..d8344137 100755
--- a/yellow/main.asm
+++ b/yellow/main.asm
@@ -628,11 +628,11 @@ ApplyOutOfBattlePoisonDamage: ; c3de (3:43de)
ld a, $d0
ld [hSpriteIndexOrTextID], a
call DisplayTextID
- callab Func_fce18
+ callab IsThisPartymonOurPikachu
jr nc, .curMonNotPlayerPikachu
ld e, $3
callab Func_f0000
- calladb_Func_f430a $9
+ calladb_ModifyPikachuHappiness PIKAHAPPY_PSNFNT
.curMonNotPlayerPikachu
pop de
pop hl
@@ -698,9 +698,9 @@ Func_c4c7: ; c4c7 (3:44c7)
call Random
and $1
jr z, .asm_c4de
- calladb_Func_f430a $6
+ calladb_ModifyPikachuHappiness $6
.asm_c4de
- ld hl, wd471
+ ld hl, wPikachuMood
ld a, [hl]
cp $80
jr z, .asm_c4ef