Sync with pokecrystal up to 8873506b1

This commit is contained in:
xCrystal
2023-07-26 20:50:16 -04:00
parent 193882bc77
commit d6001be90c
30 changed files with 213 additions and 117 deletions

View File

@@ -175,6 +175,7 @@ AI_TryItem:
ld b, h
ld c, l
ld hl, AI_Items
; BUG: AI might use its base reward value as an item (see docs/bugs_and_glitches.md)
ld de, wEnemyTrainerItem1
.loop
ld a, [hl]

View File

@@ -3522,7 +3522,7 @@ TryToRunAwayFromBattle:
jp z, .cant_escape
cp BATTLETYPE_CELEBI
jp z, .cant_escape
cp BATTLETYPE_SHINY
cp BATTLETYPE_FORCESHINY
jp z, .cant_escape
cp BATTLETYPE_SUICUNE
jp z, .cant_escape
@@ -5954,7 +5954,7 @@ LoadEnemyMon:
; Forced shiny battle type
; Used by Red Gyarados at Lake of Rage
cp BATTLETYPE_SHINY
cp BATTLETYPE_FORCESHINY
jr nz, .GenerateDVs
ld b, ATKDEFDV_SHINY ; $ea

View File

@@ -4161,14 +4161,14 @@ RaiseStat:
add hl, bc
ld b, [hl]
inc b
ld a, $d
ld a, MAX_STAT_LEVEL
cp b
jp c, .cant_raise_stat
ld a, [wLoweredStat]
and $f0
jr z, .got_num_stages
inc b
ld a, $d
ld a, MAX_STAT_LEVEL
cp b
jr nc, .got_num_stages
ld b, a
@@ -4176,7 +4176,7 @@ RaiseStat:
ld [hl], b
push hl
ld a, c
cp $5
cp ACCURACY
jr nc, .done_calcing_stats
ld hl, wBattleMonStats + 1
ld de, wPlayerStats
@@ -4684,7 +4684,7 @@ LowerStat:
.got_num_stages
ld [hl], b
ld a, c
cp 5
cp ACCURACY
jr nc, .accuracy_evasion
push hl
@@ -4955,7 +4955,7 @@ SetBattleDraw:
BattleCommand_ForceSwitch:
ld a, [wBattleType]
cp BATTLETYPE_SHINY
cp BATTLETYPE_FORCESHINY
jp z, .fail
cp BATTLETYPE_TRAP
jp z, .fail

View File

@@ -1,6 +1,6 @@
BattleCommand_Teleport:
ld a, [wBattleType]
cp BATTLETYPE_SHINY
cp BATTLETYPE_FORCESHINY
jr z, .failed
cp BATTLETYPE_TRAP
jr z, .failed

View File

@@ -20,11 +20,11 @@ ShowPlayerMonsRemaining:
ld de, wPartyCount
call StageBallTilesData
; ldpixel wPlaceBallsX, 12, 12
ld a, 12 * 8
ld a, 12 * TILE_WIDTH
ld hl, wPlaceBallsX
ld [hli], a
ld [hl], a
ld a, 8
ld a, TILE_WIDTH
ld [wPlaceBallsDirection], a
ld hl, wShadowOAMSprite00
jp LoadTrainerHudOAM
@@ -36,10 +36,10 @@ ShowOTTrainerMonsRemaining:
call StageBallTilesData
; ldpixel wPlaceBallsX, 9, 4
ld hl, wPlaceBallsX
ld a, 9 * 8
ld a, 9 * TILE_WIDTH
ld [hli], a
ld [hl], 4 * 8
ld a, -8
ld [hl], 4 * TILE_WIDTH
ld a, -TILE_WIDTH
ld [wPlaceBallsDirection], a
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
jp LoadTrainerHudOAM
@@ -182,10 +182,10 @@ LinkBattle_TrainerHuds:
ld de, wPartyCount
call StageBallTilesData
ld hl, wPlaceBallsX
ld a, 10 * 8
ld a, 10 * TILE_WIDTH
ld [hli], a
ld [hl], 8 * 8
ld a, 8
ld [hl], 8 * TILE_WIDTH
ld a, TILE_WIDTH
ld [wPlaceBallsDirection], a
ld hl, wShadowOAMSprite00
call LoadTrainerHudOAM
@@ -194,9 +194,9 @@ LinkBattle_TrainerHuds:
ld de, wOTPartyCount
call StageBallTilesData
ld hl, wPlaceBallsX
ld a, 10 * 8
ld a, 10 * TILE_WIDTH
ld [hli], a
ld [hl], 13 * 8
ld [hl], 13 * TILE_WIDTH
ld hl, wShadowOAMSprite00 + PARTY_LENGTH * SPRITEOAMSTRUCT_LENGTH
jp LoadTrainerHudOAM

