#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2012-06-18

Timestamps are in GMT/BST.

00:00:05sam686bug: s_bot quits trying to aim at enemy turrets and forcefield projector
00:02:42BFLogBot - Commit 83e94723fadf | Author: sam8641 | Log: Fix reapir wasn't working at all.
00:06:42raptorhow did repair get broken?
00:08:11sam686the order was somehow reversed... if(mRepairTargets.size() == 0) mModulePrimaryActive[ModuleRepair] = false; and later if(isModulePrimaryActive(ModuleRepair) ALWAYS FALSE)
00:09:11sam686it wasn't findRepairTargets(); to make mRepairTargets.size () not zero
00:10:36raptorha! what did you do to crash the server?
00:10:58sam686i got a crash trying to teleport too, index out of range...
00:11:46sam686mDests[dest] where mDest.size() == 1 and dest == 2 ??? (teleporter.cpp line 277
00:12:35raptordid you try and go into the green teleport, or blue?
00:12:41sam686blue
00:13:05raptorok i'm doing a full rebuild...
00:14:53raptorwow
00:14:55raptorwhat did i do
00:16:33raptorif you place a teleport exit, then go into the blue one it crashes...
00:17:00Watusimotogoing to bed... something very odd in last commit... everything went automatically, but there was an unusual message. And it seems I broke something in the F3 screen. Will get it tomorrow.
00:17:06Watusimotonight
00:17:20raptornight
00:17:38Watusimotosorry, that's F3 in the editor -- game params
00:17:41Watusimotocan't change gametype
00:17:45Watusimotophooey
00:17:45BFLogBot - Commit 7f35b5752ca0 | Author: watusim...@bitfighter.org | Log: Minor refactor -- lessen reliance on gGameTypes array
00:17:47BFLogBot - Commit 4ee36cf5bd77 | Author: watusim...@bitfighter.org | Log: Add getIndex method to vector
00:17:47Watusimotonight
00:17:48BFLogBot - Commit f924d9f19bce | Author: watusim...@bitfighter.org | Log: A little less use of gGameTypeNames
00:17:50BFLogBot - Commit d2a028e31045 | Author: watusim...@bitfighter.org | Log: Merge
00:20:15raptorsam686: does 'stream->writeFlag' *always* send a bit stream?
00:20:26raptorfrom server to client
00:22:52BFLogBot - Commit f32d6b32454a | Author: sam8641 | Log: Fix crash from out of range teleporter dest problem.
00:23:26Watusimoto Quit (Ping timeout: 246 seconds)
00:25:58sam686stream-<writeflag writes one bit to stream
00:27:19sam686if you need to write more then one bit at a time, you can try writeInt(value, number-of-bits)
00:27:48raptoryes but does it *always* write 1 bit - even if it evaluates to false?
00:28:02sam686it writes one bit only, all the time.
00:28:14sam686one bit holds 2 values: 1 or 0 (true or false)
00:29:26sam686then later readFlag() always reads one bit (1 or 0) (true or false)
00:29:33raptorbecause the real reason of the crash:
00:29:46raptor// ExitPointChangedMask
00:29:47raptor if(stream->readFlag())
00:30:03raptorin unpackUpdate is always set for non-engineered teleporters
00:30:19raptornot sure why yet
00:30:45raptorthat flag is true for some reason
00:31:12sam686updateMask == 0xFFFFFFFF for the first time to send everything to client..
00:31:17raptordoh!
00:31:21raptorthat's why, then..
00:31:27raptorrats, i forgot about that..
00:32:39sam686can do this: if(stream->writeFlag((updateMask & ExitPointChangedMask) && mEngineered))
00:35:22sam686or maybe because of having "stream->writeFlag(mEngineered);", can do if(mEngineered) if(stream->writeFlag(updateMask & ExitPointChangedMask))
00:35:46sam686that way it saves one bit
00:37:25raptorthats a good idea
00:41:54raptori can save more bits too by wrapping the healthMask as well
00:46:05raptorok now it's really fixed
00:47:55BFLogBot - Commit 531f998dc0c6 | Author: buckyballreaction | Log: Really fix the crashing problem I introduced
01:07:31raptorsorry kaen, my client is a bit messed up at the moment...
01:07:43kaenI was just being silly anyway :)
01:09:08raptora ha! a drive by fragging
01:09:44kaenbahaha. that's how we roll in this quadrant
01:09:54raptor*fly by...
01:10:28raptorso how are you doing in your current task? I know it's kind of a big one...
01:15:00raptor doesn't want kaen to get discouraged...
01:17:32kaennope, I'm growing more confident with every change
01:17:48kaenI would have wrapped it up today but I've been engaging in real life more than usual this weekend
01:21:14raptori approve of real life
01:25:48sam686there seem to be a bug, if a resource item is in between a ship and turret (both same team), turret don't fire at resource, but if ship moves away, turret fires at resource..
01:29:25kaenone interesting effect of these fixes (or at least my interpretation of watu's vision) is that firing while moving will now cost more than firing while stationary
01:29:28kaenwhich was not the case before
01:30:10kaenwell, that's not strictly true, but energy *will* be consumed faster while moving
01:30:21kaener, not recharge as quickly to be precise
01:34:33Little_Apple has joined
01:34:37Little_Applehellooo
01:35:30sam686change level crash (index out of range) as if it thinks i have level permission but actually the server thinks i don't have level permission..
01:37:32kaenahoy, diminutive pomaceous fruit
01:39:58Little_Applehelloo capin' jack sparrow
01:41:20kaenthat, sir, is a fine moniker.
01:41:22kaenI approve.
01:48:49BFLogBot - Commit fbdbafcce92a | Author: sam8641 | Log: Fix a problem where arranged connection doesn't reset the client's level change permission to false.
01:56:07Little_AppleGOOBAI
01:56:09Little_Apple Quit (Quit: Page closed)
02:25:10raptorhi
02:25:12raptori'm back
02:25:19kaenwb
02:25:20raptorsam686: where are all these random bugs coming from?
02:25:29raptorthanks!
02:26:18sam686what random bugs?
02:26:41raptorthe repair bug, the /addbot bug
02:27:23sam686the /addbot bug doing nothing is really the result of client thinking it has level change permission, but the server think that client don't have level change permission..
02:28:18sam686when connecting arranged after hosting or being in a server with levelchange, it wasn't setting level change back to false..
02:32:14raptorfixed that teleport not playing sound bug
02:32:22raptorwhen destroyed after travelling through..
02:33:54BFLogBot - Commit a4247f5600a3 | Author: buckyballreaction | Log: Fix teleport explosion sequence not completing when you destroy the teleport quickly after traveling through it
02:54:11koda Quit (Quit: koda)
03:08:59BFLogBot - Commit 8a1c47e6ce6c | Author: buckyballreaction | Log: If ship is destroyed before placing teleport exit then the teleport is destroyed, too
03:16:25raptorok, i'm out for the night - good night all!
03:16:34kaennight!
03:16:57raptor Quit ()
06:24:25koda has joined
06:34:49koda Quit (Quit: you can't say 'hello' without saying 'hell')
07:15:55kodaws has joined
07:53:28watusimoto has joined
07:53:29ChanServ sets mode +o watusimoto
08:25:25sam686 has left
08:34:53kaen Quit (Ping timeout: 245 seconds)
08:35:55kaen has joined
08:45:14kaen Quit (Ping timeout: 256 seconds)
10:38:14LordDVG has joined
11:01:23kaen has joined
11:20:31kaen Quit (Ping timeout: 264 seconds)
11:21:25kaen has joined
13:17:43LordDVG Quit (Remote host closed the connection)
13:27:35IAmBeard has joined
14:07:17kodabbws has joined
14:10:34kodaws Quit (Ping timeout: 245 seconds)
14:15:28kaenwatusimoto, I have a couple of balance related questions: since moving and firing costs more than being stationary and firing, I've made moving and firing cost the same as firing did previously. (the net effect is that being stationary and firing is now a little cheaper)
14:16:14kaenalso, I'm not sure exactly how to scale the consumption of module combinations, but for the moment I'm using a percentage of the sum cost (70% for testing)
14:17:16kaenI think those are the only two for now, actually.
14:50:46IAmBeard Quit (Quit: Leaving)
15:07:17Little_Apple has joined
15:07:25Little_Applehelloo
15:07:37kaenheloo
15:07:48kaens/oo/loo/
15:09:04kaenwatusimoto, here's a patch so you can play around with the current state of things: http://pyrop.us/energy_redux.diff
15:15:19raptor has joined
15:15:20ChanServ sets mode +o raptor
15:16:08raptorbuenos!
15:17:08raptorwatusimoto: what a bogus virus that is
15:20:53raptorkaen: your first handling of firing when not moving (being a little cheaper) seems right to me
15:24:12Little_Applepoot!
15:25:25raptoroh hi Little_Apple
15:25:33Little_Applehhihi
15:34:08kaenraptor, here's a patch if you have time to play with it: http://pyrop.us/energy_redux.diff
15:34:28raptorcompiling now :)
15:35:34kaenI'm not sure about the module combo scaling rate (70% of total right now)
15:35:54raptoryou mean module energy usage is not strictly additive?
15:37:13kaenfor that particular case, it isn't
15:37:31kaenI remember him using the word 'proportionately' so that's what I did
15:39:00raptorso far, seems fine to me - most noticeably is being able to recharge energy on a zone while shooting
15:40:06kaenah, yes, that was the other point of uncertainty. I set the zone modifiers so that the recharge rate while moving was the same as the old rate
15:40:37kaeni.e. followed the same pattern I did with module and weapon rate rescaling, although I imagine I should have used the *idle* rate
15:45:18raptorinteresting - you adjusted all the module costs, too
15:45:47raptoreverything went up 6000
15:45:48raptoror so
15:46:00kaenshould be exactly 6000
15:46:07kaenthat's the recharge you get when moving
15:46:13kaeni.e. 8000 - 2000
15:48:23kaenI actually don't think there was a change to weapon costs in the final patch
15:48:32kaenall of that just worked
15:48:57kaenchange to the values in the table, I mean
15:49:09raptorlooks like energy recharges with spawn shield?
15:49:19raptori can't remember the old behavior... checking..
15:49:55kaenyou're right
15:49:58kaenit shouldn't
15:50:21raptorman, so many combos...
15:50:29kaenlol yeah
15:50:49kaenI calculated that value: 70% is the minimum you can have and still respect point number 10
15:51:20kaenthe constraining combo being shield+repair
15:51:37raptoryeah those are the thirsty ones
15:51:53kaenrepair is tied for cheapest iirc
15:52:04raptorreally?
15:52:07kaenoh cloak
15:52:13kaenis what I meant
15:52:17kaensorry I just woke up
15:53:14kaenanyway, minimumScalingRate = mostExpensiveModule / (cheapestModule + mostExepensiveModule)
15:53:32raptorthat's for module combos
15:53:37kaenright
15:53:44raptorlooks good
15:53:56kaento prevent using a cheap module to cheapen an expensive one
15:54:18raptorsmart
15:54:49kaenthanks :) I'm going to make breakfast. bbiab
15:56:53raptorwhen you get back - i found a really weird combo: armor + anything makes the energy usage *really* cheap
15:57:26raptoryou may need to exclude modules with 0 drain from that miminumScalingRate
15:57:50raptorok, enough testing for me, for now... back to work
16:06:30Little_Appleyay work
16:10:56kaenthanks a bunch man
16:12:47raptorhi
16:21:46Little_Applearg?
16:22:02raptorshort for: argument?
16:22:29raptoror are you practicing troll-as-a-second-language?
16:23:17Little_Appleits pirate. it means 'sup.
16:24:51Little_Applelaaaattteeerrrrsssss
16:24:55Little_Apple Quit (Quit: Page closed)
16:25:21BFLogBot - Commit c9dc880ac12b | Author: buckyballreaction | Log: Fix engineer help messages
16:35:23kodabbws Quit (Read error: Connection reset by peer)
16:49:25watusimoto Quit (Ping timeout: 248 seconds)
17:04:14Watusimoto has joined
17:21:43Watusimoto Quit (Ping timeout: 265 seconds)
18:14:03Watusimoto has joined
18:15:11Watusimotohi
18:15:18raptorhello
18:15:35BFLogBot - Commit 70d8e9d34a7a | Author: watusim...@bitfighter.org | Log: Finish fixing gGameTypeNames issues... F3 menu in editor working again
18:15:37BFLogBot - Commit f49b73b670ab | Author: watusim...@bitfighter.org | Log: Merge
18:16:35raptorluaObject.cpp:1158:8: error: macro "GAME_TYPE_ITEM" passed 3 arguments, but takes just 2
18:35:58WatusimotoI'll fix it
18:36:00raptorWatusimoto: want me to fix?
18:36:02raptorha
18:36:03raptorok
18:36:50sam686 has joined
18:36:50ChanServ sets mode +v sam686
18:38:16Watusimotofix pushed
18:38:40raptorthat was simple enough
18:40:41BFLogBot - Commit b7d62cb52089 | Author: watusim...@bitfighter.org | Log: Fix error raptor found
18:40:47Watusimotoindeed
18:40:57Watusimotonot sure why vc++ was ok with that...
18:41:17raptor'smart analysis'
18:51:14raptorso teleporter is getting better... if you are killed before placing the exit, the entrance blows up
18:51:26raptorbut i'm not sure how to disable weapons/modules quite yet...
18:56:01raptormaybe just diable the key presses...
18:58:27Watusimotowe have a okToUseModules method, not sure what it's for or whether it would work
18:58:38raptorlooking..
18:59:03raptormaybe i'll have the helperMenu just hijack the keys... although that's only client-side
18:59:43kaenraptor, I fixed the issues you mentioned
18:59:50raptorgreat!
18:59:51kaenthe updated patch is at http://pyrop.us/energy_fix.diff
19:00:14kaenWatusimoto, I'm not sure how you envisioned the module combination energy consumption
19:00:23kaenso I made it 70% of the sum total
19:02:16raptorkaen: i think a typo went into shipItems.cpp
19:02:25kaen:|
19:02:43raptorthere's just one line edited: it adds a slash in the license header
19:03:11kaenoh wow. thanks
19:03:24raptoralso ship.h: float -> F32
19:03:27raptorwhich
19:03:36raptori'm actually suprised at how well you've adapted to our code
19:05:19raptorwait wait wait - since when did float be allowed to be declared 'static const' in a header??
19:05:33raptori thought that was only part of c++11
19:05:42raptorbut i'm compiling, none-the-less
19:06:08kaenoh wow. I'm still learning the subtleties of c++
19:06:36raptorit's very painful sometimes...
19:09:26kaenyep. I'm definitely explicitly violating the standard
19:09:36raptorha!
19:09:44kaeninitializing a non integral constant in a class
19:10:02kaencurious. I don't even get a warning from g++
19:10:07raptoryeah, me neither...
19:10:20raptormaybe gcc was updated recently to compile for the new standard?
19:10:24kaenthose GNU hippies
19:10:28raptorby default..
19:10:28kaenperhaps
19:10:29raptorhaha
19:10:57kaenso I should just leave it in the function?
19:11:35raptorit can be declared in the .h, but i'd put the definition at the top of the .cpp
19:11:45raptorbecause i bet it'll break compiling on Mac
19:12:47kaenah I see
19:13:42raptorkaen: those last fixes look good
19:13:50kaenshweet
19:17:17kaenput this in ship.cpp just inside the namespace:
19:17:18kaenconst F32 Ship::ModuleCombinationScale = 0.70f;
19:17:23kaenis that what I'm looking for?
19:17:36raptorperfect
19:17:40kaenphew
19:17:57raptoryou'll see various other classes peppered with floats declared like that...
19:18:39kaenalright
19:19:05kaeng++ says it defaults to gnu++98
19:19:49kaenshould we maybe be building with -ansi ?
19:20:45BFLogBot - Commit 2bd2ca1ba669 | Author: watusim...@bitfighter.org | Log: Rename confusingly named function
19:25:38raptorthe okToUseModules was used for soccer ball carrying...
19:25:47kaenlol
19:25:47BFLogBot - Commit 23e059a7887c | Author: watusim...@bitfighter.org | Log: Pull static into function
19:27:00raptorwhich has been stripped from the code in (016)?
20:02:04raptormaybe should release a standalone windows ZIP in addition to the installer?
20:02:24raptorbecause so many people have been hoodwinked into using norton antivirus
20:02:33kaenis it just the installer causing the positive?
20:02:38raptoryes
20:02:46kaenwell then I'd say definitely
20:02:52raptorand Watusimoto even sent them an e-mail about it...
20:03:04kaenoh, you can submit the project to the whitelist
20:03:07kaenthere's a form for it
20:03:19raptoryes, he did that i think? right Watusimoto?
20:03:32kaen:/
20:20:23raptorarchitectural question to sam686 or Watusimoto: when using packUpdate / unpackUpdate, why are we doing the following?:
20:20:40raptorif(stream->writeFlag(updateMask & SomeMask))
20:20:45raptorinstead of:
20:20:51raptorif(updateMask & PositionMask))
20:21:24raptorbecause the first will *always* add a bit to the stream; in which case, what is the purpose of the mask?
20:21:39raptor(ignore 'PositionMask' - it could be any mask)
20:22:33sam686bool(updateMask & SomeMask) is the same as ((updateMask & SomeMask) != 0)
20:23:35sam686stream->writeFlag simply returns the game bool value as the input
20:24:18sam686also makes it easier to make both the unpack (read) and pack (write) equal..
20:24:54raptoryes, i understand that
20:25:19sam686if(updateMask & someMask) stream->writeFlag(true); else stream->writeFlag(false); // gets more messy, doesn't it?
20:25:43raptorbut why should we do stream->writeFlag at all if the mask is already being sent? we can just check the mask again on the client side since the mask is always sent
20:26:03raptoryes, but we could save loads of bandwidth everywhere, couldn't we?
20:26:27sam686the full 32 bit mask is not send (the unpack have no idea what the mask is)
20:26:34raptorwhat!?
20:27:25raptorok, if that is true, then my whole argument breaks down... i thought that the mask was sent as a minimum...
20:28:46sam686the full 32 bit mask could be sent manually with stream->writeInt(updateMask, 32); but i guess i don't see that being done..
20:33:03raptortnlNetObject.h :315
20:33:11raptorthe comment above that line says you are right sam686
20:35:06sam686geee i wonder how you would try to get the updateMask in unpackUpdate if you thought you were right??
20:35:16raptorha
20:35:29raptorobviously i cannot according to that comment
20:35:41raptorok, then - ignore my architectural question :)
20:35:52sam686ok..
20:47:00Watusimoto>>> Watusimoto, I'm not sure how you envisioned the module combination energy consumption
20:47:19Watusimotonot sure I understand the question, but I wsa thinking about this this morning
20:47:32WatusimotoI thought we could leave the module costs as they are currently
20:47:43Watusimotocontinuously add recharge as we discussed
20:48:08Watusimotosubtract module as a simple addition of the costs of all modules activated
20:48:40Watusimotothen finally, if 1 or more modules are in use, we subtract a quantity of energy equal to the recharge rate
20:49:02Watusimotothat should be much clearer than what we;ve got, and would exactly replicate the energy model we have
20:49:35kaenregarding the modules, it would.
20:49:46Watusimoto>>>> yes, he did that i think? right Watusimoto?
20:49:48Watusimotoyes
20:49:51Watusimotohe did
20:50:25kaenbeing stationary and firing is now cheaper, (since firing doesn't count as being not-idle)
20:50:43kaenis that inline with your vision?
20:50:54kaens/inline/in line/
20:51:20Watusimotosam's right -- mask is not sent -- only used as a trigger to determine what is sent
20:52:12Watusimoto>>>> being stationary and firing is now cheaper, (since firing doesn't count as being not-idle)
20:52:25WatusimotoI think that's what we decided, no?
20:53:17raptoryes, it is
20:57:36kaenalright, do want a patch or should I push to the clone?
20:57:41kaendo you, rather
20:57:56raptorto the clone!
21:02:37kaenfull steam ahead, then
21:02:40kaenpush'd
21:02:55raptori'll pull
21:03:17kaenI squashed it into one so it'll be easy to revert ^^
21:06:47raptorpushed!
21:06:52raptorgood job
21:10:59BFLogBot - Commit d7c317deff9b | Author: kaen | Log: Rewrite energy consumption and recharging rules
21:14:29kaenthanks!
21:15:02raptorthank you!
21:15:12kaenmy pleasure
21:24:16kaenany suggestions for the next one?
21:25:59sam686possible inaccuracy, mEnergy -= EnergyRechargeRateInFriendlyLoadoutZoneModifier * timeInSeconds; where mEnergy is int, and timeInSeconds is a floating point...
21:26:28kaenall of the rates are/were calculated that way
21:27:34kaenit just gets cast to an int by truncation, right?
21:27:41sam686yes
21:29:31kaenand timeInSeconds is fractional, so it really must be a float
21:32:02sam686there is F32 timeInSeconds = mCurrentMove.time * 0.001f; mCurrentMove.time is 32 bit unsigned int, i guess we could possibly divide all the constant energy by 1000 and multiply by milliseconds....
21:32:11sam686or we can make mEnergy a floating point
21:33:56kaenI guess I don't see the problem you're solving. could you enlighten me?
21:34:43raptori say stay with S32 for mEnergy
21:34:58raptorbecasue it's easier to add 1 + 1 than 0.432894073 + 0.432789143
21:35:11raptor(in my head at least)
21:36:04BFLogBot - Commit 438277d2899b | Author: sam8641 | Log: Fix some warnings
21:36:11sam686the thing is, S32(1000 * F32(0.001)) might equal 0 because of rounding errors, and truncating the decimals..
21:36:27sam686and, computers uses powers of 2, not 10
21:37:06kaenah, I see now.
21:37:24kaenwell, there definitely was some error from those calculations while I was measuring the rates
21:37:37kaenusually ~1% of the expected values
21:40:37raptorWatusimoto: two things
21:40:47Watusimotoyes
21:40:52raptor1. do you think bugs 12 + 13 are related here?: http://bitfighter.org/wiki/index.php/Running_Bug_List
21:41:15raptor2. you are merging in windows line endings everywhere :(
21:41:24Watusimotono idea, but I just fixed 12
21:41:31Watusimotowhat?!?
21:42:33WatusimotoI am using the eol mercurial plugin
21:42:33raptoryeah... i just did a 'dos2unix' on a few files, and then took a diff: your changes were in the diff again because of line endings
21:42:48raptori do not know what that is...
21:43:18raptor is reading up on it
21:46:09raptori was going to give kaen #13
21:47:13Watusimotook
21:47:25raptorbut maybe you fixed it with #12..
21:47:25kaendelicious
21:47:28Watusimotojust tweaked my lf settings... if problem continues, please let me know
21:47:38raptorok
21:48:06raptorok... it looks like it has nothing to do with your #12
21:48:19raptorso kaen, if you want to, try #13 on the running bug list
21:48:28Watusimotojust pushed my fix
21:50:46kaenwill do
21:51:01kaenI'm headed out for a while. bbl
21:51:06raptorlater!
21:51:10BFLogBot - Commit 624fde22524f | Author: watusim...@bitfighter.org | Log: formatting
21:51:11BFLogBot - Commit 36fba1fab4e4 | Author: watusim...@bitfighter.org | Log: Reimplement sorting in the database -- editor objects should now render in the proper order. Since database code is now shared btwn game and editor, don't know if sorting will impact performance in any way, like when shooting and lots of new objects are being created.
21:51:13BFLogBot - Commit 5aa6be8136d2 | Author: watusim...@bitfighter.org | Log: Merge
21:52:16sam686engineeredItem.cpp line 1796 // See if we're gonna clobber our own stuff... the problem is, it just check if your ship's team is in line of sight.. without checking if resource / bounci item gets in the way to be ok to fire..
21:52:48raptorok, heading home for a bit, be back in a couple hours..
21:53:07sam686ok..
21:53:18raptor Quit ()
22:04:05Little_Apple has joined
22:04:27Little_Applehelloo
22:05:10sam686hi
22:08:22Little_Applebyee :D
22:08:24Little_Apple Quit (Client Quit)
22:18:05kaen Quit (Ping timeout: 250 seconds)
23:01:23BFLogBot - Commit 73286af7b898 | Author: sam8641 | Log: Fix inaccurate energy drain by multiplying by integer milliseconds (not float seconds)
23:15:59sam686 Quit (Ping timeout: 245 seconds)
23:18:22sam686 has joined
23:18:22ChanServ sets mode +v sam686
23:42:26raptor has joined
23:42:26ChanServ sets mode +o raptor
23:46:31BFLogBot - Commit 7562b046f507 | Author: watusim...@bitfighter.org | Log: Correct comment
23:46:33BFLogBot - Commit 9695bef3c319 | Author: watusim...@bitfighter.org | Log: Break joinBarrier into two parts -- the merge part and a small wrapper
23:46:34BFLogBot - Commit 68b3bbfbc7b3 | Author: watusim...@bitfighter.org | Log: Experimental extension of join command in editor to join multiple polygons (test with "J" in editor)
23:46:36BFLogBot - Commit 042af7c59df7 | Author: watusim...@bitfighter.org | Log: Merge
23:48:04Watusimotonight!
23:52:11raptornight
23:53:35Watusimoto Quit (Ping timeout: 246 seconds)

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.