atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
うんも保管庫
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
うんも保管庫
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
うんも保管庫
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • うんも保管庫 | Shisho-Simutrans
  • こんなクソコードは辞めろ!2022最新モデル

うんも保管庫

こんなクソコードは辞めろ!2022最新モデル

最終更新:2022年12月24日 21:18

shisho_simutrans

- view
メンバー限定 登録/ログイン

はじめに

 現在SimutransのOTRPはV33が最新としてリリースされており、その更新に私なるみが関わらせていただきました。
さて今回の駄文はその更新に関わらさせていただいた経緯とその対策についてお話しようと思います。

更新に至る経緯


MAPスクロール、クソ不便じゃね?

 現在日本のSimutransに置いてそこそこのシェアを誇るOTRP版。
 私の身内サーバーでもOTRPを利用させていただいていました。
 しかし、今年に入りV30からアップデート出来ずにいました、理由はと言うとあまりにも大きな問題があったのです。
それは、マウスでのスクロール移動が困難であることでした。
Simutrans本家のデフォルトが変わったものによるもので、本家ではこの判断に異を唱えた人間により、Infinity mouse scrollという項目が設定されました。
しかし、あろうことかOTRP版では一向にその機能がつきませんでした。
ひめし氏には何度もリプライで直してくれと言っていましたが、そもそも今年で開発終了しているはずだったモノ、結局11月に入っても対応されないままでした。
 自分で直そう、そう思うも私は専門学生時代、C言語の授業が嫌で嫌で組み込み専攻なのに全く別業種に就職した身。
最初は乗り気では全くありませんでした。
しかし、ぽてとふぁーまー氏に「サーバーもいい加減諦めてアプデしてくれ」と計157回以上のせっつきを受け、渋々別の友人協力の下、コードの解析に乗り出しました。

コードから見るKU-TA版の功罪
 {さて、現在のOTRPについて軽く紐解いて行くと、ひとくちにOTRPと言ってもV31以降は金沢大学のKU-TA版https://kanazawaxpress.blog.fc2.com/blog-entry-222.htmlが取り込まれています。
この取り込み周りの解説はご本家ひめしさんの記事に任せるとして}https://himeshi.hateblo.jp/entry/2022/12/24/000359
この取り込みを行ったV31以降は件のマウススクロールがおかしくなるという挙動が見られました。
その時点では本家が余計な事をしたのに追従してしまった、そう楽観視していました、しかしコードを解析するうちにKU-TA版のとんでもない罠が判明します。
KU-TA版の罠、牙を剥く
最初は間違えてV30のコードを見ていた自分、このまま本家のInfinity mouse scrollのボタンの記述を追記すればそれだけで済むであろうと考えていました。
しかし、V32のコードで試した所、そもそもビルドでエラーが出ました。
ただスクロールの変数を参照指定しているだけのボタンのコード、普通ならこんなエラーは出るはずもアリません。
{なぜエラーは出たのか、その答えは
}
{変数の型、変えられとるやん!
}
はい、そりゃ動かん訳です。
本家やV30までのOTRPではマウススクロールをするために使う変数の型(要は座標情報を入れるための箱の種類とでも思ってください)がbool型でした、しかしKU-TA版からはvoid型に変わっていたのです。
どうしてここを変えたのか、答えはすぐにわかりました、

周りの変数の型がvoidだから合わせたろ!

おそらくコレです、というかコレ以外で説明が付きません。
そうです、前後のコードが変数型の定義文だらけなのですがboolなのはマウススクロールを扱う変数くらいなものでした。

{要するに、プログラミング初心者にもわかりやすく書くと
周りがダンボール箱だからプラスチック箱から変えておきました^^}

こういうことです。

はっきり言って
マジでやってはいけないコード改変のやり方です。

あとからのメンテナンス性を微塵も考えて居ない書き方により祝日を丸一日潰してしまいました...

そういうわけでその箇所の修正とボタン部分を追記しプルリクエストを送らせていただき、取り込んで頂くに至りました。


と、初版では書いていました。
どうやら確認不足でしたが古いコードではそもそも公式でvoidだったようです。

簡単に説明すると
公式がスマホ対応させたいよーとboolに変える
↓
ほぼ同時期にKU-TAがリリースされる
↓
マウススクロールクソじゃんと意見が来てInfinity mouse scrollを追加する
↓
日本語勢、wiki荒らしにより日wikiが編集できなくなりこの情報が一部のみに留まる
↓
自分があまりにも誰も動かないのでプルリクエストする

