summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordannye <corrnondacqb@yahoo.com>2016-02-27 20:57:02 -0600
committerdannye <corrnondacqb@yahoo.com>2016-02-27 20:57:02 -0600
commitff6bcdf901daee04477d8f05b2251be360023658 (patch)
tree7fdd3db04a67003be0f4c6bdbe847c47c0d28e04 /src
parent7f51ba033a9f3d77abf3a7d471d480c0961d449c (diff)
parentf6e334247f61ab72576a6e6aedffd611bcde749a (diff)
Merge branch 'master' of https://github.com/anmart/poketcg
Diffstat (limited to 'src')
-rw-r--r--src/constants/card_data_constants.asm3
-rw-r--r--src/data/effect_commands.asm2
-rwxr-xr-xsrc/engine/bank1.asm65
-rwxr-xr-xsrc/engine/bank2.asm2
-rwxr-xr-xsrc/engine/bank3.asm4
-rwxr-xr-xsrc/engine/bank6.asm2
-rwxr-xr-xsrc/engine/bank7.asm2
-rwxr-xr-xsrc/engine/home.asm75
-rwxr-xr-xsrc/wram.asm2
9 files changed, 110 insertions, 47 deletions
diff --git a/src/constants/card_data_constants.asm b/src/constants/card_data_constants.asm
index 6ea7a74..80051bd 100644
--- a/src/constants/card_data_constants.asm
+++ b/src/constants/card_data_constants.asm
@@ -88,3 +88,6 @@ FLAG_2_BIT_7 EQU %10000000
; bits 2-7 are unused
BOOST_IF_TAKEN_DAMAGE EQU %00000001
FLAG_3_BIT_1 EQU %00000010
+
+;;; special retreat values
+UNABLE_RETREAT EQU $64
diff --git a/src/data/effect_commands.asm b/src/data/effect_commands.asm
index 3946ee8..103abfd 100644
--- a/src/data/effect_commands.asm
+++ b/src/data/effect_commands.asm
@@ -1345,7 +1345,7 @@ RaticateSuperFangEffectCommands:
dbw $09, $6f01
db $00
-; Unreferenced?
+TrainerCardAsPokemonEffectCommands:
dbw $02, $6f18
dbw $03, $6f3c
dbw $05, $6f27
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm
index 5577cf3..6a458f0 100755
--- a/src/engine/bank1.asm
+++ b/src/engine/bank1.asm
@@ -509,14 +509,14 @@ OpenBattleAttackMenu: ; 46fc (1:46fc)
ld h, a
ld l, DUELVARS_ARENA_CARD
ld a, [hl]
- call Func_1376
+ call LoadDeckCardToBuffer1
.asm_4736
call DoFrame
ldh a, [hButtonsPressed]
and $08
jr nz, .displaySelectedMoveInfo
- call Func_264b
+ call MenuCursorAcceptInput
jr nc, .asm_4736
cp $ff
jp z, Func_4295
@@ -661,7 +661,7 @@ LoadPokemonAttacksToDuelPointerTable: ; 4823 (1:4823)
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
ldh [$ff98], a
- call Func_1376
+ call LoadDeckCardToBuffer1
ld c, $00
ld b, $0d
ld hl, DuelAttackPointerTable
@@ -787,7 +787,64 @@ LoadPlayerDeck: ; 6793 (1:6793)
ret
; 0x67b2
-INCBIN "baserom.gbc",$67b2,$7107 - $67b2
+INCBIN "baserom.gbc",$67b2,$6d84 - $67b2
+
+;converts clefairy doll/mysterious fossil at specified wCardBuffer to pokemon card
+ConvertTrainerCardToPokemon:
+ ld c, a
+ ld a, [hl]
+ cp TRAINER_CARD
+ ret nz
+ push hl
+ ldh a, [hWhoseTurn]
+ ld h, a
+ ld l, c
+ ld a, [hl]
+ and TRAINER_CARD
+ pop hl
+ ret z
+ ld a, e
+ cp MYSTERIOUS_FOSSIL
+ jr nz, .checkForClefairyDoll
+ ld a, d
+ cp $00
+ jr z, .startRamDataOverwrite
+ ret
+.checkForClefairyDoll
+ cp CLEFAIRY_DOLL
+ ret nz
+ ld a, d
+ cp $00
+ ret nz
+.startRamDataOverwrite
+ push de
+ ld [hl], COLORLESS
+ ld bc, wCardBuffer1HP - wCardBuffer1
+ add hl, bc
+ ld de, .dataToOverwrite
+ ld c, wCardBuffer1Unknown2 - wCardBuffer1HP
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop de
+ ret
+
+.dataToOverwrite
+ db $0a ; hp
+ ds $07
+ dw $0030 ; move1 name
+ dw $0041 ; move1 description
+ ds $03
+ db $04 ; move1 category
+ dw TrainerCardAsPokemonEffectCommands ; move1 effect commands
+ ds $18
+ db UNABLE_RETREAT ; retreat cost
+ ds $0d
+
+INCBIN "baserom.gbc",$6df1,$7107 - $6df1
; initializes duel variables such as cards in deck and in hand, or Pokemon in play area
; player turn: [c200, c2ff]
diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm
index f989ee7..7901f9e 100755
--- a/src/engine/bank2.asm
+++ b/src/engine/bank2.asm
@@ -88,7 +88,7 @@ Func_8dbc: ; 8dbc (2:4dbc)
jr c, Func_8dbc
call Func_8dea
jr c, Func_8dbc
- call Func_264b
+ call MenuCursorAcceptInput
jr nc, .asm_8dc8
ldh a, [hCurrentMenuItem]
cp $ff
diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm
index ce85533..f4fb571 100755
--- a/src/engine/bank3.asm
+++ b/src/engine/bank3.asm
@@ -958,7 +958,7 @@ MainMenu_c75a: ; c75a (3:475a)
call Func_c29b
.asm_c76a
call DoFrameIfLCDEnabled
- call Func_264b
+ call MenuCursorAcceptInput
jr nc, .asm_c76a
ld a, e
ld [$d0b8], a
@@ -1042,7 +1042,7 @@ PC_c7ea: ; c7ea (3:47ea)
call Func_c29b
.asm_c806
call DoFrameIfLCDEnabled
- call Func_264b
+ call MenuCursorAcceptInput
jr nc, .asm_c806
ld a, e
ld [$d0b9], a
diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm
index 02b2839..8fb9996 100755
--- a/src/engine/bank6.asm
+++ b/src/engine/bank6.asm
@@ -145,7 +145,7 @@ Func_1a61f: ; 1a61f (6:661f)
push hl
ld e, a
ld d, $0
- call LoadCardDataToRAM
+ call LoadCardDataToBuffer1
call Func_379b
ld a, MUSIC_MEDAL
call PlaySong
diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm
index 8e52cef..3ddd151 100755
--- a/src/engine/bank7.asm
+++ b/src/engine/bank7.asm
@@ -214,7 +214,7 @@ Func_1d11c: ; 1d11c (7:511c)
.asm_1d15a
call DoFrameIfLCDEnabled
call UpdateRNGSources
- call Func_264b
+ call MenuCursorAcceptInput
push af
call $51e9
pop af
diff --git a/src/engine/home.asm b/src/engine/home.asm
index 18e8b4d..180bb18 100755
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -2177,13 +2177,13 @@ Func_100b: ; 100b (0:100b)
push hl
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1324
+ call LoadDeckCardToDE
ld a, e
ld [wccc3], a
call GetOpposingTurnDuelistVariable_SwapTurn
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1324
+ call LoadDeckCardToDE
ld a, e
ld [wccc4], a
call GetOpposingTurnDuelistVariable_SwapTurn
@@ -2375,10 +2375,10 @@ ShuffleCards: ; 127f (0:127f)
INCBIN "baserom.gbc",$12a3,$1324 - $12a3
-Func_1324: ; 1324 (0:1324)
+LoadDeckCardToDE: ; 1324 (0:1324)
push af
push hl
- call Func_1362
+ call GetDeckCard
ld e, a
ld d, $0
pop hl
@@ -2388,47 +2388,48 @@ Func_1324: ; 1324 (0:1324)
INCBIN "baserom.gbc",$132f,$1362 - $132f
-Func_1362: ; 1362 (0:1362)
+; gets card a from the deck stored in $ff97
+GetDeckCard: ; 1362 (0:1362)
push de
ld e, a
ld d, $0
ld hl, wPlayerDeck
ld a, [$ff97]
cp $c2
- jr z, .asm_1372
+ jr z, .loadCardFromDeck
ld hl, wOpponentDeck
-.asm_1372
+.loadCardFromDeck
add hl, de
ld a, [hl]
pop de
ret
-Func_1376: ; 1376 (0:1376)
+LoadDeckCardToBuffer1: ; 1376 (0:1376)
push hl
push de
push bc
push af
- call Func_1324
- call LoadCardDataToRAM
+ call LoadDeckCardToDE
+ call LoadCardDataToBuffer1
pop af
ld hl, wCardBuffer1
- bank1call $6d84
+ bank1call ConvertTrainerCardToPokemon
ld a, e
pop bc
pop de
pop hl
ret
-Func_138c: ; 138c (0:138c)
+LoadDeckCardToBuffer2: ; 138c (0:138c)
push hl
push de
push bc
push af
- call Func_1324
- call Func_2f0a
+ call LoadDeckCardToDE
+ call LoadCardDataToBuffer2
pop af
ld hl, wCardBuffer2
- bank1call $6d84
+ bank1call ConvertTrainerCardToPokemon
ld a, e
pop bc
pop de
@@ -2448,7 +2449,7 @@ Func_15ef: ; 15ef (0:15ef)
jr nz, .asm_1602
ld a, l
push hl
- call Func_1362
+ call GetDeckCard
cp e
pop hl
jr nz, .asm_1602
@@ -2492,7 +2493,7 @@ Func_16c0: ; 16c0 (0:16c0)
ld [wccc6], a
ld a, d
ld [$ff9f], a
- call Func_1376
+ call LoadDeckCardToBuffer1
ld a, [$cc2b]
ld [wccc2], a
ld hl, $cc30
@@ -2523,13 +2524,13 @@ Func_16f6: ; 16f6 (0:16f6)
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
ld [$ff9f], a
- call Func_1324
+ call LoadDeckCardToDE
ld a, e
ld [wccc3], a
call GetOpposingTurnDuelistVariable_SwapTurn
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1324
+ call LoadDeckCardToDE
ld a, e
ld [wccc4], a
call GetOpposingTurnDuelistVariable_SwapTurn
@@ -2995,7 +2996,7 @@ Func_1aac: ; 1aac (0:1aac)
ld a, e
add DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1376
+ call LoadDeckCardToBuffer1
ld a, [wCardBuffer1ID]
ld [wccc4], a
call Func_1ad3
@@ -3011,7 +3012,7 @@ Func_1ad0: ; 1ad0 (0:1ad0)
Func_1ad3: ; 1ad3 (0:1ad3)
ld a, [wccc4]
ld e, a
- call LoadCardDataToRAM
+ call LoadCardDataToBuffer1
ld hl, $cc27
ld a, [hli]
ld h, [hl]
@@ -3034,7 +3035,7 @@ Func_1b8d: ; 1b8d (0:1b8d)
bank1call $4f9d
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1376
+ call LoadDeckCardToBuffer1
ld a, $12
call Func_29f5
ld [hl], $0
@@ -3070,7 +3071,7 @@ Func_1bca: ; 1bca (0:1bca)
ld a, [$ff9d]
add DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1376
+ call LoadDeckCardToBuffer1
ld a, $12
call Func_29f5
ld [hl], $0
@@ -4236,7 +4237,8 @@ InitializeCursorParameters: ; 2636 (0:2636)
ld [wCursorBlinkCounter], a
ret
-Func_264b: ; 264b (0:264b)
+; returns with the carry flag set if a or b were pressed
+MenuCursorAcceptInput: ; 264b (0:264b)
xor a
ld [wcd99], a
ldh a, [hButtonsPressed2]
@@ -5171,16 +5173,17 @@ Func_2ec4: ; 2ec4 (0:2ec4)
INCBIN "baserom.gbc",$2ecd,$2f0a - $2ecd
-Func_2f0a: ; 2f0a (0:2f0a)
+; load data of card with id at e to wCardBuffer1 or wCardBuffer2
+LoadCardDataToBuffer2: ; 2f0a (0:2f0a)
push hl
ld hl, wCardBuffer2
- jr Func_2f14
+ jr LoadCardDataToRAM
-; load data of card with id at e to wCardBuffer1
-LoadCardDataToRAM: ; 2f10 (0:2f10)
+LoadCardDataToBuffer1: ; 2f10 (0:2f10)
push hl
ld hl, wCardBuffer1
-Func_2f14: ; 2f14 (0:2f14)
+
+LoadCardDataToRAM: ; 2f14 (0:2f14)
push de
push bc
push hl
@@ -5986,7 +5989,7 @@ Func_3432: ; 3432 (0:3432)
ld a, [wccc3]
ld e, a
ld d, $0
- call Func_2f0a
+ call LoadCardDataToBuffer2
ld a, [wCardBuffer2Stage]
or a
ret z
@@ -6078,7 +6081,7 @@ Func_3525: ; 3525 (0:3525)
call GetTurnDuelistVariable
cp $ff
jr z, .asm_3549
- call Func_1324
+ call LoadDeckCardToDE
ld a, [wce7c]
cp e
jr nz, .asm_3549
@@ -6094,7 +6097,7 @@ Func_3525: ; 3525 (0:3525)
ld a, [hli]
cp $ff
jr z, .asm_3560
- call Func_1324
+ call LoadDeckCardToDE
ld a, [wce7c]
cp e
jr nz, .asm_355d
@@ -6177,7 +6180,7 @@ Func_36a2: ; 36a2 (0:36a2)
ld a, [wccc3]
ld e, a
ld d, $0
- call Func_2f0a
+ call LoadCardDataToBuffer2
ld hl, $cc68
ld a, [hli]
ld h, [hl]
@@ -6220,7 +6223,7 @@ Func_36f7: ; 36f7 (0:36f7)
ld a, e
add DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_1324
+ call LoadDeckCardToDE
call Func_2f32
cp $10
jr nz, .asm_3715
@@ -6251,7 +6254,7 @@ Func_3730: ; 3730 (0:3730)
ret nz
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_138c
+ call LoadDeckCardToBuffer2
ld a, [wCardBuffer2Weakness]
ret
; 0x3743
@@ -6265,7 +6268,7 @@ Func_374a: ; 374a (0:374a)
ret nz
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call Func_138c
+ call LoadDeckCardToBuffer2
ld a, [wCardBuffer2Resistance]
ret
; 0x375d
diff --git a/src/wram.asm b/src/wram.asm
index 7c7c774..c0cd814 100755
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -21,7 +21,7 @@ wPlayerDuelVariables:: ; c200
; $01 - hand
; $02 - discard pile
; $08 - prize
-; $10 - hand
+; $10 - active pokemon
; $1X - bench (where X is bench position from 1 to 5)
wPlayerCardLocations:: ; c200
ds DECK_SIZE