BATTLEACTION constants

This commit is contained in:
PikalaxALT
2015-11-06 09:04:27 -05:00
parent 5eed48f05d
commit f0830f084f
8 changed files with 233 additions and 204 deletions

View File

@@ -707,6 +707,7 @@ AI_Switch: ; 3846c
xor a xor a
ld [hBattleTurn], a ld [hBattleTurn], a
callab PursuitSwitch callab PursuitSwitch
push af push af
ld a, [CurOTMon] ld a, [CurOTMon]
ld hl, OTPartyMon1Status ld hl, OTPartyMon1Status
@@ -718,9 +719,11 @@ AI_Switch: ; 3846c
ld bc, $0004 ld bc, $0004
call CopyBytes call CopyBytes
pop af pop af
jr c, .skiptext jr c, .skiptext
ld hl, TextJump_EnemyWithdrew ld hl, TextJump_EnemyWithdrew
call PrintText call PrintText
.skiptext .skiptext
ld a, $1 ld a, $1
ld [wd264], a ld [wd264], a

View File

@@ -12,31 +12,31 @@ Function3c000: ; 3c000
inc a inc a
ld [wd264], a ld [wd264], a
ld hl, OTPartyMon1HP ld hl, OTPartyMon1HP
ld bc, OTPartyMon2 - (OTPartyMon1 + 1) ld bc, PARTYMON_STRUCT_LENGTH - 1
ld d, NUM_MOVES - 1 ld d, BATTLEACTION_SWITCH1 - 1
.asm_3c019 .loop
inc d inc d
ld a, [hli] ld a, [hli]
or [hl] or [hl]
jr nz, .asm_3c021 jr nz, .alive
add hl, bc add hl, bc
jr .asm_3c019 jr .loop
.asm_3c021 .alive
ld a, d ld a, d
ld [wBattleAction], a ld [wBattleAction], a
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jr z, .asm_3c031 jr z, .not_linked
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr z, .asm_3c04c jr z, .player_2
.asm_3c031 .not_linked
ld a, [wBattleMode] ld a, [wBattleMode]
dec a dec a
jr z, .asm_3c047 jr z, .wild
xor a xor a
ld [wc718], a ld [wc718], a
call NewEnemyMonStatus call NewEnemyMonStatus
@@ -44,11 +44,11 @@ Function3c000: ; 3c000
call BreakAttraction call BreakAttraction
call Function3d4e1 call Function3d4e1
.asm_3c047 .wild
ld c, 40 ld c, 40
call DelayFrames call DelayFrames
.asm_3c04c .player_2
call LoadTileMapToTempTileMap call LoadTileMapToTempTileMap
call CheckPlayerPartyForFitPkmn call CheckPlayerPartyForFitPkmn
ld a, d ld a, d
@@ -57,19 +57,19 @@ Function3c000: ; 3c000
call Call_LoadTempTileMapToTileMap call Call_LoadTempTileMapToTileMap
ld a, [BattleType] ld a, [BattleType]
cp BATTLETYPE_DEBUG cp BATTLETYPE_DEBUG
jp z, .asm_3c0e2 jp z, .tutorial_debug
cp BATTLETYPE_TUTORIAL cp BATTLETYPE_TUTORIAL
jp z, .asm_3c0e2 jp z, .tutorial_debug
xor a xor a
ld [CurPartyMon], a ld [CurPartyMon], a
.asm_3c06b .loop2
call CheckIfPartyHasPkmnToBattleWith call CheckIfPartyHasPkmnToBattleWith
jr nz, .asm_3c076 jr nz, .alive2
ld hl, CurPartyMon ld hl, CurPartyMon
inc [hl] inc [hl]
jr .asm_3c06b jr .loop2
.asm_3c076 .alive2
ld a, [CurBattleMon] ld a, [CurBattleMon]
ld [LastPlayerMon], a ld [LastPlayerMon], a
ld a, [CurPartyMon] ld a, [CurPartyMon]
@@ -99,10 +99,10 @@ Function3c000: ; 3c000
call SpikesDamage call SpikesDamage
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jr z, .asm_3c0df jr z, .not_linked_2
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr nz, .asm_3c0df jr nz, .not_linked_2
xor a xor a
ld [wc718], a ld [wc718], a
call NewEnemyMonStatus call NewEnemyMonStatus
@@ -112,10 +112,10 @@ Function3c000: ; 3c000
call SetEnemyTurn call SetEnemyTurn
call SpikesDamage call SpikesDamage
.asm_3c0df .not_linked_2
jp Function3c12f jp Function3c12f
.asm_3c0e2 .tutorial_debug
jp BattleMenu jp BattleMenu
; 3c0e5 ; 3c0e5
@@ -209,7 +209,7 @@ Function3c12f: ; 3c12f
call Function3c300 call Function3c300
jr c, .quit jr c, .quit
call Function3c314 call DetermineMoveOrder
jr c, .asm_3c19e jr c, .asm_3c19e
call Function3c5fe call Function3c5fe
jr .asm_3c1a1 jr .asm_3c1a1
@@ -262,7 +262,7 @@ Function3c1c0: ; 3c1c0
Function3c1d6: ; 3c1d6 Function3c1d6: ; 3c1d6
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .CheckEnemyFirst jr z, .CheckEnemyFirst
call CheckFaint_PlayerThenEnemy call CheckFaint_PlayerThenEnemy
@@ -361,7 +361,7 @@ CheckFaint_EnemyThenPlayer: ; 3c25c
; 3c27c ; 3c27c
Function3c27c: ; 3c27c Function3c27c: ; 3c27c
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .reverse jr z, .reverse
@@ -440,66 +440,66 @@ Function3c27c: ; 3c27c
Function3c300: ; 3c300 Function3c300: ; 3c300
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jr z, .asm_3c30d jr z, .not_linked
ld a, [wBattleAction] ld a, [wBattleAction]
cp $f cp BATTLEACTION_FORFEIT
jr z, .asm_3c30f jr z, .forfeit
.asm_3c30d .not_linked
and a and a
ret ret
.asm_3c30f .forfeit
call WildFled_EnemyFled_LinkBattleCanceled call WildFled_EnemyFled_LinkBattleCanceled
scf scf
ret ret
; 3c314 ; 3c314
Function3c314: ; 3c314 DetermineMoveOrder: ; 3c314
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jr z, .skip_ai jr z, .use_move
ld a, [wBattleAction] ld a, [wBattleAction]
cp $e cp BATTLEACTION_E
jr z, .skip_ai jr z, .use_move
cp $d cp BATTLEACTION_D
jr z, .skip_ai jr z, .use_move
sub NUM_MOVES sub BATTLEACTION_SWITCH1
jr c, .skip_ai jr c, .use_move
ld a, [wd0ec] ld a, [wd0ec]
cp $2 cp $2
jr nz, .switch jr nz, .switch
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr z, .asm_3c341 jr z, .player_2
call BattleRandom call BattleRandom
cp 1 + (50 percent) cp 1 + (50 percent)
jp c, .done jp c, .player_first
jp Function3c3f3 jp .enemy_first
.asm_3c341 .player_2
call BattleRandom call BattleRandom
cp 1 + (50 percent) cp 1 + (50 percent)
jp c, Function3c3f3 jp c, .enemy_first
jp .done jp .player_first
.switch .switch
callab AI_Switch callab AI_Switch
call SetEnemyTurn call SetEnemyTurn
call SpikesDamage call SpikesDamage
jp Function3c3f3 jp .enemy_first
.skip_ai .use_move
ld a, [wd0ec] ld a, [wd0ec]
and a and a
jp nz, .done jp nz, .player_first
call CompareMovePriority call CompareMovePriority
jr z, .asm_3c36d jr z, .equal_priority
jp c, .done jp c, .player_first ; player goes first
jp Function3c3f3 jp .enemy_first
.asm_3c36d .equal_priority
call SetPlayerTurn call SetPlayerTurn
callab GetUserItem callab GetUserItem
push bc push bc
@@ -507,73 +507,73 @@ Function3c314: ; 3c314
pop de pop de
ld a, d ld a, d
cp HELD_QUICK_CLAW cp HELD_QUICK_CLAW
jr nz, .asm_3c391 jr nz, .player_no_quick_claw
ld a, b ld a, b
cp HELD_QUICK_CLAW cp HELD_QUICK_CLAW
jr z, .asm_3c39f jr z, .both_have_quick_claw
call BattleRandom call BattleRandom
cp e cp e
jr nc, .asm_3c3c5 jr nc, .speed_check
jp .done jp .player_first
.asm_3c391 .player_no_quick_claw
ld a, b ld a, b
cp HELD_QUICK_CLAW cp HELD_QUICK_CLAW
jr nz, .asm_3c3c5 jr nz, .speed_check
call BattleRandom call BattleRandom
cp c cp c
jr nc, .asm_3c3c5 jr nc, .speed_check
jp Function3c3f3 jp .enemy_first
.asm_3c39f .both_have_quick_claw
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr z, .asm_3c3b5 jr z, .player_2b
call BattleRandom call BattleRandom
cp c cp c
jp c, Function3c3f3 jp c, .enemy_first
call BattleRandom call BattleRandom
cp e cp e
jp c, .done jp c, .player_first
jr .asm_3c3c5 jr .speed_check
.asm_3c3b5 .player_2b
call BattleRandom call BattleRandom
cp e cp e
jp c, .done jp c, .player_first
call BattleRandom call BattleRandom
cp c cp c
jp c, Function3c3f3 jp c, .enemy_first
jr .asm_3c3c5 jr .speed_check
.asm_3c3c5 .speed_check
ld de, BattleMonSpeed ld de, BattleMonSpeed
ld hl, EnemyMonSpeed ld hl, EnemyMonSpeed
ld c, $2 ld c, 2
call StringCmp call StringCmp
jr z, .asm_3c3d8 jr z, .speed_tie
jp nc, .done jp nc, .player_first
jp Function3c3f3 jp .enemy_first
.asm_3c3d8 .speed_tie
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr z, .asm_3c3e9 jr z, .player_2c
call BattleRandom call BattleRandom
cp 1 + (50 percent) cp 1 + (50 percent)
jp c, .done jp c, .player_first
jp Function3c3f3 jp .enemy_first
.asm_3c3e9 .player_2c
call BattleRandom call BattleRandom
cp 1 + (50 percent) cp 1 + (50 percent)
jp c, Function3c3f3 jp c, .enemy_first
.done .player_first
scf scf
ret ret
; 3c3f3 ; 3c3f3
Function3c3f3: ; 3c3f3 .enemy_first: ; 3c3f3
and a and a
ret ret
; 3c3f5 ; 3c3f5
@@ -720,7 +720,7 @@ Function3c434: ; 3c434
; 3c4df ; 3c4df
Function3c4df: ; 3c4df Function3c4df: ; 3c4df
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3c4ea jr z, .asm_3c4ea
call .asm_3c4ed call .asm_3c4ed
@@ -1218,7 +1218,7 @@ ResidualDamage: ; 3c716
; 3c801 ; 3c801
Function3c801: ; 3c801 Function3c801: ; 3c801
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3c813 jr z, .asm_3c813
call SetPlayerTurn call SetPlayerTurn
@@ -1286,7 +1286,7 @@ Function3c801: ; 3c801
; 3c874 ; 3c874
Function3c874: ; 3c874 Function3c874: ; 3c874
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3c886 jr z, .asm_3c886
call SetPlayerTurn call SetPlayerTurn
@@ -1353,7 +1353,7 @@ SwitchTurnCore: ; 3c8e4
; 3c8eb ; 3c8eb
Function3c8eb: ; 3c8eb Function3c8eb: ; 3c8eb
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3c8fd jr z, .asm_3c8fd
call SetPlayerTurn call SetPlayerTurn
@@ -1400,7 +1400,7 @@ Function3c8eb: ; 3c8eb
; 3c93c ; 3c93c
Function3c93c: ; 3c93c Function3c93c: ; 3c93c
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3c94e jr z, .asm_3c94e
call SetPlayerTurn call SetPlayerTurn
@@ -1538,7 +1538,7 @@ Function3c93c: ; 3c93c
; 3ca26 ; 3ca26
Function3ca26: ; 3ca26 Function3ca26: ; 3ca26
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3ca38 jr z, .asm_3ca38
call SetPlayerTurn call SetPlayerTurn
@@ -1596,7 +1596,7 @@ Function3ca26: ; 3ca26
; 3ca8f ; 3ca8f
HanleDefrost: ; 3ca8f HanleDefrost: ; 3ca8f
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3ca9a jr z, .asm_3ca9a
call .asm_3ca9d call .asm_3ca9d
@@ -1654,7 +1654,7 @@ HanleDefrost: ; 3ca8f
; 3cafb ; 3cafb
HandleSafeguard: ; 3cafb HandleSafeguard: ; 3cafb
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3cb06 jr z, .asm_3cb06
call .asm_3cb09 call .asm_3cb09
@@ -1692,7 +1692,7 @@ HandleSafeguard: ; 3cafb
HandleScreens: ; 3cb36 HandleScreens: ; 3cb36
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp 1 cp 1
jr z, .Both jr z, .Both
call .CheckPlayer call .CheckPlayer
@@ -1777,7 +1777,7 @@ HandleWeather: ; 3cb9e
cp WEATHER_SANDSTORM cp WEATHER_SANDSTORM
ret nz ret nz
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp 1 cp 1
jr z, .enemy_first jr z, .enemy_first
@@ -2168,7 +2168,7 @@ HandleEnemyMonFaint: ; 3cd55
; 3cdca ; 3cdca
Function3cdca: ; 3cdca Function3cdca: ; 3cdca
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3cde6 jr z, .asm_3cde6
call ClearSprites call ClearSprites
@@ -2408,16 +2408,16 @@ Function3cf4a: ; 3cf4a
callba Function2c012 callba Function2c012
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jr z, .asm_3cf6d jr z, .not_linked
call Function3e8e4 call Function3e8e4
ld a, [wBattleAction] ld a, [wBattleAction]
cp $f cp BATTLEACTION_FORFEIT
ret z ret z
call Call_LoadTempTileMapToTileMap call Call_LoadTempTileMapToTileMap
.asm_3cf6d .not_linked
ld hl, BattleMonHP ld hl, BattleMonHP
ld a, [hli] ld a, [hli]
or [hl] or [hl]
@@ -3355,32 +3355,32 @@ Function3d533: ; 3d533
; returns carry if: ??? ; returns carry if: ???
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jr z, .asm_3d541 jr z, .not_linked
ld a, [wBattleAction] ld a, [wBattleAction]
sub NUM_MOVES sub BATTLEACTION_SWITCH1
ld b, a ld b, a
jr .asm_3d555 jr .return_carry
.asm_3d541 .not_linked
ld a, [wc718] ld a, [wc718]
and a and a
jr z, .asm_3d54b jr z, .check_wd264
dec a dec a
ld b, a ld b, a
jr .asm_3d555 jr .return_carry
.asm_3d54b .check_wd264
ld a, [wd264] ld a, [wd264]
and a and a
ld b, $0 ld b, $0
jr nz, .asm_3d555 jr nz, .return_carry
and a and a
ret ret
.asm_3d555 .return_carry
scf scf
ret ret
; 3d557 ; 3d557
@@ -3876,33 +3876,33 @@ TryToRunAwayFromBattle: ; 3d8b3
; Run away from battle, with or without item ; Run away from battle, with or without item
ld a, [BattleType] ld a, [BattleType]
cp BATTLETYPE_DEBUG cp BATTLETYPE_DEBUG
jp z, .asm_3d9a2 jp z, .can_escape
cp BATTLETYPE_CONTEST cp BATTLETYPE_CONTEST
jp z, .asm_3d9a2 jp z, .can_escape
cp BATTLETYPE_TRAP cp BATTLETYPE_TRAP
jp z, .asm_3d98d jp z, .cant_escape
cp BATTLETYPE_CELEBI cp BATTLETYPE_CELEBI
jp z, .asm_3d98d jp z, .cant_escape
cp BATTLETYPE_SHINY cp BATTLETYPE_SHINY
jp z, .asm_3d98d jp z, .cant_escape
cp BATTLETYPE_SUICUNE cp BATTLETYPE_SUICUNE
jp z, .asm_3d98d jp z, .cant_escape
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
jp nz, .asm_3d9a2 jp nz, .can_escape
ld a, [wBattleMode] ld a, [wBattleMode]
dec a dec a
jp nz, .asm_3d992 jp nz, .cant_run_from_trainer
ld a, [EnemySubStatus5] ld a, [EnemySubStatus5]
bit SUBSTATUS_CANT_RUN, a bit SUBSTATUS_CANT_RUN, a
jp nz, .asm_3d98d jp nz, .cant_escape
ld a, [wc730] ld a, [wc730]
and a and a
jp nz, .asm_3d98d jp nz, .cant_escape
push hl push hl
push de push de
@@ -3914,15 +3914,15 @@ TryToRunAwayFromBattle: ; 3d8b3
cp HELD_ESCAPE cp HELD_ESCAPE
pop de pop de
pop hl pop hl
jr nz, .asm_3d916 jr nz, .no_flee_item
call SetPlayerTurn call SetPlayerTurn
call GetItemName call GetItemName
ld hl, BattleText_UserFledUsingAStringBuffer1 ld hl, BattleText_UserFledUsingAStringBuffer1
call StdBattleTextBox call StdBattleTextBox
jp .asm_3d9a2 jp .can_escape
.asm_3d916 .no_flee_item
ld a, [wd267] ld a, [wd267]
inc a inc a
ld [wd267], a ld [wd267], a
@@ -3940,7 +3940,7 @@ TryToRunAwayFromBattle: ; 3d8b3
ld hl, hStringCmpString1 ld hl, hStringCmpString1
ld c, $2 ld c, $2
call StringCmp call StringCmp
jr nc, .asm_3d9a2 jr nc, .can_escape
xor a xor a
ld [hMultiplicand], a ld [hMultiplicand], a
@@ -3951,52 +3951,52 @@ TryToRunAwayFromBattle: ; 3d8b3
ld [hDividend + 0], a ld [hDividend + 0], a
ld a, [hProduct + 3] ld a, [hProduct + 3]
ld [hDividend + 1], a ld [hDividend + 1], a
ld a, [$ffb1] ld a, [hStringCmpString1 + 0]
ld b, a ld b, a
ld a, [$ffb2] ld a, [hStringCmpString1 + 1]
srl b srl b
rr a rr a
srl b srl b
rr a rr a
and a and a
jr z, .asm_3d9a2 jr z, .can_escape
ld [hDivisor], a ld [hDivisor], a
ld b, $2 ld b, $2
call Divide call Divide
ld a, [hQuotient + 1] ld a, [hQuotient + 1]
and a and a
jr nz, .asm_3d9a2 jr nz, .can_escape
ld a, [wd267] ld a, [wd267]
ld c, a ld c, a
.asm_3d96c .loop
dec c dec c
jr z, .asm_3d97a jr z, .cant_escape_2
ld b, $1e ld b, $1e
ld a, [hQuotient + 2] ld a, [hQuotient + 2]
add b add b
ld [$ffb6], a ld [hQuotient + 2], a
jr c, .asm_3d9a2 jr c, .can_escape
jr .asm_3d96c jr .loop
.asm_3d97a .cant_escape_2
call BattleRandom call BattleRandom
ld b, a ld b, a
ld a, [$ffb6] ld a, [hQuotient + 2]
cp b cp b
jr nc, .asm_3d9a2 jr nc, .can_escape
ld a, $1 ld a, $1
ld [wd0ec], a ld [wd0ec], a
ld hl, BattleText_CantEscape2 ld hl, BattleText_CantEscape2
jr .asm_3d995 jr .print_inescapable_text
.asm_3d98d .cant_escape
ld hl, BattleText_CantEscape ld hl, BattleText_CantEscape
jr .asm_3d995 jr .print_inescapable_text
.asm_3d992 .cant_run_from_trainer
ld hl, BattleText_TheresNoEscapeFromTrainerBattle ld hl, BattleText_TheresNoEscapeFromTrainerBattle
.asm_3d995 .print_inescapable_text
call StdBattleTextBox call StdBattleTextBox
ld a, $1 ld a, $1
ld [wd266], a ld [wd266], a
@@ -4004,11 +4004,11 @@ TryToRunAwayFromBattle: ; 3d8b3
and a and a
ret ret
.asm_3d9a2 .can_escape
ld a, [wLinkMode] ld a, [wLinkMode]
and a and a
ld a, $2 ld a, DRAW
jr z, .asm_3d9cf jr z, .fled
call LoadTileMapToTempTileMap call LoadTileMapToTempTileMap
xor a xor a
ld [wd0ec], a ld [wd0ec], a
@@ -4023,11 +4023,11 @@ TryToRunAwayFromBattle: ; 3d8b3
; Got away safely ; Got away safely
ld a, [wBattleAction] ld a, [wBattleAction]
cp $f cp BATTLEACTION_FORFEIT
ld a, $2 ld a, DRAW
jr z, .asm_3d9cf jr z, .fled
dec a dec a
.asm_3d9cf .fled
ld b, a ld b, a
ld a, [wBattleResult] ld a, [wBattleResult]
and $c0 and $c0
@@ -4066,18 +4066,18 @@ Function3da0d: ; 3da0d
ld a, MON_SPECIES ld a, MON_SPECIES
call GetPartyParamLocation call GetPartyParamLocation
ld de, BattleMonSpecies ld de, BattleMonSpecies
ld bc, 1 + 1 + NUM_MOVES ; species, item, moves ; BattleMonDVs - BattleMonSpecies ld bc, MON_ID
call CopyBytes call CopyBytes
ld bc, PartyMon1DVs - (PartyMon1Species + 1 + 1 + NUM_MOVES) ld bc, (MON_DVS) - (MON_ID)
add hl, bc add hl, bc
ld de, BattleMonDVs ld de, BattleMonDVs
ld bc, 2 + NUM_MOVES + 1 ; DVs, PP, happiness ; BattleMonLevel - BattleMonDVs ld bc, (MON_PKRUS) - (MON_DVS)
call CopyBytes call CopyBytes
rept 3 rept 3
inc hl inc hl
endr endr
ld de, BattleMonLevel ld de, BattleMonLevel
ld bc, 1 + 1 + 1 + 2 + 2 * 6 ; level, status, unused, stats ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_LEVEL)
call CopyBytes call CopyBytes
ld a, [BattleMonSpecies] ld a, [BattleMonSpecies]
ld [TempBattleMonSpecies], a ld [TempBattleMonSpecies], a
@@ -4158,18 +4158,18 @@ Function3dabd: ; 3dabd
ld hl, OTPartyMon1Species ld hl, OTPartyMon1Species
call GetPartyLocation call GetPartyLocation
ld de, EnemyMonSpecies ld de, EnemyMonSpecies
ld bc, 1 + 1 + NUM_MOVES ld bc, MON_ID
call CopyBytes call CopyBytes
ld bc, OTPartyMon1DVs - (OTPartyMon1Species + 1 + 1 + NUM_MOVES) ld bc, (MON_DVS) - (MON_ID)
add hl, bc add hl, bc
ld de, EnemyMonDVs ld de, EnemyMonDVs
ld bc, 2 + NUM_MOVES + 1 ld bc, (MON_PKRUS) - (MON_DVS)
call CopyBytes call CopyBytes
rept 3 rept 3
inc hl inc hl
endr endr
ld de, EnemyMonLevel ld de, EnemyMonLevel
ld bc, 1 + 1 + 1 + 2 + 2 * 6 ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_LEVEL)
call CopyBytes call CopyBytes
ld a, [EnemyMonSpecies] ld a, [EnemyMonSpecies]
ld [CurSpecies], a ld [CurSpecies], a
@@ -4182,7 +4182,7 @@ endr
call CopyBytes call CopyBytes
ld hl, EnemyMonAttack ld hl, EnemyMonAttack
ld de, EnemyStats ld de, EnemyStats
ld bc, 2 * 5 ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_ATK)
call CopyBytes call CopyBytes
call Function3ec30 call Function3ec30
ld hl, BaseType1 ld hl, BaseType1
@@ -4456,9 +4456,9 @@ Function3dce6: ; 3dce6
; 3dcf9 ; 3dcf9
Function3dcf9: ; 3dcf9 Function3dcf9: ; 3dcf9
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3dd17 jr z, .player_1
call SetPlayerTurn call SetPlayerTurn
call Function3dd2f call Function3dd2f
call Function3dde9 call Function3dde9
@@ -4468,7 +4468,7 @@ Function3dcf9: ; 3dcf9
call Function3dde9 call Function3dde9
jp Function3de51 jp Function3de51
.asm_3dd17 .player_1
call SetEnemyTurn call SetEnemyTurn
call Function3dd2f call Function3dd2f
call Function3dde9 call Function3dde9
@@ -4699,13 +4699,13 @@ Function3de51: ; 3de51
; 3de97 ; 3de97
Function3de97: ; 3de97 Function3de97: ; 3de97
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3dea3 jr z, .player_1
call Function3dea9 call Function3dea9
jp Function3deb1 jp Function3deb1
.asm_3dea3 .player_1
call Function3deb1 call Function3deb1
jp Function3dea9 jp Function3dea9
; 3dea9 ; 3dea9
@@ -5461,41 +5461,41 @@ Function3e3ad: ; 3e3ad
and a and a
jr nz, .asm_3e3cf jr nz, .asm_3e3cf
.asm_3e3ca .switch
call BattleMonEntrance call BattleMonEntrance
and a and a
ret ret
.asm_3e3cf .asm_3e3cf
ld a, [wBattleAction] ld a, [wBattleAction]
cp $e cp BATTLEACTION_E
jp z, .asm_3e3ca jp z, .switch
cp $d cp BATTLEACTION_D
jp z, .asm_3e3ca jp z, .switch
cp NUM_MOVES cp BATTLEACTION_SWITCH1
jp c, .asm_3e3ca jp c, .switch
cp $f cp BATTLEACTION_FORFEIT
jr nz, .asm_3e3e9 jr nz, .dont_run
call WildFled_EnemyFled_LinkBattleCanceled call WildFled_EnemyFled_LinkBattleCanceled
ret ret
.asm_3e3e9 .dont_run
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_3e3f7 jr z, .player_1
call BattleMonEntrance call BattleMonEntrance
call Function3e3ff call EnemyMonEntrance
and a and a
ret ret
.asm_3e3f7 .player_1
call Function3e3ff call EnemyMonEntrance
call BattleMonEntrance call BattleMonEntrance
and a and a
ret ret
; 3e3ff ; 3e3ff
Function3e3ff: ; 3e3ff EnemyMonEntrance: ; 3e3ff
callab AI_Switch callab AI_Switch
call SetEnemyTurn call SetEnemyTurn
jp SpikesDamage jp SpikesDamage
@@ -6070,11 +6070,11 @@ Function3e7c1: ; 3e7c1
call z, Function3e8e4 call z, Function3e8e4
call Call_LoadTempTileMapToTileMap call Call_LoadTempTileMapToTileMap
ld a, [wBattleAction] ld a, [wBattleAction]
cp $e cp BATTLEACTION_E
jp z, .asm_3e8bd jp z, .asm_3e8bd
cp $d cp BATTLEACTION_D
jp z, .asm_3e82c jp z, .asm_3e82c
cp NUM_MOVES cp BATTLEACTION_SWITCH1
jp nc, ResetVarsForSubstatusRage jp nc, ResetVarsForSubstatusRage
ld [CurEnemyMoveNum], a ld [CurEnemyMoveNum], a
ld c, a ld c, a

