map setup and warps

This commit is contained in:
PikalaxALT
2015-12-14 11:12:18 -05:00
parent 8a439dbd05
commit c635e30777
25 changed files with 657 additions and 668 deletions

430
engine/anim_hp_bar.asm Executable file
View 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

View File

@@ -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]

View File

@@ -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

View File

@@ -3040,7 +3040,7 @@ Function579d: ; 579d
ld [wd04e], a
ld [PlayerObjectStepFrame], a
call Function57bc
callba CheckWarpCollision
callba CheckWarpFacingDown
call c, SpawnInFacingDown
call SpawnInCustomFacing
ret

View File

@@ -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

View File

@@ -190,7 +190,7 @@ PlacePartymonHPBar: ; 50117
ld d, a
ld a, [hli]
ld e, a
predef DrawPartyMenuHPBar
predef ComputeHPBarPixels
ret
; 50138

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1280,7 +1280,7 @@ MonMenu_Fly: ; 12e30
; 12e55
MonMenu_Flash: ; 12e55
callba Functionc8ac
callba OWFlash
ld a, [wFieldMoveSucceeded]
cp $1
jr nz, .Fail

View File

@@ -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

View File

@@ -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

View File

@@ -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