News:

Use the "Forum Search"
It may help you to find anything in the forum ;).

[idea] Auto signal building

Started by gerw, January 31, 2009, 12:58:57 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gerw

In OpenTTD you can drag when building signals in order to create more than one signal (http://wiki.openttd.org/wiki/index.php/Drag_signal_density). I think simutrans is worth of this feature to ;)

But how to realise it? My suggestion is the following: If you use the signal tool and dragging the cursor, several signals will be built along the route. If you release the cursor, a little dialog will pop up and you can entry, that you want a signal each 3 tiles, e.g.

What do you think about it?

jamespetts

Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.


gerw

How do you think about the dialog to set up the 'signal density'?

lukesleftleg

I think this is a great idea, and I think a pop-up window with the signal density is probably the way to go with it.

It might also be an good idea to have the desired signal type in this pop-up window (e.g. presignal, one-way etc, and maybe also which direction one-way signals should point)

blitzmaster

This idea is a very good one, although it is not very practicable.... If you use pak128 on a normal screen resolution (1024x768), not very much tiles will be on your screen at once. And then this tool is not very usefull, because you can't get many tiles....
But in addition to auto-mouse scrolling, this might be usefull....

DirrrtyDirk

Of course you could always zoom out...
  
***** PAK128 Dev Team - semi-retired*****

spm


blitzmaster

what about auto scrolling in general?
has this been suggested before (I think so...^^)?
was it rejected? why?

gauthier

Auto-scrolling is better than acutal system, first it would free the right mouse button so it could be used for other things. For example, selecting a tile with both train, station, signal, currently we have to click several times to have the good window. Two mouse buttons could fix that.

prissi

[offtopic]
Sigh:
Does someone actually just look into the simuconf.tab. This game is highly customizable since ages.

only_single_info = 0

will open all info windows at once.
[/offtopic]

blitzmaster

so what to say about autoscrolling with the mouse?

gauthier

Quotewill open all info windows at once.

Yes and it's already activated but when you for example on a tile with :
_ a signal
_ a way
_ a vehicle

of course you want to open vehicle window but you have the signal window ...

DirrrtyDirk

When I change to

only_single_info = 0 in my simuconf.tab and try it in the situation you describe, I get all 3 info windows: vehicle, signal and way - all with just one click, just like prissi said...
  
***** PAK128 Dev Team - semi-retired*****

gauthier

ok but I don't want to have 3 windows if I would close two.

VS

And how does the program decide which you want? I know, yes, normally the order is fixed, so you know what will open, but...

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

DirrrtyDirk

So you only want the order of the window different when they are opened with only_single_info=1, correct?

I don't think that this would require having a different function for the right mouse button or autoscrolling implemented (even though these maybe useful features as of themselves - but probably not needed for what you want)
  
***** PAK128 Dev Team - semi-retired*****

VS

Maybe an immediate window allowing for selection of the object, based on images? My friend did that in a project and received a good mark for "innovative interface".

Seriously... there is 1) what prissi mentioned, then 2) you can close windows downwards with Escape which is faster than clicking.

And this topic is now more than 50% offtopic :D

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

gerw

Now, a first version of the auto signal build patch is finished. If you drag with the signal tool, many signals will be created.

Currently, a signal is placed every 2 straight (or 4 curved) tiles, but this can be adopted (easily) in the source code. Maybe this should be adjustable via a gui?

Feel free to find bugs.

jamespetts

Yes, should definitely be adjustable via the GUI.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

Fabio

how does it choose the direction of the signals?

and i don't quite like dragging, i suggest something like
click -> normal signal
CTRL+click -> start; click -> end for multiple signals

prissi

With dragging you know the tile you came from => direction is know.

But I think an UI is required to select the spacing.

gerw

Can I place the GUI-class directly in the wkz_roadsign_t class? It's better to place it in gui/, isn't it?

prissi


z9999

Good.
One problem.
I cant build on elevated track or monorail track.
I tested these, and all of them didn't success.
- Normal elevated track
- Elevated track on road
- Elevated track on track

Can you support elevated track or monorail track with holding CTRL key ?

gerw

Thank you, z9999. The new version allows placing signs with ctrl (like the old behaviour). GUI isn't included yet.

z9999

Thank you, it works now.
This is not a bug report but a question, both behavior on screenshot is intended ?
- Upper track: it will stop at roadsign
- Lower track: roadsign was removed

I'm not sure how it should behave.

gerw

Currently, signals on intermediate tiles are removed. Is this ok?

Maybe we should also replace signals, when the existing sign is different?

gerw

#28
Now with a little GUI.

"remove intermediate signals" will remove all signals on tiles, where no new signal is placed.
"replace other signals" will replace other signals on tiles, where new signals are placed (otherwise it would stop at such tiles).

jamespetts

Aha - GUI! Looking most promising.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

z9999

#30
I compiled with gcc.exe (GCC) 3.4.5, and strange thing happened.
Some text on window was disappeared.


gerw

#31
Ups, I inserted a "return" into the drawing routine of the new world dialogue, in order to see what happens there. And I didn't remove it before posting...

Edit:
I think, I will mark the track, on which signals will be build, red. Therewith players can see the effect of the spacing.

Edit2:
I've looked in the code and I think it's difficult to mark ways red. Maybe we place a little bulldozer on each affected way? But this isn't consistent with the usage of the bulldozer in other situations. Any idea? [Implementation details: place the marks in set_values() and remove then in cleanup()]

Dwachs

maybe, you can mark the tiles? so a cursor fram is shown on each tile, where a signal is built? Like for instance the station coverage is shown when building new station buildings.
Parsley, sage, rosemary, and maggikraut.

gerw

#33
Now a little "bauigel" is drawn on every tile.

(Marking doesn't work nice, since the flag grund_t::marked is removed, when touching the tile with the cursor, and grund_besch_t::marker doesn't contain the border as one image.)

Edit:
Now also CTRL+click is supported (as fabio suggested).

Fabio

#34
nice!
but what about the marker used for station coverage??

EDIT:
and what about using the signal cursor instead of the bulldozer?

EDIT2:
Quote from: gerw on February 14, 2009, 09:25:43 PM
Now also CTRL+click is supported (as fabio suggested).
thank you, dragging is fine, but it is not very laptop-friendly...