shithub: pokecrystal

Download patch

ref: ace57ec8274b846af6092f5924f00b1f94119526
parent: 4082d11ff33b299adbfa7432024a0dd882f46c6d
author: yenatch <[email protected]>
date: Wed Dec 25 22:29:12 EST 2013

npc trade text/comments

--- a/main.asm
+++ b/main.asm
@@ -80658,46 +80658,78 @@
 
 INCLUDE "tilesets/animations.asm"
 
+
+; Trade struct
+TRADE_DIALOG  EQU 0
+TRADE_GIVEMON EQU 1
+TRADE_GETMON  EQU 2
+TRADE_NICK    EQU 3
+TRADE_DVS     EQU 14
+TRADE_ITEM    EQU 16
+TRADE_OT_ID   EQU 17
+TRADE_OT_NAME EQU 19
+TRADE_GENDER  EQU 30
+TRADE_PADDING EQU 31
+
+; Trade dialogs
+TRADE_INTRO    EQU 0
+TRADE_CANCEL   EQU 1
+TRADE_WRONG    EQU 2
+TRADE_COMPLETE EQU 3
+TRADE_AFTER    EQU 4
+
 Functionfcba8: ; fcba8
 	ld a, e
 	ld [$cf63], a
 	call Functionfcc59
-	ld b, $2
-	call Functionfcc4a
-	ld a, $4
-	jr nz, .asm_fcc03
-	ld a, $0
-	call Functionfcf38
+	ld b, CHECK_FLAG
+	call TradeFlagAction
+	ld a, TRADE_AFTER
+	jr nz, .done
+
+	ld a, TRADE_INTRO
+	call PrintTradeText
+
 	call YesNoBox
-	ld a, $1
-	jr c, .asm_fcc03
+	ld a, TRADE_CANCEL
+	jr c, .done
+
+; Select givemon from party
 	ld b, $6
 	callba Function5001d
-	ld a, $1
-	jr c, .asm_fcc03
-	ld e, $1
-	call LoadTradesPointer
+	ld a, TRADE_CANCEL
+	jr c, .done
+
+	ld e, TRADE_GIVEMON
+	call GetTradeAttribute
 	ld a, [CurPartySpecies]
 	cp [hl]
-	ld a, $2
-	jr nz, .asm_fcc03
-	call Functionfcc23
-	ld a, $2
-	jr c, .asm_fcc03
-	ld b, $1
-	call Functionfcc4a
-	ld hl, $4f7b
+	ld a, TRADE_WRONG
+	jr nz, .done
+
+	call CheckTradeGender
+	ld a, TRADE_WRONG
+	jr c, .done
+
+	ld b, SET_FLAG
+	call TradeFlagAction
+
+	ld hl, UnknownText_0xfcf7b
 	call PrintText
+
 	call Functionfcc63
 	call Functionfcc07
 	call Functionfce1b
-	ld hl, $4f80
+
+	ld hl, UnknownText_0xfcf80
 	call PrintText
+
 	call Function3d47
-	ld a, $3
 
-.asm_fcc03
-	call Functionfcf38
+	ld a, TRADE_COMPLETE
+
+.done
+	call PrintTradeText
 	ret
 ; fcc07
 
@@ -80717,16 +80749,18 @@
 	ret
 ; fcc23
 
-Functionfcc23: ; fcc23
+CheckTradeGender: ; fcc23
 	xor a
 	ld [MonType], a
-	ld e, $1e
-	call LoadTradesPointer
+
+	ld e, TRADE_GENDER
+	call GetTradeAttribute
 	ld a, [hl]
 	and a
 	jr z, .asm_fcc46
-	cp $1
+	cp 1
 	jr z, .asm_fcc3e
+
 	callba GetGender
 	jr nz, .asm_fcc48
 	jr .asm_fcc46
@@ -80744,11 +80778,11 @@
 	ret
 ; fcc4a
 
-Functionfcc4a: ; fcc4a
+TradeFlagAction: ; fcc4a
 	ld hl, $d960
 	ld a, [$cf63]
 	ld c, a
-	ld a, $3
+	ld a, PREDEF_FLAG
 	call Predef
 	ld a, c
 	and a
@@ -80756,8 +80790,8 @@
 ; fcc59
 
 Functionfcc59: ; fcc59
