diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-12-14 11:12:18 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-12-14 11:12:18 -0500 |
commit | c635e30777ba57e3fd4249862fd562936d0d47bd (patch) | |
tree | 7686a09931e78c5d01e43f557c3dabc60eeed6fe /engine | |
parent | 8a439dbd0509d37c8d29e340a6544b3c09be4a72 (diff) |
map setup and warps
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/anim_hp_bar.asm | 430 | ||||
-rw-r--r-- | engine/battle_start.asm | 4 | ||||
-rwxr-xr-x | engine/link.asm | 2 | ||||
-rw-r--r-- | engine/map_objects.asm | 2 | ||||
-rw-r--r-- | engine/map_setup.asm | 20 | ||||
-rw-r--r-- | engine/party_menu.asm | 2 | ||||
-rw-r--r-- | engine/predef.asm | 2 | ||||
-rwxr-xr-x | engine/sprite_anims.asm | 2 | ||||
-rwxr-xr-x | engine/sprites.asm | 2 | ||||
-rwxr-xr-x | engine/startmenu.asm | 2 | ||||
-rwxr-xr-x | engine/stats_screen.asm | 2 | ||||
-rw-r--r-- | engine/timeofdaypals.asm | 28 | ||||
-rwxr-xr-x | engine/warp_connection.asm | 4 |
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 |