リファクタリング指針

インターフェースとゲーム処理の分離

  • コマンド処理とゲーム中のアクションの実行処理を分離する
    • 現時点でも、「do_cmd_*()」と「do_cmd_*_aux()」となっているものがあるがaux(補助)とは明らかに字義が違うと思うので、「do_cmd_*()」と「exe_*()」に改名、整理する。
      • do_cmd_*()はあくまでインターフェース上の処理であり、ゲーム世界に実際の影響を及ぼす処理はexe_*()で行う。
      • do_cmd_*()はさらに「そのコマンドが実行可能な状態かどうか」の基準を返すための*_is_enabled()に分離するか?

構造体の整理

  • プレイヤー個人に関わるステータスの内、グローバル変数となっているものを可能な限りplayer_type構造体に収める。
    • セーブデータにも保存される独立変数、一時的に用いる従属変数を問わない。

フォルダ構造の分割

2020年にかけてhourier氏が分割して大分整理がついている。release/3.0.0Alphaの2020/12/04の時点で以下の通り

  • src
    • action
    • art-definition
    • artifact
    • autopick
    • birth
    • blue-magic
    • cmd-action
    • cmd-building
    • cmd-io
    • cmd-item
    • cmd-visual
    • combat
    • core
    • dungeon
    • effect
    • flavor
    • floor
    • game-option
    • grid
    • info-reader
    • inventory
    • io
    • io-dump
    • knowledge
    • load
    • locale
    • lore
    • main
    • market
    • melee
    • mind
    • monster
    • monster-attack
    • monster-floor
    • monster-race
    • mspell
    • mutation
    • object
    • object-activation
    • object-enchant
    • object-hook
    • object-use
    • perception
    • pet
    • player
    • player-attack
    • player-info
    • racial
    • realm
    • room
    • save
    • specific-object
    • spell
    • spell-kind
    • spell-realm
    • status
    • store
    • sv-definition
    • system
    • target
    • term
    • util
    • view
    • window
    • wizard
    • world