-	ld e, $0
-	call LoadTradesPointer
+	ld e, TRADE_DIALOG
+	call GetTradeAttribute
 	ld a, [hl]
 	ld [$cf64], a
 	ret
@@ -80764,40 +80798,48 @@
 ; fcc63
 
 Functionfcc63: ; fcc63
-	ld e, $1
-	call LoadTradesPointer
+	ld e, TRADE_GIVEMON
+	call GetTradeAttribute
 	ld a, [hl]
 	ld [PlayerSDefLevel], a
-	ld e, $2
-	call LoadTradesPointer
+
+	ld e, TRADE_GETMON
+	call GetTradeAttribute
 	ld a, [hl]
 	ld [PlayerLightScreenCount], a
+
 	ld a, [PlayerSDefLevel]
 	ld de, PlayerAccLevel
 	call Functionfcde8
 	call Functionfcdf4
+
 	ld a, [PlayerLightScreenCount]
 	ld de, PlayerReflectCount
 	call Functionfcde8
 	call Functionfcdf4
+
 	ld hl, PartyMon1OT
 	ld bc, $000b
 	call Functionfcdd7
 	ld de, $c6f2
 	call Functionfcdf4
+
 	ld hl, PlayerName
 	ld de, $c6e7
 	call Functionfcdf4
+
 	ld hl, PartyMon1ID
 	ld bc, $0030
 	call Functionfcdd7
 	ld de, PlayerScreens
 	call Functionfce0f
+
 	ld hl, PartyMon1DVs
 	ld bc, $0030
 	call Functionfcdd7
 	ld de, $c6fd
 	call Functionfce0f
+
 	ld hl, PartyMon1Species
 	ld bc, $0030
 	call Functionfcdd7
@@ -80806,16 +80848,17 @@
 	callba GetCaughtGender
 	ld a, c
 	ld [$c701], a
-	ld e, $0
-	call LoadTradesPointer
+
+	ld e, TRADE_DIALOG
+	call GetTradeAttribute
 	ld a, [hl]
-	cp $3
-	ld a, $1
+	cp TRADE_COMPLETE
+	ld a, 1
 	jr c, .asm_fcce6
-	ld a, $2
-
+	ld a, 2
 .asm_fcce6
 	ld [$c733], a
+
 	ld hl, PartyMon1Level
 	ld bc, $0030
 	call Functionfcdd7
@@ -80829,27 +80872,30 @@
 	callab Functione039
 	ld a, $6
 	call Predef
-	ld e, $0
-	call LoadTradesPointer
+
+	ld e, TRADE_DIALOG
+	call GetTradeAttribute
 	ld a, [hl]
-	cp $3
-	ld b, $0
+	cp TRADE_COMPLETE
+	ld b, 0
 	jr c, .asm_fcd1c
-	ld b, $1
-
+	ld b, 1
 .asm_fcd1c
 	callba Function4dba3
-	ld e, $3
-	call LoadTradesPointer
+
+	ld e, TRADE_NICK
+	call GetTradeAttribute
 	ld de, FailedMessage
 	call Functionfcdf4
+
 	ld hl, PartyMon1Nickname
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call Functionfcdde
 	ld hl, FailedMessage
 	call Functionfcdf4
-	ld e, $13
-	call LoadTradesPointer
+
+	ld e, TRADE_OT_NAME
+	call GetTradeAttribute
 	push hl
 	ld de, $c724
 	call Functionfcdf4
@@ -80856,31 +80902,37 @@
 	pop hl
 	ld de, $c719
 	call Functionfcdf4
+
 	ld hl, PartyMon1OT
 	ld bc, $000b
 	call Functionfcdde
 	ld hl, $c724
 	call Functionfcdf4
-	ld e, $e
-	call LoadTradesPointer
+
+	ld e, TRADE_DVS
+	call GetTradeAttribute
 	ld de, $c72f
 	call Functionfce0f
+
 	ld hl, PartyMon1DVs
 	ld bc, $0030
 	call Functionfcdde
 	ld hl, $c72f
 	call Functionfce0f
-	ld e, $11
-	call LoadTradesPointer
+
+	ld e, TRADE_OT_ID
+	call GetTradeAttribute
 	ld de, $c732
 	call Functionfce15
