Back to Home / #openttd / 2008 / 03 / Prev Day | Next Day
#openttd IRC Logs for 2008-03-24

---Logopened Mon Mar 24 00:00:00 2008
00:00-!-Osai`off is now known as Osai
00:04-!-nicfer [] has left #openttd []
00:24-!-glx [] has quit [Quit: bye]
00:29-!-HerzogDeXtE1 [~Flex@] has joined #openttd
00:29-!-HerzogDeXtEr [~Flex@] has quit [Read error: Connection reset by peer]
00:46-!-a1270 [] has quit [Quit: The ending changes tone & is actually quite sad - but it involves a scene of necrophilia, so that's just another plus in my book.....]
00:48-!-a1270 [] has joined #openttd
00:49-!-roboboy [] has quit [Read error: Connection reset by peer]
00:49-!-roboman [] has joined #openttd
01:09-!-a1270 [] has quit [Quit: The ending changes tone & is actually quite sad - but it involves a scene of necrophilia, so that's just another plus in my book.....]
01:11-!-a1270 [] has joined #openttd
01:20-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
01:29-!-ben_goodger [] has joined #openttd
01:54-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
01:55-!-ben_goodger [] has joined #openttd
01:56-!-UserError [] has joined #openttd
01:57-!-UserErr0r [] has quit [Read error: Connection reset by peer]
02:00<CIA-1>OpenTTD: rubidium * r12402 /trunk/src/ (main_gui.cpp toolbar_gui.cpp): -Fix: some toolbars didn't seem to show anymore.
02:05-!-UserErr0r [] has joined #openttd
02:05-!-UserError [] has quit [Read error: Connection reset by peer]
02:05-!-Zavior [] has joined #openttd
02:33<CIA-1>OpenTTD: rubidium * r12403 /trunk/src/network/network_gui.cpp: -Codechange: unmisuse a variable in the chat window and make the code a little cleaner.
02:37<Eddi|zuHause3>"unmisuse" ... great ;)
02:38<CIA-1>OpenTTD: rubidium * r12404 /trunk/src/network/network_gui.cpp: -Codechange: rename the string buffer used for network GUIs to something more unique than what it is called now.
02:50-!-roboboy [] has joined #openttd
02:50-!-roboman [] has quit [Read error: Connection reset by peer]
02:53<CIA-1>OpenTTD: rubidium * r12405 /trunk/src/widget.cpp: -Codechange: some coding style and 'untodoifying' some comments that were certainly not todos.
02:58<@peter1138>He's on a roll...
03:01<Poopsmith>having fun, i see
03:06-!-lestat_spanish [~Mesias7.4@] has joined #openttd
03:07<lestat_spanish>hi all
03:07<lestat_spanish>Which is the port for openttd?
03:07<@DorpsGek>Rubidium: OpenTTD uses TCP and UDP port 3979 for server <-> client communication and UDP port 3978 for masterserver (advertise) communication (outbound)
03:13-!-lestat_spanish [~Mesias7.4@] has quit [Quit: MESIAS 7.4 by: Lois & JAP-]
03:20-!-Alberth [] has joined #openttd
03:27-!-Slowpoke [] has joined #openttd
03:30-!-Arie^ [] has quit [Ping timeout: 480 seconds]
03:36-!-Osai is now known as Osai`off
03:44-!-ThePizzaKing [] has joined #openttd
03:55-!-admin [] has joined #openttd
03:55-!-admin [] has left #openttd []
03:55-!-admin [] has joined #openttd
03:55<admin>my name is bond
03:55<admin>James Bond
03:55<admin>Agent 007
03:59-!-admin [] has quit [Quit: BitchX-1.1-final -- just do it.]
03:59-!-Forked [] has quit [Read error: Connection reset by peer]
04:02-!-planetmaker [] has joined #openttd
04:04-!-Forked [] has joined #openttd
04:11-!-dR3x4cK [] has joined #openttd
04:15-!-PeterGriffin [] has joined #openttd
04:19-!-planetmaker is now known as pm_away
04:20-!-egladil [~egladil@] has quit [Quit: Leaving]
04:21-!-yorick [] has joined #openttd
04:21-!-Osai`off is now known as Osai
04:24<Poopsmith>hi yorick
04:25-!-PeterGriffin is now known as geekNerd
04:26*Poopsmith wonders if yorick is OOo yorick
04:26*yorick is talking to a bot, and therefor, /me is GoneWacko
04:27<yorick>[09:25] <@The__Master> yorick: Well, I'm stumped. If you were a lumberjack, you'd be pounding me flush with the ground right now.
04:27<yorick>[09:25] <@yorick> The__Master, :o
04:27<yorick>[09:25] <@The__Master> yorick: What a round statement that is.
04:28<yorick>09:27] <@yorick> The__Master: thank you :)
04:28<yorick>[09:28] <@The__Master> yorick: You are most welcome.
04:29<yorick>hehe, he's in #?, if you would like to chat with it
04:32-!-Gekz [] has joined #openttd
04:36-!-pm_away is now known as planetmaker
04:39-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
04:39-!-ben_goodger [] has joined #openttd
04:40-!-dR3x4cK [] has quit [Quit: dR3x4cK]
04:51-!-roboboy [] has quit [Read error: Connection reset by peer]
04:51-!-roboman [] has joined #openttd
04:55-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
04:56-!-ben_goodger [] has joined #openttd
04:56-!-Purno [] has joined #openttd
05:04-!-Hassal [] has joined #openttd
05:05<Hassal>Could Someone Tell Me how to set a welcome message to my dedicated server? I know it was something with a script folder, and a say_on_connect.bat but I cant recall it
05:05-!-jez9999 [] has joined #openttd
05:05<yorick>yes, I could
05:06<Hassal>Please proceed
05:07<yorick>hehe, lets see where that wiki page is
05:08<Hassal>There isn't I believe
05:09-!-Wolf01 [] has joined #openttd
05:09<yorick>and put some say commands in it
05:09<Hassal>ah I knew it was something like that :P
05:13<Hassal>It doesn't work :p
05:13<Hassal>I have put some commands: say "blbalbal" in it
05:14-!-elmex [] has joined #openttd
05:15<Hassal>Ah after restart of the server it worked
05:15<Hassal>thx yorick
05:15-!-Hassal [] has quit [Quit: Bye for now!]
05:21-!-thgergo [] has joined #openttd
05:24-!-Ammler [] has joined #openttd
05:24-!-Osai is now known as Osai`off
05:30-!-Osai`off is now known as Osai
05:34-!-mrfrenzy [] has quit [Ping timeout: 480 seconds]
05:39-!-mrfrenzy [] has joined #openttd
05:45-!-XeryusTC is now known as Xeryus|bnc
05:50-!-Tefad [] has quit [Ping timeout: 480 seconds]
05:57-!-elmex [] has quit [Ping timeout: 480 seconds]
06:01-!-SpBot [] has quit [Ping timeout: 480 seconds]
06:02-!-strongfra [] has joined #openttd
06:02-!-strongfra [] has left #openttd []
06:03-!-SpBot [] has joined #openttd
06:03<yorick>SpBot left?
06:04<yorick>oh, he quit ^^
06:17-!-Zahl [] has joined #openttd
06:20<jez9999>is there a way to disable the behaviour where Shift speeds up the game?
06:20<jez9999>that's really annoying as shift it also used to get a cost animation
06:20<jez9999>cost estimate
06:21-!-Gekz_ [] has joined #openttd
06:22<jez9999>how do you disable it
06:22<yorick>I don't think there is
06:22<Rubidium>by compiling a non-debug version
06:23-!-elmex [] has joined #openttd
06:23<jez9999>weird, it only does it in debug
06:23<jez9999>how come?
06:24<Rubidium>because it's coded that way
06:24<jez9999>you know full well i meant what is the reason for the decision.
06:24<jez9999>why are you so pedantic?
06:24-!-Gekz_ [] has quit []
06:24<yorick>because it was needed
06:24<yorick>or useful
06:24<yorick>or whatever you want it to be ;)
06:24<Alberth>devs want easy way to ff for faster debugging
06:26<Rubidium>what kind of answers were you expecting?
06:26<Eddi|zuHause3>in non-debug build it's tab
06:26<yorick>it is?
06:26<Eddi|zuHause3>no, i am making up random stuff because i have nothing to say
06:26<yorick>I guessed so
06:28-!-|Jeroen| [] has joined #openttd
06:28<jez9999>hmm i have a slight dilemma
06:28<Rubidium>Eddi|zuHause3: actually shift doesn't work in the non-sdl versions
06:28<jez9999>im oding a patch that lets you upgrade trains in depots at the same time as converting track type
06:28<yorick>we know
06:28<jez9999>now say the player drags over a matrix that contains track and a depot with trains in
06:28<jez9999>they have the money to upgrade the track but not the trains
06:29<jez9999>i wanna allow them to upgrade the track but the depot just wont get upgraded
06:29-!-natacha29 [] has joined #openttd
06:29<yorick>then you should spit a nice not enough money message
06:29<jez9999>this presumably means not doing an AddCost when they're just querying the cost, or they wont be able to do the conversion
06:29-!-Poopsmith [] has quit [Quit: Poopsmith]
06:29<jez9999>no because i want to allow them to just upgrade the track tiles but leave the depot
06:29<jez9999>if there isnt the money
06:29<yorick>why would they want that?
06:29<jez9999>however this means that when they shift-click and see the cost estimation, it wont include the depot upgrade cost
06:30<jez9999>because they might wanna upgrade track around a depot for now, and do the depot later
06:30<jez9999>(other trains might use that track)
06:30<yorick>then they shouldn't drag over the depot
06:30<jez9999>it's handy if it just upgrades the track and leaves the depot, which is liable to be far more expensive if trains are to be upgraded
06:30<Eddi|zuHause3>jez9999: the level land tool does area-terraforming like that, it goes on until the money runs out
06:30<jez9999>yeah but if you have a complex track system with several depots that might be a pain
06:30<jez9999>you might miss bits of track
06:30-!-natacha29 [] has quit []
06:31<yorick>try ctrl-?
06:31<yorick>ctrl with track upgrade ignores depots with trains?
06:31<Rubidium>better do it the other way around
06:32<yorick>ctrl without track upgrade?
06:32<yorick>I don't think that's a good idea
06:32<Rubidium>no, with ctrl upgrade the trains too, without ctrl upgrade empty depots and tracks
06:32<Alberth>and probably be consistent, player shouldn't have to remember or know whether a depot contains trains or not
06:32<jez9999>what would be nice is if the cost estimate could include the depot upgrade cost, but when actually doing the command it only upgrades them if you have the money
06:33<Rubidium>as ctrl (usually) is used for the more "powerful" functions
06:33<yorick>ok, then do it that way
06:33<jez9999>but im guessing the system is designed to force the cost estimate to be identical to the actual cost added using AddCost
06:33<Rubidium>as replacing trains is more "powerful" than not replacing the trains
06:34<jez9999>what about replacing empty depots? do i not do them either without ctrl?
06:34<jez9999>or treat them like regular track?
06:36<yorick>you should keep normal behavior like it is now without control pressed
06:36<yorick>so also: upgrade normal depots with normal trains in them to electrified depots without upgrading the trains
06:37<jez9999>and how do i test for ctrl pressed?
06:37<yorick>you could probably copy that from other functions
06:41-!-Vikthor [] has joined #openttd
06:44-!-SmatZ [] has joined #openttd
06:48-!-roboman [] has quit [Ping timeout: 480 seconds]
06:48-!-UserError [] has joined #openttd
06:48-!-Nitehawk [] has quit [Remote host closed the connection]
06:53-!-elmex [] has quit [Ping timeout: 480 seconds]
06:54-!-UserErr0r [] has quit [Ping timeout: 480 seconds]
06:57-!-Progman [] has joined #openttd
06:59-!-lidi20 [] has joined #openttd
07:00-!-lidi20 [] has quit []
07:02-!-einKarl [] has joined #openttd
07:03-!-Wolf01 is now known as Wolf01|AWAY
07:07-!-elmex [] has joined #openttd
07:17-!-UserErr0r [] has joined #openttd
07:18-!-keyweed_ [] has joined #openttd
07:18-!-UserError [] has quit [Read error: Connection reset by peer]
07:25-!-keyweed [] has quit [Ping timeout: 480 seconds]
07:28-!-Xeryus|bnc is now known as XeryusTC
07:29-!-stillunknown [] has joined #openttd
07:38-!-lolman [] has joined #openttd
07:43<yorick>how to modify own flyspray tasks?
07:56-!-lolman [] has quit [Quit: Ex-Chat]
08:00-!-lolman [] has joined #openttd
08:06<yorick>you could close FS#294: already done, we have 11 now :-)
08:09-!-Tefad [] has joined #openttd
08:11-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
08:11-!-ben_goodger [] has joined #openttd
08:12-!-fatal- [] has joined #openttd
08:13<fatal->in which ways is ottd better than the patch?
08:13<fatal->are there big differences?
08:15<fatal->but in gameplay? and is it possible that in ottd the AI only builds trucks etc and no trains?
08:15<yorick>if you configure it that way
08:16<Patrick`>fatal-: flamewar territory.
08:16<yorick>but the AI's in Ottd will soon be replaced by user AI
08:16<Patrick`>big maps
08:16<yorick>0.7.0, that is
08:16<Patrick`>and we mean biiiiig maps
08:16<fatal->when will it come?
08:16<Patrick`>and a zillion user-generated trainsets.
08:16<Patrick`>but that's a common feature
08:17<Patrick`>it's a matter of personal preference, there's a page on the wiki that compares features
08:18<fatal->ill stay at ottd anyway
08:20<fatal->should i download the latest stable version or the new beta?
08:20<Patrick`>imo, it doesn't make sense to switch from ottd to ttdp
08:20<Patrick`>the patch has users because it was first.
08:21-!-Gekz [] has quit [Quit: leaving]
08:21<yorick>beta :)
08:21-!-Gekz [~brendan@] has joined #openttd
08:21<fatal->when will 0.7 come? or is that unknown?
08:22<yorick>when it's done
08:22<DaleStan>The patch has users because some people like to be able to choose what features they will use, rather than having changes stuffed down their throat.
08:22<yorick>openttd has something usefull called "Patch Settings"
08:22-!-UserError [] has joined #openttd
08:23<DaleStan>That can't change everything.
08:23<yorick>list what it can't change
08:24<Rubidium>what DaleStan just means is that you can disable the ability to load newgrfs in TTDP and you can't in OTTD (amongst other things though)
08:24<DaleStan>Like the Keyboard shortcuts. The landscape toolbar.
08:24<DaleStan>And can you still get to OPF?
08:25<yorick>who would want that?
08:25<DaleStan>It's far faster
08:25<yorick>you can get NTP thoug
08:25<DaleStan>And I know how not to break it.
08:25<yorick>and OPF for roadvehicles and ships still exists
08:25<yorick>256 tiles is a stupid limit whith 2048x2048 maps ;)
08:26<Patrick`>fatal-: basically, you just want better AI?
08:26<Patrick`>but the default AI just shits all over the map and then goes bankrupt and opens a new one
08:27<fatal->i just want to play and know which one has the better gameplay, but ill stay at ottd anyway
08:27<Patrick`>I find singleplayer on max difficulty to be far more of a fun challenge
08:27<Patrick`>costs have gone up
08:27<DaleStan>Also can't change the acceleration settings properly.
08:27<yorick>breakdowns are crazy
08:27<Patrick`>I, uh, disabled them
08:27<yorick>realistic acceleration solves a whole bunch of nasty acceleration
08:27<DaleStan>Two choices are not sufficient for someone who's used to 65536.
08:27<Patrick`>what's the point of breakdowns when it just adds more micromanagement to make them go away?
08:27<yorick>so you don't need acceleration settings anymore
08:28<Patrick`>I may as well just not take the time to build depots and schedule services, and just play with breakdowns off
08:28<yorick>because you can't build bigger networks with it?
08:28-!-UserErr0r [] has quit [Ping timeout: 480 seconds]
08:28<Patrick`>RA's nice
08:28<Patrick`>I just hope it never changes to make all my junction layouts obsolete
08:29<Patrick`>jimmy left 1, straight for four, iiinto the bend, whip round after 7 half-tiles and bam! the train's ground to a halt because it's actually 10 cars long
08:31-!-thgergo [] has quit [Read error: Connection reset by peer]
08:32-!-jenny20 [] has joined #openttd
08:32-!-lolman is now known as lolfood
08:33-!-lolfood [] has quit [Remote host closed the connection]
08:33-!-SDK [] has joined #openttd
08:34<SDK>I have a problem with the rcon commands
08:34-!-jenny20 [] has quit []
08:34<SDK>for some reason when I am ingame they dont work
08:34-!-fatal- [] has quit [Quit: Bye for now!]
08:34<SDK>when I enter them directly in the console they do work
08:34<SDK>like kick 1
08:34<SDK>load 1.sav
08:34-!-lolman [] has joined #openttd
08:34<yorick>try putting the command between "
08:36<SDK>ah thanks I did it wrong:)
08:36<SDK>I did
08:36<SDK>load "1.sav"
08:37<SDK>but "load 1.sav" worked:)
08:37-!-SDK [] has quit []
08:37<yorick>is it "join, say hi, ask a question, get answer, and leave again" day?
08:42-!-Scotch [] has quit [Ping timeout: 480 seconds]
08:45-!-Scotch [] has joined #openttd
08:47-!-SpComb [] has quit [Ping timeout: 480 seconds]
08:54-!-elmex [] has quit [Ping timeout: 480 seconds]
09:00-!-glx [] has joined #openttd
09:00-!-mode/#openttd [+v glx] by ChanServ
09:02-!-ThePizzaKing [] has quit [Quit: ThePizzaKing]
09:03-!-Mark is now known as MarkAwat
09:03-!-MarkAwat is now known as MarkAway
09:05-!-Purno [] has quit [Quit: Always remember you're unique, just like everyone else.]
09:13-!-dR3x4cK [] has joined #openttd
09:23-!-Volley [~worf@] has joined #openttd
09:25-!-Singaporekid [] has joined #openttd
09:29-!-lugo [] has joined #openttd
09:35-!-llugo [] has quit [Ping timeout: 480 seconds]
09:37<yorick>someone stole the openttd website layout, at ^^
09:38-!-elmex [] has joined #openttd
09:38<yorick><snap from openttd devblog>But of course, as usual, we do keep our little secrets and surprises. And believe me, there are quite a few good ones awaiting. An example? The engine pools of peter1138.</snap> :D
09:38-!-Wolf01|AWAY is now known as Wolf01
09:38-!-elmex_ [] has joined #openttd
09:38-!-elmex_ [] has quit [Remote host closed the connection]
09:42<Ammler>yorick: how do you steal GPL'd things?
09:43<yorick>by not having any credits?
09:44<Wolf01>my TTD site layout is nicer :D
09:44<yorick>actually...they copyright it themselves in the footer
09:44<Rubidium>yorick: just ask them for the source of the website :)
09:45-!-elmex_ [] has joined #openttd
09:45<Ammler>hmm, can't believe that chinese people steal something...
09:45<yorick>but placing your own copyright under it
09:45<Wolf01>ahahah they provide the original (I think they are, I didn't download them) grf directly on the site
09:45<Gekz>Ammler: you say its your own
09:45<Gekz>or you hide the code
09:45-!-elmex [] has quit [Remote host closed the connection]
09:46<yorick>ok, Rubidium, give me the
09:46<yorick>at svn isn't it?
09:46<Ammler>you need to ask the chinese guy
09:46<yorick>I don't speak chinese that well
09:46<Rubidium>yes, the source of the ottd website is in the svn
09:46<yorick>and he calls himself openttd
09:46<yorick>name stealing ;(
09:53-!-shodan [] has quit [Quit: Client Exiting]
09:54<Ammler>yorick: You wouldn't blame others, if you knew from where the source of openttd came. ;-)
09:55<yorick>the website is not reverse engineered, is it?
09:57-!-SmatZ [] has quit [Quit: Konversation terminated!]
09:59-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
10:02-!-Osai is now known as Osai`off
10:07-!-Osai`off is now known as Osai
10:07-!-SmatZ [] has joined #openttd
10:08<blathijs>14:42 < Ammler> yorick: how do you steal GPL'd things? <-- by redistributing it under another license. Though that's mainly violating the license, which you might call stealing
10:09<blathijs>14:43 < yorick> by not having any credits? <-- AFAIK, the GPL does not require you to credit any derived work, only release it under GPL again
10:16-!-lolman [] has quit [Read error: Connection reset by peer]
10:19-!-lolman [] has joined #openttd
10:22<Volley>hmm - someone around who is familiar with the LoadUnloadVehicle function and the variable names and all that stuff in there? I'm trying to implement some "Load until another Vehicle arrives"-type of order
10:30-!-thgergo [] has joined #openttd
10:35-!-lolman [] has quit [Read error: Connection reset by peer]
10:45-!-FloSoft [] has joined #openttd
10:46<FloSoft>hi, hmm those timetables do not work correctly yet do they?
10:46<Progman>they do
10:46<FloSoft>hmm why does the train then dont wait in that station?
10:47<FloSoft>i have set "load" there
10:47<FloSoft>it always waits until full
10:47<FloSoft>and not only 5 days
10:47<FloSoft>and if i remove "load"
10:47<FloSoft>it waits 2sec and then leave
10:47<Rubidium>'full load' overrides the time table
10:47-!-SpComb [] has joined #openttd
10:48<Rubidium>if the train leaves immediatelly then a) the timetable is not set up properly, b) the vehicle is late
10:48<FloSoft>no train is in time
10:48-!-stillunknown [] has quit [Ping timeout: 480 seconds]
10:48<FloSoft>but it waits 1 day
10:48<FloSoft>and leaves
10:48<Progman>the time value is used if the vehicle get the order, not if it already has the order
10:49<Progman>maybe you must wait one order cycle
10:49<FloSoft>so if i say drive 40 days to station, and wait 10 days, it leaves because it takes 40 days to reach the station?
10:51<FloSoft>hmm those timetables, werent they in some old nightlys already? where you could say "wait at maximum of 5 days to fully load"? those orders dont exist anymore do they?
10:51<+glx>not that I remember
10:54-!-HMage` [~HMage@] has joined #openttd
10:56-!-HMage` [~HMage@] has quit []
10:58<Volley>there are 2 different and seperate patches that do mess with stuff like that but ... well ... they seem to be more or less on hold and not quite up to date. and additionally i am not sure if that is the right way to go
10:58<Volley>1) timetables are complicated
10:58<Volley>2) what does one try to archive with a timetable?
10:59<Rubidium>a more fluid ride
10:59<Volley>in real Life, timetables are nice for passengers ... but in TT, there is no real-life-passenger
10:59<Rubidium>*if* you time the trains in such a manner that they do not have to wait anywhere, you can make quite a bit more money and use less tracks
11:00<Patrick`>openttd is all about vast simplifications to make it model in a fun way and be playable and not too unrealistic
11:00<Patrick`>perhaps there's an approximation we could make, to make timetabling approximate reality
11:00<Volley>Patrick`: i fully agree
11:00<Patrick`>in that it attracts more passengers somehow
11:01<Patrick`>an example of a simplification that games get away with: in defcon, units don't have health. bullets have probabilities.
11:01<Volley>Rubidium: interesting point... that makes me wonder: is it better to have always a train waiting at a station to not miss any passengers/freight, or is it better to have all trains mooving non-stop and just picking up what is waiting at the station?
11:02<Rubidium>the former
11:03<Volley>well, if it is better to always have a train waiting at a station, then why not create a order type similar to full load, but just "load until next vehicle arrives"
11:03<jez9999>why would you wanna do that
11:03<Volley>extreamely easy, and propably as effective as a sophisticated timetable
11:04<Rubidium>cause that's going to cause an uneven 'load' on the network, whereas you get a much more even load on the network with time tables
11:04<Volley>hmm - you sure?
11:05<yorick>do we have any 0.7 roadmap yet?
11:05<Alberth>Volley: If a train has some delay, it may get pushed out of the station quickly because of the next train after it
11:06<Rubidium>if a train has a delay, another train will have to load longer -> unloading takes longer -> train has a delay -> ripple!
11:07<Rubidium>the delayed train will be 'quicker' gone because of the next train arriving relatively sooner -> unloading takes shorter -> train leaves earlier -> ripple!
11:08<Volley>hmm ... that would result in ... damn ... yep - instead of spreading out they will do the opposite
11:08<Rubidium>so at one point all trains will come very close after eachother with one very big hole between two trains
11:10-!-Mucht [] has joined #openttd
11:11<FloSoft>Rubidium: that happens without timetables currently too
11:12<Volley>ok ... i'm convinced ... and i begin to understand that there is no (easy) solution without timetables
11:13<FloSoft>but that old "wait at max x days for full load" worked well for me on older nightly versions (i think the patch was in there a year ago or so)
11:14<FloSoft>and those copy&paste features werent bad for duplicating complex stations
11:15<Volley>copy&paste features?
11:15<FloSoft>there was a patch to copy&paste long time ago
11:15<yorick>there still is
11:16<Rubidium>it's only one big copy-paste, thus unmaintainable, thus unmergeable
11:16<FloSoft>it is in the nightlys?
11:17<yorick>read the above
11:17<FloSoft>ah oh :(
11:18<yorick>but Rubidium, I would be thankfull to see some more language flags in trunk, (the ones in FS#1866 for example)
11:19<yorick>*hint* *hint*
11:20<Volley>searched the forums for mentions of copy & paste patch and yeah - long ago, big bunch of unmaintainable written code
11:21<yorick>I think greek and estonian people would also be happy with it
11:22<yorick>(and I could continiue) poor greeks and estonians feel underrated now :(
11:24<Rubidium>glx is the man of the flags :)
11:24<yorick>the color-disquise doesn't actually show up, does it?
11:32<Ammler>yorick: but there are 2 different usages of flags, one is for language, the other for location
11:33<Ammler>from where do you get the flag on the client list?
11:33<aleex>how can the server-admin give money to someone?
11:33<Ammler>aleex: thats not possible, iirc.
11:43-!-Zahl [] has quit [Read error: Connection reset by peer]
11:44-!-Zahl [] has joined #openttd
11:51-!-Amix [] has joined #openttd
11:51<Amix>wondering if its possible to know where i can download ttd files for osx version of the game?
11:53<yorick>Ammler: how do you mean? I get the language flag
11:54<yorick>[16:32] <Ammler> yorick: but there are 2 different usages of flags, one is for language, the other for location
11:54<Amix>where can i download the ttd datafiles?
11:55<yorick>yes, what's with that one/
11:55<Ammler>well, is that flag meant for the language or the location?
11:55<yorick>I currently use them for languages
11:56<yorick>as I can't really detect location ^^
11:57<yorick>with the extra flags, every language you can set in the config has its own flag
11:58-!-urlauber [] has joined #openttd
11:59<urlauber>hi there
12:01<urlauber>I just discovered that some of my trains cost a minus amount of money. I'm using 0.5.3, is this a known thing or should I report that somewhere?
12:02<blathijs>urlauber: Did you search on ?
12:05<Ammler>yorick, what does that flag there help?
12:06<urlauber>yes, blathijs, i searched for "money" and "negative" bugs, but didn't find something that fit
12:06<Alberth>urlauber: I remember discussions about negative train income at tt-forums
12:06<+glx>overflow bug, fixed a long time ago
12:07<Alberth>wasn't it something with taking too much time to reach a nearby dest?
12:08<+glx>no they have a negative running cost
12:08<urlauber>not negative train income or running cost, but cost for bying them
12:09<+glx>same cause :)
12:09<Alberth>aka, upgrade :)
12:09-!-Amix [] has quit [Ping timeout: 480 seconds]
12:09<Sionide>maybe they're just old and the manufacturers can't rid of 'em fast enough :P
12:10<urlauber>ok, just wanted to know that, thx!
12:11<urlauber>yeah, they have been a pretty long time on the market (~200 years) ;)
12:11<Alberth>they shouls sell them to the steel factory instead :P
12:13<urlauber>I'm gonna ask the guy at the steel factory :) cu, bye!
12:13-!-urlauber [] has quit [Quit: Ex-Chat]
12:14-!-helb [~helb@] has quit [Read error: Connection reset by peer]
12:17-!-lolman [] has joined #openttd
12:19<yorick>Ammler: what flag where?
12:19<Ammler>the flag on that screen, I linked
12:20<yorick>yes, what about that?
12:21<yorick>it helps in a way, players can see what language other players speak without them having to put [EN] [SP] [GR] in there name
12:24-!-Amix [] has joined #openttd
12:24<Amix>downloaded the files
12:24<yorick>hello again
12:24<Amix>tried both 0.5.3
12:25<Amix>and 0.6.0 beta
12:25<Amix>both are infact disconnecting my wlan connection
12:25<Amix>i am using macosx leopard
12:25<yorick>they are?
12:25<yorick>that is a serious bug, post it at!
12:25<Amix>when i click for searching servers
12:25<Alberth>Rubidium: Would a refactor-patch with the window.cpp file split in 'window struct funcs' (ie methods), 'window functions', and 'window list functions' be acceptable?
12:25<Amix>it finds lots of ips
12:26<+glx>Alberth: if well done why not
12:26<Amix>and it stops the net
12:26<Amix>then i have to go to the router
12:26<Amix>and reset it
12:26<yorick>the second one shouldn't be happening
12:26<+glx>you have a bad router
12:26<yorick>the third one is fine :)
12:26<yorick>not supporting UDP correctly ;(
12:26<yorick>blame the router!
12:27<Amix>its a good router
12:27<Amix>it worked before
12:27<yorick>SMC :o
12:27<yorick>bad routers ^^
12:27<Amix>but ive never tried openttd on leopard before
12:27<Amix>worked in tiger
12:28<Amix>and it works in morphos
12:28<Amix>though the morphos version have problems with my keyboard
12:28<yorick>morphos is known to be buggy with openttd, isn't it?
12:29-!-lolman [] has quit [Read error: Connection reset by peer]
12:30<Amix>not really
12:30-!-Pinchiukas [~lox@] has joined #openttd
12:32-!-helb [~helb@] has joined #openttd
12:32<Amix>yorick: could you send the buggreport for me?
12:33<Amix>strange that openttd manages to disconnect my SMC router
12:33<Amix>never happened before
12:34<yorick>what should I say in it?
12:34<+glx>Amix: it would be better to report it yourself
12:34<Amix>OpenTTD disconnects wlan connection on osx
12:35<Amix>i am not registered there
12:35-!-Singaporekid [] has quit []
12:35<yorick>then register
12:35-!-valhalla1w [] has joined #openttd
12:36<yorick>glx: could you take a look at , as Rub1d1um said you're the flags guy
12:36-!-valhallasw [] has quit [Read error: Connection reset by peer]
12:36<yorick>"please" *begs*
12:36<Amix>i think the reason why morphos version is behind
12:37<Amix>is that you want to go new ways
12:39-!-einKarl [] has quit [Read error: Connection reset by peer]
12:39<Amix>i cant register
12:39<Amix>Notice: Undefined variable: register_text in /www/ on line 559
12:39<Amix>getting this
12:40<yorick>try again?
12:42<Amix>dosent work
12:42<+glx>I can see Amix in user list
12:42<yorick>lets see if we can submit a bug about the bug tracker at the bug tracker that the bug tracker register to the bug tracker contains a bug that should be posted to the bug tracker but the user can't post a bug to the bug tracker because he can't register at the bug tracker because of the bug in the bug tracker the user wants to post...
12:42<+glx>Amix (Michal)
12:42<yorick>try logging in
12:43<Amix>i dont have a password
12:43-!-Alberth [] has left #openttd []
12:43<yorick>not emailed to you
12:43-!-Amix [] has quit [Quit: Leaving]
12:44<yorick>now that is a bug that we should submit at the bug tracker that the bug tracker register to the bug tracker contains a bug that should be posted to the bug tracker but the user can't post a bug to the bug tracker because he can't register at the bug tracker because of the bug in the bug tracker the user wants to post...
12:45<yorick>hmm...I guess you get it
12:49<FloSoft>yorick: thats sth for -.-
12:50<yorick>add it :)
12:52<yorick>meh...there it goes
12:53-!-Wolf01 is now known as Guest2432
12:53-!-Wolfolo|AWAY [] has joined #openttd
12:53-!-Wolfolo|AWAY is now known as Wolf01
12:54-!-Amix [] has joined #openttd
12:54<Amix>disconnecting me everytime
12:55<yorick>its pending moderation :(
12:56<Amix>how is it possible that it disconnects me when trying to find the openttd servers?
12:56<yorick>UDP, probably
12:56<Amix>i write a name
12:56<yorick>mass connections
12:56<yorick>baad routers
12:56<Amix>i have a linksys router it seems
12:57<FloSoft>oh linksys
12:57<FloSoft>crashed at my house with only 4 computers online -.-
12:57<yorick>ottd makes lots of connections when scanning server list, it queries all of the servers
12:57<FloSoft>for the money of that damn router i bought an additional network card and a 4 port hub and accesspoint, no problems anymore -.-
12:59-!-Guest2432 [] has quit [Ping timeout: 480 seconds]
13:01-!-Bjarni [] has joined #openttd
13:01-!-mode/#openttd [+o Bjarni] by ChanServ
13:02<yorick>Bjarni! Bjarni! Bjarni! bjarni! bjarni! bjarni!
13:02<@Bjarni>my plan about out of sight, out of mind didn't work
13:02<@Bjarni>you still do that crap :s
13:03<yorick>you'll never be able to escape it
13:03<yorick>or you should stay connected
13:03<@Bjarni>then I wouldn't get any work done
13:04-!-Amix2 [] has joined #openttd
13:04<Amix2>i reset the security settings
13:04<yorick>Amix: just get another router
13:04<Amix2>then it worked
13:04<yorick>oh ^^
13:04<yorick>consider upgrading the firmware
13:04-!-Amix [] has quit [Ping timeout: 480 seconds]
13:07<ln>royal danish Bjarni!
13:08<@Bjarni>so now I' royal?
13:08<@Bjarni>well I guess that's one way of gaining power
13:08<@Bjarni>but it wasn't part of the plan
13:10<@Bjarni>from now on you should all call me "your highness"
13:10-!-nicfer [] has joined #openttd
13:11<@Bjarni>and if you don't want to do that then you should blame ln- for starting this
13:12-!-Amix2 [] has quit [Ping timeout: 480 seconds]
13:16<ln>greetings from express train 928.
13:25-!-MDGrein [] has joined #openttd
13:36-!-Pinchiukas [~lox@] has quit [Ping timeout: 480 seconds]
13:40-!-nicfer [] has left #openttd []
13:40-!-raimar2 [] has joined #openttd
13:42-!-Purno [] has joined #openttd
13:44-!-Volley [~worf@] has quit []
13:45-!-raimar3 [] has quit [Ping timeout: 480 seconds]
13:56-!-nicfer [] has joined #openttd
13:59-!-XeryusTC is now known as Xeryus|bnc
14:02<+glx>yorick: what version of grfcodec did you use for your patch?
14:02-!-Xeryus|bnc is now known as XeryusTC
14:03-!-stillunknown [] has joined #openttd
14:08-!-Wolfolo|AWAY [] has joined #openttd
14:08-!-Wolf01 is now known as Guest2440
14:08-!-Wolfolo|AWAY is now known as Wolf01
14:10-!-Arie- [] has joined #openttd
14:15-!-Guest2440 [] has quit [Ping timeout: 480 seconds]
14:16-!-a1270 [] has quit [Quit: The ending changes tone & is actually quite sad - but it involves a scene of necrophilia, so that's just another plus in my book.....]
14:24-!-NukeBuster [] has joined #openttd
14:31<jez9999>Bjarni: got a question for you about autoreplace
14:31<jez9999>is there a particular reason you wrote the code to ignore the wagon list that can be returned back by BuildDepotVehicleList, thereby causing 'orphaned' trains (or chains of just wagons with no engine) not to get upgraded?
14:32<jez9999>given that you can now auto upgrade wagons, it would seem to make sense to have the code upgrade everything
14:33<Patrick`>the circumstances you'd want to do that, though ...
14:35<jez9999>'autoupgrade this depot' button?
14:35<jez9999>there may be orphaned wagons on the wagon upgrade list
14:35<Wolf01>devs, what about an abandoned roads feature like ttdpatch?
14:37<Wolf01>I can't buy out the competitor because I don't have enough money, and he built a stupid road to nowhere with a nice loop at the end... just in the middle of a big junction
14:40-!-Arie^ [] has joined #openttd
14:42-!-Aerandir [] has quit [Quit: - nbs-irc 2.36 - -]
14:43-!-divo [] has joined #openttd
14:44-!-Arie- [] has quit [Ping timeout: 480 seconds]
14:44<Patrick`>Wolf01: that's because the AI is retarded
14:45<Patrick`>build around it, then buy it out
14:45<Wolf01>if only it was so easy :P
14:45-!-a1270 [] has joined #openttd
14:45-!-ooo4tom [~tom@] has joined #openttd
14:49-!-ooo4tom [~tom@] has quit []
14:50<@Bjarni>jez9999: sounds like a bug to me :/
14:50<yorick>[19:02] <+glx> yorick: what version of grfcodec did you use for your patch? <-- there isn't a grf in there, is it?
14:50<Rubidium>but there is a md5 checksum
14:50<@Bjarni>then again.... what would happen if autoreplace triggers on a row of wagons
14:50<Rubidium>(that is changed and doesn't match)
14:51<@Bjarni>it's not designed to do that
14:51<yorick>how do I check?
14:51<Rubidium>try the help of grfcodec
14:51<yorick>GRFCodec version 0.9.10 - Copyright (C) 2000-2005 by Josef Drexler
14:52<jez9999>Bjarni: the code that does it is CmdDepotMassAutoReplace
14:52<jez9999>i think that only happens when you click the 'upgrade depot' button
14:53<Rubidium>yorick: that sounds quite old (as in containing bugs causing artefacts in OpenTTD)
14:53<Wolf01>7 minutes to retry the buyout of that AI
14:53<Rubidium>"0.9.10 r1839" should not give those artefacts
14:54<yorick>Rubidium: and as in: there are no newer binaries
14:54<+glx>compile yourself
14:54<Wolf01>I never understood where the money used to purchase the shares go..."
14:55<yorick>Can't modify constant item in scalar assignment at - line 1, at EOF
14:55<yorick>Execution of - aborted due to compilation errors.
14:55<yorick>make: *** [.rev] Error 255
14:56<Rubidium>looks bad
14:57-!-Wolf01 [] has quit [Read error: Connection reset by peer]
14:57<Rubidium>but DaleStan would probably love to help you with that ;) (or he might know a location with precompiled binaries that are not 1.5 years old)
14:57-!-Wolf01 [] has joined #openttd
14:57<+glx>I use make -f
14:57<+glx>with a patch ;)
14:57<@Bjarni>jez9999: autoreplace assumes that it's called for a locomotive. It would appear that something bad would happen if we just gave it a wagon instead
14:58<yorick>gets stuck at [PERL] ttdpal.h
14:58<jez9999>how hard would it be to fix that?
14:58<DaleStan>yorick: Do you have svn and perl?
14:58<jez9999>it would be mighty useful for my patch
14:58<@Bjarni>hard to say
14:58<jez9999>and you might wanna upgrade wagons
14:58<@Bjarni>I will take a look tomorrow
14:59<jez9999>k, cheers
14:59<yorick>and /bin/sh: i686-pc-mingw-g++: command not found
14:59<@Bjarni>I have something which should be done by tomorrow... I better try to meet that deadline instead of replacing virtual trains
14:59<@Bjarni>(even though I want to do the latter a whole lot more)
15:00<yorick>DaleStan: I do not have perl
15:00<DaleStan>And what host? (Cygwin, MinGW/MSYS, Linux)
15:00<+glx>looks like msys
15:00<DaleStan>Making GRFCodec requries Perl.
15:00<yorick>I am not gonna get perl
15:00<+glx> <-- that's what I need for msys
15:01*yorick copies perl over
15:01<+glx>just install activeperl
15:01<yorick>I hate everything with Active before it
15:01<yorick>it gets you teacup aswell
15:02<Rubidium>:O glx yorick hates you (and me too)
15:03<yorick>[PERL] ttdpal.h
15:03<yorick>Can't locate in @INC (@INC contains: .) at line 3.
15:03<yorick>BEGIN failed--compilation aborted at line 3.
15:03<yorick>make: *** [ttdpal.h] Error
15:03<+glx>perl.exe is not enough :)
15:03<+glx>you need all libs that comes with it
15:03<yorick>I don't have anything else
15:03<yorick>just plain perl.exe
15:06<yorick>glx, can't you get me windows binary?
15:12<yorick>heh, I hope openttd runs on
15:14<DaleStan>I suppose it is high time I post an update.
15:14<yorick>thank you
15:15<Patrick`>there's a windows CE port
15:15<Patrick`>by some guy we're not affiliated with
15:15<yorick>it runs winXP and linux QPlus ;)
15:15<Patrick`>obviously the linux one will compile
15:21-!-Frostregen_ [] has joined #openttd
15:27-!-Frostregen [] has quit [Ping timeout: 480 seconds]
15:27-!-Frostregen_ is now known as Frostregen
15:29<yorick>glx: there you go, new checksums added
15:30-!-yorick [] has quit [Quit: and I quit]
15:35-!-egladil [] has joined #openttd
15:40-!-icone [] has joined #openttd
15:40<jez9999>maybe im being dumb here, but why in c++ does a std::list pop() function not return a value?
15:41<Noldo>it's easier to implement that way
15:42<Noldo>use the top() or something like that to access the object you want
15:42<ln>jez9999: see std::list documentation at, it is explained somewhere there.
15:45<jez9999>easier to for the writer of std::list to implement?
15:45<jez9999>i can really see the point of using OOP code there
15:45<jez9999>no wonder C# is more popular
15:46<SmatZ>this is OOP
15:46<jez9999>c++: for(type_listOfNodes::iterator iter = m_listOfNodes.begin(); iter != m_listOfNodes.end(); iter++)
15:46<jez9999>c#: foreach (string str in mylist) { str...; }
15:46<jez9999>c++ is so goddamn retarded
15:46<jez9999>the day it dies, i will be happy
15:46<@Bjarni>you have to wait that long to become happy?
15:47<jez9999>thing is, c++ put me off OOP for years
15:47<SmatZ>you will never be happy
15:47<jez9999>i came across java and C# and now i like oop
15:47<jez9999>i never realised it was c++'s dumbassedness that put me off until i realised c# actually made sense
15:47<@Bjarni>I prefer C++
15:47<jez9999>madness. :-)
15:48<jez9999>it's frigging horrible
15:48<@Bjarni>it's because it's easy to mix with C if needed
15:48<jez9999>OOP and C should never mix.
15:48<jez9999>OOP OR C, dont combine them
15:48<@Bjarni>and C has some nice features where you don't give away control
15:48<jez9999>features not needed in and end-user application.
15:48-!-TinoM [] has joined #openttd
15:49<stillunknown>It's a matter of preference.
15:49<ln>Bjarni: kick him for insulting C++
15:49<@Bjarni>I think you missed what I meant
15:49<jez9999>so is preferring to eat chocolate or shit, but one preference is more common and sensible ;-)
15:49<@Bjarni>then why do you pick the other one???
15:49<jez9999>ln: hey, ottd may yet be rewritten in c#
15:50<stillunknown>I find that unlikely.
15:50<jez9999>yeah, me too. but it makes it harder to hack.
15:50<jez9999>still, at least it aint Mozilla.
15:50<jez9999>they invented Mozilla-c++, and it's 100 times worse than c++
15:50<ln>jez9999: it also may yet be rewritten in qbasic.
15:51<@Bjarni>what's so great about Mozilla-C++?
15:51<jez9999>i said it's worse
15:52<jez9999>(&somethinghere, *somethingthere, something::everywhere)
15:52<@Bjarni>I bet it has some nice feature somewhere or they wouldn't have bothered
15:52<ln>jez9999: that's Java
15:52<stillunknown>That's still C++, maybe not using stdlib.
15:52<jez9999>yeah; trouble is you have to learn a new, very ugly language, to begin to hack it
15:52<Patrick`>mmm, quick basic
15:52<jez9999>it's a pretty terrible idea IMHO
15:52<Patrick`>rewrite it in python
15:52<Patrick`>for speed
15:52-!-helb [~helb@] has quit [Read error: No route to host]
15:52<ln>Patrick`: quick basic is not qbasic.
15:52<Patrick`>or ruby
15:53<Patrick`>run it in a c emulator written in procedurally-generated ruby
15:53<jez9999>i cant believe that std::list implementation. :-) it's actually funny
15:53-!-helb [~helb@] has joined #openttd
15:53-!-KritiK [~Maxim@] has joined #openttd
15:53<jez9999>you people just like incredibly convoluted and disgusting syntax, dont you?
15:53<jez9999>simple stuff looks too VBish, you can stand it
15:54<Rubidium>makes me think about the really ugly stuff I had to do to get something working in C#
15:54<@Bjarni>newsflash: OpenTTD is C++, not some weird language you want it to be... live with it
15:54<jez9999>void std::list<typename>::func(const _Ty &_Val)
15:54<Rubidium>it actually involved using C++
15:55<Patrick`>we should rewrite in a mixture of lisp and COBOL
15:55*Bjarni slaps Patrick`
15:55<Rubidium>COBOL sounds like a good idea!
15:55<Rubidium>being a COBOL programmer gets you quite a bit of money every month...
15:55<jez9999>they pay you to stay away
15:56<@Bjarni>hehe... one guy once told me he wanted to code in Kobold (I think he mishead something somewhere)
15:56<jez9999>when, 80s?
15:56<SpComb>all the OpenTTD code that I write is pure C
15:56<jez9999>see i dont mind pure C
15:57<SpComb>well, actually not, it's C with MallocT<struct foobar>(1); mixed in
15:57<jez9999>because it doesnt have some guy's disgusting syntactic hacks on top of it
15:57<ln>jez9999: English, please.
15:57<ln>jez9999: that is, with apostrophes.
15:57<jez9999>is ln a bot?
15:57*SpComb has managed to avoid C++ so far
15:57<Patrick`>wait, really?
15:57<SpComb>I've heard a lot of bad things about it
15:57<Rubidium>jez9999: and C# is better in what way? That you need C++ to be able to talk to devices on a low level?
15:57<jez9999>SpComb: dont learn c++, learn c#
15:57<jez9999>it's OOP, implemented properly
15:58<SpComb>no, I'm not going to learn C# either
15:58<Patrick`>SpComb: it's the definitive archetypal OO language from which all syntax flows
15:58<ln>jez9999: and it's Microsoft-only
15:58*SpComb does C, Python and JavaScript
15:58<Patrick`>everyone is a descendant of C++
15:58<Patrick`>SpComb: python, good call
15:58<jez9999>ln: you're not Turing-complete
15:58<Prof_Frink>SpComb: Don't learn C#, you already know python
15:58<Noldo>syntax isn't everything
15:58<Rubidium>anyhow... C# is not pure OO (neither is Java though)...
15:58<Patrick`>nothing's pure oo
15:58<SpComb>indeed, I actively avoid C#, in fact
15:58<Patrick`>apart possibly from java
15:58<ln>jez9999: errr.... you probably don't know what Turing-complete means then.
15:58<SpComb>anti-Micrsoft bias
15:58<@Bjarni>C++ works well and fast on nearly all platforms... I have yet to see the same for other OOP
15:58<Patrick`>yes, let's use java
15:59<Patrick`>ln: what's two plus two?
15:59<jez9999>ln: licks in Asia rather quickly turn to blue stone
15:59<@Bjarni>Patrick`: it's true :D
15:59<jez9999>Bjarni: so does assembly.
15:59<Noldo>jez9999: really?
15:59<jez9999>runs fast :-)
16:00<ln>Patrick`: depends on the definition of "is", i.e. we must first find out whether this world exists or is only in your imagination.
16:00<Patrick`>ln: see, you're not turing complete.
16:00<@Bjarni>jez9999: have you seen ASM that works on nearly all platforms?
16:00<Patrick`>addition can be emulated by a complex series of linguistic loopholes and trash talking, but the operation fails 55% of the time
16:00<Noldo>wehee! language wars! how about editors next?
16:00<SpComb>the only really annoying thing that I've run into in C is const pointer arrays
16:00<Patrick`>Noldo: no need, everyone knows that emacs is the best
16:01<jez9999>needing stuff to work on 'nearly all platforms' is a bit of a problem. one which i would fail to solve, if it means having a significantly nicer language to work with.
16:01<icone>I had stayed in Java for several years, but now I finally learned my C
16:01<SpComb>"const *struct sockaddr_storage[ADDR_COUNT]" or somesuch, they're slightly weird
16:01<icone>I got to tell you, it has some goddamn elegance, C
16:01<jez9999>c# works on some platforms actually
16:02<jez9999>'nearly all platforms' is overrated
16:02<Patrick`>what was the quote
16:02<Rubidium>jez9999: but not getting the job done in C# quite sucks... (as I said before, I needed C++ to solve some things that couldn't be solved in C#)
16:02<jez9999>for an end-user app
16:02<Patrick`>programming in c is like sending a three year old to the shops
16:02<jez9999>Rubidium: im betting one of them wasnt OpenTTD
16:02<Patrick`>you gotta tell it exactly what to do or you'll end up with a pantry full of lollipops and molten icecream
16:02<jez9999>Patrick`: curious analogy
16:02<Patrick`>jez9999: it's from bash
16:02<Rubidium>does C# work on the most used OS?
16:03<jez9999>afaik, yes
16:03<jez9999>MSIL can be executed by Mono
16:03*icone whimpers and walks away (what's with those lang wars, anyway?)
16:03<SpComb>F-spot is written in C#, iirc
16:03<SpComb>ships with ubuntu by default
16:04<jez9999>hmm not sure whether Eclipse has a c# module though, does it?
16:04<Rubidium>jez9999: I couldn't find any references that C# works on Tron
16:04<jez9999>doesnt matter, where i work we're being forced down the MS path anyway :-( we have this one guy who is a programmer-cum-MS sales rep
16:05<jez9999>pretty much no way to counter that
16:05<SpComb>unfortunate accident?
16:05<SpComb>xkcd comics?
16:05<jez9999>the idiots
16:05<jez9999>i spent weeks working on a project
16:06<jez9999>this weekend, they just switched the source control over from SVN to TFS ithout any notice to me
16:06<jez9999>so they could quickly do easier unit testing and upgrde to VS2008 to use some of MS's AJAX stuff
16:06<jez9999>i got really annoyed
16:08-!-Purno [] has quit [Read error: Connection reset by peer]
16:11<Rubidium>but TFS must be better because it's (more likely) to be written in C# than C++, you should only applaude such swift actions to stop the spread of C++ written applications!
16:11-!-Aerandir [] has joined #openttd
16:14<jez9999>if TFS was OSS, i would. :-)
16:14<jez9999>it's pay-microsoft-your-wages-please-ware
16:17<Rubidium>so is most associated with C# too
16:18<jez9999>not really
16:18<SpComb>it would suck to be an OSS-type in a micrsoft-shop
16:18<jez9999>yeah but in the UK you have little choice
16:18<jez9999>i thought this company might be different and it was when i joined 6 months ago, but this MS guy has basically convinced most people to go with MS for stuff
16:19<jez9999>we're gonna buy a Sharepoint server (yay) and exchange
16:19<jez9999>more money to MS
16:19<DaleStan>Belugas: I believe you said that you were discussing alternative ways to feed extra stack data to CB37 strings? Did you find that discussion?
16:19<jez9999>it's like, "we're paying MS loads, why not pay some more?"
16:19<SpComb>my sympathies
16:20<Rubidium>jez9999: you got to love the pointer magic you can do in C# too, don't you? Makes it immediatelly virtually impossible to use it on websites and such though...
16:21<jez9999>why would i love it?
16:21<jez9999>a few things about C# get to me, lack of pointer magic isnt one of them,
16:22*SpComb wonders what Rubidium is on about
16:22<jez9999>i wish it would do a few more implicit conversions. being able to say "if (int) {}" would be nice
16:22<jez9999>but basically c# makes OOP manageable
16:22<jez9999>c++ makes it look like line noise
16:22<Rubidium>a language promoted as not having any problems with memory leaks and the like, but then you find out about the magic world or unsafe expressions...
16:23<ln>end of discussion
16:24<jez9999>ln: leave #openttd
16:24-!-Gekz [~brendan@] has quit [Ping timeout: 480 seconds]
16:25<ln>jez9999: no.
16:25<jez9999>ln: i know you're a bot
16:26<Rubidium>ln: `/ignore jez9999` would make it a monologue
16:27<CIA-1>OpenTTD: glx * r12406 /extra/ottd_grf/split/ (flags.nfo flags.pcx): -Change [FS#1866]: add more flags
16:29<jez9999>i just thought of one good thing c++ introduced!
16:29<jez9999>// comments
16:29<stillunknown>That's in C99 too.
16:30<CIA-1>OpenTTD: glx * r12407 /trunk/ (8 files in 6 dirs): -Add [FS#1866]: more language flags for servers
16:30<stillunknown>Personally i prefer /* */ comments.
16:31<@peter1138>So do we.
16:31<SpComb>depends on what's in the comments
16:33<jez9999>MS implemented quite a nice thing where you can do /// comments before a method
16:34<jez9999>it autogenerates some XML there so you can document the method
16:34<ln>jez9999: err..
16:34<ln>sounds a lot like javadoc behavior.
16:34<jez9999>and of course because it's c# and not c++ there's only one place for the function signature (no header files) so it's in the right place
16:34<+glx>headers are nice
16:35<jez9999>we very much disagree on that
16:35<jez9999>they're 100% redundant, usually
16:35<+glx>but nobody forces to use them
16:36<+glx>and they are not redundant, they are used to split implementation from interface
16:36<Rubidium>that's why C# is so much liked by people who do not care about proper design...
16:37<+glx>if someone wants to use a lib you written you give it the headers and you can keep the implementation hidden
16:37<jez9999>you can do that in c# too
16:37<jez9999>metadata is included in compiled files
16:37<jez9999>try linking in a dll with your code, VS can show you all the class's interfaces
16:38-!-planetmaker [] has quit [Quit: Good bye!]
16:39<Rubidium>which is kinda useless as it doesn't contain *any* documentation about how to use the functions
16:42<@peter1138>MS' documentation usually consists of function parameters, and not a lot else.
16:43-!-TinoM [] has quit [Quit: Verlassend]
16:43<hylje>that's not documentation, that's reference
16:45<Rubidium>yes, they're hard trying to reduce the increment in size of their 'documentation'. The less new stuff is included, the better.
16:47<stillunknown>I prefer working with code for which i can check the implementation as well.
16:50-!-|Jeroen| [] has quit [Quit: oO]
16:51-!-Tekky_ [] has joined #openttd
16:53<jez9999>Rubidium: except that it *does* if you've done the /// comment XML thing i spoke about before
16:55*Rubidium ponders testing that... let's find out how to cross-compile a dll on unix from C with some /// comment XML in there...
16:55<Rubidium>oops... 90+% of the DLLs don't have that as it didn't exist when they were made. That's disappointing.
16:56-!-Tekky [] has quit [Ping timeout: 480 seconds]
16:56<Rubidium>then again, XML for comments is like XML for writing code or XML for saving an OTTD savegame (if you use XML in the way it's supposed to be used)
16:56-!-Tekky_ is now known as Tekky
16:59-!-lolman [] has joined #openttd
16:59<henkie>when a factory doesnt accept my lumber, is that a bug, or am i doing something wrong? :)
16:59<ln>or both!
16:59-!-Guest2089 [] has quit [Quit: ZNC by prozac -]
17:00<henkie>that not very helpful :)
17:01<jez9999>i thought sawmills accepted lumber
17:03<@peter1138>Sawmills accept wood.
17:05<Rubidium>lumber would mean he uses some NewIndustries/NewCargos NewGRF.
17:07-!-icone_ [] has joined #openttd
17:13-!-neo_ [] has joined #openttd
17:13-!-icone [] has quit [Ping timeout: 480 seconds]
17:15-!-FloSoft [] has quit [Quit: computer has gone to sleep]
17:17-!-neo_ [] has quit []
17:17-!-Wezz6400 [] has joined #openttd
17:18-!-divo [] has quit [Quit: Quitting]
17:20-!-Zahl [] has quit [Quit: (~_~]"]
17:20-!-SmatZ [] has quit [Quit: Konversation terminated!]
17:23-!-MarkAway is now known as Mark
17:24-!-SmatZ [] has joined #openttd
17:26<henkie>yeah, prob. some bug, when i built the new factory it says it will accept steel lumber and plastic
17:26<henkie>but when i build a station, it only accepts wood and steel
17:27<+glx>mixing different newindustry grfs?
17:29<henkie>i only see pikka's newindustries v1.2
17:29<henkie>hmm, and opengfx
17:29<Patrick`>we can imagine that different goods inbound produces different goods outbound
17:29<henkie>opengfx newindustries v0.5
17:30<Patrick`>for example: livestock + steel = mecha cows
17:30<henkie>yes, but the goods that must be supplied to the factory are not accepted at the station
17:30<henkie>how do i make a screenshot?
17:31<Patrick`>how i mine for fish?
17:32<Prof_Frink>Patrick`: Never heard of dynamite fishing?
17:32<Patrick`>how do I shot web?
17:32<+glx>Patrick`: using newcargo?
17:33<Patrick`>haha, fish
17:33<Prof_Frink>Patrick`: Step 1: Get bitten by a radioactive spider
17:33<Patrick`>glx: it was a joke quote
17:33-!-Digitalfox_ [] has joined #openttd
17:34<+glx>henkie: that looks like a grf conflict
17:34<henkie>i can also make a screenshot of my newgrf settings if that might help
17:34<henkie>ah, one overruling the other?
17:36<henkie>ok, when i move newindustries above the other it does seem to work
17:39-!-Sacro` [~Sacro@adsl-87-102-119-5.karoo.KCOM.COM] has joined #openttd
17:39-!-Sacro [~Sacro@adsl-87-102-119-5.karoo.KCOM.COM] has quit [Ping timeout: 480 seconds]
17:40-!-Digitalfox [] has quit [Ping timeout: 480 seconds]
17:40-!-Sacro` is now known as Sacro
17:46-!-dR3x4cK [] has quit [Quit: dR3x4cK]
17:48-!-Slowpoke [] has quit [Quit: Verlassend]
17:55-!-Progman [] has quit [Remote host closed the connection]
18:01<Eddi|zuHause3>urgs... sharp turns... very ugly
18:05-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
18:08<jez9999>why would you call DoCommandP instead of DoCommand?
18:08<+glx>because one is network safe
18:09-!-Leviath [] has joined #openttd
18:09<Eddi|zuHause3>one is for user initiated commands that are sent over the network, the other is for program initiated commands, that do not need to be sent over the network, because they happen on all clients synchronously
18:11<jez9999>i have one command that is calling another command
18:11<jez9999>as it's in a chain the first needs to determine the second's cost
18:11<jez9999>it can only do that with DoCommand as that returns a CommandCost
18:11<jez9999>but it might not be network safe?
18:12<@Bjarni>getting costs only should be network safe as nothing happens
18:12<jez9999>hmm ok and another thing
18:12<Eddi|zuHause3>only the very first command must be network synchronised, all following commands automatically are
18:12<@Bjarni>you just get a number... you don't alter vehicle orders, the map or anything
18:12<jez9999>is there any way i can get command 1 to report that it will cost x, where x is determined by adding the costs of several command 2s, but
18:13<jez9999>the cost animation for command 2 is displayed seperately?
18:13<SmatZ>if it is directly called because of user action (that is, from GUI), use DoCommandP - else use DoCommand (AI calls, recursive DoCommand calls, town calls....)
18:13<@Bjarni>autoreplace deals with this issue
18:13<@Bjarni>but I can't tell if you can do the same
18:13<@Bjarni>it depends on how you call the first function
18:14<jez9999>it's the track conversion tool
18:14<jez9999>i want one anim for the track costs, and one anim per depot autoreplace
18:14<jez9999>tough to see how i can do it as it displays the CommandCost i return
18:14<jez9999>but that has to include the cost of upgrading the trains
18:15<@Bjarni>I guess you call one command that will then call other commands
18:15-!-thgerg1 [] has joined #openttd
18:15<SmatZ>I think it is not possible - you can have only 1 "floating money" for 1 DoCommandP, that is for 1 user action
18:15<@Bjarni>since it would be advisable to get the first one synced then the problem is gone
18:15<jez9999>i need a way to say "if the player can afford this CommandCost, run this command
18:16<SmatZ>jez9999: call it without DC_EXEC even in the exec run
18:16<@Bjarni>wait you want for both the track and then one for each depot?
18:16<jez9999>SmatZ: not if command 1 calls DoCommandP itself
18:16<jez9999>you can have several
18:16<SmatZ>and if he has enough money, call it with DC_EXEC
18:16<jez9999>although if i could say 'test whether the player has the money for this CommandCost' i can do it
18:16<@Bjarni>it's not how the command system is intended to be used
18:16<jez9999>it will simply go thru the list of depots, and try and convert them 1 by 1
18:17<jez9999>if it cant do it it ignores the depot
18:17<jez9999>but i want to test it first as i dont want it half-converting the depot
18:17<@Bjarni>I'm not sure it's possible
18:17<jez9999>but i can get the CommandCost
18:17<@Bjarni>I know
18:17<@Bjarni>you can display on each depot without any problems
18:18<@Bjarni>but the place where you get the total costs will display the total costs including the depot costs
18:18<@Bjarni>which would be incorrect since you want them to turn up elsewhere
18:18<jez9999>for the total costs of the track conversion, i dont want to include the depot costs
18:18<jez9999>basically the code says 'treat track and empty depots as normal track; add up their costs'
18:18-!-Leviath [] has quit [Remote host closed the connection]
18:18<@Bjarni>I get the idea
18:18<jez9999>'then for each depot with trains, try one-by-one to convert the trains and depot'
18:19<@Bjarni>but the command handling system don't
18:19-!-thgergo [] has quit [Ping timeout: 480 seconds]
18:19<jez9999>the track cost is added to the CommandCost for the convert command, the autoreplace cost takes care of itself
18:19<jez9999>it's true that i only need a method of determining whether a player can afford to do a command, isnt it?
18:19<@Bjarni>I just noticed one other issue
18:19<@Bjarni>one of greater concern than cost animation
18:20<@Bjarni>how will you get autoreplace to work?
18:20<@Bjarni>I mean say you convert from rail to monorail
18:20<@Bjarni>how will you know the price?
18:20<jez9999>of the autoconversion?
18:20<jez9999>i was assuming DoCommand would return me a price
18:21<@Bjarni>if you run autoreplace then it will fail because monorail isn't buildable in the depot
18:21<jez9999>really? hehe i already got that part working
18:21<SmatZ>CMD_CONVERT_RAIL can be put back to set of commands that can have different test and exec runs...
18:21<SmatZ>jez9999: is it your patch at FS?
18:21<jez9999>Bjarni: ohh i see, if i havent changed the track it will fail
18:22<jez9999>how about i change the track, run autoconvert, then change it back if you cant afford it :-)
18:22<+glx>SmatZ: no
18:22<SmatZ> this one
18:23<jez9999>"things such as
18:23<jez9999>service history and custom train names are not preserved
18:24<@Bjarni>jez9999: new issue (I think it's only matters with newGRF). Currently autoreplace builds a vehicle, adds it to the train and then it will get rid of the old one. This means that the new and old one will be connected for a short time (the user will not see this)
18:24-!-Osai is now known as Osai^zZz
18:24<@Bjarni>you connect normal rail to a monorail train
18:24<@Bjarni>I bet some newGRF will really hate that
18:24<jez9999>newgrf sux :-)
18:25<jez9999>i always play with oldgrf
18:25<@Bjarni>the default vehicles will most likely not care at all
18:25<jez9999>cant you create a train, copy the other one's info, then kill the old one?
18:25<@Bjarni>because nobody thought of putting more than one type in the same depot
18:26<@Bjarni><jez9999> cant you create a train, copy the other one's info, then kill the old one? <-- easier said than done. I have an idea but it turned out to take ages to code :(
18:26<jez9999>curious that guy submitted that to flysprap almost the same time i started coding my patch
18:27-!-maad [~maad@] has joined #openttd
18:28<jez9999>he based it on cloning, i based it on using the autoreplace code
18:28<jez9999>luckily at some point someone changed the code so that if you change a train's railtype underneath it to something incompatible it just stops with 'no power'
18:28<jez9999>i seem to recall it used to instantly crash the train
18:28<jez9999>however this behaviour lets you change the track type then upgrade the train
18:29<jez9999>just need a reliable way to upgrade the train
18:29-!-Leviath [] has joined #openttd
18:29<jez9999>Bjarni: anyway i was kinda relying on you or someone improving the autoreplace code to fix my patch :-)
18:29<jez9999>it's leaning heavily on other code
18:30<jez9999>but for now i can just not care about newGRF difficulties, so back to calculating cost... can i do it for autoreplace?
18:30-!-Progman [] has joined #openttd
18:33<@Bjarni><jez9999> Bjarni: anyway i was kinda relying on you or someone improving the autoreplace code to fix my patch :-) <--- hehe
18:33<@Bjarni>I hope you are patient
18:34<@Bjarni>I mean it will take a while to get it fully working with what you want it to do
18:34<jez9999>well not for the default grf
18:34<jez9999>maybe with newgrf
18:35<jez9999>best to get it implemented with oldgrf quickly, submit it to forum and flyspray so people can muck around with it and see if we can get it playing nicely with autoreplace
18:35<@Bjarni>step one: allow wagons only replacement
18:35<jez9999>than maybe it could go in trunk :-D
18:35<jez9999>yeah, well that shouldnt be too hard
18:35<@Bjarni>step two: ensure that the mass autoreplace command can tell if it can replace everything
18:35<@Bjarni>(you don't want to replace 2/3 of the trains and then say it's ok)
18:35<jez9999>you just have to not ignore the last 3 params from BuildDepotVehicleList
18:36<@Bjarni>I don't have an ETA on when this will work :/
18:36<jez9999>Bjarni: step 2 is why im asking about getting CommandCost
18:36<jez9999>if i can determine that the cost is too high i dont do the autoreplace
18:36<jez9999>my current patch has that problem
18:36<@Bjarni>because if I recall correctly it can replace train A and not B and then return the costs for train A only
18:36<@Bjarni>ignoring B
18:36<jez9999>can it? bugger
18:36<jez9999>what idiot coded autoreplace?
18:37<@Bjarni>it makes sense when you aren't considering railtype
18:37-!-Brianetta [] has joined #openttd
18:37<@Bjarni>imagine you have 10 trains in the depot and you have money to convert 9 of them
18:37<jez9999>still if i code it *as if* your stuff did that the way i want, autoreplace can be changed later
18:37<@Bjarni>then it would make sense to replace 9 instead of failing
18:38<+glx><jez9999> what idiot coded autoreplace? <-- well Bjarni did every autoreplace versions :)
18:38<jez9999>glc: i know
18:38<jez9999>maybe CmdDepotMassAutoReplace can use p2 to take a bitfield, one can be 'determine cost for entire autoreplace'
18:38<@Bjarni>glx: this time the problem isn't autoreplace, it's jez9999
18:38<@Bjarni>he wants it to do something it's not designed to do
18:39<+glx>autoreplace has at least 2 reported bugs
18:39<@Bjarni>it can be modified to do so though
18:39<jez9999>it comes close to doing it already though, i'd say it's the closest feature to being upgradable to do what is needed
18:39<jez9999>i can put some comments into the patch to say 'in future, autoreplace needs to do x y and z for this to work'
18:39<jez9999>im just trying to code it now as if autoreplace worked perfectly
18:40<jez9999>i might even try and fix autoreplace after this patch heh
18:40<@Bjarni>I will likely have to add a flag (single bit) in p1/p2 in the mass autoreplace command
18:40<@Bjarni>and you will need to set it
18:40<jez9999>yeah, 'determine cost for entire autoreplace'
18:40<@Bjarni>but that's it
18:40<@Bjarni><jez9999> yeah, 'determine cost for entire autoreplace' <-- no
18:41<@Bjarni>"all or nothing"
18:41<jez9999>there's that, and the ability to replace a vehicle by creating a new one and copying old info
18:41<jez9999>not modifying an old vehicle
18:41<jez9999>that said newgrf may whinge about all sorts of stuff, like incompatible cargo
18:42<jez9999>frankly im not sure worrying about stupid newgrf rules is a priority
18:42<jez9999>whats wrong with carrying cows on a maglev anyway
18:42<@Bjarni>the cows might not like getting electrified :P
18:42<jez9999>on a maglev? :-)
18:42<jez9999>it's magnetic
18:43<@Bjarni>or to be placed either in a car without ventilation or in a really windy car
18:43<jez9999>for now i can catch the CommandCost for current autoreplace
18:43<jez9999>it's not 'all or nothing' but it can be adapted later
18:43<@Bjarni><jez9999> it's magnetic <-- with one hell of a magnetic field flux
18:43<jez9999>how do i catch that cost, and determine whether the player can afford it?
18:43<jez9999>well i know how to catch it
18:43<jez9999>but not determine
18:45<@Bjarni>you need to trigger the flag DC_QUERY_COST
18:45<jez9999>yes that gives me the cost
18:45<jez9999>my code basically says
18:45<jez9999>foreach depot, get the cost for an upgrade. if player can afford it, upgrade.
18:45<jez9999>the bit i cant do is "if player can afford it"
18:45<@Bjarni>the question is... how do we set it? :)
18:46<jez9999>set what?
18:46<jez9999>it seems your code only replaces if you specify the DC_EXEC flag
18:46<jez9999>unless i read it wrong
18:47<jez9999>ret = MaybeReplaceVehicle(v, !(flags & DC_EXEC), false);
18:47<@Bjarni>don't look at that part of the code
18:47<@Bjarni>that's not the interesting part
18:47<jez9999>i dont know why there is a DC_QUERY_COST actually
18:48<jez9999>isnt that implied if (!flags & DC_EXEC) ?
18:48<jez9999>!( rather
18:48-!-Digitalfox_ [] has quit [Quit: Leaving]
18:49<+glx>no it's another flag
18:50<SmatZ>[23:47:55] <jez9999> i dont know why there is a DC_QUERY_COST actually
18:50<@Bjarni>you are right. I never check for DC_QUERY_COST
18:50<SmatZ>I am interested in it, too :)
18:50<@Bjarni>because in this specific case it would appear that it's not needed
18:50<jez9999>but you do return a cost only if EXEC isnt set
18:51<@Bjarni>but DC_EXEC and DC_QUERY_COST would never be set at the same time
18:51<+glx>DC_QUERY_COST is usually used when shift is pressed
18:52<jez9999>i'll probably pass it for good measure
18:52<jez9999>oh i see what you mean with the 'all or nothing'
18:52<jez9999>i dont need to query the cost.
18:52<jez9999>your code determines whether the replacement is done
18:53<jez9999>there's another problem
18:53<jez9999>say i convert 10 pieces of track, then start upgrading depots
18:53<jez9999>the cmdconvertrail has added up that 10 track cost, but then a depot is upgraded
18:53<jez9999>say that depot upgrade cost means you no longer have the money to upgrade those 10 pieces of track
18:53<jez9999>that means the depot is upgraded but not the track, i'd want it the other way around
18:54<jez9999>so i think my code does still need to check for the cost
18:54<jez9999>basically if (track_upgrade_cost + depot_upgrade cost is too expensive), dont upgrade depot
18:55<@Bjarni>if you call DoCommand() and set flags to flags(from the arguments in the command you write this in) then during the test run it will give you the costs and when afterwards when DC_EXEC is set for the main function (this will only happen if there is no errors at all) then the replacement will go ahead
18:55<@Bjarni>that should do it
18:55<@Bjarni>there is no reason to make it more complex than needed
18:56<jez9999>well a) that means there is only 1 cost animation
18:56<SmatZ>Bjarni: will it work if you are converting 10 depots, but you have money to convert only one?
18:56<jez9999>and b) it won't work because autoreplace will say "here's the cost to upgrade 5 trains of the 8 in the depot, have a nice day"
18:57<@Bjarni>SmatZ: yes if but only if he codes it like he already said he will
18:57<@Bjarni>he combines the total costs and return them in the main command
18:57<jez9999>i specifically want it to convert as many depots as possible, but leave the ones it cant afford
18:57<jez9999>almost a different function from the track upgrading, just done after the track upgrading
18:58<@Bjarni>new idea
18:58<SmatZ>ohhh! :)
18:58<jez9999>otherwise you're dragging the track converter tool over a complex section of track, and no track is upgraded because it cant afford 1 depot
18:58-!-KritiK [~Maxim@] has quit [Quit: Leaving]
18:58<@Bjarni>make a function to convert rails (but not depots)
18:59<@Bjarni>it might be possible to reuse the current function for this and then add a "skip depots" button
18:59<@Bjarni>and write a callback function for this
18:59<@Bjarni>and the callback function will then try to take care of depots
18:59<Patrick`>is this specifically for, e.g. autoupgrading deisel to electric?
19:00<jez9999>isnt that similar to what im doing at the moment?
19:00*SmatZ is looking forward for 50 commands sent over network when converting larger area :)
19:00<Patrick`>because upgrading trains from, say, monorail to maglev
19:00<Patrick`>that's basically a "play the game for me" button
19:00<jez9999>or do you mean that by the time the callback func is called, the track conversion money is already taken?
19:00<jez9999>Patrick`: no, it's a "make the game something other than utterly tedious for me" ;-)
19:00<jez9999>manual conversion of 100 trains is bloody awful
19:00<@Bjarni>a callback function is called when the original function is done and it worked
19:01<Patrick`>I do admit that I just move to a new area of the map when a new railtype is out
19:01<Patrick`>or just start with maglev ;)
19:01<SmatZ>Bjarni: isn't there an intention to reduce number of commands sent over network?
19:01<jez9999>Bjarni: mmhmm, so it successfulyl converts the track then goes for the depots. how does that work with the cost estimatio?
19:01<@Bjarni>one for tracks and one for depots
19:01<Patrick`>for example, "convert this area" is sent as one command
19:01<@Bjarni>I think we can live with two
19:01-!-lolman [] has quit [Remote host closed the connection]
19:02<@Bjarni>but I reject a patch sending more than that
19:02<jez9999>Bjarni: im guessing that for the purposes of this excercise, empty depots are 'track'. ive already basically modified the autoconvert code to do that
19:02<@Bjarni>that sounds reasonable
19:02<jez9999>how does that work with cost estimation?
19:03<jez9999>when you cost estimate it should probably include the autoreplace cost
19:03<@Bjarni>it will not include the callback costs
19:04<jez9999>so the code needs to manually call the callback func IF you're querying
19:05<@Bjarni>if I recall correctly (this needs to be verified) then it will do the command like there is no callback and if the command works then it will call the callback
19:06<@Bjarni>so the first step is to just ignore whatever the callback should handle
19:06<@Bjarni>another good question is if the callback is handled in sync
19:06<@Bjarni>I never needed to know that so I never investigated that
19:07<SmatZ>do you want to have "floating money" above each depot?
19:07<jez9999>and if it can only convert 3 of 4, then the cost animation would be above those 3
19:07<jez9999>but not the 4th
19:07<@Bjarni>it's used for stuff like opening a vehicle window when you build a new one
19:08<jez9999>would it matter whether it was in sync or not?
19:08<@Bjarni>opening a window will not care if you do it in sync
19:08<@Bjarni>it would matter if you convert the depots in sync
19:08<@Bjarni>imagine if it converts a depot on some clients but not all
19:08<@Bjarni>you have to be sure that the same amount of depots are converted everywhere
19:09*Bjarni wats
19:09<jez9999>you mean it converts the track, then the client takes 5 ticks to send the depot command
19:09<jez9999>hmm but i dont see why it would cause a problem
19:10-!-Osai^zZz is now known as Osai^zZz`off
19:12<@Bjarni>it would cause a problem if it waits 5 somewhere and 3 somewhere else
19:12<@Bjarni>even worse
19:12<@Bjarni>is only executed on one computer
19:12<jez9999>given that callback is only available in DoCommandP which is described as 'network safe', it would be strange if it wasnt in sync
19:12<@Bjarni>I fear for the latter
19:13<@Bjarni>the command is safe. The question is if the callback is handled the same way everywhere
19:14<jez9999> NetworkSend_Command(tile, p1, p2, cmd, callback);
19:15<jez9999>hm, /* Only the local client (in this case, the server) gets the callback */
19:15<jez9999>how can you make the commands happen synchronously?
19:15<jez9999>arent they all put in a queue?
19:18<@Bjarni>yeah only the client who calls the command will get the callback
19:18<jez9999>so there is some way to indicate to the server "execute these commands atomically"?
19:19-!-Ammler [] has quit [Remote host closed the connection]
19:19<@Bjarni>so to get the behaviour you want then you should write in the callback that it should call "convert depot+vehicles" and make that one use the same callback (or something like that)
19:20<@Bjarni>the problem is that while it's not difficult to code it will create a package on the network for each depot which is what we didn't want it to do
19:20<jez9999>make that one use the same callback?
19:20<jez9999>well is there a mechanism for bundling commands together atomically?>
19:21<jez9999>this IS executing a lot of different commands, unless there is a way to do that i dont see how you can avoid having lots of commands
19:21<@Bjarni>yeah... imagine it will convert tile 1-10 and there are depots on tile 4 and 7. The callback will then trigger on the depot for tile 4. Next time if the callback/command is coded correctly the same arguments will trigger on tile 7
19:21<@Bjarni>but that doesn't matter
19:21<@Bjarni>we will not accept that solution
19:22<@Bjarni>it wastes too much bandwidth
19:22<jez9999>the only way to get something to be atomic is to make it a command, right?
19:22<jez9999>so my original solution of adapting the convert rail command was probably best :-)
19:22<jez9999>that single conversion would do all the work in one go
19:23<@Bjarni>what you need to do is to call DoCommandP() once and the function it calls will then call DoCommand() a number of times to get the job done
19:23<@Bjarni>DoCommandP() makes a package each time it's called
19:23<jez9999>ohh so that's what P is
19:23<@Bjarni>DoCommand() doesn't
19:24<jez9999>if you do a track conversion in a network game, it calls docommandp, right?
19:24<@Bjarni>DoCommand() will only execute locally but we just ensured that it will be executed in sync because it's in the piece of code we used DoCommandP() to handle in sync
19:24<@Bjarni><jez9999> if you do a track conversion in a network game, it calls docommandp, right? <-- it should
19:24<jez9999>ok, so im safe to call a few DoCommands in CmdConvertRail
19:25<jez9999>ie. one for each depot
19:25<jez9999>which i was planning to do anyway
19:25<@Bjarni>but then you can't fix the cost animation issue
19:25<jez9999>i might be able to
19:26<jez9999>i can calculate the cost for just upgrading track and empty depots
19:26<jez9999>in the existing loop
19:26<jez9999>i also build a std::list of depot info for other depots
19:26<jez9999>at that point we have the CommandCost for just the track
19:26<jez9999>somehow there needs to be a way to calculate whether a command can be afforded
19:27<jez9999>then i could do it
19:28<jez9999>isnt there some CanAfford(Player, CommandCost)? :-)
19:29<jez9999>so close..........
19:29<+glx>autoreplace can't know the real cost for the replacement
19:29<+glx>as it can't query refit cost without building
19:29<@Bjarni>it can
19:29<@Bjarni>I fixed that
19:30<@Bjarni>bool CheckPlayerHasMoney(CommandCost cost) <-- I think you are looking for this one (in players.cpp)
19:30<jez9999>so if in my second loop i call that for each autoreplace
19:31<jez9999>i can do the autoreplace if they can afford
19:31<jez9999>that way in one command track is upgraded, and any depots possible are too
19:31<jez9999>and it is synchronous
19:31<@Bjarni>remember that you need to convert the track before replacing
19:31<@Bjarni>and convert back if replacing fails
19:31<jez9999>one other thing i thought of
19:32<@Bjarni>and if you convert back it should be free
19:32<jez9999>not sure whether it's a problem
19:32<jez9999>well it's always free, the CmdConvertRail adds the convert cost itself
19:32<jez9999>i think
19:32<@Bjarni>while it should cost to convert if it stays converted
19:32-!-SmatZ [] has quit [Quit: Konversation terminated!]
19:32<@Bjarni>that's how you should ensure that it works
19:33<jez9999>this is seen a lot in CmdConvertRail:
19:33<jez9999>cost.AddCost(RailConvertCost(type, totype));
19:33-!-Progman [] has quit [Remote host closed the connection]
19:33<jez9999>it's adding the cost manually
19:33<@Bjarni>DoCommandP() will automatically take the money from the player so you should "just" return the right number
19:34<jez9999>it will for the autoreplac
19:34<@Bjarni>but when calling DoCommand() inside the command will not automatically make you pay
19:34<jez9999>but CmdConvertRail doesnt use DoCommandP for converting the rail
19:34<@Bjarni>so you should add the costs from the return value
19:34<jez9999>it calls SetRailType
19:34<jez9999>well i shouldn't be calling DoCommandP at all, should i?
19:35<@Bjarni>CmdConvertRail <-- this is called using DoCommandP so everything inside that function is done in sync
19:35<jez9999>which is handy
19:35<@Bjarni>you shouldn't make a new network package
19:35<@Bjarni>you see once all clients executes your command imagine if they all generate a new package
19:36<@Bjarni>you don't want that
19:36<jez9999>but if i call DoCommand() for the autoreplace from that function, will the autoreplace cost animation happen separately?
19:36<@Bjarni>I don't think it will show up at all
19:36<jez9999>or does it not show the animation and im supposed to take the cost and display it for my command's animation
19:36<jez9999>i want it to show up.;
19:36<@Bjarni>then add it manually
19:36<+glx>you'll need to make it show yourself
19:36<jez9999>cant i just directly call CmdDepotMassAutoReplace ?
19:36<jez9999>instead of DoCommand?
19:37<@Bjarni>in theory yes
19:37<@Bjarni>but we designed this using DoCommand ;)
19:37<jez9999>designed what?
19:37<@Bjarni>the whole networking system
19:37<@Bjarni>DoCommand will do more work than just calling the function
19:38<jez9999>the other thing i was gonna metnion
19:38<jez9999>before calling autoreplace, i call AddEngineReplacement
19:38<jez9999>for each ID found in the depot to upgrade
19:38<jez9999>(vehicle id)
19:38<jez9999>would that have sync issues?
19:40<+glx>not if it's done it the same "command"
19:40<jez9999>and am i meant to use DoCommand to call it, or just directly call AddEngineReplacement
19:40-!-SpComb^ [] has joined #openttd
19:40<@Bjarni>it would have another nasty sideeffect
19:41<@Bjarni>it would kill whatever replace settings you already set for that particular enginetype
19:41<jez9999>nope, because i first record them and afterwards replace them
19:41<@Bjarni>do you restore completely?
19:41<@Bjarni>the replace commands?
19:41<+glx>well if you change railtype, the old railtype is already invalid
19:41<jez9999>well this is one of the things i had in the issues list
19:42<jez9999>im not sure whether i deal correctly with the whole groups thing
19:42<jez9999>it's quite complex
19:42<jez9999>but it can be done i think
19:42<+glx>the old replacement*
19:42<jez9999>not 'invalid'
19:42<jez9999>it can stay
19:42-!-SpComb [] has quit [Ping timeout: 480 seconds]
19:42<+glx>yes but not applicable
19:42<jez9999>yeah but the rule can stay
19:43<jez9999>obviously if you then build older track and an older vehicle it will be replaced again
19:43<@Bjarni>glx: no because you didn't convert the entire network. It's easy to presume that the engine is in use elsewhere
19:43<+glx>oh right
19:43-!-SpComb^ is now known as SpComb
19:43<jez9999>hmm this should work
19:44<jez9999>are you meant to use DoCommand to call AddEngineReplacement, or call it directly?
19:44<jez9999>likewise RemoveEngineReplacement
19:45-!-thgerg1 [] has quit [Read error: Connection reset by peer]
19:46<@Bjarni>maybe it would be wiser to make autoreplace use a different set of replacement rules if the current train can't drive in the depot because then we know that we change railtype
19:47<@Bjarni>so we will not mess with the "normal" setup but use our own special set for this particular usage
19:47<jez9999>we may want the option of upgrading normal depots to electrified depots
19:47<jez9999>(and the trains in them)
19:47<@Bjarni>upgrading a normal depot to an electric one shouldn't mess with the trains inside it
19:48-!-Prof_Frink [~proffrink@] has quit [Remote host closed the connection]
19:48<@Bjarni>as steam/diesel can drive on electrified raillines
19:48-!-thgergo [] has joined #openttd
19:48<jez9999>as i said, you might want the option of doing that
19:48<jez9999>dunno maybe not
19:49<@Bjarni>you can then set a normal replace rule to replace the engines and it will only be executed in electrified depots
19:51-!-thgergo [] has quit [Read error: Connection reset by peer]
19:51<jez9999>i did notice, for AddEngineReplacement
19:51<jez9999>it takes a EngineRenewList argument
19:52<jez9999>im not sure whether that could somehow be used to construct a new renew list just for the purposes of this conversion, i didnt really see it used except to specify p->engine_renew_list
19:52<jez9999>if you could somehow say 'autoreplace' on a depot and specify an engine renew list, you could avoid what they player's current renew list is
19:54-!-stillunknown [] has quit [Ping timeout: 480 seconds]
19:56<@Bjarni>Groups can do that but that's not what we want to do
19:56<@Bjarni>I mean
19:56<@Bjarni>we shouldn't use groups for this
19:57<@Bjarni>or should we?
19:57<+glx>there's a conflict between groups and global
19:57<@Bjarni>imagine a failure because there is no free groups
19:58<@Bjarni>or global issues as glx said
19:59<jez9999>but if you could specify a list
19:59<jez9999>EngineRenewList i mean
19:59<jez9999>to autoreplace (autoreplace might need modifying)
19:59<jez9999>it would ignore all the groups and global stuff, it just takes the list you specify
20:00<jez9999>i dont mean autoreplace i mean CmdDepotMassAutoReplace
20:00<jez9999>i guess you're running out of params tho, i mean you already used p2
20:00<jez9999>and p1 is vehicle type
20:03-!-SpComb^ [] has joined #openttd
20:06-!-SpComb^ [] has quit []
20:10-!-Leviath [] has quit [Remote host closed the connection]
20:11-!-Vikthor [] has quit [Quit: Leaving.]
20:11-!-ben_goodger [] has joined #openttd
20:15-!-ThePizzaKing [] has joined #openttd
20:15<@Bjarni>there is a total of 64 bits in p1 and p2
20:15<@Bjarni>if needed we can skip the vehicle type
20:15<@Bjarni>and figure it out based on depot type
20:26<jez9999>so we have a plan then? :-)
20:32-!-ben_goodger [] has quit [Ping timeout: 480 seconds]
20:32-!-ben_goodger [] has joined #openttd
20:39-!-nicfer [] has left #openttd []
20:44-!-mrfrenzy [] has quit [Ping timeout: 480 seconds]
20:45-!-Wezz6400 [] has quit [Quit: Zzz]
20:49-!-Bjarni [] has quit [Quit: Leaving]
20:51-!-mrfrenzy [] has joined #openttd
20:53-!-jez9999 [] has quit []
21:05-!-elmex_ [] has quit [Remote host closed the connection]
21:12-!-Volley [~worf@] has joined #openttd
21:26-!-Brianetta [] has quit [Quit: Tschüß]
21:35-!-Eddi|zuHause2 [] has joined #openttd
21:41-!-Eddi|zuHause3 [] has quit [Ping timeout: 480 seconds]
21:45-!-NukeBuster [] has quit [Read error: Connection reset by peer]
21:48-!-Digitalfox [] has joined #openttd
22:03-!-MDGrein [] has quit []
22:40-!-Volley [~worf@] has quit [Remote host closed the connection]
22:44-!-ben_goodger [] has quit [Remote host closed the connection]
23:11-!-nicfer [] has joined #openttd
23:31-!-glx [] has quit [Quit: bye]
23:41-!-gfldex_ [] has joined #openttd
23:42-!-gfldex [] has quit [Ping timeout: 480 seconds]
23:47-!-RamboRonny [] has joined #openttd
23:47-!-Aerandir [] has quit [Read error: Connection reset by peer]
23:47-!-RamboRonny is now known as Aerandir
23:52-!-roboman [] has joined #openttd
---Logclosed Tue Mar 25 00:00:27 2008