aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2025-03-08 11:16:42 -0500
committerGitHub <noreply@github.com>2025-03-08 11:16:42 -0500
commit147914d179f29f0d5c08bad027040731e323ed92 (patch)
tree51c1546b6ad01c5b827c95c472a6a9de3656a81b
parentUse "command -v" instead of "which" (diff)
downloadpokeyellow-147914d179f29f0d5c08bad027040731e323ed92.tar.gz
pokeyellow-147914d179f29f0d5c08bad027040731e323ed92.tar.xz
pokeyellow-147914d179f29f0d5c08bad027040731e323ed92.zip
Use constants for trade text indexes (#501)
-rw-r--r--constants/script_constants.asm1
-rw-r--r--engine/events/in_game_trades.asm28
2 files changed, 24 insertions, 5 deletions
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index 24ad93f2..8b59a6f6 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -38,6 +38,7 @@ DEF NUM_NPC_TRADES EQU const_value
const TRADE_DIALOGSET_CASUAL
const TRADE_DIALOGSET_EVOLUTION
const TRADE_DIALOGSET_HAPPY
+DEF NUM_TRADE_DIALOGSETS EQU const_value
; OaksAideScript results
DEF OAKS_AIDE_BAG_FULL EQU $00
diff --git a/engine/events/in_game_trades.asm b/engine/events/in_game_trades.asm
index 228c6bf8..f69b829f 100644
--- a/engine/events/in_game_trades.asm
+++ b/engine/events/in_game_trades.asm
@@ -1,3 +1,12 @@
+; TradeTextPointers1-3 indexes
+ const_def
+ const TRADETEXT_WANNA_TRADE ; 0
+ const TRADETEXT_NO_TRADE ; 1
+ const TRADETEXT_WRONG_MON ; 2
+ const TRADETEXT_THANKS ; 3
+ const TRADETEXT_AFTER_TRADE ; 4
+DEF NUM_TRADE_TEXTS EQU const_value
+
DoInGameTradeDialogue:
; trigger the trade offer/action specified by wWhichTrade
call SaveScreenTilesToBuffer2
@@ -42,14 +51,15 @@ DoInGameTradeDialogue:
predef FlagActionPredef
ld a, c
and a
- ld a, $4
+ ld a, TRADETEXT_AFTER_TRADE
ld [wInGameTradeTextPointerTableIndex], a
jr nz, .printText
; if the trade hasn't been done yet
+ ASSERT TRADETEXT_WANNA_TRADE == 0
xor a
ld [wInGameTradeTextPointerTableIndex], a
call .printText
- ld a, $1
+ ld a, TRADETEXT_NO_TRADE
ld [wInGameTradeTextPointerTableIndex], a
call YesNoChoice
ld a, [wCurrentMenuItem]
@@ -95,13 +105,13 @@ InGameTrade_DoTrade:
push af
call InGameTrade_RestoreScreen
pop af
- ld a, $1
+ ld a, TRADETEXT_NO_TRADE
jp c, .tradeFailed ; jump if the player didn't select a pokemon
ld a, [wInGameTradeGiveMonSpecies]
ld b, a
ld a, [wCurPartySpecies]
cp b
- ld a, $2
+ ld a, TRADETEXT_WRONG_MON
jr nz, .tradeFailed ; jump if the selected mon's species is not the required one
ld a, [wWhichPokemon]
ld hl, wPartyMon1Level
@@ -142,7 +152,7 @@ InGameTrade_DoTrade:
call InGameTrade_RestoreScreen
farcall RedrawMapView
and a
- ld a, $3
+ ld a, TRADETEXT_THANKS
jr .tradeSucceeded
.tradeFailed
scf
@@ -234,30 +244,38 @@ InGameTrade_TrainerString:
InGameTradeTextPointers:
; entries correspond to TRADE_DIALOGSET_* constants
+ table_width 2
dw TradeTextPointers1
dw TradeTextPointers2
dw TradeTextPointers3
+ assert_table_length NUM_TRADE_DIALOGSETS
TradeTextPointers1:
+ table_width 2
dw WannaTrade1Text
dw NoTrade1Text
dw WrongMon1Text
dw Thanks1Text
dw AfterTrade1Text
+ assert_table_length NUM_TRADE_TEXTS
TradeTextPointers2:
+ table_width 2
dw WannaTrade2Text
dw NoTrade2Text
dw WrongMon2Text
dw Thanks2Text
dw AfterTrade2Text
+ assert_table_length NUM_TRADE_TEXTS
TradeTextPointers3:
+ table_width 2
dw WannaTrade3Text
dw NoTrade3Text
dw WrongMon3Text
dw Thanks3Text
dw AfterTrade3Text
+ assert_table_length NUM_TRADE_TEXTS
ConnectCableText:
text_far _ConnectCableText