+
 	ld hl, PartyMon1ID
 	ld bc, $0030
 	call Functionfcdde
 	ld hl, $c731
 	call Functionfce0f
-	ld e, $10
-	call LoadTradesPointer
+
+	ld e, TRADE_ITEM
+	call GetTradeAttribute
 	push hl
 	ld hl, PartyMon1Item
 	ld bc, $0030
@@ -80888,6 +80940,7 @@
 	pop hl
 	ld a, [hl]
 	ld [de], a
+
 	push af
 	push bc
 	push de
@@ -80908,8 +80961,7 @@
 ; fcdc2
 
 
-
-LoadTradesPointer: ; 0xfcdc2
+GetTradeAttribute: ; 0xfcdc2
 	ld d, 0
 	push de
 	ld a, [$cf63]
@@ -80916,7 +80968,7 @@
 	and $f
 	swap a
 	ld e, a
-	ld d, $0
+	ld d, 0
 	ld hl, Trades
 	add hl, de
 	add hl, de
@@ -80977,69 +81029,65 @@
 ; fce1b
 
 Functionfce1b: ; fce1b
-	ld e, $2
-	call LoadTradesPointer
+	ld e, TRADE_GETMON
+	call GetTradeAttribute
 	ld a, [hl]
 	call Functionfcde8
+
 	ld de, StringBuffer2
 	call Functionfcdf4
-	ld e, $1
-	call LoadTradesPointer
+
+	ld e, TRADE_GIVEMON
+	call GetTradeAttribute
 	ld a, [hl]
 	call Functionfcde8
+
 	ld de, $d050
 	call Functionfcdf4
+
 	ld hl, StringBuffer1
-.asm_fce3c
+.next
 	ld a, [hli]
-	cp $50
-	jr nz, .asm_fce3c
+	cp "@"
+	jr nz, .next
+
 	dec hl
 	push hl
-	ld e, $1e
-	call LoadTradesPointer
+	ld e, TRADE_GENDER
+	call GetTradeAttribute
 	ld a, [hl]
 	pop hl
 	and a
 	ret z
-	cp $1
-	ld a, $ef
-	jr z, .asm_fce54
-	ld a, $f5
 
-.asm_fce54
+	cp 1
+	ld a, "♂"
+	jr z, .done
+	ld a, "♀"
+.done
 	ld [hli], a
-	ld [hl], $50
+	ld [hl], "@"
 	ret
 ; fce58
 
 
-Trades: ; 0xfce58
-; byte 1: dialog
-; byte 2: givemon
-; byte 3: getmon
-; bytes 4-14 nickname
-; bytes 15-16 DVs
-; byte 17 held item
-; bytes 18-19 ID
-; bytes 20-30 OT name
-; byte 31 gender
-; byte 32 XXX always zero?
+Trades: ; 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
+; fcf38
 
-	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
 
-Functionfcf38: ; fcf38
+PrintTradeText: ; fcf38
 	push af
 	call Functionfce1b
 	pop af
-	ld bc, $0008
-	ld hl, $4f53
+	ld bc, 2 * 4
+	ld hl, TradeTexts
 	call AddNTimes
 	ld a, [$cf64]
 	ld c, a
@@ -81052,7 +81100,174 @@
 	ret
 ; fcf53
 