View File

@@ -243,7 +243,7 @@ InitBattleAnimBuffer:
add hl, bc
ld a, [hli]
ld d, a
ld a, (-10 * 8) + 4
ld a, (-10 * TILE_WIDTH) + 4
sub d
ld [wBattleAnimTempXCoord], a
ld a, [hli]
@@ -251,7 +251,7 @@ InitBattleAnimBuffer:
ld a, [wBattleAnimTempFixY]
cp $ff
jr nz, .check_kinesis_softboiled_milkdrink
ld a, 5 * 8
ld a, 5 * TILE_WIDTH
add d
jr .done
@@ -270,7 +270,7 @@ InitBattleAnimBuffer:
jr nz, .no_sub
.do_sub
pop af
sub 1 * 8
sub 1 * TILE_WIDTH
jr .done
.no_sub

View File

@@ -347,7 +347,7 @@ FlyToAnim:
ld [hl], SPRITE_ANIM_SEQ_FLY_TO
ld hl, SPRITEANIMSTRUCT_VAR4
add hl, bc
ld [hl], 11 * 8
ld [hl], 11 * TILE_WIDTH
ld a, 64
ld [wFrameCounter], a
.loop

View File

@@ -675,7 +675,7 @@ Slots_InitReelTiles:
ld [hl], d
ld hl, REEL_X_COORD
add hl, bc
ld [hl], 6 * 8
ld [hl], 6 * TILE_WIDTH
call .OAM
ld bc, wReel2
@@ -693,7 +693,7 @@ Slots_InitReelTiles:
ld [hl], d
ld hl, REEL_X_COORD
add hl, bc
ld [hl], 10 * 8
ld [hl], 10 * TILE_WIDTH
call .OAM
ld bc, wReel3
@@ -711,7 +711,7 @@ Slots_InitReelTiles:
ld [hl], d
ld hl, REEL_X_COORD
add hl, bc
ld [hl], 14 * 8
ld [hl], 14 * TILE_WIDTH
call .OAM
ret
@@ -779,7 +779,7 @@ Slots_UpdateReelPositionAndOAM:
add hl, bc
ld a, [hl]
ld [wCurReelXCoord], a
ld a, 10 * 8
ld a, 10 * TILE_WIDTH
ld [wCurReelYCoord], a
ld hl, REEL_POSITION
add hl, bc
@@ -2010,7 +2010,7 @@ Slots_AnimateGolem:
jr c, .play_sound
dec [hl]
ld e, a
ld d, 14 * 8
ld d, 14 * TILE_WIDTH
farcall BattleAnim_Sine_e
ld a, e
ld hl, SPRITEANIMSTRUCT_YOFFSET
@@ -2037,7 +2037,7 @@ Slots_AnimateGolem:
ld a, [hl]
inc [hl]
inc [hl]
cp 9 * 8
cp 9 * TILE_WIDTH
jr nc, .restart
and $3
ret nz
@@ -2081,7 +2081,7 @@ Slots_AnimateChansey:
add hl, bc
ld a, [hl]
inc [hl]
cp 13 * 8
cp 13 * TILE_WIDTH
jr z, .limit
and $f
ret nz

View File

@@ -576,7 +576,7 @@ InitCGBPals::
ldh [rVBK], a
ld a, 1 << rBGPI_AUTO_INCREMENT
ldh [rBGPI], a
ld c, 4 * 8
ld c, 4 * TILE_WIDTH
.bgpals_loop
ld a, LOW(PALRGB_WHITE)
ldh [rBGPD], a
@@ -586,7 +586,7 @@ InitCGBPals::
jr nz, .bgpals_loop
ld a, 1 << rOBPI_AUTO_INCREMENT
ldh [rOBPI], a
ld c, 4 * 8
ld c, 4 * TILE_WIDTH
.obpals_loop
ld a, LOW(PALRGB_WHITE)
ldh [rOBPD], a

View File

@@ -197,8 +197,8 @@ MoveList_InitAnimatedMonIcon:
ld [wCurIcon], a
xor a
call GetIconGFX
ld d, 3 * 8 + 2 ; depixel 3, 4, 2, 4
ld e, 4 * 8 + 4
ld d, 3 * TILE_WIDTH + 2 ; depixel 3, 4, 2, 4
ld e, 4 * TILE_WIDTH + 4
ld a, SPRITE_ANIM_INDEX_PARTY_MON
call _InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID

View File