View File

@@ -344,3 +344,27 @@ SUBSTATUS_CURLED EQU 0
const ENEMY_COUNTER_MOVE const ENEMY_COUNTER_MOVE
const PLAYER_LAST_MOVE const PLAYER_LAST_MOVE
const ENEMY_LAST_MOVE const ENEMY_LAST_MOVE
; wBattleAction
const_def
const BATTLEACTION_MOVE1
const BATTLEACTION_MOVE2
const BATTLEACTION_MOVE3
const BATTLEACTION_MOVE4
const BATTLEACTION_SWITCH1
const BATTLEACTION_SWITCH2
const BATTLEACTION_SWITCH3
const BATTLEACTION_SWITCH4
const BATTLEACTION_SWITCH5
const BATTLEACTION_SWITCH6
const BATTLEACTION_A
const BATTLEACTION_B
const BATTLEACTION_C
const BATTLEACTION_D
const BATTLEACTION_E
const BATTLEACTION_FORFEIT
const_def
const WIN
const LOSE
const DRAW

View File

@@ -137,7 +137,7 @@ Init:: ; 17d
ld [rLCDC], a ld [rLCDC], a
ld a, -1 ld a, -1
ld [$ffcb], a ld [hLinkPlayerNumber], a
callba Function9890 callba Function9890

