Timestamps are in GMT/BST.
| 00:03:31 | Watusimoto | do you interpret that trace as showing an eror inthe luaw destructor? |
| 00:10:14 | raptor | hi, sorry, looking... |
| 00:10:25 | Watusimoto | no worries |
| 00:10:42 | | BFLogBot Commit: a58efae11bfd | Author: watusimoto | Message: Add back explicit call to LUAW_DESTRUCTOR_CLEANUP in robot destructor |
| 00:10:44 | | BFLogBot Commit: ae8eee419631 | Author: watusimoto | Message: Whitespace |
| 00:10:59 | Watusimoto | I was getting errors on quitting; this checkin seems to have solved that, for some reason I do not understand |
| 00:11:02 | raptor | it looks to me that something has already called the ~Robot destructor, then upon game exit, Lua is calling it again... |
| 00:11:16 | raptor | yes, my error was on quitting.. |
| 00:11:22 | Watusimoto | would you update and try running again? |
| 00:11:27 | raptor | ok |
| 00:12:06 | Watusimoto | I may have removed this statement that I just added back 1-2 weeks ago, which is the right time frame |
| 00:12:57 | Watusimoto | oh, and are you compiling this as a 64 bit binary? |
| 00:13:25 | raptor | yes |
| 00:13:38 | Watusimoto | that explains the 8 bytes |
| 00:13:50 | Watusimoto | because in 64 bit, pointers are 8 bytes, no? |
| 00:14:04 | raptor | recompiling... |
| 00:14:06 | raptor | correct |
| 00:14:14 | raptor | address size is 64bits |
| 00:14:21 | Watusimoto | a ha! |
| 00:14:28 | Watusimoto | maybe that checkin did fix the problem |
| 00:14:42 | raptor | testing.. |
| 00:14:56 | Watusimoto | when the LUAW_DESTRUCTOR_CLEANUP is omitted, this gets run in luaw destructor: |
| 00:14:56 | Watusimoto | mProxiedObject->mLuaProxy = NULL; |
| 00:15:05 | Watusimoto | when that line is included, that doesn't run |
| 00:15:20 | Watusimoto | maybe that's the magic 8 bytes! |
| 00:15:53 | Watusimoto | and the pointer error I see appears |
| 00:16:11 | raptor | and.... |
| 00:16:12 | raptor | and... |
| 00:16:16 | raptor | no crash! |
| 00:16:19 | Watusimoto | excellent! |
| 00:16:19 | raptor | no invalid write |
| 00:16:24 | Watusimoto | ok, great |
| 00:16:30 | Watusimoto | martinb__android: are you around? |
| 00:16:42 | Watusimoto | he's probably in bed by now |
| 00:16:51 | Watusimoto | I'll see if I can get him to test tomorrow |
| 00:17:20 | Watusimoto | ok, mystery solved, pretty much |
| 00:20:03 | | BFLogBot Commit: 74046e123b63 | Author: watusimoto | Message: Explanatory comment |
| 00:20:20 | Watusimoto | I tried hdon's oglconsole font fix, and it completely doesn't work for me |
| 00:20:32 | Watusimoto | all I get is garbage |
| 00:20:53 | raptor | yeah... i think it isn't a stellar piece of code |
| 00:21:20 | raptor | we've had to patch it/modify it lots |
| 00:21:25 | Watusimoto | the very same evening he showed up, I was googling for alternatives |
| 00:21:30 | raptor | haha |
| 00:21:53 | Watusimoto | well, I feel like we no longer need to consider upstream compatibility |
| 00:21:58 | Watusimoto | if we ever did |
| 00:22:07 | raptor | i agree |
| 00:22:07 | Watusimoto | but that's a small burden I feel has been lifted |
| 00:29:27 | Watusimoto | I'm going to clean out some of the cruft from in there |
| 00:29:50 | raptor | clean clean |
| 00:29:57 | raptor | turn it into c++! |
| 00:30:04 | raptor | it's ours now! |
| 00:33:19 | | bobdaduck has joined |
| 00:35:16 | Watusimoto | so you said this is the only place we use a texture |
| 00:35:21 | raptor | yep |
| 00:35:23 | raptor | only place |
| 00:35:28 | raptor | i think we should kill it |
| 00:35:39 | Watusimoto | and you said in the past that textures are what make our full screen difficult |
| 00:35:45 | raptor | yes |
| 00:36:05 | Watusimoto | so what... create a new font based on pixel rendering? |
| 00:36:06 | raptor | there was garbledygook with textures on changing screen mode |
| 00:36:26 | raptor | but you work around it by reloading all textures on any screen change |
| 00:36:37 | Watusimoto | the advanate we have with the console is that the text is always the same size |
| 00:36:56 | raptor | uhh.. i don't know... |
| 00:37:04 | Watusimoto | so we don't need to worry about scaling |
| 00:37:15 | raptor | we could use our current vector font and somehow adapt it? |
| 00:38:03 | raptor | hey i think i just popped my ribs back in place! |
| 00:39:07 | raptor | haha kaen |
| 00:39:15 | raptor | you told someone in the forums to RTFM! |
| 00:39:46 | kaen | it is, by far, the most common solution to technical problems. |
| 00:41:07 | raptor | except for the fact that in our ever increasingly shortened-attention span cultures we have to train people to spend the time to read... |
| 00:41:57 | raptor | sometimes i wonder if the INSTRUCTIONS on the main menu is big enough... |
| 00:42:03 | raptor | maybe we should flash it |
| 00:42:14 | raptor | turn it neon colors |
| 00:42:24 | raptor | force people to run through it... |
| 00:42:33 | Watusimoto | it seems most text is done with textures |
| 00:43:03 | bobdaduck | lol |
| 00:43:32 | raptor | Watusimoto: yes, in fact, it would make it easier to use international languages |
| 00:43:42 | raptor | because there are TTF fonts of everything! |
| 00:44:02 | Watusimoto | yes, and packages like this: |
| 00:44:03 | Watusimoto | http://code.google.com/p/freetype-gl/ |
| 00:44:15 | raptor | !!!!!!!! |
| 00:44:29 | raptor | I've been looking for something like that... |
| 00:45:10 | Watusimoto | well, it looks cool |
| 00:45:22 | Watusimoto | but it uses a texture |
| 00:45:29 | raptor | but then we'd have to worry about texture sizes and supported graphics cards... |
| 00:46:19 | Watusimoto | we'd have to worry if we used this package? |
| 00:46:48 | raptor | yes, if we get into texture packing |
| 00:46:58 | raptor | which is what we should do if we want to be efficient |
| 00:47:30 | Watusimoto | well, this thing has some neat looking texture packing |
| 00:48:15 | raptor | bobdaduck: did you just crash the contest server?? |
| 00:48:32 | bobdaduck | yeah |
| 00:48:38 | Watusimoto | how? |
| 00:48:43 | raptor | i don't know... |
| 00:48:45 | raptor | first time |
| 00:49:27 | bobdaduck | Everyone was crashing on the forcefield creation |
| 00:49:36 | raptor | oh oops... |
| 00:49:43 | raptor | i created them |
| 00:49:52 | raptor | but the server itself hasn't crashed before... |
| 00:49:56 | raptor | restarted |
| 00:52:37 | Watusimoto | that package is interesting as it appears you can create textures from points and make rendering go faster |
| 00:52:52 | raptor | yes, using a single texture is much faster |
| 00:53:01 | Watusimoto | so we could, for example, make textures of soem game objects and then just blit them onto the screen |
| 00:53:09 | raptor | yes |
| 00:53:44 | Watusimoto | so I hear you saying textures suck lets get rid fo them and then I hear textures are fast and this is an awesome looking lib, and I get confused :-) |
| 00:53:51 | raptor | no no |
| 00:54:15 | raptor | 1 texture, packed is faster than 26 textures, 1 per character |
| 00:54:37 | raptor | that's what i mean |
| 00:55:06 | kaen | for example, make textures of soem game objects |
| 00:55:12 | Watusimoto | I see; yes, I'm sure that's better |
| 00:55:14 | kaen | ^ I was thinking about this the other day |
| 00:55:52 | kaen | seems like almost all of bitfighter's objects would be candidates for this. |
| 00:56:15 | kaen | only a few actually have dynamic sprites, for lack of a better term |
| 00:56:35 | raptor | now the question is: is it faster to have 1 texture for all common objects (testitem, resource, etc) and just put multiples of them to the screen |
| 00:56:46 | kaen | that would require testing |
| 00:56:47 | raptor | OR render multiples of vertex data directly |
| 00:56:57 | raptor | vertex data is extremely performant... |
| 00:57:03 | kaen | right |
| 00:57:17 | kaen | but blitting requires no math |
| 00:57:28 | kaen | well, except for like mipmapping |
| 00:57:50 | kaen | but, much of that math is done in the gpu, so... |
| 00:57:55 | kaen | that would require testing |
| 00:59:19 | Watusimoto | this package also includes a console!!! |
| 00:59:24 | kaen | lol |
| 00:59:25 | raptor | what?! |
| 00:59:28 | kaen | how convenient... |
| 00:59:41 | Watusimoto | http://code.google.com/p/freetype-gl/source/browse/trunk/demo-console.c |
| 01:00:12 | raptor | uses GLUT! |
| 01:00:13 | Watusimoto | though still not c++ |
| 01:00:18 | Watusimoto | what?? |
| 01:00:35 | Watusimoto | ugh |
| 01:00:35 | raptor | look at bottom... |
| 01:00:47 | Watusimoto | yes, I see it now |
| 01:01:30 | Watusimoto | http://wacha.ch/wiki/sdlconsole |
| 01:01:37 | Watusimoto | I'm on the hunt now |
| 01:01:57 | Watusimoto | but this one is not it |
| 01:02:19 | raptor | neat |
| 01:02:32 | raptor | uses SDL_image |
| 01:02:47 | Watusimoto | he complains it is difficutl to integrate and slow |
| 01:05:41 | raptor | anilater9000 v9 |
| 01:05:44 | raptor | has joined |
| 01:06:33 | raptor | i don't know kaen direct vertex buffers will be hard to beat... |
| 01:08:08 | raptor | ok, heading home! |
| 01:11:56 | Watusimoto | bye! |
| 01:12:07 | | raptor Quit () |
| 01:29:36 | | CrazyLinuxNerd Quit (Quit: Leaving) |
| 01:42:18 | bobdaduck | When I use /getmap it really,, really, really screws up formatting |
| 01:42:48 | kaen | I bet you've just found some unix line endings. |
| 01:43:03 | bobdaduck | Yes, very much so. |
| 01:43:13 | bobdaduck | And it makes it so the maps and scripts don't run. |
| 01:43:14 | kaen | you just need a better text editor :) |
| 01:43:23 | bobdaduck | No |
| 01:43:30 | bobdaduck | Openning them in Notepad++ does the same thing |
| 01:43:40 | kaen | oh alright sounds like a bug. |
| 01:43:52 | bobdaduck | Unix line endings is definitely a part of it. |
| 01:58:09 | | YoshiSmb has joined |
| 02:03:37 | | Watusimoto Quit (Ping timeout: 276 seconds) |
| 02:07:03 | | raptor has joined |
| 02:07:03 | | ChanServ sets mode +o raptor |
| 02:07:56 | raptor | bobdaduck: tell me how to reproduce your getmap problem? |
| 02:08:05 | bobdaduck | GET IN MY SERVER YOU GUYS |
| 02:08:07 | bobdaduck | I'M AMAZING |
| 02:28:17 | YoshiSmb | Error 13 |
| 02:29:00 | raptor | YoshiSmb: when connecting to master? |
| 02:29:14 | YoshiSmb | no. to a server. |
| 02:29:22 | YoshiSmb | it say 'Stat: T |
| 02:30:42 | raptor | that's ReasonIncompatibleRPCCounts |
| 02:30:54 | raptor | sam686: how come YoshiSmb got that ^^? |
| 02:31:05 | raptor | YoshiSmb: was it connection to sam686's server? |
| 02:31:31 | YoshiSmb | no. |
| 02:31:38 | YoshiSmb | it was on a normal hosting server |
| 02:43:02 | raptor | YoshiSmb: did you use normal 018 and do HOST GAME? |
| 02:43:49 | YoshiSmb | no. JOIN GAME: |
| 02:46:47 | raptor | but on who's server? |
| 02:48:49 | sam686 | addbot crashed contest server... |
| 02:56:07 | | YoshiSmb Quit (Ping timeout: 255 seconds) |
| 03:01:50 | sam686 | As for YoshiSMB problem, it might be a modified or incompatible to existing 018 on some revisions... (might be bobdaduck? causing errors to others trying to connect?) |
| 03:03:41 | sam686 | The problem is, I didn't see the error... because that server giving players errors isn't there for me to connect |
| 03:12:55 | | YoshiSmb has joined |
| 03:13:29 | YoshiSmb | i dont know raptor. ''Raptor Say's:but on who's server?'' |
| 03:14:02 | sam686 | YoshiSmb - As for your connection error, only got that for only one server that isn't there anymore, out of others? |
| 03:14:11 | raptor | hia gain |
| 03:14:31 | YoshiSmb | yes |
| 03:15:21 | sam686 | who ever was hosting might have had a broken compatibility with existing 018, I might want to check the latest changes though.. |
| 03:15:37 | YoshiSmb | yep. |
| 03:57:06 | | bobdaduck Quit (Quit: Page closed) |
| 04:04:31 | kaen | raptor, I was just thinking: the accolade stuff for desura would fit nicely into the master |
| 04:05:12 | kaen | since it has a part in awarding accolades anyway. that extra library wouldn't be a dep for the client/server |
| 04:05:15 | raptor | the stats stuff? |
| 04:05:23 | kaen | well, the badges |
| 04:05:23 | raptor | ahh... for master |
| 04:05:25 | raptor | hmmm |
| 04:05:29 | raptor | interesting idea |
| 04:05:35 | kaen | since it controls the db |
| 04:05:43 | kaen | just slip the xml stuff right in there |
| 04:05:47 | kaen | if it even comes to that, I mean |
| 04:05:50 | raptor | i think you're right.. |
| 04:05:53 | raptor | good thinking |
| 04:06:13 | kaen | my mind is wandering right now |
| 04:06:26 | kaen | I'm about to dig out the shaders implementation from my skunkworks... |
| 04:07:18 | raptor | heh |
| 04:08:23 | kaen | oh wow I did a... hasty... job. |
| 04:08:56 | kaen | now for my favorite part of programming: figuring out what the heck I was thinking |
| 04:09:13 | raptor | haha |
| 04:09:17 | kaen | and then probably for my second favorite part: throwing stuff away |
| 04:09:20 | | YoshiSmb Quit () |
| 04:09:30 | raptor | i usually make fun of myself for a few moments, then rewrite everything... |
| 04:09:35 | kaen | yep. |
| 04:13:20 | | Nothing_Much Quit (Read error: Connection reset by peer) |
| 04:13:52 | | BFLogBot Commit: b38b3e255d53 | Author: buckyballreaction | Message: Fix some compiler warnings in Linux |
| 04:22:30 | | bobdaduck has joined |
| 04:26:32 | | bobdaduck Quit (Client Quit) |
| 04:50:18 | raptor | i think callbacks are starting to punch me in the head.. |
| 05:21:31 | | bobdaduck has joined |
| 05:22:50 | | Lamp has joined |
| 05:22:53 | Lamp | hi |
| 05:23:01 | raptor | hi Lamp |
| 05:23:02 | raptor | welcome |
| 05:23:23 | raptor | you say the F keys don't work in-game? |
| 05:23:26 | raptor | on mac |
| 05:23:29 | Lamp | not all |
| 05:23:37 | raptor | do the work in other applications on your computer? |
| 05:23:46 | raptor | *they |
| 05:23:52 | Lamp | i dunno... |
| 05:23:59 | Lamp | i never used f keys for apps before |
| 05:24:04 | raptor | ok |
| 05:24:16 | Lamp | what are the controls for the game? |
| 05:24:20 | Lamp | i mean commands? |
| 05:24:22 | raptor | but you can get to the INSTRUCTIONS from the main menu? |
| 05:24:29 | Lamp | e.g. /yes |
| 05:24:33 | Lamp | yes |
| 05:24:38 | Lamp | what are the commands? |
| 05:24:41 | Lamp | how do i add a bot? |
| 05:24:45 | raptor | ok, go there, then use the arrow keys to go to page 10 |
| 05:25:04 | Lamp | oh got it |
| 05:25:15 | raptor | ok, there's lots and lots of commands |
| 05:25:27 | raptor | that's why we say to look at the instructions.. |
| 05:26:02 | Lamp | i idnt know there were more than one pages... |
| 05:26:06 | Lamp | *didnt |
| 05:30:16 | Lamp | i forgot what a module is... |
| 05:30:23 | Lamp | oh nvm |
| 05:30:35 | kaen | hi Lamp :) |
| 05:30:40 | Lamp | hi |
| 05:36:57 | | Lamp Quit (Ping timeout: 245 seconds) |
| 05:50:17 | | bobdaduck Quit (Ping timeout: 245 seconds) |
| 05:59:02 | raptor | oh no... Lamp is a dungeon afficionado |
| 06:21:44 | sam686 | I guess contest server went bye bye since it is no longer a contest... |
| 06:22:00 | sam686 | but the real reason it is gone is it died on /addbot |
| 06:22:55 | raptor | that stinks... |
| 06:26:55 | raptor | did you restart it? |
| 06:27:29 | raptor | last error in logs was: |
| 06:27:30 | raptor | ***ROBOT ERROR*** Error handling event Tick: robots/s_bot.bot:91: attempt to call missing or unknown method 'getHealt |
| 06:27:32 | raptor | h' (a nil value). Shutting bot down |
| 06:51:50 | | raptor Quit () |
| 07:17:43 | | Nothing_Much has joined |
| 07:39:22 | | martinb__android Quit (Read error: Connection reset by peer) |
| 10:08:40 | | Watusimoto has joined |
| 12:35:04 | Watusimoto | kaen: events ARE documented, at least partially! I just realized! |
| 12:35:12 | Watusimoto | http://bitfighter.org/luadocs/index.html |
| 12:35:30 | Watusimoto | Click on the enums tab, then Event |
| 12:35:41 | Watusimoto | not terribly useful, but I feel less neglectful now |
| 12:38:40 | | Nothing_Much Quit (Ping timeout: 276 seconds) |
| 14:18:37 | | YoshiSmb has joined |
| 14:21:35 | YoshiSmb | hi |
| 14:24:21 | | LordDVG has joined |
| 14:25:55 | YoshiSmb | hi LordDVG |
| 14:26:05 | LordDVG | yo YoshiSmb |
| 14:26:20 | LordDVG | happy new year ;) |
| 14:34:39 | YoshiSmb | thanks. |
| 14:34:58 | YoshiSmb | happy new year LordDVG. :D |
| 14:44:04 | kaen | Watusimoto, that's where I pulled the list in the thread from :) |
| 14:44:25 | kaen | and timezone-appropriate grettings, all |
| 14:49:26 | | Watusimoto Quit (Ping timeout: 248 seconds) |
| 15:02:31 | | LordDVG Quit (Remote host closed the connection) |
| 15:18:24 | | raptor has joined |
| 15:18:25 | | ChanServ sets mode +o raptor |
| 15:24:16 | YoshiSmb | hi raptor. |
| 15:24:26 | raptor | good morning |
| 15:25:08 | YoshiSmb | you sleep well? |
| 15:25:49 | raptor | mostly well, i think; thanks |
| 15:26:59 | YoshiSmb | np. |
| 15:27:13 | YoshiSmb | also i awake a few hour's ago. |
| 15:50:42 | | YoshiSmb Quit (Ping timeout: 245 seconds) |
| 16:11:23 | | martin_bede has joined |
| 16:11:29 | martin_bede | hello |
| 16:11:55 | raptor | hi |
| 16:20:04 | kaen | raptor I know I've asked this before, but what version of ogl do we support? |
| 16:20:09 | kaen | also good morning |
| 16:20:15 | raptor | good morning! |
| 16:20:43 | raptor | i ported everything to GL ES at the end of the summer, but that means we can run on opengl 1.1 |
| 16:21:23 | raptor | but, our goal is to get to GL ES2 for mobile compatibility (some day) |
| 16:22:01 | raptor | nice info about porting: http://wiki.maemo.org/OpenGL-ES#Porting_between_OpenGL_variants |
| 16:23:54 | kaen | how did you learn so much about OGL/SDL raptor? |
| 16:24:00 | raptor | dreams |
| 16:24:05 | kaen | lol |
| 16:24:32 | raptor | i read the APIs in my dreams... or at least really late at night |
| 16:24:42 | raptor | for weeks on end, i went through epic struggles |
| 16:24:57 | raptor | and i don't think i learned much.. |
| 16:25:20 | raptor | yeah, so... |
| 16:25:21 | kaen | I think you know tons more than I do, at least. |
| 16:25:36 | raptor | basically the porting of bitfighter to SDL/SDL2 taught me everything I know... |
| 16:26:01 | raptor | i was wholly ignorant when I started - i had some vague idea of what SDL actually was.. |
| 16:26:48 | kaen | I guess I just need to get my hands dirtier |
| 16:27:57 | raptor | yes, that's about it |
| 16:38:08 | raptor | kaen: wherer are you fromn again? somewhere in the south usa? |
| 16:42:51 | raptor | ugh my spelling |
| 16:45:43 | kaen | washington state |
| 16:45:51 | kaen | lived here my whole life :) |
| 16:46:29 | raptor | ah that's right... |
| 16:53:31 | | Watusimoto has joined |
| 16:53:51 | raptor | trying to repair donny's latest patch |
| 16:54:00 | Watusimoto | hi |
| 16:54:05 | raptor | hi |
| 16:54:07 | martin_bede | hi |
| 16:54:34 | Watusimoto | hi martin_bede -- have you tried running Bitfighter since my last commit (last night) |
| 16:54:54 | Watusimoto | it fixed raptor's problem; hopefully yours as well |
| 16:55:02 | martin_bede | yes, i saw your message |
| 16:55:10 | martin_bede | it didn't do the trick for me |
| 16:55:16 | Watusimoto | grrrr |
| 16:55:31 | raptor | martin_bede: what was your problem again? and how to duplicate? |
| 16:56:03 | martin_bede | the game freezes when i try to start mazeracer |
| 16:56:12 | Watusimoto | raptor: did you see this? |
| 16:56:13 | Watusimoto | https://code.google.com/p/bitfighter/issues/detail?id=188 |
| 16:56:16 | Watusimoto | :-) |
| 16:56:40 | raptor | martin_bede: on Linux? |
| 16:56:44 | martin_bede | yes |
| 16:57:12 | raptor | have you tried a full recompile from the project root? 'make clean && make debug' |
| 16:57:24 | | YoshiSmb has joined |
| 16:57:28 | martin_bede | didn't yet |
| 16:57:37 | raptor | Watusimoto: onwards! |
| 16:57:55 | raptor | martin_bede: i suggest to do a full recompile with the latest changes, then retest |
| 17:01:32 | | YoshiSmb Quit (Ping timeout: 245 seconds) |
| 17:02:11 | Watusimoto | raptor: I was reading about bitmapped fonts, and they seem to be good for what we want |
| 17:02:24 | Watusimoto | if we want to get rid of textures altogether |
| 17:02:42 | raptor | are you thinking of replacing in-game text like chat as well? |
| 17:02:51 | Watusimoto | that doesn't use textures |
| 17:02:58 | Watusimoto | so... no |
| 17:03:07 | Watusimoto | also, I think it is part of what gives the game its character |
| 17:03:17 | raptor | yes, me too |
| 17:03:21 | raptor | just checking.. |
| 17:03:40 | Watusimoto | though who knows... maybe there are fonts that would be as good or better |
| 17:03:47 | Watusimoto | my main goal is just for the console |
| 17:04:32 | Watusimoto | all of you are on linux, but I found a great windows replacement for the windows console (cmd.exe) |
| 17:04:42 | Watusimoto | that actually works like a... console |
| 17:04:58 | martin_bede | raptor: that fixed it, thanks |
| 17:05:11 | Watusimoto | instead of a piece of junk from 1982 |
| 17:05:23 | martin_bede | how did that happen? i know what make clean does, but i don't know why it was helpful in this case |
| 17:05:29 | raptor | martin_bede: hooray! |
| 17:05:45 | raptor | Watusimoto: msys? |
| 17:05:47 | raptor | :) |
| 17:05:50 | Watusimoto | raptor's favorite fix... make clean |
| 17:06:19 | Watusimoto | no, conEmu |
| 17:06:21 | martin_bede | from now it's mine too :D |
| 17:06:22 | raptor | martin_bede: basically, 'make' is not very smart - if there are header file changes (.h files) make is not smart enough to recompile all the .cpp files that use it |
| 17:06:45 | martin_bede | is see, thanks for explaining |
| 17:08:56 | raptor | martin_bede: you're welcome. i follow one basic rule, if there are .h changes, then I do 'make clean' first |
| 17:10:58 | Watusimoto | martin_bede: now you can test your code!! |
| 17:11:21 | raptor | Watusimoto: i don't understand how donny is creating these patches... |
| 17:11:27 | raptor | for the /announce |
| 17:11:34 | Watusimoto | did he make another one? |
| 17:11:38 | raptor | yes... |
| 17:11:42 | raptor | trying to normalize it again.. |
| 17:11:44 | raptor | trying... |
| 17:12:04 | Watusimoto | if he didn't make it off a recent code base, I'm not going to bother look at it |
| 17:12:11 | Watusimoto | I spent waaay too much time doing that last time |
| 17:12:32 | Watusimoto | and I gave him what I thought were clear instructions on what to do |
| 17:12:50 | Watusimoto | we made it really easy by merging his partial code into the codebase (admittedly, a bad practice) |
| 17:14:29 | Watusimoto | but I wanted to make it easy for him to do "the right thing" |
| 17:14:31 | raptor | 1/3 of the chunks are reversed, 1/3 apply normally, and the rest don't apply at all... |
| 17:14:35 | raptor | fjkaf;jdak;lfdas |
| 17:15:06 | Watusimoto | there should only be one or two chunks in all |
| 17:15:17 | raptor | hunks |
| 17:15:19 | Watusimoto | or at least his latest edits should have only affected one or two files |
| 17:15:23 | raptor | did i say chunk? i meant hunk |
| 17:15:25 | raptor | whatever |
| 17:15:32 | Watusimoto | i'm a hunk -- these are chunks :-) |
| 17:17:13 | raptor | there's even one part in there twice! |
| 17:19:21 | raptor | ok, i don't really want to spend time on this patch.. it's the worse one so far.. |
| 17:19:25 | raptor | suggestions? |
| 17:20:58 | martin_bede | Watusimoto: what's the best way of printing to console from lua? print "blah"; doesn't seem to do anything |
| 17:21:21 | Watusimoto | it should, but if it doesn't, use logprint("blah") |
| 17:21:27 | Watusimoto | print "blah" will not work |
| 17:21:32 | Watusimoto | print("blah") should |
| 17:21:47 | Watusimoto | lua is pretty strict about ()s in functions |
| 17:22:14 | Watusimoto | print is mapped to call logprint, so they are pretty much identical |
| 17:23:29 | martin_bede | strange, only logprint works (i used parentheses) |
| 17:27:30 | Watusimoto | well, I'll fix that |
| 17:33:36 | raptor | ok, replied to Donny about not being able to use the patch... again |
| 17:41:19 | Watusimoto | ok, dinner... back later |
| 17:46:17 | | Watusimoto Quit (Ping timeout: 265 seconds) |
| 17:48:05 | martin_bede | oh random segfault |
| 17:48:15 | raptor | that's not good... |
| 17:48:26 | raptor | heh, you got taken over by some players! |
| 17:48:38 | raptor | server pass, is probably a good idea |
| 17:48:53 | martin_bede | i know, only forgot it this time |
| 17:48:58 | raptor | :) |
| 17:51:01 | | LordDVG has joined |
| 18:21:00 | martin_bede | what's wrong with the following? when i call for example a.getPos() i get an error "trying to call nil" |
| 18:21:08 | martin_bede | that's how i init the variables: http://pastebin.com/KDiMHAr7 |
| 18:21:41 | | Watusimoto has joined |
| 18:21:51 | martin_bede | i also tried that with TestItem which i already know it's working, still i get the same result |
| 18:23:14 | | raptor Quit () |
| 18:23:23 | | raptor has joined |
| 18:23:23 | | ChanServ sets mode +o raptor |
| 18:23:34 | martin_bede | Watusimoto: hi, i'm having problems with testing. basically trying to call anything.getPos() results in an error about calling a nil value |
| 18:24:01 | martin_bede | this is how i create the things to be tested: http://pastebin.com/KDiMHAr7 |
| 18:25:50 | Watusimoto | martin_bede: does it fail on any particular line? |
| 18:26:04 | martin_bede | what i pasted doesn't fail |
| 18:26:18 | martin_bede | adding for example k.getPos() would fail |
| 18:26:28 | martin_bede | after creating it of course |
| 18:26:37 | raptor | maybe use the colon: ':' instead of dot. '.' |
| 18:26:47 | raptor | wildly guessing... |
| 18:27:07 | raptor | wait, getLoc() instead of getPos() right? |
| 18:27:44 | Watusimoto | oh, yes, that's it |
| 18:28:00 | Watusimoto | sorry, no its not |
| 18:28:10 | martin_bede | it's getLoc |
| 18:28:10 | Watusimoto | k:getLoc() |
| 18:28:29 | martin_bede | i knew it was something stupid |
| 18:28:30 | martin_bede | thanks |
| 18:28:41 | Watusimoto | that is, aside from 1-based arrays, the worst design choice of lua |
| 18:28:44 | raptor | anonymous connections are working! |
| 18:29:08 | Watusimoto | to use the : and the ., which look very similar, to mean two very similar yet subltly different things, is horrible |
| 18:29:20 | Watusimoto | especially as everyone will expect the . |
| 18:29:44 | Watusimoto | if they really needed to differentiate (which I would argue they don't), they could have used . and ->, for example |
| 18:29:50 | Watusimoto | things that look different |
| 18:33:25 | Watusimoto | great! |
| 18:33:40 | Watusimoto | if this works, I just chopped several largish blocks of code |
| 18:33:46 | raptor | what are you workign on? |
| 18:33:52 | Watusimoto | less code == more better |
| 18:33:54 | Watusimoto | items #25 |
| 18:33:56 | Watusimoto | sort of |
| 18:34:12 | Watusimoto | trying to get a better stack trace for all potentially failing lua code |
| 18:34:41 | Watusimoto | I finally figured out how to have all the places we run code work through the same method |
| 18:34:48 | Watusimoto | lots of duplicate code gone! |
| 18:34:59 | raptor | that is good |
| 18:35:08 | Watusimoto | absolutely |
| 18:35:11 | raptor | more good = less bad |
| 18:35:13 | Watusimoto | probably easier to read as well |
| 18:35:17 | raptor | uh |
| 18:35:19 | raptor | whatever |
| 18:36:50 | kaen | I get Lua's idea: there's a semantic difference between calling a method and accessing a field. but I agree that the stab operator might be a better choice. |
| 18:36:54 | kaen | or # |
| 18:37:05 | kaen | since Class#method is a common notation in OO discussion |
| 18:37:13 | raptor | i can now start ripping apart the GUI! |
| 18:37:30 | raptor | stab -> |
| 18:37:35 | raptor | i didn't know that had a name.. |
| 18:38:51 | Watusimoto | back in a bit |
| 18:39:41 | kaen | really, the only bad part is that : does in lua what . does in every other OOish language |
| 18:39:51 | kaen | if they'd just switch them it would almost make sense. |
| 18:40:06 | kaen | (at least when applied to method calls) |
| 18:47:13 | raptor | recode everything in java! they only have 1 operator! the . |
| 18:51:03 | | martin_bede Quit (Remote host closed the connection) |
| 18:51:17 | | LordDVG Quit (Remote host closed the connection) |
| 18:54:26 | kaen | whoa |
| 18:54:31 | kaen | I didn't realize that. |
| 18:55:49 | kaen | ruby has so many operators |
| 18:55:53 | kaen | ** for exponents |
| 18:56:08 | kaen | -> for lambdas |
| 18:56:20 | kaen | .. for ranges |
| 18:56:23 | kaen | etc. |
| 18:56:31 | raptor | ... |
| 18:56:34 | raptor | http://glyphic.s3.amazonaws.com/ozone/mark/periodic/Periodic%20Table%20of%20the%20Operators%20A4%20300dpi.jpg |
| 18:56:44 | | martin_bede has joined |
| 18:56:47 | kaen | D: |
| 18:56:49 | kaen | it's |
| 18:56:51 | kaen | beautiful. |
| 18:57:31 | kaen | raptor this image is having an emotional effect on me for some reason. |
| 18:57:48 | raptor | but perl 6 will never see the light of day |
| 18:57:55 | kaen | good god |
| 18:58:00 | kaen | it's a perl document |
| 18:58:05 | raptor | kaen: the question is - what mixture of emotions... |
| 18:58:09 | raptor | haha |
| 18:58:17 | kaen | at first it was tacit awe of the beauty |
| 18:58:22 | kaen | but now I just feel... unclean |
| 19:00:21 | raptor | ha, there's an imaginary operator: 'i' |
| 19:03:20 | kaen | ruby has a Complex type, but no special syntax for it :< |
| 19:03:49 | martin_bede | Watusimoto: the coordinates stay (0,0) everywhere despite the arguments, except for Turret which is always (15,0). any ideas? probably a forgot to call something like posChanged, but i can't see any difference compared to other (working) Lua constructors |
| 19:03:58 | martin_bede | I* |
| 19:16:03 | Watusimoto | try tracing it through the constructor -- what happens to the values, do they get clobbered by something else? etc. Be back in a bit |
| 19:19:23 | raptor | maybe setGeom is needed to send stuff client-side? |
| 19:19:35 | raptor | i seem to remember sam686 mentioning something like that.. |
| 19:22:03 | raptor | donny added a new patch! |
| 19:25:06 | martin_bede | i get the same results with setGeom |
| 19:36:16 | martin_bede | the profile seems to be always -1, but i just installed Nemiver so it's maybe i'm wrong |
| 19:36:56 | martin_bede | -it's* (i reedited the message and forgot to remove that) |
| 19:39:05 | martin_bede | isn't functionArgs, a parameter passed to checkArgList supposed to be constructorArgList? here: http://pastebin.com/rTtAGVTg |
| 19:40:15 | martin_bede | probably i should just try that. |
| 20:10:02 | | amgine1234567890 has joined |
| 20:11:02 | amgine1234567890 | kaen i responded in the chess thread i accepted your center counter gambit. |
| 20:14:52 | amgine1234567890 | raptor can i suggest somthing make it so people cant login with a false user name ( i.e guest) but make it so instead users who are guests are named guest# (random 5 digit number) not chumpchange. |
| 20:15:06 | Watusimoto | hi |
| 20:15:20 | amgine1234567890 | hi wattisimo. |
| 20:15:42 | Watusimoto | raptor: martin_bede is trying to get rid of the need for setGeom by passing the geom in the constructor |
| 20:16:13 | amgine1234567890 | curiosly enough BF irc works on opera. |
| 20:16:52 | martin_bede | the fix i mentioned worked, surprisingly |
| 20:17:15 | Watusimoto | ok, good |
| 20:17:25 | martin_bede | after applying it for every class i worked on, i get a segfault when clicking on host game button though |
| 20:17:36 | Watusimoto | oh goodie |
| 20:17:44 | Watusimoto | what's the stack trace? |
| 20:18:19 | martin_bede | nothing, i guess |
| 20:18:21 | martin_bede | Segmentation fault (core dumped) |
| 20:18:25 | martin_bede | that's all |
| 20:18:40 | amgine1234567890 | since i cant get a copy of mercuial with tortiseHG is there another way to get a copy of the source code. |
| 20:19:32 | amgine1234567890 | (install rights blocked. ) |
| 20:21:42 | martin_bede | use command-line mercurial flash drive? http://stackoverflow.com/questions/1904419/running-mercurial-on-a-flash-drive |
| 20:21:49 | martin_bede | a* |
| 20:22:13 | Watusimoto | amgine1234567890: you want the very latest, or the source from 018 release? |
| 20:23:06 | Watusimoto | raptor: what is the .xz extension? |
| 20:23:18 | Watusimoto | https://code.google.com/p/bitfighter/downloads/list |
| 20:23:27 | Watusimoto | the source archive |
| 20:24:02 | | amgine1234567890 Quit (Ping timeout: 245 seconds) |
| 20:39:21 | martin_bede | Watusimoto: i applied the fix and tested them one-by-one. 4 of the constructors cause a segfault, one adds 15 to the x coordinate passed to it |
| 20:39:57 | martin_bede | i think first we should figure out the +15 problem, as it seems easier, maybe it's even intentional |
| 20:40:16 | Watusimoto | what type of object adds 15? |
| 20:40:22 | martin_bede | Turret |
| 20:40:25 | Watusimoto | ah, ok |
| 20:40:30 | Watusimoto | it may be intentional |
| 20:40:32 | | YoshiSmb has joined |
| 20:40:48 | Watusimoto | first off, it tries to mount itself to a wall |
| 20:40:56 | Watusimoto | is there a wall nearby? |
| 20:41:10 | Watusimoto | and then it does some offsetting stuff to look pretty next to the wall |
| 20:41:25 | Watusimoto | forcefield prjectors do the same |
| 20:42:04 | martin_bede | so it should stay that way? |
| 20:42:17 | Watusimoto | show me the turret code |
| 20:42:20 | Watusimoto | please |
| 20:42:26 | Watusimoto | (the c++) |
| 20:42:37 | | YoshiSmb_ has joined |
| 20:43:14 | martin_bede | https://code.google.com/r/bmartin9x-bitfighter/source/browse/zap/EngineeredItem.cpp |
| 20:43:19 | martin_bede | pushing it in a minute |
| 20:44:25 | martin_bede | sone |
| 20:44:27 | martin_bede | done |
| 20:45:03 | Watusimoto | ok let's look at the key bits |
| 20:45:14 | Watusimoto | (what does BUGGY SPEC mean, anyway?) |
| 20:45:15 | Watusimoto | initialize(); |
| 20:45:15 | Watusimoto | if(L) |
| 20:45:15 | Watusimoto | findMountPoint(Game::getAddTarget(), getPos()); |
| 20:45:15 | Watusimoto | if(L && profile == 1) |
| 20:45:15 | Watusimoto | { |
| 20:45:17 | Watusimoto | setPos(getPointOrXY(L, 1)); |
| 20:45:19 | Watusimoto | setTeam(getInt(L, 2)); |
| 20:45:21 | Watusimoto | } |
| 20:45:40 | Watusimoto | this one is going to be a tiny bit different, I think |
| 20:45:45 | martin_bede | i didn't mean to include that |
| 20:45:53 | | YoshiSmb Quit (Ping timeout: 276 seconds) |
| 20:46:11 | martin_bede | it means that applying my fix produced an error, different from the segfault |
| 20:46:42 | Watusimoto | first off, for this one, initialize() will definitely need to come after we set the geom |
| 20:47:01 | Watusimoto | initialize does some futzing around with the position, and needs to know where it will go |
| 20:48:17 | Watusimoto | ok, so the constructor signature looks like this: |
| 20:48:18 | Watusimoto | Turret::Turret(lua_State *L) : Parent(TEAM_NEUTRAL, Point(0,0), Point(1,0)) |
| 20:48:52 | Watusimoto | the 0,0 is the coords that the turret is located at, the 1,0 is the direction it's facing (these are default values, of course, but they give a sense of what's needed) |
| 20:49:56 | Watusimoto | ah so. |
| 20:50:21 | Watusimoto | this is going to need more work. Please add this comment: |
| 20:51:27 | Watusimoto | / TODO: This does not work; we need to snap the turret to a nearby wall and compute the normal angle. It is likely that setPos is similarly broken. And maybe more. |
| 20:51:37 | Watusimoto | fixing this is beyond the scope of your work, I'm afraid |
| 20:51:46 | Watusimoto | so don;t worry about this one |
| 20:52:04 | Watusimoto | unless you want to, of course~! |
| 20:54:09 | raptor | xz -> the replacement for bz2 |
| 20:54:21 | raptor | basically LZMA2 compression algorithm |
| 20:54:38 | raptor | many linux systems use it for source archives now (e.g. tar.xz) |
| 20:55:06 | raptor | ok, i take that back, xz is *technically* a container for LZMA2 compressed data |
| 20:55:24 | Watusimoto | oh wait! |
| 20:55:43 | Watusimoto | martin_bede: try calling this after you set the location: |
| 20:55:47 | Watusimoto | findMountPoint(game, pos); |
| 20:56:15 | Watusimoto | that will look for a nearby wall, adjust the location, and get everything set! |
| 20:56:25 | Watusimoto | findMountPoint(game, pointYouReadFromLua) |
| 20:56:31 | raptor | yeah, so naps on the main-room couch don't work with toddlers |
| 20:56:37 | Watusimoto | in fact, you don;t even need to call setPos at all |
| 20:56:57 | Watusimoto | raptor: your nap or theirs? |
| 20:57:58 | martin_bede | where can i get "game" from? |
| 20:58:16 | raptor | mine :) |
| 21:00:29 | martin_bede | Game::getAddTarget()? |
| 21:01:38 | martin_bede | this didn't seem to change anything |
| 21:02:08 | Watusimoto | game comes from getGame() or mGame (don't remember which) |
| 21:02:17 | raptor | both! |
| 21:02:26 | Watusimoto | don't mess with getAddTarget |
| 21:02:38 | Watusimoto | that sets the database that receives an object |
| 21:03:08 | Watusimoto | useful only when running levelgens in the editor, and you want to store them in a seperate place so you can render them differently and displose of them rapidly |
| 21:03:23 | Watusimoto | it just occurred to me that eliza should probably be a levelgen, not a bot |
| 21:04:06 | martin_bede | both mGame and getGame() gives segfault |
| 21:04:08 | Watusimoto | or... maybe... some sort of new entity that can be added like a bot but has no corporeal in-game existence |
| 21:04:16 | Watusimoto | they are probably the same |
| 21:04:19 | Watusimoto | but |
| 21:04:26 | Watusimoto | please show me your segfault |
| 21:04:38 | martin_bede | how can i do that? |
| 21:04:49 | martin_bede | valgrind log? |
| 21:05:18 | raptor | martin_bede: run the game like so: gdb ./bitfighter |
| 21:05:39 | raptor | then, when it segfaults, type in 'bt' and paste the stack trace to http://pastie.org/ |
| 21:05:46 | raptor | and give us the link |
| 21:06:02 | raptor | (you m ay need to install gdb) |
| 21:06:37 | | YoshiSmb_ is now known as YoshiSmb |
| 21:07:37 | Watusimoto | hey that;s the same place I pasted some stuff earlier today! |
| 21:07:39 | Watusimoto | :-) |
| 21:08:02 | martin_bede | okay, sorry about not using pastie, it gave me error 503: http://pastebin.com/veiNcvFM |
| 21:08:12 | martin_bede | (Service Unavailable) |
| 21:08:14 | Watusimoto | pastebin is fine too |
| 21:08:49 | martin_bede | i though the other one had syntax highlighting for errors or something |
| 21:09:11 | martin_bede | oh |
| 21:09:15 | martin_bede | i pasted it twice |
| 21:09:23 | Watusimoto | dang -- I'll bet game is NULL here |
| 21:09:27 | martin_bede | and my lame attempt at extracting it to a file |
| 21:09:33 | Watusimoto | because it hasn;t been added to a game yet... |
| 21:09:51 | martin_bede | so we'll just stay with that comment then? |
| 21:11:14 | Watusimoto | yes, go with the comment |
| 21:11:43 | Watusimoto | please add something like: // mGame may be NULL here, causing a problem with findMountPoint |
| 21:11:54 | Watusimoto | this is going to be tricky to solve |
| 21:12:05 | Watusimoto | oh! |
| 21:12:07 | Watusimoto | wiaht!!!! |
| 21:12:12 | Watusimoto | use gServerGame for game!!! |
| 21:12:46 | Watusimoto | I hate using the globals, but you'll only be calling this from a server, so if that's NULL, well, things are already int he process of crashing |
| 21:13:07 | Watusimoto | (but don't delete the comment just yet :-) ) |
| 21:13:33 | Watusimoto | martin_bede: you are getting a first hand look at my disorganized mind |
| 21:16:24 | martin_bede | :) the segfault is gone |
| 21:16:43 | martin_bede | the extra coordinate value is still there though |
| 21:18:34 | martin_bede | may we switch to the other segfaults now? |
| 21:19:42 | | amgine1234567890 has joined |
| 21:20:21 | amgine1234567890 | *trollface* |
| 21:21:18 | Watusimoto | sure, yes |
| 21:22:06 | Watusimoto | please post the relevant code and teh segfault somewhere |
| 21:22:23 | raptor | Watusimoto: I can now start cutting up the GUI flow with my anonymous connection logic (finally) working now... |
| 21:22:43 | martin_bede | so SpyBug, Teleporter, WallItem and Zone are affected by segfaults |
| 21:22:47 | Watusimoto | what do yo mean by cutting up? |
| 21:22:50 | raptor | so my first question - where should I put the option to change usernames/etc.. |
| 21:23:03 | Watusimoto | ok, let's look first at spybug, that should be easy |
| 21:23:11 | raptor | cutting up - move UINameEntry around |
| 21:23:30 | Watusimoto | raptor: for the moment, let's put it under options; though we may want to change that |
| 21:24:06 | raptor | because previously we don't/didn't allow username changes; you have to exit the game.. |
| 21:26:11 | amgine1234567890 | could we change the default chumpchange to guest# where # is a random 5 digit number? (chumpchange seems kind of rude) |
| 21:26:44 | Watusimoto | amgine1234567890: chumchange is supposed to be rude |
| 21:26:48 | martin_bede | Watusimoto: the code: https://code.google.com/r/bmartin9x-bitfighter/source/browse/zap/projectile.cpp |
| 21:26:52 | Watusimoto | the idea is to make people want to change it |
| 21:27:10 | amgine1234567890 | examples guest41023 guest 99028 |
| 21:27:56 | Watusimoto | ok, first issue, and this may be it, is you need to check if L is NULL before using it |
| 21:28:13 | Watusimoto | you use it in checkArgList(), but do the NULL check afterwards |
| 21:28:23 | Watusimoto | wrap the whole thing in an if(L) { } block |
| 21:28:58 | amgine1234567890 | yeah but doing it by giving them a rude name isnt the way to do it that gives BF a bad image. |
| 21:29:03 | Watusimoto | also, as a general programming tip, if you can find a way to do a check just once (rather than twice, as here if the first condition is false), it makes the code perform better; it also makes it more readable |
| 21:29:56 | Watusimoto | amgine1234567890: you think they'd like it better if we calledthem "AwesomeDude"? |
| 21:30:14 | amgine1234567890 | Btw i dont know if its a bug but seekers will aim for teammates. |
| 21:30:17 | raptor | AwesomeSauce |
| 21:30:58 | Watusimoto | ah... "sauce" was the codeword we used when i was involved in some clandestine activity in a former life |
| 21:31:02 | amgine1234567890 | the seeker issue? |
| 21:31:39 | Watusimoto | I don;t know if it's a bug, either |
| 21:32:54 | amgine1234567890 | a neutral name would work better its a psychology thing. |
| 21:33:33 | amgine1234567890 | raptor is the seeker thing a bug? |
| 21:34:20 | Watusimoto | "rope" |
| 21:34:24 | martin_bede | Watusimoto: okay, now i only get a message about failure of validating parameters |
| 21:34:24 | Watusimoto | "chair" |
| 21:34:33 | Watusimoto | that's progress! |
| 21:34:51 | martin_bede | i passed it 3 numbers, and it expects a geom and a team index |
| 21:35:02 | Watusimoto | can you show me the relevant lua code? (just the line where you call the constructor will be enough) |
| 21:35:23 | martin_bede | local f = SpyBugItem.new(60,60, 0); |
| 21:35:41 | amgine1234567890 | on the opera system why does it default over to view to posted comment without letting you choose? |
| 21:35:44 | | Nothing_Much has joined |
| 21:36:13 | raptor | amgine1234567890: i cannot duplicate the seeker bug |
| 21:36:26 | raptor | they must not be a teammate, probably a single player game.. |
| 21:37:33 | amgine1234567890 | it was a ctf match ill investigate it more. |
| 21:37:54 | amgine1234567890 | and get back to you. |
| 21:38:03 | raptor | yes, please make sure you can reliably duplicate something before asking us about it.. |
| 21:38:15 | Watusimoto | martin_bede: not your problem, but why this? |
| 21:38:16 | Watusimoto | initialize(Point(0,0), NULL); |
| 21:38:16 | Watusimoto | setPos(getPointOrXY(L, 1)); |
| 21:38:28 | Watusimoto | why not inti(getPointOrXY(), NULL) |
| 21:38:57 | martin_bede | init doesn't seem to do anything with the pos |
| 21:39:18 | martin_bede | it's right after the constructor |
| 21:39:19 | Watusimoto | yes, I just noticed that |
| 21:39:21 | Watusimoto | ok, forget it |
| 21:39:34 | Watusimoto | why are we passing pos to the intialize(), I wonder |
| 21:39:35 | Watusimoto | ok |
| 21:39:47 | amgine1234567890 | yeah i dont see why it can be what tou put. |
| 21:41:05 | Watusimoto | martin_bede: do you know how to use gdb? |
| 21:41:23 | amgine1234567890 | btw i was discussing this a while back did you ever fix the score overflow problem in nexus. |
| 21:41:31 | martin_bede | well raptor showed me some basics a few minutes ago |
| 21:41:39 | martin_bede | but i don't know much about it |
| 21:41:51 | Watusimoto | have you ever used a debugger? |
| 21:42:04 | martin_bede | yes, but only ones that came with IDEs |
| 21:42:13 | Watusimoto | ok, so you understand the concepts anyways |
| 21:42:30 | martin_bede | what should i look for? |
| 21:42:32 | Watusimoto | I have only used gdb a few times, long ago, but it works well enough |
| 21:42:47 | amgine1234567890 | if you put to many flags ro the nexus at once the score jumps to negitive. |
| 21:42:56 | Watusimoto | what you want to do is set a breakpoint at checkArgList() |
| 21:43:20 | Watusimoto | if I understand correctly, you are reporting that when checkArgList runs, it thinks that you haven't given it valid arguments |
| 21:43:28 | Watusimoto | even though you think you have |
| 21:44:00 | amgine1234567890 | i have to go ill be back later. |
| 21:44:12 | | YoshiSmb_ has joined |
| 21:44:47 | Watusimoto | and it reported a message like this: Could not validate params for function... |
| 21:44:59 | amgine1234567890 | bye everyone. |
| 21:45:16 | Watusimoto | bye! |
| 21:45:22 | Watusimoto | martin_bede: you are in luck! |
| 21:45:39 | Watusimoto | we dump the stack when we pass bad args |
| 21:45:58 | Watusimoto | look in the lua output for "Current stack state" |
| 21:46:22 | Watusimoto | that should show you what is on the stack; that should, hopefully, match what you think you are passing to the constructor |
| 21:46:31 | martin_bede | it is matching |
| 21:46:47 | Watusimoto | it is showing 3 numbers? |
| 21:46:52 | martin_bede | yep |
| 21:46:54 | martin_bede | 60, 60, 0 |
| 21:47:00 | Watusimoto | ok, well, that's ok |
| 21:47:12 | | YoshiSmb Quit (Ping timeout: 272 seconds) |
| 21:48:29 | Watusimoto | ok, here's what I'm going to do; I've just got my bitfighter compiling again; I'm going to paste in your code, and see what's going on |
| 21:48:33 | | YoshiSmb_ is now known as YoshiSmb |
| 21:48:54 | Watusimoto | in the meantime, you can check the other places you are getting coredumps and see if you have the same "L" problem you had here |
| 21:49:27 | | amgine1234567890 Quit (Ping timeout: 245 seconds) |
| 21:53:53 | Watusimoto | wait a minute |
| 21:54:05 | Watusimoto | where do you use constructorArgList? |
| 21:55:39 | martin_bede | i pass it to checkArgList |
| 21:55:56 | martin_bede | maybe didn't push that to the clone yet as it broke the build |
| 21:56:37 | martin_bede | i'm not sure |
| 21:57:15 | Watusimoto | I don't have it, but that could well be the problem |
| 21:57:32 | Watusimoto | because functionArgs is basically empty |
| 21:57:56 | Watusimoto | you are asking checkArgs to look at the Lua stack, and decide if what it has matches one of a set of profiles |
| 21:58:09 | Watusimoto | so it needs those profiles to be able to compare |
| 21:58:16 | Watusimoto | so that explains that problem |
| 21:58:20 | martin_bede | i'm sure it's not that as i had no errors when i passed that to every checkArgList |
| 21:59:21 | Watusimoto | show me one that you think proves my statement wrong |
| 22:00:01 | martin_bede | i mean the errors came when i replaced checkArgs with constructorArgList |
| 22:00:16 | martin_bede | in projectile.cpp i'm passing constructorArgList |
| 22:00:18 | martin_bede | curently |
| 22:00:20 | Watusimoto | but you weren't checking for NULL L, were you? |
| 22:00:24 | martin_bede | currently* |
| 22:00:40 | martin_bede | right, i wasn't |
| 22:00:48 | Watusimoto | so that was probably causeing the crash |
| 22:02:08 | martin_bede | but we're talking about SpyBug here, right? we're sure that SpyBug causes the problem |
| 22:02:20 | martin_bede | and SpyBug is not using checkArgs |
| 22:02:42 | Watusimoto | ok |
| 22:02:53 | Watusimoto | I fixed up the spybug the way I think it should be fixed up |
| 22:02:54 | Watusimoto | Could not validate params for function SpyBug::constructor(). Expected one of th |
| 22:02:54 | Watusimoto | e following: |
| 22:02:54 | Watusimoto | Geometry (see documentation), Team index |
| 22:02:54 | Watusimoto | Total in stack: 3 [Current stack state] |
| 22:02:55 | Watusimoto | 1 : number: 60 |
| 22:02:57 | Watusimoto | 2 : number: 60 |
| 22:02:59 | Watusimoto | 3 : number: 0 |
| 22:03:34 | Watusimoto | so this tells me that 1) the correct args are getting to the checker (60,60,0), and 2) the checker is looking for the right pattern ( Geometry (see documentation), Team index) |
| 22:03:38 | Watusimoto | so... |
| 22:04:01 | Watusimoto | something is up |
| 22:09:54 | Watusimoto | ha!!!\ |
| 22:10:02 | Watusimoto | I think I see what is going on |
| 22:10:08 | Watusimoto | let me test this |
| 22:10:31 | martin_bede | i feel so relieved every time you say this :D |
| 22:10:39 | Watusimoto | :-) |
| 22:11:07 | Watusimoto | I think the code is working properly, and your arguments are being legitimately rejected |
| 22:11:32 | Watusimoto | yup |
| 22:11:51 | Watusimoto | were you around for my rant about things I hate about lua last night? |
| 22:12:02 | Watusimoto | things I really *really* hate |
| 22:12:35 | martin_bede | nope, i went to sleep early |
| 22:13:08 | Watusimoto | do you know what index lua arrays start at? |
| 22:13:19 | martin_bede | 1? |
| 22:13:23 | Watusimoto | yes |
| 22:13:35 | Watusimoto | which team are you trying to put the spy bug on? |
| 22:14:00 | Watusimoto | hint... the first team? |
| 22:14:20 | martin_bede | oh...so it should be 1, right? |
| 22:14:22 | Watusimoto | yes |
| 22:14:28 | Watusimoto | it works for me with a 1 for the team |
| 22:14:35 | Watusimoto | but, of course, it looks right with the 0 |
| 22:14:48 | Watusimoto | which is why this 1-indexing is so stupid |
| 22:14:57 | Watusimoto | lua is meant to be embedded in C programs |
| 22:15:17 | Watusimoto | so the C programmers will look at buggy lua code and not see the bugs |
| 22:16:07 | Watusimoto | I am going to add an explicit 0 check for the teams, and print a helpful error message |
| 22:16:21 | Watusimoto | because this is so incredibly lame |
| 22:16:48 | Watusimoto | raptor: I am tempted to hack the lua source and make *our* lua have 0-based indexes |
| 22:16:59 | Watusimoto | would that be a really bad decision? |
| 22:24:01 | martin_bede | scripters new to the game would start with frustration, i don't think it's worth it |
| 22:24:29 | Watusimoto | that's why I didn;t do it last time I got angry at this |
| 22:24:42 | Watusimoto | that's why I probably won't do it this time |
| 22:24:46 | Watusimoto | but next time? |
| 22:24:50 | martin_bede | :) |
| 22:25:04 | Watusimoto | well, you'll get a nice prominent warning next time this happens |
| 22:26:04 | martin_bede | cool |
| 22:26:39 | Watusimoto | because it will happen |
| 22:27:47 | martin_bede | Teleporter doesn't get a Lua state passed to it ( i think) |
| 22:28:10 | martin_bede | it stays (0,0). constructorArgList is used. |
| 22:29:22 | | YoshiSmb Is Hosting a Dedicated Server: IP:190.96.113.66 Port:Random |
| 22:30:31 | martin_bede | the latest version of the file: https://code.google.com/r/bmartin9x-bitfighter/source/browse/zap/teleporter.cpp |
| 22:31:32 | martin_bede | all right, solved already |
| 22:31:48 | martin_bede | init should be before other stuff |
| 22:35:35 | martin_bede | the next one is harder though, another segfault |
| 22:35:42 | martin_bede | L is already checked |
| 22:36:24 | martin_bede | looks like something with setPos(), but i don't see anything special in how it's called |
| 22:36:59 | martin_bede | Watusimoto: probably you can get more out of this log: http://pastebin.com/6Dx1eMxF |
| 22:39:00 | Watusimoto | what are the argus you are passing? |
| 22:39:41 | martin_bede | 100,100 |
| 22:40:28 | martin_bede | it's the WallItem class btw, forgot to mention that |
| 22:40:45 | Watusimoto | here, for sure, calling init with (0,0) will wipe out all the good works you're doing... here you'll need to pass the points to initialize, instead of calling setPos yourself |
| 22:40:57 | Watusimoto | and the answer to your problem lies in that sentence |
| 22:41:12 | Watusimoto | I'll repeat the key part of it |
| 22:41:23 | Watusimoto | need to pass the points |
| 22:41:44 | Watusimoto | A teleporter needs a origin and a destination |
| 22:41:49 | Watusimoto | you have provided only one |
| 22:41:57 | Watusimoto | try passing it (100,100,200,200) |
| 22:42:12 | Watusimoto | or (point.new(100,100), point.new(200,200)) |
| 22:42:29 | Watusimoto | or ({point.new(100,100), point.new(200,200)}) |
| 22:42:41 | Watusimoto | or ({100,100,200,200}) |
| 22:42:47 | Watusimoto | all of those should produce the same thing |
| 22:43:07 | Watusimoto | (and would you mind testing those 4, please?) |
| 22:43:24 | Watusimoto | wait, not point.new |
| 22:43:29 | Watusimoto | new point() |
| 22:44:11 | martin_bede | i can add the destination as an argument too if you want so |
| 22:44:40 | martin_bede | but my problem is with WallItem. Teleporter works as intended |
| 22:44:44 | Watusimoto | well, geom shoudl adapt to the local needs |
| 22:44:50 | Watusimoto | oh, interesting |
| 22:45:05 | Watusimoto | ok, I misunderstood |
| 22:45:24 | Watusimoto | so you are passing 100,100 to wallItem? |
| 22:45:29 | martin_bede | yes |
| 22:45:38 | Watusimoto | what shape wall would you expect that to produce? |
| 22:45:58 | Watusimoto | a wall would need at least 2 points to be viable, I'd think |
| 22:46:08 | Watusimoto | Geom doesn't always mean a point |
| 22:46:19 | Watusimoto | it takes on different meanings for different objects |
| 22:46:27 | Watusimoto | a Zone always requires at least 3 points |
| 22:46:40 | Watusimoto | a linear feature, such as a wall, requires 2 |
| 22:46:46 | | YoshiSmb Quit (Ping timeout: 248 seconds) |
| 22:47:13 | | YoshiSmb has joined |
| 22:47:14 | Watusimoto | teleprters are weird so though it would be useless, I may have allowed you to create a 1 point teleporter |
| 22:47:41 | Watusimoto | so you could create a teleporter origin, then add destinations to it |
| 22:51:34 | martin_bede | uhh, sigsegv. can i keep the teleport as is? |
| 22:52:02 | martin_bede | or better, could you help me with it? |
| 22:52:53 | Watusimoto | yes |
| 22:53:02 | Watusimoto | well no |
| 22:53:46 | martin_bede | yes to which one? |
| 22:54:19 | Watusimoto | teleport is obviously wrong; I am still thinking how to fix it |
| 22:55:05 | Watusimoto | if you pass in only 1 point, intitialize should be run with (passed_point, Point(0,0)) |
| 22:55:08 | Watusimoto | I think |
| 22:55:33 | Watusimoto | ok, put a TODO comment there and I;ll fix it up |
| 22:56:17 | Watusimoto | TODO: Fix this one too -- intiailze needs to be refactored because who knows how many points the teleporter is getting? could be 1, could be 2, could be many |
| 22:57:07 | Watusimoto | argh, this is going to be a pain |
| 23:06:55 | | BFLogBot Commit: a5cb6823b7ac | Author: watusimoto | Message: Clean out some console cruft |
| 23:06:57 | | BFLogBot Commit: a8a4d5213b1e | Author: watusimoto | Message: Comments/formatting |
| 23:06:58 | | BFLogBot Commit: 4d99733f8a8a | Author: watusimoto | Message: Unused include |
| 23:07:00 | | BFLogBot Commit: c1bee76bc54a | Author: watusimoto | Message: Event manager now indexes subscriptions by subscriber, not subscriber's id |
| 23:07:01 | | BFLogBot Commit: cb3e1b69f4f2 | Author: watusimoto | Message: Whitespace |
| 23:07:03 | | BFLogBot Commit: 57724a293e4e | Author: watusimoto | Message: Waaaaay less code to fire events now; also, all event handlers now get good stack trace code and centralized error handling. Works but not yet thoroughly tested. |
| 23:07:04 | | BFLogBot Commit: be9d4679b406 | Author: watusimoto | Message: Add special warning for people who try to code logically, and specify 0 for the index of the first team. Thanks Lua!! |
| 23:07:06 | | BFLogBot Commit: b87e9990658d | Author: watusimoto | Message: Wrap things in a try/catch so arg testing won't crash the entire game. Also lets us write runCmd() a little cleaner |
| 23:07:07 | | BFLogBot Commit: bec4d30f2d3d | Author: watusimoto | Message: Merge |
| 23:09:58 | | amgine1234567890 has joined |
| 23:10:06 | amgine1234567890 | im back |
| 23:10:17 | amgine1234567890 | was the score overflow problem ever fixed |
| 23:13:33 | Watusimoto | what was the problem? |
| 23:16:04 | | BFLogBot Commit: 37ee2f8ea91c | Author: watusimoto | Message: Change order of functions, whitespace |
| 23:16:06 | | BFLogBot Commit: d846e3c285a0 | Author: watusimoto | Message: Comments |
| 23:17:11 | amgine1234567890 | if oyu put to many flags in the nexus the score overflows to negitive maybe you oculd make it so the max score possible from returning flags inyo the nexus is the max possible score setting |
| 23:17:59 | amgine1234567890 | on a realted note could you make it so whne the score or time is set to endless it displays infinity |
| 23:18:05 | amgine1234567890 | just some ideas |
| 23:24:17 | martin_bede | Watusimoto: only 2 classes need debugging now. :) however, somehow i managed to create a very mysterious problem: |
| 23:24:32 | Watusimoto | awesome! |
| 23:25:17 | martin_bede | the testing from levelgen is commented out, and i even commented out the Lua constructor of teleporter, and i still get a segmentation fault when i visit the maze level |
| 23:26:35 | Watusimoto | stack trace? |
| 23:26:37 | martin_bede | http://pastebin.com/WdeCePmz |
| 23:26:44 | Watusimoto | :-) |
| 23:27:21 | Watusimoto | odd |
| 23:27:26 | Watusimoto | I can run that level just fune |
| 23:27:27 | Watusimoto | fine |
| 23:28:45 | amgine1234567890 | score overflow problem? |
| 23:29:24 | Watusimoto | ok, seems to be crashing in DestManager::addDest(), which is a short function; can you add some logprintf statemetns in there and try to figure out where it is crashing? |
| 23:29:38 | Watusimoto | amgine1234567890: I don;t know about this problem; can you describe it to me? |
| 23:36:23 | amgine1234567890 | raptor me and wattisimo are discussing hte score overflow problem |
| 23:38:15 | martin_bede | Watusimoto: mOwner->setVert(dest, 1); this is where it dies |
| 23:48:37 | Watusimoto | ok; can you check if mOwner is NULL? |
| 23:48:47 | Watusimoto | I'll bet it is |
| 23:50:43 | | YoshiSmb Quit (Ping timeout: 265 seconds) |
| 23:54:43 | | Quartz has joined |
| 23:55:16 | kaen | Quartz, I believe you add W=WeaponName to the level line |
| 23:55:21 | kaen | like W=Seeker |
| 23:56:24 | kaen | wait... |
| 23:58:27 | | BFLogBot Commit: 458877126856 | Author: watusimoto | Message: Whitespace |
| 23:58:28 | | BFLogBot Commit: b40839920b67 | Author: watusimoto | Message: Add assert |
| 23:58:30 | | BFLogBot Commit: bc2262c80ea3 | Author: watusimoto | Message: Axe retrieveCriticalFunction function |
| 23:58:34 | Quartz | uhh |
| 23:58:45 | martin_bede | Watusimoto: it's not NULL |
| 23:59:10 | Watusimoto | I just checked in code with an assert to test that, but yes, I beleive you are correct |