#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-12-01

Timestamps are in GMT/BST.

00:00:33sam686could try p.set( (F32) floorf(atof(argv[i]) * gridSize * 1000) *.001f, (F32) floorf(atof(argv[i+1]) * gridSize * 1000) *.001f );
00:00:43sam686without if(gridSize != 1) part
00:01:57sam686it works without crash changing if(rgidSize != 1) into if(true)
00:02:26raptorso even with 1000 it didn't work??
00:02:33raptorthat's odd
00:02:54sam686its not that, its the if(gridSize != 1) part when gridSize is really 1
00:03:01raptoryes i know
00:03:03sam686such as if you save over the level
00:03:06raptorbut that works fine on linux
00:03:33sam686let me give you the saved-over foiled
00:04:24sam686http://sam6.25u.com/upload/db_kaen_foiled_saved_over.level
00:04:29sam686now does that crash you?
00:05:03raptortesting
00:05:15sam686try testing from hosting, not from editor
00:05:41raptorworks fine for me
00:06:05raptorboth from editor, and from straigh hosting
00:06:27sam686on windows it crashes on me
00:06:42raptorwell that's no good
00:06:52raptorok, change it to always do the rounding
00:06:58sam686basically the same stack trace like if without that rounding attempt stuff.
00:06:59raptorif that fixes it for you
00:11:56BFLogBot Commit: 29c8b766172f | Author: sam8641 | Message: Fix a crash problem, on windows it could still crash when loading foiled.level after editor saved over it.
00:16:01sam686well, there a new problem I just found, bot zone did generate, but not correctly
00:16:02sam686http://sam6.25u.com/upload3.php
00:16:05sam686oops
00:16:11sam686http://sam6.25u.com/upload/screenshot_146.png
00:18:01sam686even happens on un-modified foiled
00:18:10raptorumm
00:18:18raptorthat happens with your poly2tri fix, which I reverted
00:18:35raptorare you sure you've compiled the latest?
00:19:14sam686yes im on the latest
00:20:41sam686the Trick i do is /showzones while testing in editor, then host. showzones stuck on
00:20:55raptorno problem here
00:21:00raptorlet me try in my windows vm
00:21:28sam686still the same problem for me hosting un-modified foiled
00:21:41sam686and that was straight from /dlmap
00:22:38sam686I thought my changes to shapes.cc didn't have any effect
00:22:58raptorha
00:22:59raptorpl
00:23:00sam686try putting some assert there instead to check if triangle is NULL
00:23:01raptorok
00:23:08raptorit's not null
00:23:14raptorit would hard crash if its null
00:23:35raptorwait, let me get the original
00:24:05sam686are you sure it will hard crash? something it happen to not crash if it is just reading junk.
00:24:26sam686sometimes not something
00:26:38raptorconfirmed zones are bad on windows... n ot on linux
00:26:43sam686clicking the "X" on console while bitfighter is running incorrectly gives me thousands of memory leak when using VLD (visual leak detector)...
00:26:46raptorlet me try reducing it to 100
00:27:13raptoryeah, but where are the leaks
00:27:48sam686http://sam6.25u.com/upload/text1312/131201_00-27-42.txt
00:28:32sam686basically I think it bypassed the usual exitToOS when clicking "X" on console
00:28:50sam686on windows only that is
00:28:52raptorah, that might happen
00:29:20raptorreducing it to 100 makes it crash again...
00:29:39sam686but then how does VLD (visual leak detector) catch that way of exiting and print stuff?
00:31:21sam686still have strange odd zones as in the screenshow
00:33:14fordcarsLater!
00:33:16fordcars Quit (Quit: Page closed)
00:34:45raptoryeah...
00:35:24raptorwell, I'm not to worried - it's on a level with duplicate barriers, and only happens when hosting..
00:35:30raptorwhen hosting on windows, that is
00:35:49raptorI know of a fix, but it'll have to wait until we update to clipper 6
00:36:03sam686this fixes the bot zones problem: p.set( (F32) floorf(atof(argv[i]) * gridSize * .01f) * 100.f, (F32) floorf(atof(argv[i+1]) * gridSize * .01f) *100.f );
00:36:16sam686but now I get this: http://sam6.25u.com/upload/screenshot_147.png
00:36:38raptorhahaha
00:36:49raptorthat's windows floating problems in the extreme...
00:37:14Darrel Quit (Quit: IRC client killed.)
00:37:30sam686perhaps we need to do rounding not on the barriers and polywalls, but on the botzone buffer stuff or the input points to poly2tri
00:37:56raptorwe do
00:38:11raptorroudning and upscaling is alread done
00:38:39sam686then why is my screenshot doing that when I do the rounding to extreme in readPolyBounds?
00:38:43raptorthe issue is that there are 2 barriers that are identical on top of each other, but they have slightly different coords
00:38:52raptori have no idea
00:41:50sam686yuck, you applying the rounding to LineItem?
00:42:13raptoryep, it's everywhere
00:42:38raptorit's just a bandaid until clipper 6
00:43:42sam686the problem is the level is loaded in editor with position being off quite a bit and saving over it can ruin the accuracy of points..
00:44:26sam686that also destroyes the advantage of not multiplying/dividing my gridSize
00:45:21sam686could also make forcefield/turret snap incorrectly on existing level because of barrers being loaded rounded
00:45:22raptorrounding at 0.001 doesn't ruin much accuracy
00:46:08raptori don't see another answer to the problem unless we remove it completely and just allow the crash on that one level
00:46:46raptorat least until after release and we can update to clipper 6
00:52:10BFLogBot Commit: ebb574e7c0f5 | Author: buckyballreaction | Message: Update windows installer to include notifier
00:53:12phil is now known as phill_
00:53:42raptorsam686, I'm ready to tag and build for release. what do you think we should do?
00:54:18sam686let me try one thing for 10 minutes, what if I do rounding in mergeBotZoneBuffers?
00:54:31sam686at the buttom just before return
00:54:44raptorwe're already rounding
00:55:05raptorhas points upscaled by 1000 and converted to S64
00:55:12raptorcliipper does that
00:55:17sam686I don't see no rounding before mergePolysToPolyTree
00:55:33raptorlet me look - i'll let you try for a few minutes
00:55:54raptorbut you're right - that may be the better place to round
00:56:34raptorok, yup, you're right again, it's not done until mergePolysToPolyTree
00:59:50raptoryou can have more than 10 minutes, too.. :)
01:05:08sam686looks like that fixed it.
01:05:50raptorreaaly
01:07:08BFLogBot Commit: 658ec52bfd86 | Author: sam8641 | Message: Move rounding to a much better place, so it don't effect level loading position
01:07:11sam686there, no problems on Foiled for me
01:07:35sam686and who needs precise acuracy on bot zones? i don't
01:08:07raptortoo true
01:08:10raptorgood idea
01:08:13raptorlet me test, as well
01:09:59sam686you can put comments near the bottom of mergeBotZoneBuffers where I added, I thought I put some comments but forgot to save when commiting.
01:10:12sam686don't worry its only the comments I forgot to save
01:10:30raptorwow, rounding to 1...
01:10:40raptordid it need to round that high?
01:11:04sam686bot zones still looks fine for me
01:11:15sam686i can test lower values..
01:12:49raptoractually, it looks good
01:12:55raptori tested with narrow walls
01:13:03raptorand they worked with s_bot
01:13:09raptorwant me to add comments?
01:13:17sam686sure
01:16:10sam686oops, and remove the 2 extra unneeded inputPolygons[0];
01:16:31raptorheh' ok
01:17:08raptordone
01:17:15raptori'll be back in a few minutes to tag for release
01:17:18sam686ok
01:17:26BFLogBot Commit: c29f911722d4 | Author: buckyballreaction | Message: Move comments about point-rounding for botzones
01:26:59sam686be sure to set CS_PROTOCOL_VERSION 38
01:27:14sam686there are several people with old unreleased 019
01:27:46sam686on the comments, so // pre_019 = 37 or something, // 019 = 38
01:28:30sam686or maybe // early testing 019 = 37 // 019 = 38
01:32:17sam686make early unreleased 019 (37) is incompatible with todays 019 (038), or else... join errors mixing early 019 and current 019.
01:34:42sam686By changing CS_PROTOCOL_VERSION to 38, that easily helps display "out of date" on people having early 019 builds as well.
01:36:28raptorok good idea
01:39:46raptorTAGGING FOR RELEASE
01:39:52raptorI can't believe this day is here...
01:40:53sam686On a positive side for me, my massive ping drops and connection lag spikes appears gone.. http://sam6.25u.com/upload/text1312/131201_01-40-12.txt (but later shows no dropped ping)
01:42:03BFLogBot Commit: f7cf2de7a6fe | Author: buckyballreaction | Message: Update build number for 019 and update CS_PROTOCOL_VERSION to invalidate all the many beta versions
01:42:05BFLogBot Commit: 95c3c8c8735b | Author: buckyballreaction | Message: Tag 019 release
01:42:57raptorbuilding for windows...
01:47:17sam686do check if it can join the server I have up (with tagged update)
01:47:30raptorok
01:47:31sam686it might display my empty level of broken levelgen though..
01:48:12Platskies has joined
01:49:19raptorlooks good
01:49:33raptorlet me recompile master with the CS_PROTOCOL cahnge
01:54:01Skybax_ has joined
01:56:48Skybax Quit (Ping timeout: 246 seconds)
01:58:58phill_this is awkward, I didn't notice that none of my changes caused any noticable difference until I realized I didn't change the default bot option
01:59:35Skybax_ is now known as Skybax
01:59:46raptor:)
01:59:47sam686or you can do /addbot your_bot_file
02:00:20raptorwindows builds completed and tested
02:00:24raptoron to osx...
02:03:03SkybaxIs release time almost here? LD
02:03:04Skybax*:D
02:03:14raptor:)
02:03:33raptorbinaries will be up in about 1 hour or so
02:03:42sam686what does this recent changes look like? https://code.google.com/p/bitfighter/source/list
02:03:56raptorlike a miracle
02:05:15raptorosx is a little tricky...
02:05:42fordcars has joined
02:08:32raptorfordcars: this may be the last PPC release...
02:09:04raptorand I'm not entirely confident it'll run...
02:10:39fordcarsNuuuuuu!
02:10:42sam686get rid of your outdated ppc OSX operating system and use more up-to-date PPC linux? Not sure of there anyone still using PPC...
02:10:57fordcarsOnly Debian will really run on PPC I think
02:11:05fordcars*Newer OS
02:11:09raptoropenSUSE 12.2!
02:11:16fordcars:P
02:11:26fordcarsMaybe I could update my Motorolla though
02:12:50fordcarsI was seriously thinking of actually putting Linux on one of my PPCs
02:13:04fordcars1ghz 1gb ram
02:13:20phill_excuse I'm gonna be immature for a second. I FKIN DID IT YEAAAAAAA
02:13:27phill_sorry, bye good luck
02:13:37kaenhehe
02:13:40kaenhello again all
02:13:43sam686on linux you have up to date compiler as well
02:13:44fordcarsHi
02:13:58kaenI noticed a pretty little tag in my hg repo :)
02:14:00fordcarsYeah that's true
02:18:13raptorosx 32bit build done
02:19:02phill_raptor: are ships spawned on random waypoints?
02:19:10raptorshould i put the notifier in t osx apps?
02:19:33raptorphill_: there are spawn points in the editor to specify
02:19:44phill_yes, but are ships spawned on them randomly?
02:19:48sam686robot spawns in the same random location as player ships do, depending which team player/bots are in
02:20:00raptoroh, yes
02:20:37sam686neutral spawn point, anyone could randomly spawn there.
02:20:40phill_I was wondering, it gets kind of annoying when you spawn right on top of a firefight, would it be something I could look into changing so that doesn't happen so often?
02:22:28phill_I know you have that invulnerability period, but there's no time to settle down and it's really hard to escape fire when bullets are already aimed at you
02:22:38sam686it partly depends on the level, if there is little spawn points, its hard to spawn away from fire fight..
02:23:05sam686as in only 1 or 2 spawn points
02:23:39phill_Yea I get that totally. I'm just trying to aleviate the problem.
02:24:00sam686It is possible to have checks put in while spawning (but not in LUA at the moment)
02:24:34sam686might be possible on LUA in fact, by using onShipSpawn and setLoc()
02:24:48sam686setPos() not setLoc i meant
02:25:03kaenah, that's a good idea
02:25:11kaenperhaps worth making a core mechanic
02:25:48raptorthe only way to do it would without adding too much complexity, I think, would be to add an option to chose spawn point on the c-map when you die
02:25:55kaenyou could calculate the "pressure" of a spawn point using the distance of all the enemies from it, then just spawn at the point with the lowest pressure.
02:26:09phill_kaen: exactly what I had in mind
02:26:19kaenO(nm) distance squared calculations, but those are cheap
02:27:54phill_It could be something I could figure out and play with to see if it feels right so you guys don't need to waste time with it
02:41:49BFLogBot Commit: 489f253999a5 | Author: buckyballreaction | Message: Add notifier in Resources section of .app
02:52:03raptorosx build done
02:52:09raptorbuilds
02:57:10kaen:o
02:57:19kaenmust be in the home stretch, then?
02:59:10fordcarsPlease!
03:03:17sam686Does any of you get this warning?
03:03:19sam686../lua/lua-vec/liblua-vec.a(loslib.c.o): In function `os_tmpname':
03:03:19sam686/home/sam686/bf019/lua/lua-vec/src/loslib.c:60: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
03:04:15sam686I have seen it for a long time now, its when building bitfighter on linux, still built ok for me.
03:04:51sam686and that warning only shows up when linking
03:05:51raptorhmmm can't use google code for downloads
03:06:05raptorany way to track downloads on bitfighter.org>
03:06:07raptor?
03:06:53raptoroh, no new ones staring jan 14th
03:06:58raptoroh good
03:07:45sam686theres this: http://sourceforge.net/projects/bitfighter.mirror/
03:08:19raptorwhat the heck
03:08:27raptorwhere did that come from???
03:08:38sam686it showed up on google search
03:09:25Nothing_Muchis that official?
03:09:32Nothing_Muchalso hello
03:09:55sam686I don't know who put up the bitfighter.mirror...
03:10:18kaensam686, you can fix it by add LUA_USEMKSTEMP or something like that to the lua-vec define flags
03:10:35kaenI did it once but didn't commit because I was working on other stuff.
03:10:52phill_anyone know the targeting range of a seeker of the top of their head?
03:10:54sam686its just a warning, not an error, no big deal..
03:11:31raptoruhh 600?
03:11:37raptormayeb 400
03:11:42raptorradius
03:12:04phill_600 sounds a bit long, I'll go with 400
03:12:07raptorbut it'll stay alive for like 8 seconds
03:13:24raptoryep 400
03:14:26phill_thanks
03:20:06raptorearly bird IRC special: http://code.google.com/p/bitfighter/downloads/list
03:20:29phill_should I clap?
03:21:00raptornot sure
03:21:13kaen\o/
03:21:38fordcarsGuys, do private messages (to the bot) actually count in onMsgReceived
03:21:54kaenask bitfighter!
03:21:56kaen:)
03:22:01raptortoo late!
03:22:26raptorno more development until Christmas!
03:22:41sam686go test it now, I don't know if onMsgReceived can receive /pm
03:22:44kaeno.o
03:22:45fordcarsUhOkokokok
03:22:49kaenI don't think it will
03:22:59fordcarsEven if it is to the bot?
03:23:10raptorno pms in onmsgreceived
03:23:16raptordeliberate
03:23:35fordcarsawww ok thanks!
03:24:39phill_raptor: Is it alright if I remove the attackNearbyEnemies() fn, it wasn't used before and I further deprecated it
03:25:00raptorsure, do what you like
03:25:12sam686if it is not used you can do whatever like remove it..
03:25:22phill_don't tell me that now I feel too powerful
03:25:33sam686if that function inside a bot file, do whatever, it doesn't effect other bots
03:32:20raptoractually, kaen, could you make a short 4-6 list of highlight changes?
03:32:53raptorif you have time - it would be posted on forums/sites/etc..
03:35:26kaensure thing!
03:35:48kaenI was just F5 bombing the home page for your announcement post :P
03:36:02kaenwhere's that big list, raptor ?
03:36:37sam686here? http://beta.etherpad.org/bf_019_changes
03:36:52kaenthat's the one!
03:37:00raptorLinus distros will have to wait a bit...
03:37:03raptor*linux
03:45:55Platskies__ has joined
03:46:30Platskies Quit (Ping timeout: 252 seconds)
03:50:43kaenthese are my favorites: http://pastie.org/8519999
03:50:57kaenlet me know if you had a different format in mind (more commentary?)
03:51:20raptorperfect - just the new features
03:51:49raptormaybe even less commentary - people don't hold attention on game websites...
03:51:51raptor:)
03:53:44Skybax Quit (Read error: Connection reset by peer)
03:54:51Skybax has joined
03:57:09destroyerimo_ has joined
03:57:30raptorargh... dedicated build problems on the master
03:57:46raptorlooks like several development packages are missing
04:10:49raptorok... updated the auto-updaters...
04:11:01fordcarsCool dude
04:11:13fordcars:)
04:13:06amgine123:)
04:14:12raptorok, master should be notifying clients
04:14:17raptorwe did it now!
04:14:36raptorsam686: you still have a server up?
04:14:49sam686oh yes
04:15:05raptorok good - because I'm having trouble getting dedicated to compile...
04:16:47sam686my visual studio sometimes displays hundreds of: fatal error C1033: cannot open program database 'c:\other\bitfighter\hg019\exe\bitfighter.pdb'
04:17:06sam686often happen if I interrupt the build and stop it, I have to rebuild or clean to fox
04:17:09sam686fix*
04:17:36sam686tends to happen on visual 2008 only though..
04:18:49raptorodd
04:19:24sam686oh boo. its because of debug and release build using the same .exe output it couldn't delete debug bitfighter.pdb when I am building release build while running debug bitfighter.exe
04:20:10sam686Wish it did the way I had on my old bitfighter project, separate bitfighter_debug.exe for debug build..
04:20:51raptorok, on to the forum post (main website done)
04:24:14fordcarsit's out?
04:24:27fordcarsI love you guys :,(
04:24:39fordcars<3
04:25:03SkybaxWhat
04:25:07fordcars019
04:25:10SkybaxYAY
04:25:18SkybaxTIME TO HAZ
04:25:26fordcarsYAY
04:25:45sam686http://bitfighter.org/ scroll all the way down... all I see is a white box just above "Bitfighter videos on YouTube"
04:25:49SkybaxWill it replace my old one or do I have to delete it?
04:25:57fordcarssam, me too
04:26:05raptorSkybax: what platform?
04:26:08fordcarsupdater does the work :)
04:26:11SkybaxWindows
04:26:12fordcarsWindows I think
04:26:13raptorshould replace
04:26:29raptoractually, haha, you're the first to test the windows updater... let me know how it goes...
04:26:30SkybaxAwesome
04:26:39SkybaxWell it installed well lol
04:26:40raptorforgot to test that...
04:27:02SkybaxYay the fullscreen thingy is fixed!
04:29:21raptorkaen: post look OK?: http://bitfighter.org/forums/viewtopic.php?f=20&t=2154
04:29:32fordcarsArent't the tutorial messages on by default??
04:29:59raptorheh, not if your upgrading :)
04:30:18fordcarsAhhhh sweeeet
04:30:25fordcarsAwesome, simply awesome
04:30:55SkybaxYes
04:30:58fordcarsBitfighter really feels more modern and stable
04:31:03SkybaxI LIKE IT
04:31:11fordcarsAnd smoother orf course
04:31:17raptor changes topic to 'Welcome GCI students! Feel free to ask anything! | Bitfighter 019 released! | http://www.bitfighter.org/downloads | Join us in the forums! at http://bitfighter.org/forums/ | Channel logs http://bitfighter.org/irclogs/'
04:31:32raptorplease be stable please be stable please be stable please be stable
04:31:57fordcarshaha
04:32:13phill_ Quit (Ping timeout: 265 seconds)
04:39:41raptorok, dedicated build is building now... after installing X and friends
04:39:41raptorsigh
04:41:47sam686I think there might be a small bot problem in a level "Clot", looks like the bot goes a long way around to the teleporter, i have to look closer at that..
04:44:24raptorgreat, three segfaults, one for each dedicated server...
04:45:34raptorback in about an hour...
04:55:48Skybax_ has joined
04:58:37Skybax Quit (Ping timeout: 272 seconds)
04:58:59phill_ has joined
05:03:50Nothing_Much Quit (Read error: Connection reset by peer)
05:04:14Nothing_Much has joined
05:06:20Nothing_Much Quit (Remote host closed the connection)
05:07:32sam686parhaps it might help to put that little green square Asteroid Spawn in the instructions?
05:08:05sam686some people already asking "what that green square"
05:09:23Nothing_Much has joined
05:09:46Nothing_Much Quit (Remote host closed the connection)
05:10:31fordcarsCan someone make a thread about the database in forums?
05:10:33Nothing_Much has joined
05:10:36sam686skybax says /rate gives 400 error
05:10:41sam686yet raptor says it worked fine?
05:11:09fordcarsI get that too
05:14:35kaen1. can't be your own map
05:14:41kaen2. has to actually be on the DB
05:15:58sam686maybe its a windows-only bug? me on windows using /rate up: get 400 bad request
05:16:29sam686levels not in db actaully says it is not in database
05:18:43Skybax_Would be cool if you could rate levels in the pleiades page
05:19:51Skybax_OH YOU CAN
05:19:53Skybax_I'm silly
05:22:24fordcarskaen, make a thread about the databse please!
05:22:32fordcarsOr somebody
05:22:51fordcarsAllot of people won't even know that it exists
05:23:50kaenok I will
05:23:51amgine123gtg bye
05:24:11kaenhaha Skybax_ is going nuts on the DB :)
05:24:22kaenfeels soooooooooo good to finally watch other people use it
05:24:31kaenI've been building it for like six months...
05:24:57kaenjust sitting... waiting... staring at the empty level lists
05:28:05amgine123 Quit (Ping timeout: 250 seconds)
05:29:37Skybax_I'VE BEEN WAITING A LONG TIME
05:29:39Skybax_TOO
05:29:49Skybax_ is now known as Skybax
05:35:50SkybaxOkay I'm done >.>
05:38:31fordcarskaen, it's awesome!
05:39:04fordcarsThe only problem is I never can type peliedeas correctly :/
05:39:38fordcarsDo levelgens go on it too?
05:39:40sam686http://bitfighter.org/pleiades/
05:39:45sam686I think yes
05:39:50fordcarshaha thanks :P
05:40:42sam686maybe /rate might actually be working i think, even though it gives some 400 error. don't know if its because of sending to master or trying to do http...
05:44:14kumul Quit (Quit: Leaving)
05:46:29SkybaxIdk
05:46:51sam686I figured out why /rate sometimes doesn't work, it doesn't work if you join a server, but works if you host..
05:47:41SkybaxWeird
05:50:28fordcarsYeah
05:51:12sam686sometimes after you done hosting but not quit the game, and join a server, /rate sometimes continue to work
05:53:45SkybaxI'm eating a day old bacon burger from jack in the box
05:55:13fordcarscool
06:00:26SkybaxIt was tasty
06:01:21fordcarsawesome
06:01:25fordcars:P
06:01:29fordcarsI am hungry actualy
06:01:42SkybaxI'm still hungry
06:01:52SkybaxUsually I'd eat like three burgers but there was only one left in my fridge
06:02:09fordcarsWow
06:02:31fordcarsI haven't had a burger in like 1 year
06:02:37SkybaxI bought 20 of them on thursday
06:03:28fordcarsHoly
06:03:51raptorhowdy folks
06:03:57raptorhow goes the 019?
06:04:16raptorcrashes yet?
06:04:22Skybax_ has joined
06:04:49Skybax_I had leftovers and they went in the fridge
06:04:56Skybax_No crashes!
06:05:14raptoryay
06:06:38Skybax Quit (Ping timeout: 240 seconds)
06:06:44Skybax_ is now known as Skybax
06:12:25Flynnn Quit (Quit: This computer has gone to sleep)
06:16:18raptorgoing to bed.. good night!
06:16:21raptor Quit ()
06:18:07Flynnn has joined
06:24:33phill_ Quit ()
06:28:55kaenlet me know if I missed anything, guys: http://bitfighter.org/forums/viewtopic.php?f=20&t=2156
06:31:48SkybaxYou can also upload and rate maps in the web browser
06:33:55kaenyou can also upload a zip of all your levels on the web app
06:34:06kaenalthough they won't have screenshots
06:34:14kaen(it's an experimental feature)
06:34:40kaenanyway, night guys!
06:34:44SkybaxNight
07:53:11phil__ has joined
07:53:26Platskies__ Quit (Ping timeout: 240 seconds)
07:57:58phil__ Quit (Read error: Connection reset by peer)
08:13:08fordcarsnight guys!
08:13:10fordcars Quit (Quit: Page closed)
08:35:51Skybax Quit (Ping timeout: 272 seconds)
08:36:57Skybax has joined
08:44:51Darrel has joined
08:51:18BFLogBot Commit: 5e3c7dd718e5 | Author: sam8641 | Message: Fix /showbots, there was a duplicate isTestServer()
08:59:36Flynnn Quit (Quit: This computer has gone to sleep)
09:22:42Skybax Quit (Ping timeout: 246 seconds)
09:31:17Flynnn has joined
09:53:05Flynnn Quit (Quit: This computer has gone to sleep)
10:49:27Watusimoto has joined
11:14:06Platskies has joined
11:28:10Platskies Quit (Ping timeout: 246 seconds)
11:28:30Darrel Quit (Ping timeout: 252 seconds)
11:30:28Platskies has joined
11:36:24alex_velea has joined
11:41:01Platskies Quit (Ping timeout: 245 seconds)
11:44:51Platskies has joined
12:17:36antoniomdk has joined
12:17:53antoniomdkHi!
12:32:39antoniomdk Quit (Quit: Page closed)
12:32:42Nothing_MuchHi the
12:32:48Nothing_MuchAlright
12:33:07antoniomdk has joined
12:33:48Nothing_MuchHi there
12:33:58Nothing_Muchantoniomdk: Hello
12:34:48Platskies Quit (Quit: Gotta go)
12:41:32Nothing_Muchrelease official WOO
13:07:25alex_velea Quit (Ping timeout: 250 seconds)
13:24:10Darrel has joined
13:41:36Watusimoto Quit (Ping timeout: 252 seconds)
13:51:11phill_ has joined
13:53:53Watusimoto has joined
13:57:37phill_morning Watusimoto
13:57:46alex_velea has joined
13:58:39Watusimotohi
13:59:51antoniomdk Quit (Ping timeout: 250 seconds)
14:16:22destroyerimo_hi
14:16:30destroyerimo_u guys released a new version?
14:27:56Watusimotowe did
14:27:59Watusimotomostly
14:28:07Watusimotostill a few more steps to go
14:35:35destroyerimo_great
14:35:43destroyerimo_ is now known as destroyerimo
15:01:19antoniomdk has joined
15:30:36YoshiSmb has joined
15:43:12alex_veleaHello
15:43:25alex_veleaCan someone help me in a matter?
15:45:10alex_veleaI've created the operator == for DatabaseObject
15:45:11alex_veleabool operator==(const DatabaseObject &r) const { logprintf("We are in == operator"); if (mExtentSet == true and r.mExtentSet == true) { logprintf("both of em are set"); if (mExtent == r.mExtent) return true; else return false; } return false; }
15:45:30alex_veleahttp://ideone.com/QeDT1w -> here
15:45:57alex_veleaAnd when i try to use it -> if (&mAllObjectsActions[i] == &DatabaseEl[j]) it doesn't use it :(
15:46:23alex_veleamAllObectsActions and DatabaseEl are Vector<DatabaseObject *
15:55:33YoshiSmb Quit (Ping timeout: 250 seconds)
16:35:12Bob1_ has joined
16:35:41Bob1_good morning! Congrats to the dev team on getting 019 out the door!
16:41:23Bob1_ Quit (Quit: Page closed)
16:41:55kaenmorning alex_velea
16:41:58kaentaking a look now
16:42:37kaenok, that line
16:42:44kaenis not going to invoke the operator==
16:43:03kaenbecause you are comparing the *address* of mAllObjectsActions[i] and DatabaseEl[j]
16:43:19kaenyou need to do
16:43:23kaenif (mAllObjectsActions[i] == DatabaseEl[j])
16:43:37kaen& means two different things in c++
16:43:47kaenthree actually, but only two are relevant here
16:44:02kaenin a declaration such as bool operator==(const DatabaseObject &r)
16:44:31kaenit means that r should be a reference to the DatabaseObject (saves a very expensive copy operation)
16:45:00kaenwhen applied to a variable, it means the numerical address of that variable in memory
16:48:15Watusimoto Quit (Ping timeout: 246 seconds)
17:04:37alex_veleaIt's there a program / method to see the changes between changes?
17:04:51alex_veleaTo see the changes in 109 and the change that i made to the project ..
17:05:04alex_veleaSo i can write a changelog :)
17:08:53kaenyep :)
17:09:07kaenhg diff -r <revision>
17:09:57kaenif you want to see the diff against the official 019 release, do: hg diff -r 95c3c8c8735b
17:43:46Watusimoto has joined
17:44:15Watusimotoraptor: I did #19 and the new #20
17:49:29Watusimotoand updated the build instructins in the wiki (though further review is always a good idea)
18:09:37Watusimoto Quit (Ping timeout: 246 seconds)
18:54:24Canseco has joined
19:31:10raptor has joined
19:31:10ChanServ sets mode +o
19:36:46raptorhowdy folks
19:36:51raptorhow has been the fallout from release?
19:38:53raptorthat good, huh?
19:43:06raptortime for linux building
19:48:06sam686well oops, I left my bitfighter client sitting on a server list/chat room, its why you always saw me in the chat list.
19:48:22sam686but not in online players (debug build)
19:54:21raptorhi sam686
20:11:45raptorthat osx editor instructions is really weird...
20:14:06sam686the strange problem is, the screwed up editor instructions doesn't happen on windows, only OSX?
20:14:16sam686sky_lark posted some screenshots http://bitfighter.org/forums/viewtopic.php?t=2155
20:15:51raptoryeah
20:15:56raptordoesn't happen in Linux either...
20:16:04raptori will test in my OSX vm
20:23:00kumul has joined
20:26:38raptorkaen: how is debian going? should I make some debs for download on bitfighter.org in the interim?
20:29:45Canseco Quit (Remote host closed the connection)
20:30:36raptorgot a weird LINT error:
20:30:37raptor[ 281s] bitfighter.x86_64: W: file-contains-date-and-time /usr/bin/bitfighter
20:30:39raptor[ 281s] Your file uses __DATE and __TIME__ this causes the package to rebuild when
20:30:40raptor[ 281s] not needed
20:31:09antoniomdk Quit (Ping timeout: 250 seconds)
20:31:35sam686at near the top of UIEditorInctructions.cpp, static S32 col2 = UserInterface::horizMargin + S32(gScreenInfo.getGameCanvasWidth() * 0.25) + 45;
20:31:59sam686maybe mac build sets the col2 first and then run the gScreenInfo constructor?
20:32:17sam686which results on zero CanvasWidth
20:32:20Flynnn has joined
20:38:17Skybax has joined
20:38:27raptorno-manual-page-for-binary bitfighter
20:38:30raptorlovely
20:38:30SkybaxGoodmorning
20:40:49raptorhi
20:40:53phill_hello
20:40:57raptorsam686: that seems really weird
20:41:49sam686Try replacing gScreenInfo.getGameCanvasWidth() with ScreenInfo::GAME_WIDTH
20:42:04raptorok
20:42:50sam686besides col2/3/4 there is also TimeLeftRenderer.cpp rightAlignCoord to changes
20:43:10raptorhow would that manifest itself?
20:44:01sam686maybe, as I said above, it doesn't run the constructor of gScreenInfo, to set the default value until later on, possibly after
20:44:25sam686the ordering of global variables and global constructors is so messed up
20:44:30raptori agree
20:44:38raptorthat's why I prefer to stay away from them...
20:44:43sam686sometimes depends on linker files too
20:44:59sam686the ordering of linker files i mean
20:45:09Skybax Quit (Read error: Connection reset by peer)
20:45:47raptorfails to compile - GAME_WIDTH is not available in this context
20:46:01sam686ScreenInfo::GAME_WIDTH ?
20:46:07raptoryeah - it's a private var
20:46:41sam686make it public, its a static const anyway
20:47:41raptori'll just make the cols private vars of the class
20:47:50raptorbecause static stuff is ugly
20:48:22sam686don't forget to do the same to TimeLeftRenderer.cpp rightAlignCoord
20:48:28raptorok
20:49:26Skybax has joined
20:51:28sam686I do think all static const stuff that ONLY exists on .h but no .cpp usually get initalized first and is available.. the problem is the external or being initalized on .cpp
20:51:30raptoryup, that fixed it
20:51:40raptorgood find
20:51:52raptorlet me clean up and commit..
20:53:44alex_veleaI'm sorry to say this .. but .. can someone extend my deadline for my task? The ideea behind the task it's not complete and i've got some final's coming up .. i would really appreciate that.
20:53:56raptoralex_velea: sure thing
20:54:04raptorhow many days do you want?
20:54:11alex_veleaDon't know exactly
20:54:24alex_veleaI solve a 'part' of the task.
20:54:49alex_veleawatusimoto told me that the wallsegmentmanager thing was just to manage the walls .. but i think that it olso stores them somehow.
20:55:00alex_veleaI will figure it out .. hope so at least.
20:55:28raptorok
20:55:53alex_veleaIf you can give it +3 days i think will be enought.
20:56:15Watusimoto has joined
20:56:35raptoroh oops, i did the wrong one...
20:56:46Watusimotohi
20:57:03Watusimotohow are things going?
20:57:06alex_veleaWell
20:57:13WatusimotoI see multiple error threads have popped up in the forums!
20:57:16alex_veleaGood in large view.
20:57:24Watusimoto:-)
20:57:46raptorwe played some good games last night - 019 felt good
20:58:06alex_veleawatusimoto .. i think sth it's not that right with the redo task.
20:58:37alex_veleaI managed to make that the vectors with DatabaseObjects are ok .. with efficient memory
20:59:13Watusimotook
20:59:16alex_veleaBut i think that the problem is in the mChunker section .. that i don't know what it is :D
20:59:24Watusimotowhat are the symptoms?
20:59:35alex_veleaI think that is like a 1/0 map if there are walls
20:59:39Watusimotoyou should not have to get that deep into the database, I think
20:59:47alex_veleaWell ..
21:00:06alex_veleaIt works for the DatabaseObject vectors .. for all of them
21:00:12alex_veleathe redo / undo step
21:00:16Watusimotook, good
21:00:36alex_veleait fails when i rebuildEverything()
21:00:56alex_veleaand i get an assert at some point. let me get it another time
21:01:37alex_velea"Assert: Expected an WallItem! in /home/ivy/veleandu-redoundo/zap/WallSegmentManager.cpp line 212"
21:01:37Watusimotook
21:02:56Watusimotoit obviously does not like wall
21:03:12Watusimotoand wal comes from the wallDbObject you passed into the fn
21:03:20alex_veleafn?
21:03:24Watusimotofunction
21:03:28alex_veleaohh
21:03:43Watusimotowhen you call buildWallSegmentEdgesAndPoints, you are supposed to pass it a wall
21:04:01Watusimotowhat are you passing for wallDbObject?
21:04:15Watusimotowell... clearly a non-wall, which is why you get the assert
21:04:21alex_veleaYep
21:04:29alex_veleaThat's true.
21:04:29WatusimotoI don't know if that helps at all, or you already figured all that out
21:04:33alex_veleaI will need to look to see how things are inserted
21:04:55alex_veleaMy problem it's that i don't really know what i need to change
21:05:13Watusimotowell how are you calling it?
21:05:16alex_veleaI solved the vectors with databaseobjects
21:05:19Watusimotoand why are you calling it?
21:05:32alex_veleabecause that's the way it was.
21:05:39Watusimotook, I am confused
21:05:50alex_velealet me get to the original code
21:05:52Watusimotowhat do you mean by solving the vectors of databaseobjects?
21:06:28alex_veleaThey react ok with the undo / redo actions
21:06:37alex_veleaThey contain what they should contain
21:07:20alex_veleaHere's a portion of the original code
21:07:21alex_veleaFor the undo() function
21:07:21alex_veleasetDatabase(mUndoItems[mLastUndoIndex % UNDO_STATES]); GridDatabase *database = getDatabase(); mLoadTarget = database;
21:07:39alex_veleai changed the setDatabase with my undo method .. it works ok
21:08:00alex_veleabut i get the assert when i call the next function
21:08:00alex_velearebuildEverything(database); // Well, rebuild segments from walls at least
21:08:11alex_veleahttps://code.google.com/p/bitfighter/source/browse/zap/UIEditor.cpp
21:08:13alex_velealine 364
21:10:34Watusimotowith your undo, you probably won't need to set the database at all -- the database probably won't change
21:10:51WatusimotoI imagine you are adding and deleting objects from it
21:10:56alex_veleaYep
21:12:25Watusimotodid you modify rebuildEverything?
21:13:04alex_veleaNope
21:13:12alex_veleaI will try to change sth tomorrow
21:13:43alex_veleaTo copy the mChucker and all that jazz in my action of -undo- so i can see what's the problem.
21:13:51alex_veleaBut for the moment i just don't know
21:14:35Watusimotoyou are getting too deep in -- the problem isn't inside the database
21:14:41alex_veleahere's a part of my 'version' of undo .. http://ideone.com/SHbpbc i did not change a lot .. that was my aim. I created a class that stores the changes and has a metdhod that alters the DB with that changes
21:14:43Watusimotolet's just walk through this a little
21:15:09Watusimotoundo calls rebuildEverything, and passes the object database
21:15:28WatusimotorebuildEverything calls recomputeAllWallGeometry(), and passes the same database
21:16:09WatusimotorecomputeAllWallGeometry calls buildAllWallSegmentEdgesAndPoints, again passing the same database
21:16:54WatusimotobuildAllWallSegmentEdgesAndPoints iterates through that database, and pulls out everything that is a wallType
21:17:13Watusimotothat is, everything that passes this test
21:17:14Watusimotox == BarrierTypeNumber || x == PolyWallTypeNumber ||
21:17:14Watusimotox == WallItemTypeNumber || x == WallEdgeTypeNumber || x == WallSegmentTypeNumber;
21:17:32Watusimotowhere x is the type of the object being tested
21:17:55Watusimotoit then iterates over all those found objects, calling buildWallSegmentEdgesAndPoints()
21:18:47WatusimotobuildWallSegmentEdgesAndPoints() looks for things of type PolyWallTypeNumber; if the passed object is not that, it casts to WallItem *
21:18:52Watusimotoif that cast fails, you get your assert
21:18:53alex_veleaThat's true .. but that's just a part of it.
21:18:55Watusimotoso.
21:19:03alex_veleaI don't know where the walls are stored.
21:19:06alex_veleaAs themself
21:19:25Watusimotobut... if you modified none of the above chain, it should never assert unless...
21:19:30alex_veleaif you create an wall sith 5 segments the db will contain only 1 rectangle in mAllObjects
21:19:33alex_veleaIn that vector
21:19:48Watusimotounless your database has things in it that pass the test above but are not PolyWalls or WallItems
21:19:59Watusimotowhich it should not
21:20:05Watusimotobut maybe it does
21:21:29alex_veleaI will test that
21:21:33alex_veleaagain
21:21:39alex_veleaBut i don't think it does
21:21:42alex_veleabut just to make sure :)
21:23:35Watusimotowell, there is no other explanation
21:24:33Watusimotoyou can add your own assert higher up in the chain; perhaps loop through all the items in the database and ensure none have types Barriertype, WalLEdgeType, or WallSegmentType
21:24:51Watusimotobecause almost certainly one of them is of that type
21:24:59Watusimotoand you need ot figure out where it is coming from
21:30:17raptorwe gotta get rid of gScreeenInfo...
21:35:07alex_veleaI did not figured out what caused that .. but i will try to solve it. Still i think that that mChucker it's the problem but i will fix it :D goog night everyone
21:37:34WatusimotoI would suggest that you chreat a db checker like what I suggested above, put in a function, and call it from various places in your code to see where things go wrong
21:37:42Watusimotobut... good night!
21:37:47Watusimotoraptor: we must kill all globals!
21:38:21Watusimotothough screenInfo seems rather benign, as all computers will have a single screen
21:38:38Watusimotoand even if we have mutliple clients in one instance, there will still be one screen
21:38:44Watusimotowhy is it irking you?
21:41:47alex_velea Quit (Ping timeout: 250 seconds)
21:45:47Kiryx Quit (Ping timeout: 260 seconds)
21:50:11Skybax Quit (Ping timeout: 245 seconds)
21:57:49raptorstatic initilaization problems
21:58:14raptorthere are some global static for rendering columns in the editor help - and they reference gScreenInfo
21:58:39raptorbut on OSX they are initialized in a different order and the help screen has all columns on one side
22:02:00Watusimotoah, is that way osx help is screwed up (guessing that's what's behind the reports)
22:02:31raptoryes
22:02:42raptordidn't we attempt to remove it once/
22:02:44raptor?
22:05:53Skybax has joined
22:09:09HylianSavior has joined
22:09:37WatusimotoI don't recall that
22:09:43Watusimotowe have a seeker design problem
22:09:51raptormaybe I made a fatal attempt
22:10:02Watusimotowhen a cloud of seekers is homing in on you, and you face certain death...
22:10:11raptoryes
22:10:18Watusimoto...the first hits you and the area damage wipes the rest out. and you survive!
22:10:25raptorah
22:10:37raptorso the area damage
22:10:39Watusimotowhich is kind of cool unless you were really trying ot kill the dude
22:11:05Watusimotothe area damage also feels weird when a seeker crashes into a wall and kills you anyway
22:11:08raptorkaen made it so it would not affect other seekers shot at the same firing rate from the same ship
22:11:30Watusimotowell, i'm playing with phill_'s bot, and it happened a couple of times
22:11:50raptorhmmm.... ok
22:11:59WatusimotoI'm thinking we should not have area damage on seekers
22:12:01raptori even thought about adding in seeker-to-seeker immunity
22:12:14Watusimotowhat is the goal of it?
22:12:22Watusimotoof seeker area damage?
22:12:42raptoroh? area damage was specifically added at the request of several community members (there was some thread about it)
22:13:01raptorI didn't think it was a bad idea since seekers were underused and still needed adjustment
22:13:05WatusimotoI actually thought it was a neat idea
22:13:11raptorso I figured to try it for 019
22:13:16Watusimotoso if you had asked me I would have said sure
22:13:32raptorwe could do something like delayed explosions between seekers...
22:13:43raptorlike we do with mines, but maybe a slightly longer delay
22:14:01raptorhmm, maybe not - that might look weird
22:14:07Watusimotobut maybe we should go back to the question of what situations is seeker area damage good?
22:14:46WatusimotoI think it's bad when you have the swarm-die-off effect I described
22:14:58WatusimotoI think it's bad when a seeker crashes into a wall and damages you anyway
22:15:03BFLogBot Commit: a6a7a0a13eb1 | Author: buckyballreaction | Message: Line endings
22:15:04BFLogBot Commit: cf3a4bac1552 | Author: buckyballreaction | Message: Fix OSX editor help column rendering. We should probably have a coding convention of not using global statics in global statics to avoid weird initialization problems like this
22:15:08raptorok
22:15:22raptorwe could reduce the radius damage
22:15:25Watusimotoso if we can identify some situations where it's good we can focus on those
22:15:31raptorsorry, reduce the radius itself
22:15:34Watusimotoright
22:15:55raptorthe idea, i think, was that seekers were expensive and so you should still get some bang for the buck
22:15:56Watusimotothat wouldn't really solve either problem
22:16:07raptorbut then we made seekers cheaper
22:16:26WatusimotoHave you tried phill_'s new s_bot?
22:16:33raptorone of the earlier iterations..
22:16:37raptorlet me try the newest
22:16:40Watusimototry the latest when you get a chance
22:16:44Watusimotoit can be pretty deadly
22:16:55Watusimotoit fires before you see it, then it appears amid a swarm of angry seekers
22:18:21raptoraaaach
22:18:46raptoryeah, i see what you mean...
22:19:00raptorbetter than the first iteration for sure
22:19:21Watusimotoyes
22:19:24Watusimotopretty effective
22:20:05raptori think one improvement would be to make it aim along the a* path when it shoots seekers
22:20:17WatusimotoI think it does
22:20:21raptorreally?
22:20:25raptorlet me try again..
22:20:41Watusimotothat was my advice to him earlier, though I did not expain it nearly as clarly as you just did
22:20:42sam686raptor, your new commit about fixing OSX help, now causes help to screw up if you: go to editor, go fullscreen (changes getGameCanvasWidth), press F1. Note that it only runs UI constructor one time, and then it sets getGameCanvasWidth back to 800.
22:21:13raptorwell great
22:21:13Watusimotosee phill_'s notes in the case
22:21:20Watusimotohttp://www.google-melange.com/gci/task/view/google/gci2013/6468504886706176
22:21:51Watusimotostep 3 refers to the next a* waypoint, I think
22:21:58raptorah... so it does
22:22:03raptorgood
22:22:13WatusimotoI told him to taret ships in neighboring zones by aiming for that point
22:22:42Watusimotobut only when the angle between the shooter, the point, and the target falls into some range (seekers can't turn too sharply)
22:22:51Watusimotostep 2 refers to that angle
22:23:29raptorsam686: I don't see a problem on Linux...
22:23:34Watusimotothe bot rarely makes stupid into-the-wall shots now
22:23:37raptorbut i believe you
22:23:45raptorI don't know the proper 'fix'
22:24:40sam686you need to exit out of existing client, and start bitfighter and go fullscreen, then goto editor and press F1. (your fullscreen resolution should be bigger then 1024x768, it has no effect at 800x600)
22:25:00raptorok
22:25:31raptorah, going to fullscreen before the editor does it...
22:25:34raptori see now
22:25:40raptorgrumble grumble
22:27:03raptormaybe nows the time to get rid of gScreenInfo...
22:30:10sam686static const on only .h file is usually safe, the problem is when using extern / using .cpp file to store global variables, you might not know which variables run constructor first.
22:30:22raptorexactly
22:31:42sam686its partly why colors.h don't have colors.cpp, to make sure there no black color problem.
22:32:23raptori remember that
22:34:23Watusimotophill_: are you around?
22:36:01BFLogBot Commit: 9eeef99bb1ac | Author: buckyballreaction | Message: Allow placement of neutral/hostile Core in editor. They don't affect game score
22:36:16raptorWatusimoto: I'm seriously thinking of trying to get rid of gScreenInfo
22:36:33WatusimotoI have no problmes with doing that, but what will you replace it with?
22:36:43raptorwhat would be a good plan of attack? make all the methods static? or create the object on a ClientGame*?
22:36:51raptornot replacing it
22:37:10raptorrather morphing it into something so we don't have to use 'extern'
22:37:14sam686move ScreenInfo into ClientGame?
22:37:33Watusimotothe important question is this (and sam686 may have a good answer). If there are mutliple clients playing in one bf instance, how many uiManagers will we have?
22:37:41Watusimotoone per player or one overall
22:37:53Watusimotoif one overall, then you can put stuff on uiManager
22:38:16Watusimotoif one per player, then we'll need something to manage the uimanagers, and that can be where the stuff goes
22:38:22raptorI have a hard time believing many people use multiple clients in one instance...
22:38:33Watusimotocurrently none do
22:38:39sam686the problem is each client need to have their own UIGame as some variables shouldn't be shared (i think)
22:38:42raptorbecause the implementation doesn''t seem complete to me
22:38:53Watusimotoit's not at all complete
22:38:58Watusimotonot even a little bit complete
22:39:06Watusimotoit's a future project
22:39:09raptorah
22:39:20raptorsounds like a bit future project...
22:39:22raptor*big
22:39:32sam686I kindof started doing that 2 client game on one fullscreen bitfighter game
22:39:48WatusimotoI agree that there will be to uigames
22:39:52sam686you can't fullscreen 2 bitfighter clients at the same time.
22:39:52Watusimototwo
22:40:22Watusimotoif there are two uigames, each will have to be associaetd with a clientgame
22:40:31Watusimotoand now the clientgame has its own uimanager
22:40:55Watusimotoprobably that would stay the same, so each player would have their own uimanager
22:41:08Watusimotoand we'd need some larger entity to manage the uimanagers
22:41:12Watusimotoa screenmanager class, perhaps
22:41:17Watusimotoor displayManager
22:41:30Watusimotoso mayne that is where you can put your static methods and such
22:42:04sam686less globals = easier to implement multiple ClientGame
22:43:17Watusimotoyes
22:43:38Watusimotothough screen constants and such really are global
22:43:55sam686there is a /showpaths crash that needs fixing first, along with some other possible bugs
22:44:19Watusimotoraptor: does that help you at all?
22:44:20raptorsoo... screeninfo on clientgame?
22:44:32sam686probably yes
22:44:38raptori was not expect to have to implement a new architecture for this huge new feature...
22:44:46WatusimotoI was thinking on a new class
22:45:05Watusimotothat for now will only exist for this purpose
22:46:09Watusimotolooking at screenInfo
22:46:14Watusimotoit really *is* a class
22:46:30Watusimotoso now I'm confused
22:46:57Watusimotoraptor: what do you need to do to fix this initializatio problem? What is an example of something that needs to be changed?
22:47:26Watusimotonone of this is clientgame stuff
22:47:29Watusimotoit's all ui stuff
22:47:38kumul Quit (Ping timeout: 264 seconds)
22:50:40Skybax Quit (Ping timeout: 246 seconds)
22:51:15raptorWatusimoto: gScreenInfo is a global object declared in ScreenInfo.cpp
22:51:24Watusimotoright
22:51:28raptorso to access it it needs to be extern'd in the .h
22:51:35Watusimotoyes
22:51:58Skybax has joined
22:52:06Watusimotoif it were not a global object, how would you access it where you need it?
22:52:23raptorun UIEditorInstruction.cpp we have this: static S32 col3 = UserInterface::horizMargin + S32(gScreenInfo.getGameCanvasWidth() * 0.5)
22:52:27raptor*in
22:53:55raptorthe problem is that on OSX, it is initialized in a different order (probably because of the linker) and gScreenInfo.getGameCanvasWidth() is 0
22:54:33raptorinitialization/linker order problems happen because of the use of things like extern
22:55:04raptorand objects declared globally in .cpp files...
22:56:25raptorto prevent these annoying ordering issues means not using 'extern'
22:56:32Watusimotook
22:56:35raptorwhich means not declaring gScreenInfo in a .cpp
22:56:47raptorwhich means it should be an object on some other object
22:56:48Watusimotoso in UIEI, where will you get the canvas width?
22:56:52raptoror just have static methods
22:57:10raptorgodo question - that's why I asked about a suggested plan of attack
22:57:13raptor*good
22:57:14Watusimotogetcanvaswidth is a static method, no?
22:57:31Watusimotook
22:57:53sam686getCanvasWidth is not static function in ScreenInfo
22:57:59Watusimotoso what if screenInfo were available on the UI object?
22:58:04sam686as we was accessign through gScreenInfo
22:58:22raptorsounds fine to me
22:58:32Watusimotothen every ui class could call this->mScreenInfo->gtegameCanvasWidth()
22:58:40Watusimotowould that solve the problem?
22:58:41raptorsure
22:58:44raptoryes
22:58:50sam686the problem that can happen is, gScreenInfo and a bunch of others global constructor first the main() runs, except at which order?
22:59:10raptorthat's was my question - a good place for it to reside
22:59:29sam686if it is a single .cpp file, usually constructor runs first at the top then bottom
22:59:32raptorif it's on UI, would there be only one instance?
22:59:41raptorand does this object need to have only one instance?
22:59:46sam686except we have multiple .cpp file, so it depends what order linker adds them
22:59:47Watusimotothough if its on UI, that would mean it got replicated for every ui class, unless it was a static
23:00:03raptorI think it needs to be singleton
23:00:09raptoryeah... it does
23:00:11Watusimotothere should be only one instance, yes
23:00:27Watusimotoso it could be a static, or it could live on antoher singleton class
23:00:36raptoryes
23:00:49Watusimotowhich is why I was asking about uimanager before
23:01:01Watusimotolooking for a singleton class that will remain so into the future
23:01:14raptorseems like that is better then, if UIManager is a singleton
23:01:23Watusimotoit is right now
23:01:26raptorI'm not too familiar with UIManager code..
23:01:39Watusimotothere is one uiManager per client game
23:01:57Watusimotoit's the interface between cleintgame and all the ui code
23:02:12Watusimotoclientgame only talks to uimanager
23:02:23Watusimotouimanager delegates from there
23:02:40raptorok, now I think we're sync'ing up...
23:02:46Watusimotobut if we have two client games, we'll porobaby have two ui managers
23:02:54Watusimotoand it will no longer be a singleton
23:02:56raptoryeah - and we can't have two screeninfos
23:03:36Watusimotobut there will need to be something to manage these two uimanagers, to tell which one which part of the screen to use. and that thing (screenManager??) will be a singlegon
23:03:49Watusimotoso that is (ultimately) where screenInfo should live
23:04:05raptormaybe it should be a static on VideoSystem
23:04:44Watusimotoso do one of the following 1) Expedient - put it on ui manager, and we change it later or 2) create a new class that does nothing but hold screenInfo, and put it there
23:05:08Watusimotovideosystem? let me look at ath
23:05:49WatusimotoI suppose it could go there
23:05:54raptorit controls video set-up, all static methods
23:06:08Watusimotook, that is option 3
23:06:22WatusimotoI think you should do that for now
23:07:11raptorheh VideoSystem uses gScreenInfo 47 times
23:09:22raptor330 total uses
23:10:08raptorI'm thinkg that #2 might be best - create a new class, instantiate it and clean it up in main()
23:10:12raptormain.cpp
23:10:27raptorDisplayManager sounds good, too
23:11:27Watusimotook, that woudl be fine as well
23:11:33Watusimotobut
23:11:46raptorargh
23:11:48Watusimotowoudl we need that for tests? if so, creating it in main is painful
23:11:48raptorbut
23:12:08raptorhow to access it from other classes?
23:12:30raptoryeah..
23:13:02Watusimotoaccess it statically
23:13:20Watusimotothen it's just like a global!
23:13:34raptorargh
23:14:02kaenthat's fine, as long as it has defined initialization
23:14:12kaenand defined access semantics
23:14:31kaen(two clientgames aren't writing to it at the same time)
23:14:57kaensounds like a good case for a singleton
23:14:57BFLogBot Commit: fa5bae0be57a | Author: buckyballreaction | Message: Revert cf3a4bac1552 that fixes OSX editor help screens. We need to rethink this...
23:15:00kaenand good day all
23:15:12raptorok, I think I'm a little fuzzy here on how to do that - declare a "static DisplayManager;" in some header as a public var?
23:15:35Watusimotono you create the class
23:15:42raptorbecause that's starting to sound like the 'extern' problem
23:15:52Watusimotothen havve static screeninfo
23:16:00kaenwat is correct, you just create the class and use it as normal
23:16:12Watusimotoit's really the same thing, but maybe will fix the link issue
23:16:22Watusimotobecause it's not technically the same thing
23:16:24kaenclass DisplayManager { static mScreenInfo; static ScreenInfo getScreenInfo() };
23:16:39raptorahhh
23:16:41Watusimoto^^
23:16:55kaenas long as it's not used in the static initialization of some other variable, it's safe
23:16:58raptorthat makes so much more sense now
23:17:07kaen(if not, however, then you do get the same problem)
23:20:29Watusimotokaen: when you get a chance, check out phill_'s latest bot work
23:20:54WatusimotoI left some comments for him, but basically I think he's pretty much there
23:21:07Watusimotoit's a dangerous bot (at least for me)
23:21:55kaenif it has to be used for static initialization (I imagine it is or we wouldn't be having this discussion), instead do getScreenInfo() { static ScreenInfo screenInfo; return screenInfo }
23:22:12kaenwhich has defined initialization order, even when called from static initializations
23:22:36kaen(and return a mutable reference)
23:23:43raptordo I need to return a reference? static ScreenInfo& getScreenInfo(); or a pointer? or will static like that be guaranteed to be the same object?
23:23:56sam686another problem was the use of gScreenInfo in a global variable... that if happen to run first it will either crash or be zero
23:23:58Platskies has joined
23:25:27Platskies Quit (Client Quit)
23:25:45Platskies has joined
23:27:45raptoror should I return a poniter?
23:27:55kaenstatic is guaranteed to be the same. pointer or mutable reference is just a stylistic choice
23:28:07kaenI'm on sort of a reference kick.
23:28:11raptorheh
23:28:13raptorok
23:28:16raptorthank you
23:28:25kaenmy pleasure :)
23:29:09WatusimotoI don't think I've ever written a function that returned a reference
23:30:15Watusimotoso what's our plan... a few fixes in response to 019 then release 019a?
23:30:29raptorinteresting idea...
23:30:30kaenyou're not supposed to, but for a singleton it's guaranteed to be ok :P
23:30:43raptorwasn't that our idea from 018a to 019?
23:30:48kaenhehe
23:30:49Watusimotoyes
23:31:05Watusimotoalso... the website redesign is kind of dangling
23:31:13raptorthis release took 8 months, i think 016 was barely longer...
23:31:32Watusimotothis was a HUGE release
23:32:27raptoryes, it was...
23:32:40kaen:wq
23:32:43kaenoops
23:32:49kaencan you tell what editor I'm using? :P
23:33:22Watusimotothe one true editor
23:33:40kaengotcha! it's ST3 in vintage mode :)
23:33:52WatusimotoST _is_ the one true editor
23:34:16kaen:q doesn't actually work, but sometimes I slip and let fly a vimism
23:34:32kaenoh!
23:34:43kaendid you know cmake generate ST project files, Watusimoto ?
23:34:55Watusimotoyou mentioned that it did
23:34:55kaencmake can*
23:35:01Watusimotonever tried it though
23:35:07kaenah ok. I'm still pretty excited about it :)
23:36:18Watusimotoit's definitely cool
23:36:41Watusimotoso... guys... what about the website overhaul that no one wants to talk about?
23:37:14kaenI still want to make it happen. But admittedly it's pretty low priority on my list.
23:37:38Watusimotoyes, but if we let it drift too long, we'll lose our jimmysquid
23:37:43Watusimotoif we haven;t already
23:37:53Watusimotothat's really my only concern
23:38:13Watusimotobecause of all of us, I like our current site best and the redesign least
23:39:43Watusimotoshould zone icons grow to fill the zone?
23:40:22raptorgrow? or shrink?
23:41:06Watusimotoyes -- should a big zone have a big icon?
23:41:57Skybax_ has joined
23:42:19kaenI like them all being the same size. Looks better imo
23:42:27BFLogBot Commit: 82bba04b15eb | Author: watusimoto | Message: It _is_ an error message, after all!
23:42:29BFLogBot Commit: 0214b6f14129 | Author: watusimoto | Message: Merge
23:42:31kaenbut it would be nice if they shrunk when the zone was too small
23:42:47Skybax Quit (Ping timeout: 272 seconds)
23:42:53Watusimotothey woudl get really hard to see if much smaller
23:49:21raptor Quit (Ping timeout: 245 seconds)
23:51:27raptor has joined
23:51:27ChanServ sets mode +o
23:52:18raptorI don't know about scaling... the idea seems too different
23:53:47raptorok, DisplayManager with the new ScreenInfo is compiling, but launching the game is throwing asserts
23:53:51raptorand quits
23:54:09raptorthis is my .h: http://pastie.org/8521720
23:54:35raptorthis is my .cpp: http://pastie.org/8521721
23:54:40raptoram I doing something wrong?
23:54:49raptorI bet I need to return a reference...
23:55:05sam686perhaps something is accessing getScreenInfo() first without the static ScreenInfo initalizing?
23:55:30raptorthat could be...
23:55:57raptorbut then I'm in the realm of ordering problems again...
23:56:05raptorwhich I'm trying to avoid
23:56:38sam686take off the ScreenInfo DisplayManager::mScreenInfo; from .cpp and then it will be fine?
23:57:34raptorfails to link
23:57:41sam686take off the statics?
23:58:05raptorwe need statics so we can access it statically
23:58:26raptorlike this: DisplayManager::getScreenInfo().getGameCanvasWidth()
23:58:44sam686but then that static means extern, and having to initalize them at .cpp (unless its a const U32/S32)

Index Search ←Prev date Next date→

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