View File

@@ -14,7 +14,7 @@ Serial:: ; 6ef
bit 0, a bit 0, a
jr nz, .asm_721 jr nz, .asm_721
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
inc a ; is it equal to -1? inc a ; is it equal to -1?
jr z, .asm_726 jr z, .asm_726
@@ -24,7 +24,7 @@ Serial:: ; 6ef
ld a, [hSerialSend] ld a, [hSerialSend]
ld [rSB], a ld [rSB], a
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr z, .asm_752 jr z, .asm_752
@@ -51,7 +51,7 @@ Serial:: ; 6ef
.asm_730 .asm_730
ld [hSerialReceive], a ld [hSerialReceive], a
ld [$ffcb], a ld [hLinkPlayerNumber], a
cp $2 cp $2
jr z, .asm_74f jr z, .asm_74f
@@ -128,7 +128,7 @@ Function75f:: ; 75f
Function78a:: ; 78a Function78a:: ; 78a
xor a xor a
ld [$ffca], a ld [$ffca], a
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr nz, .asm_79b jr nz, .asm_79b
ld a, $1 ld a, $1
@@ -140,7 +140,7 @@ Function78a:: ; 78a
ld a, [$ffca] ld a, [$ffca]
and a and a
jr nz, .asm_7e5 jr nz, .asm_7e5
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr nz, .asm_7c0 jr nz, .asm_7c0
call Function82b call Function82b
@@ -172,7 +172,7 @@ Function78a:: ; 78a
dec a dec a
ld [wcf5d + 1], a ld [wcf5d + 1], a
jr nz, .asm_79b jr nz, .asm_79b
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_7e5 jr z, .asm_7e5
ld a, $ff ld a, $ff
@@ -349,7 +349,7 @@ Function8c1:: ; 8c1
ld a, [wcf56] ld a, [wcf56]
add b add b
ld [hSerialSend], a ld [hSerialSend], a
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr nz, .asm_8ee jr nz, .asm_8ee
ld a, $1 ld a, $1
@@ -380,7 +380,7 @@ Function8f3:: ; 8f3
Function908:: ; 908 Function908:: ; 908
xor a xor a
ld [hSerialSend], a ld [hSerialSend], a
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
ret nz ret nz
ld a, $1 ld a, $1

