Back to Home / #openttd / 2014 / 01 / Prev Day | Next Day
#openttd IRC Logs for 2014-01-12

---Logopened Sun Jan 12 00:00:23 2014
00:12-!-Djohaal [~Djohaal@] has quit [Read error: Connection reset by peer]
00:38-!-Super_Random [] has quit [Read error: Connection reset by peer]
00:56-!-Eddi|zuHause [] has quit []
00:56-!-Eddi|zuHause [] has joined #openttd
01:20-!-Supercheese [~Superchee@] has quit [Ping timeout: 480 seconds]
01:22-!-Pereba [~UserNick@] has quit [Quit: AdiIRC - custom made irc client. []]
01:53-!-bdavenport [] has quit [Quit: ZNC -]
01:53-!-bdavenport [] has joined #openttd
02:25-!-Flygon [] has quit [Read error: Connection reset by peer]
02:26-!-andythenorth [] has joined #openttd
02:27-!-Flygon [] has joined #openttd
02:57-!-roadt_ [~roadt@] has quit [Ping timeout: 480 seconds]
03:04<andythenorth>is it weird to enforce that the value of a parameter argument has to be a two-tuple?
03:04<andythenorth>even if the second value is optional
03:04<andythenorth>eg. foo = ('bar',)
03:04<andythenorth>or foo=('bar', 'ham')
03:07<andythenorth>foo = ('bar', None)
03:07<andythenorth>? ^ it's a pattern I see in some 3rd party libraries I use
03:08<andythenorth>be explicit about the second param, rather than just assuming that it can be missing
03:08<andythenorth>or I could just use a list :P
03:11-!-roadt_ [~roadt@] has joined #openttd
03:21<Flygon>Well, this's annoying
03:21<Flygon>Rail vehicle stops right in front of depot...
03:21<Flygon>Departs and loads passengers..
03:21<Flygon>...then reverses away from compatible depot
03:21<Flygon>During autorenew
03:22<andythenorth>depot routing is shafted
03:22<andythenorth>has been for ages
03:23<Flygon>The psudorandom nature of if vehicles will actually go into a depot is... er, well
03:23<Flygon>Sorry, I had bad words
03:23-!-Progman [] has joined #openttd
03:23-!-sla_ro|master [slamaster@] has joined #openttd
03:24<andythenorth>it's known that you need to use 'go to depot' orders
03:24<andythenorth>or track construction that forces depot visits
03:27<andythenorth>you could file a bug
03:27<Flygon>It's a known issue
03:27<Flygon>Filing a bug'd be rude
03:27<andythenorth>I don't know if there's a ticket for it
03:27<andythenorth>I'll search
03:28<andythenorth>can't see one
03:28<Flygon>I'll have to formulate good wording, then
03:29<Flygon>I've never been good at explaining myself
03:29<Flygon>It comes out in buffy speak
03:48<andythenorth>hmm, I could also have a configuration object
03:48<andythenorth>which is a bit too frameworky, but would work :P
03:56<Flygon>Sorry for the delay
03:56<Flygon>Too frameworky?
03:59*andythenorth thinking aloud
04:00<Flygon>And I'm too curious :p
04:00<Flygon>It's actually kind of annoying
04:00<Flygon>PC devving is alien to me
04:00<Flygon>But see people talking about working with machines such as the Mega Drive? I get the jist of it
04:00<Flygon>My brain is like all dsandaskjdnjkdsaklaaaaarfarble
04:02-!-Japa [~Japa@] has joined #openttd
04:02<andythenorth>it's just words moving other words around tbh
04:02<andythenorth>do stuff to thing
04:02<Flygon>So basically
04:03<Flygon>You want to avoid frameworks to avoid adding clutter upon clutter to make something work?
04:03<andythenorth>kind of
04:03<andythenorth>the more layers in the code, the more places you have to go read and the code to see what it does
04:04<andythenorth>but it can also add massive simplicity
04:04<andythenorth>I am not a programmer though
04:05<andythenorth>I just write code
04:07<Flygon>More of a programmer than I!
04:08-!-adf88 [] has quit [Quit: adf88]
04:09-!-Pensacola [] has joined #openttd
04:10-!-Pensacola [] has quit [Remote host closed the connection]
04:14-!-Aristide [] has joined #openttd
04:14-!-Pensacola [] has joined #openttd
04:20-!-LSky [] has joined #openttd
04:23-!-Alberth [~hat@2001:980:272e:1:be5f:f4ff:feac:e11] has joined #openttd
04:23-!-mode/#openttd [+o Alberth] by ChanServ
04:24-!-andythenorth [] has quit [Quit: andythenorth]
04:25-!-LSky` [] has quit [Ping timeout: 480 seconds]
04:31-!-andythenorth [] has joined #openttd
04:37<andythenorth>lo Alberth
04:37<@Alberth>zeph is playing at mars, it seems :)
04:41<Flygon>That moment where you realize you're boned... because you built a railway line with stations in tight spots, with shorter than usual platforms
04:41<Flygon>And now the cities are gigantic...
04:45<andythenorth>I can write some code which is clunky but terse, and complies with JFDI
04:45-!-Japa [~Japa@] has quit [Read error: Connection timed out]
04:45<andythenorth>or some that is clunky and longer, and move obvious what it does, but a bit over-abstracted for not enough benefit
04:46<andythenorth>or I can do it 'properly', modifying > 40 files, adding a new interface, but failing JFDI
04:46<andythenorth>this is the bit of coding I find hardest :(
04:51<@Alberth>project that large, or do you have too many files?
04:52<andythenorth>I think it's an acceptable number
04:52<andythenorth>there is 1 .py file per locomotive
04:52<andythenorth>and 1 .py file for each wagon type
04:52<andythenorth>which is clean and easy to work with
04:53<@Alberth>sounds java-ish :)
04:53<andythenorth>I would think of it mostly like configuration data
04:53<andythenorth>it's not class defs or anything
04:56<andythenorth>I am going to think about something else to see if the answer appears :P
04:56<andythenorth>it's not even a hard problem, nor interesting
04:56-!-HerzogDeXtEr1 [] has quit [Quit: Leaving.]
04:58<andythenorth>you know it's getting silly when the best answer seems to be 'dump a function into'
04:59<andythenorth> should be renamed ''
04:59<@Rubidium>nah, dumping it in utils is bad. If it is good enough for utils, then it's good enough for the PSL ;)
05:00<andythenorth>every project seems to have one
05:00<@Alberth>I never seem to have utils like files, but perhaps I hide them in more specific files
05:00-!-Progman [] has quit [Remote host closed the connection]
05:00<@Rubidium>with a @author <not me>
05:08*andythenorth finds a solution, makes my skin crawl with 'ugh' but JFDI and stop wasting this channel's bandwidth eh?
05:08<andythenorth>this is not a comp-sci exam :P
05:16-!-oskari89 [] has joined #openttd
05:22<@Rubidium>such things are merely a tiny sliver of the whole curriculum
05:33-!-ST2 [~ST2@] has joined #openttd
05:34<Aristide> xD
05:34<Aristide>So fun
05:34<Aristide>So, this picture is old, because 81 line has been replaced by C17 bus line in August 2011
05:36-!-andythenorth [] has quit [Quit: andythenorth]
05:37-!-andythenorth [] has joined #openttd
05:40-!-xT2 [] has quit [Ping timeout: 480 seconds]
06:01-!-valhallasw [] has joined #openttd
06:06<andythenorth>is it wrong to call a factory directly with params?
06:06<andythenorth>all the python factory examples I can find are passing factories around as args to some other function
06:06<andythenorth>I want to treat it as a callable GraphicsProcessorFactory(processor_name, {options})
06:10<andythenorth>rather than blah_blah_blah(factory=GraphicsProcessorFactory) or whatever
06:10<andythenorth>I don't really understand the examples tbh
06:11<andythenorth>nvm :)
06:11-!-andythenorth [] has left #openttd []
06:12-!-fjb [] has quit [Ping timeout: 480 seconds]
06:18-!-frosch123 [] has joined #openttd
06:19-!-skyem123 [] has joined #openttd
06:19-!-Pensacola [] has quit [Remote host closed the connection]
06:38-!-Japa [~Japa@] has joined #openttd
06:56-!-Devroush [] has joined #openttd
07:01-!-Taede [] has quit [Ping timeout: 480 seconds]
07:01-!-Superuser [] has joined #openttd
07:12-!-KritiK [] has joined #openttd
07:14<Flygon>OpenTTD just randomly froze
07:14<Flygon>...and then it unfroze
07:14<Flygon>That was weird
07:33-!-tokai|mdlx [] has joined #openttd
07:34-!-gelignite [] has joined #openttd
07:37<@Alberth>without further information there is nothing we can do :)
07:38<@Alberth>maybe it wanted to access the disk, but it was turned off, so it needed starting up first?
07:39-!-tokai|noir [] has quit [Ping timeout: 480 seconds]
07:46<@planetmaker>bye till tomorrow or much later
08:03<Virtual>IRC description :
08:08<Eddi|zuHause>that is really old...
08:09<Virtual>new for me
08:09<Virtual>thats the beauty of the interweb
08:16-!-yorick [] has joined #openttd
08:24-!-Wolf01 [] has joined #openttd
08:24<Wolf01>hi hi
08:38-!-Aristide [] has quit [Ping timeout: 480 seconds]
08:45-!-Elukka [] has quit [Ping timeout: 480 seconds]
09:15-!-retro|cz [] has joined #openttd
10:06-!-Japa [~Japa@] has quit [Read error: Connection reset by peer]
10:09-!-Japa [~Japa@] has joined #openttd
10:26-!-yorick [] has quit [Remote host closed the connection]
10:26-!-andythenorth [] has joined #openttd
10:31-!-yorick [] has joined #openttd
10:33<andythenorth>hmm, usually the random rambling of c2 wiki is the best place I can learn about patterns (or programming in general)
10:33<andythenorth>but for factories, c2 leaves me none the wiser
10:33<andythenorth>except that there is a big divided between love and hate for them
10:33<andythenorth>divide *
10:36-!-eviltoaster [] has joined #openttd
10:36<@Rubidium>andythenorth: in OpenTTD loves factories
10:36<andythenorth>I have made lots of OpenTTD factories
10:36<andythenorth>I must be a pattern master
10:36<andythenorth>where is that Java monks cartoon? o_O
10:36<@Rubidium>hmm... I shouldn't try to rewrite a sentence when already half way through but not looking at the begin anymore
10:43*Rubidium can only partly agree with that
10:44<@Rubidium>XML, singletons and AWK are generally bad, especially the .getInstance().<many funcs> kind where the functions could just be static
10:44<@Rubidium>threads and regular expressions aren't bad by definition
10:45<Xaroth|Work>that depends on the implementation
10:45<Xaroth|Work>but I hate the whole FactoryFactory crap that java does ;|
10:48<@Rubidium>though, using threads manually for performance reasons is usually bad; if you can write it so it can use a thread pool, then you don't need to do the boring thread management and things are much nicer
10:49-!-valhallasw [] has quit [Remote host closed the connection]
10:51-!-valhallasw [] has joined #openttd
10:52<@Rubidium> ;)
10:54-!-andythenorth [] has quit [Quit: andythenorth]
11:19-!-andythenorth [] has joined #openttd
11:43<Eddi|zuHause>that second story basically says "you learn from your mistakes"?
11:46-!-DDR [] has quit [Read error: Connection reset by peer]
11:47-!-DDR [] has joined #openttd
11:52<__ln__>a fair question
12:08-!-andythenorth [] has left #openttd []
12:28<@Alberth>bit stupid not to use the data of a cray in such a case :p
12:37-!-taede [] has joined #openttd
12:39-!-andythenorth [] has joined #openttd
12:45<@DorpsGek>Commit by fonsinchen :: r26236 trunk/src/economy.cpp (2014-01-12 17:44:55 UTC)
12:45<@DorpsGek>-Fix: Don't overreserve after autorefit, but do reserve mail for aircraft
12:47-!-Aristide [] has joined #openttd
12:48<andythenorth>so if I call HamSandwichFactory() what would I get back? A new factory object? Or an instance of the object the factory makes?
12:49<andythenorth>the python factory pattern examples are not clear
12:49<andythenorth>almost as though they were winging it :P
12:49<Kjetil_>you should get som kind of HamSandwich
12:49-!-Kjetil_ is now known as Kjetil
12:49<andythenorth>at least one example shows my getting a new factory
12:50<andythenorth>which I then call factory.make_sandwich(vars) on
12:50<Kjetil>Then it should be a factoryfactory
12:50<andythenorth>the example above doesn't seem anything special
12:50<andythenorth>nor worth naming as a pattern
12:50<andythenorth>it's just a class :P
12:51<@Alberth>assuming it's a class, I'd expect a factory object
12:51<andythenorth>me too
12:51<@Alberth>but I don't think there is universal agreement on these things, just define something and use it accordingly
12:51<andythenorth>I am going to avoid the word factory
12:52<andythenorth>and just code what I need :P
12:52<Eddi|zuHause><andythenorth> so if I call HamSandwichFactory() what would I get back? A new factory object? Or an instance of the object the factory makes? <-- depends on whether you have an abstract factory or a concrete factory
12:52<andythenorth>oic :)
12:52<@Alberth>unless you code for the general public, just do what feels right for you :)
12:52<andythenorth>which gives me which?
12:53<andythenorth>Alberth: I hate not knowing :(
12:53<andythenorth>if I'm going to do it wrong, I might as well know why :P
12:53<Eddi|zuHause>the abstract factory makes factories, the concrete factory makes objects
12:54<andythenorth>and do I have to care if factory is a class, or just some method somewhere?
12:54<andythenorth>does it matter in any way at all?
12:54<@Alberth>sounds like implementation details to me, although a class gives you storage of the past
12:55<@Alberth>which would be useful for factories as object
12:55<@Alberth>if you don't need storage, I don't understand why you'd use a factory, tbh
12:55<Eddi|zuHause>a concrete factory works perfectly fine as a function
12:56*Alberth will not speak about abstract base classes of concrete factories :p
12:56<andythenorth>Alberth: I could just have called this 'get_a_graphics_processor(name, options={})'
12:56<andythenorth>and not worried about factories :)
12:57<Eddi|zuHause>well that basically is a factory :)
12:57<Eddi|zuHause>(or the simplest form thereof)
12:58<andythenorth>I guess the significant thing is I'm not doing 'import from GraphicsProcessors import type1, type2, type3' etc
12:58<andythenorth>and then 'foo = type3(options)'
12:59<@DorpsGek>Commit by frosch :: r26237 /trunk/src (3 files in 2 dirs) (2014-01-12 17:59:27 UTC)
12:59<@DorpsGek>-Cleanup: Remove unused SCC_STRING_ID.
12:59<@DorpsGek>Commit by frosch :: r26238 /trunk/src (strings.cpp strings_func.h) (2014-01-12 17:59:43 UTC)
12:59<@DorpsGek>-Codechange: Use StringParameters::GetDataLeft to check for left space in the param array.
13:00<@DorpsGek>Commit by frosch :: r26239 /trunk/src (3 files) (2014-01-12 18:00:02 UTC)
13:00<@DorpsGek>-Fix: Check that there is space left in the string parameter array, before pushing NewGRF parameters to it.
13:00<@DorpsGek>Commit by frosch :: r26240 /trunk/src (6 files) (2014-01-12 18:00:19 UTC)
13:00<@DorpsGek>-Codechange: Pass the GRFFile to GetErrorMessageFromLocationCallbackResult instead of the GRFID.
13:00<@DorpsGek>Commit by frosch :: r26241 /trunk/src (11 files) (2014-01-12 18:00:39 UTC)
13:00<@DorpsGek>-Codechange: Remember the GRFFile which filled the TextRefStack in the TextRefStack.
13:01<@DorpsGek>Commit by frosch :: r26242 /trunk/src (newgrf_text.cpp strings.cpp) (2014-01-12 18:00:55 UTC)
13:01<@DorpsGek>-Codechange: Use GRFFile that filled the TextRefStack to translate StringIDs from the TextRefStack, instead of passing stuff via global vars.
13:01<@DorpsGek>Commit by frosch :: r26243 /trunk/src (3 files) (2014-01-12 18:01:16 UTC)
13:01<@DorpsGek>-Cleanup: Move TTDPStringIDToOTTDStringIDMapping to newgrf.cpp, it's only used there.
13:01<@DorpsGek>Commit by frosch :: r26244 /trunk/src (newgrf_text.cpp table/control_codes.h) (2014-01-12 18:01:33 UTC)
13:01<@DorpsGek>-Feature: [NewGRF] Add StringCodes 9A 1B, 9A 1C and 9A 1D to display amounts of cargo.
13:01<@DorpsGek>Commit by frosch :: r26245 trunk/src/newgrf.cpp (2014-01-12 18:01:50 UTC)
13:01<@DorpsGek>-Codechange: No need for a map, if a vector suffices.
13:02<andythenorth>time for a FIRS update? o_O
13:07-!-Alberth [~hat@2001:980:272e:1:be5f:f4ff:feac:e11] has left #openttd []
13:08<frosch123>wiki, nforenum, nml, ... the list is long :p
13:14<Eddi|zuHause>andythenorth: the thing with factories is, you can add as many layers of indirection as you want, but you should only use as many layers of indirection as you need
13:15-!-andythenorth [] has quit [Quit: andythenorth]
13:16<Eddi|zuHause>frosch123: why not turn the text stack into an actual stack?
13:16<frosch123>because it is no stack
13:16<frosch123>try to do plurals and cases with a real stack :p
13:18<Eddi|zuHause>i've never actually looked at that code
13:19<Eddi|zuHause>frosch123: anyway, the point was: why is there a limit, when it could just be dynamically extended if necessary
13:20-!-andythenorth [] has joined #openttd
13:20<frosch123>to prevent people from playing excel
13:20-!-triad [] has joined #openttd
13:20<frosch123>[19:08] <frosch123> wiki, nforenum, nml, ... the list is long :p <- ah, i missed eints
13:27<frosch123>oh man, nforenum is such a hack...
13:32-!-triad [] has quit [Quit: Konversation terminated!]
13:38<frosch123>how do string parameters in nml actually work?
13:39<frosch123> <- that seems to fill the stack completely manually
13:44-!-roadt_ [~roadt@] has quit [Ping timeout: 480 seconds]
13:45<@DorpsGek>Commit by translators :: r26246 trunk/src/lang/danish.txt (2014-01-12 18:45:11 UTC)
13:45<@DorpsGek>-Update from WebTranslator v3.0:
13:45<@DorpsGek>danish - 4 changes by Hatsen
13:45<Eddi|zuHause>frosch123: i think automatic stack stuff was never implemented
13:46<Eddi|zuHause>strings can get parameters, but only ones that can be statically evaluated
13:46<Eddi|zuHause>"string(STR_X, param1, param2, ...)"
13:49-!-Progman [] has joined #openttd
13:51-!-andythenorth [] has quit [Quit: andythenorth]
13:51<Eddi|zuHause>and again i think part of the problem is that the stack isn't actually a stack, making things needlessly complicated
13:52<frosch123>i thought the problem is that humans are just bad at reading hex
13:52<frosch123>that's why they come up with all this crap like making computers use decimal numbers, or ordering digits from highest signifance to lowest
13:52<Eddi|zuHause>no, that's the motivation for NML's existance in the first place :p
13:56<frosch123>hmm, i see 5 bools in a row
13:56<frosch123>what could be their meaning :p
14:04<frosch123>yay, done
14:04<frosch123>the length of the grf tool chain is getting so silly :p
14:06<Eddi|zuHause>err, switch last two
14:07<Eddi|zuHause>i haven't yet used eints or musa
14:07<frosch123>i just mean the amount of projects i had to touch to add new string codes
14:07-!-andythenorth [] has joined #openttd
14:07<Eddi|zuHause>frosch123: turn the grf specs into XML!
14:08<frosch123>to add another tool? :p
14:08<andythenorth>frosch123: <- that is doing debug output, it intentionally uses the stack manually
14:08<@Rubidium>xkcd XYZ, right?
14:08<Eddi|zuHause>(as in, grfcodec, nforenum and nml build themselves out of this XML file)
14:08<@Rubidium>does grfcodec need changes?
14:09<Eddi|zuHause>i hope not :)
14:09<frosch123>if it does, i missed them :p
14:09<@Rubidium>i.e. I'd say only transitively because it contains nforenum
14:09<andythenorth>it doesn't help having two supported compile options :P
14:09<andythenorth>one of them involving two separate tools
14:10<Eddi|zuHause> <-- can Set/GetBit be overloaded for uint8[]?
14:11<frosch123>if you make an endian-safe definition of what it shall do :p
14:11<Eddi|zuHause>same thing as these macros
14:11<Eddi|zuHause>and uint8 should not be affected by endianness
14:12<frosch123>how about using std::vector<bool> :p
14:13<frosch123>i thought you were all about dynamic sizing
14:14<Eddi|zuHause>yeah, i think that's what it needs :p
14:14<Eddi|zuHause>people wanted to resize the map midgame for years anyway :)
14:17<Eddi|zuHause>but i don't suppose templates can act differently when a type is a pointer/array or not?
14:18<frosch123>you can if you make stuff references
14:18<frosch123>well, maybe not in this cae
14:18<@Rubidium>you can make a special instantiation, can't you?
14:18<frosch123>anyway, std::vector has a specialisation for bool
14:18<Eddi|zuHause>Rubidium: but the code needs to be different
14:19<Eddi|zuHause>Rubidium: like a template-case
14:20<frosch123>Eddi|zuHause: that's called "template specialisation"
14:20<Eddi|zuHause>i've never really worked with templates
14:20<andythenorth>hmm no alberth
14:26<@Rubidium>not that I can quickly get it working though :(
14:32<Eddi|zuHause>"Unfortunately it is also limited by the low Martian gravity, and test tracks have shown trains which attempt to accelerate quickly tend to launch off the track!" <-- that is probably nonsense, as the same force that magnetically lifts the train up from the ground will also pull it down, once it passes some point
14:41-!-valhallasw [] has quit [Quit: leaving]
14:50-!-tommerry11 [] has joined #openttd
14:53-!-DDR [] has quit [Read error: Connection reset by peer]
14:53-!-DDR [] has joined #openttd
14:54-!-montalvo [] has joined #openttd
14:58<George>Is there any devzone admin available?
14:58<George>Membership #6722
15:01-!-GriffinOneTwo [] has quit [Quit: Page closed]
15:06-!-valhallasw [] has joined #openttd
15:16-!-DarkAce-Z [] has joined #openttd
15:20-!-DarkAceZ [] has quit [Ping timeout: 480 seconds]
15:26-!-glx [] has joined #openttd
15:26-!-mode/#openttd [+v glx] by ChanServ
15:32-!-oskari89 [] has quit []
15:50<andythenorth>ho ho
15:51<andythenorth>finally a factory method example I understand :)
15:51*andythenorth has fallen in a rabbit hole
15:53<andythenorth>this actually made 100% sense
15:53-!-Djohaal [~Djohaal@] has joined #openttd
16:03<Xaroth|Work>that first part alone makes no sense to me :(
16:04<Xaroth|Work>seriously, iterating over __subclasses__ and then using the name to do a switch to turn that name into a class again?
16:04<Xaroth|Work>use the bloody class that __subclasses__ returns :|
16:04<Xaroth|Work>shapes = [random.choice(Shape.__subclasses__())() for x in range(n)]
16:07<andythenorth>what remains puzzling in all the examples I've found is why factories are created as classes
16:08<andythenorth>none of them seem to do anything that requires anything more than a method
16:08<Xaroth|Work>Factories are something for languages like Java and C#
16:08<andythenorth>hmm, some of the factory classes offer methods themselves, which makes sense
16:09-!-valhallasw [] has quit [Read error: Connection reset by peer]
16:13-!-skyem123 [] has quit [Quit: Leaving]
16:14-!-valhallasw [] has joined #openttd
16:24<andythenorth>I dunno, why not just subclass stuff?
16:31-!-tommerry11 [] has quit [Ping timeout: 480 seconds]
16:34-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
16:36<Xaroth|Work>andythenorth: the whole Factory design doesn't really apply to python tbqfh
16:37<andythenorth>I am sticking to "if you don't understand it, you don't need it" :P
16:37<andythenorth>I'm just going to make a class that wraps whatever other class I need
16:37<andythenorth>will work fine, and I understand it
16:37<Xaroth|Work>what do you need? :P
16:39<Xaroth|Work>thats usually where most people tend to go wrong
16:39<Xaroth|Work>they don't really know what they -need-
16:39<Xaroth|Work>and go for the 'ooh shiney' approach
16:39<Xaroth|Work>and end up with a badly implemented <system here>
16:39<andythenorth>I need to create an object (which will be one of n types of GraphicsProcessor), but without having to import the type to my vehicle file, which is basically just configuration data, and doesn't want to know about too many things that live in other modules
16:39-!-HerzogDeXtEr [] has joined #openttd
16:39<andythenorth>so I have now created an intermediary object which sorts that out
16:40<andythenorth>and does all the 'knowing about the other module' stuff
16:40<andythenorth>it's not a factory :P
16:40<Xaroth|Work>why do you want an object, without importing it?
16:41<andythenorth>that is a good question
16:41<andythenorth>which I can't answer
16:41<Xaroth|Work>(i.e. why don't you want to import it?)
16:42*Xaroth|Work shrugs
16:42<Xaroth|Work>can't fix that :P
16:42<andythenorth>means if the object creation interface changes, I have to go deal with that in ~40 .py files
16:42-!-DDR [] has quit [Read error: Operation timed out]
16:42<Xaroth|Work>why would object creation interface change?
16:42<andythenorth>because stuff does
16:42<andythenorth>errors of judgement
16:43<Xaroth|Work>yeh but that usually happens before you get to a large codebase.. else it's a refractor, at which point you'll want to look over those 40 files anyhow to make sure what you change doesn't fuck them over
16:43<Xaroth|Work>(plus, a search+replace can do a lot of things as well)
16:45<andythenorth>also it just seems ugly to 'import GraphicsProcessorMakeBodyRedExtendLoadStatesToMatchRefittableCargosChangeCompanyColourToSecondCompanyColour'
16:45<Xaroth|Work>why not use mixins?
16:45<andythenorth>I could, but now every vehicle is also importing the mixins
16:46<Xaroth|Work>import the module, not every class directlly?
16:46<andythenorth>things that are supposed to act like (quite smart) configuration files start to know too much
16:46<Xaroth|Work>from X import Y,Z,A,B vs import X; X.A
16:47<andythenorth>I don't have any justification basically
16:47<andythenorth>I am going to end up with a mess of nasty string names, instead of a mess of nasty module names
16:47-!-Pereba [~UserNick@] has joined #openttd
16:47<andythenorth>and with a bit much abstraction between the first calls, and the final result
16:53-!-adf88 [] has joined #openttd
16:54<Eddi|zuHause><andythenorth> none of them seem to do anything that requires anything more than a method <-- if you have a class, you can do things like make a list of all objects created and stuff
16:54<andythenorth>ah :)
16:54<andythenorth>history :)
16:55<andythenorth>so you could also enforce object reuse if you wanted?
16:55<Eddi|zuHause>but yes, in the simple cases a function may be enough
16:56<Eddi|zuHause>also, you might want to instantiate several factories (like one for each thread)
16:57<Xaroth|Work>Eddi|zuHause: i see nothing that you can't do without factories in python :P
16:57<Eddi|zuHause>Xaroth|Work: then you really haven't seen a lot of things :p
16:58<Xaroth|Work>I've seen enough things
17:06-!-DarkAce-Z [] has quit [Ping timeout: 480 seconds]
17:09-!-DarkAce-Z [] has joined #openttd
17:12-!-DDR [] has joined #openttd
17:14-!-taede [] has quit [Remote host closed the connection]
17:17-!-DarkAce-Z [] has quit [Ping timeout: 480 seconds]
17:18-!-andythenorth [] has left #openttd []
17:22-!-sla_ro|master [slamaster@] has quit []
17:39-!-frosch123 [] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
17:53-!-gelignite [] has quit [Quit:]
17:56-!-valhallasw [] has quit [Ping timeout: 480 seconds]
18:33-!-adf88 [] has quit [Quit: adf88]
18:36-!-Supercheese [~Superchee@] has joined #openttd
18:37-!-Devroush [] has quit []
19:09-!-Flygon_ [] has joined #openttd
19:09-!-Flygon [] has quit [Read error: Connection reset by peer]
19:12-!-DarkAceZ [] has joined #openttd
19:16-!-Elukka [] has joined #openttd
19:16-!-Progman [] has quit [Remote host closed the connection]
19:45-!-KritiK [] has quit [Quit: Leaving]
19:50-!-roadt_ [~roadt@] has joined #openttd
20:04-!-Japa_ [~Japa@] has joined #openttd
20:07-!-Supercheese [~Superchee@] has quit [Remote host closed the connection]
20:10-!-GriffinOneTwo [] has joined #openttd
20:11-!-Japa [~Japa@] has quit [Ping timeout: 480 seconds]
20:11-!-Eddi|zuHause [] has quit []
20:11-!-Eddi|zuHause [] has joined #openttd
20:12-!-Joe77 [] has joined #openttd
20:13<Joe77>way more people in here than i expected heh
20:17-!-Superuser [] has quit [Read error: Connection reset by peer]
20:17-!-Superuser [] has joined #openttd
20:39-!-DarkAce-Z [] has joined #openttd
20:45-!-DarkAceZ [] has quit [Ping timeout: 480 seconds]
20:49-!-Aristide [] has quit [Remote host closed the connection]
20:54-!-Flygon__ [] has joined #openttd
20:54-!-Flygon_ [] has quit [Read error: Connection reset by peer]
21:16-!-Djohaal_ [~Djohaal@] has joined #openttd
21:16-!-Djohaal_ [~Djohaal@] has quit []
21:17-!-Djohaal_ [~Djohaal@] has joined #openttd
21:24-!-Djohaal [~Djohaal@] has quit [Ping timeout: 480 seconds]
21:25-!-Djohaal_ [~Djohaal@] has quit [Quit: Leaving]
21:36-!-yorick [] has quit [Remote host closed the connection]
21:38-!-glx [] has quit [Quit: Bye]
21:45-!-HerzogDeXtEr1 [] has joined #openttd
21:51-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
22:05<Superuser>wow, is it true that openttd supports closed captions
22:07<Superuser>PCGWiki said it did
22:07<Superuser>I changed it
22:07<Superuser>feel free to change it back
22:07<Eddi|zuHause>i have no clue what a closed caption even is
22:08<Superuser>it's like subtitles for the deaf
22:08<Superuser>so it writes things like [door opens]
22:08<Superuser>so it doesn't support that then Eddi|zuHause?
22:09<Superuser>Borderless fullscreen windowed would be something to consider supporting by the way
22:09<Eddi|zuHause>why would openttd need that?
22:09<Superuser>beyond that you got a gold score by WSGF, it seems
22:09<Superuser>Eddi|zuHause: so you can leave a game running in anothe monitor but still keep an eye on it
22:10<Eddi|zuHause>i don't understand
22:12<Superuser>do you know what borderless fullscreen windowed means
22:13<Superuser>if you don't scroll down here and see for yourself :)
22:13<Eddi|zuHause>it's when you select "do not draw frame" in the system menu of your window (if you have a useful window manager)
22:14<Superuser>yeah well Windows users don't have such luxuries :)
22:14<Eddi|zuHause>who cares about windows users
22:14<Superuser>KDE users (me!) do, but we never use it
22:14<Superuser>now, i3 users... now we are talking (it's my favourite tiling wm)
22:15<Superuser>anyway you use sdl right? it has a thing called fakefullscreen, but it is supported only under x11
22:17<Eddi|zuHause>sdl is not used under windows
22:38-!-Superuser [] has quit [Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.]
22:49-!-qwebirc42317 [~oftc-webi@] has joined #openttd
22:53-!-qwebirc42317 [~oftc-webi@] has quit []
22:59-!-retro|cz [] has quit [Ping timeout: 480 seconds]
23:35-!-Flygon [] has joined #openttd
23:35-!-Flygon__ [] has quit [Read error: Connection reset by peer]
23:36-!-Pereba [~UserNick@] has quit [Quit: Adi - "THE coolest name in the universe" Urban Dictionary. (]
---Logclosed Mon Jan 13 00:00:24 2014