-INCBIN "baserom.gbc",$fcf53,$fcfec - $fcf53
+TradeTexts: ; fcf53
+; intro
+	dw TradeIntroText1
+	dw TradeIntroText2
+	dw TradeIntroText3
+	dw TradeIntroText4
+
+; cancel
+	dw TradeCancelText1
+	dw TradeCancelText2
+	dw TradeCancelText3
+	dw TradeCancelText4
+
+; wrong mon
+	dw TradeWrongText1
+	dw TradeWrongText2
+	dw TradeWrongText3
+	dw TradeWrongText4
+
+; completed
+	dw TradeCompleteText1
+	dw TradeCompleteText2
+	dw TradeCompleteText3
+	dw TradeCompleteText4
+
+; after
+	dw TradeAfterText1
+	dw TradeAfterText2
+	dw TradeAfterText3
+	dw TradeAfterText4
+; fcf7b
+
+
+UnknownText_0xfcf7b: ; 0xfcf7b
+	; OK, connect the Game Link Cable.
+	text_jump UnknownText_0x1bd407
+	db "@"
+; 0xfcf80
+
+UnknownText_0xfcf80: ; 0xfcf80
+	; traded givemon for getmon
+	text_jump UnknownText_0x1bd429
+	start_asm
+; 0xfcf85
+
+Functionfcf85: ; fcf85
+	ld de, MUSIC_NONE
+	call PlayMusic
+	call DelayFrame
+	ld hl, UnknownText_0xfcf92
+	ret
+; fcf92
+
+UnknownText_0xfcf92: ; 0xfcf92
+	; sound0x0A
+	; interpret_data
+	text_jump UnknownText_0x1bd445
+	db "@"
+; 0xfcf97
+
+
+TradeIntroText1: ; 0xfcf97
+	; I collect #MON. Do you have @ ? Want to trade it for my @ ?
+	text_jump UnknownText_0x1bd449
+	db "@"
+; 0xfcf9c
+
+TradeCancelText1: ; 0xfcf9c
+	; You don't want to trade? Aww…
+	text_jump UnknownText_0x1bd48c
+	db "@"
+; 0xfcfa1
+
+TradeWrongText1: ; 0xfcfa1
+	; Huh? That's not @ .  What a letdown…
+	text_jump UnknownText_0x1bd4aa
+	db "@"
+; 0xfcfa6
+
+TradeCompleteText1: ; 0xfcfa6
+	; Yay! I got myself @ ! Thanks!
+	text_jump UnknownText_0x1bd4d2
+	db "@"
+; 0xfcfab
+
+TradeAfterText1: ; 0xfcfab
+	; Hi, how's my old @  doing?
+	text_jump UnknownText_0x1bd4f4
+	db "@"
+; 0xfcfb0
+
+
+TradeIntroText2:
+TradeIntroText3: ; 0xfcfb0
+	; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ?
+	text_jump UnknownText_0x1bd512
+	db "@"
+; 0xfcfb5
+
+TradeCancelText2:
+TradeCancelText3: ; 0xfcfb5
+	; You don't have one either? Gee, that's really disappointing…
+	text_jump UnknownText_0x1bd565
+	db "@"
+; 0xfcfba
+
+TradeWrongText2:
+TradeWrongText3: ; 0xfcfba
+	; You don't have @ ? That's too bad, then.
+	text_jump UnknownText_0x1bd5a1
+	db "@"
+; 0xfcfbf
+
+TradeCompleteText2: ; 0xfcfbf
+	; Great! Thank you! I finally got @ .
+	text_jump UnknownText_0x1bd5cc
+	db "@"
+; 0xfcfc4
+
+TradeAfterText2: ; 0xfcfc4
+	; Hi! The @ you traded me is doing great!
+	text_jump UnknownText_0x1bd5f4
+	db "@"
+; 0xfcfc9
+
+
+TradeIntroText4: ; 0xfcfc9
+	; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ?
+	text_jump UnknownText_0x1bd621
+	db "@"
+; 0xfcfce
+
+TradeCancelText4: ; 0xfcfce
+	; You don't want to trade? Oh, darn…
+	text_jump UnknownText_0x1bd673
+	db "@"
+; 0xfcfd3
+
+TradeWrongText4: ; 0xfcfd3
+	; That's not @ . Please trade with me if you get one.
+	text_jump UnknownText_0x1bd696
+	db "@"
+; 0xfcfd8
+
+TradeCompleteText4: ; 0xfcfd8
+	; Wow! Thank you! I always wanted @ !
+	text_jump UnknownText_0x1bd6cd
+	db "@"
+; 0xfcfdd
+
+TradeAfterText4: ; 0xfcfdd
+	; How is that @  I traded you doing? Your @ 's so cute!
+	text_jump UnknownText_0x1bd6f5
+	db "@"
+; 0xfcfe2
+
+
+TradeCompleteText3: ; 0xfcfe2
+	; Uh? What happened?
+	text_jump UnknownText_0x1bd731
+	db "@"
+; 0xfcfe7
+
+TradeAfterText3: ; 0xfcfe7
+	; Trading is so odd… I still have a lot to learn about it.
+	text_jump UnknownText_0x1bd745
+	db "@"
+; 0xfcfec
 
 
 Functionfcfec: ; fcfec