こういうことだそうです。
結局公式のAndroidに対応したい!というわがままにユーザーが振り回されてるのに変わりは無いですが…(そもそもAndroid対応は非公式フォーク時点ではそんなとこ変えてなかったのですがね…)
結論から言うと全員戦犯に近いです。


まとめ

いかがでしたでしょうか、本体開発に関して、最近議論がたけなわなようですが、こういったフォーク版があるにも関わらず根幹に当たる部分を弄るとあとからどえらい目に合うよってことだけわかって頂ければ幸いです。
ひめし氏も多忙でここまで見きれて居なかったのでしょう、公式のコードの変化に気づいていればここまでの骨折り損はなかったかなと思っております(殴

以上を持って締めさせていただきます。
このような駄文に付き合ってくださりありがとうございます。
「こんなクソコードは辞めろ!2022最新モデル」をウィキ内検索
LINE
シェア
Tweet
うんも保管庫
記事メニュー

メニュー

  • トップページ
  • アドオン
  • 管理者紹介
  • リンク集

アドオン

  • 鉄道車両のアドオン
    • 国鉄・JR型
      旧性能電車
      通勤型電車
      近郊型電車
      特急型電車
      ジョイフルトレイン電車
      一般型気動車
      急行・特急型気動車
      ジョイフルトレイン気動車
      一般型客車
      優等型・ジョイフルトレイン客車
      電気機関車
      ディーゼル機関車
      蒸気機関車
      貨車
      事業用車両
    • 私鉄型
      関東私鉄
      関西私鉄
      その他大手私鉄
    • 第三セクター・その他事業社
      中小私鉄
      公営交通
      第三セクター
    • 海外
      アジア
      ヨーロッパ
      アメリカ
その他のアドオン
  • アドオン/自動車
  • アドオン/建物
  • アドオン/インフラ
  • アドオン/産業

その他

  • tips
  • リンク集
ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. pak128.japanにおけるグループ統合規格でのバス開発
  2. アドオン/国鉄・JR型/旧性能電車
もっと見る
最近更新されたページ
  • 686日前

    かわごえ(敬称略)への対応について
  • 709日前

    トップページ
  • 871日前

    アドオン/国鉄・JR型/近郊型電車
  • 871日前

    アドオン/国鉄・JR型/特急型電車
  • 886日前

    こんなクソコードは辞めろ!2022最新モデル
  • 887日前

    tips
  • 887日前

    pak128.japanにおけるグループ統合規格でのバス開発
  • 890日前

    メニュー
  • 1046日前

    リンク集
  • 1260日前

    アドオン/私鉄型/関西私鉄
もっと見る
人気記事ランキング
  1. pak128.japanにおけるグループ統合規格でのバス開発
  2. アドオン/国鉄・JR型/旧性能電車
もっと見る
最近更新されたページ
  • 686日前

    かわごえ(敬称略)への対応について
  • 709日前

    トップページ
  • 871日前

    アドオン/国鉄・JR型/近郊型電車
  • 871日前

    アドオン/国鉄・JR型/特急型電車
  • 886日前

    こんなクソコードは辞めろ!2022最新モデル
  • 887日前

    tips
  • 887日前

    pak128.japanにおけるグループ統合規格でのバス開発
  • 890日前

    メニュー
  • 1046日前

    リンク集
  • 1260日前

    アドオン/私鉄型/関西私鉄
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. R.E.P.O. 日本語解説Wiki
  2. VCR GTA3まとめウィキ
  3. ガンダムGQuuuuuuX 乃木坂46部@wiki
  4. SYNDUALITY Echo of Ada 攻略 ウィキ
  5. シュガードール情報まとめウィキ
  6. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  7. ドタバタ王子くん攻略サイト
  8. STAR WARS ジェダイ:サバイバー攻略 @ ウィキ
  9. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 検索してはいけない言葉 @ ウィキ
  7. 発車メロディーwiki
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. SDガンダム ジージェネレーションクロスレイズ 攻略Wiki
  10. oblivion xbox360 Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 無馬 かな - ストグラ まとめ @ウィキ
  3. Back Alley - ストグラ まとめ @ウィキ
  4. 鬼野 ねね - ストグラ まとめ @ウィキ
  5. Famos Gray - ストグラ まとめ @ウィキ
  6. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  7. 甘依 モカ - ストグラ まとめ @ウィキ
  8. 鱈 タラオ - ストグラ まとめ @ウィキ
  9. FadeGate - ストグラ まとめ @ウィキ
  10. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.