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

Powered by YARRSTE version: svn-trunk