Page 1 of 1

Split cargos and cargo subtypes in the refit window

Posted: 23 Apr 2010 18:48
by Terkhen
This patch tries to make finding the wanted cargo subtype in the refit window easier by showing subtypes in a separate list. Since this change could affect some NewGRF sets in unforeseen ways, it could use some testing with different NewGRF configurations. Any feedback will be welcome! :D

Below this text are some screenshots, you can find the diff file and a win32 build in the next post.

Re: Split cargos and cargo subtypes in the refit window

Posted: 23 Apr 2010 18:48
by Terkhen
Diff file and win32 build:

Re: Split cargos and cargo subtypes in the refit window

Posted: 23 Apr 2010 18:59
by maquinista
Awesome patch.

I have a question: It's possible to enable cargo subtypes for locomotives without cargo? It would be awesome to let the user to chose between various liveries of the locomotive.

Re: Split cargos and cargo subtypes in the refit window

Posted: 23 Apr 2010 22:07
by 2007Alain2007
Dose this refit the hole train or parts of it?

Re: Split cargos and cargo subtypes in the refit window

Posted: 23 Apr 2010 22:13
by Terkhen
maquinista wrote:It's possible to enable cargo subtypes for locomotives without cargo? It would be awesome to let the user to chose between various liveries of the locomotive.
To my knowlegde, you need a dummy special cargo to do that (like NARS regearing).
2007Alain2007 wrote:Dose this refit the hole train or parts of it?
That behaviour is not changed by this patch (it will work exactly as it does in 1.0.0 / trunk).

Re: Split cargos and cargo subtypes in the refit window

Posted: 23 Apr 2010 23:28
by 2007Alain2007
Thank you Terkhen for getting back to me

Re: Split cargos and cargo subtypes in the refit window

Posted: 24 Apr 2010 08:15
by ColdIce
Works with:

Aviators aircraft (version tested 1.7)
World Airliners
Long Vehicles V4
Japanese Train Set 2.1a (Shinkansen - 0 Series, 100, 700, 200 and some DMU from normal railtype)
Planeset 1.5.3 (A380 L, Antonov An-124 Ruslan L, Boeing 747 L, Boeing 747 L EUD, Boeing 777 L Passangers only, Douglas DC-6 S Passangers only, Boeing Commercial Chinook H Goods only)



Grf sets with no refitting subtypes:

2cc trainset 1.0.1
2cc chimaera
Hankyu rail set
Japanese Maglev Set 0.1
Spain Set Taster 1.28
UK Renewal Train Set v3.04 and add-ons0.4
Dutch Trainset Alpha 1.1
HEQS r318
Newships
A New Monorail Set 0.3


i didnt find any problems. tested one set at the time. i will try other sets later.

Re: Split cargos and cargo subtypes in the refit window

Posted: 24 Apr 2010 08:17
by Terkhen
What do you mean with "No support"? No support for refitting inside the set, or no support from this patch?

Re: Split cargos and cargo subtypes in the refit window

Posted: 24 Apr 2010 08:34
by ColdIce
I mean that the window doesnt split. No support from this pacth.

Re: Split cargos and cargo subtypes in the refit window

Posted: 24 Apr 2010 09:34
by Terkhen
Those cargos have no refitting subtypes: the window does not need to split for them.

Re: Split cargos and cargo subtypes in the refit window

Posted: 24 Apr 2010 11:45
by maquinista
This patch is awesome, It removes the clutter in the refit window when you have passengers and tourists.

Re: Split cargos and cargo subtypes in the refit window

Posted: 24 Jul 2010 15:50
by Kogut
Is it planned to include it into trunk?

Re: Split cargos and cargo subtypes in the refit window

Posted: 25 Jul 2010 10:55
by Terkhen
Not at its current state. There were some talks about this patch on the IRC channel and the conclusion was that a tree view would suit this feature better. I don't plan to code that view until I finish some university work, so don't expect news about this feature on my part in the next few months. As always: anyone should feel free to work on this.

Re: Split cargos and cargo subtypes in the refit window

Posted: 29 Jul 2010 19:25
by ChillCore
Hello Therken,

You may probably already have read about it but I will report anyway.
Unfortunately I have found a way to crash you patch.

If you have the refit window open the game crashes while removing the wagons from the locomotive.
I could reproduce it in your patch against r19699 as well as in my patchpack.
In clean trunk the refit window is cleared of options. In your patch not resulting in the crash.
If you want I can provide a crashlog but the bug is very easy to reproduce so I think it is not necessary. Do ask for one if you feel otherwise.

In my bumped version (see chill's patchpack v8) it is sometimes impossible to select refit options until the refit gui is resized.
This I could not reproduce in your clean patch against r19699. It is possible that I have forgotten something or did something wrong while bumping so you may want to ignore this.
I just mention it for completeness.

Also in my current patchpak (not posted yet) the patch needs some adjustment to current trunk which I have not yet done completely ... so I did not test yet against current trunk.

All of the above tested with NARS 2.03 from the ingame content download while refitting woodwagons.

Regards,
ChillCore.

ps: Good luck with your university work

Re: Split cargos and cargo subtypes in the refit window

Posted: 29 Jul 2010 20:38
by Terkhen
That crash is probably caused by a wrong list of cargos after altering the train. If this is the case, the issue can be solved by calling InvalidateWindowData(..., ..., 0) for this window at Train::ConsistChanged(). Thank you for the report, I'll take it into account when I redo this patch.

Re: Split cargos and cargo subtypes in the refit window

Posted: 29 Jul 2010 23:23
by ChillCore
Thank you, for the hint it is fixed now.
Here is what I changed at the end of Train::ConsistChanged(bool same_lenght) in train cmd.cpp.

Code: Select all

from
-----
	if (this->IsFrontEngine()) {
		this->UpdateAcceleration();
		SetWindowDirty(WC_VEHICLE_DETAILS, this->index);
-		InvalidateWindowData(WC_VEHICLE_REFIT, this->index);
-	}

into:
----
	if (this->IsFrontEngine()) {
		this->UpdateAcceleration();
		SetWindowDirty(WC_VEHICLE_DETAILS, this->index);
+	}
+	/* Always invalidate the refit gui data when consist changes. */
+	InvalidateWindowData(WC_VEHICLE_REFIT, this->index);

Should the vehicle details move too or can they stay where they are ?

Re: Split cargos and cargo subtypes in the refit window

Posted: 20 Aug 2010 16:54
by Vaulter
Here is fix for bug with scrolled down cargo matrix:
at

Code: Select all

RefitWindow::OnClick

Code: Select all

case VRW_SUBTYPE_MATRIX: { // Subtype listbox.
should be

Code: Select all

uint position = (y / (int)this->resize.step_height) + this->vscroll2.GetPosition();
not this->vscroll.GetPosition();
:idea: