OSDN Git Service
mogami [Sun, 7 Dec 2003 13:30:19 +0000 (13:30 +0000)]
ZAngbandから"Code for the object templates"との実装途上の中途半端なコードが
obj_kind.cに入っていたので整理。
未使用関数削除。一部関数を他のファイルへ移動。無意味なget_object_*()を廃止。
mogami [Sun, 7 Dec 2003 12:35:49 +0000 (12:35 +0000)]
射撃マクロで敵がいない時に自分の足元に矢を撃ってしまう事に防止する為に、
自分の足元には矢を撃たないように仕様変更。
昔からの仕様なので何か問題が生じたら戻す。
mogami [Sat, 6 Dec 2003 16:04:44 +0000 (16:04 +0000)]
トカソヘ・愠テ・ッ、ホ・ッ・悅シ・「サ爨ホオウサホ。「テマケホオウサホ。「、ヒMALE・ユ・鬣ートノイテ。」
mogami [Sat, 6 Dec 2003 15:17:16 +0000 (15:17 +0000)]
暗黒ブレスで、床のCAVE_MARKが外れる様子が盲目中でも確認できてしまうので、
盲目中はCAVE_MARKに関わらず未知であるかの如く表示するようにした。
mogami [Sat, 6 Dec 2003 15:02:09 +0000 (15:02 +0000)]
ニ讀ホ・ッ・鬣テ・キ・螟ホクカーマハフ、ヒネスフタ(ヌロホー・「・ッ・サ・ケ)、キ、ソ、ホ、ヌ。「、ウ、チ、鬢マクオ、ヒフ皃ケ。」
mogami [Sat, 6 Dec 2003 15:00:22 +0000 (15:00 +0000)]
広域マップから山脈に降りる時の謎めいたクラッシュバグの原因判明したので修正。
generate_wilderness_area()でcorner=TRUEの時にcave[][].featの初期化を
サボっているのに、関数の最後で参照していたせいで配列外アクセスが起きていた。
マップの4隅以外の情報は結局棄てているので配列外アクセスさえ起きないように
すれば初期化を省略する方法はあるのだが、面倒なので常に初期化するように修正。
mogami [Sat, 6 Dec 2003 13:30:36 +0000 (13:30 +0000)]
init1.cの Revision 1.79 で、なぜかiksさんのWin実行ファイルで、
広域マップから>で降りた時に、足元に山脈があると変愚がクラッシュする
という謎めいたバグが導入されたので、とりあえず、1.78の状態に戻す。
Revision 1.79は、
「クエストファイルでmimic操作ができる仕様はtrapを使えば十分なので削除.」
という変更なので、mimic操作自体は後でちゃんと削除し直さないといけないが、
何がエンバグだったか調べてからにする。
mogami [Sat, 6 Dec 2003 12:23:18 +0000 (12:23 +0000)]
パニックセーブで、セーブファイルのpy,pxの値が変になった時に自動で復帰するコード追加。
nothere [Sat, 6 Dec 2003 08:39:59 +0000 (08:39 +0000)]
プレイヤーのテレポートに受動テレポートモードを与えた. 主に自分の意志
とは関係のない強制テレポートに用いられる. 受動テレポートではテレポー
ト先の地形にTELEPORTABLEさえあればプレイヤーの状態全てを無視する. 関
連して, 以下の変更を含む.
* 全てのトラップにTELEPORTABLE追加. 発見されていて完全に安全と分かっ
ているトラップには能動テレポートでも飛ぶ場合がある.
* new_player_spot()でプレイヤーを配置するルールを変更. max_attemptsを
10000回に増やし, 前半5000回でFLOOR && TELEPORTABLEを優先的に探し,
それに失敗したら後半5000回でMOVE && TELEPORTABLE && !HIT_TRAPの条件
でプレイヤー配置を試みる. FLOORのないダンジョンへの対策.
iks [Sat, 6 Dec 2003 06:09:09 +0000 (06:09 +0000)]
generate_rooms()関数で部屋を配置する際に無限ループに陥ることがあるバグを修正。
金鉱などの狭い階に配置を試みるとき、配置に失敗し部屋数が0個となることが頻発していた。
その後モンスターやアイテムの配置がいつまでも出来ず無限ループになっていた模様。
generate_rooms関数をbool型にし、部屋数0のときはFALSEを返して、生成失敗と扱うようにした。
ダンジョン生成失敗時は新たにダンジョンを生成しようと試みなおすのでこれで問題はないはず。
nothere [Sat, 6 Dec 2003 05:03:02 +0000 (05:03 +0000)]
マクロを使うよりフラグLOSやSPECIALを直接見た方がいい部分の変更.
nothere [Sat, 6 Dec 2003 04:27:45 +0000 (04:27 +0000)]
scatter()、ネmon_scatter()、ホlos()、rojectable()、ヒハムケケ.
nothere [Sat, 6 Dec 2003 03:03:45 +0000 (03:03 +0000)]
壁が裏から照らされないようにするコードcheck_local_illumination()の範
囲に対応して, CAVE_GLOWが変化するタイミングでそのグリッドの周囲も併せ
て更新するように変更. なお, 以下の変更を含む.
* 暗闇の洞窟で閃光属性を使っても明るくならず, 暗くて見えなかったモン
スターは見えないままであるので, その場合はupdate_mon()を呼ばないよ
うにした. 暗黒属性に対してもほぼ同様に変更.
* CAVE_GLOWの変化時にupdate_mon()が足りない部分の修正.
* cave_set_feat()にupdate_mon()追加.
nothere [Sat, 6 Dec 2003 00:00:17 +0000 (00:00 +0000)]
move_player_effect()の処理をbitフラグで制御するように変更. また, プレ
イヤーが移動する, つまりpyやpxが変更される部分にmove_player_effect()
を使い, 地形効果を適用できるように変更. py, pxへの直接代入と描画, 乗
馬を含みプレイヤーが関係するモンスターの位置交換もまとめられる限りこ
の関数でまとめた. 関連して, 以下の変更を含む.
* その場に留まってdo_cmd_stay()が呼ばれたり, テレポートで新しい位置に
飛んだ際もmove_player_effect()で判定するように変更. ただしその場に
留まる場合はトラップは無視する.
* 歌 "分解音波" で乗馬がダメージを受けたりアイテムが壊れたりする判定
をmove_player_effect()に加えた. ターンを消費してその場に留まる際も
判定を加えるようにした.
* モンスターに移動を任せている場合, 乗馬時/下馬時/落馬時はアイテムを
拾わないように変更.
* 落馬時のmove_player_effect()がプレイヤー死亡時にしか有効でなかった
バグを修正.
* carry(), do_cmd_walk(), do_cmd_stay(), py_pickup_floor()の引数
pickupをbool型に変更.
* move_player()の引数do_pickupをbool型に変更.
* 剣術 "無双三段" でモンスターが動けなくてcontinue;した場合にも
msg_print(NULL);するように修正.
mogami [Fri, 5 Dec 2003 06:18:03 +0000 (06:18 +0000)]
typoス、タオ。」
・ミ。シ・ク・逾ケ・ソ・ラノユイテ。」
nothere [Thu, 4 Dec 2003 20:53:45 +0000 (20:53 +0000)]
ウィザードモードやcheat_deathでの復活時にステータス異常が回復しなかっ
たバグを修正. p_ptr->is_dead = FALSE;の後にset_*()を置く必要があった.
nothere [Thu, 4 Dec 2003 20:28:21 +0000 (20:28 +0000)]
斜め方向に方向指定でブレスを撃つとブレスが壁を突き抜けるバグを修正.
関連して, ブレスやボールの実際の着弾座標を求める際に, project_path()
の戻り値である移動グリッドを実際に通る数だけ代入し直すようにした. 隣
接した壁に向かってブレスを吐いた場合に単なるボールになる判定には再代
入されたグリッド数で見るようになった. breath_shape()の引数distを復帰.
また, 壁に隣接してブレスを撃つと半径1しか'*'で描画されなかったバグを
修正.
mogami [Thu, 4 Dec 2003 15:50:33 +0000 (15:50 +0000)]
ツソセッニノ、゚ーラ、ッハヤスク。」
mogami [Thu, 4 Dec 2003 14:55:53 +0000 (14:55 +0000)]
自動拾いキーワード「上質の」と「並の」を追加。
英語版メーリングリストでドキュメントの中の「無銘の(nameless)」を発見で
きなかった人が居たのでわかりやすい名前のキーワードも用意しておく。
mogami [Thu, 4 Dec 2003 11:31:28 +0000 (11:31 +0000)]
既知のモンスターリストでシアーハートアタックの名前の表示が長すぎて文字化けしていたバグ修正。
nothere [Wed, 3 Dec 2003 15:55:02 +0000 (15:55 +0000)]
ブレスを吐けるペットが壁に埋まったモンスターと隣接した場合に, 始点と
終点が同じ状態でbreath_shape()を呼んでしまい, 0除算を起こしてゲームが
落ちるバグを修正. ブレスは障害物と隣接したら単なるボールとして扱われ
るので, breath_direct()をそれに対応.
nothere [Wed, 3 Dec 2003 14:59:49 +0000 (14:59 +0000)]
部屋を暗くする際に壁とみなす条件をLOSからPROJECTに変更.
nothere [Wed, 3 Dec 2003 14:14:43 +0000 (14:14 +0000)]
breath_shape()にブレスの目標座標とdistを別々に渡していたためにブレス
の形がおかしい場合があり, 本来ブレスが通らない位置にもブレスが貫通し
ていたバグを修正. またペットのブレス巻き添え判定もおかしかったので,
project()と同等に実際の中心座標を求めることにより修正.
nothere [Wed, 3 Dec 2003 01:47:27 +0000 (01:47 +0000)]
開ける対象の地形をOPENではなくis_closed_door()で見ていたバグを修正.
nothere [Wed, 3 Dec 2003 00:14:32 +0000 (00:14 +0000)]
壁が裏から照らされるかどうかの判定は元々その部屋が明るいかどうかだけ
を見ていたため, check_local_illumination()コードでは移動光源/暗黒光源
を判定に含めないように変更. これにより, 光源や暗黒光源のあるモンス
ターが召喚された直後に, 描画はそのままなのに判定上壁の中のモンスター
が見えなくなる場合があった問題を修正.
nothere [Tue, 2 Dec 2003 20:31:55 +0000 (20:31 +0000)]
スターバースト自体は透明な壁の向こうに投げることは出来ないがボール爆
風範囲は透明な壁を通過する仕様になったことで, 透明な壁の向こうにいる
モンスターがスターバーストを使える場合, プレイヤーに向けて投げられた
ボールの中心から半径3以内の爆風範囲にいる場合はスターバーストを選択肢
に入れて, 透明な壁の向こうから攻撃できるように変更. なお, 以下の変更
を含む.
* 閃光のブレスと分解のブレスの両方を持つモンスターの視界内のPROJECTの
ない地形にプレイヤーがいる場合, 分解の判定を優先するように変更.
* 以前にget_project_point()を簡略化した結果着弾点の計算がずれていて,
ボール範囲でのペットの巻き添えバグも再発していたので再修正.
* スターバーストの巻き添え範囲判定を透明な壁に対応.
nothere [Tue, 2 Dec 2003 17:58:40 +0000 (17:58 +0000)]
'%'や'@'で変更した設定やマクロをprefファイルに書き込まずに使う場合に
問題が起きるので, pref自動リロードの対象はautopickに限定. また, オプ
ションとせずautopickは常に自動リロードするように変更.
nothere [Tue, 2 Dec 2003 17:43:20 +0000 (17:43 +0000)]
閃光と弱い閃光のブレスとビームは透明な壁を通すように変更. ボルトと
ボールは通さない. 閃光のブレスをプレイヤーに使う際の特殊判定追加. ま
た, 壁の中にいるプレイヤーに分解のブレスを吐く地形判定を!PROJECT &&
HURT_DISIとした. これは分解できずに抜けられる壁がある場合は威力が半減
するため.
mogami [Tue, 2 Dec 2003 16:09:48 +0000 (16:09 +0000)]
最近 process_world()のコード整理した時に prev_min の計算を間違えてエンバグしていたので再修正。
mogami [Tue, 2 Dec 2003 14:43:02 +0000 (14:43 +0000)]
モンスターボールのpvalが劣化して中身のモンスターが変わってしまうバグ修正。
nothere [Mon, 1 Dec 2003 23:49:37 +0000 (23:49 +0000)]
new_player_spot()でのプレイヤーのランダム初期配置条件にTELEPORTABLEを
追加. これにより, ダンジョン "森" に入った時に木の中から開始しないよ
うに修正. また, 地上では木と山脈の上に配置できるようにするため, ラン
ダム初期配置条件にはMOVEとTELEPORTABLEを参照しないように変更.
nothere [Mon, 1 Dec 2003 22:43:11 +0000 (22:43 +0000)]
view_*_gridsがOFFの時, プレイヤーから見えているダンジョン外周の床の
mimicに接触すると地形が見えない扱いとしてターンを消費していたので,
move_player()でのプレイヤーが見えない地形判定をplayer_can_see_bold()
で行うように修正. また, boundary_floor_grid()マクロをdefines.hから
削除. cmd1.cに移転して判定条件とマクロ名を変更.
nothere [Mon, 1 Dec 2003 19:56:04 +0000 (19:56 +0000)]
アーチャーの岩石からのスリング用の弾作成に関する変更.
* 岩石が泥になるメッセージを出さないようにした.
* 地形判定をCAN_DIG && HURT_ROCKに変更.
* 明らかに材料にできない地形から作成試みた場合はターンを消費しないよ
うに変更. ただしmimicしているために失敗した場合はターン消費.
なお, 以下の変更を含む.
* 岩喰いの岩石味判定をHAS_ITEMからCAN_DIGに変更.
nothere [Mon, 1 Dec 2003 19:21:47 +0000 (19:21 +0000)]
Typo fix: "record_maxdeapth" -> "record_maxdepth".
nothere [Mon, 1 Dec 2003 19:11:56 +0000 (19:11 +0000)]
auto_scum系オプションに関する記述が残っていたので削除.
nothere [Mon, 1 Dec 2003 18:59:51 +0000 (18:59 +0000)]
設定ファイルの評価内容が変わる可能性のある部分でprefを自動で読み込む
ゲームプレイオプション "autoload_pref_files" を追加. なお, 以下の変更
を含む.
* pref-opt.prfのオプション並びが再編成後のものに対応していなかったの
で対応させた. また, X:exp_need, X:destroy_feeling,
X:destroy_identifyを追加.
nothere [Mon, 1 Dec 2003 17:06:37 +0000 (17:06 +0000)]
クエストファイルでmimic操作ができる仕様はtrapを使えば十分なので削除.
nothere [Mon, 1 Dec 2003 16:01:18 +0000 (16:01 +0000)]
WindowsとMacintoshで#undef HANDLE_SIGNALSしていたのをやめ, シグナルを
ハンドルするように変更. 異常終了時の緊急セーブが有効になる.
nothere [Mon, 1 Dec 2003 14:28:54 +0000 (14:28 +0000)]
一時的な壁抜け使用直後に壁を抜けられなかったバグを修正. PU_BONUS忘れ.
nothere [Mon, 1 Dec 2003 14:21:04 +0000 (14:21 +0000)]
走る判定のsee_wall()でドアは壁とみなさないようにした.
mogami [Mon, 1 Dec 2003 13:50:52 +0000 (13:50 +0000)]
regenhp()の方にもエンバグがあったので修正。
また青魔法の学習によるMP消費でs64b_mul()の使用が残っていたので、s64b_LSHIFT()に変更。
nothere [Mon, 1 Dec 2003 13:00:43 +0000 (13:00 +0000)]
分解属性の地形破壊をproject_f()で見るように変更. また, 分解属性のビー
ムである場合はPROJECT_DISIを有効にするように変更. これにより, カオス
魔法 "混沌召来" で分解ビームが出た場合に一列を破壊するようにした. な
お, 以下の変更を含む.
* cave_stop_disintegration()の判定に!HURT_DISIがなかったので修正.
* breath_shapeから変数real_breath削除.
* 分解属性は地形が破壊されて当然の属性であり, PROJECT_GRIDを内部で必
ず立てるようにした.
* do_disintegration()削除.
* 分解に限らず地形が破壊された後には視界が変わる可能性があるため, 必
要であればアイテム処理の直前にupdate_stuff()を呼ぶようにした.
mogami [Mon, 1 Dec 2003 11:39:13 +0000 (11:39 +0000)]
s64bのシフト演算マクロ s64b_LSHIFT()とs64b_RSHIFT()をbit数指定に拡張して、
(1L<<16)を掛け算する所を16bit シフトに直した。regenmana()書き変え、コメント修正。
mogami [Sun, 30 Nov 2003 22:38:35 +0000 (22:38 +0000)]
regenmana()のエンバグ修正。1ターンにMP1以上回復するはずの時、異常に回復が遅くなっていた。
nothere [Sun, 30 Nov 2003 15:32:55 +0000 (15:32 +0000)]
半巨人のレイシャルパワー "岩石溶解" 発動時のメッセージ削除.
nothere [Sun, 30 Nov 2003 15:29:41 +0000 (15:29 +0000)]
岩喰いで木が喰えなかったのは仕様だったため, 元に戻した. 判定はTUNNEL
ではなくHURT_ROCKを用いることにした. 木の場合のメッセージを少し変更.
nothere [Sun, 30 Nov 2003 14:53:39 +0000 (14:53 +0000)]
cave_floor_*()の使用に関する変更. cave_floor_*()は完全に削除.
* try_door(), next_to_corr()で使われるものはWALLの参照に置き換えた.
* コメントでcave_floor_*()が書かれている部分からも削除.
* 忍者の速駆けの中止判定, 地震での地形破壊判定はPROJECTに置き換えた.
* 岩喰いにはTUNNELを使うようにした. また, ペットでないか見えないモン
スターがいる場合は攻撃するようにした. 木を食べても木が消えなかった
バグも修正. 岩喰いに残っていたFEAT_*直接比較もフラグに置き換えた.
mogami [Sun, 30 Nov 2003 13:10:15 +0000 (13:10 +0000)]
typo
mogami [Sun, 30 Nov 2003 11:57:00 +0000 (11:57 +0000)]
搭で重なったモンスターが乗馬中と出るバグが、まだ完全に直ってなかったので再修正。
mogami [Sun, 30 Nov 2003 11:37:05 +0000 (11:37 +0000)]
zangband から、next_to_walls() で、壁の数を数える代りに床の数を
数えてしまっていたのをとりあえず壁に戻した。
部屋の真ん中に階段があるよりも、廊下の突き当たりに階段がある方が
正しい仕様と思われる。とは言え、階段を探すのが少し大変になる事、
突き当たりに階段を生成できないで廊下の真ん中に階段を生成する場合が多い事等、
問題もあるので今後検討が必要。壁/床の数の制限を撤廃する方法もある。
nothere [Sat, 29 Nov 2003 23:00:19 +0000 (23:00 +0000)]
隠しドアを隠せない地形で隠しドアを潰す判定をMOVE || CAN_FLYとした. 潰
す際に1/2でmimicで上書きになるかダンジョン標準の床になるかに分岐する
ように変更.
mogami [Sat, 29 Nov 2003 22:54:05 +0000 (22:54 +0000)]
搭の階段の上でモンスターに重なった時、(乗馬中)と表示されないように修正。
nothere [Sat, 29 Nov 2003 22:19:37 +0000 (22:19 +0000)]
lite_townでの古い城の報酬が最新のものに追従していなかったのを修正.
また, t0000001.txt内のコメントを修正.
mogami [Sat, 29 Nov 2003 22:17:44 +0000 (22:17 +0000)]
ニテーロナタ・ッ・ィ・ケ・ネ、ホタ篶タハク。「ク﨓釥オ。」
mogami [Sat, 29 Nov 2003 21:59:56 +0000 (21:59 +0000)]
32bitで足りない場合の演算コードの一般的な関数群 s64b_???()を作った。
経験値の取得、あと何体でレベルアップするかの表示等を全てこの関数セットで計算。
その過程で、MPの減衰に関するコードのバグ修正/仕様変更:
多数のペットや、最大値を越えるMP等が減衰する速度は、
普段のMP回復速度に依存しないようにした。降鬼の構え中にMPが減衰しないバグも修正。
nothere [Sat, 29 Nov 2003 21:06:29 +0000 (21:06 +0000)]
クエストや街の地形指定をタグ参照式に変更. また, 地形行F:の第10引数で
地形のmimicを指定できるように変更. ランダムトラップとmimicがある場合
はトラップ設置に当たりmimicの判定を用い, 元の地形は無視される.
関連して, 以下の変更を含む.
* エラー種別に "未定義地形タグ" を追加. また, 日本語版のerr_str[]に配
列外アクセスを起こさないように修正. これを用い, トラップ, 地形,
mimicで不正なタグが与えられたらf_tag_to_index()が-1を返し, エラーに
なるように変更. '*'は1文字だけか特殊タグの場合に限り受け付ける.
* F:でモンスターをクローン指定する際に'c'のみでIDがない場合はエラーに
なるように変更.
* クエスト "カオスの特異点" の山脈はMOUNTAIN_WALLを用いるように変更.
* クエスト "湖の洞窟" の右半分にはテレポートで飛べないように変更.
* クエスト "王家の墓" でCAVE_ICKYが足りない部分に追加.
nothere [Sat, 29 Nov 2003 14:11:18 +0000 (14:11 +0000)]
FF_MOVEの扱い方の整理.
* カオス魔法 "流星群" やトランプ魔法 "隕石のカード" では単純に
projectable()を見るようにした.
* 落馬時の地形チェックを行う地形は!MOVE && !CAN_FLYとすることで, 暗い
穴の上に落とせるようにした. 落馬して移動を伴った場合は地形効果
チェックを行う. 関連して, 乗馬/下馬時も地形効果チェックを行う.
* 新しいフロアでのペットの配置にはmonster_can_enter()を用いる.
* new_player_spot()でのプレイヤーの初期位置決定で, MOVEのない地形は禁
止した. これにより, 竜の住みかで壁の中に開いた穴の上に配置されない
ように修正.
* 壁を抜けられるモンスターが暗い穴の上を飛ぶと "壁を抜けられる" こと
が記憶に残るバグを修正.
* "(地形)の中" と表示される条件を!MOVE && !CAN_FLYに変更.
nothere [Sat, 29 Nov 2003 11:38:00 +0000 (11:38 +0000)]
"ペットに名前をつける。" の "。" を削除.
nothere [Sat, 29 Nov 2003 11:16:23 +0000 (11:16 +0000)]
トラップに掛かる, 迷宮の地形を忘れるなどと言ったプレイヤー移動時の効
果を関数に分けた. これにより, 乗馬時の移動を乗馬に任せた場合にトラッ
プを無視できたり迷宮を忘れなかったりするバグを修正. なお, 以下の変更
を含む.
* モンスターのドアの鍵解除でいきなりドアが開いていたのを修正.
* モンスターがドアを開けた際に1ターン消費する事を意図していたようだ
が, 実際は移動できていたバグを修正.
* モンスターがドアを打ち破った際にドアの位置に移動できなかったバグを
修正.
mogami [Sat, 29 Nov 2003 00:31:35 +0000 (00:31 +0000)]
束になったロッドの一部だけが充填完了した時、持ち物サブウィンドウの表示が
アップデートされていなかったバグ修正。1.4.5/1.6.0へのマージ候補だが、
先のrevisionで周辺を大きく変更してしまったので手作業が必要。
mogami [Sat, 29 Nov 2003 00:23:09 +0000 (00:23 +0000)]
コード整理。process_world()があまりに巨大で管理しずらいので、
時刻に依存しない部分は全て小関数に分けた。
mogami [Fri, 28 Nov 2003 21:11:43 +0000 (21:11 +0000)]
セーブコマンド実行時に、sanity_blast()を受けてしまうバグ修正。
ゲームロード時と同様に、hack_mindをFALSEにする。
nothere [Fri, 28 Nov 2003 12:46:10 +0000 (12:46 +0000)]
f_infoで, 非DESTROYアクションに対してK:action:自分自身が使われている
部分を削除. また, Typo fix: "opeing" -> "opening".
nothere [Fri, 28 Nov 2003 12:15:38 +0000 (12:15 +0000)]
cave_set_feat()中で, ダンジョン生成中であってもCAVE_OBJECTを処理して
いたのでしないように変更. また, ダンジョン生成中でもcave_set_feat()や
glow_deep_lava_and_bldg()でnote_spot()やlite_spot()が呼ばれていたの
で, 呼ばないように変更.
nothere [Fri, 28 Nov 2003 10:03:06 +0000 (10:03 +0000)]
CAVE_OBJECTはcharacter_dungeonで意味が変わるので修正.
nothere [Fri, 28 Nov 2003 08:14:08 +0000 (08:14 +0000)]
cave_set_feat()でもc_ptr->mimicはリセットされ, 鏡を消す処理を含むた
め, 暗闇の洞窟でCAVE_GLOWを落とす処理を追加. また, 分解属性で壊れる地
形にアーティファクトがあると地形が壊れなかったバグを修正.
nothere [Fri, 28 Nov 2003 01:50:14 +0000 (01:50 +0000)]
プレイヤーの壁掘り移動判定のバグ修正.
* 入れない地形かどうかを見ずにLOSの有無を見ていて, 透明な壁が掘れなく
なっていたバグを修正.
* 移動可能な非LOS地形 (木など) の上にアーティファクトがあれば地形を掘
れないバグを修正.
nothere [Thu, 27 Nov 2003 16:58:02 +0000 (16:58 +0000)]
*FLOOR*等の特殊タグの参照にFEATすら使わなくていいように, 変換が必要な
フラグCONVERTとpower値を与えた. f_info中の番号がずれても, 処理内容は
powerで分岐する.
nothere [Thu, 27 Nov 2003 16:38:17 +0000 (16:38 +0000)]
*FLOOR*等の特殊タグの実装を変更. ソース中に存在する負の数値ではなく,
f_info中にタグ領域を取ることにした. 内部の記号定数名は変換が必要とい
う意味を強調し, FEAT_DUNGEON_*からFEAT_CONVERT_*とした.
nothere [Thu, 27 Nov 2003 15:48:48 +0000 (15:48 +0000)]
ライト・エリアで光が通る条件をPROJECTではなくLOSに戻した.
nothere [Thu, 27 Nov 2003 15:17:27 +0000 (15:17 +0000)]
壁の向こうにいる場合は友好的/ペットのユニークの退却時の台詞は聞こえな
いようにした.
nothere [Thu, 27 Nov 2003 14:11:21 +0000 (14:11 +0000)]
find_hiding()のplayer_has_los_grid()をprojectable()に置き換え忘れてい
て, 透明な壁の近くで集団の自然界モンスターがそのまま歩いてくるように
なるバグを修正.
nothere [Thu, 27 Nov 2003 13:40:16 +0000 (13:40 +0000)]
los()やplayer_has_los_*()の使用に関する変更. 主に透明な壁の作成を想定
している.
* 以下で使われる物はprojectable()に置き換えた.
- find_safety()のplayer_has_los_bold().
- summon_possible()内の召喚場所判定.
- ペットのボール魔法の巻き添え判定.
- drop_near()でアイテムを落とす場所判定.
- ボール魔法の展開判定. これに伴い, projectable()で始点と終点が同じ
だった場合はFALSEではなくTRUEを返すように変更.
- 反射先の判定.
- ハルマゲドン・トラップの召喚位置判定.
- カオス魔法 "流星群", トランプ魔法 "隕石のカード" の位置判定.
* 以下で使われる物はprojectable()との併用にした.
- 水戸黄門の印籠発動時の各種効果の許可判定.
- 名前付きペットが付いて来られる判定.
- プレイヤーによる魔力消去, テレポート・レベル, テレポート・バック.
- 敵対モンスター同士の移動判定.
- 集団の自然界モンスターの行動.
- get_moves_aux()でのplayer_has_los_bold().
- モンスターが台詞を喋る判定.
- モンスターが死者復活を使うかどうかの判断.
- fetch()でrequire_losがあるときの判定.
- 鏡魔法 "封魔結界" の視界内判定. 透明な壁の向こうで安全に遠隔操作
されないようにする意味がある.
- project_hack()による視界内攻撃.
* 以下は保留中.
- scatter().
- mon_scatter().
関連して, 以下の変更を含む.
* プレイヤーから魔力消去した場合に対象が見えていない場合はメッセージ
を出さないようにした.
* find_safety()のcave_floor_grid()はmonster_can_cross_terrain()に置き
換えた.
mogami [Thu, 27 Nov 2003 12:09:14 +0000 (12:09 +0000)]
drop_here() について、クエスト内のコードとの関係で結局どうやっても必要
になる事がわかったので一時しのぎでなく、ちゃんと書いておく。
nothere [Thu, 27 Nov 2003 03:47:26 +0000 (03:47 +0000)]
地形変化などに使える特殊タグを追加. これらのタグを追加することで,
FEAT_FLOORを内部でfloor_type[randint0(100)]に変換するhackを破棄.
普通にFEAT_FLOORを使えるようになる. 以下の特殊タグが使える.
*FLOOR*: floor_type[randint0(100)]
*WALL*: fill_type[randint0(100)]
*INNER*: feat_wall_inner
*OUTER*: feat_wall_outer
*SOLID*: feat_wall_solid (現在はfeat_wall_outerと同じ)
*STREAM1*: d_info[dungeon_type].stream1
*STREAM2*: d_info[dungeon_type].stream2
なお, feat_wall_*がset_floor_and_wall()でも初期化されないので修正.
mogami [Wed, 26 Nov 2003 21:10:56 +0000 (21:10 +0000)]
build_arena()、ネbuild_battle()、ホコツノクテヘtypo。」
mogami [Wed, 26 Nov 2003 20:19:41 +0000 (20:19 +0000)]
クエストの報酬を置くコードで重大バグ。その場しのぎで修正。
フロアの生成途中に drop_near() を呼び出していた為、そこからlos()を呼んで、
まだ生成していないgridのfeat(不定の値)でhave_flag()を使った為、
segmentation faultで落ちていた。
とりあえず、los()を呼ばずに足元にアイテムを置く関数drop_here()を急造して
クラッシュを避けた。
リリース前に報酬を渡すコードを書き変えて、賞金首の報酬と同様に直接渡すようにしたい。
mogami [Wed, 26 Nov 2003 20:15:01 +0000 (20:15 +0000)]
コツノクハムソホtypoス、タオ。」
nothere [Wed, 26 Nov 2003 18:01:53 +0000 (18:01 +0000)]
defines.h、ヒFEAT_MOUNTAIN_WALL、ノイテ.
nothere [Wed, 26 Nov 2003 17:55:54 +0000 (17:55 +0000)]
暗黒光源のdarkened_grid_hack()内でテキストモード時に暗黒光源に染まっ
た床を敢えて真っ黒い元の文字として表示いたが, この仕様にほとんど意味
はないため, 単に未知の地形の設定を使うように変更.
nothere [Wed, 26 Nov 2003 17:30:41 +0000 (17:30 +0000)]
地形の名前を表示する部分でmimicを無視した表示をしてしまい, 本当の地形
が分かっていたバグを修正. なお, 以下の修正を含む.
* do_cmd_tunnel_aux()でmimic_featが0になることはないので削除.
nothere [Wed, 26 Nov 2003 16:43:50 +0000 (16:43 +0000)]
地形を叩き開ける際に, OPENで地形が変わらない地形だった場合その地形に
めり込むバグがあったので修正. また, くさびの打たれたドアにK:OPENがな
くこのバグが出ていたので併せて修正.
nothere [Wed, 26 Nov 2003 16:04:30 +0000 (16:04 +0000)]
ダンジョン情報のfloor1-3, fill_type1-3の配列化. set_floor_and_wall()
の整理.
mogami [Wed, 26 Nov 2003 12:19:04 +0000 (12:19 +0000)]
溶岩は自分で光っているので光源効果は受けないようにした。
mogami [Wed, 26 Nov 2003 12:10:34 +0000 (12:10 +0000)]
change_wild_mode()をコード整理。溶岩で火傷した時にすぐに広域マップから
出るようにしようと思ったのだが、逆に溶岩地帯から広域マップに移動する事
が出来なくなって不便なのでやめた。結局コード整理のみ。
nothere [Wed, 26 Nov 2003 11:55:53 +0000 (11:55 +0000)]
cave_floor_*()の使用に関する変更の途中経過.
* ライト・エリア範囲の処理で壁とみなされる条件はLOSかPROJECTのどちら
かが欠けている場合とした.
* 以下で使われるcave_floor_*()はFF_PROJECTの参照に置き換えた.
- 全方向打撃で, 見えないモンスターにも攻撃できる地形判定.
- カオス魔法 "虚無召来" での壁判定.
- 分解のブレスを持つモンスターの視界内にいる時に分解のブレスを吐き
易くする判定.
- fetch()でアイテムを取り寄せる際に, 方向で指定した時の壁判定.
* 幽鬼戦隊召喚の場所判定はcave_empty_bold()に置き換えた.
関連して, 以下の変更を含む.
* note_spot()で不要と思える比較を削除すると移動光源で照らされた壁まで
暗い扱いになっていてCAVE_MARKが立たない場合があり, 変更取り消し.
* マクロboundary_floor_bold()は使われなくなったので削除.
* ダンジョンの端の永久岩は必ずWALLとPERMANENTを持っているため, それを
評価するマクロpermanent_wall()を作った. 主にダンジョンの端のmimicの
処理に用いる.
* マクロboundary_floor_grid()内部の評価順序変更.
mogami [Wed, 26 Nov 2003 09:10:13 +0000 (09:10 +0000)]
英語版でメッセージ文の右端が切れていたので修正。
また、(0)マクロ行動の入力 でもメッセージを出すようにした。
mogami [Wed, 26 Nov 2003 09:01:37 +0000 (09:01 +0000)]
英語版のコードにゴミ「y」が入ってコンパイルできなかったので修正。
mogami [Wed, 26 Nov 2003 08:51:03 +0000 (08:51 +0000)]
マクロアクション入力中に、カーソルキーが使える旨のメッセージを画面下に表示するようにした。
mogami [Wed, 26 Nov 2003 06:01:52 +0000 (06:01 +0000)]
wild catの説明文、vanillaでのtypo修正に追随。和訳も変更。
mogami [Tue, 25 Nov 2003 18:28:05 +0000 (18:28 +0000)]
英語版がX11で無駄にlocaleを環境変数から取得しないようにした。
ja_JP.eucに設定されてmissing font(s)とか文句を言わないように。
mogami [Tue, 25 Nov 2003 18:11:08 +0000 (18:11 +0000)]
壁抜け時に、壁の中に向かって走らないようにしていたコードを間違って取ってしまっていたので再追加。コメント付加。
nothere [Tue, 25 Nov 2003 17:05:43 +0000 (17:05 +0000)]
cave_floor_*()の使用に関する変更の途中経過.
* 与えられた座標の地形(mimic無視)がLOSを持つかどうかのみを返すマクロ
cave_los_bold()と, そのc_ptr版であるcave_los_grid()を作った.
cave_floor_bold()を単に視線が通る意味で使っていた部分を置き換えた.
* 以下で使われるcave_floor_*()はFF_PROJECTの参照に置き換えた.
- prt_path()による軌道表示.
- 射撃/投擲の停止判定.
- スターライトの杖などの, ランダムな壁のない方向に飛ぶ魔法.
- 破邪魔法 "神の怒り" のターゲット指定.
- 剣術 "虎伏絶刀勢" が半径0のボールになる地形判定.
* 以下で使われるcave_floor_*()はmonster_can_enter()に置き換えた.
- モンスター・ボールからのペットの解放.
- クエスターの配置. なお, アイテムの上に生成されない仕様は削除.
* 武器のカオス的効果でモンスターが変身する判定にcave_floor_bold()が使
われていたために壁や木の中のモンスターは変身を受けない仕様だった.
各種魔法での変化と違って打撃だけ特別扱いするのをやめた.
関連して, 以下の変更を含む.
* CAVE_MNLTが立てられる時点でCAVE_VIEWは立っているため, cave.cでの参
照に当たってほぼCAVE_LITEと同じ扱いにした.
* cave.cのmove towards playerコードで "明るい" とみなす条件に移動光源
が使われたり使われなかったりして統一が取れていなかったので, 使う方
で統一し, 該当コードをcheck_local_illumination()としてまとめた.
また, player_can_see_bold()でcheck_local_illumination()を適用する判
定にはmimicを適用した.
* note_spot()で不要と思える比較を削除.
mogami [Tue, 25 Nov 2003 16:03:08 +0000 (16:03 +0000)]
MOUNTAIN_WALLに K:UNPERMを追加し忘れていたので修正。
他に _INNER 等が今だに残っていた所を修正。
mogami [Tue, 25 Nov 2003 15:58:43 +0000 (15:58 +0000)]
set_tunnel()で山脈にトンネルを作れないバグ修正。
vaultsの永久岩は inner なので、わざわざコードを追加しないでもちゃんと無視されている。
mogami [Tue, 25 Nov 2003 15:31:03 +0000 (15:31 +0000)]
テレポートの仕様整理。
・vaultsは常に禁止。
・木は禁止(森ダンジョンでこの方が自然)
・アイテム/鏡/結界 等は禁止しない。
・深い水、浅い溶岩、深い溶岩は、プレイヤーの状態によって許可。
・wizardモード時は次元の扉でどこでも移動。
mogami [Tue, 25 Nov 2003 14:48:28 +0000 (14:48 +0000)]
改名 warding_mirror()→place_mirror()。
mogami [Tue, 25 Nov 2003 14:37:14 +0000 (14:37 +0000)]
cave_droppable_bold()を変更。他のアイテムに重なる事を許可する時にも
使えるようにして、重なるのを禁止する時は明示的にそうするようにした。
また、shallow waterにFLOORを付けて鏡を置けるようにして、
鏡を配置する判定コードは元に戻した。
FLOORがあると英語版でlookした時 "a "を上に付けないので、
また deep water 等も合わせて"a "を付けないようにコードを変更して、
f_infoの英語名を"a "を付けないでいい形に修正。(unangbandと同様)
defines.hのcave_*_*()についてコメント付加。
nothere [Tue, 25 Nov 2003 05:22:38 +0000 (05:22 +0000)]
cave_clean_bold()の使用に関する変更.
* プレイヤー初期配置でcave_clean_bold()が使われていて, 地獄などのよう
にFF_FLOOR地形が存在しないダンジョンでプレイヤーを配置できず無限
ループに陥るバグを修正.
* アイテムを置けるかどうかを見ている部分ではDROPが無意味になってしま
うので, FF_DROPの有無とオブジェクトの有無のみを見るマクロ
cave_droppable_bold()を作り, それに変更.
* 浅い流れの地形が主になる地形では鏡使いが鏡を置くことができず, まる
で戦えない場合が予想されるため, 鏡の設置にもcave_droppable_bold()
を読むようにした. ただし, 木の上に鏡を作られないようにPROJECTを必要
とした. 回避の彫像の設置にも暫定的に適用. 爆発のルーンはトラップな
ので, FF_FLOORを読むcave_clean_bold()のままにした.
mogami [Mon, 24 Nov 2003 19:42:38 +0000 (19:42 +0000)]
GF_MAKE_TRAPで無駄な地形判定削除。place_trap()が全てやってくれる。