IRC logs for #openttd on OFTC at 2016-09-21
            
00:00:24 <FLHerne> Both of those objects are from OpenGFX+ Landscape
00:00:44 <FLHerne> The turbine has all sorts of weird NML to pick a ground tile, which is apparently buggy
00:01:05 <FLHerne> Rocks can be built on water, but don't seem to detect when their tile is flooded
00:01:14 <FLHerne> Actually, that might be an OTTD limitation
00:02:00 <FLHerne> Not sure you _can_ detect 'this tile ought to be flooded now'
00:02:20 <FLHerne> So, just destroy it, wait until the tile's flooded, rebuild the rocks prettily
00:04:00 <FLHerne> I don't see how the coast-ness, or graphical appearance, of the tiles you're mentioning is at all relevant
00:04:06 *** sla_ro|master has quit IRC
00:05:03 <Samu> it's the newgrf that's buggy?
00:05:34 <FLHerne> Yes
00:05:55 <FLHerne> Well, for the rocks it could be that the NewGRF interface isn't flexible enough
00:06:23 <FLHerne> I can't think how to make those work 'right', but ask someone who knows
00:06:48 <Samu> i was checking the DoFloodTile and DoDryUp
00:07:02 <Samu> MP_OBJECT is totally ignored
00:07:24 <FLHerne> Oh, that's odd https://dev.openttdcoop.org/projects/ogfx-landscape/repository/entry/src/wind-powerplant.pnml
00:07:58 <FLHerne> Line 96 suggests you shouldn't be able to build it on steep slopes at all
00:08:57 <FLHerne> planetmaker coded that object, ask him
00:09:07 <Samu> what is the tiletype that is checked?
00:09:15 <Samu> that tile is water, and a coast
00:09:35 <Samu> steep coast tile
00:22:39 *** Biolunar has quit IRC
00:30:08 *** HerzogDeXtEr has quit IRC
00:31:20 <Samu> alright, thx for helping me on that
00:31:56 <Samu> i guess i better not touch on object part of the code that much, from openttd side, at least
00:35:13 <Samu> there's no more room for station types
00:35:43 <Samu> the other day i was thinking locks as waypoints
00:36:11 <Samu> but there's no more bits to store another station type
00:48:50 *** gelignite has quit IRC
00:49:18 *** supermop has quit IRC
01:11:29 *** Flygon has joined #openttd
01:16:10 *** FLHerne has quit IRC
01:17:04 *** kamcio96 has quit IRC
01:20:20 *** kamcio96 has joined #openttd
01:40:59 *** kamcio96 has quit IRC
01:49:58 *** THERetroGamerNY has joined #openttd
01:54:33 *** THERetroGamerNY has quit IRC
02:07:54 *** Samu has quit IRC
02:21:33 *** Gja has quit IRC
02:23:26 *** glx has quit IRC
02:31:14 *** JezK_ has joined #openttd
02:54:19 *** Supercheese has joined #openttd
03:28:01 *** LadyHawk- has joined #openttd
03:32:44 *** LadyHawk has quit IRC
03:32:44 *** LadyHawk- is now known as LadyHawk
03:32:51 *** mindlesstux_ has joined #openttd
03:38:07 *** mindlesstux has quit IRC
03:38:07 *** mindlesstux_ is now known as mindlesstux
05:13:51 *** smoke_fumus has quit IRC
07:28:02 *** andythenorth has joined #openttd
07:45:03 *** efess has quit IRC
08:02:35 *** andythenorth has quit IRC
08:13:20 <peter1138> heh, rollercoaster tycoon 2 in the humble bundle
08:17:53 *** sim-al2 has quit IRC
08:30:58 *** sla_ro|master has joined #openttd
09:00:37 *** supermop has joined #openttd
09:37:12 *** efess has joined #openttd
09:54:01 *** Wolf01 has joined #openttd
09:54:39 <Wolf01> o/
09:58:40 *** JacobD88 has joined #openttd
10:02:38 *** Biolunar has joined #openttd
10:07:17 *** JezK_ has quit IRC
10:08:00 <peter1138> oops i accidentally it
10:08:32 <Wolf01> You accidentally what?
10:09:22 <peter1138> a sucker for humble bundles
10:10:20 <Wolf01> I think I'll pass this round, already own some games and I'm not a great fan of the others
10:14:39 *** JacobD88 has quit IRC
10:20:13 *** andythenorth has joined #openttd
10:20:46 <Wolf01> o/
10:21:04 <Wolf01> andythenorth, did you see this? https://www.flickr.com/photos/127034593@N02/sets/72157670776110614
10:21:21 <andythenorth> yes :) yesterday
10:21:38 <andythenorth> it’s nicely done, I don’t get excited about fire trucks though
10:21:42 <Wolf01> At first I was "wtf does a rc model on this lego blog?"
10:22:05 <andythenorth> classic brick built
10:22:18 <Wolf01> Model team
10:22:33 <Wolf01> I really liked that back in time
10:22:50 <Wolf01> (I only have the highway truck)
10:24:22 <Wolf01> Too bad the Creator ones of today are really static, they could have put at least some steering, they still use technic bricks to build the frame
10:24:53 <andythenorth> we have the blue pickup truck with quad bike on a trailer
10:25:01 <andythenorth> that has suspension and steering
10:25:31 <andythenorth> http://brickset.com/sets/5893-1/Off-Road-Power
10:25:42 <andythenorth> almost model team
10:25:50 <peter1138> too big for minifigs (wolf01's link)
10:25:59 <peter1138> as is that link
10:26:53 <Wolf01> Every thing they make now is not anymore minifig scale, you need to go to City theme to fins something suitable
10:27:17 <andythenorth> bring back classic space
10:27:32 <Wolf01> They even removed Technic figs because "they limited us on the proportions"
10:28:03 <Wolf01> andythenorth, https://www.flickr.com/photos/frombol a friend of mine
10:28:27 <andythenorth> very classic
10:36:45 <peter1138> i never had technic figs
10:37:22 *** Supercheese has quit IRC
10:37:29 <Wolf01> I have 4 of them, and they used to fit every single Technic model they made
10:40:56 <andythenorth> only for a few years :)
10:41:05 <andythenorth> in the early 90s
10:41:18 <Wolf01> https://www.kickstarter.com/projects/1135315686/flexo-bendable-bouncy-flexible-building-bricks <- for truck suspensions?
10:42:10 <andythenorth> maybe
10:42:13 <andythenorth> or GBC modules
10:42:21 * andythenorth has to build a GBC module this morning
10:43:13 <Wolf01> I'm still trying to put a servo inside the Claas Xerion...
10:44:27 <Wolf01> And yesterday I just found that I added a differential on the back and it blocked the steering
10:52:40 *** tokai|noir has joined #openttd
10:52:41 *** ChanServ sets mode: +v tokai|noir
10:59:16 *** tokai has quit IRC
11:04:56 *** supermop_ has joined #openttd
11:11:22 *** supermop has quit IRC
11:13:26 <peter1138> hmm, too many apps on my phone
11:13:29 <peter1138> no
11:13:31 <peter1138> hmm, too many apps on my watch
11:13:40 <peter1138> app list takes ages to scroll through :(
11:13:54 <Wolf01> Looks like my keyboard :)
11:15:37 <Flygon> GBC module?
11:15:37 <Flygon> We're porting OpenTTD to the Game Boy Color? :D
11:15:52 <Wolf01> Naj, just crazy machines in lego
11:16:12 <Flygon> Wouldn't it be smarter to port to the 32x? 256 colour framebuffer, plenty of on-cart RAM :)
11:16:13 <Flygon> Aw :D
11:16:57 <Wolf01> But remember to use eeprom to save, not battery powered ram
11:17:00 <Wolf01> XD
11:17:16 <Wolf01> (I lost all Pokémon saves :((( )
11:21:06 <peter1138> heh
11:36:02 *** supermop has joined #openttd
11:41:01 <Flygon> Wolf01: I should look into if our guy will do 1mbyte ROM, 128kb EEPROM, and 32kb SRAM :U
11:41:14 <Flygon> The SRAM for RAM purposes, not Saving :U
11:42:22 *** supermop_ has quit IRC
11:54:19 <Wolf01> I think the top we can get for GBC is like this http://www.indieretronews.com/2016/02/railways-railroad-management-game-in.html
12:08:23 *** kamcio96 has joined #openttd
12:38:43 <Wolf01> Today I'll do some nonsense on OTTD, I'll tell what only if the outcome pleases me
12:43:02 *** smoke_fumus has joined #openttd
12:57:59 *** NoShlomo has joined #openttd
13:10:59 *** Samu has joined #openttd
13:11:08 <Samu> hello
13:35:13 <Samu> CommandCost ret = DoCommand(tile, 0, 0, flags | DC_AUTO, CMD_LANDSCAPE_CLEAR);
13:35:24 <Samu> ret = DoCommand(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
13:35:49 <Samu> what's the difference between flags | DC_AUTO and flags
13:35:52 <Samu> ?
13:36:40 <Wolf01> That | DC_AUTO adds that flag to flags
13:37:33 <Wolf01> *without changing the flags value
13:38:30 <Samu> in practice, what does one clear that the other does not?
13:39:17 <Samu> it says DC_AUTO = 0x002, ///< don't allow building on structures
13:39:28 <Samu> but the command is about landscape clearing
13:39:41 <Samu> a bit confused
13:40:12 <Wolf01> Maybe you aren't allowed to clear a tile with a structure on it?
13:44:48 <Samu> i can't find any difference, with or without DC_AUTO
13:44:53 <Samu> i must be missing something
13:54:59 <Samu> i found this Company *c = (flags & (DC_AUTO | DC_BANKRUPT)) ? NULL : Company::GetIfValid(_current_company);
13:56:11 <Samu> it made 2 ? NULL : Company::GetIfValid... etc
13:56:34 <Samu> it's about checking clearing limits
14:01:48 <Wolf01> Shit, I'll need to move a lot of features to button to get rid of the CTRL key
14:20:11 *** supermop_ has joined #openttd
14:26:08 *** supermop has quit IRC
14:31:36 <Wolf01> Pointers fuck me right :|
14:32:16 *** sim-al2 has joined #openttd
14:32:53 <Samu> what?
14:34:29 <peter1138> biscoff
14:34:30 <Wolf01> I need to pass a pointer to a function, but the other function returns a value not a pointer
14:34:36 <peter1138> are dangerous
14:35:47 <Wolf01> Maybe with some & int will work
14:35:52 <Wolf01> *it
14:36:43 <Samu> http://imgur.com/a/BbUqi - I'm currently trying to automatically build canals when placing water construction stuff on land
14:37:04 <Wolf01> Ok, got it
14:37:36 <Samu> (with the hopes that someone in charge of openttd reduce canal costs)
15:03:01 <Wolf01> Wow... I made.. something
15:04:18 *** Flygon_ has joined #openttd
15:06:14 <Wolf01> I got "Datatype misalignment" XD
15:11:07 *** Flygon has quit IRC
15:46:18 *** sim-al2 has quit IRC
15:50:24 <supermop_> good morning
15:56:42 *** JacobD88 has joined #openttd
15:58:36 *** JacobD88 has quit IRC
16:10:06 *** kamcio96 has quit IRC
16:14:48 <Wolf01> I managed to get a "fill area" with terraform tools
16:15:31 <andythenorth> o_O
16:16:30 <Wolf01> But not really a fill area, more like a invert height of the area, so you start with a hole and you get a cliff of the same shape XD
16:16:41 <Wolf01> Which is cool
16:16:51 <Wolf01> Works also the other way
16:17:17 <Wolf01> Btw, it's not my goal
16:17:44 <Wolf01> Also is extremely dangerous on flat maps
16:17:59 <Wolf01> (you will raise the whole map)
16:21:25 *** andythenorth has quit IRC
16:36:17 *** Alberth has joined #openttd
16:36:17 *** ChanServ sets mode: +o Alberth
16:36:28 *** JacobD88 has joined #openttd
16:36:30 <Alberth> o/
16:37:31 <Wolf01> o/
16:59:53 *** JacobD88 has quit IRC
17:02:59 *** Gja has joined #openttd
17:14:47 <Wolf01> Is the foundation only drawn by what is over the tile?
17:24:43 *** supermop has joined #openttd
17:30:00 <V453000> FOUNDATIONS ARE FUCK
17:30:09 <V453000> don't enter that river Wolf01
17:30:13 <V453000> or get serious help from fro
17:30:15 <V453000> sch
17:30:19 <peter1138> foundations don't exist
17:30:52 *** supermop_ has quit IRC
17:30:59 <Wolf01> Ok, so no steep slopes without anything on them :P
17:41:50 <Eddi|zuHause> you mean cliffs, not steep slopes
17:42:58 <Wolf01> I wanted to try double height slopes, but that was too much and I tried to use foundations instead
17:43:32 <Wolf01> Just to make V do more work on the baseset :>
17:51:00 *** TheMask96 has quit IRC
17:52:37 <Samu> what's a foundation and what's a half-tile
17:53:12 <Samu> There is no HasTileFoundation function :(
17:53:18 <Samu> what would be the equivalent?
17:54:22 <Samu> there is a GetFoundationSlope which is always returning me a SLOPE_FLAT...
17:56:01 *** TheMask96 has joined #openttd
17:59:16 <Samu> HasFoundationNE(tile, GetTileSlope(tile), GetTileZ(tile)) what is this gonna get me
18:04:59 *** andythenorth has joined #openttd
18:16:14 *** Arveen has joined #openttd
18:24:07 <Alberth> o/
18:24:23 <andythenorth> o/
18:32:00 <supermop> 10/
18:33:26 <andythenorth> tramz
18:35:43 <supermop> 10/8
18:36:17 <Samu> GetFoundationSlope does what I want
18:36:32 <Samu> but in an indirect way
18:37:24 <Samu> it treats the slopes as flat
18:37:35 <Samu> but i then ask for a slope with 1 corner or 3 corners raised
18:38:09 <Samu> since it's "flat", I forbid terraforming
18:41:25 <andythenorth> supermop: http://dev.openttdcoop.org/attachments/download/8096/pax_mail_tramz.png
18:41:46 <andythenorth> thinking of swapping gen 4 for pax to gen 5 sprites, and making new gen 5 sprites
18:41:50 <andythenorth> it’s all hax :P
18:42:12 <andythenorth> the basic gestalt of each model is super-realism, but the actual sprites are hack jobs of freight trams
18:44:46 <supermop> the gen4 looks ok
18:45:21 <andythenorth> looks a bit ‘metro train’ to me :)
18:45:27 <andythenorth> I like the sprite, in isolation
18:50:04 <Eddi|zuHause> andythenorth: gen 5 doesn't look modern enough, make gen 5 a 5-6-5 tram
18:51:29 <Eddi|zuHause> andythenorth: thinking something like this https://de.wikipedia.org/wiki/Datei:NGT8D-MD.jpg
19:00:55 <andythenorth> I planned that, but it’s not symmetrical units then
19:01:06 <andythenorth> all other trams have near-symmetrical sprite per unit
19:01:32 <andythenorth> maybe that’s a slavish consistency :P
19:02:06 *** glx has joined #openttd
19:02:06 *** ChanServ sets mode: +v glx
19:06:02 <andythenorth> could 2 like this https://upload.wikimedia.org/wikipedia/commons/0/0a/Tatra_tram_in_Prague.jpg
19:16:37 <V453000> PRAGUE POWER
19:17:08 *** aard has joined #openttd
19:17:18 <andythenorth> V453000: iz tram
19:18:08 <V453000> iz praga
19:18:31 <V453000> the city of beer, drugs and bitches
19:18:58 <NGC3982> That sounds like Elfen Town outside Växjö.
19:37:35 <Eddi|zuHause> andythenorth: that's more 4th gen than 5th gen
19:41:54 *** Progman has joined #openttd
20:19:05 <supermop> really a true 5th gen tram should should have all-around stealth treatment and thrust vectoring
20:19:25 <Samu> woah, placing locks is awesomely easier now
20:19:42 <Samu> i like what i'm doing
20:20:04 <Samu> now, moving on to placing aqueducts
20:20:47 *** aard has quit IRC
20:22:28 *** aard has joined #openttd
20:23:45 *** frosch123 has joined #openttd
20:26:10 <Wolf01> Quak
20:27:33 <Wolf01> frosch123, I tried to fiddle with the raise/lower terrain function, but I received a "cease & desist" from foundations
20:31:15 <frosch123> i thought we can meanwhile draw any foundation on any slope
20:31:47 <Wolf01> That was the goal
20:32:39 <Wolf01> Easy foundations and steep slopes/cliffs
20:32:55 <Eddi|zuHause> if you want foundations on clear tiles, you need to do some deeper changes to the map
20:33:05 <Wolf01> Yep, I noticed it too late
20:34:25 *** Supercheese has joined #openttd
20:35:04 <frosch123> did you have some question? or was that all you wanted to tell? :p
20:35:59 <Wolf01> Just tell, I don't think I could be able to do it alone
20:36:51 <frosch123> ok, because i have no idea what you tried :)
20:37:41 <Wolf01> Oh, I only disabled the loop which raises the tiles around :P
20:38:05 <frosch123> ah, you mean more than 1 height difference between corners :)
20:38:11 <Wolf01> Yes
20:38:42 <Wolf01> Then I re-enabled it, changed it here and there and got a "fill hole" function
20:40:22 <andythenorth> Samu: what have you changed on locks? o_O
20:41:59 <Wolf01> Seem he made possible to build a lock/dock/depot in canal tiles without enough space all around
20:44:04 <Samu> terraform
20:44:11 *** andythenorth has quit IRC
20:44:32 *** andythenorth has joined #openttd
20:44:48 <Samu> auto-terraform on placement
20:45:29 <Samu> i'm not adding foundations
20:45:45 *** andythenorth has quit IRC
20:46:23 <Samu> and auto-build canal if placed on land
20:46:58 <Wolf01> Samu, I think you should fix one thing instead of that, this one: when you build a dock on canals you have some checks, but you can remove the canals after you build the dock, it shouldn't be possible or checks should be changed according to that
20:49:30 <Samu> let me check the original checks, i changed quite a lot alrady
20:51:18 *** HerzogDeXtEr has joined #openttd
20:51:29 <Wolf01> https://www.youtube.com/watch?v=Q_RPNbaFEs0 ha, the projection of this game give me some kind of sickness
20:52:09 <Samu> you mean this https://hg.openttd.org/trunk.hg/file/d1ee3e5330e5/src/station_cmd.cpp#l2529
20:52:34 *** FLHerne has joined #openttd
20:54:00 <Samu> https://hg.openttd.org/trunk.hg/file/d1ee3e5330e5/src/station_cmd.cpp#l2496 - this line removes the water on the ground, it becomes a flat land
20:54:07 <Samu> a bare land, i mean
20:57:28 <Samu> i am still doing the same, pretty much
20:57:42 <Samu> but handling the data in a whole different way
20:59:23 <Samu> if there is a canal, i check for tile ownership
20:59:32 <Samu> and won't actually remove it, i build on top of it
21:00:00 <Samu> if there is no canal, i actually do the same as that
21:00:10 <Samu> even if it's river, or water, or anything like that
21:01:07 <Samu> maybe I didn't understand the bug, Wolf01 ?
21:01:20 <Wolf01> Wait a sec, I'm doing 4 things at the same time
21:02:22 <Wolf01> http://imgur.com/a/EcyJ4
21:02:51 <Samu> ah, the third tile?
21:02:56 <Samu> i removed that check entirely
21:03:23 <Samu> it just builds, doesn't care what's on the 3rd tile anymore
21:03:27 <Wolf01> I know you did, or you wouldn't be allowed to build that dock
21:06:15 <Samu> okay, i understand now
21:06:28 <Samu> that's on the remove clear water part
21:06:33 *** andythenorth has joined #openttd
21:08:08 <Wolf01> Also, a fix on the music volume could be nice, I always need to move by 1 pixel the cursor as every time I open the game the music is at 100%
21:08:52 <Samu> static CommandCost ClearTile_Water(TileIndex tile, DoCommandFlag flags) - doesn't care about docking spots
21:08:58 <Samu> maybe it should :p
21:09:29 <Samu> thx for the idea, i might do it
21:09:32 <Wolf01> I think it should check that at least one docking spot is provided
21:10:09 <Wolf01> You might not want a dock with front docking spot but one on the left
21:16:02 *** aard has quit IRC
21:18:22 *** FLHerne has quit IRC
21:18:44 *** FLHerne has joined #openttd
21:30:42 * andythenorth considers writing a tram pixel generator
21:30:47 <andythenorth> how hard can it be? :P
21:31:58 <Eddi|zuHause> didn't you already do that, like, twice?
21:32:24 <andythenorth> once for trucks, once for cargo
21:32:48 <andythenorth> make it random, run it 100 times, pick the best 5 sprites :P
21:33:06 <Eddi|zuHause> genetic programming?
21:33:11 <andythenorth> yeah
21:33:14 <Eddi|zuHause> run 300 million generations?
21:33:24 <andythenorth> maybe
21:33:35 <andythenorth> never written genetic programming, always wanted to
21:33:51 <Eddi|zuHause> probably not for you :p
21:33:54 <andythenorth> was going to use it in Flash games ~10 years ago
21:37:31 <andythenorth> there is redneck genetic programming, which is basically components!
21:37:42 <andythenorth> where components are windows, cab, roof, etc
21:38:15 <andythenorth> then there is procedural generation following rulesets, which is similar, but...more
21:45:13 *** smoke_fumus has quit IRC
21:46:33 *** Keridos has quit IRC
21:47:37 <Wolf01> Then integrate it in OTTD, let decide player what he wants, profit... more free time to play with lego
21:48:58 <andythenorth> Wolf01: current GBC module fires marbles quite fast
21:49:01 * andythenorth should make a video
21:50:15 <Wolf01> Good
21:58:36 *** Arveen has quit IRC
22:02:04 *** Kurimus has quit IRC
22:02:30 <Wolf01> Any chance to continue work on NRT?
22:02:50 <andythenorth> I need to get my head around the nml patch that’s needed
22:03:09 <andythenorth> got stuck on which feature number to use
22:03:30 <andythenorth> should be 0x12, but looks like there’s some unfinished houses support using that
22:03:33 <andythenorth> so 0x13
22:03:45 <andythenorth> but then the houses stuff is just useless mess, which I should fix?
22:03:48 <Wolf01> Then use 0x13 :D
22:04:06 <Wolf01> Keep the house stuff for later
22:04:10 <andythenorth> https://xkcd.com/349/
22:04:33 <Wolf01> Sort of
22:07:02 *** Kurimus has joined #openttd
22:07:41 <andythenorth> https://www.flickr.com/photos/andythenorth/29804678026/
22:07:50 <andythenorth> also https://www.flickr.com/photos/andythenorth/29840147735/
22:12:14 *** Supercheese has quit IRC
22:14:43 <frosch123> andythenorth: just change houses to 0x13
22:15:00 <frosch123> houses do not have an id, they are just the "last item" in the list
22:15:23 <andythenorth> ho thanks
22:15:37 <frosch123> s/houses/towns/
22:21:34 *** sim-al2 has joined #openttd
22:32:17 <Wolf01> The red ball didn't like do get launched :D
22:32:23 <Wolf01> *to
22:34:40 *** gelignite has joined #openttd
22:38:17 *** frosch123 has quit IRC
22:38:23 <Eddi|zuHause> andythenorth: if in doubt, check the NFO specs. if it's there, it must stay there
22:39:54 <Eddi|zuHause> aw, frosch left. that would have been a perfect opportunity to chime in that i'm talking garbage and should stop talking :p
22:43:50 <Samu> I need help with slope math
22:44:35 <Samu> i got SLOPE_NE at the start of the aqueduct, and SLOPE_W at the end of the aqueduct
22:45:11 <Samu> I want to tell the terraform to raise land at SLOPE_S at the end of the aqueduct
22:45:30 <Samu> what math is involved so that the terraform command gets SLOPE_S
22:46:13 <Wolf01> There's a function which does that for you
22:47:00 <Wolf01> I can't remember the exact name, but look at the terraform_cmd
22:47:29 <Samu> ok
22:48:06 * andythenorth must to bed
22:48:15 *** andythenorth has quit IRC
22:49:04 *** sla_ro|master has quit IRC
22:54:47 *** Alberth has left #openttd
22:58:57 <Samu> Slope t = ComplementSlope(tileh_start) & ~tileh_end_aqueduct;
22:59:07 <Samu> think this is it, lets test
23:02:09 <Wolf01> Complement is like "1101" -> "0010"
23:14:00 *** Supercheese has joined #openttd
23:16:11 *** gelignite has quit IRC
23:17:01 <Samu> there's an ugly tile swap messing me
23:17:11 <Samu> must have it into account
23:25:48 *** Progman has quit IRC
23:35:35 <Samu> darn steep slopes :(
23:39:39 <Samu> land sloped in ugly direction... grr :(