You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
map setup and warps
This commit is contained in:
430
engine/anim_hp_bar.asm
Executable file
430
engine/anim_hp_bar.asm
Executable file
@@ -0,0 +1,430 @@
|
||||
_AnimateHPBar: ; d627
|
||||
call Functiond65f
|
||||
jr c, .do_player
|
||||
call Functiond670
|
||||
.enemy_loop
|
||||
push bc
|
||||
push hl
|
||||
call Functiond6e2
|
||||
pop hl
|
||||
pop bc
|
||||
push af
|
||||
push bc
|
||||
push hl
|
||||
call Functiond730
|
||||
call Functiond7c9
|
||||
pop hl
|
||||
pop bc
|
||||
pop af
|
||||
jr nc, .enemy_loop
|
||||
ret
|
||||
|
||||
.do_player
|
||||
call Functiond670
|
||||
.player_loop
|
||||
push bc
|
||||
push hl
|
||||
call Functiond6f5
|
||||
pop hl
|
||||
pop bc
|
||||
ret c
|
||||
push af
|
||||
push bc
|
||||
push hl
|
||||
call Functiond749
|
||||
call Functiond7c9
|
||||
pop hl
|
||||
pop bc
|
||||
pop af
|
||||
jr nc, .player_loop
|
||||
ret
|
||||
; d65f
|
||||
|
||||
Functiond65f: ; d65f
|
||||
ld a, [Buffer2]
|
||||
and a
|
||||
jr nz, .player
|
||||
ld a, [Buffer1]
|
||||
cp 6 * 8
|
||||
jr nc, .player
|
||||
and a
|
||||
ret
|
||||
|
||||
.player
|
||||
scf
|
||||
ret
|
||||
; d670
|
||||
|
||||
Functiond670: ; d670
|
||||
; Buffer1-2: Max HP
|
||||
; Buffer3-4: Old HP
|
||||
; Buffer5-6: New HP
|
||||
push hl
|
||||
ld hl, Buffer1
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
pop hl
|
||||
call ComputeHPBarPixels
|
||||
ld a, e
|
||||
ld [wd1f1], a
|
||||
|
||||
ld a, [Buffer5]
|
||||
ld c, a
|
||||
ld a, [Buffer6]
|
||||
ld b, a
|
||||
ld a, [Buffer1]
|
||||
ld e, a
|
||||
ld a, [Buffer2]
|
||||
ld d, a
|
||||
call ComputeHPBarPixels
|
||||
ld a, e
|
||||
ld [wd1f2], a
|
||||
|
||||
push hl
|
||||
ld hl, Buffer3
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
pop hl
|
||||
ld a, e
|
||||
sub c
|
||||
ld e, a
|
||||
ld a, d
|
||||
sbc b
|
||||
ld d, a
|
||||
jr c, .asm_d6c1
|
||||
ld a, [Buffer3]
|
||||
ld [wd1f5], a
|
||||
ld a, [Buffer5]
|
||||
ld [wd1f6], a
|
||||
ld bc, 1
|
||||
jr .asm_d6d9
|
||||
|
||||
.asm_d6c1
|
||||
ld a, [Buffer3]
|
||||
ld [wd1f6], a
|
||||
ld a, [Buffer5]
|
||||
ld [wd1f5], a
|
||||
ld a, e
|
||||
xor $ff
|
||||
inc a
|
||||
ld e, a
|
||||
ld a, d
|
||||
xor $ff
|
||||
ld d, a
|
||||
ld bc, rIE
|
||||
.asm_d6d9
|
||||
ld a, d
|
||||
ld [wd1f3], a
|
||||
ld a, e
|
||||
ld [wd1f4], a
|
||||
ret
|
||||
; d6e2
|
||||
|
||||
Functiond6e2: ; d6e2
|
||||
ld hl, wd1f1
|
||||
ld a, [wd1f2]
|
||||
cp [hl]
|
||||
jr nz, .asm_d6ed
|
||||
scf
|
||||
ret
|
||||
|
||||
.asm_d6ed
|
||||
ld a, c
|
||||
add [hl]
|
||||
ld [hl], a
|
||||
call Functiond839
|
||||
and a
|
||||
ret
|
||||
; d6f5
|
||||
|
||||
Functiond6f5: ; d6f5
|
||||
.asm_d6f5
|
||||
ld hl, Buffer3
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, e
|
||||
cp [hl]
|
||||
jr nz, .asm_d707
|
||||
inc hl
|
||||
ld a, d
|
||||
cp [hl]
|
||||
jr nz, .asm_d707
|
||||
scf
|
||||
ret
|
||||
|
||||
.asm_d707
|
||||
ld l, e
|
||||
ld h, d
|
||||
add hl, bc
|
||||
ld a, l
|
||||
ld [Buffer3], a
|
||||
ld a, h
|
||||
ld [wd1ed], a
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld hl, Buffer1
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld a, [hli]
|
||||
ld c, a
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
call ComputeHPBarPixels
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ld a, e
|
||||
ld hl, wd1f1
|
||||
cp [hl]
|
||||
jr z, .asm_d6f5
|
||||
ld [hl], a
|
||||
and a
|
||||
ret
|
||||
; d730
|
||||
|
||||
Functiond730: ; d730
|
||||
call Functiond784
|
||||
ld d, $6
|
||||
ld a, [wd10a]
|
||||
and $1
|
||||
ld b, a
|
||||
ld a, [wd1f1]
|
||||
ld e, a
|
||||
ld c, a
|
||||
push de
|
||||
call Functiond771
|
||||
pop de
|
||||
call Functiond7b4
|
||||
ret
|
||||
; d749
|
||||
|
||||
Functiond749: ; d749
|
||||
call Functiond784
|
||||
ld a, [Buffer3]
|
||||
ld c, a
|
||||
ld a, [wd1ed]
|
||||
ld b, a
|
||||
ld a, [Buffer1]
|
||||
ld e, a
|
||||
ld a, [Buffer2]
|
||||
ld d, a
|
||||
call ComputeHPBarPixels
|
||||
ld c, e
|
||||
ld d, $6
|
||||
ld a, [wd10a]
|
||||
and $1
|
||||
ld b, a
|
||||
push de
|
||||
call Functiond771
|
||||
pop de
|
||||
call Functiond7b4
|
||||
ret
|
||||
; d771
|
||||
|
||||
Functiond771: ; d771
|
||||
ld a, [wd10a]
|
||||
cp $2
|
||||
jr nz, .skip
|
||||
ld a, $28
|
||||
add l
|
||||
ld l, a
|
||||
ld a, $0
|
||||
adc h
|
||||
ld h, a
|
||||
.skip
|
||||
call DrawBattleHPBar
|
||||
ret
|
||||
; d784
|
||||
|
||||
Functiond784: ; d784
|
||||
ld a, [wd10a]
|
||||
and a
|
||||
ret z
|
||||
cp $1
|
||||
jr z, .load_15
|
||||
ld de, $16
|
||||
jr .loaded_de
|
||||
|
||||
.load_15
|
||||
ld de, $15
|
||||
.loaded_de
|
||||
push hl
|
||||
add hl, de
|
||||
ld a, " "
|
||||
rept 2
|
||||
ld [hli], a
|
||||
endr
|
||||
ld [hld], a
|
||||
dec hl
|
||||
ld a, [Buffer3]
|
||||
ld [StringBuffer2 + 1], a
|
||||
ld a, [wd1ed]
|
||||
ld [StringBuffer2], a
|
||||
ld de, StringBuffer2
|
||||
lb bc, 2, 3
|
||||
call PrintNum
|
||||
pop hl
|
||||
ret
|
||||
; d7b4
|
||||
|
||||
Functiond7b4: ; d7b4
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
ret z
|
||||
ld hl, wd1f0
|
||||
call SetHPPal
|
||||
ld a, [wd1f0]
|
||||
ld c, a
|
||||
callba Function8c43
|
||||
ret
|
||||
; d7c9
|
||||
|
||||
Functiond7c9: ; d7c9
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
jr nz, .cgb
|
||||
call DelayFrame
|
||||
call DelayFrame
|
||||
ret
|
||||
|
||||
.cgb
|
||||
ld a, [wd10a]
|
||||
and a
|
||||
jr z, .load_0
|
||||
cp $1
|
||||
jr z, .load_1
|
||||
ld a, [CurPartyMon]
|
||||
cp $3
|
||||
jr nc, .c_is_1
|
||||
ld c, $0
|
||||
jr .c_is_0
|
||||
|
||||
.c_is_1
|
||||
ld c, $1
|
||||
.c_is_0
|
||||
push af
|
||||
cp $2
|
||||
jr z, .skip_delay
|
||||
cp $5
|
||||
jr z, .skip_delay
|
||||
ld a, $2
|
||||
ld [hBGMapMode], a
|
||||
ld a, c
|
||||
ld [hBGMapThird], a
|
||||
call DelayFrame
|
||||
.skip_delay
|
||||
ld a, $1
|
||||
ld [hBGMapMode], a
|
||||
ld a, c
|
||||
ld [hBGMapThird], a
|
||||
call DelayFrame
|
||||
pop af
|
||||
cp $2
|
||||
jr z, .two_frames
|
||||
cp $5
|
||||
jr z, .two_frames
|
||||
ret
|
||||
|
||||
.two_frames
|
||||
inc c
|
||||
ld a, $2
|
||||
ld [hBGMapMode], a
|
||||
ld a, c
|
||||
ld [hBGMapThird], a
|
||||
call DelayFrame
|
||||
ld a, $1
|
||||
ld [hBGMapMode], a
|
||||
ld a, c
|
||||
ld [hBGMapThird], a
|
||||
call DelayFrame
|
||||
ret
|
||||
|
||||
.load_0
|
||||
ld c, $0
|
||||
jr .finish
|
||||
|
||||
.load_1
|
||||
ld c, $1
|
||||
.finish
|
||||
call DelayFrame
|
||||
ld a, c
|
||||
ld [hBGMapThird], a
|
||||
call DelayFrame
|
||||
ret
|
||||
; d839
|
||||
|
||||
Functiond839: ; d839
|
||||
ld a, [Buffer1]
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld hl, 0
|
||||
ld a, [wd1f1]
|
||||
cp 6 * 8
|
||||
jr nc, .coppy_buffer
|
||||
and a
|
||||
jr z, .return_zero
|
||||
call AddNTimes
|
||||
ld b, 0
|
||||
.loop
|
||||
ld a, l
|
||||
sub 6 * 8
|
||||
ld l, a
|
||||
ld a, h
|
||||
sbc $0
|
||||
ld h, a
|
||||
jr c, .done
|
||||
inc b
|
||||
jr .loop
|
||||
|
||||
.done
|
||||
push bc
|
||||
ld bc, $80
|
||||
add hl, bc
|
||||
pop bc
|
||||
ld a, l
|
||||
sub 6 * 8
|
||||
ld l, a
|
||||
ld a, h
|
||||
sbc $0
|
||||
ld h, a
|
||||
jr c, .no_carry
|
||||
inc b
|
||||
.no_carry
|
||||
ld a, [wd1f5]
|
||||
cp b
|
||||
jr nc, .finish
|
||||
ld a, [wd1f6]
|
||||
cp b
|
||||
jr c, .finish
|
||||
ld a, b
|
||||
.finish
|
||||
ld [Buffer3], a
|
||||
ret
|
||||
|
||||
.return_zero
|
||||
xor a
|
||||
ld [Buffer3], a
|
||||
ret
|
||||
|
||||
.coppy_buffer
|
||||
ld a, [Buffer1]
|
||||
ld [Buffer3], a
|
||||
ret
|
||||
; d88c
|
||||
@@ -264,8 +264,8 @@ StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
|
||||
ret
|
||||
|
||||
.DoFlashAnimation: ; 8c3b3 (23:43b3)
|
||||
ld a, [wd847]
|
||||
cp -1
|
||||
ld a, [wTimeOfDayPalset]
|
||||
cp %11111111 ; dark cave
|
||||
jr z, .done
|
||||
ld hl, wcf64
|
||||
ld a, [hl]
|
||||
|
||||
@@ -2349,7 +2349,7 @@ Function29dba: ; 29dba
|
||||
ld a, [ScriptVar]
|
||||
and a
|
||||
jr z, .asm_29e08
|
||||
ld bc, rIE
|
||||
ld bc, -1
|
||||
.asm_29de0
|
||||
dec bc
|
||||
ld a, b
|
||||
|
||||
@@ -3040,7 +3040,7 @@ Function579d: ; 579d
|
||||
ld [wd04e], a
|
||||
ld [PlayerObjectStepFrame], a
|
||||
call Function57bc
|
||||
callba CheckWarpCollision
|
||||
callba CheckWarpFacingDown
|
||||
call c, SpawnInFacingDown
|
||||
call SpawnInCustomFacing
|
||||
ret
|
||||
|
||||
@@ -33,11 +33,9 @@ MapSetupScripts: ; 15377
|
||||
|
||||
MapSetupScript_Teleport: ; 1538f
|
||||
db map_prolong_sprites
|
||||
|
||||
MapSetupScript_Fly: ; 15390
|
||||
db map_fade_out_palettes
|
||||
db map_keep_roam
|
||||
|
||||
MapSetupScript_Warp: ; 15392
|
||||
db map_lcd_off
|
||||
db map_sound_off
|
||||
@@ -61,7 +59,7 @@ MapSetupScript_Warp: ; 15392
|
||||
db map_fade_in_palettes
|
||||
db map_animations_on
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_BadWarp: ; 153a9
|
||||
db map_load_spawn
|
||||
@@ -85,7 +83,7 @@ MapSetupScript_BadWarp: ; 153a9
|
||||
db map_fade_in_palettes
|
||||
db map_animations_on
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_Connection: ; 153bf
|
||||
db map_animations_off
|
||||
@@ -104,14 +102,12 @@ MapSetupScript_Connection: ; 153bf
|
||||
db map_wildmons
|
||||
db map_update_roam
|
||||
db map_animations_on
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_Fall: ; 153d0
|
||||
db map_prolong_sprites
|
||||
|
||||
MapSetupScript_Door: ; 153d1
|
||||
db map_fade_out_palettes
|
||||
|
||||
MapSetupScript_Train: ; 153d2
|
||||
db map_load_warp
|
||||
db map_attributes
|
||||
@@ -133,7 +129,7 @@ MapSetupScript_Train: ; 153d2
|
||||
db map_animations_on
|
||||
db map_wildmons
|
||||
db map_update_roam
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_ReloadMap: ; 153e7
|
||||
db map_fade
|
||||
@@ -151,7 +147,7 @@ MapSetupScript_ReloadMap: ; 153e7
|
||||
db map_fade_in_palettes
|
||||
db map_animations_on
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_LinkReturn: ; 153f7
|
||||
db map_fade
|
||||
@@ -170,7 +166,7 @@ MapSetupScript_LinkReturn: ; 153f7
|
||||
db map_animations_on
|
||||
db map_wildmons
|
||||
db map_text_scroll_off
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_Continue: ; 15408
|
||||
db map_lcd_off
|
||||
@@ -190,12 +186,12 @@ MapSetupScript_Continue: ; 15408
|
||||
db map_fade_in_palettes
|
||||
db map_animations_on
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
MapSetupScript_Submenu: ; 1541a
|
||||
db map_load_blocks
|
||||
db map_connection_blocks
|
||||
db map_end_setup_script
|
||||
db map_end
|
||||
|
||||
|
||||
ReadMapSetupScript: ; 1541d
|
||||
|
||||
@@ -190,7 +190,7 @@ PlacePartymonHPBar: ; 50117
|
||||
ld d, a
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
predef DrawPartyMenuHPBar
|
||||
predef ComputeHPBarPixels
|
||||
ret
|
||||
; 50138
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ PredefPointers:: ; 856b
|
||||
add_predef Predef1
|
||||
add_predef HealParty
|
||||
add_predef FlagPredef
|
||||
add_predef DrawPartyMenuHPBar
|
||||
add_predef ComputeHPBarPixels
|
||||
add_predef FillPP
|
||||
add_predef TryAddMonToParty
|
||||
add_predef AddTempmonToParty
|
||||
|
||||
@@ -16,7 +16,7 @@ endr
|
||||
|
||||
.Jumptable: ; 8d25b (23:525b)
|
||||
jumptable_start
|
||||
jumptable .zero ; town map
|
||||
jumptable .zero ; null
|
||||
jumptable .one ; bouncing mon icon
|
||||
jumptable .two ; bouncing mon icon, selected
|
||||
jumptable .three ; bouncing mon icon, menu open
|
||||
|
||||
@@ -585,7 +585,7 @@ SpriteAnimSeqData: ; 8d1c4
|
||||
db SPRITE_ANIM_FRAMESET_1D, SPRITE_ANIM_SEQ_17, $00 ; 18 flying leaves
|
||||
db SPRITE_ANIM_FRAMESET_1F, SPRITE_ANIM_SEQ_00, $00 ; 19
|
||||
db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00 ; 1a
|
||||
db SPRITE_ANIM_FRAMESET_25, SPRITE_ANIM_SEQ_00, $00 ; 1b
|
||||
db SPRITE_ANIM_FRAMESET_25, SPRITE_ANIM_SEQ_00, $00 ; 1b headbutt
|
||||
db SPRITE_ANIM_FRAMESET_20, SPRITE_ANIM_SEQ_13, $00 ; 1c
|
||||
db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00 ; 1d
|
||||
db SPRITE_ANIM_FRAMESET_2D, SPRITE_ANIM_SEQ_00, $00 ; 1e
|
||||
|
||||
@@ -1280,7 +1280,7 @@ MonMenu_Fly: ; 12e30
|
||||
; 12e55
|
||||
|
||||
MonMenu_Flash: ; 12e55
|
||||
callba Functionc8ac
|
||||
callba OWFlash
|
||||
ld a, [wFieldMoveSucceeded]
|
||||
cp $1
|
||||
jr nz, .Fail
|
||||
|
||||
@@ -407,7 +407,7 @@ Function4df45: ; 4df45 (13:5f45)
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld e, [hl]
|
||||
callba DrawPartyMenuHPBar
|
||||
callba ComputeHPBarPixels
|
||||
ld hl, wcda1
|
||||
call SetHPPal
|
||||
ld b, SCGB_03
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Function8c001:: ; 8c001
|
||||
UpdateTimeOfDayPal:: ; 8c001
|
||||
call UpdateTime
|
||||
ld a, [TimeOfDay]
|
||||
ld [CurTimeOfDay], a
|
||||
@@ -12,7 +12,7 @@ _TimeOfDayPals:: ; 8c011
|
||||
; return carry if pals are changed
|
||||
|
||||
; forced pals?
|
||||
ld hl, wd846
|
||||
ld hl, wTimeOfDayPalFlags
|
||||
bit 7, [hl]
|
||||
jr nz, .dontchange
|
||||
|
||||
@@ -198,7 +198,7 @@ brightlevel: MACRO
|
||||
db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4
|
||||
ENDM
|
||||
|
||||
Function8c0e5: ; 8c0e5
|
||||
ReplaceTimeOfDayPals: ; 8c0e5
|
||||
ld hl, .BrightnessLevels
|
||||
ld a, [wc2d0]
|
||||
cp $4 ; Dark cave, needs Flash
|
||||
@@ -210,18 +210,20 @@ Function8c0e5: ; 8c0e5
|
||||
adc h
|
||||
ld h, a
|
||||
ld a, [hl]
|
||||
ld [wd847], a
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.DarkCave
|
||||
ld a, [StatusFlags]
|
||||
bit 2, a
|
||||
bit 2, a ; Flash
|
||||
jr nz, .UsedFlash
|
||||
ld a, $ff ; 3, 3, 3, 3
|
||||
ld [wd847], a
|
||||
ld a, %11111111 ; 3, 3, 3, 3
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.UsedFlash
|
||||
ld a, $aa ; 2, 2, 2, 2
|
||||
ld [wd847], a
|
||||
ld a, %10101010 ; 2, 2, 2, 2
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
; 8c10f (23:410f)
|
||||
|
||||
@@ -257,25 +259,25 @@ endr
|
||||
dw .DarknessPalette
|
||||
|
||||
.MorningPalette
|
||||
ld a, [wd847]
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %00000011 ; 0
|
||||
ret
|
||||
|
||||
.DayPalette
|
||||
ld a, [wd847]
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %00001100 ; 1
|
||||
srl a
|
||||
srl a
|
||||
ret
|
||||
|
||||
.NitePalette
|
||||
ld a, [wd847]
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %00110000 ; 2
|
||||
swap a
|
||||
ret
|
||||
|
||||
.DarknessPalette
|
||||
ld a, [wd847]
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %11000000 ; 3
|
||||
rlca
|
||||
rlca
|
||||
|
||||
@@ -237,8 +237,8 @@ LoadMapTimeOfDay: ; 104750
|
||||
res 6, [hl]
|
||||
ld a, $1
|
||||
ld [wSpriteUpdatesEnabled], a
|
||||
callba Function8c0e5
|
||||
callba Function8c001
|
||||
callba ReplaceTimeOfDayPals
|
||||
callba UpdateTimeOfDayPal
|
||||
call OverworldTextModeSwitch
|
||||
call Function104770
|
||||
call Function1047a3
|
||||
|
||||
Reference in New Issue
Block a user