summaryrefslogtreecommitdiff
path: root/engine/npctrade.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/npctrade.asm')
-rwxr-xr-xengine/npctrade.asm177
1 files changed, 96 insertions, 81 deletions
diff --git a/engine/npctrade.asm b/engine/npctrade.asm
index 97109cdd4..0a61129c1 100755
--- a/engine/npctrade.asm
+++ b/engine/npctrade.asm
@@ -18,10 +18,14 @@ TRADE_WRONG EQU 2
TRADE_COMPLETE EQU 3
TRADE_AFTER EQU 4
+TRADE_EITHER_GENDER EQU 0
+TRADE_MALE_ONLY EQU 1
+TRADE_FEMALE_ONLY EQU 2
+
NPCTrade:: ; fcba8
ld a, e
ld [wJumptableIndex], a
- call Functionfcc59
+ call Trade_GetDialog
ld b, CHECK_FLAG
call TradeFlagAction
ld a, TRADE_AFTER
@@ -57,8 +61,8 @@ NPCTrade:: ; fcba8
ld hl, ConnectLinkCableText
call PrintText
- call Functionfcc63
- call Functionfcc07
+ call DoNPCTrade
+ call .TradeAnimation
call GetTradeMonNames
ld hl, TradedForText
@@ -73,13 +77,13 @@ NPCTrade:: ; fcba8
ret
; fcc07
-Functionfcc07: ; fcc07
+.TradeAnimation: ; fcc07
call DisableSpriteUpdates
ld a, [wJumptableIndex]
push af
ld a, [wcf64]
push af
- predef Function28f24
+ predef TradeAnimation
pop af
ld [wcf64], a
pop af
@@ -118,7 +122,7 @@ CheckTradeGender: ; fcc23
; fcc4a
TradeFlagAction: ; fcc4a
- ld hl, wd960
+ ld hl, wTradeFlags
ld a, [wJumptableIndex]
ld c, a
predef FlagPredef
@@ -127,7 +131,7 @@ TradeFlagAction: ; fcc4a
ret
; fcc59
-Functionfcc59: ; fcc59
+Trade_GetDialog: ; fcc59
ld e, TRADE_DIALOG
call GetTradeAttribute
ld a, [hl]
@@ -135,74 +139,74 @@ Functionfcc59: ; fcc59
ret
; fcc63
-Functionfcc63: ; fcc63
+DoNPCTrade: ; fcc63
ld e, TRADE_GIVEMON
call GetTradeAttribute
ld a, [hl]
- ld [wc6d0], a
+ ld [wPlayerTrademonSpecies], a
ld e, TRADE_GETMON
call GetTradeAttribute
ld a, [hl]
- ld [wc702], a
+ ld [wOTTrademonSpecies], a
- ld a, [wc6d0]
- ld de, wc6d1
- call Functionfcde8
- call Functionfcdf4
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call GetTradeMonName
+ call CopyTradeName
- ld a, [wc702]
- ld de, wc703
- call Functionfcde8
- call Functionfcdf4
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call GetTradeMonName
+ call CopyTradeName
ld hl, PartyMonOT
ld bc, NAME_LENGTH
- call Functionfcdd7
- ld de, wc6f2
- call Functionfcdf4
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonOTName
+ call CopyTradeName
ld hl, PlayerName
- ld de, wc6e7
- call Functionfcdf4
+ ld de, wPlayerTrademonSenderName
+ call CopyTradeName
ld hl, PartyMon1ID
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld de, wc6ff
- call Functionfce0f
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonID
+ call Trade_CopyTwoBytes
ld hl, PartyMon1DVs
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld de, wc6fd
- call Functionfce0f
+ call Trade_GetAttributeOfCurrentPartymon
+ ld de, wPlayerTrademonDVs
+ call Trade_CopyTwoBytes
ld hl, PartyMon1Species
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
+ call Trade_GetAttributeOfCurrentPartymon
ld b, h
ld c, l
callba GetCaughtGender
ld a, c
- ld [wc701], a
+ ld [wPlayerTrademonCaughtData], a
ld e, TRADE_DIALOG
call GetTradeAttribute
ld a, [hl]
- cp TRADE_COMPLETE
+ cp 3
ld a, 1
- jr c, .asm_fcce6
+ jr c, .okay
ld a, 2
-.asm_fcce6
- ld [wEnemyCharging], a
+.okay
+ ld [wOTTrademonCaughtData], a
ld hl, PartyMon1Level
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
+ call Trade_GetAttributeOfCurrentPartymon
ld a, [hl]
ld [CurPartyLevel], a
- ld a, [wc702]
+ ld a, [wOTTrademonSpecies]
ld [CurPartySpecies], a
xor a
ld [MonType], a
@@ -214,66 +218,66 @@ Functionfcc63: ; fcc63
call GetTradeAttribute
ld a, [hl]
cp TRADE_COMPLETE
- ld b, 0
+ ld b, RESET_FLAG
jr c, .asm_fcd1c
- ld b, 1
+ ld b, SET_FLAG
.asm_fcd1c
callba SetGiftPartyMonCaughtData
ld e, TRADE_NICK
call GetTradeAttribute
- ld de, wc70e
- call Functionfcdf4
+ ld de, wOTTrademonNickname
+ call CopyTradeName
ld hl, PartyMonNicknames
ld bc, PKMN_NAME_LENGTH
- call Functionfcdde
- ld hl, wc70e
- call Functionfcdf4
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonNickname
+ call CopyTradeName
ld e, TRADE_OT_NAME
call GetTradeAttribute
push hl
- ld de, wc724
- call Functionfcdf4
+ ld de, wOTTrademonOTName
+ call CopyTradeName
pop hl
- ld de, wc719
- call Functionfcdf4
+ ld de, wOTTrademonSenderName
+ call CopyTradeName
ld hl, PartyMonOT
ld bc, NAME_LENGTH
- call Functionfcdde
- ld hl, wc724
- call Functionfcdf4
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonOTName
+ call CopyTradeName
ld e, TRADE_DVS
call GetTradeAttribute
- ld de, wEnemyTrappingMove
- call Functionfce0f
+ ld de, wOTTrademonDVs
+ call Trade_CopyTwoBytes
ld hl, PartyMon1DVs
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- ld hl, wEnemyTrappingMove
- call Functionfce0f
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonDVs
+ call Trade_CopyTwoBytes
ld e, TRADE_OT_ID
call GetTradeAttribute
- ld de, wPlayerCharging
- call Functionfce15
+ ld de, wOTTrademonID + 1
+ call Trade_CopyTwoBytesReverseEndian
ld hl, PartyMon1ID
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- ld hl, wEnemyWrapCount
- call Functionfce0f
+ call Trade_GetAttributeOfLastPartymon
+ ld hl, wOTTrademonID
+ call Trade_CopyTwoBytes
ld e, TRADE_ITEM
call GetTradeAttribute
push hl
ld hl, PartyMon1Item
ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
+ call Trade_GetAttributeOfLastPartymon
pop hl
ld a, [hl]
ld [de], a
@@ -315,13 +319,13 @@ endr
ret
; 0xfcdd7
-Functionfcdd7: ; fcdd7
+Trade_GetAttributeOfCurrentPartymon: ; fcdd7
ld a, [CurPartyMon]
call AddNTimes
ret
; fcdde
-Functionfcdde: ; fcdde
+Trade_GetAttributeOfLastPartymon: ; fcdde
ld a, [PartyCount]
dec a
call AddNTimes
@@ -330,7 +334,7 @@ Functionfcdde: ; fcdde
ret
; fcde8
-Functionfcde8: ; fcde8
+GetTradeMonName: ; fcde8
push de
ld [wd265], a
call GetBasePokemonName
@@ -339,29 +343,31 @@ Functionfcde8: ; fcde8
ret
; fcdf4
-Functionfcdf4: ; fcdf4
+CopyTradeName: ; fcdf4
ld bc, NAME_LENGTH
call CopyBytes
ret
; fcdfb
Functionfcdfb: ; fcdfb
+; unreferenced
ld bc, 4
call CopyBytes
- ld a, $50
+ ld a, "@"
ld [de], a
ret
; fce05
Functionfce05: ; fce05
+; unreferenced
ld bc, 3
call CopyBytes
- ld a, $50
+ ld a, "@"
ld [de], a
ret
; fce0f
-Functionfce0f: ; fce0f
+Trade_CopyTwoBytes: ; fce0f
ld a, [hli]
ld [de], a
inc de
@@ -370,7 +376,7 @@ Functionfce0f: ; fce0f
ret
; fce15
-Functionfce15: ; fce15
+Trade_CopyTwoBytesReverseEndian: ; fce15
ld a, [hli]
ld [de], a
dec de
@@ -383,18 +389,18 @@ GetTradeMonNames: ; fce1b
ld e, TRADE_GETMON
call GetTradeAttribute
ld a, [hl]
- call Functionfcde8
+ call GetTradeMonName
ld de, StringBuffer2
- call Functionfcdf4
+ call CopyTradeName
ld e, TRADE_GIVEMON
call GetTradeAttribute
ld a, [hl]
- call Functionfcde8
+ call GetTradeMonName
ld de, wd050
- call Functionfcdf4
+ call CopyTradeName
ld hl, StringBuffer1
.loop
@@ -423,13 +429,22 @@ GetTradeMonNames: ; fce1b
NPCTrades: ; fce58
- db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0
- db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0
- db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0
- db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0
- db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0
- db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0
- db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0
+npctrade: MACRO
+ db \1, \2, \3, \4
+ dw \5
+ db \6
+ dw \7
+ db \8, \9, 0
+ENDM
+
+
+ npctrade 0, ABRA, MACHOP, "MUSCLE@@@@@", $6637, GOLD_BERRY, $9254, "MIKE@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $6696, BITTER_BERRY, $bf1e, "KYLE@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $8898, PRZCUREBERRY, $7205, "TIM@@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $6677, SMOKE_BALL, $011b, "EMY@@@@@@@@", TRADE_FEMALE_ONLY
+ npctrade 2, HAUNTER, XATU, "PAUL@@@@@@@", $8696, MYSTERYBERRY, $3d00, "CHRIS@@@@@@", TRADE_EITHER_GENDER
+ npctrade 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $6696, GOLD_BERRY, $677b, "KIM@@@@@@@@", TRADE_EITHER_GENDER
+ npctrade 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $6696, METAL_COAT, $c3a2, "FOREST@@@@@", TRADE_EITHER_GENDER
; fcf38