Times are UTC Toggle Colours
00:25:39 *** Progman has quit IRC 00:33:02 *** gelignite has quit IRC 00:43:52 *** tokai|noir has joined #openttd 00:43:52 *** ChanServ sets mode: +v tokai|noir 00:50:42 *** tokai has quit IRC 01:41:20 *** Snail has joined #openttd 02:08:52 *** glx has quit IRC 03:11:53 *** Snail has quit IRC 04:51:13 *** keoz has joined #openttd 06:14:59 *** sla_ro|master has joined #openttd 06:16:12 *** keoz has quit IRC 06:47:27 *** keoz has joined #openttd 07:00:45 *** Progman has joined #openttd 07:47:48 *** Biolunar has joined #openttd 08:22:25 *** sla_ro|master has quit IRC 08:23:29 *** keoz has quit IRC 09:14:45 *** Wolf01 has joined #openttd 09:15:51 <Wolf01> o/ 09:25:38 *** frosch123 has joined #openttd 09:28:56 *** umgeher has quit IRC 09:30:15 *** umgeher has joined #openttd 09:41:46 *** Arveen has joined #openttd 10:14:14 *** gelignite has joined #openttd 11:08:23 *** Samu has joined #openttd 11:14:53 <Samu> hello all 11:18:49 <Samu> question about multi-threading openttd: is it possible for each individual AI to have his own thread? 11:22:16 <Samu> treat an AI instance as a client that joins a multiplayer game - it has to download the map and has his own "openttd" environment? 11:25:36 <Samu> because currently, 15 AIs all share the same 1-thread 11:44:34 <planetmaker> samu: each AI *has* its own thread 11:44:59 <Samu> oh, well then i dunno what's slowing them down to 1-core usage 11:46:41 <Samu> openttd is barely above 12.5% cpu 11:46:45 <Samu> even with 15 ais 11:47:22 <planetmaker> they're not granted unlimited CPU. Their computation time is controlled by openttd 11:50:45 <Samu> and with 240 companies patch, same thing occurs, 12.5% cpu t.t 11:53:53 <Wolf01> Samu, it's like a card game, every player must wait its turn and has limited time to play a move 11:57:07 <Samu> hmm I see 11:58:40 <Wolf01> So if you have 240 players, every player must wait 239 others so do its move again 12:03:03 <Samu> what would be an easy way to speed multiple ais? 12:03:51 <Samu> async AIs? 12:05:34 <Samu> wish something could be done about this 12:08:03 <Samu> "AI-as-a-multiplayer-client" 12:09:24 <Samu> they would be able to play asynchronous 12:37:38 *** andythenorth has joined #openttd 12:37:40 *** andythenorth has left #openttd 12:38:00 <peter1138> with their own full state of the game 12:39:53 <Wolf01> frosch123, are you here? 12:41:05 <Eddi|zuHause> you still did not understand the topic... 12:42:52 <Wolf01> It's for coordination, if he doesn't have time I'll do something else 12:42:52 <peter1138> hmm? 12:43:59 <frosch123> i am here :) 12:44:13 *** Snail has joined #openttd 12:45:14 <Wolf01> Ok, then how should I proceed with the patch? Should I wait for a proper grf or just duplicate almost all what I've done? 12:45:26 <frosch123> the grf is fine 12:45:48 <frosch123> next thing is, we need some RoadSubType enum or so 12:46:05 <Wolf01> I already did that yesterday evening 12:46:20 <Wolf01> I'm going to change the usages of the RoadType 12:47:52 <frosch123> next, GetRailTypeByLabel and AllocateRailType need a RoadType parameter, so that they can allocate a subtype correctly 13:00:35 *** Snail has quit IRC 13:03:25 <Wolf01> for (int i = 0; i < numinfo; i++) { 13:03:25 <Wolf01> RoadType rt = _cur.grffile->roadtype_map[id + i][?what_here?]; 13:04:12 <Wolf01> RoadTypeByte roadtype_map[ROADTYPE_END][ROADSUBTYPE_END]; <- 13:08:00 <frosch123> _cur.grffile->roadtype_map[feature == NF_ROADTYPE ? ROADTYPE_ROAD : ROADTYPE_TRAM][id + i] 13:08:25 <frosch123> s/NF/GSF/ 13:10:55 *** Gja has joined #openttd 13:13:08 <Wolf01> Uhm, I should change all handlers for that 13:13:33 <Wolf01> ChangeInfoResult cir = handler[feature](engine, numinfo, prop, buf); <- 13:13:48 <Wolf01> Or duplicate the handler 13:14:14 <Wolf01> With a wrapper 13:15:56 <frosch123> imho remove the handler[] 13:16:07 <frosch123> just switch-case as in ReserveChangeInfo 13:16:55 <Wolf01> That's the handler loop which loops through all the reserve change info of the various features 13:18:19 <frosch123> https://paste.openttdcoop.org/p0cx02dud <- i mean like that 13:18:27 <frosch123> or are we talking about something else? 13:19:22 <frosch123> i don't see a point in "static const VCI_Handler handler[]". same can be done with a switch 13:19:26 <frosch123> it's only used once 13:20:47 <Wolf01> It's also in FeatureChangeInfo() 13:21:04 <frosch123> it's only in FeatureChangeInfo, is it? 13:21:52 <Wolf01> No, there are FeatureChangeInfo and ReserveChangeInfo which both call RoadTypeReserveChnageInfo 13:22:12 <frosch123> yes, but ReserveChangeInfo already has a switch 13:22:19 <frosch123> so you can just add the RoadType parameter 13:22:47 <Wolf01> Yes, I'm doing that, but FeatureChangeInfo uses a loop instead of a switch 13:23:08 <frosch123> loop? 13:23:26 <Wolf01> while (numprops-- && buf->HasData()) { 13:23:26 <Wolf01> uint8 prop = buf->ReadByte(); 13:23:26 <Wolf01> ChangeInfoResult cir = handler[feature](engine, numinfo, prop, buf); 13:23:26 <Wolf01> if (HandleChangeInfoResult("FeatureChangeInfo", cir, feature, prop)) return; 13:23:26 <Wolf01> } 13:23:30 <frosch123> it uses the array of function pointers, which is just a fancy way to writing a switch 13:23:59 <frosch123> ChangeInfoResult cir = handler[feature](engine, numinfo, prop, buf); <- so that line becomes a switch 13:24:03 <frosch123> instead of using handler[] 13:24:07 <Wolf01> I don't know if that's because they need to be in order 13:24:30 <frosch123> the same loop is in ReserveChangeInfo btw 13:26:53 *** Biolunar has quit IRC 13:30:46 <Wolf01> uint8 *roadtypes = AllocaM(uint8, idcount); <- how do I change this? 13:31:17 <Wolf01> Oh, it's internal, no need to change 13:31:46 <frosch123> yep, only a local variable 13:38:09 *** HerzogDeXtEr has joined #openttd 13:39:02 *** supermop has joined #openttd 13:40:32 <Wolf01> Bah, I wanted to pass RoadType as optional parameter but I need to overload instead 13:43:06 <supermop> yo 13:43:26 <Wolf01> https://paste.openttdcoop.org/pw40ohj1e did this, could work? 13:44:49 *** HerzogDeXtEr1 has quit IRC 13:44:56 <frosch123> why so complicated? 13:45:22 <frosch123> why not pass the RoadType directly from ReserveChangeInfo? 13:46:11 <Wolf01> To keep it uniform with RoadTypeChangeInfo 13:46:58 <Wolf01> And to avoid calling it with wrong roadtype 13:47:23 <Wolf01> For example trying to allocate a tram with roads 13:51:04 <argoneus> good afternoon train friends 13:51:27 <sim-al2> hi 13:53:33 <Samu> hi 13:58:11 *** Alberth has joined #openttd 13:58:12 *** ChanServ sets mode: +o Alberth 13:58:24 <Alberth> moi 13:58:26 <Alberth> +n 13:58:31 <Wolf01> o/ 14:03:35 <Wolf01> The sorting of roadtypes is a bit... I don't know how to handle it :P 14:04:24 <Wolf01> It uses GetRoadTypeInfo(), which now needs a base road type to get info for the subtype 14:09:39 <Milek7_> ouch 14:09:42 <Alberth> you also with actual road types I guess, can't you use those? 14:09:54 <Milek7_> UpdateWidgetSize is used inside Window constructor? 14:09:55 <Alberth> +sort 14:10:57 <Wolf01> What do you mean Alberth? 14:11:41 <Alberth> Milek7_: sounds a bit low-level, constructor usually handles the tree as a whole, but I have forgotten where UpdateWidgetSize exactly fits in the picture 14:13:10 <Alberth> Wolf01: probably mostly that I don't understand your reasoning :p If you sort roadtypes, you have actual roadtypes, to get subtype information about? 14:13:29 <Milek7_> yes, constructor calls InitNested 14:13:58 <Alberth> Wolf01: which contradicts your conclusion, so somewhere there is a hitch 14:14:27 <Wolf01> No, I don't have the actual roadtype, only the subtype, and since they are just numbers I'm not able to get the info from the right subtype 14:15:12 <Alberth> Milek7_: ah, right. Yes, it traverses bottom-up to get size information from the leafs to the root of the window, and then top-down to propagate position+size back to the leafs 14:15:44 <Wolf01> I have _roadtypes[][] = {{1,2,3,4}, {1,2,3,4}}, the function arguments are "1 and 2", which ones? 14:16:56 <Alberth> aside that the name should perhaps be _road_subtypes, sorry, no idea 14:17:19 <Wolf01> I could also have 2 variables instead of a multi dimensional array, but it does not change that the compare function needs the base RoadType 14:17:41 <Milek7_> bit misleading, it isn't obvious that when UpdateWidgetSize is called constructor didn't complete ;p 14:22:14 <Alberth> trying to construct a window in a base class? 14:23:10 <Milek7_> no, i just wanted to access scrollbar in UpdateWidgetSize 14:23:23 <Milek7_> and GetScrollbar was at end of constructor 14:24:24 <Milek7_> had to split InitNested to CreateNestedTree and FinishInitNested with GetScrollbar in between 14:24:30 <Alberth> Wolf01: or you need a combined (base road-type, sub road-type) pair or so 14:24:52 <Wolf01> I think that too 14:25:00 <Wolf01> Maybe an offset in the enum? 14:25:32 <Wolf01> ROADSUBTYPE_START = 0, TRAMSUBTYPE_START = 16? 14:26:56 <Wolf01> Or just do "SUBTYPE_BEGIN + rt * 16" in loops 14:27:20 <Alberth> make a function to compose and extract the numbers 14:28:00 <Alberth> can do that to/from an enum if you like 14:28:21 <Alberth> I think we have something with a combined number for vehicle windows 14:29:25 <Alberth> vehiclelist.h:31:struct VehicleListIdentifier { <-- I think this one 14:34:21 *** Samu has quit IRC 14:39:23 <Wolf01> Pack()/Unpack() I bet 14:41:07 <Alberth> like like a safe bet :) 14:50:07 *** JacobD88 has joined #openttd 14:50:28 <Wolf01> I think I'm doing too many things at once 14:51:03 <Alberth> yeah, first type all "q", then all "w", then all "e", etc 14:53:40 <Wolf01> return this->basetype << ROADSUBTYPE_END | this->subtype; <- is this right? 14:53:54 <Wolf01> For the Pack() method 14:54:25 <Alberth> needs parentheses around the << 14:54:51 <Alberth> and constant name is a bit weird, but it looks like the right idea 14:55:47 <Alberth> assuming you want the subtype in the lower bits, and basetype in the higher bits (doesn't really matter, unless you exploit that eg for sorting or so) 15:01:03 *** keoz has joined #openttd 15:01:37 *** debdog has joined #openttd 15:03:46 <Wolf01> https://paste.openttdcoop.org/pcgfb4o2f looks good? 15:04:59 *** Samu has joined #openttd 15:05:28 <Samu> conversion from 'unsigned long' to 'int' requires a narrowing conversion openttd D:\OpenTTD\trunk\src\economy.cpp 96 15:05:49 <Samu> english plz 15:06:40 <Alberth> unsigned long has more data bits than an int, so it you put the former in the latter, some bits may fall off 15:06:42 <Samu> 2560000000 is this number too big ? 15:08:34 <Alberth> it's hex 0x98968000 8 characters, so that's ok, but biggest is 0x7FFFFFFF 15:09:18 <Alberth> 0x9.... represents a negative value in an int 15:10:01 *** keoz has quit IRC 15:10:09 <Alberth> so the compiler uses unsigned value, but obviously that won't fit in a signed integer of the same size 15:10:59 <Wolf01> Samu https://en.wikipedia.org/wiki/Integer_(computer_science) 15:13:48 <Samu> interesting, i indirectly came into my reported bug 15:14:38 <Samu> https://bugs.openttd.org/task/6498 15:14:42 <Samu> int64? 15:19:10 <Alberth> that would work for your number 15:19:40 <Alberth> but it's really long 15:21:16 <Samu> what's the biggest amount of money a company can store? 15:22:27 <Samu> typedef OverflowSafeInt64 Money; 15:23:18 <Alberth> MAX_INT64 or INT_MAX64, I always forget which one it is 15:24:16 <Samu> typedef OverflowSafeInt<int64, INT64_MAX, INT64_MIN> OverflowSafeInt64; 15:25:38 <Samu> #define INT64_MAX 9223372036854775807i64 15:26:53 <Samu> 7FFFFFFFFFFFFFFF 15:26:57 <Samu> ok i see 15:27:32 <Samu> i wonder what would happen once a company gets this much in the bank 15:27:55 <Milek7_> 64bits is "really long"? 15:28:09 <Milek7_> it is one register on most modern architectures 15:28:10 <Alberth> compared to 32 bits? yep :) 15:29:14 <Samu> do you have an inflation calculator? 15:30:08 <Samu> what would be 2 560 000 000 with an inflation ratio of 4% over 100 years 15:31:24 *** Arveen has quit IRC 15:33:53 <Milek7_> http://i.imgur.com/CBgItci.png 15:34:14 <Alberth> Samu: amount = 256.... ; for year in range(100): amount = amount + amount * 0.04 15:34:43 <Wolf01> Alberth, so now I could pass the RoadTypeIdentifier and use Extract If I just need the base RoadType? (or ::Unpack() if I need all) 15:36:37 <Alberth> Wolf01: no idea what VehicleListIdentifier does in detail, so "Extract" and "Unpack" have no meaning to me, but I would guess you can 15:38:36 <Wolf01> TBH I should pack also the sort order, maybe if has catenary... maybe all 15:38:41 <Samu> 170 years is when inflation stops, interesting 15:40:52 <Alberth> Wolf01: doesn't the type itself have that information already? 15:40:59 <Wolf01> No 15:41:07 <Alberth> :o 15:41:29 <Wolf01> I need to do GetRoadTypeInfo(RoadType) to have all the informations 15:41:30 <Alberth> I clearly have no understanding of "type" in road types, then 15:41:34 <Wolf01> And that was the problem 15:42:26 <Wolf01> Eh, in vanilla OTTD is easy... you have 2 types so you can just check if 0 or 1, all the other is hardcoded 15:42:31 <Alberth> I wouldn't store redundant information in the packed integer, it can only cause trouble 15:42:58 <Alberth> yeah, always a problem when you make a non-trivial extension :) 15:43:25 <Wolf01> Now I only need to change every single _roadtype array around in the code 15:43:26 <Alberth> they never prepared for the general case that you're making :p 15:48:10 <Wolf01> But I still think I need to do 2 different sorting functions, one for roadtypes and one for tramtypes 16:09:31 *** Mazur has quit IRC 16:10:24 <Milek7_> Samu: http://milek7.pl/more_companies_v4.zip 16:16:46 *** Mazur has joined #openttd 16:17:50 <Wolf01> I think I didn't understand how to use the RoadTypeIdentifier 16:28:09 <Samu> > openttd.exe!`dynamic initializer for '_score_info''() Line 94 C++ 16:28:15 <Samu> dynamic initializer? 16:28:50 *** keoz has joined #openttd 16:30:07 <Samu> ty milek 16:30:41 <Samu> the _score_info is set before the main menu is even reached? 16:30:53 <Samu> t.t 16:32:14 <Samu> rip 16:32:38 <Samu> was trying to scale the performance rating based on map size 16:33:27 <Samu> and wanted to account inflation into it 16:33:39 <Samu> but now... I dunno 16:35:04 <Milek7_> why? 16:36:49 <Milek7_> remove const from it 16:37:08 <Milek7_> and set it to other values somewhere in map loading 16:41:28 <Samu> inlfation happens every month 16:41:39 <Samu> can't be on map loading 16:43:25 <Milek7_> then set it every motnth 16:43:29 <Milek7_> i think it should work 16:59:11 *** glx has joined #openttd 16:59:11 *** ChanServ sets mode: +v glx 17:05:03 <Samu> generating 4096x4096 and 240 ais map 17:05:05 <Samu> keks 17:05:26 <Samu> also trying 250k ops so i can burn my house 17:05:32 <Samu> :( 17:06:06 <Samu> @calc 250000 * 240 17:06:06 <DorpsGek> Samu: 60000000 17:06:20 <Samu> heh... 17:06:33 <Samu> @calc 250000 * 15 17:06:33 <DorpsGek> Samu: 3750000 17:08:00 <Samu> i better create a dedicated server, I can barely move the mouse 17:14:54 <Samu> unserviceable 17:15:05 <Samu> this is too darn impossible 17:15:21 <Samu> 250k ops 17:18:07 <Milek7_> what are you trying to achieve? :) 17:18:52 <Samu> a tick is advancing every 4 seconds 17:19:07 <Samu> and we're still on 7th january 17:21:16 <Samu> this would need a supercomputer as a server 17:21:24 <Samu> and even then, i doubt it 17:24:26 <Samu> ticks are taking 7 seconds now 17:24:31 <Samu> still on 7th january 17:25:00 <Samu> ok, enough of that 17:25:09 <Samu> going back to 5k ops 17:25:12 <Samu> brb 17:27:05 <Alberth> Milek7_: he runs lots of AI games on the server, and spams the channel with years of the servers every couple of hours, with complaints on how slow it all is :) 17:30:10 *** Kurimus has joined #openttd 17:30:53 *** Flygon_ has joined #openttd 17:34:07 *** ParanoidPrincess has joined #openttd 17:34:22 *** ParanoidPrincess is now known as Etherische_Fluister 17:37:52 *** Flygon has quit IRC 17:47:18 <Samu> :) 17:47:39 <Samu> i like his patch 17:57:01 *** andythenorth has joined #openttd 17:57:28 <Alberth> o/ 17:57:51 <Samu> 10 AIs died unexpectedly 17:59:10 <Samu> @calc 5000 * 240 17:59:11 <DorpsGek> Samu: 1200000 17:59:55 <andythenorth> lo 18:25:12 <supermop> yo 18:25:18 <supermop> no good shoes out there 18:25:31 <supermop> underwhelmed by mens fashion this season 18:25:53 <supermop> and everyone is still wearing stan smiths after like 2 years 18:26:10 <supermop> going to just start wearing a suit every day to no think about it 18:26:25 <andythenorth> supermop: can’t share your pain 18:26:30 <andythenorth> shoes I have sorted 18:26:38 <andythenorth> nailed on 18:28:04 <supermop> all my tretorn sneakers are falling apart 18:28:17 <supermop> cant walk on wet sidewalks as ill get my sock wet 18:28:55 <supermop> and they all really smack of 2009 - but whatever is the look now is stupid 18:29:34 <Wolf01> andythenorth, then share my pain, this subtypes thing is discouraging 18:29:51 <andythenorth> supermop: nike pre-montreal, always classic 18:29:56 <andythenorth> dates from about 1972 18:30:03 <andythenorth> Wolf01: what is pain? 18:30:17 <Wolf01> Errors everywhere 18:30:25 <supermop> andythenorth: nikes dont fit me, so i wear addidas or puma usually 18:31:10 <andythenorth> supermop: ok, can’t be helped :D 18:31:10 <supermop> tretorns being owned by puma 18:31:20 <supermop> but shit quality apparently 18:31:22 <supermop> damn swedes 18:32:42 <supermop> need ferragamo but architecture doesn't pay the wage for the style it expects 18:32:59 <supermop> did you guys finish the SV game? 18:33:01 *** sla_ro|master has joined #openttd 18:35:06 <Alberth> :O did we have one? 18:40:28 <andythenorth> no and yes 18:40:29 <andythenorth> in order 18:42:21 <Alberth> I was thinking about a new freight challenge, small long map, and a big city across the map where you cannot tunnel under 18:42:21 <Alberth> factories at either side of the city 18:43:41 *** supermop has quit IRC 18:44:54 *** supermop has joined #openttd 18:45:51 *** keoz has quit IRC 18:47:13 <andythenorth> interesting 18:47:19 <andythenorth> ships round the edge :P 18:47:20 <andythenorth> planes :P 18:49:50 <supermop> ? 18:55:50 <Wolf01> https://1drv.ms/u/s!AgUFeOGLNNfVhdJb5qXQXZwkjHmBgA patch, compiles but I get asserts on GetRoadTypeInfo(), I need somebody smarter than me to check what I have done 18:56:07 <Wolf01> (patch against my dev branch) 18:58:18 <Alberth> andy: tramz and RVs :) 19:15:32 *** frosch123 has quit IRC 19:15:39 <andythenorth> Wolf01: I looked at the patch, but eh 19:15:42 <andythenorth> out of my depth there 19:16:20 <Wolf01> It's even out om my capabilities 19:16:25 <Wolf01> *of 19:17:08 <Wolf01> I just put there things in a way to not trigger syntax and compile errors :D 19:19:36 <Wolf01> Meanwhile I tried to keep an apparent feel of "it works" 19:22:48 *** sla_ro|master has quit IRC 19:40:01 *** goblin has joined #openttd 19:40:06 <goblin> hello :-) 19:41:49 <Samu> @calc 256-7 19:41:49 <DorpsGek> Samu: 249 19:43:06 <goblin> the second example (with mail bags) at https://wiki.openttd.org/Game_mechanics#Delivery_payment_rates shows 3520 pounds, however using the formula at https://wiki.openttd.org/Cargo_income gives 4550*100*100*235/2^21 = 5098.58 (I used t = 40)... How comes the difference is so big? 19:50:24 *** Webster has joined #openttd 19:50:50 <Alberth> it's a wiki, people write anything, sometimes it holds, sometimes it doesn't, or only partly 19:50:55 <goblin> :-) 19:51:00 <goblin> righty 19:51:13 <Milek7_> Samu: huh, do you want even more companies? 19:51:35 <Samu> :o 19:51:53 <Samu> it's a weird number 249 19:52:49 <Alberth> not sure why you bother calculating payments, you get too much money anyway, who cares how much exactly 19:53:25 <Milek7_> not for vactrains :) 19:54:09 <goblin> Alberth, because I just created a very very long route across my entire map, and delivering valuables gives me less money than delivering goods across 3/4ths of the map, and I'm wondering why 19:54:54 <Samu> the new version of AIAI is a damn cheater 19:55:00 <Samu> station spreading... 20:00:08 <andythenorth> valid tactic ;) 20:02:30 <andythenorth> Wolf01: tonight I have nothing to offer on NRT :P 20:02:32 <andythenorth> sorry 20:02:37 <andythenorth> full Monday 20:03:10 <Wolf01> NP 20:07:54 <goblin> so I'm kinda wondering what's the optimum distance to transport cargo for 20:08:21 <goblin> I guess it's also a function of train speed 20:10:06 <Alberth> yes, and speed of loading 20:10:46 <goblin> yees, valuables are produced much more slowly than goods 20:11:01 <goblin> should I perhaps shorten the train length for valuables to get them loaded faster? 20:11:03 <Alberth> ie transit days start counting when they get on the train 20:11:36 <goblin> that's what I was wondering as well, couldn't find that on the wiki :-) 20:15:05 <Alberth> I use a terribly simple rule, as long as it's not negative, it's ok :) 20:16:15 <goblin> so you only optimize flow? 20:16:15 <Alberth> I get money faster than I can spend it, how much faster isn't that relevant 20:16:59 <Alberth> yep, I like building networks transporting lots of cargoes 20:17:26 <Alberth> typically sharing tracks, under servicing and breakdowns 20:17:42 <Alberth> causing major havoc if you're not careful 20:18:53 <goblin> ah, the breakdowns. Last time I played, someone said to disable them entirely because they break the flow and there's nothing you can do to alleviate that. Is that still the case? I.e. is it possible for trains to pick a different path if there's a broken train in front of them? 20:19:16 <Alberth> they do avoid each other yes 20:19:49 <Alberth> breakdowns effectively make your network have less capacity 20:20:13 <Alberth> you need more room around a train so it can break down for a while without total disruption 20:20:38 <Alberth> so you need to expand to more tracks earlier 20:20:58 <goblin> hmm, ok, sounds interesting 20:21:13 <Alberth> they also make reliability and age a useful notion 20:21:20 <goblin> so a lot of lanes and a lot of lane switching options 20:21:28 <goblin> yeah, I always like them 20:21:33 <goblin> breakdowns 20:21:45 <goblin> just wasn't sure how to plan for them, but maybe it's different these days :-) 20:21:50 <Alberth> not much switching options, in my experience 20:22:09 <Alberth> otherwise they constantly switch track which also reduces throughput 20:22:21 <goblin> hm 20:22:47 <goblin> but then if one breaks down, it'll block possibly very many other trains behind it 20:22:58 <Samu> i wonder how would a GS handle computations for 240 companies 20:23:01 <Alberth> then you have too many trains on that track 20:23:44 <goblin> well, it's a mainline... so it's meant to carry a lot 20:23:47 <Alberth> with high enough reliability, it's not a disaster to have a broken train for a while 20:24:42 <Alberth> you need a more distributed approach :) 20:24:57 <goblin> oh. 20:25:20 <Alberth> you can't just dump a zillion trains onto one track and it runs 20:25:53 <goblin> well, the coop guys do it like that I think 20:25:55 <Alberth> the concept of "too full" arrives a lot earlier 20:26:24 <Alberth> yes they do 20:26:49 <Alberth> they "cheat" :p 20:26:56 <goblin> aah. :-D 20:27:14 <Alberth> although at their scale it makes sense to not get disruptions in the flow 20:27:37 <Alberth> but it's a matter of wht you like to play 20:28:10 <Alberth> some people do precise time tabling, etc. breakdowns make that impossible 20:28:47 <Alberth> others just want to have a massive transport over one big line, breakdown also make that impossible 20:29:05 <goblin> yeah, exactly 20:29:12 <Alberth> I like to find out how to transport stuff with breakdowns 20:29:31 <Alberth> or transport all cargo all over the map, using cargo-dist 20:29:52 <goblin> I was thinking how to play with breakdowns, but still have high-throughput lines 20:30:04 <goblin> i.e. how to make trains not switch lanes constantly, but only if there's something broken in front 20:30:05 <Alberth> it's a challenge 20:30:41 <Alberth> I think it should be allowed to change as it wants, but the other trains should not get into trouble for it 20:30:58 <Alberth> I haven't yet figured out how to do that 20:32:17 <goblin> I know of a way 20:32:50 <goblin> expose the signal changes via a scripting API and have the crowd think up a solution ;-) 20:33:03 <Alberth> :D 20:34:04 <Alberth> tbh, not knowing the answer is much more fun 20:35:07 <Alberth> I spent 4 years or so figuring out how to distribute all cargoes over all industries with cargodist 20:35:19 <Alberth> once I had the solution, all fun was gone 20:36:22 <Alberth> although there are a few things I can still try 20:36:28 <fonsinchen> so, what is the solution? I never figured that one out ... 20:36:39 * goblin reads up about that cargodist 20:38:06 <Alberth> easy, you transport cargo from source industry to destination industries, or some other way where you visit more than single source+destination 20:38:40 <goblin> ah yes 20:38:42 <Alberth> cargo-dist will do the rest in distributing cargoo over the routes that you provide 20:39:11 <goblin> the other problem that was always nagging me is that why on earth would a power station pay k for coal from the other end of the map when they can have it much cheaper from a local mine 20:39:12 <Alberth> and you can do that for every single cargo on a separate network 20:39:41 <Alberth> goblin: not all coal is equal :p 20:39:45 <goblin> ;-) 20:40:08 <Alberth> but you're projecting real life ideas into the game, which generally doesn't work 20:40:12 <goblin> yeah 20:40:23 <goblin> no I thought maybe this cargodist thingy makes it more reasonable 20:40:42 <goblin> seeing as passengers want to go to a specific place, for instance 20:40:51 <goblin> maybe the coal would only want to go to specific power stations too ;-) 20:41:07 <Alberth> only partly, pax still stay in your network 20:41:20 <Alberth> they don't want to go to another town 20:41:25 *** JacobD88 has quit IRC 20:42:04 <Alberth> ie if you make point-to-point connections only, cargodist doesn't do anything 20:42:20 *** FLHerne has joined #openttd 20:42:56 <Alberth> where each point is connected to 1 other point only 20:43:04 <goblin> nodnod 20:43:28 <Alberth> for that you need cargodest :) 20:43:40 <Alberth> which we also had as patch for a while 20:45:22 <Samu> TownPool::MAX_SIZE = 64000 20:45:33 <Samu> hmm max number of towns is 64000? must test 20:47:28 <Alberth> fonsinchen: http://devs.openttd.org/~alberth/Fruntstoke Common Transport, 2072-03-05.sav 20:53:23 <Samu> wow it really is generating 64000 towns 20:53:27 <Samu> hmm :) 20:54:03 <FLHerne> That sounds like too many 20:54:31 <FLHerne> Who invented the NFO spec for RV speeds? 20:54:34 <FLHerne> WHY? 20:55:43 <sim-al2> Reading the wiki page on vehicle speed is fun 20:55:53 <sim-al2> like how the units are km-ish 20:56:13 <FLHerne> I'd assume "bodging after the fact", except both properties claim to be introduced in the same version 20:56:15 <Alberth> FLHerne: probably early in ttdpatch development, so very original game compatible 20:57:01 <andythenorth> bye 20:57:01 *** andythenorth has left #openttd 20:58:13 <Samu> the map generator doesn't scale that well 20:58:27 <Samu> but... whatever 20:58:38 <Samu> 64k towns is an absurd amount either way 20:58:56 *** V453000 has left #openttd 20:59:05 *** V453000 has joined #openttd 20:59:27 <Samu> 64k easily fit on a 4kx4k map, let's try a smaller map 21:00:40 <Samu> or maybe i'm being mislead 21:00:47 <Samu> i'd like to count the total 21:02:17 *** Alberth has left #openttd 21:08:04 * fonsinchen checks it out 21:16:47 <fonsinchen> nice. I was expecting more trains though. It seems to be easier for cargo than for pax and mail. I always lose patience when trying to cram more tracks into growing cities. 21:22:23 <goblin> is it my imagination, or is there something preventing the existence of oil wells after a certain date? 21:23:28 <Samu> there is 21:24:12 <Samu> they won't spawn from 1960 i think, not sure 21:24:17 <Eddi|zuHause> yes 21:24:18 <Samu> maybe even less 21:24:39 <goblin> thanks! /me grumbles 21:24:40 <Eddi|zuHause> they get phased out so you need to service oil rigs instead 21:25:20 <goblin> are there any other industries with that behaviour? 21:25:30 <Eddi|zuHause> no 21:25:41 <Eddi|zuHause> also, this only applies to the temperate climate 21:25:41 * goblin curses his luck 21:25:51 <FLHerne> Some FIRS ones, but only secondaries 21:25:55 <goblin> yeah, I'm on temperate 21:26:06 <FLHerne> So at least the ones you're using don't vanish 21:26:55 <Eddi|zuHause> that's not true at all 21:27:29 *** keoz has joined #openttd 21:27:47 <Eddi|zuHause> well, let's say "it's complicated" 21:30:14 <Samu> ah, the 4kx4k map did not generate 64000 towns, it generated 24009 21:30:17 <FLHerne> Don't vanish unless you serve them badly and use non-default parameters? 21:30:41 <FLHerne> Samu: Might have run out of town names 21:31:03 <Samu> or out of space 21:31:10 <Samu> it's english names 21:31:27 <Samu> town names English (original) 21:31:34 <Samu> how many names does that allow? 21:33:45 *** cinch has joined #openttd 21:36:51 *** Kurimus_ has joined #openttd 21:37:31 <FLHerne> I tried to estimate it and got about 2m 21:37:41 <FLHerne> Might be wrong 21:40:23 <Samu> 2 million? wow that's huge 21:40:32 <Samu> so i ran out of space 21:41:06 *** Kurimus has quit IRC 21:42:41 *** Kurimus_ has quit IRC 21:42:55 *** Kurimus has joined #openttd 21:59:51 *** FLHerne_ has joined #openttd 21:59:57 *** FLHerne has quit IRC 22:00:13 *** Progman has quit IRC 22:00:31 <Samu> how much is Random() & 7 22:00:47 <Samu> what is this Random() doing here :( 22:05:16 <Samu> Random returned 4292697756 unsigned int 22:05:35 <Samu> @calc 4292697756 & 7 22:05:35 <DorpsGek> Samu: Error: Something in there wasn't a valid number. 22:07:45 <Samu> it's 4 22:08:22 <Samu> 46+4 = 50 22:08:29 <Samu> and now scale it by map size 22:09:37 <FLHerne_> Samu: '& 7' means 'take the lower three bits' 22:09:46 <FLHerne_> So, random number from 0 to 7 22:10:29 <Samu> nice, 46 + 7 = 53 22:10:41 <Samu> scaling 53 to map size, must find 22:12:05 <Samu> want to discover the highest value of "high" number of towns in 4096x4096 map 22:13:26 <Samu> ScaleByMapSize returned 13568 unsigned int 22:13:34 <Samu> got it, thx FLHerne_ 22:14:21 *** FLHerne_ has quit IRC 22:31:15 <Samu> 15000 seems like a good number 22:37:47 *** Kurimus_ has joined #openttd 22:37:59 *** Biolunar has joined #openttd 22:40:34 <Samu> 3392 22:40:42 <Samu> probably not, grr 22:41:19 *** Kurimus has quit IRC 22:42:29 *** keoz has quit IRC 22:48:04 *** Kurimus_ has quit IRC 22:49:44 <Samu> ok, 20000 is the better ratio 22:50:05 <Samu> 4096x4096 is 4 times bigger than 2048x2048 22:50:24 *** gelignite has quit IRC 22:50:44 *** Samu has quit IRC 22:50:51 *** Samu has joined #openttd 22:58:17 <goodger> to be pedantic it's only three times bigger 23:02:50 *** supermop__ has joined #openttd 23:09:23 *** supermop has quit IRC 23:09:44 <Samu> i can't manually set a value over 5000 23:10:40 <Samu> @calc (4096*4096)/(2048*2048) 23:10:40 <DorpsGek> Samu: 4 23:10:45 <Samu> no, it's 4 23:10:53 <Samu> @calc 5000*4 23:10:53 <DorpsGek> Samu: 20000 23:12:46 <Samu> my main concern now is to find out if all these town name generators can create 20k names 23:15:57 <Samu> i think i need a super flat map to really create all 20k towns 23:17:25 <Samu> 19995 towns generated 23:17:53 <Wolf01> 'night 23:17:56 *** Wolf01 has quit IRC 23:27:37 <Samu> Milek7_: I'm getting weird errors in the dedicated server with AIs "dbg: [script] Next() is invalid as Begin() is never called" 23:27:59 *** Biolunar has quit IRC 23:28:08 <Samu> need to check if it's generated by the AI or some other type of error from openttd 23:30:27 <Samu> D:\OpenTTD\trunk\src\script\api\script_list.cpp(474): DEBUG(script, 0, "Next() is invalid as Begin() is never called"); 23:31:21 <Samu> who uses this script_list thing 23:38:15 <Samu> there's not enough Austrian town names t.t 23:38:50 <Samu> there's about 50xx 23:38:53 <Samu> oh well 23:44:23 <Samu> i'm nearly brute forcing the generation of austrian town names 23:45:21 <Samu> can't go past 5410 23:46:00 *** HerzogDeXtEr has quit IRC 23:49:19 <Samu> actually can't go past 5409 23:49:30 <Samu> it's attempting to create 5410th austrian town 23:52:13 <Samu> ok, next is... 23:52:25 <Samu> catalan 23:55:03 <Samu> 13726 :(