From 6628a7cf395266523c2d53e8fd45db67dc1e1a7d Mon Sep 17 00:00:00 2001 From: Akatsuki-py Date: Tue, 22 Sep 2020 17:19:53 +0900 Subject: [PATCH] DisplayTownMap --- engine/README.md | 10 +++++----- engine/clear_save.asm | 15 +++++++++++++++ engine/joypad.asm | 12 +++++++----- engine/menu/text_box.asm | 1 + engine/mon_party_sprites.asm | 3 +-- engine/status_ailments.asm | 2 +- home.asm | 3 ++- text.asm | 1 + 8 files changed, 33 insertions(+), 14 deletions(-) diff --git a/engine/README.md b/engine/README.md index 9bd364b..d7e6fdf 100644 --- a/engine/README.md +++ b/engine/README.md @@ -14,7 +14,7 @@ add_mon.asm | Pokemon Data を新しい手持ちやPCなどのデータスロッ bcd.asm | BCDフォーマットの数値計算を行う処理 black_out.asm | 『めのまえが まっくらに なった!』ときのゲームの状態を更新する処理 cable_club.asm | null -clear_save.asm | null +clear_save.asm | タイトル画面でのセーブデータ完全消去のダイアログ debug1.asm | null display_pokedex.asm | null display_text_id_init.asm | null @@ -25,7 +25,7 @@ experience.asm | 経験値からレベルを算出したりなど、経験値に flag_action.asm | フラグアクションに関する処理 game_corner_slots.asm | null game_corner_slots2.asm | null -gamefreak.asm | null +gamefreak.asm | ゲーム起動時のゲーフリのロゴと流れ星のアニメーション get_bag_item_quantity.asm | null give_pokemon.asm | null hall_of_fame.asm | null @@ -40,7 +40,7 @@ hp_bar.asm | null in_game_trades.asm | null init_player_data.asm | ゲームを『はじめから』始めたときにプレイヤーデータを初期化する intro.asm | ゲーム起動時のアニメーションを流す -joypad.asm | null +joypad.asm | A,B,Start,Select を同時に押したときのリセット処理 learn_move.asm | null load_mon_data.asm | ポケモンのデータが必要な時にそれを取得する処理 load_pokedex_tiles.asm | null @@ -49,7 +49,7 @@ multiply_divide.asm | null oak_speech.asm | 『さいしょからはじめる』を選んだ時のオーキド博士のスピーチ oak_speech2.asm | オーキド博士のスピーチで使用されるユーティリティ関数などがまとめてある oam_dma.asm | OAM DMA転送を行う処理 -palettes.asm | null +palettes.asm | SGBでのみ有効なので割愛 pathfinding.asm | NPCがプレイヤーのところに歩いてくるときに道順(Path)を決定する処理 play_time.asm | プレイ時間をフレーム単位でインクリメントする処理 pokedex_rating.asm | ポケモン図鑑の評価テキストを表示する処理 @@ -64,7 +64,7 @@ remove_pokemon.asm | ポケモンを削除する処理 save.asm | null slot_machine.asm | null special_warps.asm | special warpを行う処理 -status_ailments.asm | null +status_ailments.asm | 瀕死じゃないポケモンの状態異常を文字として描画する subtract_paid_money.asm | プレイヤーの支払った額をプレイヤーの所持金から引く処理 test_battle.asm | null titlescreen.asm | タイトル画面に関する処理 diff --git a/engine/clear_save.asm b/engine/clear_save.asm index b47cd6c..b321561 100644 --- a/engine/clear_save.asm +++ b/engine/clear_save.asm @@ -1,10 +1,20 @@ +; **DoClearSaveDialogue** +; タイトル画面でセーブデータ完全消去のダイアログを出して、プレイヤーに選択させる +; - - - +; Yesを選んだらセーブデータを消去して Initへジャンプ +; Noなら何もせず Initへジャンプ DoClearSaveDialogue: + ; VRAMにデータを準備 call ClearScreen call RunDefaultPaletteCommand call LoadFontTilePatterns call LoadTextBoxTilePatterns + + ; "Clear all saved data?" ld hl, ClearSaveDataText call PrintText + + ; No/Yes の 2択Menu を表示し、プレイヤーの選択を待つ coord hl, 14, 7 lb bc, 8, 15 ld a, NO_YES_MENU @@ -12,12 +22,17 @@ DoClearSaveDialogue: ld a, TWO_OPTION_MENU ld [wTextBoxID], a call DisplayTextBoxID + + ; No を選んだ ld a, [wCurrentMenuItem] and a jp z, Init + + ; Yesを選んだ callba ClearSAV jp Init +; "Clear all saved data?" ClearSaveDataText: TX_FAR _ClearSaveDataText db "@" diff --git a/engine/joypad.asm b/engine/joypad.asm index 2f55cb0..cadfb04 100644 --- a/engine/joypad.asm +++ b/engine/joypad.asm @@ -1,8 +1,10 @@ -; ジョイパッドの状態を記録する変数を更新: -; - hJoyReleased: (hJoyLast ^ hJoyInput) & hJoyLast -; - hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput (wJoyIgnoreを考慮) -; - hJoyLast: hJoyInput 今回の_Joypad処理で押されたボタン -; - hJoyHeld: 今回の_Joypad処理で押されたボタン(wJoyIgnoreを考慮) +; **_Joypad** +; ジョイパッドの状態を記録する変数を更新 +; - - - +; hJoyReleased: (hJoyLast ^ hJoyInput) & hJoyLast +; hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput (wJoyIgnoreを考慮) +; hJoyLast: hJoyInput 今回の_Joypad処理で押されたボタン +; hJoyHeld: 今回の_Joypad処理で押されたボタン(wJoyIgnoreを考慮) _Joypad:: ld a, [hJoyInput] ; [↓, ↑, ←, →, Start, Select, B, A] 押されているときにbitが立つ diff --git a/engine/menu/text_box.asm b/engine/menu/text_box.asm index 0a5a72a..3f1b464 100644 --- a/engine/menu/text_box.asm +++ b/engine/menu/text_box.asm @@ -6,6 +6,7 @@ ; INPUT: ; [wTextBoxID] = TextBoxID ; hl = テキストボックスのボーダーが描画されるべきアドレス +; [wTwoOptionMenuID] = 2択Menuを表示するなら 2択menu の種類 DisplayTextBoxID_: ld a, [wTextBoxID] diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm index 054dd33..406e260 100644 --- a/engine/mon_party_sprites.asm +++ b/engine/mon_party_sprites.asm @@ -377,9 +377,8 @@ WriteMonPartySpriteOAMByPartyIndex: pop hl ret +; Write OAM blocks for the party sprite of the species in [wMonPartySpriteSpecies]. WriteMonPartySpriteOAMBySpecies: -; Write OAM blocks for the party sprite of the species in -; [wMonPartySpriteSpecies]. xor a ld [hPartyMonIndex], a ld a, [wMonPartySpriteSpecies] diff --git a/engine/status_ailments.asm b/engine/status_ailments.asm index 914cfb5..f292801 100644 --- a/engine/status_ailments.asm +++ b/engine/status_ailments.asm @@ -1,5 +1,5 @@ ; **PrintStatusAilment** -; 瀕死じゃないポケモンの状態異常を描画する +; 瀕死じゃないポケモンの状態異常を文字として描画する ; - - - ; INPUT: ; de = status condition(`box_struct` の XXXStatus e.g. wLoadedMonStatus) diff --git a/home.asm b/home.asm index 841421d..6f8b371 100644 --- a/home.asm +++ b/home.asm @@ -2768,6 +2768,7 @@ IsKeyItem:: ; [wTextBoxID] = TextBox ID ; b, c = カーソルのy, x (2択メニューのみで引数として与える) ; hl = テキストボックスのボーダーが描画されるべきアドレス +; [wTwoOptionMenuID] = 2択Menuを表示するなら 2択menu の種類 DisplayTextBoxID:: ld a, [H_LOADEDROMBANK] push af @@ -3895,7 +3896,7 @@ LoadFontTilePatterns:: jp CopyVideoDataDouble ; if LCD is on, transfer during V-blank ; **LoadTextBoxTilePatterns** -; VRAMにテキストボックスの2bppデータをコピーする関数 +; テキストボックスの2bppデータをVRAMにロードする関数 LoadTextBoxTilePatterns:: ; LCDが有効 -> .on 無効 -> .off ld a, [rLCDC] diff --git a/text.asm b/text.asm index a0729e7..3641e9c 100644 --- a/text.asm +++ b/text.asm @@ -1565,6 +1565,7 @@ _PickUpPayDayMoneyText:: text "!" prompt +; "Clear all saved data?" _ClearSaveDataText:: text "Clear all saved" line "data?"