02:15.31 | *** join/#riftuidev Imhothar_ (miranda@ppp-93-104-180-132.dynamic.mnet-online.de) |
05:14.16 | *** join/#riftuidev odine (~odine@216.224.161.92) |
05:57.42 | *** join/#riftuidev odine (~odine@216.224.161.92) |
05:58.24 | odine | oh hai there! :) |
06:58.35 | *** join/#riftuidev odine (odine@cpe-74-77-168-188.buffalo.res.rr.com) |
10:32.08 | *** join/#riftuidev Torhal (~torhal@c-71-207-224-241.hsd1.al.comcast.net) |
13:04.10 | *** join/#riftuidev g0urra (~g0urra@unaffiliated/gourra) |
13:58.32 | *** join/#riftuidev LoserCoder (~LoserCode@205.245.53.214) |
14:05.32 | LoserCoder | Is this thing on? |
14:23.12 | *** join/#riftuidev Noshei (~quassel@c-67-161-146-244.hsd1.co.comcast.net) |
15:03.02 | *** join/#riftuidev Baanano (~chatzilla@85.63.109.151) |
15:37.18 | *** join/#riftuidev Imhothar (miranda@ppp-188-174-121-144.dynamic.mnet-online.de) |
15:43.04 | ZorbaTHut | yes, but the channel is often quiet, especailly in the middle of the night US time :) |
15:43.19 | Ivnedar | hi ZorbaTHut :) |
15:43.23 | odine | who sleeps? |
15:43.30 | ZorbaTHut | heya ivnedar :) |
15:45.07 | Ivnedar | most of the best coding time is 3am, no sleep! |
15:49.52 | Imhothar | hey, we got a few non-US people here. Should actually be a busy place during US night times |
15:50.53 | Imhothar | though actually, night time PST like early morning here |
15:52.18 | Imhothar | ZorbaTHut I was wondering: does it make any difference to the client if you call SetTexture with "Data/\UI\item_icons\bla.dds" compared to just "bla.dds"? |
16:08.25 | Ivnedar | Hrrm, there's no way to work out what direction player is facing is there |
16:20.53 | ZorbaTHut | imhothar, officially: use what the API provides you. unofficially: I'm pretty sure the former is converted into the latter anyway before the load occurs |
16:20.59 | ZorbaTHut | but don't blame me if this stops being the case someday :V |
16:26.15 | Imhothar | well, officially we only have the names from the ftp zips |
16:27.07 | Imhothar | unless you're refering to Inspect.Item.Detail().icon which has the former pattern |
16:28.05 | Imhothar | interestingly though, the former pattern never appears in the recorded texture names |
16:31.28 | Ivnedar | I noticed the item discovery file has them as item_icons\blah.dds |
16:34.26 | Baanano | ZorbaTHut, I've been wondering for some days if SL quest IDs are bugged or not |
16:34.57 | ZorbaTHut | Hmm. They shouldn't be, AFAIK nothing has changed in the ID system |
16:35.05 | Ivnedar | Bugged how? |
16:35.12 | Baanano | the thing is most SL new quests have a negative ID and their addon id starts with qFFFFFFFFABCDEFxxxxxxx |
16:35.25 | ZorbaTHut | yeah, honestly, the whole "chop off the end of the filename and use that as a unique ID" thing may be reliable enough to just use it everywhere |
16:35.45 | ZorbaTHut | oh dammit I bet I forgot to write it as an unsigned int |
16:35.46 | ZorbaTHut | sigh |
16:36.01 | ZorbaTHut | if you chop off the first eight F's it'll work. I'll fix it after the holidays. |
16:36.07 | Ivnedar | oh, yeah, those ones |
16:36.09 | Baanano | they work but you need to compare the 17 first chars instead of the 9 first ones as the docs say |
16:36.26 | ZorbaTHut | (I think you might be familiar with that issue, the same problem showed up in the item system a while back) |
16:36.44 | Imhothar | don't mention it, stil gives me nightmares |
16:36.45 | Baanano | yes, with lesser essences |
16:37.13 | Baanano | anyway, as they worked too with the FFFFFFFF prefix i wasn't sure if that was a bug |
16:38.02 | Imhothar | how comes a signed int is serialized with 8 bytes and an unsinged just with 4. that sounds strange |
16:38.28 | Ivnedar | they're only like that in the Inspect.Quest.Complete() results until they're cached aren't they? |
16:38.34 | ZorbaTHut | it's part of our serialization library, I believe - there aren't many people trying to serialize negative unsigned ints as hex values |
16:39.07 | Baanano | i suppose they are serialized with a %08X mask |
16:39.19 | ZorbaTHut | I believe so, yep |
16:39.31 | ZorbaTHut | we used negative numbers for SL IDs so they wouldn't conflict with IDs in the main branch |
16:39.35 | Ivnedar | qFFFFFFFF<8charid>xxxxxxxx |
16:39.55 | Imhothar | what will you do in the next addon? invent a third sign? |
16:40.10 | ZorbaTHut | actually, it's not really "SL" and "classic", it's "major development branch" and "main branch" |
16:40.25 | ZorbaTHut | all our new IDs are positive again, and the next time we need a major fork for dev reasons, we'll just make the fork negative :) |
16:40.45 | Imhothar | that sounds like a horrible hack |
16:40.59 | ZorbaTHut | It's hacky, but it's easy and reliable |
16:41.09 | Imhothar | a hack is by definiton not reliable ;) |
16:41.18 | ZorbaTHut | then it's not a hack :D |
16:41.34 | Imhothar | as long as someone remembers it... |
16:42.13 | ZorbaTHut | note that IDs are generated automatically by our tools, so there isn't much need for memory |
16:42.53 | Imhothar | then why the positive/negatie thing? |
16:44.40 | ZorbaTHut | there's no global registration of IDs besides "what's in source control", and we wanted merging data from live to SL to go smoothly. Easiest solution: ensure that people working in those branches will never generate conflicting IDs. |
16:45.08 | Imhothar | wiat, you don't store quests in a database? |
16:45.26 | Imhothar | interesting |
16:45.45 | ZorbaTHut | general rule for large projects: everything in source control, everything in a format that can be merged by your source control tools |
16:46.03 | ZorbaTHut | if you can't merge sqlite or whatever, then you don't use that as the fundamental repository for data. |
16:46.13 | ZorbaTHut | (that said, nothing says you can't convert to databases as part of a build step) |
16:46.28 | Imhothar | you can merge sql make scripts though |
16:46.43 | Imhothar | hmm |
16:47.20 | Imhothar | oh well |
16:47.22 | ZorbaTHut | but then you're stuck writing tools that understand and output sql make scripts. and, I mean, eww. :V |
16:47.24 | Imhothar | what CVS are you using? |
16:47.53 | ZorbaTHut | pretty much the entire game industry uses perforce |
16:47.59 | ZorbaTHut | it's the only thing that scales up enough |
16:48.38 | ZorbaTHut | (I wish git would scale better :( ) |
16:48.57 | Imhothar | doesn't git host the entire linux kernel? |
16:49.08 | ZorbaTHut | yeah, but it turns out the linux kernel is really small |
16:49.16 | ZorbaTHut | lots of files, lots of changes . . . lots of tiny files and tiny changes |
16:49.29 | ZorbaTHut | when you're working on games, you're looking at a single tree checkout in the dozens-to-hundreds-of-gigabytes range |
16:49.38 | ZorbaTHut | the full repository with history can be easily dozens of *tera*bytes |
16:49.46 | ZorbaTHut | git doesn't handle that particularly well :V |
16:50.23 | Imhothar | well, I wouldn't use a single repository for the entire project anyways but split it up |
16:50.43 | ZorbaTHut | that just seems like needless complexity. all the assets are part of a single project - why split the project into multiple repositories? |
16:51.06 | ZorbaTHut | sometimes it's really handy to be able to rewind to "rift as it was two weeks ago", especially when you're trying to binary-search a regression out of the repository |
16:52.03 | ZorbaTHut | ten years ago people were doing all sorts of bizarre solutions where they stored what were effectively symlinks in the versioning system, which pointed at a bulk data store to hold all the old files. thankfully, we don't need that anymore, although the result has turned into "use perforce for everything" |
16:53.25 | Imhothar | well, git submodules aren't that bad. separating code from data is a nice thing and the implied submodule commit just works as if it was there |
16:53.56 | ZorbaTHut | unfortunately git submodules don't solve the problem. you still need to check out everything to check out a git repo - git submodules just make it more difficult to work with |
16:54.16 | ZorbaTHut | and in the game industry, there isn't a clean separation between code and data. your game code is intimitely tied to the game data. |
16:54.26 | ZorbaTHut | they're all part of a single project. |
16:56.29 | Imhothar | guess that depends. some companies use the same engine for multiple games. so there's at least a sort of logical separation there. but I don't really have experience with perforce so can't compare |
16:58.02 | ZorbaTHut | yeah, I'm actually kinda curious how they do that. but even then, I suspect that each game ends up with a mild fork of the engine, with good features backported to the canonical root version |
16:58.33 | Ivnedar | Hrrm, no Command.Guild.Roster.Invite ? |
16:58.43 | ZorbaTHut | probably with the whole mess stored in a gargantuan unified repo because p4 is really good at that |
16:58.57 | ZorbaTHut | (when I worked at Google, *all* Google code was stored in a single humongous perforce repo) |
17:00.03 | ZorbaTHut | ivnedar, as I recall, that's waiting for a little infrastructure work to make it harder to spam people |
17:00.13 | ZorbaTHut | that said it may be possible to jam it into a macro |
17:00.44 | Ivnedar | we've got a guild member who's kicked/invited several times a day, I was automating the inviting/reranking bit |
17:00.51 | Ivnedar | not overly important |
17:02.09 | Ivnedar | the reranking was the annoying bit and that's sorted |
17:02.53 | ZorbaTHut | excellent :) |
17:03.03 | ZorbaTHut | though I have to ask - why do you kick the guild member several times per day? :V |
17:03.25 | Ivnedar | He's a dorf |
17:03.43 | ZorbaTHut | fair |
17:03.56 | Ivnedar | Thought that'd be explanation enough :) |
17:04.02 | Ivnedar | He does ask for it though |
17:20.05 | Ivnedar | oh wow, how is it I've never noticed *.Map.* |
17:33.53 | ZorbaTHut | I'm not sure anyone's really used that API much. If you run into problems with it, let me know, there may be lurking bugs. |
17:34.27 | Ivnedar | awwh, was hoping I could get back the player facing from it, could still be useful |
17:34.40 | ZorbaTHut | that's actually on my list of things I need to ask the designers if I can expose |
17:35.34 | Ivnedar | for player only? or all units? |
17:40.16 | Baanano | the Map API could use some improvements :P right now I can't figure a practical use for it but to get accurate coordinates for gatherables |
17:40.17 | ZorbaTHut | all units, potentially. depends on what design says |
17:40.53 | ZorbaTHut | baanano, is it that you're unsure of what a map API could give you, or is it missing features in the existing API? |
17:42.08 | Baanano | i'd say missing features: getting the icon texture for locations, and maybe location types |
17:42.33 | ZorbaTHut | hmm, icon texture is going to be tricky - I actually don't have that information particularly available |
17:42.46 | ZorbaTHut | location types could probably use some improvements though |
17:43.00 | Baanano | i have a table somewhere that says lxxxYY are gatherables, lxxxxZZ are quest givers |
17:43.38 | ZorbaTHut | yeah, one issue is that the map code is, uh . . . let's go with "bad" and leave it at that |
17:43.49 | ZorbaTHut | and so a lot of the categorization that you think should be possible is, in fact, not easily possible |
17:43.57 | Baanano | also can't recall if invasions showed where they were heading |
17:44.00 | ZorbaTHut | still there's probably a lot I coudl be exposing that I'm not |
17:44.27 | Baanano | and we'd need to be able to rotate the arrow textures to be able to emulate the native map |
17:45.15 | ZorbaTHut | I'm actually working on improved texture display options now, though it's a bit tricky because I'm trying to make sure I don't make an overcomplex API while also not boxing myself into a corner |
17:46.02 | Imhothar | I'm really a bit shocked ScaleForm doesn't give you some native way of specifying texture cooridnates/transformations |
17:46.29 | ZorbaTHut | keep in mind that scaleform isn't the only issue - as usual, it's a matter of coming up with a clean API I can expose |
17:46.55 | ZorbaTHut | ideally one that is also efficient |
17:48.24 | Baanano | also, has anyone solved the problem to know if a coordinate set is in mathosia or the new map? |
17:48.42 | Baanano | I guess we could build a Scene > Zone/Map lookup |
17:50.05 | ZorbaTHut | I'm a little loathe to hand over internal map names, I guess I really need an internal-name-to-addon-identifier lookup table |
17:52.02 | Imhothar | honestly, the most texture coordinate cases just need x/y from and x/y to, either in texels or [0;1]. Everything else can be done with a transformation matrix |
17:53.05 | Imhothar | at least for affine transformations |
17:53.39 | Imhothar | then there's a pair of x/y for each rectangle point. which could be combined with the matrix for those really scary use cases |
17:53.42 | ZorbaTHut | I'm not gonna go into details yet, but I want to overprovide on features this time rather than underprovide |
17:54.28 | Imhothar | in the end it boils down to specifying the x/y point for each widget vertex. |
17:54.50 | Imhothar | or s/t, whichever you prefer |
17:55.03 | Imhothar | or u/v? |
17:55.36 | ZorbaTHut | u/v is traditional for texture coordinates |
17:56.30 | Baanano | will be able to tint textures too? :P |
17:56.41 | Imhothar | unless you're an OpenGL guru and talk stpr only ;) |
17:57.36 | Imhothar | oh yes please vertex colors |
17:57.51 | Imhothar | or even better! custom vertex/fragment shaders for textures |
17:57.55 | Imhothar | oh that would be fun |
17:58.43 | Imhothar | how about convolution filters |
17:58.55 | Imhothar | I need a drink |
17:58.58 | ZorbaTHut | you are probably not getting custom vertex and fragment shaders :V |
17:59.19 | Imhothar | not even a code fragment? awwww |
18:09.32 | Ivnedar | should daily quests disappear from Inspect.Quest.Complete() once reset happens? |
18:14.57 | Baanano | i think they don't |
18:15.24 | Ivnedar | They don't, was wondering if they should |
18:15.44 | Ivnedar | or if there was some other way to work out if they've been completed so far 'today' without tracking by complete event |
18:16.10 | Baanano | it'd be nice if repeatable quests disappeared once they can be repeated or even better if they had a flag or timestamp so you could figure if they can be repeated |
18:19.34 | Ivnedar | I guess I was curious if the returned table is intended to be the "list of all quests ever completed" or the "list of all quests currently in the completed state" |
18:31.27 | Ivnedar | Ah well, sun's coming up, guess I should get some sleep in before continuing Ashora IAs |
18:31.30 | Ivnedar | bbl |
20:03.44 | *** join/#riftuidev purl (~purl@rikers.org) |
20:03.44 | *** topic/#riftuidev is http://pastebin.com for code snippets || PIL: http://www.lua.org/pil || Rift AddOn Policy: http://t.co/7xXd4LL || AddOn Wiki: wiki.riftui.com/ || RiftUI.com || rift.curse.com || this channel is logged, via purl || On the bright side, if the Mayans are right, this is the last Monday you'll have to deal with. |
20:28.18 | seebs | Oooh, texture stuff. |
20:29.40 | odine | what about texture stuff? |
20:29.43 | odine | what i miss? :) |
20:30.43 | seebs | Zorba mentioned some stuff about texture API. |
20:30.50 | odine | ooOoooo |
20:30.58 | seebs | One of the things WoW did that I actually really liked: You could request 3D model stuff. |
20:31.05 | odine | <3 tex coords |
20:31.06 | odine | nom nom |
20:31.18 | seebs | The _Cursor addon I used there would let you basically assign any of the standard 3D spell-casting animations to the cursor. |
20:32.10 | Baanano | odine, are you working on a calendar addon? |
20:32.46 | odine | sorta in my spare time.. also using it to adjust to rifts api.. still really used to wows api |
20:33.04 | Baanano | or anyone else |
20:33.35 | seebs | I am SO not missing the WoW API. |
20:33.58 | seebs | I still shudder when I think about the effort I went to to try to make something which could determine with at least 80% reliability whether it had gotten an item out of the mail. |
20:33.58 | Baanano | i recently got permissions to the storage stuff in my guild, was thinking on doing a calendar addon, but wanted to check before if somebody else was on it |
20:34.00 | odine | i dont miss it, just some things.. i keep finding myself to use SetScript.... i loved how u could use that... |
20:34.45 | odine | ....mostly for the OnHide, OnShow, cuz there is current no .Event.Visible or such |
20:34.45 | Baanano | what's SetScript about? I haven't used the wow api |
20:34.48 | Imhothar | odine in Rift it's actually easier, just assign a funtion directly without |
20:35.14 | Imhothar | needing any API call |
20:35.18 | odine | ^ ya.. its just a habbit thing.. gotta break it |
20:35.58 | odine | baanano: with SetScript u could do something like........ window:SetScript("OnShow", functionToCall, self) |
20:36.27 | odine | and i just keep finding myself using it lol.. like i said habbits |
20:37.06 | Imhothar | which in Rift is simply window.Event.Something = functiontoCall |
20:37.26 | Baanano | ah, an event handler |
20:38.40 | odine | rifht but there is no Visible or Hidden in there... mostly for mouse focus, clicks... i saw in libsimplewidgets for SimpleWindows he extended it to so that if u actually clicked the close button it would trigger Event.Close |
20:39.33 | Imhothar | well OnShow and OnHide are simply missing, that's not realted to SetScript in any way |
20:40.04 | odine | so im loooking into that possibility atm, because ill be honest, im no pro.. im amature at best hehe. and ya i know.. i want them ;) |
20:40.05 | Baanano | yeah, if you really want a VisibilityChanged you could do what LSW does |
20:41.09 | odine | ya i have the onhide from LSW already, been busy havent had the time to see if i could addin an onshow type thing |
20:43.49 | Baanano | anyway, is the storage api easy to grasp? i haven't been able to get all the pieces together yet |
20:44.14 | Baanano | what's the difference between Delete and Write permissions? |
20:45.12 | Imhothar | Write doesn't allow you to delete an entry |
20:45.42 | Baanano | but you can modify it? |
20:46.04 | Imhothar | yah |
20:46.10 | Imhothar | but not delete |
20:47.31 | Imhothar | odine are/were you using StorageViewer? |
20:47.36 | ZorbaTHut | write doesn't allow modify either, it's just add |
20:47.40 | ZorbaTHut | really should have been named Add :V |
20:48.13 | odine | yes i use storageviewer |
20:48.26 | Imhothar | is it helpful? |
20:48.44 | odine | once i had a basic grasp i moved on to other pars of the addon though, and yes its helpful to check how roster data is saving etc etc |
20:49.30 | odine | but storageviewer is a lifesave once i get more back to that part of the addon :) |
20:50.09 | Baanano | it's really helpful when you mess up and need to clean the storage :P |
20:50.25 | Imhothar | well then at least it has a purpose |
20:50.33 | *** part/#riftuidev LoserCoder (~LoserCode@205.245.53.214) |
20:52.41 | Baanano | what's the overhead of using multiple storage entries? |
20:53.04 | Imhothar | each storage element has a minimum size of 64 |
20:53.13 | Imhothar | I think |
20:58.21 | Baanano | do you know if you can create an entry with officer write permissions without been an officer? |
20:58.41 | Imhothar | I think so |
21:01.44 | Baanano | and delete it? |
21:02.00 | Imhothar | probably not |
21:02.09 | Imhothar | that would kind of mitigate the permission |
21:03.16 | Baanano | my guild officers were a bit reluctant to give me those permissions, would prefer not to need them to delete bogus entries i create while testing the api |
21:04.27 | Baanano | didn't we have a dev guild somewhere? |
21:05.00 | Imhothar | Wildtide and me are in one on Blightwead |
21:05.11 | Imhothar | let me check if I can invite peoepl |
21:07.16 | Imhothar | looks mlike |
21:07.27 | Imhothar | what's going on with my fingers today... |
21:08.39 | Imhothar | gulid is Cry Havoc |
21:08.57 | Baanano | k, let me finish a quest and i'll create a char on blightwead |
21:11.40 | *** join/#riftuidev Thorarin (thorarin@D57DD135.static.ziggozakelijk.nl) |
21:30.38 | Imhothar | ZorbaTHut what kind of string would prevent print() from being displayed? |
21:31.35 | Imhothar | trying to print() data read from storage using print("x" .. data .. "x") but only the first x shows up |
21:31.50 | Imhothar | putting it in a RiftTextfield leaves the textfield empty |
21:33.17 | Imhothar | well riddle solved it begins with a \0 |
22:49.40 | Imhothar | woah, my Necromancer pet looks dramatically different... |
22:51.02 | Imhothar | when did that happen |
22:55.30 | Imhothar | wish we could equip our undead friends to change their appearance |