Back to Home / #openttd / 2010 / 03 / Prev Day | Next Day
#openttd IRC Logs for 2010-03-21

---Logopened Sun Mar 21 00:00:21 2010
00:05-!-Lakie [~Lakie@] has quit [Quit: Sleep.]
00:24-!-Adambean [] has quit [Quit: Gone fishing]
00:33-!-lugo [] has quit [Ping timeout: 480 seconds]
01:03-!-Pikka [] has joined #openttd
01:36-!-Singaporekid [] has joined #openttd
01:43<Pikka>oh no
01:43-!-Bobbysepp [] has quit [Quit: Bye for now!]
01:53-!-JVassie_ [] has quit [Read error: Connection reset by peer]
01:53-!-George [~George@] has quit [Read error: Connection reset by peer]
01:57-!-George [~George@] has joined #openttd
02:21-!-robotboy [] has joined #openttd
02:28-!-roboboy [] has quit [Ping timeout: 480 seconds]
03:00-!-Pikka [] has quit []
03:24-!-Rhamphoryncus [] has quit [Quit: Rhamphoryncus]
03:27-!-MeCooL [mecool@] has joined #openttd
03:34-!-robotboy [] has quit [Ping timeout: 480 seconds]
03:53-!-ctibor [~quassel@] has joined #openttd
04:04-!-Terkhen [] has joined #openttd
04:04<Terkhen>good morning
04:17<Yexo>good morning
04:22-!-oskari89 [] has joined #openttd
04:26-!-fjb [] has quit [Remote host closed the connection]
04:30-!-fjb [] has joined #openttd
04:39-!-fjb [] has quit [Remote host closed the connection]
04:39-!-fjb [] has joined #openttd
04:42<fjb>Moin planetmaker
04:47-!-tokai [] has quit [Read error: Operation timed out]
04:51-!-tokai [] has joined #openttd
04:51-!-mode/#openttd [+v tokai] by ChanServ
05:00-!-Neon [] has joined #openttd
05:21-!-robotboy [] has joined #openttd
05:32<andythenorth>peter1138: yes Pikka is often correct :)
05:32<andythenorth>what is he specifically correct about?
05:37<andythenorth>He's not wrong about CheckIfFarEnoughFromIndustry but nor is he correct
05:40<@peter1138>he is correct
05:40<Singaporekid>he is a bird
05:40<@peter1138>just your second post elaborates on what you want to actually do
05:40<andythenorth>yup, I saw I'd failed on that
05:40<andythenorth>ho hum
05:44<andythenorth>I find it weird to have a game option which doesn't do what it says. But maybe I'm being too OCD :o
05:50-!-Alberth [] has joined #openttd
05:53-!-fjb [] has quit [Ping timeout: 480 seconds]
05:55-!-lobstah [~michielbi@] has quit [Ping timeout: 480 seconds]
05:56-!-robotboy [] has quit [Ping timeout: 480 seconds]
05:57<TrueBrain>[00:22] <OwenS> TrueBrain: Considered going to StartSSL for the SSL cert? At the least both IE and Firefox ship their root, and it's free <- CACert is shipped with most OSes and FF too ... and it is free
05:57-!-lobstah [~michielbi@] has joined #openttd
05:57<@peter1138>TrueBrain, he's not here :)
05:58<TrueBrain>his problem :)
05:58*andythenorth ponders passengers at oil rigs
05:59*andythenorth wonders if people are engineering supplies :P
06:00-!-frosch123 [] has joined #openttd
06:02<andythenorth>bonjour frosch123
06:02<frosch123>moin andy
06:05<andythenorth>frosch123: I have a game running with modified random production cb....closures look about right so far
06:05-!-Yexo [] has quit [Quit: bye]
06:06<frosch123>and creation?
06:06-!-Yexo [] has joined #openttd
06:06<frosch123>if there are only a few industries on the map, it will now also only try to create some new ones
06:07-!-Cybertinus [] has joined #openttd
06:07<frosch123>resp. if there are lots it will try to create lots of new ones
06:07<andythenorth>frosch123: not sure. I need to build Terkhen's patch and run multiple games
06:08<andythenorth>I'll do that later today - fooling with oil rigs and passengers at the moment
06:11<andythenorth>'Everyone' knows oil rigs accept passengers right? I've been playing this damn game so long I can't remember what's obvious any more :o
06:13-!-Progman [] has joined #openttd
06:14<Hirundo>Yexo: <- this sure looks interesting. Is more info available somewhere?
06:14<Yexo>not yet
06:14<Yexo>I'm currently thinking about the syntax for normal action2s
06:17<Hirundo>Just last night I was writing up a sort of spec for such a language
06:18<Hirundo>The syntax is quite different, but I'll finish it and post it into the pastebin for inspiration
06:18<Yexo>that'd be great :)
06:23-!-fjb [] has joined #openttd
06:24-!-Coco-Banana-Man [] has joined #openttd
06:25-!-elmz [] has joined #openttd
06:26-!-OwenS [] has joined #openttd
06:29<Alberth>Very nice Yexo, I was also secretly thinking about a more readable format. Not sure if this fits that bill, but hey, it has more words than current nfo
06:30*andythenorth likes the safe familiar world of nfo :P
06:31<andythenorth>nfo eliminates typos in variable names :)
06:32<Alberth>instead you get 0xbaeb typo's :p
06:33<andythenorth>he :P
06:33<andythenorth>nfo eliminates style arguments about camel case vs hungarian etc
06:33<andythenorth>nfo eliminates forgetting the brackets so a function isn't called
06:33<andythenorth>nfo eliminates worrying about types
06:34<andythenorth>and = instead of == in if statements
06:34<andythenorth>all my favourite coding fuckups :)
06:34<Alberth>no it doesn't, you still have bytes and words and long words
06:34<andythenorth>and escapes with \d or \dx
06:34<Alberth>and you can mess up endian shuffling :)
06:34<ccfreak2k>nfo killed my dog.
06:35<ccfreak2k>I hate languages with implicit type conversion.
06:35<frosch123>can it also kill cats?
06:35<andythenorth>I keep killing the game by mixing up 00 and 20 in advanced varaction 2
06:35<Yexo>Alberth: the syntax can still use a lot of work, but getting away further from nfo is hard if the end result has to be compiled to nfo
06:36<andythenorth>I think nfo being baroque keeps the standard of newgrfs high :)
06:37<frosch123>then you did not encounter experts' hard industries
06:37<Yexo>frosch123: says "Registers (temporary and persistent alike) always have the size of 4 bytes. If you're writing them using smaller sizes (anything but type 89/8A), the given value will be sign-extended to 4 bytes."
06:37<Alberth>I am mostly concerned about the size of the language. nfo is BIG, with a lot of special cases
06:37<Yexo>I haven't tested it yet, but judging from the code openttd doesn't sign-extend the values
06:37<OwenS>Yexo: Hmm, interesting. That would be quite subtle in C++ though
06:37<andythenorth>I always write them with type 89....81 and 85 don't seem to work
06:38-!-a1270 [] has joined #openttd
06:38<Alberth>and you never filed a bug report?
06:38<andythenorth>It wasn't exactly a scientific test :)
06:38<andythenorth>I normally assume I've done something wrong
06:40<andythenorth>actually I'm talking crap. I do write registers with type 85 and it works
06:40<Yexo>unrelated question about nfo: if I want to read bits 24..27 from industry var 45, is it valid to do that with type 81 and a shift of 24 or do I need type 89 for that?
06:41<frosch123>81 and shift 24 is fine
06:41<frosch123>but yes, the signed extending is missing
06:41*andythenorth grumble about some more nice patches for debugging newgrfs? :)
06:42<andythenorth>the hard part is testing, not coding :|
06:42<OwenS>Is the sign extension useful? Perhaps a zero-extension option should be added also?
06:45-!-^4VAlien^ [] has joined #openttd
06:46<frosch123> <- so i guess something like that
06:47<andythenorth>Terkhen: rv acceleration - hp should only be defined in the newgrf for the lead vehicle?
06:48<^4VAlien^>are savegames that crash within a few minutes useful for the development team? (using the RC3)
06:48<Yexo>at least, if you didn't use a patch or heavily modified your newgrf list
06:49<frosch123>[11:50] <andythenorth> Terkhen: rv acceleration - hp should only be defined in the newgrf for the lead vehicle? <- you should even zero it for the other parts (see newgrf wiki)
06:49<andythenorth>frosch123: thanks. I've done that :)
06:50<^4VAlien^>no i use the stock download
06:50<^4VAlien^>im now installing the dev environment though
06:50<^4VAlien^>but im more interested in making an AI
06:51<OwenS>From the git repo, is there any way for me to find out what SVN revision a commit corresponds to?
06:53<@peter1138>check the commit log
06:56<TrueBrain>[00:22] <OwenS> TrueBrain: Considered going to StartSSL for the SSL cert? At the least both IE and Firefox ship their root, and it's free <- CACert is shipped with most OSes and FF too ... and it is free
06:56<TrueBrain>peter1138: this time he was here, right? :)
06:56*andythenorth reads some src
06:57<andythenorth>cb 14B (set industry acceptance cargo dynamically) - shouldn't be a problem for AIs, right?
06:57<andythenorth>won't break AI ability to check what cargos accepted?
06:58<frosch123>ais have two functions to check the cargos. the one for existing industries works with 14a/b, the one for industrytypes works as less as the industry construction gui
06:58-!-LadyHawk- [] has joined #openttd
06:58<OwenS>TrueBrain: Mozilla and Windows don't ship it. Also, StartSSL is free
06:59<@Rubidium>not for wildcard SSLs
06:59<TrueBrain>Mozilla should be shipping it, as they said they did
06:59<TrueBrain>StartSSL is ..... not the best option :p
06:59<TrueBrain>well, in theory we don't use wildcards, but we do use lots of subdomains
07:01<frosch123>hmm, so ecs vectors use op 0E and 10 multiple times for bytes and words
07:01<__ln__>TrueBrain: my FF doesn't recognize's certificate
07:01<Yexo>frosch123: that diff looks good
07:01<OwenS>git log origin/HEAD | grep "(svn" | head -n 1 | cut -d" " -f 6 | head -c -2 <-- Thats quite ridiculous :p
07:02<TrueBrain>I think we should just use money from the donations for a verizon certificate :p
07:02<OwenS>verizon? You mean VeriSign? :P
07:02<OwenS>Thwate would be somewhat cheaper
07:02<TrueBrain>both start with 'veri'
07:03<Alberth>andythenorth: The trick with debugging facilities is that we need a generic one, rather than one for industries, one for vehicles, one for houses, one for stations, etc. That needs a design by someone fluent in both nfo and c++ I am afraid.
07:04-!-LadyHawk [] has quit [Ping timeout: 480 seconds]
07:04-!-LadyHawk- is now known as LadyHawk
07:04<Alberth>OwenS: We thought about hiring volunteers to type the revision number every time the computer needed one, but supplying enough food was too expensive
07:04<TrueBrain>LOL @ Alberth :)
07:06<CIA-6>OpenTTD: frosch * r19497 /trunk/src/ (5 files): -Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage. (Spotted by yexo)
07:07<andythenorth>Alberth: yep I see the point. My proposal is for a generic framework. Rather than a 'patch for industries here', a 'hack for trains there' etc.
07:07<andythenorth>But I am not fluent in nfo or C++ :(
07:08<andythenorth>I have drawn a nice icon though :)
07:10<andythenorth>peter1138: the players have noticed and are having ideas :)
07:11<frosch123>what is needed for debugging? displaying all persistent storage registers? displaying all variables 00-5f? displaying the last result of every callbackid? setting conditional breakpoints for callbacks and then print the whole trace for them once?
07:12<andythenorth>persistent registers - definitely
07:12<andythenorth>callbacks enabled - definitely
07:12<@peter1138>only industries have persistent registers
07:13<andythenorth>displaying last result for each cb - useful if possible. Do some cbs run insanely often?
07:13<frosch123>"callbacks enabled" sounds weird to me. then you rather need some tool which checks whether all callbacks appearing the the action2 chain are enabled
07:13*OwenS chucks new patch into #FS3713
07:13<frosch123>what is the use of displaying enabled callbacks in game?
07:14<andythenorth>frosch123: I've spent a lot of time trying to 'fix' varaction 2 for cbs, to find that I hadn't enabled the cb :o
07:14-!-JVassie [] has joined #openttd
07:14<andythenorth>the cb bit map is really easy to get wrong
07:14<frosch123>so you need a tool which can check that, but no display for manual checking, right?
07:15<andythenorth>manual checking?
07:15-!-ptr [] has joined #openttd
07:15-!-heffer [] has joined #openttd
07:15*andythenorth should learn to explain himself better
07:16<frosch123>yes, displaying them ingame and a human reading it and comparing it with the action2 chani
07:16<andythenorth>what Yexo's patch does is sufficient
07:16<andythenorth>resp. cbs
07:17<andythenorth>also special /misc flags in case of industries
07:18<frosch123>so basically all action0 properties including semantical meaning? :p
07:18<andythenorth>no Yexo pointed out that's unnecessary
07:18<andythenorth>for things that are simple, it's pointless printing them, the nfo is sufficient, or they are displayed anyway (speed, weight etc)
07:19<andythenorth>for props that are bit maps, it is useful to see the result
07:19<andythenorth>vehicle cargo refit masks might be a good (specific not general) case
07:20<andythenorth>break points would be useful - something like an advanced varaction 2 operator that pushes the result to the debug?
07:20<andythenorth>I use the text stack that way, but it's a fools game. My code to render the text stack often has as many bugs as the code I'm trying to debug :|
07:21<frosch123>a breakpoint in the nfo? i rather thought some ingame "print trace of next call to production callback"
07:21<andythenorth>that could work equally
07:21<andythenorth>I would defer to your knowledge on most of this :)
07:22<Yexo>frosch123: I was thinking along those lines too
07:22<Yexo>but then also "next call to productino callback of this specific industry"
07:22-!-lewymati [~lewymati@] has joined #openttd
07:23<frosch123>yup, and "next call of production callback of this industry when stockpile of first cargo is bigger than 1000"
07:23<frosch123>putting a breakpoint in the nfo might be easier in that case
07:23<frosch123>but the usage seems quite different
07:24<Yexo>when debugging a callback you need to know on which industry/vehicle/.. the callback is run, and preferable only print a trace if the callback is run for a specific industry/vehicle
07:24<andythenorth>Yexo: it would seem easier to just localise that to the GUI for the object in question?
07:25<andythenorth>That's an outcome not an implementation :)
07:26<andythenorth>xy offsets for industry tiles (presumably also houses). Yes I can count them, but the computer is better at counting than me
07:26<andythenorth>and tile ID
07:27<andythenorth>in fact probably a whole bunch of tile stuff
07:27<Alberth>info button gives the coordinates
07:28<andythenorth>absolute on the map though, not relative to industry north tile
07:28*andythenorth wasn't clear
07:28<Alberth>getting ideas across is one of the most difficult things, even with a A2 white board :)
07:29<andythenorth>hmm....I knew some of the default industries accepted passengers, I didn't know it was so many :o
07:31<frosch123>well, there are also more complicated cases. e.g. how to select wagons or articulated parts. or industry location check at a specific position... i doubt it is possible to specify all via the gui
07:31-!-lugo [] has joined #openttd
07:31<frosch123>does anyone know what ttdp's newgrf debugging features? or does it just dump everything to a file?
07:32-!-Brianetta [] has joined #openttd
07:32<Yexo>according to is dumps it to a file
07:33<Yexo>and there is some utility on the forum to create a more readable text file from that output
07:34-!-Hyronymus [] has joined #openttd
07:35<andythenorth> wonder how much debugging vehicles need?
07:35<andythenorth>some of the train stuff is pretty complex I guess
07:35<CIA-6>OpenTTD: peter1138 * r19498 /trunk/src/vehicle_cmd.cpp: -Feature [FS#3710]: Keep number padding intact when cloning vehicle names.
07:37*andythenorth wonders about being able to see the results of getting some random bits
07:38-!-KenjiE20 [~KenjiE20@] has joined #openttd
07:38<frosch123>you mean displaying the random bits like persistant storage, or calling a callback with a certain random value?
07:39*andythenorth thinks
07:40<andythenorth>displaying the random bits would be interesting. Displaying the result of testing a var like 5F would be more useful.
07:40*OwenS considers morphing NAND signals patch into proper programmable signals
07:40<andythenorth>For industry I can do it with persistent storage though
07:41<andythenorth>I don't want to give the impression that I think an uber-framework is a good idea :o
07:41<andythenorth>A simple tool that works is better than no tool (or my crazy text stack solution for industries)
07:42<Yexo>thanks Hirundo
07:45-!-asilv [] has joined #openttd
07:53<Yexo>Hirundo: apart from some syntactic sugar it's not that different from what Iv'e done so far
07:54<PeterT>andythenorth: I coded my first GRF last night
07:54<PeterT>I've already started CETS
07:55<PeterT>planetmaker: how was the party? :-)
07:57<frosch123>Hirundo: you do everything dword-sized. what about signed/unsigned?
07:58<Hirundo>**, // and %% for signed multiplication/div/mod
07:59<frosch123>hmm, is that written in there? :o
07:59<Hirundo>nope :)
08:00<PeterT>what error have I made in my code, andythenorth?
08:01-!-Westie [] has joined #openttd
08:01<frosch123>an example which uses store or storeP might be useful, i cannot see how that works
08:03<Yexo>frosch123: what is the problem? he didn't specify that store() also returns the value
08:03<Yexo>and value should probably be <expr>
08:04<frosch123>wel,l but where do i put it? into the switch() ?
08:04<Yexo>I'd expect something like this:
08:05-!-Brianetta [] has quit [Quit: Tschüß]
08:05<Yexo>switch (feature_num, set_id, store((var[0x40]+10) & 0x0F, 8) ) {
08:06<Yexo>Hirundo: is that ^^ according to your spec ok?
08:06<andythenorth>PeterT: you're missing a byte
08:06<frosch123>so "switch ( store(read(1), 2), read(3) )"? or "switch ( load( store(read(1), 2), read(3) )" ?
08:06<PeterT>andythenorth: where?
08:06<PeterT>what is a byte?
08:07<PeterT>is it on the ttdp wiki?
08:07<andythenorth>PeterT: try formatting your action 2 like this:
08:07<andythenorth>it's a proven formula :)
08:07<Yexo>frosch123: where does the "load(" come from?
08:07<PeterT>you can even do that?
08:07<frosch123>operator 0F
08:07<PeterT>that's much better than my code!
08:08<frosch123>just invented it, maybe "reset" fits better
08:08<frosch123>or "," :)
08:08<andythenorth>PeterT: that one's for a ship. beware of copying and pasting it :)
08:08<Yexo>frosch123: that doesn't make sense, you don't need operator 0F if you can use a normal expression
08:08<PeterT>andythenorth: I'm going to say these trains only have one loading phase, since that's all the sprites have in them
08:09<PeterT>andythenorth: they didn't give pcx files, is that a problem?
08:09<PeterT>andythenorth: I only have the png
08:09<PeterT>damn it
08:09<andythenorth>no you can convert png to pcx
08:09<frosch123>Yexo: so "," accoring to newest paste
08:09<Yexo>ah, like in C
08:09<andythenorth>PeterT: I'm afk
08:09<PeterT>Ok, bye!
08:09<andythenorth>but someone else might help you or I'll be back later
08:10<PeterT>what problem do you use?
08:10<PeterT>for conversion
08:10<andythenorth>in my case
08:10<^4VAlien^> is a good free image tool on windows
08:10<PeterT>that's money
08:10<PeterT>thanks ^
08:11<PeterT>thanks ^4VAlien^
08:13-!-robotboy [] has joined #openttd
08:13<^4VAlien^>i just checked and you need a plugin for pcx support though
08:14<Yexo> converted Hirundos example to the syntax I've used so far
08:14<Yexo>oh, and I stole the , operator :p
08:14<PeterT> ?
08:15<frosch123>^4VAlien^: does it support images with indexed colours?
08:17<Hirundo>Yexo: in your first example, does 'company_color = ((VAR(0x45) >> 24) & 0x0F)' act like a #define or like an actual (run-time) assignment?
08:17<Yexo>like a #define
08:18<^4VAlien^>frosch123 it can work with palettes yes
08:18<^4VAlien^>i'll see if i can get it to save a pcx
08:19<Hirundo>How do you plan to work with actions 6, 7/9 and D?
08:19<Yexo>I don't have a plan for that yet
08:20<Yexo>I started without a good plan, just to see how difficult it would be to support varaction2
08:22<Hirundo>How would you handle a / (b * c) ?
08:22<^4VAlien^>Color Palette
08:22<^4VAlien^>New for the Colors window is a customizable palette that can hold up 96 colors. Also available is the ability to save, load, and manage the color palettes. These are stored as simple TXT files in your Documents folder hierarchy.
08:22<^4VAlien^>so it works for me with pcx
08:22<^4VAlien^>but im not sure how the palette requirements are in ttd
08:23<Hirundo>With actionD it'd be d = b * c, result = a / d; with d being a temporary variable
08:23<Yexo>if that expression occurs in a varaction2 chain I do the same using the temporary storage
08:23<frosch123>96 colors? you need 256
08:24<frosch123>in fixed order with fixed values, and you need to save the images as indexed image not as truecolor image
08:24<Yexo>so it'd become (B * C), store the result in temp[0], discard it, load A, divide by temp[0]
08:26<Hirundo>For both parameters and temp storage, it'd be necessary to reserve a certain section for these temporary variables
08:26<frosch123>just reserve 0x80 to 0xFF
08:27<^4VAlien^>ah well you can save them 8 bit dithered but there is no support for color tables as in old school gif editors etc
08:27<frosch123>though for parameters it is harder due to the weird defined/undefined handling
08:27<Yexo>true, currently I reserver the high half of the temp storage, so temp[128] to temp[255]
08:28<Hirundo>The temporary storage index to read (7D parameter) cannot be set during the callback, right?
08:28<Yexo>but that is no problem
08:28<frosch123>correct, no indirect addressing :)
08:29*Hirundo had weird thoughts about stack pointers and such
08:29<^4VAlien^> theres this plugin which lets you define a selective palette
08:29<Yexo>I resolve the indexes in the temp storage to use at compile time
08:29<^4VAlien^>but i usually use as quick editor at work
08:29<^4VAlien^>no need for palettes there
08:29<Hirundo>Yexo: what language do you use?
08:30<Yexo>python (with ply as lexer/parser)
08:30<PeterT>what keeps happening to my grf code?
08:31<Yexo>PeterT: read the message you get: Error (115): No preceeding action 1.
08:31<Yexo>you need an action1 before that action2
08:32<PeterT>oh, is that always needed?
08:32<PeterT>like, I didn't need Action7 before Action7
08:32<Yexo>action7 before action7? what are you talking about?
08:33<Yexo>andythenorth: action 3 before action 0? does that work?
08:34<Yexo>PeterT: in the action2 you wrote there is "01 00 // loaded sprites", that refers to the last action1
08:34<PeterT>Oh, didn't know that
08:34<Yexo>but you refer to an action1 without ever having defined an action 1, that is why the error is shown
08:35<PeterT>honestly, I dont' know the difference between num-loadtypes, loadtypes, loadingtypes
08:35<Yexo><num-loadtypes> B Number of different states while moving
08:35<Yexo><num-loadingtypes> B Number of different states while loading/unloading
08:35<Yexo><loadtypes> W Sets from the most recent action 1 to use for various states of loading
08:35-!-iri [] has joined #openttd
08:36<Yexo>there it already mentions action 1
08:36<Yexo>it's all properly documented
08:39<andythenorth>PeterT: btw if you get pcx files, make sure their *width* is a multiple of 4
08:39<PeterT>the entire file itself, or the trains?
08:39<andythenorth>the entire pcx file
08:39<andythenorth>otherwise corruption happens
08:39<PeterT>I gotta go
08:39<PeterT>be back in an hour
08:44<iri>Why does my openttd version number look like a sha1?
08:44-!-iri is now known as irid
08:45<irid>oops, must have put my nick in the wrong box somewhere
08:45<OwenS>irid: You building from Git?
08:45<OwenS>Wheres assert() defined?
08:45<irid>Yes. but I can't see the sha1 in the log?
08:45<OwenS>irid: You can see it in the "git log"
08:45<OwenS>When you build it from git, you get the git revision rather than the SVN revision
08:46<irid>doh, I was being dumb, sorry.
08:46<irid>I was including the "g" when looking
08:46<irid>silly me.
08:47<Alberth>OwenS: #include <cassert> (or in c-speak, #include <assert.h>)
08:47<irid>I want to improve the industry directory list. Maybe by showing something like a small percentile graphic for an industry for its production.
08:47<OwenS>Alberth: I thought OpenTTD had a custom assert? :-S
08:47<irid>Also, to be able to sort by industry and production simultaneously..
08:47<irid>Does anyone think this is a worthwhile endeavour?
08:47<irid>(Or not?)
08:48<Alberth>NOT_REACHED(); :)
08:48<Alberth>most likely in stdafx.h
08:49<OwenS>Well, the basic opcodes of my signal VM are done
08:51<^4VAlien^>what is the build target to get a debug build ?
08:53<irid>Hmm. Does any GUI provide a way of having a list with columns?
08:54<Alberth>server list
08:55<Alberth>but it does some magic with hiding columns
08:57<Alberth>but basically, it is a bunch of matrix widgets next to each other
08:57-!-Pikka [] has joined #openttd
08:58-!-glx [glx@2a01:e35:2f59:c7c0:ade2:236d:c97d:ebbe] has joined #openttd
08:58-!-mode/#openttd [+v glx] by ChanServ
09:00<andythenorth>hi hi Pikka
09:01<Pikka>hello andy
09:02<andythenorth>Yexo: your patch for AcceptSameCargo would 'break' PBI and maybe ECS
09:02<andythenorth>which is sad, because the patch is the right thing to do
09:03<Pikka>D: what does it do?
09:04<^4VAlien^>i almost got my environment set up, but: ..\ttd\src\town_gui.cpp:41:27: table/strings.h: No such file or directory i guess i need to generate it ?
09:04<^4VAlien^>its not on the wiki how to get that file
09:04<^4VAlien^>(i checked out the RC3 tag from repository)
09:05<andythenorth>Pikka: ^
09:05-!-Fuco [] has joined #openttd
09:05<Yexo>^4VAlien^: it's generated automatically if you run make
09:05<Yexo>or by msvc, depending on what environment you use
09:05<^4VAlien^>i installed eclipse
09:06<^4VAlien^>but i did not hit any make buttons, went straight to build :P
09:06<Yexo>there is no project for eclipse, you'll have to create the rules for strgen etc. yourself
09:06<andythenorth>current industry location check only looks at cargo slot 0
09:06<andythenorth>the 'break' would be power station can't locate near steel mill
09:06<andythenorth>not exactly earth shattering
09:07<Pikka>that industry location check is an openttd feature, right?
09:07<^4VAlien^>ah well i use eclipse with mingw toolset
09:07-!-KritiK [] has joined #openttd
09:07<andythenorth>Pikka: dunno
09:07<Yexo>Pikka: I don't know
09:07<andythenorth>I have to go afk :|
09:08<Pikka>I think so, there's no problem with putting, say, two steel mills next to each other in TTDP...
09:08<Pikka>personally I'd like to see the check removed, or at least overridable by newgrf :]
09:08<+glx>^4VAlien^: the order is strgen, langs, openttd
09:09<andythenorth>Pikka: I also think it should be over-ridable by newgrf
09:09<andythenorth>either make the result of cb28 canonical, or make cb14B work in this context (it's broken right now)
09:09<^4VAlien^>i'll try first with a clean build
09:15<^4VAlien^>it might be that i did not have a cc binary on my mingw (just gcc), its seems to be building now that i have it
09:15-!-eQualizer [] has quit [Ping timeout: 480 seconds]
09:17-!-Tennel [] has joined #openttd
09:18<^4VAlien^>compiling goes a lot faster on the quad core bulldozer at work :(
09:18-!-ajmiles [] has joined #openttd
09:19-!-Adambean [] has joined #openttd
09:20-!-lugo [] has quit [Read error: Connection reset by peer]
09:24-!-aber [] has joined #openttd
09:24-!-aber [] has quit []
09:24*andythenorth just solved a problem :)
09:26-!-aber [] has joined #openttd
09:37<irid>When doing DrawString, is there any way to control the colour without modifying the string itself?
09:38-!-Tennel [] has quit [Quit: WeeChat]
09:38-!-Tennel [] has joined #openttd
09:38<Yexo>text color is the next argument after the stringid / char*
09:38<frosch123>andythenorth, pikka, yexo: the cargo checking seems to be indeed an ottd addition (not present in 0.1). so i also vote for removing
09:39<Yexo>we've been doing double work, I was just testing it in ttdpatch :)
09:39<irid>Oh, so it is. sorry.
09:39-!-lugo [] has joined #openttd
09:40<Yexo>I agree on removing the check btw
09:40<frosch123>it is already part of r1
09:40-!-Grelouk [] has joined #openttd
09:40<irid>Is adding a new string as simple as modifying "english.txt" ?
09:40<irid>What happens if a string doesn't exist in the current language?
09:40<frosch123>it takes the english one
09:40<Yexo>the english translatino is used
09:40<PeterT>Hi all, back
09:40<irid>Great :-)
09:41<PeterT>andythenorth: I'm working
09:42-!-tdev [] has joined #openttd
09:44<PeterT>andythenorth: Do I ask for a pcx version, or do I convert it?
09:55<OwenS>Hmm... How would it be best to key something off a signal?
09:55<OwenS>(The simple option would be to key off the TileID, but there are multiple signals on some tiles...)
09:59<OwenS>I suppose, unless we get 65536x65536 maps, it's safe to store it as TileIndex | (special_direction << 31)?
09:59<Hirundo>What do you intend to do with this 'key'?
09:59<OwenS>Hirundo: Store programmable signal programs
09:59-!-Biolunar [] has joined #openttd
10:01<Hirundo>So, to find the program associated with a signal, you use some sort of hash map?
10:05-!-ptr [] has quit [Quit: Zzzzzz]
10:08<OwenS>Hirundo: Yes
10:09<OwenS>(Well, at present, an ordered map, but no reason it needs to maintain order)
10:10<Hirundo>hmmm... do you allocate those programs in a pool?
10:10<PeterT>"The amount of stations, vehicles, ships, etc that the following sprites represent" <-- Is this the number of trains in the pcx file?
10:10<OwenS>Hirundo: Theyr'e just new'd
10:10<PeterT>would it be seven for this one?
10:11<Hirundo>How are you planning to store those pointers in a savegame?
10:11<OwenS>Hirundo: I intend to write out the program map to the save file, collapsing the pointer based structure in the process
10:11-!-fonsinchen [] has joined #openttd
10:13<andythenorth>PeterT: you're asking about action 1?
10:13<Hirundo>How will the user write his programs? Are they really that complex?
10:14<andythenorth>PeterT: it would be 7 sets of 8 for the sprite you showed
10:14<PeterT>of 8 what?
10:14<andythenorth>each angle needs a 'real' sprite
10:15<andythenorth>there are 8 angles
10:15<OwenS>Hirundo: GUI :-)
10:15-!-tdev [] has quit [Quit: Leaving]
10:15<^4VAlien^>it seems that my ai code in \ai\myAI is ignored ?
10:15<^4VAlien^>i cannot select it in the AI settings screen
10:15<PeterT>oh, oh
10:15<PeterT>thanks andythenorth
10:16<Hirundo>OwenS: Sounds difficult, I'll see what you come up with :)
10:16<OwenS>Hirundo: GUI will be hardest part :p
10:18<andythenorth>frosch123, Yexo removing that check = win. Thanks :)
10:18<PeterT>andythenorth: 2 * 4 01 00 07 08 // Action 1
10:18<andythenorth>looks ok to me. feature 00 is trains?
10:19<PeterT>This sets the type of feature that you wish to change. Set it to
10:19<PeterT>00 for trains
10:19<andythenorth>that looks correct to me then
10:19<Pikka>I keep meaning to put up versions of the sprite templates with extra height for pantographs...
10:19<andythenorth>PeterT: do you know what would happen if you had 10 trains?
10:19<PeterT>can I use return spaces as in the next action?
10:20<PeterT>andythenorth: yes, change 07 to 10
10:20<andythenorth>it's hex
10:20<OwenS>Hirundo: Now to track down everywhere in OpenTTD a tile could have signals removed from it or the signal type changed :p
10:20<PeterT>then what
10:20<PeterT>what is hex
10:20<andythenorth>two choices.
10:20<andythenorth>it's worth learning to count in hex
10:20<andythenorth>0A = 10, 0F = 15, 10 = 16. You can fill in the rest
10:20<andythenorth>or use escapes
10:21<PeterT>0B = 11?
10:21<PeterT>0C = 12?
10:21<PeterT>0D = 13?
10:21<PeterT>all the way to FF?
10:21<andythenorth>yup. FF = 255
10:21<Pikka>or \b10 etc
10:21<andythenorth>escapes are useful. 10 would be \b10
10:21<PeterT>why does 0F = 13, but 10 = 16?
10:21*Pikka will shush now
10:21<PeterT>No, keep going coding master
10:22<Pikka>0F = 15
10:22<PeterT>Pikka: Also, your vehicle code confues me'
10:22<Pikka>which bit, peter?
10:22<Pikka>which part is confusing? :P
10:23<PeterT>all of it :D
10:23<PeterT>"1611 SPRITES\myloco.pcx"
10:23<PeterT>why do you skip to 1611?
10:23<Pikka>because I just cut and pasted that together...
10:24<Pikka>renum will fix the sprite numbers (and grfcodec actually doesn't care about sprite numbers these days afaia)
10:24<andythenorth>PeterT: just use -1 for sprite numbers
10:24<PeterT>for every sprite number?
10:24<andythenorth>it's a convention
10:24<Pikka>andy says easier, but when you want to know where the error is having a sprite number is helpful ;)
10:25<PeterT>but he said that renum fixes the sprite numbers
10:26<andythenorth>PeterT: I am too used to the coop makefile system
10:26<andythenorth>that works a bit differently
10:26<andythenorth>carry on as you are :)
10:27<PeterT>Stop confusing me :-P
10:27<PeterT>is this ok?
10:27-!-fjb [] has quit [Ping timeout: 480 seconds]
10:27-!-fjb_ [] has joined #openttd
10:28<andythenorth>you seem to have an empty action 2 at the start of the file? If I've read it right...
10:28<andythenorth>line 4
10:28-!-ctibor [~quassel@] has quit [Quit: No Ping reply in 180 seconds.]
10:28<Pikka>that'd be sprite 0, andy :)
10:28<PeterT>I should ask someone not addicated to makefiles
10:29<Pikka>renum will put the right numbers in there, too
10:29<andythenorth>so now you just need your real sprites and an action 0 and an action 3 ;)
10:29<andythenorth>do you need a pcx still?
10:30<PeterT>I'm googling how to convert it
10:32*Pikka vaguely remembers that grfcodec can read pngs these days too...
10:32<andythenorth>PeterT: check your pm
10:33<andythenorth>it's a nasty hack. you''ll need to learn about the blue background mask
10:33<andythenorth>I've just flood filled most of the file, but normally they are drawn neatly
10:33<andythenorth>PeterT: like so
10:34<andythenorth>actually these are better - uses Zephyris' template
10:34<PeterT>I have no idea what you're talking about
10:34<PeterT>Slow down
10:34<andythenorth>keep up :P
10:35<andythenorth>frosch123 Yexo if that check is removed, does the related advanced option need removing?
10:35<frosch123>i just renamed it to "STR_CONFIG_SETTING_ALLOW_CLOSE_CONFLICTING_INDUSTRY :{LTBLUE}Industries of the same chain can be built close to each other: {ORANGE}{STRING1}"
10:36<andythenorth>Is the option actually required though?
10:36*andythenorth thinks
10:36<frosch123>it allows building forrests near sawmills etc
10:37<frosch123>i.e. ignoring of the "conflicting industry types" properies
10:37<frosch123>if you have a better description of the setting it would be fine
10:37<frosch123>but the old one was quite wrong :p
10:37*Pikka doesn't like player options which override newgrf properties... :P
10:38<frosch123>well, it does not override cb28... so removing it completely might be useful as well
10:38*Pikka added extra-height templates for 7 and 8/8 length vehicles to the wiki... I hope I got the numbers right 'cause I didn't test 'em. :)
10:38<andythenorth>the setting doesn't seem to permit a sawmill to be built near a forest anyway
10:39-!-fjb_ [] has quit [Remote host closed the connection]
10:39-!-fjb_ [] has joined #openttd
10:39<frosch123>i changed that, before it worked only in one direction :p
10:39<frosch123>don't make fun of it :p
10:40*andythenorth is confused about what that setting does do :o
10:40<andythenorth>do any of us know?
10:41<frosch123>yeah, maybe removing it is not that bad
10:41<frosch123>then i also do not have to think about a good description
10:41<andythenorth>less work :
10:43<andythenorth>do we get the unintended consequence that the default game can built two factories (for example) next to each other now?
10:43<andythenorth>or is that covered by forbid multiple same type industry per town?
10:43<frosch123>unless you build them between to towns, yes
10:45<andythenorth>doesn't an industry always belong to a town?
10:46<PeterT>andythenorth: where do I find this info for the trains: xpos ypos compression ysize xsize xrel yrel
10:46<frosch123>yes, but one might belong to town a and the other to town b, while they are directly next to each other
10:46<Pikka> PeterT
10:46<Pikka>but you might have to do a bit of image editing :)
10:46<andythenorth>frosch123: I'll happily test a diff if you have one - to see if there are strange consequences :)
10:47<andythenorth>I'll test for default - not FIRS.
10:47<PeterT>fuck - why can't they just give me a ready pcx
10:47<PeterT>that would be too simple, right?
10:48<Pikka>PeterT: point them to that page, say "template your sprites plz".
10:49<andythenorth>PeterT: so xpos and ypos you have to measure. which is why sticking to a standard template is a good idea
10:50<andythenorth>same for ysize and xsize
10:50<andythenorth>compression I ignore
10:50<andythenorth>xrel and yrel are a bit of a pain, you just to have to make the best guess, test and tweak
10:51<andythenorth>xpos is 4 and ypos is 14 in the file I sent you
10:51<Pikka>andy: well... you don't /have/ to guess... if you're using the templates it's all good, if you've modified the size from the templates a little then you can calculate
10:52<andythenorth>PeterT: try coding one that already has a the class 20
10:52<andythenorth>you can replace the sprites later
10:52<andythenorth>it helps to work through one without this extra pcx hassle
10:52<PeterT>class 20 where?
10:52<Pikka>for non-train vehicles I tend to stick the sprite in the middle of a big blue square and use the same dimensions/offsets for every sprite :P let grfcodec do the work for me.
10:52<andythenorth>PeterT: in the bros zip I sent
10:55<andythenorth>PeterT: you can use that pcx and the action 1 real sprites. then you can see if the rest of your grf works
10:55<PeterT>how does this look?
10:56<andythenorth>move your real sprites down to the action 1
10:56<Pikka>shame NLTiger's vehicle lengths are all over the place... :)
10:57<andythenorth>PeterT: yup (I think)
10:57<PeterT>let's renum then
10:58<Pikka>good, except you've got one sprite set when you said there'd be seven ;)
10:58<andythenorth>renum should tell you about that :)
10:59-!-eQualizer [] has joined #openttd
10:59<PeterT>"//!!Error (56): Offset 5: Sprite set 01 does not appear in the preceeding Action 1 (sprite 1).
10:59<Pikka>if you only have one sprite set, it's set 0
11:00<Pikka>7 sets will be 0-6, not 1-7
11:00<andythenorth>it counts from 0
11:00<andythenorth>so the first set is 00
11:00<andythenorth>but you need to declare 01 or \b1
11:01<andythenorth>renum thinks something is wrong with your action 8 as well
11:02<PeterT>fuck you renum
11:02<andythenorth>oh....your action 8 is commented. and .....naughty
11:02<andythenorth>not too much swearing here
11:02<PeterT>No, it's probably not renum's fault
11:02<PeterT>action 8 can't be commented?
11:03-!-Grelouk [] has quit [Quit: Quitte]
11:03<andythenorth>not really
11:03<andythenorth>not commented out
11:03<PeterT>/!!Error (56): Offset 5: Sprite set 01 does not appear in the preceeding Action 1 (sprite 2).
11:03<andythenorth>paste your current code
11:04<PeterT>never mind, changed to 00
11:04<PeterT>like you said before
11:04<andythenorth>so you need to declare 1 set
11:05<andythenorth>you're falling victim to the 'off by one' problem :) It hits most people
11:05<andythenorth>first set is 00
11:05<andythenorth>but the count is then 1
11:05<andythenorth>so declare 1
11:05<PeterT>[11:05:22] <PeterT> where?
11:05<andythenorth>in the action 1
11:06<andythenorth>01 // number of sprites
11:06<andythenorth>or \b1 // number of sprites
11:06-!-Chrill [] has joined #openttd
11:07<PeterT>/!!Error (56): Offset 5: Sprite set 01 does not appear in the preceeding Action 1 (sprite 2).
11:07<andythenorth>so now we change your action 2 to refer to sprite set 00
11:07<andythenorth>....which is the first set
11:07<andythenorth> use this: 00 00 // loaded sprites
11:08<andythenorth>then renum and paste again
11:08<PeterT>/!!For feature 0 the following cargoIDs have not been used since their most recent definition:
11:08<PeterT>/!!A1 (last defined at sprite 11)
11:08<PeterT>that's the one I get stuck at
11:08<PeterT>do you need my code?
11:08-!-Tennel [] has quit [Quit: WeeChat]
11:08-!-Tennel [] has joined #openttd
11:09<Pikka>well, it hasn't.
11:09<Pikka>you have a "real" action 2, and... then nothing.
11:09<PeterT>So it's giving me an error because I built half of a house?
11:10<andythenorth>so now you need an action 3 which will use the action (cargo ID)
11:10<andythenorth>action 2 (cargoID)
11:10<PeterT>then I'm making progress
11:11<andythenorth>I'll give you the action 3
11:11<PeterT>No - don't
11:11<PeterT>let me try it first
11:11<andythenorth>well it's here if you can resist temptation
11:12<andythenorth>can you resist?
11:12<PeterT>No, I couldn't
11:12<PeterT>I clicked it within 2 seconds of you posting
11:13<andythenorth>kids today - no willpower :o
11:13*andythenorth is shocked
11:15<andythenorth>solved it yet?
11:16<CIA-6>OpenTTD: frosch * r19499 /trunk/src/ (51 files in 4 dirs): -Remove: same_industry_close setting did not do what it said and caused NewGRF trouble.
11:17<PeterT>I'm trying to understand what yours means
11:17<irid>Is there a way to make openttd not ask for confirmation on exit?
11:18<PeterT>12 * 7 03 00 01 20 // Action 3
11:18<PeterT>irid: console -> "quit"
11:18<PeterT>what is the "20" stand for?
11:18<irid>I mean, if I hit ctrl-c at the linux command line, it asks me if I want to quit
11:18<irid>I don't want to SIGTERM it.
11:18<irid>(if possible)
11:19<Pikka>PeterT: weren't you just looking at the wiki page?
11:19<PeterT>I am still
11:19<PeterT>ah, nevermind
11:20<Ammler>andythenorth: you do include tractors in FIRS?
11:20-!-lobstah is now known as lobster
11:26<PeterT>I just don't get it
11:26<PeterT>why do you pick an id of "20"?
11:28<andythenorth>probably because it was for the class 20 - tickles my sense of humour :)
11:28<PeterT>So it's random?
11:28<andythenorth>just change the ID to the one you are using
11:28<PeterT>what am I using?
11:28<andythenorth>the ID is what connects all the actions for a vehicle
11:29-!-fjb_ [] has quit [Ping timeout: 480 seconds]
11:29<andythenorth>you haven't declare an action 0 yet
11:29<andythenorth>so you don't really have any IDs
11:29<andythenorth>may as well use 00
11:29<andythenorth>so change the ID to 00
11:30<andythenorth>Ammler: tractors in FIRS?
11:30<andythenorth>tractors in HEQS yes
11:30<PeterT>Ok, thanks
11:30<PeterT>when shall I declare action0?
11:30<andythenorth>now? :)
11:30<andythenorth>I normally do it first, before action 1/2/3 Pikka seems to do it the other way
11:31<andythenorth>PeterT: you have this file, but anyway:
11:31<andythenorth>action 0,4, 1, 2, 3
11:31<andythenorth>as taught to me by Zephyris
11:31<PeterT>Oh, right
11:32<^4VAlien^>i have some very simple AI code on a small map, but it prints the same town name twice instead of both names with the builtin foreach loop? :
11:34-!-Doorslammer [Doorslamme@] has joined #openttd
11:38<frosch123>drop the GetValue
11:38<^4VAlien^>doh :(
11:38<frosch123>AILog.Info(aTown.GetName(aIndex)+" "+aTown.GetPopulation(aIndex)); <- i would expect that
11:39<PeterT>andythenorth: why do we use \b12?
11:39<PeterT>is that hex for 12?
11:39<andythenorth>no that's an escape
11:39<PeterT>meaning I could also use \b1234?
11:40<PeterT>what is an escape?
11:40<andythenorth>because it's a byte, and can only hold a value up to 255
11:40<PeterT>you use it in action 0 #
11:40<PeterT>-1 * 1 00 00 \b12 01 20 // Action 0
11:40<Pikka>In Info version 7 and later (supported by grfcodec version 0.9.9 and later), grfcodec can do some of this work for you. Instead of doing the above, you may use any of the following escape sequences:
11:40<frosch123>escapes are stuff starting with "\"
11:40<andythenorth>so grfcodec converts escapes into bytes or words or dwords
11:40<PeterT>Thanks Pikka
11:40<PeterT>why do I have info version 5? :\
11:41-!-fjb_ [] has joined #openttd
11:42<Pikka>who knows, PeterT....
11:42<PeterT>DaleStan: why would one have info version 5 instead of info version 7?
11:43<Pikka>peter: because there's a "5" in the header instead of a "7"?
11:43<PeterT>I thought it was some strange NFORenum version mixup :S
11:44-!-Grelouk [~Grelouk@] has joined #openttd
11:45<PeterT>I'm going to take a break
11:45<PeterT>I have to write up an essay
11:48<OwenS>Hmm, fun
11:48<OwenS>I apppear to have broken combo signals
11:48<OwenS>And entry signals
11:49<Pikka>oh well, never mind :D
11:49<OwenS>Only in the case where there are no exit signals behind them; I know my error :p
11:53<andythenorth>frosch123: the removal of that check doesn't appear to have nasty consequences for default industries
11:53<andythenorth>my tests are limited mind you :)
11:53<OwenS>YAAY! The progsigs VM just successfully executed a program :-)
11:54<Hirundo>Is the VM language turing-complete? :)
11:54<andythenorth>with 'allow multiple same industry per town' on, it's as you might expect - same industries can be adjacent
11:54<OwenS>Hirundo: Not yet
11:54<OwenS>Hirundo: For a start, no variables
11:55<frosch123>andythenorth: i guess that ttd restriction was to give them unique names
11:55<OwenS>OK, to change all references to NAND to programmable :p
11:55<Hirundo>I would scratch out the 'yet' and adhere to the KISS principle :P
11:56<OwenS>Hirundo: A few vars may turn out useful. You never know :p
11:56-!-bryjen [~bryjen@] has joined #openttd
11:58-!-HerzogDeXtEr1 [~Administr@] has quit [Read error: Connection reset by peer]
11:58<Hirundo>It'd be nice if both 'xor eax, eax' and 'mov eax, 0' would be supported ;)
11:58<OwenS>Hirundo: Huh?
11:59*Hirundo forgot that not everyone can read assembly
11:59<OwenS>I can, but don't see the relavence
11:59<Hirundo>nvm, there is none
12:01<andythenorth>frosch123: we could name them planned-economy-style: "Hindinghead Factory Number 4"
12:03-!-Chrill [] has quit []
12:07<Pikka>goodnight children
12:07-!-Pikka [] has quit []
12:11-!-Tennel [] has quit [Quit: WeeChat]
12:17-!-lewymati [~lewymati@] has quit []
12:25-!-fjb_ [] has quit [Ping timeout: 480 seconds]
12:30-!-devilsadvocate [~devilsadv@] has quit [Read error: Operation timed out]
12:39<^4VAlien^>which editors have good squirrel support ?
12:39<DaleStan><PeterT> Why would one have info version 5 instead of info version 7? <-- because you didn't use any Info version 6 or 7 features, and there was no header telling NFORenum to use any particular version.
12:40-!-elmz [] has quit [Ping timeout: 480 seconds]
12:43-!-fjb [] has joined #openttd
12:49<OwenS>Where would be an appropriate place in the saveload for saving signal programs?
12:52-!-Tennel [] has joined #openttd
12:53<Eddi|zuHause>make a new chunk?
12:53<Eddi|zuHause>and a signal_sl.cpp?
12:53<OwenS>OK, so new file :p
12:53<OwenS>Now to work out how to load complex things :p
13:01<OwenS>For a RIFF chunk, do I need to know the size of it before I write it out? It seems I do...
13:10-!-devilsadvocate [~devilsadv@] has joined #openttd
13:11<Eddi|zuHause>i'd assume the size can be fixed later
13:11<PeterT>DaleStan: Thanks
13:11<OwenS>Eddi|zuHause: Unfortunately, SlSetLength seems to just write out the length straight away. i.e, if I call it later, it seems that it will put it at the end of the chunk...
13:12<Eddi|zuHause>can't you do it as a pool or something?
13:13<Eddi|zuHause>i'd presume they have a predefined saveload function
13:14<OwenS>The chunk types are "CH_RIFF, CH_ARRAY, CH_SPARSE_ARRAY, CH_TYPE_MASK".
13:15<OwenS>I think OpenTTD makes the assumption that most data is in an array or such, which with my instructions, it isn't
13:16-!-MattD [] has joined #openttd
13:18<@Rubidium>CH_TYPE_MASK isn't a chunk type?
13:18<OwenS>Rubidium: Woops, lol
13:19<OwenS>It's in sequence with the others, no space, misread...
13:21<Muxy>Hello men
13:22<Muxy>Rubidium: what was weong with the vehicle in the "Disconnecting Road Vehicle" trouble ?
13:23-!-Timmaexx [] has joined #openttd
13:25-!-Timmaexx [] has quit [Remote host closed the connection]
13:28-!-Adambean [] has quit [Quit: Gone fishing]
13:43-!-ptr [] has joined #openttd
13:46-!-MattD [] has quit [Quit: Leaving]
13:50<OwenS>Ok, Save_SPRG written...
13:50-!-DanMacK [~DanMacK@] has joined #openttd
13:59-!-ecke [~ecke@] has joined #openttd
14:00-!-Lakie [~Lakie@] has joined #openttd
14:08-!-a1270 [] has quit [Quit: a1270]
14:13-!-lobstar [~michielbi@] has joined #openttd
14:15-!-devilsadvocate [~devilsadv@] has quit [Remote host closed the connection]
14:17-!-lobster [~michielbi@] has quit [Ping timeout: 480 seconds]
14:20-!-DaleStan [] has quit [Quit: Leaving]
14:21-!-a1270 [] has joined #openttd
14:21*andythenorth experiments with the production cb
14:22-!-Sevalecan [] has joined #openttd
14:22<Eddi|zuHause>does it blow up?
14:23<Sevalecan>is there any way through openttd.cfg to reenable changing newgrfs ingame? :P
14:23<OwenS>Sevalecan: You can still change them ingame
14:23<Sevalecan>hmm, all of the controls were grayed out on me
14:23<OwenS>That should only happen if connected to a server
14:24<Sevalecan>oh, I must've still had it in multiplayer mode ::)
14:24<Sevalecan>its working now \o/
14:28-!-IvanStepaniuk [] has joined #openttd
14:30<andythenorth>ttdp wiki: industry special flags bit 15 means "The production callback needs random bits in var. 10 (No industry has this bit set by default.)"
14:30<andythenorth>but cb 29 documentation says "Variable 18 contains 32 random bits to help randomizing the decision:"
14:31<andythenorth>are both correct?
14:31<frosch123>you are confusing production callback with change-production callback
14:31<andythenorth>that happens often :|
14:32<andythenorth>all is fine
14:33<frosch123>don't ask me though why it needs a bit to activate that
14:34<OwenS>frosch123: TTDP devs consider random bits expensive?
14:35-!-Frankr [] has joined #openttd
14:35<frosch123>i would consider calling a production callback far more expensive then doing some random
14:36-!-DanMacK [~DanMacK@] has quit [Quit: Bye for now!]
14:36<OwenS>"SignalInstruction ***i" <-- It's official. I've become a three star programmer...
14:37<frosch123>last time i had that, i changed it into **&
14:37<OwenS>I can't because it's what SmallVector gives me
14:38<OwenS>(It's in my post-load pointer fixup code)
14:45<OwenS>Whats the correct way to bail out during a load?
14:45<CIA-6>OpenTTD: translators * r19500 /trunk/src/lang/ (brazilian_portuguese.txt esperanto.txt):
14:45<CIA-6>OpenTTD: -Update from WebTranslator v3.0:
14:45<CIA-6>OpenTTD: esperanto - 2 changes by kristjan
14:45<CIA-6>OpenTTD: greek - 4 changes by
14:45<CIA-6>OpenTTD: lithuanian - 2 changes by
14:45<CIA-6>OpenTTD: brazilian_portuguese - 2 changes by leandromoh
14:51-!-fjb [] has quit [Remote host closed the connection]
14:53-!-Rhamphoryncus [] has joined #openttd
14:53<andythenorth>default industries randomise their production amounts on map generation
14:54<andythenorth>newgrf industries do not
14:54*andythenorth wonders about nfo code for that
14:55<OwenS>SignalIf* i = static_cast<SignalIf*>(i); <--- I wonder whats wrong with that code...
14:57<SpComb^>same name for both?
14:58<OwenS>SpComb^: static cast an uninitialized variable to itself...
14:58<SpComb^>doesn't make much sense to me
14:58<OwenS>SpComb^: Exactly :P
15:02<frosch123>andythenorth: i guess only for smooth economy
15:02<^4VAlien^>damn .. after 1 day my AI can: 1. build bus stations 2. ???? 3. PROFIT $$$
15:02*andythenorth tests economy settings
15:03<OwenS>Hehe. I somehow thing OpenTTD's crashdumper wasn't expecting the save process to crash :p
15:04<andythenorth>frosch123: yup you guess right
15:04<andythenorth>guess I've been playing smooth economy for years :o
15:06*andythenorth ponders some trickery with random bits in registers
15:07<IvanStepaniuk>hi there! i didn't expect so much ppl on this channel
15:07<andythenorth>hmm no cb to modify industry props 12 and 13
15:07<IvanStepaniuk>I've played ttd back in the old times, now a linux user for a decade just rediscovered this great game
15:08<andythenorth>hi hi
15:08<andythenorth>meh. randomising can wait
15:08<Alberth>the game is a bit extended in the mean time :)
15:08<IvanStepaniuk>i'd like to play multiplayer but i'm not ready to be smashed yet :P
15:09<Alberth>there are also co-operative playing style servers, I think
15:09<dih>define smashed?
15:09<dih>on some servers you will be left to your self
15:09<dih>you get to play and do your thing
15:10<Alberth>we have those servers too :)
15:10<dih>dont be discouraged in finding them :-P
15:13<IvanStepaniuk>i have a newbie question. i've noticed that when transporting passengers, they don't have a desired destination, but all the passengers in a train just get off at the same time in the first station the trains stops
15:13-!-lobstar [~michielbi@] has quit [Ping timeout: 480 seconds]
15:13<Alberth>yep, that has not changed in official openttd
15:14<Alberth>PeterT no doubt points to a experimental cargo destination branch
15:14-!-lobstar [~michielbi@] has joined #openttd
15:19-!-Frankr [] has quit [Ping timeout: 480 seconds]
15:21-!-Singaporekid [] has quit [Quit: Leaving]
15:23-!-IvanStepaniuk [] has left #openttd []
15:23-!-IvanStepaniuk [] has joined #openttd
15:24<andythenorth>so industry prop 12 and 13 control production of output cargos 1 and 2
15:24<andythenorth>(or set the initial values)
15:25<andythenorth>but cb 29 and 35 change both cargos
15:25<andythenorth>so output can't be controlled per cargo?
15:25<andythenorth>normally not an issue. Just fooling with how the oil rig produces passengers
15:26*andythenorth could use the production cb to control the passenger production
15:27<Terkhen>I never understood why the oil rig produces passengers
15:27<andythenorth>for fun
15:28<@Rubidium>Terkhen: because it accepts them?
15:28<@Rubidium>to make helicopters useful?
15:28<andythenorth>plus I think Chris Sawyer grew up in scotland....maybe it's a sentimental thing about North Sea oil
15:28<andythenorth>and what Rubidium said
15:28<andythenorth>they go they have to come out :)
15:28<andythenorth>never mind how inconsistent that is with other parts of the game resp. passengers
15:29<andythenorth>anyway my oil rig also accepts engineering supplies. I have a whole world of ship based excitement planned around that :D
15:29<andythenorth>shame that ships can't have two cargos though
15:29<IvanStepaniuk>thanks, i just hope the whole cargodist thing will be merged into trunk some day
15:30<Terkhen>yes, it is inconsistent... but giving helicopters something to do makes sense
15:30<andythenorth> were looking for a about implementing two cargos for ships in same way as planes?
15:30<IvanStepaniuk>the HQ produces passengers :)
15:30<andythenorth>some of the industries accept passengers (but don't produce them)
15:31<IvanStepaniuk>makes sense, ppl have to work there... also receive and send small amounts of mail
15:31<andythenorth>planetmaker: hi hi
15:32*planetmaker likes Oil rigs as hub terminals to exchange passengers and other cargo between companies ;-)
15:32<Alberth>outside territorial waters :)
15:34<planetmaker>hehe, pirate haven or heaven ;-)
15:35<Terkhen>andythenorth: sounds really complicated :P
15:35<andythenorth>Terkhen nah
15:36<andythenorth>how do planes do it? they just use the shadow?
15:36<Terkhen>IIRC it is the shadow what carries the second cargo, yes
15:36-!-goblin_ [] has joined #openttd
15:37<fonsinchen>I still wonder if, provided I go and fix the remaining coding style issues with cargodist, any dev would be willing to review it and help me get it ready for trunk ...
15:37<andythenorth>just do an invisible shadow for ships
15:37<andythenorth>or we could use it for smoke...
15:38<andythenorth>it's simpler than articulated rvs
15:38<planetmaker>andythenorth: it rather calls for a decent implementation of arbitrary cargo arangement than another hack extended
15:38<andythenorth>sometimes the perfect is the enemy of the good
15:38<andythenorth>how many cargos do we want a ship to carry?
15:39<planetmaker>food and goods and aluminum and steel and engineering supplies and farm supplies and fruit and ...
15:39<Alberth>4000+ (one for each container :p )
15:40<andythenorth>yeah, irl
15:40<andythenorth>and articulated ships for my log raft might be more realistic
15:40<andythenorth>but I don't really care
15:41<andythenorth>two would be plenty :)
15:41<OwenS>Alberth: IRL, of those 4000, 3999 iare "Goods" :p
15:41*andythenorth thinks about how the refit menu would work
15:41<Alberth>ok, so 2 would be adequate then :)
15:41<andythenorth>nah. two cargos sucks. Think of the refit menu....
15:41<andythenorth>32 x 32 combinations!
15:41<OwenS>It shouldn't be too much work to store two cargos?
15:42<Alberth>if you make an nfo spec change, perhaps make it 3 or 4 to be on the safe side.
15:42*andythenorth realises why planes carry either 'passengers and mail' or just one freight cargo
15:42<andythenorth>even in AV8 etc
15:42-!-Rexxars [~rexxars@] has quit [Ping timeout: 480 seconds]
15:42<andythenorth>it would be major GUI suck
15:43<OwenS>Error: NOT_REACHED triggered at line 162 of /home/oshepherd/Projects/OpenTTD/logic/src/saveload/signal_sl.cpp <- Baah
15:45<andythenorth> might a better refit GUI work?
15:46-!-IvanStepaniuk [] has left #openttd []
15:46<OwenS>andythenorth: Vehicle has slots, and you select whats in each from a combo?
15:47<Terkhen>how does refit work with trains that can carry multiple kinds of cargo?
15:47<OwenS>Terkhen: You refit to X, and those which can carry X refit
15:47<andythenorth>Terkhen: depends on what the vehicles are refittable to
15:48-!-PetahT [] has joined #openttd
15:48<andythenorth>quite often there's a bit of depot shuffling...if you want box cars with 50% cargo 1 and 50% cargo 2 for example
15:48<OwenS>Yay! Other than a small bug in my sanity checking code (i.e, i'm loading whats gotta be a pointer to an If, lets make sure it's a pointer to an If), my save load code worked first time :-D
15:48<Alberth>OwenS: something like that indeed. Would you have cargo capacities associated as well?
15:48<andythenorth>ships and planes would be best with simply 2 refit buttons
15:48<OwenS>Alberth: Hmm, thats an interesting connumdrum
15:49<andythenorth>it is tricky
15:49<Alberth>with trains we have it in the sense that each wagon has a capacity
15:49-!-PetahT [] has quit []
15:49<andythenorth>if the player can allocate capacity to each slot, then it makes set design kind of weird
15:50<andythenorth>player can buy any size ship they like. Sounds like freedom, but player freedom isn't always good for gameplay!
15:50*Alberth imagines a kind of drag/drop of capacity to configure a ship
15:50<andythenorth>while designing FISH I've had in mind 'hold capacity' and 'deck or cabin capacity'
15:51<andythenorth>this is kind of close to some real ships
15:51<Alberth>but you may be right, a user gets already to pick which ship he/she wants, that should be enough
15:52<OwenS>Hmm... Should I upload a preliminary (i.e. backends there, but gui isn't) version of the programmable signals patch to the forums or not?
15:52<andythenorth>I think it would be better to have two slots, the capacity of each is set by the newgrf designer
15:54-!-lewymati [~lewymati@] has joined #openttd
15:55<Hirundo>OwenS: I'd certainly like to take a look :)
15:55<OwenS>OK, i'll append a preliminary version to the NandNG topic
15:58*andythenorth tries to understand aircraft code
16:00-!-devilsadvocate [~devilsadv@] has joined #openttd
16:00<andythenorth>aircraft code looks like it was written with some love :)
16:02<OwenS>Hmm, how often is the Git repo updated?
16:03-!-fonsinchen [] has quit [Ping timeout: 480 seconds]
16:03<frosch123>do they still use Finite sTate mAchines?
16:03<frosch123>yup, still FTA :p
16:04<planetmaker>dunno... is that supposed to change?
16:05<frosch123>oh, it is an Automata
16:06<Alberth>OwenS: with each commit, afaik
16:06<OwenS>Alberth: Yeah, seems my config was wrong
16:06<OwenS>"git pull origin master" wasn't merging in changes :s
16:07<OwenS>New patch 73k, old 39k. I'm surprised the change from NAND -> Prog is so little
16:10-!-Rexxars [~rexxars@] has joined #openttd
16:10<Hirundo>first thing that struck me: what is the point of SetOtherNext? Is other->SetNext so bad?
16:11<OwenS>Hirundo: It's protected; can't access it. Perhaps I should have just made it all public
16:11<OwenS>Though generally code shouldn't be randomly setting the Next/Previous values
16:12<Hirundo>SetOtherNext does just that, as far as I can tell
16:13<OwenS>Hirundo: Because it's implemented in SignalInstruction, rather than a subclass, it can access it. C++ access rules are weird
16:16-!-devilsadvocate [~devilsadv@] has quit [Read error: Connection reset by peer]
16:16<Hirundo> may be a good read, at least the sections regarding comments, pointers and order of members in class definitions
16:17-!-devilsadvocate [~devilsadv@] has joined #openttd
16:17<OwenS>Hirundo: Aah, goot catch on the pointers
16:20<Hirundo>SignalSimpleCondition is the only descendant of SignalCondition?
16:20<OwenS>Hirundo: For now
16:20<OwenS>I'll probably add logical operators and such in future
16:23-!-Frankr [] has joined #openttd
16:23<Hirundo>Also, (as per coding style) please use this->Method() instead of just Method(), it increases readability
16:25<Hirundo>The code should not leak signals, instead of cleaning them up when saving
16:25<OwenS>Hirundo: Thats there to check, I do intend to go through and make sure it doesn't leak
16:25<OwenS>I've made sure that rail_cmd's commands don't leak
16:25*andythenorth wonders where oil rig passenger production will cap out
16:26<OwenS>(It's an error debug for a reason!)
16:28-!-bryjen [~bryjen@] has quit [Quit: Leaving]
16:28<andythenorth>frosch123: industry prod. multipliers would be useful to see in debug
16:29<frosch123>aren't they displayed if you enable the change production cheat?
16:29<frosch123>(though maybe that is disabled for newgrf stuff)
16:30<Yexo>it's enabled, it just often doesn't work as you would expect
16:30<Yexo>due to newgrfs ignoring the old value ahd computing the new one from other values
16:30<frosch123>it does definitely not work if the industry does production by production callback only
16:32*andythenorth could do with some help on oil rig PAX, but thinks it will be dull for the rest of you :o
16:34-!-lugo [] has quit [Ping timeout: 480 seconds]
16:35<Hirundo>What are the tile/track variables on the SignalVM used for?
16:35<OwenS>Hirundo: Nothing at present
16:36<Hirundo>Also please use the SignalState (IIRC) enum instead of booleans to store the signal state
16:37<OwenS>Hirundo: Will do. I misremembered that enum being more complex
16:38-!-lugo [] has joined #openttd
16:39-!-lewymati [~lewymati@] has quit []
16:41<Hirundo>By the name of it, I would have expected SignalVM to be more than a container
16:41<OwenS>Perhaps I should move RunSignalProgram's body into it
16:43<Yexo>Hirundo: /* While loops are supported as well: */ <- any ideas on how to support while loops in nfo?
16:43<Hirundo>Action9 can jump backwards
16:43<Yexo>does that work properly?
16:43-!-lewymati [~lewymati@] has joined #openttd
16:44<Hirundo>At least, Ammler's base cost grf uses it IIRC
16:44<Hirundo>OwenS: That's what I thought
16:44<frosch123>it works likely better in ottd than ttdp
16:46<Yexo>Note that it is generally not safe to skip backwards, i.e. to an earlier position. While the patch will happily do that, you will get strange results if certain actions are repeated. Only action 0, 6, 7, 9, C and D are reasonably safe to execute more than once. <- from the spec
16:48<frosch123>i guess B and E are also safe, but pointless :)
16:49<Hirundo>Perhaps a patch dev (dalestan?) could provide more info
16:49<Yexo>action0 is pointless to if you don't use an action6 to rewrite it
16:50<Yexo>so that leaves no reason to support a while loop
16:50<frosch123>Hirundo: ottd only reads the sprites and then build a structure in memory for everything. but for ttdp the actions are already the structure
16:50-!-woldemar [~osaka@] has quit [Quit: ですは滑稽じゃないです。私は本気です。]
16:51<frosch123>that is everything needed outside of grf loading (in game) cannot be looped, as it exists only once
16:51*andythenorth might be missing the point here, but a while loop in varact 2 is possible
16:51<Yexo>this wasn't about varact 2 :)
16:51<Yexo>although I'm interested in how that would work
16:52<frosch123>andythenorth: it is not possible
16:52<Hirundo>is it in varact2? I thought one could only jump backwards
16:52<frosch123>unless you mean the "again" flag of production callback
16:52<Hirundo>Yexo: combining Action0 with Action6 is the main point, apart from some difficult ActionD arithmetic
16:53<Yexo>oh, I didn't think about repeating ActionD
16:53<Yexo>that might be useful indeed
16:54<Yexo>Hirundo: I'm going to try and avoid Action6 as long as possible
16:54<Hirundo>one could work with arrays that way, although I don't know how useful that would be
16:54<Yexo>haven't found a case yet where you NEED action6
16:54<Hirundo>Simple one: If parameter[a
16:54<Hirundo>if parameter a > parameter b
16:55-!-lobstah [~michielbi@] has joined #openttd
16:55<Yexo>oh, for action0s indeed :(
16:55<Yexo>was just thinking about varact2
16:56<planetmaker>Yexo: look also at my snow line height mod. I use one HUGE action6 in order to create the snow line as a function of parameters
16:57<planetmaker>but that's an action0, too, IIRC
16:58<Hirundo>wrt coding airports, getting varact2 working is the main thing
16:58-!-lobstar [~michielbi@] has quit [Ping timeout: 480 seconds]
17:00-!-woldemar [~osaka@] has joined #openttd
17:02-!-bryjen [~bryjen@] has joined #openttd
17:02<OwenS>Hmm... How should I handle strings like "If <condition> Then"?
17:02<OwenS>Where condition itself should also be a string
17:03<Hirundo>If {STRINGX} Then, with X being the number of parameters that the substring takes
17:03<OwenS>...I don't know how many it takes
17:04<frosch123>then render the substring into a buffer, and include that one as RAWSTRING
17:04<OwenS>OK :-)
17:04-!-lugo [] has quit [Ping timeout: 480 seconds]
17:05<Yexo>planetmaker: snow line height is a tricky one
17:05<frosch123>iirc cargo suffixes in industry gui are an example, if you need one :)
17:05<planetmaker>Yexo: well... depends :-)
17:05<planetmaker>I mastered it once ;-)
17:05<Yexo>it not only uses action6, it also uses the feature that if you write more then 4 bytes the next parameter is taken
17:06<planetmaker>ah, yes
17:06<frosch123>Yexo: you could also only replace one value per iteration and execute both the action6 and snowline-action0 12*32 times
17:06<planetmaker>so it's a mean test case ;-)
17:07<frosch123>hmm, but then you need an action6 to write the offset into the action6...
17:08<frosch123>i guess that is no useful case either :p
17:08<Yexo><frosch123> Yexo: you could also only replace one value per iteration and execute both the action6 and snowline-action0 12*32 times <- that is a good idea
17:08<Yexo>at least it sounds easier to support :p
17:09<frosch123>i guess it is not, you can only set the whole snow line table with one big action0, and i cannot imagine how you would specify to replace different parts of that per iteration
17:09<planetmaker>well... line 207ff: I write in 4 byte chunks only
17:09<frosch123>except you add arrays or so :p
17:11<planetmaker>I thought about using that sort-of overflow with more than 4 bytes but it seemed too fishy to me ;-)
17:12<andythenorth>hmmm did recent nightlies get more....crashy? Sorry no crash log, they're just bombing :|
17:14<@Rubidium>andythenorth: when messing with NewGRFs?
17:14<andythenorth>yes and no
17:14<andythenorth>do they ever reload a newgrf without player intervention (or game load?)
17:15<@Rubidium>no, but there might be cases where "broken" NewGRFs can kill OpenTTD
17:15<Yexo>not "might be", there "are" cases where that happens
17:15-!-lobstah is now known as lobster
17:16<Yexo>using 80 as byte in an industry name action0 for exmaple causes a crash in the language code with an error about invalid language files
17:18<Yexo>Hirundo: you document has no syntax for action0
17:18<Yexo>or at least I couldn't find it
17:19<Yexo>oh, nvm
17:19<Hirundo>^^what you said :)
17:20<Yexo>my browser search was case sensitive, forgot to uncheck that box
17:21<Yexo>does the order of action0 and action1/2 matter? I mean is action1 > action2 > action0 > action3 a valid order to write them in?
17:22<andythenorth>I do it differently, think Pikka does it differently again
17:23<frosch123>i guess action0 before action3 is generally a good idea
17:23<Yexo>action1 before action2, action 0 before action3, obviously also action2 before action3
17:23<Yexo>^^ is that all?
17:23<Yexo>action4 before an action0 that references it
17:23-!-heffer [] has quit [Quit: heffer]
17:24<Yexo>or should it be after?
17:24<andythenorth>I do it after, but that's just habit
17:24<andythenorth>Pikka puts all his strings together
17:25<andythenorth>as does FIRS actually
17:25<frosch123>i am not sure, but iirc there are some cases where ids are defined via action 0 and are only valid afterwards
17:25<frosch123>so i guess 1, 2, 7, 0, 3, 4, 10
17:26-!-Polygon [] has joined #openttd
17:27<frosch123>and maybe also: cargotranstable, railtranstable, cargostuff, industrytilestuff, rest
17:28<Yexo>frosch123: I think I'll just put all stirng together at the end of the nfo, easier to code
17:28<Yexo>and shouldn't matter
17:28<Yexo>not skipping those is no problem
17:28<frosch123>maybe also better for translators :)
17:28<Yexo>the actual strings will go in a seperate file anyway :)
17:28<frosch123>not skipping them is a problem for vehicles
17:29<Yexo>and another special case to handle ... :(
17:29<Yexo>directly after the action0 it is then
17:31<andythenorth>Yexo: this is my preferred format:
17:31<andythenorth>it's only due to habit I guess though
17:31<Yexo>andythenorth: I don't really care if the resulting nfo is easy to read or nice, just that it works (preferable in both ttdpatch and openttd)
17:33<andythenorth>FIRS uses a lot of CPP stuff, and the action structure is far less important in that case
17:34<andythenorth>Yexo: what exactly are you working on? I'm guessing it 's an abstraction of some sort, but what would you call it?
17:34<Yexo>an nfo-meta language
17:34<Yexo>Hirundo has written a proposal here
17:34<Hirundo>My overnight written document is suddenly a proposal? sweet! :P
17:35<Yexo>how would you call it then?
17:35<andythenorth>is it likely that someone using that would have to look at the resulting nfo to deal with errors found by renum? Or would you plan to eliminate that step?
17:35<planetmaker>"spill of thoughts"? ;-)
17:35<Yexo>I hope to eliminate that step
17:36<frosch123>Hirundo: my over-afternoon written proposal was suddenly a ttdp/ottd/newgrf-spec controversy
17:36<Yexo>you don't write any nfo yourself, so you shouldn't get renum warnings :p
17:37<andythenorth>Yexo: good luck :)
17:37<frosch123>hmm, i have a half-finished grf encoder lieing somewhere...
17:37-!-|Terkhen| [] has joined #openttd
17:37<andythenorth>Yexo: meanwhile your debug 'hack' just saved me about an hour (I estimate)
17:38<Hirundo>frosch123: What does that 'grf encoder' take as its input?
17:38-!-Terkhen is now known as Guest1802
17:38-!-|Terkhen| is now known as Terkhen
17:38<frosch123>i guess std::vector<uint8> or so
17:38<Yexo>andythenorth: what I already have:
17:39<frosch123>maybe also just (uint8 *, uint len)
17:39<Yexo>but I'm going to use Hirundo's syntax, that's much better
17:39<frosch123>Hirundo: i started from the idea to automatically decide for 01 or 09 for realsprites
17:40<planetmaker>Hm... maybe that should be written down on a wiki page? Like rail types was proposed there?
17:41<Yexo>frosch123: 01 or 09? do you mean action0 or actionA ?
17:41<frosch123>no, realsprite compression :)
17:41<Yexo>oh, that :)
17:41<andythenorth>what is the purpose of compression?
17:41<andythenorth>does it save bandwidth, or memory or what?
17:41<andythenorth>in this case I mean, I know the general purpose :)
17:41<frosch123>decrease spritesize, and in case of ttdp increase drawing speed
17:41-!-Guest1802 [] has quit [Ping timeout: 480 seconds]
17:42<andythenorth>if I compress more, does Bananas consume fewer resources?
17:42<OwenS>(Heh, so TTD's sprite drawing is. like graphics cards, faster with compression)
17:42<Hirundo>Regarding real sprites, is there a tool available that allows selecting rectangles from a pcx and create the realsprites automagically?
17:42<planetmaker>Hirundo: not that I know.
17:42<frosch123>OwenS: it is raw data vs. run length encoding
17:43<planetmaker>Also... it wouldn't make much sense: compression and esp. the offsets cannot be auto-set
17:43-!-^4VAlien^ [] has quit []
17:43<Hirundo>Preferably using templates for tiles / vehicles to set xrel/yrel with drag and drop
17:43<OwenS>Hmm... I'm gonna have to cache the instructions inside the window so I can have useful indexes
17:43<frosch123>Hirundo: there are various tools of that kind, but imo they are all useless
17:43<planetmaker>The better way is actually to use a reasonable template - and stick to that for every vehicle
17:43-!-Doorslammer [Doorslamme@] has quit [Ping timeout: 480 seconds]
17:43*andythenorth agrees with planetmaker
17:43<frosch123>i guess best is to make a '#include <pikkatemplates>"
17:43<Hirundo>Regarding compression, it could try compressing sprites either way and see what's smaller
17:44<andythenorth>being able to tweak offsets in game, as Firebug can tweak html/css would be useful
17:44<andythenorth>obviously no need to save them
17:44<frosch123>yeah, actually deciding between 00, 01 and 09 is the easier part of encoding :)
17:45<frosch123>but iirc i messed up the other compression step
17:45<Hirundo>which other step?
17:47<frosch123>for realsprites there is a second compression for storage in file
17:47-!-irid [] has left #openttd []
17:48<frosch123>a usual compression algorithm with copying previous content, with a weird exception that it can also copy the just copied content or so
17:48<Hirundo> <- as described here?
17:49<asilv><andythenorth> being able to tweak offsets in game, as Firebug can tweak html/css would be useful <-ttdp has that, it's very useful, pretty much only reason i have ttdp installed
17:49<frosch123>yes, but i consider that description quite unreadable :)
17:49<Alberth>Yexo: FYI, with GRL, I found out how to generate NFO from a higher level language, including action 6
17:49<frosch123>it took me various tries to get grf2html right
17:49-!-lobster [~michielbi@] has quit [Ping timeout: 480 seconds]
17:49<andythenorth>asilv: no TTDP for OS X :|
17:50<andythenorth>I could use wine I guess
17:51<frosch123>i thought none of your grfs work in ttdp :p
17:51-!-Eddi|zuHause [] has quit [Read error: Connection reset by peer]
17:51<Yexo>Alberth: thanks, reading it now
17:51-!-Eddi|zuHause [] has joined #openttd
17:51<andythenorth>frosch123: I knew there was a reason I don't use TTDP :)
17:52-!-oskari89 [] has quit []
17:52-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
17:54-!-lobster [~michielbi@] has joined #openttd
17:55<andythenorth>so TTDP has a pixel offset tweaker?
17:55*andythenorth (couldn't find it on the TTDP wiki)
17:55<planetmaker>it's surely written *somewhere*
17:56-!-Dred_furst [] has joined #openttd
17:57-!-Hyronymus [] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]]
17:58-!-TheMask96 [] has joined #openttd
17:59<Hirundo>I guess all newgrf compiler writers suffer from the NIH (Not Invented Here) syndrome, given the amount of times the wheel has been reinvented
18:00<Alberth>nope, they underestimate the size of the NFO language
18:00-!-lugo [] has joined #openttd
18:00<OwenS>And the unusualness of it :p
18:01*andythenorth writes some nfo before it goes extinct :P
18:01<andythenorth>you will pry these bytes from my cold dead hands!
18:02<andythenorth>but not the dwords. You can have those.
18:03-!-Grelouk [~Grelouk@] has quit [Read error: Connection reset by peer]
18:06-!-Tennel_ [] has joined #openttd
18:08-!-Tennel_ [] has quit []
18:08-!-Tennel_ [] has joined #openttd
18:09<andythenorth>does it apply only in that window? Or does it apply to sprites being rendered on the landscape?
18:09-!-Brianetta [] has joined #openttd
18:09<frosch123>the former would be quite useless :p
18:09<asilv>rendered sprites
18:09<andythenorth>that would be mighty useful
18:09<frosch123>then code it for ottd :)
18:10-!-Tennel_ [] has quit []
18:10-!-Rhamphoryncus [] has quit [Quit: Rhamphoryncus]
18:10<andythenorth>I've managed nearly a whole weekend of suggestions before anyone said that :) A record!
18:10<asilv>i have been thinking about it, but so far i have never bothered to try it
18:11<asilv>coding it for ottd that is
18:11*andythenorth goes and figures out why some nfo errors have appeared 'as if from nowhere' :|
18:12<andythenorth>I have a rather ruder word for them
18:12-!-Tennel [] has quit [Ping timeout: 480 seconds]
18:12-!-Alberth [] has left #openttd []
18:12<andythenorth>planetmaker: my FIRS error count is now 5. I was keeping it to 0
18:12-!-DanMacK [~DanMacK@] has joined #openttd
18:12<andythenorth>my version of renum doesn't recognise var 5F. That accounts for two of the errors
18:13<andythenorth>/!!Warning (86): Offset 32: Testing nonexistant variable 5F.
18:13*andythenorth ponders looking for an updated renum
18:13-!-DanMacK [~DanMacK@] has quit []
18:13<planetmaker>just download it...
18:15<Yexo>nforenum supports var 5F only for some features
18:16<Yexo>it's supported for features 0-7 and 9
18:19-!-frosch123 [] has quit [Remote host closed the connection]
18:20<andythenorth>@seen DaleStan
18:20<@DorpsGek>andythenorth: DaleStan was last seen in #openttd 5 hours, 40 minutes, and 28 seconds ago: <DaleStan> <PeterT> Why would one have info version 5 instead of info version 7? <-- because you didn't use any Info version 6 or 7 features, and there was no header telling NFORenum to use any particular version.
18:22<andythenorth>planetmaker: now 2 FIRS errors - both var 5F not recognised :) Ammler will be pleased
18:29<planetmaker>yes, I get two, too
18:38-!-fonsinchen [] has joined #openttd
18:39-!-Neon [] has quit [Quit: Something strange must have happened...]
18:42<andythenorth>planetmaker: all stockpile limits now eliminated from FIRS
18:44<planetmaker>\o/ :-)
18:44<planetmaker>and another milestone bullet point closed, eh? :-)
18:46-!-Lachie [] has joined #openttd
18:48-!-rhaeder [] has joined #openttd
18:49-!-Tennel [] has joined #openttd
18:55<OwenS>I wish changing english.txt didn't make you recompile so much
18:56-!-asilv [] has quit []
18:56-!-lewymati [~lewymati@] has quit []
18:58<OwenS>WHOO! programmable_signals_gui is now listing instructions correctly
18:58-!-Polygon [] has quit [Remote host closed the connection]
19:00-!-__ln__ [] has quit [Ping timeout: 480 seconds]
19:01<@Rubidium>OwenS: be happy it doesn't recompile everything anymore
19:01-!-PeterT_ [] has joined #openttd
19:02-!-PeterT_ is now known as Guest1805
19:02-!-Guest1805 [] has quit []
19:02-!-Pe1erT [] has joined #openttd
19:03-!-Cybertinus [] has quit [Remote host closed the connection]
19:04-!-Pe1erT [] has quit []
19:04-!-__ln__ [] has joined #openttd
19:05<OwenS>Latest revision of progsigs patch is attached at
19:09<andythenorth>PeterT: have you finished your grf yet?
19:13<PeterT>andythenorth: haven't done anything with it since this morning
19:13<PeterT>I've been really busy
19:19-!-aber [] has quit [Quit: Leaving.]
19:24-!-goblin_ [] has quit [Remote host closed the connection]
19:28-!-Biolunar [] has quit [Quit: gn8]
19:29-!-Starn [] has joined #openttd
19:30-!-Tennel [] has quit [Ping timeout: 480 seconds]
19:31<Terkhen>good night
19:31-!-Terkhen [] has quit [Quit: ...]
19:32-!-Tennel [] has joined #openttd
19:32-!-fonsinchen [] has quit [Ping timeout: 480 seconds]
19:36-!-Progman [] has quit [Remote host closed the connection]
19:52-!-bryjen [~bryjen@] has quit [Quit: Leaving]
20:02-!-Jupix [] has quit [Remote host closed the connection]
20:02-!-Jupix [] has joined #openttd
20:08-!-Eddi|zuHause [] has quit []
20:09-!-Eddi|zuHause [] has joined #openttd
20:10-!-Tennel [] has quit [Quit: WeeChat]
20:13-!-Coco-Banana-Man [] has quit [Quit: Regel Nr. 1: Jeder hört auf mein Kommando! - Regel Nr. 2: Jeder bleibt auf dem Weg! - Regel Nr. 3: ... ... Der, der bläht, als hinterster geht!]
20:40-!-Starn [] has quit [Ping timeout: 480 seconds]
20:45-!-APTX_ [] has joined #openttd
20:45-!-APTX [] has quit [Read error: Connection reset by peer]
20:50-!-ajmiles [] has quit [Quit: Leaving]
20:53-!-ProfFrink [] has joined #openttd
20:55-!-OwenS [] has quit [Remote host closed the connection]
20:56-!-Dred_furst [] has quit [Ping timeout: 480 seconds]
21:00-!-Prof_Frink [] has quit [Ping timeout: 480 seconds]
21:00-!-ProfFrink is now known as Prof_Frink
21:02-!-KritiK [] has quit [Quit: Leaving]
21:19-!-Frankr [] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]]
21:26-!-KenjiE20 [~KenjiE20@] has quit [Quit: おやすみ]
21:45-!-ptr [] has quit [Quit: Zzzzzz]
22:05-!-Eddi|zuHause [] has quit [Remote host closed the connection]
22:05-!-Eddi|zuHause [] has joined #openttd
22:07-!-Brianetta [] has quit [Quit: Tschüß]
22:14-!-JVassie_ [] has joined #openttd
22:21-!-JVassie [] has quit [Ping timeout: 480 seconds]
22:31-!-Lakie [~Lakie@] has quit [Quit: Sleep.]
22:39-!-Eoin [] has quit []
22:41-!-Fuco [] has quit [Ping timeout: 480 seconds]
22:43-!-DaleStan [] has joined #openttd
22:59-!-JVassie_ [] has quit [Ping timeout: 480 seconds]
23:07-!-MeCooL [mecool@] has quit [Ping timeout: 480 seconds]
23:36-!-ecke [~ecke@] has quit [Read error: Connection reset by peer]
23:45-!-glx [glx@2a01:e35:2f59:c7c0:ade2:236d:c97d:ebbe] has quit [Quit: bye]
---Logclosed Mon Mar 22 00:00:22 2010