diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-10-11 18:00:03 -0400 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-10-11 18:00:03 -0400 |
commit | 18fb5fc4682a196e80a774af4aa1f68ead8186b9 (patch) | |
tree | 2586be36d4160f1d868335e7f974d807a6cdbfac | |
parent | 5c181f2d68525ec0ce58dc06accf12d528bcf046 (diff) |
more annotations on ModifyPikachuHappiness
-rw-r--r-- | constants/misc_constants.asm | 13 | ||||
-rw-r--r-- | engine/bank3d/bank3d_battle.asm | 4 | ||||
-rw-r--r-- | engine/bank3d/main.asm | 158 | ||||
-rw-r--r-- | engine/bank3f/main.asm | 16 | ||||
-rwxr-xr-x | engine/hall_of_fame.asm | 2 | ||||
-rw-r--r-- | engine/menu/bills_pc.asm | 10 | ||||
-rwxr-xr-x | engine/save.asm | 2 | ||||
-rw-r--r-- | home.asm | 6 | ||||
-rw-r--r-- | macros.asm | 12 | ||||
-rwxr-xr-x | main.asm | 8 | ||||
-rwxr-xr-x | wram.asm | 4 | ||||
-rwxr-xr-x | yellow/main.asm | 8 |
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 @@ -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 @@ -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 @@ -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 @@ -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 |