View File

@@ -70,6 +70,8 @@ hMoneyTemp EQU $ffc3
hLCDStatCustom EQU $ffc6 hLCDStatCustom EQU $ffc6
hLinkPlayerNumber EQU $ffcb
hSerialSend EQU $ffcd hSerialSend EQU $ffcd
hSerialReceive EQU $ffce hSerialReceive EQU $ffce

View File

@@ -25212,7 +25212,7 @@ Function2805d: ; 2805d
xor a xor a
ld [wcf56], a ld [wcf56], a
call Function87d call Function87d
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr nz, .asm_28091 jr nz, .asm_28091
ld c, $3 ld c, $3
@@ -25338,7 +25338,7 @@ Function2805d: ; 2805d
ld [wd103], a ld [wd103], a
ld de, MUSIC_NONE ld de, MUSIC_NONE
call PlayMusic call PlayMusic
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
ld c, 66 ld c, 66
call z, DelayFrames call z, DelayFrames
@@ -25355,7 +25355,7 @@ Function28177: ; 28177
ld a, [ScriptVar] ld a, [ScriptVar]
and a and a
jp z, Function283b2 jp z, Function283b2
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr nz, .asm_281ae jr nz, .asm_281ae
ld c, $3 ld c, $3
@@ -25580,7 +25580,7 @@ Function28177: ; 28177
ld [wd103], a ld [wd103], a
ld de, MUSIC_NONE ld de, MUSIC_NONE
call PlayMusic call PlayMusic
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
ld c, 66 ld c, 66
call z, DelayFrames call z, DelayFrames
@@ -26319,7 +26319,7 @@ Function2879e: ; 2879e
; 287ab ; 287ab
Function287ab: ; 287ab Function287ab: ; 287ab
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
ret z ret z
ld hl, EnemyMonSpecies ld hl, EnemyMonSpecies
@@ -27061,7 +27061,7 @@ Function28b87: ; 28b87
call LoadFontsBattleExtra call LoadFontsBattleExtra
ld b, $8 ld b, $8
call GetSGBLayout call GetSGBLayout
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
jr z, .asm_28de4 jr z, .asm_28de4
predef Function28f24 predef Function28f24
@@ -28855,7 +28855,7 @@ Special_AbortLink: ; 29c92
ld c, $3 ld c, $3
call DelayFrames call DelayFrames
ld a, -1 ld a, -1
ld [$ffcb], a ld [hLinkPlayerNumber], a
xor a xor a
ld [rSB], a ld [rSB], a
ld [hSerialReceive], a ld [hSerialReceive], a
@@ -28881,7 +28881,7 @@ Special_AbortLink: ; 29c92
ld c, $3 ld c, $3
call DelayFrames call DelayFrames
ld a, -1 ld a, -1
ld [$ffcb], a ld [hLinkPlayerNumber], a
ld a, [rIF] ld a, [rIF]
push af push af
xor a xor a
@@ -28950,13 +28950,13 @@ Special_WaitForLinkedFriend: ; 29d11
ld a, $ff ld a, $ff
ld [wcf5b], a ld [wcf5b], a
.asm_29d39 .asm_29d39
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $2 cp $2
jr z, .asm_29d79 jr z, .asm_29d79
cp $1 cp $1
jr z, .asm_29d79 jr z, .asm_29d79
ld a, -1 ld a, -1
ld [$ffcb], a ld [hLinkPlayerNumber], a
ld a, $2 ld a, $2
ld [rSB], a ld [rSB], a
xor a xor a
@@ -29232,7 +29232,7 @@ Function29f04: ; 29f04
ld c, $3 ld c, $3
call DelayFrames call DelayFrames
ld a, -1 ld a, -1
ld [$ffcb], a ld [hLinkPlayerNumber], a
ld a, $2 ld a, $2
ld [rSB], a ld [rSB], a
xor a xor a
@@ -29271,7 +29271,7 @@ Function29f17: ; 29f17
; 29f47 ; 29f47
Special_CableClubCheckWhichChris: ; 29f47 Special_CableClubCheckWhichChris: ; 29f47
ld a, [$ffcb] ld a, [hLinkPlayerNumber]
cp $1 cp $1
ld a, $1 ld a, $1
jr z, .yes jr z, .yes

View File

@@ -4005,7 +4005,7 @@ Function1019ee: ; 1019ee
ld a, $1 ld a, $1
.asm_101a1e .asm_101a1e
ld [$ffcb], a ld [hLinkPlayerNumber], a
ret ret
; 101a21 ; 101a21
@@ -4024,7 +4024,7 @@ Function101a21: ; 101a21
xor a xor a
ld [wc2d7], a ld [wc2d7], a
ld a, $ff ld a, $ff
ld [$ffcb], a ld [hLinkPlayerNumber], a
pop af pop af
ld [Options], a ld [Options], a
ret ret