@@ -384,7 +384,7 @@ AnimSeq_SlotsChanseyEgg:
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp 15 * 8
cp 15 * TILE_WIDTH
jr c, .move_right
call DeinitializeSprite
ld a, $4
@@ -686,7 +686,7 @@ AnimSeq_FlyLeaf:
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
cp -9 * 8
cp -9 * TILE_WIDTH
jr nc, .delete_leaf
inc [hl]
inc [hl]
@@ -715,7 +715,7 @@ AnimSeq_FlyTo:
ld hl, SPRITEANIMSTRUCT_YCOORD
add hl, bc
ld a, [hl]
cp 10 * 8 + 4
cp 10 * TILE_WIDTH + 4
ret z
ld hl, SPRITEANIMSTRUCT_YCOORD

View File

@@ -825,10 +825,10 @@ Intro_PlacePlayerSprite:
.sprites
db 4
; y pxl, x pxl, tile offset
db 9 * 8 + 4, 9 * 8, 0
db 9 * 8 + 4, 10 * 8, 1
db 10 * 8 + 4, 9 * 8, 2
db 10 * 8 + 4, 10 * 8, 3
db 9 * TILE_WIDTH + 4, 9 * TILE_WIDTH, 0
db 9 * TILE_WIDTH + 4, 10 * TILE_WIDTH, 1
db 10 * TILE_WIDTH + 4, 9 * TILE_WIDTH, 2
db 10 * TILE_WIDTH + 4, 10 * TILE_WIDTH, 3
const_def

View File

@@ -365,7 +365,7 @@ NamingScreenJoypadLoop:
depixel 10, 3
call NamingScreen_IsTargetBox
jr nz, .got_cursor_position
ld d, 8 * 8
ld d, 8 * TILE_WIDTH
.got_cursor_position
ld a, SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
call InitSpriteAnimStruct

View File

@@ -880,12 +880,12 @@ MovementFunction_Shadow:
add hl, de
ld a, [hl]
maskbits NUM_DIRECTIONS
ld d, 1 * 8 + 6
ld d, 1 * TILE_WIDTH + 6
cp DOWN
jr z, .ok
cp UP
jr z, .ok
ld d, 1 * 8 + 4
ld d, 1 * TILE_WIDTH + 4
.ok
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
@@ -909,7 +909,7 @@ MovementFunction_Emote:
ld [hl], 0
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], -2 * 8
ld [hl], -2 * TILE_WIDTH
ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], 0

View File

@@ -2302,10 +2302,10 @@ Pokedex_GetArea:
.PlayerOAM:
; y pxl, x pxl, tile offset
db -1 * 8, -1 * 8, 0 ; top left
db -1 * 8, 0 * 8, 1 ; top right
db 0 * 8, -1 * 8, 2 ; bottom left
db 0 * 8, 0 * 8, 3 ; bottom right
db -1 * TILE_WIDTH, -1 * TILE_WIDTH, 0 ; top left
db -1 * TILE_WIDTH, 0 * TILE_WIDTH, 1 ; top right
db 0 * TILE_WIDTH, -1 * TILE_WIDTH, 2 ; bottom left
db 0 * TILE_WIDTH, 0 * TILE_WIDTH, 3 ; bottom right
db $80 ; terminator
.CheckPlayerLocation:

View File

@@ -769,9 +769,9 @@ EggHatch_CrackShell:
ret nc
swap a
srl a
add 9 * 8 + 4
add 9 * TILE_WIDTH + 4
ld d, a
ld e, 11 * 8
ld e, 11 * TILE_WIDTH
ld a, SPRITE_ANIM_INDEX_EGG_CRACK
call InitSpriteAnimStruct
ld hl, SPRITEANIMSTRUCT_TILE_ID
@@ -828,7 +828,7 @@ Hatch_InitShellFragments:
MACRO shell_fragment
; y tile, y pxl, x tile, x pxl, frameset offset, ???
db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5 - SPRITE_ANIM_FRAMESET_EGG_HATCH_1, \6
db (\1 * TILE_WIDTH) % $100 + \2, (\3 * TILE_WIDTH) % $100 + \4, \5 - SPRITE_ANIM_FRAMESET_EGG_HATCH_1, \6
ENDM
.SpriteData:

View File

@@ -53,7 +53,7 @@ HealPartyMon:
ret
ComputeHPBarPixels:
; e = bc * (6 * 8) / de
; e = bc * HP_BAR_LENGTH_PX / de
ld a, b
or c
jr z, .zero
@@ -64,7 +64,7 @@ ComputeHPBarPixels:
ldh [hMultiplicand + 1], a
ld a, c
ldh [hMultiplicand + 2], a
ld a, 6 * 8
ld a, HP_BAR_LENGTH_PX
ldh [hMultiplier], a
call Multiply
; We need de to be under 256 because hDivisor is only 1 byte.