Timestamps are in GMT/BST.
| 00:04:03 | fordcars | I'll be back soon, my stomach is telling me to eat |
| 00:04:06 | | fordcars Quit (Quit: Page closed) |
| 00:05:13 | | thread_ has joined |
| 00:06:10 | thread_ | I got a new set of headphones, and am thinking about starting a let's play channel on youtube. My first video is currently being processed, and is a basic tutorial of bitfighter level editor |
| 00:06:22 | raptor | oh hi thread_ |
| 00:07:22 | vs73nx | thread_: thats cool.. what are you using to edit the video, and whats your youtube channel |
| 00:07:26 | vs73nx | ? |
| 00:07:59 | thread_ | not much editing yet. I just used youtubes editor |
| 00:08:42 | vs73nx | bleder is great for video editing |
| 00:08:49 | vs73nx | *blender |
| 00:09:02 | thread_ | I'll look into it |
| 00:09:29 | thread_ | http://www.youtube.com/channel/UCjss5i2tuHtQTs4gkfZ_FLg |
| 00:10:28 | vs73nx | i need to restart my computer after some updates... |
| 00:10:38 | vs73nx | will be back soon! |
| 00:10:42 | | vs73nx Quit (Read error: Connection reset by peer) |
| 00:14:42 | | koda has joined |
| 00:16:30 | raptor | we got ants! |
| 00:16:36 | raptor | for the kids' ant farm! |
| 00:17:22 | | Skybax has joined |
| 00:19:16 | Watusimoto | let 'em loose... free range ant farming! |
| 00:19:38 | raptor | we already have that in the kitchen during the summer |
| 00:22:28 | | Skybax Quit (Ping timeout: 240 seconds) |
| 00:24:25 | | Skybax has joined |
| 00:26:23 | Watusimoto | yes |
| 00:29:28 | Skybax | yes |
| 00:33:13 | raptor | Watusimoto: what do you think the best way to merge the motd with the status widget? |
| 00:34:13 | Watusimoto | you mean on the home page? |
| 00:34:23 | raptor | yes |
| 00:34:24 | raptor | well |
| 00:34:29 | | Skybax Quit (Ping timeout: 240 seconds) |
| 00:34:34 | raptor | i figured for the 'Events' section on the widge |
| 00:34:38 | raptor | *widget |
| 00:34:40 | Watusimoto | maybe put a box above the player list with red text? |
| 00:34:54 | Watusimoto | you mean layout or programaticly? |
| 00:34:57 | raptor | we could somehow just use the motd - but that is a plain text file and the status widget loads json |
| 00:35:50 | Watusimoto | then 3 options: 1) move motd to database, 2) have php read motd file, 3) cron job to periodically sweep the motd into the database |
| 00:35:52 | raptor | so that motd changing page we have for people would also update the events section |
| 00:36:00 | Watusimoto | 1 is probably best, perhaps with textfile fallback |
| 00:36:03 | raptor | 3 is horrid |
| 00:36:03 | | Skybax has joined |
| 00:36:29 | Watusimoto | though 3 allows you to have different motd and status widget |
| 00:36:39 | Watusimoto | because you don't always want them the same, do you? |
| 00:36:48 | raptor | that's another question.. |
| 00:36:54 | Watusimoto | hell, maybe you do |
| 00:37:15 | raptor | right now the widget is slurped in by the forums and drupal - so it needs to be only client-side web standards (no php) |
| 00:37:34 | raptor | maybe I write out more json... |
| 00:37:53 | Watusimoto | it could be json, or it could be a separate widget |
| 00:37:59 | Watusimoto | json would be fine, though |
| 00:38:10 | raptor | a separate widget means I need to figure out drupal again |
| 00:38:11 | Watusimoto | we should simplify our motd stuff |
| 00:38:16 | raptor | ok.. |
| 00:38:23 | Watusimoto | newest version shoudl get the motd, older version get an upgrade notice |
| 00:38:28 | raptor | what would be *ideal* - i'm willing to do that |
| 00:39:21 | raptor | merge event/motd? |
| 00:39:31 | raptor | have a 'news' list |
| 00:39:43 | raptor | make master read json? |
| 00:40:01 | raptor | wait until tomorrow when your not as sleepy? :) |
| 00:43:13 | raptor | change master to output the motd in the bitfighterStatus.json |
| 00:43:18 | raptor | i like that one.. |
| 00:43:47 | Watusimoto | sure, merge motd with event |
| 00:43:49 | Nothing_Much | you're* |
| 00:43:52 | Watusimoto | for the newest version |
| 00:44:01 | Watusimoto | yes |
| 00:44:03 | Watusimoto | sounds good |
| 00:46:07 | raptor | Nothing_Much: thank you - my wife would be appalled I committed apostrophicide |
| 00:46:22 | Nothing_Much | lol |
| 00:46:24 | Nothing_Much | oops |
| 00:48:39 | Skybax | Hahaha xD |
| 00:48:57 | Watusimoto | ok, created this: |
| 00:48:58 | Watusimoto | enum ClientClass { |
| 00:48:58 | Watusimoto | ClassHuman, // Human player, obviously |
| 00:48:58 | Watusimoto | ClassRobotAddedByLevel, // A bot, specified in the level file with Robot directive |
| 00:48:58 | Watusimoto | ClassRobotAddedByAddbots, // A bot added with the /addbot or /addbots command |
| 00:48:58 | Watusimoto | ClassRobotAddedByAutoleveler, // A bot added by the autoleveling system |
| 00:48:59 | Watusimoto | ClassUnknown |
| 00:49:02 | Watusimoto | }; |
| 00:49:38 | Watusimoto | I've incorporated this into the game sort of, does nothing new, but we can now store different "grades" of robots |
| 00:49:42 | raptor | an enum! enums solve everything |
| 00:49:55 | Watusimoto | everything that can't be solved with an xmacro, that is |
| 00:50:03 | raptor | eek |
| 00:50:34 | Watusimoto | so when we create a bot we'll specify which class it is, and when we destroy, we'll prioritize |
| 00:50:44 | raptor | ok |
| 00:50:45 | Watusimoto | as per the rules we discussed earlier |
| 00:50:52 | raptor | All in the RobotManager! |
| 00:51:37 | Watusimoto | bow down before his holiness! |
| 00:51:44 | | Darrel is now known as Darrel[OFF] |
| 00:51:48 | Watusimoto | the BotManager has arrived! |
| 00:52:12 | Watusimoto | the tests will become more complex... sigh |
| 00:52:18 | Watusimoto | so many permutations |
| 00:52:23 | Watusimoto | so many possibilities |
| 00:52:28 | Watusimoto | so sleepy |
| 00:52:31 | Watusimoto | good night! |
| 00:52:32 | raptor | server.json |
| 00:52:35 | raptor | wait one question |
| 00:52:37 | Watusimoto | sure |
| 00:52:44 | Skybax | I like permutations |
| 00:52:51 | raptor | the master has this option JsonOutfile |
| 00:52:55 | raptor | it is set to server.json |
| 00:52:56 | Watusimoto | that's because you don't need to write tests for them!! |
| 00:52:59 | raptor | but |
| 00:53:08 | raptor | the widget loads bitfighterStatus.json |
| 00:53:20 | Watusimoto | interesting |
| 00:53:21 | raptor | so wha... oh wait... it's probably overwridden in the INI |
| 00:53:28 | Watusimoto | probably, yes |
| 00:53:42 | Watusimoto | or hardcoded internally (but I doubt that) |
| 00:53:50 | raptor | ah yes, it's in the INI |
| 00:53:53 | raptor | ok, thanks! |
| 00:53:55 | raptor | I release you |
| 00:53:58 | Watusimoto | that was your question? |
| 00:54:02 | raptor | yes |
| 00:54:09 | raptor | solved in the instant of asking |
| 00:54:16 | raptor | and that's why asking is always good |
| 00:56:04 | Skybax | That happens to me all the time |
| 00:56:07 | | LordDVG has joined |
| 01:00:57 | | Watusimoto Quit (Ping timeout: 246 seconds) |
| 01:01:11 | | LordDVG Quit (Remote host closed the connection) |
| 01:16:26 | | raptor Quit () |
| 01:21:34 | | raptor has joined |
| 01:21:34 | | ChanServ sets mode +o |
| 01:23:46 | | Skybax Quit (Read error: Connection reset by peer) |
| 01:24:54 | | Skybax has joined |
| 01:37:31 | | vs73nx has joined |
| 01:37:41 | vs73nx | ok im back |
| 01:49:44 | thread_ | hi |
| 01:50:25 | Nothing_Much | Hi there |
| 01:54:31 | | Skybax Quit (Ping timeout: 240 seconds) |
| 01:56:29 | | Skybax has joined |
| 02:11:26 | | Skybax_ has joined |
| 02:14:02 | | Skybax Quit (Ping timeout: 264 seconds) |
| 02:14:52 | thread_ | Skybax can't sit still |
| 02:15:01 | Nothing_Much | yup |
| 02:25:39 | | Skybax_ Quit (Ping timeout: 246 seconds) |
| 02:27:32 | | Skybax has joined |
| 02:28:33 | thread_ | My video finally made it up though, yay! |
| 02:29:53 | raptor | now I what you sound like! |
| 02:29:59 | raptor | *know |
| 02:30:08 | thread_ | NOOOOOOOOOOOOOOOOO... quick, unload! |
| 02:31:14 | raptor | oh wow, our menu music is never what i expect... |
| 02:37:52 | Skybax | lolwut |
| 02:41:00 | raptor | yeah, i play silent since I code a lot - it distracts |
| 02:41:09 | raptor | so I keep forgetting what the game actually sounds like.. |
| 02:45:05 | | thread_ Quit (Ping timeout: 272 seconds) |
| 02:51:04 | | kumool Quit (Read error: Connection reset by peer) |
| 03:38:52 | | fordcars has joined |
| 03:39:57 | Skybax | Hi Ford! |
| 03:41:42 | fordcars | Howdy! |
| 03:59:34 | fordcars | raptor, what is the syntax for Timers in 019? |
| 04:04:00 | fordcars | nmnmnmnmnmnmnmnmnmnmnmnmnmnmnmnmnmmnmnmnmnmnmnmnmnmnmnmnmnmnmnmn |
| 04:15:34 | | Skybax_ has joined |
| 04:17:55 | fordcars | Skybax_, since I am finishing the bot tonight, I added a nice little system like that you can add new things the bot can say easily |
| 04:18:13 | Skybax_ | Oh that's awesome |
| 04:18:21 | | Skybax Quit (Ping timeout: 246 seconds) |
| 04:18:25 | | Skybax_ is now known as Skybax |
| 04:23:16 | Skybax | I love user-friendlyness! |
| 04:35:49 | fordcars | Hehe totally! |
| 04:48:09 | fordcars | raptor? |
| 04:48:28 | fordcars | Can I call global functions in the first stage of the bot code? |
| 04:48:44 | fordcars | The first stage being before the main(), out of any function |
| 04:49:45 | fordcars | During the Global variable declarations (Load Phase) |
| 04:51:48 | fordcars | Whoa ok, guess not |
| 04:54:46 | fordcars | Yay it works |
| 05:03:09 | fordcars | Oh, haha |
| 05:04:04 | fordcars | Lua doesn't have access to people who killed somebody |
| 05:18:04 | Skybax | Darn |
| 05:18:42 | Skybax | Does that mean no running tally? |
| 05:21:57 | | Darrel[OFF] Quit (Read error: Connection reset by peer) |
| 05:22:07 | | Darrel has joined |
| 05:22:36 | Skybax | Or does that mean no "when killing.." expressions at all? lol |
| 05:22:52 | Skybax | fordcars: |
| 05:23:02 | raptor | hi |
| 05:23:08 | fordcars | Yep |
| 05:23:09 | fordcars | Hi |
| 05:23:33 | raptor | first stage is main() |
| 05:23:37 | Skybax | Yep to what? lol |
| 05:24:10 | fordcars | Yeah raptor, I was defining arrays outside |
| 05:24:21 | fordcars | But I couldn't access a function |
| 05:24:28 | fordcars | Because it wasn't in the namespace yet |
| 05:24:52 | fordcars | But I can't get the person that killed the other person in onShipKilled? |
| 05:25:08 | fordcars | Skybax, yep, no "killing" :( |
| 05:25:19 | Skybax | That's too bad :/ |
| 05:26:01 | fordcars | Yeah "/ |
| 05:26:06 | Skybax | What about the basic "when killing anyone" ? Or when the bot gets zapped? |
| 05:26:42 | fordcars | Yes for the "anyone", and sadly never for the bot, as the bot itself doesn't launch the Event :( |
| 05:26:58 | Skybax | Ahkay |
| 05:27:25 | fordcars | Bitfighter needs more events! |
| 05:27:30 | Skybax | Yes! |
| 05:27:34 | raptor | yes |
| 05:27:50 | raptor | i'll be right back, have to reset the router |
| 05:27:51 | fordcars | For now, I'll leave the stuff there and eventually when Bitfighter suports this, I'll add it |
| 05:27:56 | Skybax | Okay |
| 05:28:00 | fordcars | Sure |
| 05:28:12 | raptor | open a feature request |
| 05:28:22 | Skybax | So everything works except the when killing a specific person and the when bot is killed? |
| 05:28:26 | fordcars | Ok :) |
| 05:28:29 | fordcars | Yeap |
| 05:28:38 | fordcars | I made it very pretty :) |
| 05:29:16 | | Skybax_ has joined |
| 05:29:36 | Skybax_ | Well that's still pretty stinkin awesome |
| 05:30:13 | fordcars | I was working on making the messages that launch when somebody say Sky or skybax etc insensitive |
| 05:30:34 | Skybax_ | Insensitive? |
| 05:30:45 | | raptor_ has joined |
| 05:30:45 | | raptor Quit (Disconnected by services) |
| 05:30:47 | | raptor_ is now known as raptor |
| 05:30:49 | | raptor Quit (Changing host) |
| 05:30:49 | | raptor has joined |
| 05:30:49 | | ChanServ sets mode +o |
| 05:30:54 | Skybax_ | Meaning not case-sensitive? |
| 05:30:56 | raptor | fordcars: http://www.bitfighter.org/luadocs/class_timer.html |
| 05:31:03 | fordcars | *case |
| 05:31:03 | fordcars | Haha |
| 05:31:22 | fordcars | Oh that is done sorry :P |
| 05:31:42 | fordcars | I need to check out LuaDocs before asking you :x |
| 05:32:10 | Skybax_ | Oh look! Timers! |
| 05:32:24 | fordcars | Yay for timers! |
| 05:33:06 | Skybax_ | Does it matter if someone says "skybax" or does it respond whenever anyone says anything with "sky" in it? |
| 05:33:14 | | Skybax Quit (Ping timeout: 264 seconds) |
| 05:33:23 | Skybax_ | Like, do they have to add the "bax" for it to matter? |
| 05:33:25 | | Skybax_ is now known as Skybax |
| 05:33:36 | fordcars | oh you're right haha |
| 05:33:41 | fordcars | only "sky" will do |
| 05:33:47 | Skybax | Okay cool |
| 05:33:58 | fordcars | But that is editable by you |
| 05:34:02 | Skybax | Awesome |
| 05:34:28 | Skybax | So I'll be able to add responses to anything anyone says, as well as kill messages? |
| 05:34:30 | fordcars | For each list, you can add an infinite amount of phrases to say |
| 05:34:34 | fordcars | Yep |
| 05:34:56 | Skybax | Epic |
| 05:35:17 | Skybax | I could totally fake a complete conversation with myself hahaha |
| 05:35:22 | fordcars | Haha |
| 06:05:41 | Skybax | Still working on it? |
| 06:06:37 | fordcars | Yeppyy |
| 06:07:01 | raptor | what are you conspirators up to? |
| 06:07:06 | fordcars | Did the non-sensitivitation and string searching |
| 06:07:10 | fordcars | ... nothing |
| 06:07:16 | Nothing_Much | yes? |
| 06:07:21 | fordcars | Not making Bot dummies that is for sure |
| 06:11:18 | | yomanurock has joined |
| 06:11:43 | | yomanurock Quit (Quit: Page closed) |
| 06:13:38 | Nothing_Much | Hi - |
| 06:13:42 | Nothing_Much | Darn |
| 06:13:47 | fordcars | Alright it works perfectly! |
| 06:13:53 | fordcars | Hi Nothing |
| 06:14:09 | | yomanurock has joined |
| 06:14:34 | Skybax | Yay for perfectly! |
| 06:14:50 | fordcars | Non-case sensitive was annoying |
| 06:15:05 | fordcars | now SKY, Sky, SKYBAX, skybax, sky works :) |
| 06:15:13 | Skybax | Awesome |
| 06:15:19 | fordcars | And it is searched, so sky, you rock will work too |
| 06:15:46 | yomanurock | I'm doing the improve copy/paste in editor task(gci). could anyone tell me how to convert text into level code? |
| 06:16:35 | fordcars | Actually, Levelcode is text |
| 06:16:49 | fordcars | It's one big string |
| 06:17:55 | yomanurock | ya, but the task description says that i need to convert copied items to level code and then store it |
| 06:19:14 | fordcars | Oh ok |
| 06:19:30 | yomanurock | so any idea how i can do that? |
| 06:20:09 | yomanurock | again timed out |
| 06:20:24 | fordcars | Uh, I don't have the source code here, but I am pretty sure there are some functions to convert Walls, items etc to level code, and append to the file |
| 06:20:49 | yomanurock | in the hg repo? |
| 06:22:40 | fordcars | Yeah, I didn't get any dev tools on this computer yet, I just got it |
| 06:25:33 | yomanurock | is it the function called 'string toLevelCode()'? |
| 06:26:01 | yomanurock | really, a text file?? |
| 06:26:36 | raptor | hi yomanurock |
| 06:26:44 | yomanurock | sorry, not for u, was chatting to another friend |
| 06:26:49 | raptor | i'm one of the mentors |
| 06:26:51 | yomanurock | hi raptor |
| 06:27:09 | raptor | watusimoto is another - he'd be the one you'd want to talk to about this task |
| 06:27:10 | raptor | but |
| 06:27:17 | raptor | yes |
| 06:27:27 | raptor | all game objects have a method string toLevelCode |
| 06:27:46 | raptor | that method generates the raw text footprint of the object that is saved in our .level files |
| 06:28:22 | yomanurock | and how to i use this function (it doesn't take any params) |
| 06:28:25 | yomanurock | ? |
| 06:29:11 | | Skybax_ has joined |
| 06:29:35 | raptor | you would call it on the object: so someObject->toLevelCode() would return the text for the object |
| 06:29:38 | | Skybax Quit (Ping timeout: 264 seconds) |
| 06:30:06 | | Skybax_ is now known as Skybax |
| 06:30:07 | yomanurock | and for that ill have to #include<game.h>? |
| 06:30:17 | raptor | no |
| 06:30:36 | raptor | actually, let me make sure I know what task you are doing - can you send me the link to the task? |
| 06:31:00 | yomanurock | fine |
| 06:31:01 | yomanurock | wait |
| 06:31:21 | yomanurock | http://www.google-melange.com/gci/task/view/google/gci2013/4918714122108928 |
| 06:33:07 | yomanurock | the object ill call it on, what type would it have to be? |
| 06:33:21 | raptor | a BfObject |
| 06:33:40 | raptor | every game object inherits from that and has their own virtual method for toLevelCode() |
| 06:34:02 | raptor | or rather, overrides the BfObject::toLevelCode() virtual method with one of their own |
| 06:34:29 | fordcars | Sorry yomanurock, I am not a mentor, nor a dev :x I was only trying to help |
| 06:35:02 | yomanurock | thx fordcars! |
| 06:35:19 | fordcars | Welcome! |
| 06:35:21 | raptor | yes, thanks fordcars :) |
| 06:35:25 | fordcars | :) |
| 06:37:05 | yomanurock | so, the final copy function would mostly be the same except, i convert the selected object into level code and then copy it instead of copying it directly |
| 06:37:09 | yomanurock | right? |
| 06:37:34 | raptor | you'd convert to levelcode and place it on the system clipboard |
| 06:37:49 | raptor | you'd leave the normal copy/paste functionality as is |
| 06:37:55 | raptor | and add this part with the clipboard |
| 06:38:30 | fordcars | Wow, that is actually really cool |
| 06:39:04 | yomanurock | sorry, i did not understand the last bit |
| 06:39:20 | raptor | so when you do a copy in the editor |
| 06:39:32 | raptor | you don't change the current copy code |
| 06:39:37 | raptor | instead you add to it |
| 06:39:55 | yomanurock | so i convert to levelcode and place both, the actual object and the level code on the clipboard? |
| 06:40:01 | raptor | create a section where you convert all objects into text and place the text on the system clipboard |
| 06:40:15 | raptor | right now |
| 06:40:21 | yomanurock | a new function on the whole? |
| 06:40:48 | raptor | the copy code does *not* use the system clipboard at all, rather it uses its own system of keeping track |
| 06:40:59 | yomanurock | k fine |
| 06:41:04 | raptor | it can be a new function, or you can add to the existing one |
| 06:41:23 | yomanurock | in UIEditor.cpp, right? |
| 06:41:32 | raptor | correct |
| 06:43:18 | yomanurock | fine, added 'void EditorUserInterface::placeSelection()' |
| 06:49:54 | raptor | forgive me, but how do you use the word 'fine' in your statements? I come from an area where people use it to mean "ok, i'll do what you ask, but only grudgingly" |
| 06:50:15 | raptor | I'm just curious - it's easy to misinterpret things on IRC |
| 06:52:10 | Skybax | Hahaha |
| 06:52:24 | yomanurock | sorry, if it means so in ur area, in my area of residence it just means 'ok'(without the grudging part) :) |
| 06:52:28 | yomanurock | no offence to u |
| 06:52:33 | raptor | heh, no worries |
| 06:52:45 | yomanurock | thx |
| 06:53:55 | yomanurock | bye, have to go! |
| 06:54:07 | yomanurock | thx for the help, raptor |
| 06:54:08 | | yomanurock has left #bitfighter |
| 06:54:16 | fordcars | Freenode wrote an article about the emotion behind Irc :) |
| 06:54:36 | raptor | i think i read that several years ago... |
| 06:54:45 | raptor | it was good for them to do that |
| 06:55:16 | fordcars | Yeah, they really have a good Philosophy |
| 07:06:59 | | yomanurock has joined |
| 07:10:41 | | Skybax Quit (Ping timeout: 240 seconds) |
| 07:12:17 | | Skybax has joined |
| 07:34:00 | | Skybax Quit (Ping timeout: 246 seconds) |
| 07:35:52 | | Skybax has joined |
| 07:50:02 | Nothing_Much | g'night everybody! |
| 07:51:26 | fordcars | Night! |
| 07:52:04 | fordcars | I am looking at the InstantAction WIkipedia page, allot of GarageGames games are kept by community members, it's really neat |
| 07:52:25 | fordcars | I didn't know ThinkTanks was still going on |
| 07:52:32 | Skybax | ThinkTanks was fun |
| 07:52:48 | Skybax | I really loved Orbz, tho |
| 07:53:08 | fordcars | Hah yeah |
| 07:53:35 | Skybax | My brother loved Marble Blast |
| 07:54:17 | fordcars | I did too! |
| 07:54:47 | Skybax | Huh.. Orbz isn't on the Wiki page |
| 07:57:23 | Skybax | Orbz is still available for purchase on GarageGames tho.. one of the few games still remaining, it seems |
| 07:57:23 | Skybax | Neato |
| 07:57:48 | Skybax | Imma download the demo :3 |
| 07:58:17 | raptor | night! |
| 07:58:21 | | raptor Quit () |
| 07:59:27 | Skybax | Still workin, Ford? |
| 08:04:43 | Skybax | I was gonna stay up for the bot, but I'm sick and getting sleepy haha |
| 08:07:15 | Skybax | Night! |
| 08:07:53 | fordcars | Night! |
| 08:08:20 | fordcars | I am nearly finished, but I guess you should sleep, the chat things took quite a long time |
| 08:12:14 | | Skybax Quit (Ping timeout: 264 seconds) |
| 08:18:13 | | yomanurock Quit (Ping timeout: 272 seconds) |
| 08:21:45 | fordcars | I am getting off too, later! |
| 08:21:48 | | fordcars Quit (Quit: Page closed) |
| 08:46:52 | | kumul has joined |
| 08:51:52 | | vs73nx Quit (Remote host closed the connection) |
| 09:03:38 | | watusimoto has joined |
| 09:03:39 | | ChanServ sets mode +o |
| 09:37:46 | | vs73nx has joined |
| 09:56:56 | vs73nx | watusimoto: are you there? |
| 09:57:42 | watusimoto | hi |
| 10:02:23 | | kumul Quit (Quit: Leaving) |
| 10:04:19 | vs73nx | watusimoto: do you know how to specify to the hosting system what level source it should use |
| 10:04:53 | vs73nx | well that queastion had bad grammar... |
| 10:05:55 | watusimoto | not sure I understand your question |
| 10:06:03 | watusimoto | oh, yes I do |
| 10:06:20 | watusimoto | for now, you'll specify the source via cmd line parameter |
| 10:06:56 | vs73nx | how about this... |
| 10:06:56 | vs73nx | fprintf(stderr, "getFilePlaylist sucess"); |
| 10:06:56 | vs73nx | const string &playlist = GameSettings::getString(USE_LEVEL_PLAYLIST); |
| 10:06:56 | vs73nx | Vector<string> levelList; |
| 10:07:09 | vs73nx | the printf is there for debugging |
| 10:07:11 | watusimoto | so if you do -levelfile <file> (or whatever it should be called), you'll use the specified file. Otherwise, use the normal source |
| 10:07:33 | vs73nx | i just cant get the program to call getPlaylist()... |
| 10:07:49 | watusimoto | so in the location I pointed you to yesterday, where the folder level source is instantiated, you'll need to make a decision about which to use -- folder or file |
| 10:08:12 | vs73nx | i cant remember as far back as yesterday... |
| 10:08:22 | vs73nx | wait i remember |
| 10:08:35 | vs73nx | LevelSourcePtr folderLevelSource = LevelSourcePtr( .... etc ... |
| 10:08:38 | watusimoto | instead of creating a new FOlderLeelSource, you'll create a new FileLevelSOurce. |
| 10:08:46 | vs73nx | thats only for the dedicated server |
| 10:08:53 | watusimoto | the program should be able to use either |
| 10:09:07 | vs73nx | its inside a block that looks like this |
| 10:09:08 | vs73nx | if(settings->isDedicatedServer()) |
| 10:09:08 | vs73nx | { |
| 10:09:10 | vs73nx | ) |
| 10:09:31 | watusimoto | look for new FolderLevelSource |
| 10:09:35 | watusimoto | I think I found it in two locations |
| 10:09:39 | vs73nx | ok then, where is levelsource instantiated if not using the dedicated server |
| 10:09:42 | vs73nx | oh ok |
| 10:09:53 | vs73nx | global search to the rescue |
| 10:09:54 | watusimoto | you'll need to make the decision in both places |
| 10:09:57 | watusimoto | (probably) |
| 10:10:10 | watusimoto | if so, create a function to do ti so you don't repeat your code |
| 10:10:21 | vs73nx | ok |
| 10:11:44 | vs73nx | 3 places actually... |
| 10:12:46 | vs73nx | gameconnection.cpp |
| 10:12:55 | vs73nx | uieditor.cpp |
| 10:13:04 | vs73nx | UIMenus.cpp |
| 10:13:40 | watusimoto | don't worry about uieditor |
| 10:15:06 | watusimoto | that's probably the most important one |
| 10:15:41 | watusimoto | well, that and the one in main() that's used for dedicated hosting |
| 10:17:47 | vs73nx | so its UIMenus and gameconnection? |
| 10:41:33 | vs73nx | watusimoto: parseLevelLine requires Game and GridDatabase objects... is there a way to get those in a function |
| 10:41:38 | vs73nx | without passing them as args |
| 11:06:41 | vs73nx | watusimoto: ok it compiles now.. but it segfaults |
| 11:07:31 | vs73nx | backtrace... |
| 11:07:32 | vs73nx | http://pastie.org/8596596 |
| 11:22:07 | watusimoto | sorry... didn't see this, got to go... will be back in a couple of hours |
| 11:24:06 | vs73nx | ok goodnight |
| 11:29:22 | | Watusimoto_ has joined |
| 11:36:54 | | Watusimoto_ Quit (Ping timeout: 246 seconds) |
| 12:00:00 | | LordDVG has joined |
| 12:09:13 | | LordDVG Quit (Remote host closed the connection) |
| 12:20:08 | | LordDVG has joined |
| 12:31:21 | | vs73nx Quit (Remote host closed the connection) |
| 12:32:42 | | vs73nx has joined |
| 12:34:18 | | vs73nx Quit (Read error: Connection reset by peer) |
| 13:32:50 | | Watusimoto_ has joined |
| 13:37:18 | | LordDVG Quit (Ping timeout: 246 seconds) |
| 13:44:53 | | Watusimoto_ Quit (Ping timeout: 240 seconds) |
| 13:51:00 | | LordDVG has joined |
| 13:54:14 | | destroyerimo_ Quit (Ping timeout: 264 seconds) |
| 14:00:44 | | yomanurock has joined |
| 14:02:31 | yomanurock | i am doing the improve copy/paste in editor task (gci). i completed the copy part but im having problems with the pasting |
| 14:03:00 | yomanurock | how do i check if the text on the clipboard is actually level code |
| 14:03:33 | yomanurock | and if it is, is there any api to convert level code to BfObjects? |
| 14:04:16 | yomanurock | watusimoto, i think u r my mentor, could u help me? |
| 14:05:43 | yomanurock | ? |
| 14:07:45 | yomanurock | earlier, raptor told me to talk to u, said u might be of help |
| 14:12:15 | yomanurock | anyone there? |
| 14:13:44 | | Watusimoto_ has joined |
| 14:14:52 | yomanurock | i am doing the improve copy/paste in editor task (gci) |
| 14:15:03 | yomanurock | how do i check if the text on the clipboard is actually level code |
| 14:15:12 | yomanurock | nd if it is, is there any api to convert level code to BfObjects? |
| 14:20:07 | yomanurock | btw, watusimoto, earlier today, raptor told me to talk to u about this task. said that u were my mentor and would be of help |
| 14:21:35 | yomanurock | anyone there?? |
| 14:21:37 | yomanurock | ? |
| 14:25:18 | yomanurock | dnhfjsdhfj |
| 14:25:49 | | yomanurock has left #bitfighter |
| 14:25:57 | | yomanurock has joined |
| 14:32:39 | yomanurock | ? |
| 14:54:54 | oskopek | yomanurock: everyone *is* here, just not at the moment |
| 14:55:19 | | yomanurock Quit (Ping timeout: 272 seconds) |
| 14:56:08 | | yomanurock has joined |
| 14:56:21 | oskopek | yomanurock: it's friday, and most people are probably still at work |
| 14:57:02 | yomanurock | sorry, i live in India. didnt know that u might be at work :( |
| 14:57:40 | oskopek | afaik, most people here live in the USA |
| 14:57:48 | yomanurock | sorry |
| 14:58:02 | oskopek | no problem |
| 14:58:04 | yomanurock | but do u have any answers for my earlier questions? |
| 14:58:20 | oskopek | I'll take a look and see what I can do, ok? |
| 14:58:27 | yomanurock | k |
| 14:58:33 | oskopek | could you give me a link to the task? |
| 14:58:39 | yomanurock | wait a sec... |
| 14:59:34 | yomanurock | http://www.google-melange.com/gci/task/view/google/gci2013/4918714122108928 |
| 15:08:38 | yomanurock | ? |
| 15:09:51 | oskopek | looking at the task and UIEditor, I keep thinking the point was to create something that could serve as a layer between the system clipboard and mClipboard, or rewrite the copy/paste system to use the system clipboard directly |
| 15:10:12 | oskopek | how did you transform the BfObject to levelcode during copy? |
| 15:10:50 | yomanurock | earlier today (in the morning in India), one of the mentors, raptor, told me to write a new system altogether |
| 15:12:02 | yomanurock | transformedBfObject to levelcode using "string str = object->toLevelCode()" |
| 15:15:09 | | yomanurock has left #bitfighter |
| 15:15:18 | | yomanurock has joined |
| 15:16:38 | yomanurock | sorry, net connection crashed :( |
| 15:17:40 | yomanurock | my copy function -- http://codepad.org/vS7iTwqc |
| 15:18:01 | oskopek | yomanurock: did you look at the implementation of toLevelCode() in BfObject? |
| 15:18:39 | yomanurock | i thought it was in game.h |
| 15:20:36 | yomanurock | according to me, my implementation of toLevelCode() is correct |
| 15:22:01 | oskopek | maybe I'm wrong, but your calling toLevelCode of a BfObject in your copy() method |
| 15:23:40 | | Watusimoto_ Quit (Ping timeout: 245 seconds) |
| 15:25:17 | | yomanurock_ has joined |
| 15:25:29 | yomanurock_ | stupid internet provider! |
| 15:25:37 | | yomanurock_ has left #bitfighter |
| 15:25:43 | | yomanurock Quit (Ping timeout: 272 seconds) |
| 15:27:14 | | yomanurock has joined |
| 15:28:20 | yomanurock | oskopek, are u still there? my net connection crashed. if u said anything about the task, could u repeat? |
| 15:29:05 | oskopek | [16:22] <oskopek> maybe I'm wrong, but your calling toLevelCode of a BfObject in your copy() method |
| 15:29:42 | yomanurock | what about it? |
| 15:29:58 | yomanurock | according to me (and raptor), its right |
| 15:32:44 | yomanurock | ? |
| 15:33:38 | yomanurock | and how can i convert the levelcode back to BfObject? |
| 15:35:09 | oskopek | you are calling BfObject::toLevelCode(), right? |
| 15:35:31 | yomanurock | yeah |
| 15:35:42 | oskopek | http://fpaste.org/65535/38876333/ |
| 15:36:59 | yomanurock | i dont exactly understand the implementation from BfObject.cpp |
| 15:39:02 | oskopek | it just does nothing.. it has an assertion that it shouldn't be made toLevelCode |
| 15:40:18 | yomanurock | but the main problem here is that of converting levelcode back to a BfObject |
| 15:42:21 | yomanurock | and sorry, im using Game::toLevelCode |
| 15:47:31 | yomanurock | r u still there? |
| 15:47:36 | oskopek | I am |
| 15:47:43 | oskopek | but I don't think I can help you with that |
| 15:48:17 | yomanurock | then could u tell me someone who can? |
| 15:48:49 | oskopek | you should probably just wait for watusimoto or raptor |
| 15:49:07 | yomanurock | anyways, bye and thx ! |
| 15:49:12 | | yomanurock has left #bitfighter |
| 15:50:24 | oskopek | np |
| 16:07:03 | | LordDVG Quit (Ping timeout: 272 seconds) |
| 16:09:51 | sam686 | BfObject::toLevelCode() is a virtual function |
| 16:10:25 | sam686 | BfObject *obj = new LineItem(); obj->toLevelCode(); will call LineItem::toLevelCode() |
| 16:13:31 | oskopek | sam686: cool, didn't know that.. but why can a DatabaseObject be cast to BfObject? I thought DatabaseObject was a GeomObject |
| 16:14:12 | sam686 | All objects in database is a BfObject, so its safe to cast it to BfObject |
| 16:14:32 | sam686 | its also a GeomObject as a base class |
| 16:14:56 | oskopek | ah |
| 16:15:03 | sam686 | BfObject.h have: lass BfObject : public DatabaseObject, public NetObject, public EditorObject |
| 16:15:14 | sam686 | *class (not lass) |
| 16:15:28 | oskopek | thanks |
| 16:15:45 | sam686 | GridDB.h have class DatabaseObject : public GeomObject |
| 16:15:52 | oskopek | but anyway, I don't think Game::toLevelCode was the right thing to do? |
| 16:16:13 | oskopek | so it's ok in C++ to inherit from two parent classes? |
| 16:16:49 | oskopek | i saw the gridDB.h declaration, but not the one in BfObject, regarding DatabaseObject |
| 16:17:06 | oskopek | I thought it inherited only from GeomObject |
| 16:17:40 | sam686 | yes it can inherit from 2 or more different classes |
| 16:18:14 | oskopek | doesn't that create more problems than it solves? |
| 16:18:22 | sam686 | BfObject inherit DatabaseObject, DatabaseObject inherit GeomObject, so BfObject is also DatabaseObject and GeomObject |
| 16:18:32 | oskopek | yeah |
| 16:22:11 | sam686 | There is Game::loadLevelFromString thats more what we may be looking for, when pasting several lines of objects in a multi-line strings (multi-line string is really a big string separated by "\n") |
| 16:24:21 | oskopek | but that needs the complete level levelcode, not just parts, no? |
| 16:24:36 | | yomanurock has joined |
| 16:24:59 | yomanurock | watusimoto, are you there? |
| 16:25:05 | watusimoto | hi |
| 16:25:24 | watusimoto | are you working on a last-minute task? |
| 16:25:48 | yomanurock | not exactly last minute but yes |
| 16:25:58 | watusimoto | :-) |
| 16:26:24 | yomanurock | I am doing the copy/paste in editor task |
| 16:26:47 | yomanurock | im mostly done, but I need help on the past part |
| 16:26:48 | sam686 | was looking, not sure if Game::loadLevelFromString need complete level or not, probably not when already loaded a level without clearing everything in a level |
| 16:27:22 | yomanurock | I mean paste |
| 16:28:17 | yomanurock | could you tell me how to check if the text on the clipboard is levelcode and if it is, how do I convert it back? |
| 16:29:06 | watusimoto | that is actually a good question. Do you know how to get the text on the clipboard? (from SDL, I think) |
| 16:29:38 | watusimoto | (also, I sent you a message on a private channel, if you didn't notice) |
| 16:30:24 | yomanurock | I got the private message and yes, I know how to get text on the clipboard using sdl |
| 16:30:36 | | koda Quit (Quit: koda) |
| 16:30:51 | sam686 | If you can get level code as a string, you can read it into an editor with BfObject's processArguments (if you get the right object), or Game's loadLevelFromString or processLevelLoadLine |
| 16:30:52 | oskopek | watusimoto: we talked with yomanurock before, and he pasted this http://codepad.org/vS7iTwqc |
| 16:31:46 | sam686 | you can't just create a new BfObject, it instead need a new LineItem/GoalZone/whatever the first argument may be. |
| 16:32:28 | watusimoto | well, one way you could do it is to pass the whole stiring to Game::loadLevelFromString, which will parse the text and create any objects it finds in a database that you pass. |
| 16:32:39 | sam686 | the code thats in the codepad may work, but only works when one object is selected |
| 16:33:22 | watusimoto | I _think_ the filename parameter is only used for error reporting |
| 16:33:24 | sam686 | SDL_SetClipboardText can only hold one string at a time (one error, a SDL_SetClipboardText(str.c_str()); may be needed) |
| 16:33:54 | watusimoto | and hi sam686 and oskopek |
| 16:33:56 | sam686 | you can, build a long string with "\n" for each new line of toLevelCode |
| 16:34:02 | oskopek | hi watusimoto |
| 16:34:31 | yomanurock | sorry, I didnt quite get the loadlevelfrom string part |
| 16:35:15 | watusimoto | Look at Game::loadLevelFromString |
| 16:35:43 | sam686 | something like str = str + "\n" + obj->toLevelCode(); will do for holding multiple string of objects into clipboard |
| 16:35:57 | watusimoto | you pass it a string (the contents of the clipboard), a database (create a new GridDatabase), and a filename (used in error messages) |
| 16:36:41 | watusimoto | that will convert <contents> to whatever objects it can, and put them in the database, where you can get them |
| 16:37:11 | watusimoto | if that seems promising, we'll need to see what we can do about the filename argument; not sure yet how that should be handled |
| 16:37:25 | yomanurock | but wont that just create a new level altogether? |
| 16:37:36 | watusimoto | we'd probably want to suppress error reporting altogether |
| 16:37:40 | watusimoto | no |
| 16:37:41 | yomanurock | we just want to paste in the current level |
| 16:38:13 | watusimoto | it will create a new database, which is not the same as a level |
| 16:38:24 | yomanurock | so, loading level from string will just paste in the current level? |
| 16:38:26 | watusimoto | rather, it will fill a database with objects |
| 16:38:31 | watusimoto | well... actually |
| 16:39:29 | yomanurock | ? |
| 16:39:29 | sam686 | may not need a new database, just paste into existing database once editor is opened with a new or existing filename. |
| 16:39:38 | watusimoto | actually, if you are only trying to grab objects from the clipboard, then perhaps you need to just use parts of Game::processLevelLoadLine |
| 16:39:46 | watusimoto | ah yes, sam686 is probably right |
| 16:39:55 | sam686 | kindof like when doing ctrl+r ctrl+i to run then insert objects into existing level |
| 16:40:00 | sam686 | from levelgen |
| 16:40:01 | watusimoto | yes |
| 16:40:41 | yomanurock | sorry, didnt quite understand that |
| 16:41:30 | | raptor has joined |
| 16:41:30 | | ChanServ sets mode +o |
| 16:41:43 | sam686 | probably don't need to deal with filename at all, just take the clipboard like "GoalZone 2 3 4 4 ..." and run it through getGame()->loadLevelFromString |
| 16:42:16 | yomanurock | could you explain that please? |
| 16:42:50 | yomanurock | so, I get the string from the clipboard |
| 16:43:10 | yomanurock | and then? |
| 16:43:43 | yomanurock | ? |
| 16:44:06 | watusimoto | Look in void Game::processLevelLoadLine(..) --> in there is a long if else if block. In there is a call to processPseudoItem(); you'll want to use that and also the stuff in the else { } block just below it. I copied most of the relevant code to here: http://pastie.org/8597484 |
| 16:45:18 | raptor | good day! |
| 16:45:54 | watusimoto | before you can do that, you'll need to break the clipboard text apart into lines, then parse each into words (argv) |
| 16:45:57 | watusimoto | hi raptor |
| 16:46:06 | watusimoto | we do have some functions that can help with that |
| 16:46:16 | sam686 | its taking tiem to compile, because I mistakenly hit backspace on BfObject.h and horribly errored on everything. |
| 16:46:25 | sam686 | Undid and now its taking time compiling |
| 16:46:53 | yomanurock | could you correct me if I go wrong? |
| 16:47:16 | yomanurock | so, in short, I first get the string and break it into lines |
| 16:47:29 | yomanurock | and then what? |
| 16:49:04 | sam686 | This works while in editor: getGame()->loadLevelFromString("LineItem 30 40 50 60 70 80 900 8\nTextItem 0 178 -153 433 -153 32 text", getDatabase()); |
| 16:49:04 | yomanurock | ? |
| 16:49:09 | sam686 | it adds 2 items |
| 16:49:53 | sam686 | now, replace that string with SDL get clipboard string function (not too sure what that name is) |
| 16:50:25 | watusimoto | then you need to break each line into an array of words using Vector<string> parseString(const string &line) |
| 16:50:31 | watusimoto | (in stringUtils.cpp) |
| 16:50:50 | watusimoto | here it gets a tad ugly |
| 16:50:57 | yomanurock | so I pass my clipboard contents to getGame ()-> loadLevelFromString () and it would paste the items in the level? |
| 16:51:02 | sam686 | loadLevelFromString automatically breaks it into individual lines |
| 16:51:24 | sam686 | see the "\n" part between 2 objects? |
| 16:51:26 | watusimoto | I think you should not use loadLevelFromString |
| 16:51:32 | watusimoto | I suggested it earlier, but I was wrong |
| 16:51:47 | raptor | i will refrain from being an extra cook in the kitchen.. |
| 16:51:49 | watusimoto | because all we need are the objects, not all the other level junk |
| 16:52:12 | watusimoto | hi raptor! |
| 16:52:20 | yomanurock | but wont loadlevelfromstring work? |
| 16:53:00 | watusimoto | probably not -- you were right when you said it would create a whole level |
| 16:53:21 | watusimoto | we want to ignore stuff like Credits and LevelName and other similar parameters |
| 16:53:33 | watusimoto | loadLevelFromString won't ignore those |
| 16:53:38 | | thread_ has joined |
| 16:53:55 | yomanurock | but then how do I paste? |
| 16:54:09 | sam686 | can look at how Game::processLevelLoadLine works |
| 16:56:32 | watusimoto | also Game::parseLevelLine() --> that one breaks a line apart and creates an array of const char *, that most of the other functions need |
| 16:57:48 | watusimoto | the code I put in the pastie above is from ProcessLevelLoadLine. Those are the parts you'll need. |
| 16:58:50 | yomanurock | I don't quite get what processlevelloadline does |
| 16:58:51 | sam686 | likely won't need to worry too much if GameType/LevelCredits/LevelDescription changes on paste or not, as copy won't copy the levelCredits/GameType/LevelDescription/Teams |
| 16:59:50 | watusimoto | processlevelloadline takes a parsed line of a level file and tries to interpret it |
| 17:00:22 | watusimoto | a level file can be thought of as having two parts. A header, which is where all the level info goes, and the body, which is where the game objects go |
| 17:00:43 | sam686 | We can. 1. go with the easy way of loadLevelFromString, or 2. a little harder way of separating each lines |
| 17:00:46 | watusimoto | processlevelloadline handles both of those parts, which makes it slightly confusing, as you only want the body part |
| 17:01:15 | watusimoto | sam686: if he goes with loadlevelfromstring, what will happen when he hits a parameter like LevelName? |
| 17:01:35 | watusimoto | (I don't have the code with me at the moment) |
| 17:01:43 | watusimoto | (at least not all of it) |
| 17:02:22 | watusimoto | I think it will set the name of the level in the editor accordingly |
| 17:02:24 | yomanurock | but I don't get how I can use processlevelloadline over here |
| 17:03:07 | watusimoto | yomanurock: we're trying to figure out if you can use loadLevelFromString; if so, you won't need to worry about processLevelLoadLine |
| 17:03:21 | sam686 | could add a "ignoreGameTypeParemetersAndTeams=true/false" in processLevelLine handling |
| 17:04:47 | watusimoto | I think you will have to use part of processLevelLoadLine |
| 17:05:37 | yomanurock | also, how do I copy to clipboard if two or more things are selected? |
| 17:05:59 | watusimoto | I think the best way for the moment is to break processLevelLoadLine into two parts |
| 17:06:08 | watusimoto | <<I'll answer the other one later>> |
| 17:06:46 | sam686 | something like str = str + "\n" + obj->toLevelCode(); |
| 17:07:07 | sam686 | after all clipboard only holds one string at a time, whether it has multiple lines or not. |
| 17:07:15 | watusimoto | The first part is the header arguments, which is everything down to the line: |
| 17:07:16 | watusimoto | else if(getGameType() && processPseudoItem(argc, argv, levelFileName, database, id)) |
| 17:07:42 | watusimoto | The second part is everything from that line down to the end of the function |
| 17:08:14 | watusimoto | The top part handles all the header arguments, the bottom part handles all the game object stuff |
| 17:08:43 | watusimoto | I think we should break that into two separate functions, then you can use only the game object part |
| 17:09:03 | watusimoto | If that is not clear enough, I can do that refactor this evening when I get home from work |
| 17:09:31 | yomanurock | no thats ok. |
| 17:09:47 | watusimoto | it's trivial if you understand what I'm talking about :-) |
| 17:09:56 | watusimoto | but if it's unclear, it will be hard |
| 17:10:26 | watusimoto | And I don't want to make things too hard |
| 17:10:35 | | Canseco has joined |
| 17:11:41 | | Watusimoto_ has joined |
| 17:12:52 | yomanurock | anyways, in the second part of the function, I pass argv as the output from parselevelline |
| 17:13:32 | yomanurock | database will be a new dstabase |
| 17:14:12 | yomanurock | what params do I pass to processlevelloadline? |
| 17:15:12 | sam686 | just a note: cannot store the same object into more then 1 database, but can remove object from one database and add to another database. |
| 17:15:43 | sam686 | as I said before: getGame()->loadLevelFromString("LineItem 30 40 50 60 70 80 900 8\nTextItem 0 178 -153 433 -153 32 text", getDatabase()); |
| 17:16:01 | sam686 | replace "blah blah blah" with a string from clipboard |
| 17:16:03 | watusimoto | here is my proposed refactof of processLeveLoadLine: http://pastie.org/8597578 |
| 17:16:11 | watusimoto | ^^refactor |
| 17:16:27 | watusimoto | untested, uncompiled, uneverything |
| 17:16:43 | sam686 | as for processLevelLoadLine(U32 argc, S32 id, const char **argv, GridDatabase *database, const string &levelFileName) |
| 17:16:59 | watusimoto | you could then use only processLevelLoadLine_objects() |
| 17:17:04 | yomanurock | no, but what params do I pass to the refactored function? |
| 17:17:18 | watusimoto | argc, S32 id, const char **argv, GridDatabase *database, const string &levelFileName |
| 17:17:30 | watusimoto | you can see where they all come from here: |
| 17:17:39 | sam686 | its different, requiring processLevelLoadLine(3, 0, {"LineItem", "3", "5"}, getDatabase(), ""); or something like that |
| 17:18:25 | watusimoto | Game::parseLevelLine() takes a line of a level file and produces all the args needed by processLevelLoadLine() |
| 17:19:01 | sam686 | parseLevelLine only takes one line |
| 17:19:09 | watusimoto | correct |
| 17:19:34 | sam686 | loadLevelFromString handles multiple lines, and is a very small function that calls parseLevelLine for each line. |
| 17:19:48 | watusimoto | man, we really need to refactor all this to work with strings, and get rid of the whole argc/argv stuff |
| 17:20:12 | watusimoto | that would be a great gci task! |
| 17:20:26 | yomanurock | so, I pass my levelcode to parselevelline and then pass the otp to processlevelloadline |
| 17:20:37 | watusimoto | not quite |
| 17:20:56 | watusimoto | you'll need to use the same logic as parselevelline, but you can't use parselevelline itself |
| 17:21:15 | watusimoto | because that goes off and calls processLevelLoadLine, which you don't want to do |
| 17:21:45 | watusimoto | so probably you'll extract the top part into a new function, which you can then call , and parseLeveLine can call |
| 17:22:54 | yomanurock | didnt get that, sorry? |
| 17:23:05 | watusimoto | You want a similar function, but instead of calling processLevelLoadLine, you'll call processLevelLoadLine_object |
| 17:24:04 | yomanurock | so I make a new parselevelline function and replace all the processlevelloadline s with processlevelloadline objects |
| 17:24:07 | yomanurock | right? |
| 17:24:35 | sam686 | umm, adding a function to split things up? or adding a variable to ignore GameType parameters? |
| 17:25:07 | watusimoto | sam686: I think two functions is better, as it makes the flow a little clearer |
| 17:25:34 | watusimoto | yomanurock: yes |
| 17:25:48 | yomanurock | finally! |
| 17:25:51 | watusimoto | :-) |
| 17:26:21 | watusimoto | when you do that, you'll find that there is almost total duplication between parselevelline and your new function |
| 17:26:37 | watusimoto | so you'll probably want to take that common code out and create a new function for it |
| 17:27:39 | watusimoto | sam686: I think it makes sense to have a loadLevelFromString() function and a loadObjectsFromString() function |
| 17:28:49 | sam686 | yes, but then we might need loadLevelFromString_objectonly, and parseLevelLine_objectonly? or some other ways |
| 17:30:02 | watusimoto | maybe parseLevelLine can accept a function pointer pointing to either processLeveLoadLine or processLevelLoadLine_object? |
| 17:30:49 | sam686 | My idea was adding a bool ignoreGameTypeParameters to the function arguments |
| 17:31:04 | sam686 | but I guess passing along function pointers instead might do as well |
| 17:31:20 | watusimoto | there are differences in the way we want to handle errors |
| 17:31:53 | watusimoto | for example, we probably don't want to add "Level Error: Can't parse..." to the log when importing via the clipboard |
| 17:32:40 | watusimoto | parseLevelLine can be greatly simplified |
| 17:32:53 | watusimoto | there is a lot in there now, but it could all be moved out |
| 17:33:36 | watusimoto | yomanurock: just by way of explanation, this code is ancient and has only been partially modernized. That's why it's such an ugly combination of const char* and string vectors |
| 17:38:33 | yomanurock | anyways, its bed time for me in india. have to go bye |
| 17:38:43 | watusimoto | good night! |
| 17:38:48 | watusimoto | and welcome aboard! |
| 17:39:05 | yomanurock | welcome aboard? |
| 17:39:26 | watusimoto | welcome to the project (welcome aboard the Bitfighter train :-) ) |
| 17:39:43 | watusimoto | it's an american expression, I guess |
| 17:39:45 | yomanurock | k bye;) |
| 17:44:29 | | Canseco Quit (Remote host closed the connection) |
| 17:46:57 | | yomanurock Quit (Ping timeout: 272 seconds) |
| 18:00:35 | raptor | back in a little whie.. |
| 18:08:18 | | koda has joined |
| 18:12:28 | | Skybax has joined |
| 18:12:36 | Skybax | Goodmorning! |
| 18:21:02 | | LordDVG has joined |
| 18:24:28 | | Skybax_ has joined |
| 18:26:37 | | Skybax Quit (Ping timeout: 246 seconds) |
| 18:34:30 | | Skybax_ is now known as Skybax |
| 18:42:58 | oskopek | is there a reason bitfighter doesn't have a .hgignore file? |
| 18:52:52 | raptor | hia gain |
| 18:53:26 | raptor | oskopek: we've never needed one because files aren't added unless you tell hg to add them |
| 18:54:21 | | Watusimoto_ Quit (Ping timeout: 272 seconds) |
| 19:01:11 | oskopek | raptor: good point |
| 19:18:38 | | watusimoto Quit (Ping timeout: 240 seconds) |
| 19:21:26 | raptor | subversion needed ignore lists though... |
| 19:21:35 | raptor | are there some hg clients that auto-add files? |
| 19:23:01 | Skybax | Bitfighter keeps changing the times in my levels |
| 19:23:05 | Skybax | To decimals |
| 19:23:34 | Skybax | And deleting robots out of the level code |
| 19:25:22 | | fordcars has joined |
| 19:25:22 | raptor | oh, how does it delete the robots? |
| 19:27:42 | fordcars | Hi |
| 19:27:44 | Skybax | It just takes them out after I save it lol |
| 19:27:45 | Skybax | Hi Ford |
| 19:28:54 | raptor | what |
| 19:29:10 | raptor | I thought I fixed that bug in the last two releases... |
| 19:29:44 | Skybax | Apparently not xD |
| 19:29:47 | Skybax | It also changes the times |
| 19:29:52 | Skybax | Like if the level is set to 10 minutes |
| 19:30:06 | Skybax | It changes it to like, "9.999033" |
| 19:31:13 | Skybax | Which doesn't really affect the gameplay, it's just annoying if you ever want to change the time of your level again, because then it shows up in the editor as like, 9:58 and Bitfighter only moves by :05s |
| 19:31:19 | fordcars | raptor, is there anyway to get something when the level ends |
| 19:32:12 | raptor | Skybax: the game time bug is written down |
| 19:32:16 | raptor | let me check on the bot bug |
| 19:32:28 | Skybax | Okay |
| 19:38:06 | fordcars | Skybax, do you want the bot to shoot asteroids too, or only players? |
| 19:38:56 | Skybax | Asteroids would probably be a good idea |
| 19:39:10 | Skybax | When it has the flag tho it should shoot everything enemy |
| 19:41:48 | raptor | https://code.google.com/p/bitfighter/issues/detail?id=361 |
| 19:41:56 | raptor | and https://code.google.com/p/bitfighter/issues/detail?id=356&q=type%3DDefect%20label%3D019a |
| 19:53:04 | | tttt7858 has joined |
| 19:53:16 | tttt7858 | um |
| 19:53:20 | tttt7858 | i forgot my user |
| 19:53:25 | tttt7858 | do you guys remeber me |
| 19:53:37 | tttt7858 | i think this is my username |
| 19:54:28 | | tttt7858 Quit (Client Quit) |
| 19:55:19 | | tttt7858 has joined |
| 19:55:27 | tttt7858 | hm |
| 19:56:17 | tttt7858 | im that dude with the chevron idea |
| 19:56:46 | raptor | hi |
| 19:57:04 | raptor | I remeber the tttt part |
| 19:57:23 | raptor | are you looking for your forums username? |
| 19:57:26 | tttt7858 | yes |
| 19:57:31 | raptor | let me see... |
| 19:57:40 | tttt7858 | are you able to look at my email i signed up with |
| 19:57:59 | raptor | I see: Tttt7858 |
| 19:58:04 | tttt7858 | yey |
| 19:58:05 | raptor | yeah, let me see that |
| 19:58:25 | tttt7858 | thanks, i just got a new comp so i decided hey ima play bf |
| 19:58:53 | raptor | there is another account: Tttt |
| 19:59:30 | tttt7858 | hmmm |
| 20:01:06 | | tttt7858 has left #bitfighter |
| 20:02:20 | fordcars | Later guys got to go |
| 20:02:24 | | fordcars Quit (Quit: Page closed) |
| 20:04:09 | Skybax | raptor, whatever robot folder you're using for BitTown needs to be updated lol none of the robots work |
| 20:05:23 | raptor | oh lovely |
| 20:21:07 | thread_ | so, just doing what I thought would be a simple levelgen... (http://pastie.org/8598180) why do I get zero as the output on line 9? |
| 20:22:40 | raptor | because lineTable is a dictionary not an array |
| 20:22:47 | raptor | the '#' operator only works on arrays |
| 20:22:59 | thread_ | Isn't it a table? |
| 20:23:08 | thread_ | I thought there was only tables in Lua |
| 20:23:47 | raptor | it is a table |
| 20:23:51 | raptor | there are two types of tables |
| 20:24:00 | raptor | 1. array with keys always in order as 1...n |
| 20:24:18 | raptor | 2. dictionary with anything as a key - these are accessed with the [] operator |
| 20:24:44 | thread_ | ok, so I should, in the onTick function, use pairs not ipairs? |
| 20:25:07 | raptor | yes, because you make lineTable a dictionary |
| 20:25:14 | raptor | by setting an element with [] |
| 20:25:14 | thread_ | ok |
| 20:25:21 | thread_ | you learn something new everyday |
| 20:36:49 | | BFLogBot Commit: 6ff2d91ba36d | Author: buckyballreaction | Message: Add MOTD to the JSON. Also clean-up the gMOTDClientMap |
| 20:54:00 | raptor | i'm experimenting with adding a 'News' section at the header of the forums |
| 20:54:11 | raptor | comments? |
| 21:01:49 | | tttt7858 has joined |
| 21:01:51 | tttt7858 | heyo |
| 21:02:22 | thread_ | hey |
| 21:02:56 | tttt7858 | hey koda |
| 21:08:05 | Nothing_Much | oh my |
| 21:08:18 | Nothing_Much | raptor: it's growing bigger! |
| 21:08:24 | raptor | heh, yeah |
| 21:08:28 | raptor | testing in production! |
| 21:08:47 | Nothing_Much | still growin'! |
| 21:09:08 | raptor | may see fun stuff for a little while... |
| 21:09:18 | Nothing_Much | :D |
| 21:09:26 | Nothing_Much | and welcome tttt7858! |
| 21:10:36 | tttt7858 | how about welcome back |
| 21:11:02 | tttt7858 | since i made this acc in may, and my old acc in 2012 and i played zap lel |
| 21:11:02 | thread_ | BTw raptor, did you know that if I bf:findAllObjects(items, ObjType.Projectile), it fills the table with testItems, resourceItems, ships, etc. not just bullets |
| 21:11:30 | Nothing_Much | tttt7858: oh sorry, I joined in.. I think dec. of 2012.. lemme check |
| 21:11:35 | raptor | thread_: sounds like you're passing in nil |
| 21:11:55 | thread_ | nope, I copied the code from my levelgen above |
| 21:12:01 | raptor | tttt7858: https://code.google.com/p/bitfighter/issues/detail?id=263 |
| 21:12:02 | tttt7858 | my tttt acc got deleted by raptor, since it was old anyhow, thanks raptor. |
| 21:12:17 | tttt7858 | now i can use mah main one without forgettin |
| 21:12:19 | tttt7858 | thx |
| 21:12:19 | Nothing_Much | oh I joined in Jan. 2013 |
| 21:12:21 | raptor | thread_: looks like ObjType.Projectile doesn't exist? |
| 21:12:34 | raptor | see if that value is nil |
| 21:12:45 | raptor | because using findAllObjects() with a nil will return everything |
| 21:13:30 | thread_ | umm... ok. its null... so how do I get all phasers, bouncers, etc? |
| 21:13:47 | thread_ | cause I can create projectile as a phaser... |
| 21:14:38 | raptor | Bullet |
| 21:14:44 | thread_ | ok |
| 21:15:13 | raptor | looks like kaen changed some names: http://bitfighter.org/luadocs/group___obj_type_enum.html |
| 21:16:52 | tttt7858 | raptor |
| 21:17:01 | tttt7858 | can you get me the defective code |
| 21:17:07 | tttt7858 | i can get it fixed |
| 21:17:58 | raptor | it's not 'defective' exactly - we just don't know how to not make it look ugly in the game |
| 21:18:17 | raptor | also, the game is open source so anyone can look at it in our repository on google code |
| 21:18:31 | tttt7858 | alright |
| 21:18:48 | tttt7858 | im just sayin make it next to badges like skybax said |
| 21:18:55 | Skybax | raptor: I like the news section |
| 21:18:55 | tttt7858 | lemme look for i |
| 21:20:18 | raptor | it's in gameObjectRender.cpp - we experimented with many different rank marks |
| 21:21:58 | thread_ | hrmm... looks like you can't set a phaser's location after it has been fired |
| 21:22:19 | thread_ | lemme try geom |
| 21:22:25 | tttt7858 | where is gameobject' |
| 21:22:41 | thread_ | nope |
| 21:25:32 | Skybax | I'd suggest using the ranks from the game Beat Hazard |
| 21:25:37 | Skybax | They have a bunch and they look cool |
| 21:25:53 | Skybax | Just make em small and slap em on like a badge |
| 21:26:16 | Nothing_Much | oh my |
| 21:26:27 | Nothing_Much | will the news section be fixed anytime soon? |
| 21:26:35 | Nothing_Much | because that would be scary to some newcomers |
| 21:26:48 | raptor | Nothing_Much: refresh the page |
| 21:26:48 | tttt7858 | ya skybax |
| 21:27:13 | Nothing_Much | raptor: still growin! |
| 21:27:23 | raptor | Nothing_Much: on the forums page, or the home page? |
| 21:27:28 | Nothing_Much | home page |
| 21:27:33 | raptor | ah |
| 21:27:55 | Nothing_Much | lemme see the forums page.. looks alright |
| 21:28:47 | Nothing_Much | forums look good |
| 21:30:00 | tttt7858 | hmm |
| 21:30:25 | raptor | the home page should go away eventually... |
| 21:31:33 | tttt7858 | can you recolor characters |
| 21:31:40 | raptor | sure |
| 21:31:41 | tttt7858 | like | |
| 21:32:07 | raptor | tttt7858: will you be making code changes yourself? If so, you'll have to get a developer environment set up |
| 21:34:04 | tttt7858 | No i just know a dude really goot at lua' |
| 21:36:19 | raptor | ah, none of this code is Lua |
| 21:36:21 | tttt7858 | but it could go like this Tier one ranks green R1 | R2 || R3 ||| tier 2 ranks Blue R1 | R2 || R3 ||| Tier 3 gold R1 |- R2 ||- R3 |||- |
| 21:36:25 | raptor | it's c++ |
| 21:36:31 | tttt7858 | oh dang |
| 21:36:38 | tttt7858 | nvm then |
| 21:36:54 | tttt7858 | i have a friend who can code c++ but believe me he is not too good |
| 21:38:16 | tttt7858 | but i think the T1/T2 are | || ||| and t3 is |- ||- |||- |
| 21:38:44 | tttt7858 | it could be on a badge template |
| 21:39:13 | tttt7858 | like one that changes but there is only one badge info in help and it says it is the marker |
| 21:42:24 | | Skybax_ has joined |
| 21:42:33 | | thread_ Quit (Ping timeout: 272 seconds) |
| 21:45:15 | | Skybax Quit (Ping timeout: 272 seconds) |
| 21:47:38 | | Skybax_ is now known as Skybax |
| 21:51:29 | | Watusimoto has joined |
| 22:09:47 | tttt7858 | hey |
| 22:09:56 | tttt7858 | watus i see youve had problemos |
| 22:10:04 | tttt7858 | but it could go like this Tier one ranks green R1 | R2 || R3 ||| tier 2 ranks Blue R1 | R2 || R3 ||| Tier 3 gold R1 |- R2 ||- R3 |||- |
| 22:10:32 | tttt7858 | the rank could go on a badge template |
| 22:10:34 | tttt7858 | a blank one |
| 22:10:42 | tttt7858 | and go next to the badges |
| 22:11:02 | tttt7858 | you kno? |
| 22:12:51 | Watusimoto | HI |
| 22:12:57 | raptor | back soon |
| 22:12:58 | tttt7858 | heeloo |
| 22:13:02 | tttt7858 | Cya |
| 22:13:08 | Watusimoto | hi tttt7858 |
| 22:13:30 | tttt7858 | hey. |
| 22:13:45 | Watusimoto | do I know you by another name? |
| 22:13:54 | tttt7858 | um... |
| 22:13:54 | tttt7858 | hmm |
| 22:14:00 | tttt7858 | silenced_light maybe? |
| 22:14:04 | tttt7858 | forgot |
| 22:14:15 | tttt7858 | But i was the dude with the chevron idea |
| 22:14:32 | Watusimoto | ah, yes, I remember |
| 22:14:42 | tttt7858 | i hear its hard to implement |
| 22:14:57 | tttt7858 | but it could go like this Tier one ranks green R1 | R2 || R3 ||| tier 2 ranks Blue R1 | R2 || R3 ||| Tier 3 gold R1 |- R2 ||- R3 |||- |
| 22:15:08 | tttt7858 | and they could be on a blank badge template next to badges |
| 22:15:59 | raptor | I broke MOTD message sending on master - not sure how yet, but i'll fix it when i come back |
| 22:16:34 | tttt7858 | lol |
| 22:19:21 | tttt7858 | but i think it should not be next to name on ship, raptor said it was hard to implement, so put it on the scoreboard :P |
| 22:25:32 | Nothing_Much | homepage is fixed |
| 22:25:40 | Nothing_Much | but the contest looks weird |
| 22:25:43 | Nothing_Much | or news |
| 22:33:51 | Darrel | CMake Error: The source directory ***/build does not appear to contain CMakeLists.txt .... why does this happen? i mean, there really isn't a Cmakelists file in the build dir, but cmake (and the GCI Student Bootstrap) insist that I run the cmake -G blabal there |
| 22:35:17 | | LordDVG Quit (Remote host closed the connection) |
| 22:47:09 | | tttt7858 Quit (Ping timeout: 272 seconds) |
| 22:49:36 | Watusimoto | hi Darrel |
| 22:49:41 | Watusimoto | you are building Bitfighter?? |
| 22:49:46 | Darrel | yep |
| 22:50:14 | Watusimoto | the way build usually works is you change to the build folder, and do cmake .. |
| 22:50:21 | Watusimoto | note the two .s |
| 22:50:40 | Watusimoto | I'm guessing you omitted the .s |
| 22:50:56 | Darrel | silly me. yep :) |
| 22:51:06 | Darrel | thank you |
| 23:00:25 | | fordcars has joined |
| 23:02:23 | fordcars | Hi |
| 23:03:22 | raptor | !gci |
| 23:03:22 | BFLogBot | GCI Students Welcome! Please see: http://bitfighter.org/wiki/index.php/GCI_Student_Bootstrap for getting started. |
| 23:04:54 | raptor | ok, now to fix my mess |
| 23:19:50 | | ZapGamer has joined |
| 23:20:09 | ZapGamer | Watus |
| 23:20:11 | ZapGamer | I found a bug! |
| 23:20:19 | ZapGamer | Actually two more bugs |
| 23:24:40 | | koda waves |
| 23:27:01 | | Flynnn has joined |
| 23:27:46 | ZapGamer | Flynn |
| 23:27:48 | ZapGamer | Remember me? |
| 23:30:05 | Watusimoto | hi flynn |
| 23:30:23 | Watusimoto | hi ZapGamer |
| 23:37:48 | ZapGamer | Watus |
| 23:37:59 | ZapGamer | I'll message the bugs to you. |
| 23:38:11 | | ZapGamer Quit (Quit: Page closed) |
| 23:38:56 | Darrel | alright, I'm claiming the "TNL port gethostbyname to getaddrinfo" GCI task. and I go to sleep, heh. I'm pretty sure I know what needs to be done, just not sure how to test it, but i'll figure it out in the morning. Night guys! |
| 23:39:01 | | Darrel is now known as Darrel[OFF] |
| 23:39:10 | Watusimoto | night |
| 23:40:20 | raptor | hooray! |
| 23:43:43 | fordcars | raptor, when people die they see enemy mines for a sec |
| 23:43:47 | fordcars | Later! |
| 23:43:50 | | fordcars Quit (Quit: Page closed) |
| 23:44:13 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 23:44:13 | raptor | yes, fixed |
| 23:45:14 | raptor | ok, that's actually not fixed |
| 23:45:17 | Skybax | raptor, sometimes the energyitems only pretend to refule your energy |
| 23:45:18 | raptor | mines are not, i mean |
| 23:54:40 | | Zapgamer has joined |
| 23:55:18 | raptor | I'm hating stl containers again |
| 23:55:52 | Zapgamer | Watusimoto, might want to check your forum account. I sent you a video about the bugs. |
| 23:56:11 | raptor | Zapgamer: please open issues on them |
| 23:56:12 | raptor | !bugs |
| 23:56:12 | BFLogBot | To enter a bug: http://tinyurl.com/bfnewbug -- To view all bugs: http://tinyurl.com/bfbugs |
| 23:56:23 | Zapgamer | o |
| 23:56:24 | raptor | also, check with us if they've been fixed |
| 23:56:34 | raptor | can you briefly explain them? |
| 23:57:01 | Watusimoto | generally it's better to discuss them here |
| 23:57:02 | Zapgamer | A rare bug but when trying to build a teleporter and you get zapped. The green teleporter area stays and crashes your game |
| 23:57:32 | raptor | post the video here |
| 23:57:49 | Watusimoto | http://www.youtube.com/watch?v=VNNTY0We2tI&feature=youtu.be |
| 23:57:54 | Zapgamer | I couldn't reproduce it. It takes a bit of luck to capture it on video |
| 23:58:22 | Zapgamer | Also you can get kill streaks by killing your teammates with mines |
| 23:59:20 | Zapgamer | Then again. Old bug but you can teleport through walls with another ship |
| 23:59:44 | Watusimoto | looks like he found a way to get through walls using engineered teleporters |