#-------------------------------------------------------------------------- # ■ リージョン隠し通路 / Kamesoftさん「ミニマップ」対応スクリプト (Jun.A) #-------------------------------------------------------------------------- =begin  ★内容説明   リージョン隠し通路使用時、Kamesoftさんのミニマップを併用する場合、   隠し通路スイッチを切り替えた際にミニマップの動作がおかしくなっていました。   キャッシュを事前に作成するため、隠し通路として通行可能になったとしても、   キャッシュ上では隠し通路をオンにする前の状態が参照されているためです。   ミニマップスクリプトでマップのキャッシュ数(CACHE_NUM)をゼロにすると、   常に更新される状態になりますが、物凄く動作が重くなります。   また、場所移動を行えば更新されますが、それでは使いづらいですね。   このスクリプトを導入する事で、隠し通路スイッチをオン/オフする毎に   ミニマップが一度だけ新たに更新されるようになります。  ★導入方法   sound sepherのリージョン隠し通路ver2.00と、   Kamesoftさんのミニマップスクリプトを導入してください。     このスクリプトはupdateメソッドの上書きを行うため、   ミニマップスクリプトの下に配置してください。 =end class Game_MiniMap #-------------------------------------------------------------------------- # ○ 更新(上書き) #-------------------------------------------------------------------------- def update update_input # 指定スイッチのフラグを管理するメソッドを実行します。 # 内部で通行テーブルキャッシュを全削除すると、隠し通路表示が更新される仕組み。 # キャッシュの新規作成は、別メソッド・get_passage_table_cacheが担当。 passage_cache_delete return unless need_update? update_draw_range update_position update_animation draw_object @map_sprite.update @object_sprite.update @position_sprite.update end #-------------------------------------------------------------------------- # ○ 隠し通路キャッシュ全削除(新規) # #  ※隠し通路スイッチをオン・オフした際ごとに一度実行されます。 #-------------------------------------------------------------------------- def passage_cache_delete #隠し通路スイッチをtrueにした際、削除キャッシュフラグがfalseなら if $game_switches[HPRegion_module::HIDDEN_PASSAGES_SID] == true && !@delete_cache_flag @@passage_cache = [] #内部でtrueにするので、このif文は指定スイッチをオフにするまで実行されない @delete_cache_flag = true end #隠し通路スイッチをfalseにした際、削除キャッシュフラグがtrueなら if $game_switches[HPRegion_module::HIDDEN_PASSAGES_SID] == false && @delete_cache_flag @@passage_cache = [] #内部でfalseにするので、このif文は指定スイッチをオフにするまで実行されない @delete_cache_flag = false end end end