summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-12-14 11:12:18 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2015-12-14 11:12:18 -0500
commitc635e30777ba57e3fd4249862fd562936d0d47bd (patch)
tree7686a09931e78c5d01e43f557c3dabc60eeed6fe /engine
parent8a439dbd0509d37c8d29e340a6544b3c09be4a72 (diff)
map setup and warps
Diffstat (limited to 'engine')
-rwxr-xr-xengine/anim_hp_bar.asm430
-rw-r--r--engine/battle_start.asm4
-rwxr-xr-xengine/link.asm2
-rw-r--r--engine/map_objects.asm2
-rw-r--r--engine/map_setup.asm20
-rw-r--r--engine/party_menu.asm2
-rw-r--r--engine/predef.asm2
-rwxr-xr-xengine/sprite_anims.asm2
-rwxr-xr-xengine/sprites.asm2
-rwxr-xr-xengine/startmenu.asm2
-rwxr-xr-xengine/stats_screen.asm2
-rw-r--r--engine/timeofdaypals.asm28
-rwxr-xr-xengine/warp_connection.asm4
13 files changed, 465 insertions, 37 deletions
diff --git a/engine/anim_hp_bar.asm b/engine/anim_hp_bar.asm
new file mode 100755
index 000000000..3075ef323
--- /dev/null
+++ b/engine/anim_hp_bar.asm
@@ -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
diff --git a/engine/battle_start.asm b/engine/battle_start.asm
index 4ef26cae3..69b08fb41 100644
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -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]
diff --git a/engine/link.asm b/engine/link.asm
index 222d1eedb..2255133cb 100755
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -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
diff --git a/engine/map_objects.asm b/engine/map_objects.asm
index 13e4f73bf..8e3bd49f0 100644
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -3040,7 +3040,7 @@ Function579d: ; 579d
ld [wd04e], a
ld [PlayerObjectStepFrame], a
call Function57bc
- callba CheckWarpCollision
+ callba CheckWarpFacingDown
call c, SpawnInFacingDown
call SpawnInCustomFacing
ret
diff --git a/engine/map_setup.asm b/engine/map_setup.asm
index e8b8c0090..8f7b0e333 100644
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -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
diff --git a/engine/party_menu.asm b/engine/party_menu.asm
index 0da558272..5d28eb949 100644
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -190,7 +190,7 @@ PlacePartymonHPBar: ; 50117
ld d, a
ld a, [hli]
ld e, a
- predef DrawPartyMenuHPBar
+ predef ComputeHPBarPixels
ret
; 50138
diff --git a/engine/predef.asm b/engine/predef.asm
index f812d1d9e..f459747bb 100644
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -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
diff --git a/engine/sprite_anims.asm b/engine/sprite_anims.asm
index dc2a0ffd8..54af5db37 100755
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -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
diff --git a/engine/sprites.asm b/engine/sprites.asm
index 4c07a2b9e..60d81112e 100755
--- a/engine/sprites.asm
+++ b/engine/sprites.asm
@@ -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
diff --git a/engine/startmenu.asm b/engine/startmenu.asm
index 7093165af..b9f5462d7 100755
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -1280,7 +1280,7 @@ MonMenu_Fly: ; 12e30
; 12e55
MonMenu_Flash: ; 12e55
- callba Functionc8ac
+ callba OWFlash
ld a, [wFieldMoveSucceeded]
cp $1
jr nz, .Fail
diff --git a/engine/stats_screen.asm b/engine/stats_screen.asm
index e0faa54a3..84e1cf9ea 100755
--- a/engine/stats_screen.asm
+++ b/engine/stats_screen.asm
@@ -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
diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm
index 368636758..e45b38479 100644
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -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
diff --git a/engine/warp_connection.asm b/engine/warp_connection.asm
index 1a857ab43..7ea596637 100755
--- a/engine/warp_connection.asm
+++ b/engine/warp_connection.asm
@@ -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