Timestamps are in GMT/BST.
| 00:02:53 | Watusimoto | too tired to think |
| 00:05:01 | raptor | ok, well, i'm off for a bit - i'm going to experiment with changing where the motd comes from as a first move to redoing the menus.. |
| 00:05:28 | koda | and i'll be going to sleep |
| 00:05:30 | koda | good night |
| 00:05:37 | raptor | night! |
| 00:05:43 | raptor | thanks koda |
| 00:14:33 | | raptor Quit () |
| 00:41:32 | | amgine1234567890 has joined |
| 00:41:39 | amgine1234567890 | hi |
| 00:41:53 | amgine1234567890 | sorry ive been gone anthing new? |
| 01:11:38 | | Watusimoto Quit (Ping timeout: 276 seconds) |
| 01:25:42 | | amgine1234567890 Quit (Ping timeout: 245 seconds) |
| 02:18:51 | | YoshiSmb has joined |
| 02:19:03 | YoshiSmb | hi |
| 02:26:01 | | bobdaduck has joined |
| 02:26:34 | | bobdaduck Quit (Client Quit) |
| 04:23:20 | | kaen has joined |
| 04:23:31 | YoshiSmb | hi |
| 04:23:45 | YoshiSmb | Welcome to the IRC chat Kaen |
| 04:24:20 | kaen | hello and thank you. |
| 04:24:32 | YoshiSmb | np |
| 04:25:02 | kaen | I periodically have to remove and reinsert my wifi card... |
| 04:25:13 | kaen | it ceases to function about every 6 hours... |
| 04:28:30 | YoshiSmb | Wifi? |
| 04:28:36 | YoshiSmb | Wireless? |
| 04:31:24 | YoshiSmb | (waiting responce) |
| 04:38:33 | kaen | correct. |
| 04:43:47 | YoshiSmb | ahhh. |
| 04:43:52 | YoshiSmb | i use Wifi also |
| 04:44:11 | YoshiSmb | but only i can connect to only 1 server |
| 05:11:31 | | YoshiSmb_ has joined |
| 05:13:46 | | YoshiSmb Quit (Ping timeout: 248 seconds) |
| 05:20:04 | | YoshiSmb_ Quit (Ping timeout: 240 seconds) |
| 05:30:32 | | Fordcars has joined |
| 05:36:57 | | Fordcars Quit (Ping timeout: 245 seconds) |
| 07:02:46 | | kodaws has joined |
| 07:09:22 | | kodaws Quit (Ping timeout: 255 seconds) |
| 08:31:31 | | kodaws has joined |
| 09:14:51 | | watusimoto has joined |
| 09:14:51 | | ChanServ sets mode +o watusimoto |
| 09:33:08 | kaen | I reported some spam on the forum, watusimoto |
| 09:33:31 | watusimoto | hi |
| 09:33:37 | kaen | hi |
| 09:33:48 | watusimoto | we haven't had spam on the forum for a while |
| 09:33:52 | kaen | (insert timezone appropriate greeting here) |
| 09:34:02 | kaen | yeah I was surprised. |
| 09:34:06 | kaen | it's only three posts. |
| 09:34:07 | watusimoto | or were you reporting spam that you recieved on your home machine so we'd all be aware? :-) |
| 09:34:20 | kaen | haha |
| 09:34:27 | kaen | :) |
| 09:34:33 | watusimoto | where are you located? |
| 09:34:42 | kaen | washington state |
| 09:34:53 | watusimoto | then you're up very early/late |
| 09:35:00 | kaen | I just woke up |
| 09:35:02 | watusimoto | I'm from Oregon myself, though living in Luxembourg |
| 09:35:08 | kaen | I work in a few hours |
| 09:35:15 | kaen | oh wow that's cool! |
| 09:35:19 | watusimoto | where in WA? |
| 09:36:00 | kaen | on the coast, just a bit south of Seattle |
| 09:36:05 | watusimoto | nice |
| 09:36:13 | watusimoto | the WA/OR coast is very nice |
| 09:36:19 | watusimoto | very very nice |
| 09:36:41 | kaen | I really like it. I used to live on the other side of the state/mountains |
| 09:36:42 | watusimoto | I live(d) in Portland, but try to get out to the ocean at least once a year |
| 09:36:57 | kaen | I really like Portland |
| 09:37:02 | watusimoto | it's a great place |
| 09:37:27 | watusimoto | I miss it a lot |
| 09:43:40 | watusimoto | at some point, we'll make it a requirement to have played a game of bitfighter to get a forums account. Then we can get rid of the captcha altogether and be totally spam free. It would be a very easy mod to make, but no one has ever been motivated enough to do it. |
| 09:43:53 | watusimoto | it spam becomes a problem again, I might become so motivated. |
| 09:44:23 | watusimoto | (unless the spammers start writing bots to play bitfighter, but I would argue that might be a positive development :-) |
| 11:18:15 | kodaws | or unless spammers spammed about bitfighter :p |
| 12:20:01 | | Darrel has joined |
| 14:33:31 | | Watusimoto_ has joined |
| 15:55:04 | | LordDVG has joined |
| 15:55:08 | | Watusimoto_ Quit (Ping timeout: 264 seconds) |
| 16:41:05 | | bobdaduck has joined |
| 16:41:09 | bobdaduck | Sup] |
| 17:54:02 | | bobdaduck Quit (Ping timeout: 245 seconds) |
| 17:56:08 | | kodaws Quit (Ping timeout: 272 seconds) |
| 18:00:14 | | watusimoto Quit (Ping timeout: 240 seconds) |
| 18:28:29 | | raptor has joined |
| 18:28:30 | | ChanServ sets mode +o raptor |
| 18:28:46 | raptor | hello |
| 18:29:00 | raptor | this message brought to you from my work computer |
| 18:29:08 | | raptor weeps for the loss of vacation |
| 18:45:14 | | Watusimoto has joined |
| 18:52:41 | kaen | raptor, is there anything you need me to do to the cmake patch? |
| 18:53:00 | kaen | I don't mean to be a broken record, but I've found it very useful in my skunkworks clones :) |
| 18:53:15 | raptor | hi kaen |
| 18:53:21 | kaen | hi raptor |
| 18:53:25 | kaen | good morning (?) |
| 18:53:36 | raptor | yes (I am on Mountain Standard Time) |
| 18:53:44 | kaen | so just barely |
| 18:54:37 | raptor | i think the cmake patch is good - although does it work for Linux only at the moment? |
| 18:55:07 | raptor | Like, could it be adapted for mingw? (not needed now, but just curious) |
| 18:55:31 | kaen | I have no idea, and I'm not familiar with mingw. But I'll look into it |
| 18:55:55 | kaen | I'm pretty sure that's the idea of cmake, (cross platform make) |
| 18:56:38 | kaen | I imagine at the least I'll need to collect the FindFoo plugins for the libraries we depend on, which are responsible for finding include paths and linker flags for different platforms |
| 18:57:01 | raptor | oh wait, those are not included? |
| 18:57:07 | kaen | and when I say collect, I mean write |
| 18:57:20 | kaen | not for most of the libraries |
| 18:57:27 | kaen | SDL is, GL probably is |
| 18:57:29 | raptor | which ones do you think? (aren't most of those in the standard cmake distribution?) |
| 18:57:33 | kaen | I had to write one for mysqlclient |
| 18:57:50 | kaen | every dynamically linked library except the two I mentioned |
| 18:57:50 | raptor | ah, for master... |
| 18:58:08 | raptor | so libpng, openal-soft, etc.. |
| 18:58:27 | kaen | right now I'm actually just passing the lib names to cmake, and it's just doing very naive per-platform translation |
| 18:58:33 | kaen | and yes, that's correct |
| 18:59:38 | raptor | you don't think cmake's built-in library finding is good enough? (maybe I don't understand cmake correctly - doesn't it have automatic library look-up on each platform?) |
| 18:59:53 | raptor | so you could just say look for 'png' |
| 19:00:04 | raptor | and on windows it scours for libpng.dll |
| 19:00:10 | raptor | on linux, libpng.so.? |
| 19:00:17 | kaen | that's what it does now |
| 19:00:27 | raptor | ok |
| 19:00:31 | raptor | and it needs to be better? |
| 19:00:46 | kaen | maybe not needs |
| 19:00:46 | raptor | because that seems OK to me... :) |
| 19:01:26 | kaen | okay, I just found cmake modules for png and openal |
| 19:01:34 | kaen | here's and example of a line from the png one: |
| 19:01:34 | kaen | set(PNG_NAMES ${PNG_NAMES} png libpng png15 libpng15 png15d libpng15d png14 libpng14 png14d libpng14d png12 libpng12 png12d libpng12d) |
| 19:01:51 | kaen | here it's listing all the crazy png lib names that people have found across platforms |
| 19:01:57 | kaen | ours just looks for 'png' right now |
| 19:02:14 | kaen | I guess they're not that crazy; but I didn't think of them |
| 19:02:35 | raptor | but even just using 'png' cmake is smart enough to look for the 'lib' and stuff, right? |
| 19:02:42 | kaen | right |
| 19:03:01 | kaen | but if someones system for some crazy reason has libpng15d instead, and no symlink |
| 19:03:03 | kaen | ours would fail |
| 19:03:14 | raptor | ah - well, then... |
| 19:03:18 | raptor | stinks to be them? |
| 19:03:19 | raptor | :) |
| 19:03:21 | kaen | heh |
| 19:03:27 | kaen | but like I said just found two |
| 19:03:40 | kaen | people have likely written some already for vorbis and whatever else is left |
| 19:03:41 | raptor | one constraint that might matter - i think we require libpng14 or greater |
| 19:03:53 | kaen | ah, good to know |
| 19:04:03 | raptor | actually, i think vorbis is included with the cmake install.. |
| 19:04:12 | kaen | we can codify those version requirements into the cmake files I believe |
| 19:04:22 | raptor | look at /usr/share/cmake/Modules/ |
| 19:04:35 | kaen | mine's pretty slim |
| 19:04:41 | raptor | really? |
| 19:04:56 | raptor | mine has 159 |
| 19:05:04 | kaen | doesn't have ov for sure |
| 19:05:15 | raptor | ah, but i'm using cmake 2.8.8 |
| 19:05:16 | kaen | 37 |
| 19:05:20 | kaen | 2.6 here |
| 19:05:24 | raptor | ok |
| 19:05:37 | raptor | i'd first look at the latest cmake release for the modules... |
| 19:05:48 | raptor | because it seems like they have really ballooned |
| 19:05:52 | kaen | will do |
| 19:06:07 | raptor | yep, infact PNG is there: /usr/share/cmake/Modules/FindPNG.cmake |
| 19:07:44 | raptor | ha!: here is their git repo of the modules: http://cmake.org/gitweb?p=cmake.git;a=tree;f=Modules;h=f1c559597aa4644540d678c95a993f90fac5e149;hb=HEAD |
| 19:08:06 | raptor | openal is there, too |
| 19:08:37 | kaen | I was looking so hard for that... |
| 19:09:01 | raptor | :) |
| 19:09:15 | kaen | mingw uses pthreads too, right? |
| 19:10:02 | kaen | more to the point, how cross-platform is linking to pthreads? |
| 19:10:12 | raptor | i think... |
| 19:10:14 | raptor | hmmm |
| 19:10:18 | kaen | holy crap there's thread module |
| 19:10:20 | kaen | .. |
| 19:10:24 | kaen | I love cmake so much |
| 19:10:25 | raptor | cool! |
| 19:10:27 | raptor | heh |
| 19:10:39 | | BFLogBot Commit: 69837124468d | Author: watusimoto | Message: Fix editor crash |
| 19:10:52 | raptor | i think it's basically pthreads on everything but windows.. |
| 19:11:04 | kaen | lol cmake can find us a threading library on iris |
| 19:11:06 | kaen | irix* |
| 19:11:14 | raptor | ha! |
| 19:12:07 | raptor | wait cmake uses lowercase control blocks now? |
| 19:12:14 | raptor | SO ITS NOT YELLING AT YOU? |
| 19:12:51 | kaen | now that I think about it, that code hasn't had a final combing yet... |
| 19:13:05 | | kaen checks to see if he mixed case styles |
| 19:14:11 | kaen | well at least it's all lowercase. |
| 19:14:18 | | Darrel Quit (Read error: Connection reset by peer) |
| 19:14:25 | kaen | I feel like that's still bad cmake style. |
| 19:15:52 | kaen | apparently it's the new good cmake style |
| 19:15:57 | kaen | cool. |
| 19:16:08 | raptor | heh |
| 19:16:12 | raptor | well whatever |
| 19:16:18 | raptor | so 2.6+ then? |
| 19:16:23 | raptor | then you can include any missing modules |
| 19:16:36 | kaen | yep |
| 19:17:11 | raptor | Watusimoto: to what extent have we decided to break this release? err, i mean fix bugs and add minor features |
| 19:17:21 | Watusimoto | hi |
| 19:17:30 | raptor | hello |
| 19:17:41 | Watusimoto | I'm focusing on fixing bugs and such; I want to get this release out quickly |
| 19:17:44 | sam686 | hi |
| 19:17:46 | raptor | ok |
| 19:17:48 | raptor | hi sam686 |
| 19:17:57 | Watusimoto | because there are lots of fixes in it |
| 19:18:00 | raptor | so i shouldn't start ripping apart menu stuff... |
| 19:18:03 | raptor | ok |
| 19:18:20 | Watusimoto | ah, how quickly can you put it back together? |
| 19:18:38 | raptor | well... i start school on monday so probably not too quickly.. |
| 19:18:48 | raptor | unless i get an adrenaline rush |
| 19:19:16 | Watusimoto | of course, if you don;t check it in, or do it in a branch, there will be no problem, eh? |
| 19:20:58 | raptor | right! |
| 19:22:24 | Watusimoto | so there you go! |
| 19:22:52 | raptor | so now, in what format you i put the motd? JSON? |
| 19:23:04 | raptor | or leave it as plain text (assuming I am to grab it over HTTP) |
| 19:23:21 | raptor | i want to get it right the first time... |
| 19:24:32 | Watusimoto | we could do a couple of things |
| 19:24:46 | Watusimoto | motd currently varies by version number |
| 19:25:12 | Watusimoto | so if we want to continue this hallowed tradition, we need to be able to return different messages for different versions |
| 19:25:23 | Watusimoto | we can do this with a server or with a json file that has all the motds in it |
| 19:25:27 | Watusimoto | or perhaps something else |
| 19:26:18 | raptor | so i think i'd like it to be serialized in a simple format (JSON seems great) |
| 19:27:11 | raptor | then we could either spit it out from the master server, or use a web service... |
| 19:27:21 | raptor | or start with one and get to the other eventually |
| 19:27:24 | Watusimoto | ok; ideally, we'd still have an easy way to alter the message, so perhaps we could have a server for that |
| 19:27:52 | Watusimoto | wait, so are you thinking we send all messages to all clients, and let the clients sort it out? |
| 19:28:00 | raptor | what do you mean 'server for that'? |
| 19:28:03 | Watusimoto | or send different messages tailored to each client? |
| 19:28:36 | Watusimoto | oh, I just mean a way to alter the message without logging in, so we can give certain players motd control without giving the keys to the kingdom |
| 19:28:37 | raptor | right now we have an INI section read by the master server server and fed to each client tailored |
| 19:28:41 | Watusimoto | nominally the way it works now |
| 19:29:03 | Watusimoto | ok, so clients will still get the message from the master? |
| 19:29:22 | Watusimoto | (the master.exe process, as opposed to fetching something with http or whatever) |
| 19:29:32 | raptor | that's what we need to decide - does it make sense to serve it that way for via http? (thinking about the future) |
| 19:29:37 | raptor | *or |
| 19:32:31 | raptor | and, right now - don't *all* master connection RPC calls require authentication? |
| 19:32:48 | Watusimoto | probably yes; the advantage of http is that we can grab it via port 80; using 25955 (master port) will require some negotiation (are we connecting, or just stopping by for the motd?) |
| 19:32:52 | raptor | and how hard would it be to change that? |
| 19:33:02 | Watusimoto | no idea! |
| 19:33:13 | raptor | 'probably yes' <-- on which? |
| 19:33:45 | Watusimoto | probably yes that master rpc calls require authentication, or at least a preexsting connection |
| 19:33:55 | raptor | ah |
| 19:34:32 | Watusimoto | so rpc is probably not the right mechanism |
| 19:35:01 | raptor | for pull-only, it'd be much easier for http; but! we'd have to make sure there was always a webserver running... |
| 19:35:55 | raptor | and, do we have the master server spit out the JSON (after reading it from the INI), or update it manually? Or maybe serve up an INI? |
| 19:35:56 | | BFLogBot Commit: d081be64f7e7 | Author: sam8641 | Message: Fix possible crash. |
| 19:35:59 | | BFLogBot Commit: b8b9dcc02d93 | Author: sam8641 | Message: Fix trying to delete ghosting flag crash; Fix Robot picking up EnergyItem error; Fix MoveItem::unpackUpdate position not working when mounted (dropping flags) |
| 19:36:00 | | BFLogBot Commit: e4969a7ca46a | Author: sam8641 | Message: Fixed to no longer show extra message "dropped a flag" in CTF capture, retrieve, hold the flag, and zone control. |
| 19:36:02 | | BFLogBot Commit: d73cf0441b8f | Author: sam8641 | Message: Finish my work from previous commit. |
| 19:36:03 | | BFLogBot Commit: 69fdf6398dc5 | Author: sam8641 | Message: Merge |
| 19:37:22 | sam686 | did you make any other changes other then MountableItem::packUpdate that can break compatibility with 018? |
| 19:38:22 | sam686 | the changes to MountableItem::packUpdate seem to be not needed (works on my 018 right before my merge, rev e4969a7ca46a) |
| 19:39:34 | sam686 | oh i mean on my (rev d73cf0441b8f ) |
| 19:40:41 | Watusimoto | hi sam686: The breakage came from rearranging the order of the steps in mountableItem::pack() --> needed to get mMounted set in the right order |
| 19:41:08 | Watusimoto | I'll need to look at your changes to see why that's no longer needed |
| 19:41:40 | Watusimoto | raptor: if we can specify the game version in the request, and respond with an appropriate motd, then json gives us nothing |
| 19:42:20 | Watusimoto | json is only useful if we want to return some structured data |
| 19:42:38 | Watusimoto | now, at master level, it seems we will always have web server running |
| 19:42:44 | Watusimoto | or at least we should |
| 19:43:09 | Watusimoto | but we don't currently have http support in the game |
| 19:43:18 | Watusimoto | ok, well it's dinner time |
| 19:43:33 | Watusimoto | I'll leave this on and read the chat window when I get back |
| 19:46:16 | sam686 | There was a few places I skipped MountableItem::getActualPos by using "MoveObject::getActualPos"... |
| 19:47:11 | sam686 | but overall, undoing MountableItem::packUpdate seem to be no problem, but not sure if you made any other unpushed changes that may break 018 compatibility.. |
| 19:53:20 | raptor | sam686: we are on 019 now |
| 19:53:40 | raptor | but watusimoto doesn't want to change too much and wants release soon |
| 19:54:02 | sam686 | I can easily make it go back to 018 compatibility as of the latest changes that was pushed.. |
| 19:54:28 | raptor | well, i think you better talk to watusimoto about that... |
| 19:54:36 | sam686 | but I can't see any unpushed changes so not sure if I want to push the changes back to 018 yet.. |
| 19:55:28 | raptor | Watusimoto: so, should we allow some simple HTTP support in the game as a starter? HTTP can be used with parameters to get the appropriate MOTD |
| 19:56:25 | raptor | we'd just need to figure out how to serve it server side... could be a simple php file or some other endpoint |
| 19:57:33 | sam686 | or maybe just have a PHP do a UDP ping to master as a quick way to get some information, just like client pings servers to get some information.. |
| 19:58:08 | sam686 | but TCP/HTTP may be better for much bigger data.. |
| 20:13:53 | Watusimoto | I'm invisible |
| 20:14:06 | raptor | that's good to know |
| 20:14:21 | raptor | hi |
| 20:14:26 | sam686 | use /nick command? |
| 20:15:25 | Watusimoto | i think there should be a 2nd and 3rd levelcontest badge |
| 20:16:08 | raptor | the contest! i forgot - i need to put up the 2nd round of voting... |
| 20:16:18 | Watusimoto | like the BBB winners |
| 20:16:43 | Watusimoto | dad needs to vote |
| 20:16:50 | raptor | tell him to vote! |
| 20:17:14 | Watusimoto | i told him |
| 20:17:31 | raptor | because... there are 4 levels with the same number of votes.. |
| 20:17:31 | Watusimoto | he wants to do it tonight |
| 20:18:00 | raptor | ok, i'll wait until later to start round 2, then |
| 20:19:15 | Watusimoto | the badges should look like the #1 but with a 2 and a 3 |
| 20:19:55 | raptor | you think so> |
| 20:19:57 | raptor | ? |
| 20:20:34 | Watusimoto | what do you meen by ? |
| 20:21:38 | Watusimoto | the ? |
| 20:23:04 | raptor | do you think the badges should only differ by the numbers? |
| 20:23:20 | Watusimoto | perhaps... |
| 20:24:27 | Watusimoto | it would be wierd to have say the walls be another color |
| 20:25:09 | Watusimoto | maybe the numbers? |
| 20:28:28 | Watusimoto | the walls could be gold,silver and bronze?? |
| 20:29:32 | Watusimoto | or the numbers |
| 20:39:53 | Watusimoto | hi -- the real me is back |
| 20:40:18 | Watusimoto | I've voted |
| 20:41:41 | Watusimoto | raptor: one other idea for motd -- you could go, start the handshake with master, and have a special 'i'm only here for the motd' param; server would return the motd |
| 20:41:49 | Watusimoto | and the connection would be terminated |
| 20:42:00 | Watusimoto | that would be quite easy |
| 20:42:06 | Watusimoto | would happen over port 25955 |
| 20:42:59 | Watusimoto | so sam686: I still haven;t looked at your changes, but the nature of the problems you were seeing is that situation we discussed earlier: flag in scope, mount out of scope |
| 20:43:17 | sam686 | yes, fixed most of that.. |
| 20:43:42 | Watusimoto | - if(mIsMounted) |
| 20:43:42 | Watusimoto | + if(mMount) |
| 20:43:44 | Watusimoto | oops! |
| 20:45:56 | | BFLogBot Commit: af7d013fd4fb | Author: sam8641 | Message: Forgot one thing, properly unmount Nexus Flags on ship killed. |
| 20:46:01 | raptor | ok, well, i've decided to stay out of the mount code for a while... |
| 20:50:02 | Watusimoto | raptor: smart |
| 20:50:05 | Watusimoto | sam686: |
| 20:50:08 | Watusimoto | could this block: |
| 20:50:09 | Watusimoto | + NetObject *netObj = connection->resolveGhost(index); |
| 20:50:09 | Watusimoto | + if(netObj) // could be NULL |
| 20:50:09 | Watusimoto | + { |
| 20:50:09 | Watusimoto | + MountableItem *item = static_cast<MountableItem *>(netObj); |
| 20:50:09 | Watusimoto | + item->mountToShip(this); |
| 20:50:11 | Watusimoto | + } |
| 20:50:17 | Watusimoto | be written more succintly like this? |
| 20:50:35 | Watusimoto | MountableItem *item = static_cast<MountableItem *>( connection->resolveGhost(index)); |
| 20:50:53 | Watusimoto | if(item) item->mountToShip(this); |
| 20:50:54 | Watusimoto | ? |
| 20:50:56 | Watusimoto | I think so |
| 20:51:34 | Watusimoto | I'm not sure that going via netObj really does anything, though I agree that a NULL check is needed there |
| 20:52:18 | sam686 | possibly, but there may be a risk of static cast adding or subtracting pointer (from a possible NULL) when one class inherent multiple classes.. |
| 20:52:37 | Watusimoto | you can cast a NULL wihtout problem, I believe |
| 20:52:48 | Watusimoto | and still end up with a NULL |
| 20:53:10 | raptor | my level 10 wizard class elf static casts bolt lightning |
| 20:53:27 | Watusimoto | I dynamic cast it and check it for NULL |
| 20:53:32 | sam686 | static_cast doesn't check for NULL.. |
| 20:53:42 | Watusimoto | yes |
| 20:53:57 | sam686 | lets say we have a memory layout. (using one of my old picture) http://sam6.25u.com/bitfighter/class_memory.gif |
| 20:54:08 | Watusimoto | but I think your code and my code both give the same result |
| 20:54:33 | Watusimoto | ok |
| 20:54:59 | sam686 | if we endead have a NULL object, static cast to NexusHuntersObject will have to subtract, cauing a 0xFFFFF300 pointer instead of NULL |
| 20:56:22 | Watusimoto | so you are saying that, in this case static_cast<NexusHuntersObject *>(obj) != obj? |
| 20:56:48 | sam686 | while it might be no problems right now (Object and BfObject is a same pointer), some changes to Class memory layout could create a problem |
| 20:56:52 | Watusimoto | because the static_cast will shift the address to make room for the EditorObject component? |
| 20:57:04 | sam686 | yes |
| 20:58:50 | sam686 | only dynamic_cast is NULL safe (NULL stays as NULL after dynamic_cast), but can be slower then static_cast..\ |
| 20:58:55 | Watusimoto | and, more importantly static_cast<NexusHuntersObject *>(NULL) != NULL |
| 20:58:57 | Watusimoto | ? |
| 20:59:36 | sam686 | first, what type is NULL? |
| 21:00:13 | sam686 | static_cast<NexusHuntersObject *>((Object*)NULL) != NULL could be true depends on memory layout.. |
| 21:01:00 | sam686 | mostly, can be true when one class inherets multiple classes at once.. |
| 21:02:32 | Watusimoto | yes |
| 21:02:33 | Watusimoto | http://www.codeproject.com/Articles/12935/What-static_cast-is-actually-doing |
| 21:02:40 | Watusimoto | you are explaining case 2 |
| 21:03:48 | sam686 | thats about right, yes |
| 21:04:54 | Watusimoto | from a different article: |
| 21:04:55 | Watusimoto | The standard indicates that if a null pointer value is being cast that the result will be a null pointer value (5.2.9/8 Static cast). |
| 21:05:10 | Watusimoto | reading first answer here: http://stackoverflow.com/questions/1872571/null-pointer-compatibility-with-static-cast |
| 21:07:22 | Watusimoto | see 4.5 here: http://static.usenix.org/publications/compsystems/1989/fall_stroustrup.pdf |
| 21:07:38 | Watusimoto | right from the horse's mouth, so to speak. But I'm still trying to understand what he is saying :-) |
| 21:07:51 | sam686 | maybe I need to test the compiler to see that.. |
| 21:10:06 | Watusimoto | ok, he is saying that static_cast<>(NULL) will always = NULL |
| 21:10:28 | Watusimoto | but I am not sure if he is saying that it must be this way, or just illustrating an issue with a possible solution |
| 21:10:53 | Watusimoto | though is is specifically in the context of multiple inheritance |
| 21:15:46 | Watusimoto | ok, I read the first few pages of that paper, and he is describing how to implement multiple inheritance in an older version of C++ that did not support it |
| 21:16:23 | Watusimoto | it reveals his thinking, but does not prove that modern C++ works that way |
| 21:17:42 | raptor | modern c++ follows a standard?? |
| 21:17:58 | raptor | i'm learning loads of new things today... |
| 21:18:14 | sam686 | http://sam6.25u.com/upload/text1301/130103_15-01-19.txt I guess it indeed stays at 0x00000000 so I guess the compiler is doing NULL checking after all.. |
| 21:19:56 | sam686 | and I thought C++ is going for speed and doesn't do NULL check... |
| 21:20:46 | sam686 | well at least there isn't a null check slowdown if the pointer doesn't need to adjust offset.. |
| 21:21:53 | Watusimoto | he also implies that, in your code, static_cast<aa1*>(c) == static_cast<aa2*>(c) == static_cast<aa3*>(c) |
| 21:22:07 | Watusimoto | and, I think that they all = c |
| 21:22:42 | sam686 | apparently only true if NULL because its the compiler adding a NULL check for anything need to offset for conversion.. |
| 21:23:09 | Watusimoto | well, that same article suggests that when comparing, the addrs are ajusted |
| 21:23:19 | Watusimoto | would you try that, just for the sake of understanding? |
| 21:23:54 | Watusimoto | not that we need to do that anywhere |
| 21:24:00 | sam686 | I did, look at my link of code I pasted.. |
| 21:24:19 | sam686 | all zero (NULL) when I thought it will be not all zero.. |
| 21:26:15 | Watusimoto | sorry, I don't see it... I'd like to see the results of this line: printf("%s", static_cast<aa3*>(c) == static_cast<aa2*>(c) ? "Same" : "Not same"); |
| 21:28:18 | sam686 | printf("%s", static_cast<aa3*>(c) == static_cast<aa2*>(c) ? "Same" : "Not same"); Compiler ERROR!!! |
| 21:28:53 | Watusimoto | what?? |
| 21:29:04 | sam686 | printf("%s", (void*)static_cast<aa3*>(c) == (void*)static_cast<aa2*>(c) ? "Same" : "Not same"); works |
| 21:29:24 | sam686 | it gave me "same" for NULL, "not same" for non-null.. |
| 21:29:36 | Watusimoto | ok, interesting |
| 21:29:37 | Watusimoto | thanks |
| 21:29:57 | Watusimoto | ok, so I'll revert your change, but insert a NULL check |
| 21:30:06 | Watusimoto | if you don't object |
| 21:30:06 | sam686 | ok |
| 21:30:30 | Watusimoto | this was very interesting for me -- I definitely learned some new stuff |
| 21:31:03 | raptor | output from the Linux world: http://pastie.org/5618002 |
| 21:31:37 | sam686 | i guess your linux "%p" actually prints "(nil)".. |
| 21:32:39 | Watusimoto | ok, now back to looking at your fixes for the real problems! |
| 21:33:19 | Watusimoto | I have to say, that this conversation would have been (much) easier on github |
| 21:33:35 | | YoshiSmb has joined |
| 21:33:37 | raptor | please elaborate |
| 21:34:28 | sam686 | is there a hghub.com? |
| 21:34:32 | Watusimoto | I could have inserted comments directly into sam686's commit; he could have responded in line, and then posted his sample code as a <what do they call it? gist?> where I could have commented on individual lines and so on |
| 21:34:42 | YoshiSmb | hi |
| 21:35:07 | Watusimoto | hi |
| 21:35:09 | Watusimoto | looks like no |
| 21:35:15 | Watusimoto | no hghub :-) |
| 21:35:29 | sam686 | hi |
| 21:35:59 | raptor | it's called bitbucket |
| 21:36:06 | Watusimoto | At work, I made a major contribution to a big opensource project, and we had lots of conversation "in the code" about problems and potential fixes |
| 21:36:17 | raptor | oh yeah, how did that go? |
| 21:36:25 | Watusimoto | merged into the main project! |
| 21:36:26 | sam686 | take a look at game::cmeanUp() there is quite a lot of comments there... |
| 21:37:12 | | YoshiSmb_ has joined |
| 21:37:19 | sam686 | Game::cleanUp() i mean.. |
| 21:37:24 | Watusimoto | yes, but what I'm talking about is different |
| 21:37:36 | Watusimoto | they are not actually in the .cpp file, but rather, in the repository |
| 21:38:14 | Watusimoto | I make a comment, you get an email, and can reply to the email or go back to github to insert your comments directly |
| 21:38:21 | Watusimoto | the source isn't modified |
| 21:38:24 | sam686 | only small problem, how easily can you read the comments if it is not in .cpp file? |
| 21:38:31 | Watusimoto | on github.com |
| 21:38:33 | raptor | social coding |
| 21:38:36 | Watusimoto | it really is |
| 21:38:44 | Watusimoto | I never understood that term until this week |
| 21:38:57 | | YoshiSmb Quit (Ping timeout: 252 seconds) |
| 21:39:05 | Watusimoto | I also think I like git a little better than hg |
| 21:39:13 | sam686 | another problem may be, I mostly never used git / github before... |
| 21:39:20 | Watusimoto | though not enough that I would suggest switching for the sake of it |
| 21:39:31 | Watusimoto | git and mercurial are very similar |
| 21:39:38 | Watusimoto | github and google code are very different |
| 21:40:05 | Watusimoto | the main advantage that I see is not git vs mercurial, but the environment surrounding it |
| 21:40:20 | | YoshiSmb_ is now known as YoshiSmb |
| 21:40:31 | Watusimoto | even my son has a github repo now :-) |
| 21:41:12 | raptor | how do you use git on windows outside of an IDE? |
| 21:42:28 | sam686 | don't know, at one time I used git, I just use hg-hit so everything can be done with hg commands / hg gut.. |
| 21:43:13 | sam686 | however, hg-git can't exactly handle really huge millions of commits project on what I only have a slow computer back then.. |
| 21:44:40 | sam686 | At one time I was trying to inport very huge git into HG, it took hours, only to have it CRASH and theres nothing in HG.. |
| 21:45:09 | raptor | Watusimoto: your son says you need to vote in round 1 of level design contest |
| 21:45:22 | Watusimoto | done, as reported earlier |
| 21:45:24 | Watusimoto | :-) |
| 21:45:32 | Watusimoto | I voted strategically |
| 21:45:38 | Watusimoto | I think the top 4 can advance |
| 21:45:47 | raptor | did you even it out more!? |
| 21:45:58 | Watusimoto | I didn;t alter the leading 4 |
| 21:46:04 | raptor | h |
| 21:46:06 | raptor | A |
| 21:46:07 | Watusimoto | let's just leave it at that |
| 21:46:12 | raptor | haha, ok |
| 21:46:34 | Watusimoto | but I wasn;t necessarily voting for the best level, if you understand where I'm ging |
| 21:46:41 | raptor | yes yes.. |
| 21:46:50 | Watusimoto | you are a father :-) |
| 21:46:54 | raptor | :) |
| 21:47:12 | raptor | so should we have 3 rounds |
| 21:47:14 | raptor | ? |
| 21:47:25 | raptor | or this one will be final... unless tie |
| 21:48:12 | raptor | shoudl i make it multiple select, or radio? |
| 21:48:20 | raptor | err single-select |
| 21:48:32 | raptor | because i don't think we've had one with 4 before.. |
| 21:49:14 | Watusimoto | just put up the top 4 and top vote getter wins |
| 21:49:20 | Watusimoto | no need for two more rounds |
| 21:49:36 | raptor | single select? |
| 21:49:42 | raptor | that's my issue |
| 21:51:16 | Watusimoto | you can have github post commits directly to irc |
| 21:51:32 | raptor | do they have a bot |
| 21:51:33 | Watusimoto | or to twitter! |
| 21:51:43 | Watusimoto | it's integrated into github, looks like |
| 21:51:51 | raptor | they'd have to have a bot |
| 21:52:14 | raptor | irc channel's typically don't allow posting from the 'outside', only users in the channel |
| 21:52:18 | raptor | channels |
| 21:52:23 | Watusimoto | you can also have them make posts to random http addresses |
| 21:52:43 | raptor | that's what we do with google code |
| 21:53:01 | Watusimoto | you specify irc port, server, room, nick, pw, and a regex that does ?? |
| 21:53:15 | raptor | so bot |
| 21:53:15 | Watusimoto | and a bunch of options I don't understand |
| 21:53:20 | raptor | linky? |
| 21:53:58 | Watusimoto | linky? |
| 21:54:41 | raptor | uhh, i mean.. could you please give me an internet hyperlink to the location at which you are reading about github's IRC bot |
| 21:55:46 | Watusimoto | I creaetd a repository and it was one of the "hooks" I could implement |
| 21:55:49 | Watusimoto | no link, sorry |
| 21:55:50 | Watusimoto | https://gist.github.com/4447740 |
| 21:56:27 | raptor | gist, ha |
| 21:57:54 | Watusimoto | I can't see how to comment inline with a gist |
| 21:58:09 | raptor | final round!: http://bitfighter.org/forums/viewtopic.php?f=13&t=1657 |
| 21:58:21 | Watusimoto | But here is a url for a specific line: |
| 21:58:21 | Watusimoto | https://gist.github.com/4447740#file-gistfile1-txt-L19 |
| 21:58:48 | Watusimoto | or a block |
| 21:58:48 | Watusimoto | https://gist.github.com/4447740#file-gistfile1-txt-L19-L33 |
| 21:59:48 | Watusimoto | I love that every line of every bit of code has it's own url |
| 22:11:33 | Watusimoto | ha |
| 22:11:34 | Watusimoto | - if(mIsMounted) |
| 22:11:35 | Watusimoto | + if(mMount) |
| 22:11:43 | Watusimoto | I made that same fix in my repo! |
| 22:20:01 | Watusimoto | sam686: what happens when this executes? |
| 22:20:15 | Watusimoto | if(!theShip->isRobot()) |
| 22:20:15 | Watusimoto | + theShip->getControllingClient()->s2cCreditEnergy(EnergyItemFillip); |
| 22:20:29 | Watusimoto | does it crash? |
| 22:21:40 | sam686 | don't know, it could crash on: null theShip.. I don't know the whole code of where you putting it in, yet.. |
| 22:21:48 | raptor | haha, theShip |
| 22:21:58 | Watusimoto | oh sorry, it was from your checkin |
| 22:22:08 | Watusimoto | it is when a bot picks up an energy item |
| 22:22:18 | Watusimoto | you added the check to make sure ship isn't a bot |
| 22:22:22 | | YoshiSmb_ has joined |
| 22:22:43 | sam686 | oh, the robot fix I added "if(!theShip->isRobot())" |
| 22:22:47 | Watusimoto | so to clarify, what happens when theShip is a bot and this executes: theShip->getControllingClient()->s2cCreditEnergy(EnergyItemFillip); |
| 22:23:13 | sam686 | crash due to NULL getControllingClient() |
| 22:23:20 | Watusimoto | ok |
| 22:23:35 | Watusimoto | Your fix will definitely work, but I'm thinking we need a more general solution |
| 22:24:12 | sam686 | want me to use if(theShip->getControllingClient()) instead of robot check? |
| 22:24:17 | Watusimoto | something like a bot returns some sort of bot controlling client that allows you to call stuff like s2c but does nothing |
| 22:24:40 | Watusimoto | because I think we'll keep running into this particular class of bugs |
| 22:24:43 | | YoshiSmb Quit (Ping timeout: 252 seconds) |
| 22:24:45 | sam686 | used to when I had a dummy GameConnection for robots... |
| 22:24:56 | Watusimoto | did I remove that? :-) |
| 22:24:59 | | YoshiSmb_ is now known as YoshiSmb |
| 22:25:01 | sam686 | but there is no more GameConnection for robots.. yet. |
| 22:25:04 | sam686 | yes |
| 22:25:07 | Watusimoto | sorry!! |
| 22:26:20 | Watusimoto | maybe something like this? |
| 22:26:21 | Watusimoto | class RobotGameConnection: public GameConnection |
| 22:27:13 | Watusimoto | no, that's not good |
| 22:27:29 | Watusimoto | I don;t want to implement all these methods twice, once with an empty body |
| 22:28:27 | Watusimoto | there are a lot of methods in there! |
| 22:28:31 | Watusimoto | ah, but maybe... |
| 22:28:32 | raptor | we have a patch for /announce! |
| 22:28:43 | raptor | sort of... hmmm hard to import... |
| 22:28:52 | sam686 | maybe only do some methods, not all... |
| 22:29:04 | raptor | oops, it's also reversed.. |
| 22:29:22 | Watusimoto | maybe we can leverage the macros that are used to delcare rpcs somehow |
| 22:29:40 | Watusimoto | raptor: earlier he gave me an entire project |
| 22:29:53 | Watusimoto | I asked for a diff; haven't looked at it yet |
| 22:30:24 | sam686 | maybe you can just cram a regular virtual c2sSomething in robot class instead a TNL macro... |
| 22:30:58 | Watusimoto | maybe... this will require some thought |
| 22:32:11 | | Watusimoto_ has joined |
| 22:32:31 | raptor | well, here is his cleaned up patch: http://pastie.org/5618361 |
| 22:32:55 | raptor | looks like there is no server message sending? |
| 22:33:53 | sam686 | looks like no message sending, if that is a case, you will only be announceing yourself only... |
| 22:35:25 | Watusimoto_ | there's lots of reasons why this won;t work |
| 22:35:36 | | Watusimoto Quit (Ping timeout: 252 seconds) |
| 22:35:50 | Watusimoto_ | I'll tell him to try opening two clients and seeing if one can announce to the other |
| 22:36:03 | Watusimoto_ | sam686: what does this mean? |
| 22:36:04 | Watusimoto_ | + DISMOUNT_NORMAL, |
| 22:36:04 | Watusimoto_ | + DISMOUNT_MOUNT_WAS_KILLED, |
| 22:36:04 | Watusimoto_ | + DISMOUNT_IGNORE_GAME_TYPE, |
| 22:36:14 | Watusimoto_ | mountwaskilled, ok, I get that |
| 22:36:24 | Watusimoto_ | normal must mean where mount was not killed |
| 22:36:30 | Watusimoto_ | what is ignoregametype for? |
| 22:36:52 | sam686 | DISMOUNT_IGNORE_GAME_TYPE is something to prevent seeing extra messages for flag capturing in CTF/retrieve/hold/zone |
| 22:37:06 | Watusimoto_ | ah |
| 22:39:38 | kaen | wow that was a lot of irc backlog |
| 22:39:40 | kaen | but I read it all |
| 22:40:06 | raptor | very dutiful! |
| 22:40:33 | kaen | I enjoyed the discussion re github and bitbucket |
| 22:40:48 | kaen | (mostly the github part) |
| 22:49:44 | Watusimoto_ | whew |
| 22:49:52 | Watusimoto_ | left him a long message at http://www.google-melange.com/gci/task/view/google/gci2012/8025216 |
| 22:52:45 | Watusimoto_ | dang, here I am stuck on the same hg problem I had waaaay back when raptor and sam686 first joined the project (except it was an svn problem them) |
| 22:52:46 | Watusimoto_ | then |
| 22:53:09 | raptor | say waht? |
| 22:53:23 | Watusimoto_ | I am going through sam's stuff, and I want to selectively merge parts of it, so I can focus on the bits that require more thought |
| 22:53:33 | Watusimoto_ | but instead it seems to be all or nothing |
| 22:53:51 | raptor | that's called transplanting |
| 22:54:01 | Watusimoto_ | ugh |
| 22:54:12 | raptor | and transplants *always* change tree structure |
| 22:54:20 | Watusimoto_ | I need a plugin, don't I |
| 22:54:29 | Watusimoto_ | any chance this would screw up our repo? |
| 22:54:36 | raptor | hgext.transplant= |
| 22:54:42 | Watusimoto_ | because if there's a chance, you know I'll do it! |
| 22:54:47 | raptor | sure it will |
| 22:55:16 | raptor | if you want to transplant specific parts, then a new revision will be created for those and have no relation to other revisions |
| 22:55:18 | Watusimoto_ | "sure it will" like in a bad way> |
| 22:55:28 | raptor | other than being similar code |
| 22:55:49 | raptor | http://mercurial.selenic.com/wiki/TransplantExtension |
| 22:55:58 | Watusimoto_ | ok, maybe I shoudl read this |
| 22:56:01 | Watusimoto_ | for once |
| 22:56:18 | raptor | :) |
| 22:57:02 | Watusimoto_ | well, I have hg 2.4 |
| 22:57:15 | Watusimoto_ | the first line of the docs says: The graft command provides similar functionality in Mercurial 2.0 or newer and has smarter merge capability. |
| 22:57:36 | Watusimoto_ | so maybe I should figure out what graft is/does? |
| 22:57:38 | raptor | oh haha - i forgot about that... |
| 22:57:49 | raptor | now i'm behind teh times... |
| 22:57:56 | raptor | and should read that, too |
| 22:58:16 | Watusimoto_ | well, don't read that as it isn't about graft |
| 22:58:25 | Watusimoto_ | http://www.selenic.com/hg/help/graft |
| 22:59:16 | raptor | and if you can handle ascii art: http://stackoverflow.com/questions/9598704/consequences-of-using-graft-in-mercurial |
| 23:02:16 | Watusimoto_ | seeing if the new version of tortoise supports graft |
| 23:02:20 | Watusimoto_ | (it might) |
| 23:06:55 | Watusimoto_ | ok while I'm digesting that, do you know of any way I can "combine" revisions, say compressing 2 or 3 revisions into 1 before I merge, to make them more understandable as a collection? |
| 23:08:40 | | YoshiSmb_ has joined |
| 23:08:41 | | YoshiSmb Quit (Ping timeout: 248 seconds) |
| 23:09:07 | raptor | are they committed? |
| 23:09:22 | | YoshiSmb_ is now known as YoshiSmb |
| 23:09:34 | raptor | if so, then you need to do history editing... |
| 23:10:16 | | LordDVG Quit (Remote host closed the connection) |
| 23:10:22 | raptor | http://mercurial.selenic.com/wiki/HisteditExtension |
| 23:10:25 | raptor | use 'fold' |
| 23:11:02 | raptor | but make sure it is done on revisions not yet submitted to our main repo... i'm not sure if server side can handle history editing without being really painful |
| 23:21:06 | kaen | typically not. |
| 23:28:03 | Watusimoto_ | I want to merge some of sam's commis so I canbetter understand them as a whole |
| 23:31:01 | Watusimoto_ | phooey |
| 23:31:18 | Watusimoto_ | ok, I have a nightly build of tortoise, which has the graft command built in |
| 23:31:20 | Watusimoto_ | grat |
| 23:31:22 | Watusimoto_ | great |
| 23:31:32 | Watusimoto_ | but I really only want to graft parts of a revision |
| 23:31:38 | Watusimoto_ | dang |
| 23:31:42 | raptor | oh ho |
| 23:32:16 | raptor | i'm not sure how to do that without turning the repo into a patch queue |
| 23:32:30 | Watusimoto_ | Can I split a revision into two subrevisions? |
| 23:32:44 | Watusimoto_ | all of this is totally doable in principle |
| 23:32:53 | Watusimoto_ | and it seems quite reasonable to want to do |
| 23:32:57 | Watusimoto_ | argh |
| 23:33:16 | raptor | yes, it's called a patch queue - things are kept track of in diff sections instead of changesets: http://mercurial.selenic.com/wiki/MqExtension |
| 23:33:28 | raptor | but... |
| 23:33:44 | Watusimoto_ | I've avoided that one so far |
| 23:33:49 | raptor | yeah |
| 23:33:52 | raptor | it's advanced |
| 23:34:04 | Watusimoto_ | too advanced for someone like me :-) |
| 23:34:06 | Watusimoto_ | ? |
| 23:34:11 | raptor | no of course not |
| 23:34:47 | raptor | but it's a lot of reading... :) |
| 23:34:53 | Watusimoto_ | so yes |
| 23:34:57 | raptor | ha |
| 23:45:22 | Watusimoto_ | sigh. I can't figure it out. Need to read the docs |
| 23:45:38 | Watusimoto_ | http://mercurial.selenic.com/wiki/MqTutorial --> I have the problem in 2.2 |
| 23:45:49 | Watusimoto_ | with mq, the solution is easy! |
| 23:47:56 | raptor | haha |
| 23:48:06 | raptor | i should learn to use queues, too, someday... |
| 23:52:11 | Watusimoto_ | but they don't see to solve my problem |
| 23:52:29 | Watusimoto_ | I want to break sam's commits up into patches; but they only seem to work for commits I make |
| 23:52:36 | Watusimoto_ | or rather as an alternative to commits |
| 23:52:45 | Watusimoto_ | still, could be useful |