VC++警告に応じたリファクタリング
本警告を直している間に、突然変異で生えた部位での攻撃処理時、ダメージのダイス目とダイス数が逆になっている不具合を確認したので、これを機に修正してみる。
case MUT2_TRUNK: dss = 1; ddd = 4; n_weight = 35; atk_desc = _("象の鼻", "trunk");
{ /* Sound */ sound(SOUND_HIT); msg_format(_("%sを%sで攻撃した。", "You hit %s with your %s."), m_name, atk_desc); k = damroll(ddd, dss);
s16b damroll(int num, int sides);
cmd1.cまで対応。これでC4457の警告は全部潰した。エンバグが無い事の確認と、他の警告をどうするか考えがまとまったらチケットを完了する。
VC++で警告を全てに拡張したら、warning C4242が大量発生中。どうにか根絶するつもりで。
各種警告に対応中、z-form.cについてはC4774には対応したが、 https://msdn.microsoft.com/ja-jp/library/23k5d385.aspx によればC4710は「既定で無効になっているコンパイラ警告」に含まれており、直し方についても今一つ要領を得ないので、警告側を抑止する。
C4774は前回の修正ではバグを起こしていたので差し戻した。 https://msdn.microsoft.com/ja-jp/library/dd831853(v=vs.140).aspx?appId=Dev14IDEF1&l=JA-JP&k=k(C4774)&rd=true 実際セキュリティ懸念ではあるのだが、具体的な修正案がすぐに見つからなく、 MSDNでもリンク先不全でやる気ない感あるので、この際警告抑止する。
C4820, C4996も前回に加えて前回までの間に抑止した。
キリがなさそうなので一度ここでチケットを止める。
関数内で、同名のローカル変数を別のスコープ内で定義して、しかもそれが処理の流れ上、無意味である例がVC++2015に変えて以来散見される。適示あぶり出して修正を試みる。