Refactor with cp16 variants

This commit is contained in:
earthoul
2025-12-13 00:44:27 +09:00
parent 602bf69f4e
commit 7d178cd4c7
9 changed files with 90 additions and 279 deletions
+14 -68
View File
@@ -764,7 +764,8 @@ CountGRCoinPiecesObtained:
pop bc
ret
; return the location name in hl, using c == island and a == location
; for c = island and a = location,
; return the location name in hl
GetLocationName:
push af
push bc
@@ -801,7 +802,7 @@ GetCurrentLocationName:
pop af
ret
; using de == receiving card, return its long name in hl
; for de = receiving card id, return its long name in hl
; the first half of this function and the next two are identical
GetReceivingCardLongName:
push af
@@ -813,21 +814,9 @@ GetReceivingCardLongName:
ld c, a
ld a, [hli]
ld b, a
ld a, b
cp $ff
jr c, .ok
jr nz, .ok ; redundant
ld a, c
cp $ff
.ok
cp16bc_long $ffff
jr z, .not_found
ld a, b
cp d
jr c, .next
jr nz, .next
ld a, c
cp e
.next
cp16bc_long de
jr z, .load_name
ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE
add l
@@ -859,7 +848,7 @@ GetReceivingCardLongName:
pop af
ret
; using de == receiving card, return its short name in hl
; for de = receiving card id, return its short name in hl
GetReceivingCardShortName:
push af
push bc
@@ -870,21 +859,9 @@ GetReceivingCardShortName:
ld c, a
ld a, [hli]
ld b, a
ld a, b
cp $ff
jr c, .ok
jr nz, .ok ; redundant
ld a, c
cp $ff
.ok
cp16bc_long $ffff
jr z, .not_found
ld a, b
cp d
jr c, .next
jr nz, .next
ld a, c
cp e
.next
cp16bc_long de
jr z, .load_short_name
ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE
add l
@@ -918,7 +895,7 @@ GetReceivingCardShortName:
pop af
ret
; using de == receiving card, return its "received" text in hl
; for de = receiving card id, return its "received" text in hl
GetReceivedCardText:
push af
push bc
@@ -929,21 +906,9 @@ GetReceivedCardText:
ld c, a
ld a, [hli]
ld b, a
ld a, b
cp $ff
jr c, .ok
jr nz, .ok ; redundant
ld a, c
cp $ff
.ok
cp16bc_long $ffff
jr z, .not_found
ld a, b
cp d
jr c, .next
jr nz, .next
ld a, c
cp e
.next
cp16bc_long de
jr z, .load_received_text
ld a, CARD_RECEIVE_STRUCT_TEXTS_SIZE
add l
@@ -4541,14 +4506,7 @@ ScriptCommand_CompareLoadedVarWord:
ld hl, wScriptFlags
res 0, [hl]
res 1, [hl]
ld a, d
cp b
jr c, .high_byte_not_equal
jr nz, .high_byte_not_equal
; high byte equal
ld a, e
cp c
.high_byte_not_equal
cp16_long bc
jr nz, .not_equal
set 0, [hl]
.not_equal
@@ -5130,25 +5088,13 @@ Func_ebc6:
ld e, a
ld a, [wde15 + 1]
ld d, a
ld a, d
cp $00
jr c, .asm_ec1d
jr nz, .asm_ec1d
ld a, e
cp $00
.asm_ec1d
cp16_long 0
jr z, .asm_ec36
ld a, [wde15 + 2]
ld e, a
ld a, [wde15 + 3]
ld d, a
ld a, d
cp $00
jr c, .asm_ec31
jr nz, .asm_ec31
ld a, e
cp $00
.asm_ec31
cp16_long 0
jr z, .asm_ec36
scf
ccf
+1 -7
View File
@@ -1065,13 +1065,7 @@ Func_311d5:
ld [wd615], a
call LoadTxRam3
farcall GetGameCenterChips
ld a, b
cp h
jr c, .asm_3123b
jr nz, .asm_3123b
ld a, c
cp l
.asm_3123b
cp16bc_long hl
jr nc, .asm_31248
ld a, $01
start_script
+5 -35
View File
@@ -1296,37 +1296,13 @@ Func_349cd:
Func_349d5:
ld a, [wPlayerOWObject]
farcall GetOWObjectTilePosition
ld a, d
cp $0b
jr c, .asm_349e6
jr nz, .asm_349e6
ld a, e
cp $08
.asm_349e6
cpcoord 11, 8
jr z, .asm_34a0e
ld a, d
cp $0a
jr c, .asm_349f2
jr nz, .asm_349f2
ld a, e
cp $09
.asm_349f2
cpcoord 10, 9
jr z, .asm_34a2a
ld a, d
cp $09
jr c, .asm_349fe
jr nz, .asm_349fe
ld a, e
cp $09
.asm_349fe
cpcoord 9, 9
jr z, .asm_34a46
ld a, d
cp $08
jr c, .asm_34a0a
jr nz, .asm_34a0a
ld a, e
cp $08
.asm_34a0a
cpcoord 8, 8
jr z, .asm_34a62
jr .asm_34a7c
.asm_34a0e
@@ -2280,13 +2256,7 @@ Func_3512c:
ld [wd615], a
call LoadTxRam3
farcall GetGameCenterChips
ld a, b
cp h
jr c, .asm_35199
jr nz, .asm_35199
ld a, c
cp l
.asm_35199
cp16bc_long hl
jr nc, .asm_351a6
ld a, $01
start_script
+4 -28
View File
@@ -290,13 +290,7 @@ Func_3c1d0:
ld a, [sLinkDuelCounter + 1]
ld b, a
call DisableSRAM
ld a, b
cp $00
jr c, .asm_3c278
jr nz, .asm_3c278
ld a, c
cp $32
.asm_3c278
cp16bc_long 50
jr z, .asm_3c280
ld a, $01
start_script
@@ -317,13 +311,7 @@ Func_3c1d0:
ld a, [sLinkDuelCounter + 1]
ld b, a
call DisableSRAM
ld a, b
cp $00
jr c, .asm_3c2a9
jr nz, .asm_3c2a9
ld a, c
cp $64
.asm_3c2a9
cp16bc_long 100
jr z, .asm_3c2b1
ld a, $01
start_script
@@ -6793,13 +6781,7 @@ Func_3f44f:
ld [wd615], a
call LoadTxRam3
farcall GetGameCenterChips
ld a, b
cp h
jr c, .asm_3f4bc
jr nz, .asm_3f4bc
ld a, c
cp l
.asm_3f4bc
cp16bc_long hl
jr nc, .asm_3f4c9
ld a, $01
start_script
@@ -7283,13 +7265,7 @@ Func_3f858:
ld b, a
ld a, [wTextBoxFrameColor]
ld c, a
ld a, b
cp $00
jr c, .asm_3f874
jr nz, .asm_3f874
ld a, c
cp $03
.asm_3f874
cp16bc_lb 0, 3
jr nz, .asm_3f87b
farcall Func_1352a
ret
+12 -84
View File
@@ -1672,13 +1672,7 @@ Func_41074:
ld a, [wde11 + 1]
ld b, a
inc bc
ld a, b
cp $03
jr c, .asm_41090
jr nz, .asm_41090
ld a, c
cp $e8
.asm_41090
cp16bc_long 1000
jr nc, .asm_4109a
ld a, c
ld [wde11], a
@@ -1709,13 +1703,7 @@ Func_41074:
ld a, [wde0d + 1]
ld b, a
inc bc
ld a, b
cp $03
jr c, .asm_410d7
jr nz, .asm_410d7
ld a, c
cp $e8
.asm_410d7
cp16bc_long 1000
jr nc, .asm_410e1
ld a, c
ld [wde0d], a
@@ -1752,13 +1740,7 @@ Func_41074:
ld e, a
ld a, [wde11 + 1]
ld d, a
ld a, d
cp $00
jr c, .asm_41127
jr nz, .asm_41127
ld a, e
cp $32
.asm_41127
cp16_long 50
jr nz, .asm_4110a
call Func_41167
jr .asm_4110a
@@ -1772,13 +1754,7 @@ Func_4112e:
ld e, a
ld a, [wde15 + 1]
ld d, a
ld a, b
cp d
jr c, .asm_41146
jr nz, .asm_41146
ld a, c
cp e
.asm_41146
cp16bc_long de
jr nc, .asm_4114a
scf
ret
@@ -3445,37 +3421,13 @@ Func_41dac:
Func_41db4:
ld a, [wPlayerOWObject]
farcall GetOWObjectTilePosition
ld a, d
cp $05
jr c, .asm_41dc5
jr nz, .asm_41dc5
ld a, e
cp $08
.asm_41dc5
cpcoord 5, 8
jr z, .asm_41ded
ld a, d
cp $04
jr c, .asm_41dd1
jr nz, .asm_41dd1
ld a, e
cp $09
.asm_41dd1
cpcoord 4, 9
jr z, .asm_41e09
ld a, d
cp $03
jr c, .asm_41ddd
jr nz, .asm_41ddd
ld a, e
cp $09
.asm_41ddd
cpcoord 3, 9
jr z, .asm_41e25
ld a, d
cp $02
jr c, .asm_41de9
jr nz, .asm_41de9
ld a, e
cp $08
.asm_41de9
cpcoord 2, 8
jr z, .asm_41e41
jr .asm_41e5b
.asm_41ded
@@ -4656,13 +4608,7 @@ Func_42776:
ld a, [wde13 + 1]
ld b, a
inc bc
ld a, b
cp $03
jr c, .asm_42792
jr nz, .asm_42792
ld a, c
cp $e8
.asm_42792
cp16bc_long 1000
jr nc, .asm_4279c
ld a, c
ld [wde13], a
@@ -4693,13 +4639,7 @@ Func_42776:
ld a, [wde0f + 1]
ld b, a
inc bc
ld a, b
cp $03
jr c, .asm_427da
jr nz, .asm_427da
ld a, c
cp $e8
.asm_427da
cp16bc_long 1000
jr nc, .asm_427e4
ld a, c
ld [wde0f], a
@@ -4736,13 +4676,7 @@ Func_42776:
ld e, a
ld a, [wde13 + 1]
ld d, a
ld a, d
cp $00
jr c, .asm_4282c
jr nz, .asm_4282c
ld a, e
cp $32
.asm_4282c
cp16_long 50
jr nz, .asm_4280f
call Func_4286c
jr .asm_4280f
@@ -4756,13 +4690,7 @@ Func_42833:
ld e, a
ld a, [wde17 + 1]
ld d, a
ld a, b
cp d
jr c, .asm_4284b
jr nz, .asm_4284b
ld a, c
cp e
.asm_4284b
cp16bc_long de
jr nc, .asm_4284f
scf
ret
+2 -14
View File
@@ -963,13 +963,7 @@ CheckIfSpecialPromoCard:
ld b, a
or c
jr z, .not_found
ld a, b
cp d
jr c, .next_card
jr nz, .next_card
ld a, c
cp e
.next_card
cp16bc_long de
jr nz, .loop_cards
; found
@@ -1030,13 +1024,7 @@ Stubbed_CountSpecialPromoCardsInHL:
ld b, a
or c
jr z, .next_card_in_list
ld a, b
cp d
jr c, .next_promo
jr nz, .next_promo
ld a, c
cp e
.next_promo
cp16bc_long de
jr nz, .loop_promo
pop hl
pop bc
+5 -35
View File
@@ -38,13 +38,7 @@ CheckIfAllIdenticalCardsInHL:
ld b, a
or c
jr z, .all_identical
ld a, d
cp b
jr c, .skip_low
jr nz, .skip_low
ld a, e
cp c
.skip_low
cp16_long bc
jr nz, .empty_or_different
jr .loop_cards
@@ -102,13 +96,7 @@ SearchCardInListInHL:
ld b, a
or c
jr z, .not_found
ld a, d
cp b
jr c, .not_equal
jr nz, .not_equal
ld a, e
cp c
.not_equal
cp16_long bc
jr z, .found
pop af
inc a
@@ -312,13 +300,7 @@ ENDR
ld e, a
ld a, [wLoadedCard1Name + 1]
ld d, a
ld a, d
cp b
jr c, .next_lookup
jr nz, .next_lookup
ld a, e
cp c
.next_lookup
cp16_long bc
jr nz, .loop_lookup
ld a, BASIC | STAGE2
jr .valid
@@ -524,13 +506,7 @@ ListUniqueCardsOfTheSameTypeAndRarity:
ld a, d
ld [hli], a
.check_bounds
ld a, d
cp HIGH(NUM_CARDS)
jr c, .next_card
jr nz, .next_card
ld a, e
cp LOW(NUM_CARDS)
.next_card
cp16_long NUM_CARDS
inc de
jr nz, .loop_cards
; done, append $0000 terminator
@@ -787,13 +763,7 @@ RemoveCardFromListInHL:
ld b, a
or c
jr z, .not_found
ld a, d
cp b
jr c, .next_card
jr nz, .next_card
ld a, e
cp c
.next_card
cp16_long bc
jr nz, .loop_cards
; found
+3 -8
View File
@@ -975,7 +975,7 @@ SetUsedPkmnPowerThisTurnFlag:
; - a = SUBSTATUS1_* constant
ApplySubstatus1ToAttackingCardAndSetCountdown:
call ApplySubstatus1ToAttackingCard
; set turn countdown to %01
ld a, DUELVARS_ARENA_CARD_SUBSTATUS3
get_turn_duelist_var
@@ -2414,12 +2414,7 @@ CheckIfCardHasGrassOrRainbowEnergyAttached:
push hl
ld a, l
call GetCardIDFromDeckIndex
ld a, d
cp b
jr nz, .not_equal
ld a, e
cp c
.not_equal
cp16 bc
pop hl
pop de
jr z, .no_carry
@@ -9830,7 +9825,7 @@ ReelIn_AddToHandEffect:
cp $ff
jr nz, .loop_add_cards
ret
.loop_add_cards
; copy from hTempList to wDuelTempList
ld a, [hli]
+44
View File
@@ -52,6 +52,46 @@ MACRO? cp16
:
ENDM
MACRO? cp16_long
ld a, d
cp HIGH(\1)
jr c, :+
jr nz, :+
ld a, e
cp LOW(\1)
:
ENDM
MACRO? cp16bc_long
ld a, b
cp HIGH(\1)
jr c, :+
jr nz, :+
ld a, c
cp LOW(\1)
:
ENDM
MACRO? cp16_lb
ld a, d
cp \1
jr c, :+
jr nz, :+
ld a, e
cp \2
:
ENDM
MACRO? cp16bc_lb
ld a, b
cp \1
jr c, :+
jr nz, :+
ld a, c
cp \2
:
ENDM
MACRO? cphl
inc hl
ld a, [hld]
@@ -61,3 +101,7 @@ MACRO? cphl
cp LOW(\1)
:
ENDM
MACRO? cpcoord
cp16_lb \1, \2
ENDM