gcrtnst / sw-vmark

Add vehicle marker features to Stormworks
https://steamcommunity.com/sharedfiles/filedetails/?id=2279684060
The Unlicense
0 stars 0 forks source link

Make `?vmark clear` argument optional #37

Closed gcrtnst closed 3 years ago

gcrtnst commented 3 years ago

I want to satisfy the following items as much as possible.

  1. Prevents mistakes in marker erasure. Or make it possible to undo a mistake
  2. The argument specifications for ?vmark clear and ?vmark clearlocal should be the same
  3. Reduce the number of characters in the command to reduce the number of types
  4. Reduce the amount of code and make it easier to maintain by not including functions that are not needed

If the argument is omitted, it would be natural to erase all markers.

If we make the argument of ?vmark clear optional, we should also make the argument of ?vmark clearlocal optional according to 2. However, since there is no way to recover markers that have been cleared in bulk with ?vmark clearlocal, 1. cannot be satisfied. (Since ?vmark clear has ?vmark restore, ?vmark clear satisfies 1. Also, if ?vmark clearlocal does not allow the omission of arguments, it is necessary to explicitly specify that all markers should be erased, so erasing mistakes do not occur and 1. is satisfied.) Implementing ?vmark restorelocal would satisfy 1. but is it really necessary? The number of local markers to be set at a time is at most two, so even if all markers are deleted by mistake, it won't take much time to recover them.


下記の項目をなるべく満たしたい。

  1. マーカーの消し間違いを防ぐ。あるいは、消し間違えた場合に元に戻せるようにする
  2. ?vmark clear?vmark clearlocal の引数仕様は合わせる
  3. コマンドの文字数を少なくして、タイプ数を減らす
  4. 必要の無い機能は入れないようにして、コード量を減らし、メンテナンスしやすくする

引数を省略した場合は、全てのマーカーを消去するのが自然だろう。

?vmark clear の引数を省略可能にする場合、2. に従い ?vmark clearlocal の引数も省略可能にしたい。しかし、?vmark clearlocal で一括消去したマーカーを回復する手段はないため、1. を満たせなくなってしまう(?vmark clear?vmark restore があるので 1. を満たしている。また、?vmark clearlocal が引数省略不能な場合、明示的にマーカー全消去を指定する必要があるため、消し間違いは起こらず 1. を満たす)。?vmark restorelocal を実装すれば 1. を満たせるようになるが、それは本当に必要だろうか?一度に設定するローカルマーカーはせいぜい2個くらいであり、仮に間違えて全消去しても復旧にはそれほど手間は掛からないのでは?

gcrtnst commented 3 years ago

I'm trying to make the arguments for ?vmark clear and ?vmark clearlocal optional. If you clear all local markers by mistake, you can't undo it, but since local markers are a minor feature, I don't think many people will be unhappy with this.


?vmark clear?vmark clearlocal の引数を省略可能とすることにした。間違えてローカルマーカーを一括消去してしまうと元に戻せないが、ローカルマーカーはマイナーな機能なので、これで不幸になる人はあまり居ないだろうと判断した。