00:06:02 | fordcars | hey, I have a question that keeps bugging me in bots: if I have a function, and that function has a 1 second delay in it, what happens when I call it in onTick since the delay is longer than one frame? |
00:58:53 | kaen | that invocation of ontick will block |
00:59:14 | kaen | I'm not sure if it's spawned as another fiber or not. if it is, then the next on tick will still happen on time |
00:59:33 | kaen | otherwise the whole lua state (and probably the game) would freeze for the duration of the delay |
00:59:51 | kaen | fordcars ^ |
01:55:02 | | BFLogBot Commit: c917b3f68c80 | Author: watusimoto | Message: Fix VC++ compile issues |
01:55:04 | | BFLogBot Commit: ecb143e43d0d | Author: watusimoto | Message: Overhaul of loadout indicators and score display in LR corner of game UI |
01:55:05 | | BFLogBot Commit: cd55f69a7e85 | Author: watusimoto | Message: Merge |
01:55:07 | | BFLogBot Commit: 9a6da18b9a42 | Author: watusimoto | Message: Need these too |
01:59:42 | fordcars | ok :p thanks |
02:00:05 | | Watusimoto Quit (Ping timeout: 246 seconds) |
02:07:33 | | raptor has joined |
02:07:36 | | ChanServ sets mode +o raptor |
02:10:05 | raptor | commits! |
02:10:10 | raptor | dare I update? |
02:13:20 | raptor | oh m y goodness watusimoto... a big refactor! |
02:14:13 | raptor | heh... TImeLeftRenderer |
02:17:02 | | bobdaduck has joined |
02:17:09 | kaen | hello |
02:17:21 | raptor | hi |
02:17:28 | raptor | hey kaen question for you |
02:17:41 | raptor | i'm migrating the rest of the old Lunar classes to LuaW |
02:17:42 | kaen | fire away :) |
02:18:19 | raptor | right now I'm doing, the TeamInfo class which was instantiated (in Lua) like so: local team = TeamInfo(1) |
02:18:42 | raptor | I'm changing it to: game:getTeamInfo(1) |
02:18:55 | raptor | so not directly constructable |
02:19:01 | kaen | great! |
02:19:30 | raptor | but my question is... do you think the TeamInfo object should know which teamIndex it is? |
02:19:47 | raptor | because, you're already going to know by grabing it with a team index.. |
02:20:06 | kaen | hmm... |
02:20:09 | kaen | philosophy. |
02:20:12 | raptor | yes |
02:20:23 | kaen | I say the object is called TeamInfo |
02:20:24 | raptor | I like asking you the philosophical ones... :) |
02:20:41 | kaen | its responsibility is keeping track of information relating to a team |
02:20:59 | raptor | this will also be the pattern I follow for ModuleInfo |
02:21:00 | kaen | I think a team index is a reasonable thing for it to contain |
02:21:14 | raptor | ok |
02:21:14 | kaen | does it add much logic? |
02:21:17 | kaen | if not I say expose it |
02:21:22 | raptor | that's the clincher |
02:21:25 | kaen | or add it rather |
02:21:39 | raptor | our Team objects don't actually know their own index in a game |
02:21:46 | kaen | in c++ ? |
02:21:51 | raptor | correct |
02:22:02 | kaen | hmm. well then I'm reconsidering |
02:22:13 | raptor | there is a TeamManager that 'handles' it |
02:22:17 | kaen | ah right |
02:22:28 | raptor | basically you say.. give me team at index 1, and it returns the team |
02:22:42 | raptor | but that team doesn't know its own index |
02:22:48 | raptor | actually - maybe it should though |
02:22:52 | kaen | well that's kind of a design flaw imo |
02:23:00 | raptor | yeah, i think I agree |
02:23:18 | raptor | unless... can team indexes (indices?) change for any reason? |
02:23:31 | kaen | but it's another thing to synchronize unless you refactor that responsibility |
02:23:40 | kaen | I have no knowledge of such a thing |
02:24:24 | kaen | well for now I'd say don't put in on the object |
02:24:43 | raptor | yay less work! |
02:24:52 | kaen | You Ain't Gonna Need It |
02:24:57 | raptor | hehe |
02:25:32 | raptor | oh yay, I don't have to fix building on Linux after watusimoto commited! |
02:25:38 | kaen | \o/ |
02:26:00 | kaen | spector mode is getting more and more complex |
02:26:07 | raptor | oh |
02:26:15 | raptor | I was going to ask you, are you actually building that out? |
02:26:29 | kaen | I think it may be easier to make a SpectatorShip and neuter the unneeded methods |
02:26:34 | kaen | yes I was planning on it |
02:26:36 | raptor | I mean, I know you mentioned it briefly.. |
02:26:53 | raptor | actually, a SpectatorShip may be a good idea... |
02:27:17 | kaen | the mSpectating boolean would mean touching a lot of conditionals |
02:27:26 | raptor | blech |
02:27:26 | kaen | and there's no way to be certain I hit them all |
02:27:55 | raptor | yeah... I've introduced members into the Ship class before - it takes like 2-3 releases to get it working, it seems |
02:28:10 | kaen | riding on mControlObject has lead to crazy behavior (even after disallowing spectator control of the target ship) |
02:28:24 | kaen | the target ship moves twice as fast, for instance |
02:28:30 | raptor | haha |
02:28:51 | kaen | and I can imagine a dozen more bugs like that to track down before it's ready, so I think I'll try subclassing and see how that goes |
02:29:01 | raptor | yeah, do that |
02:29:19 | kaen | my bird is calling |
02:29:21 | kaen | good luck! |
02:29:22 | raptor | oh yay, instant crash on start-up... |
02:29:25 | kaen | \o/ |
02:29:32 | kaen | tell gdb I said hi! |
02:29:39 | raptor | will do |
02:29:56 | raptor | sigh - missing font file |
02:36:07 | | Platskies has joined |
02:40:15 | | BFLogBot Commit: 0ff33ca45a57 | Author: buckyballreaction | Message: Add new class to CMake. Also add missing font file. Is this the right one Watusimoto? |
02:45:27 | raptor | bobdaduck: I don't think I have your 'Where's Robbie' code... |
03:04:04 | | Platskie_ has joined |
03:04:14 | | Platskies Quit (Ping timeout: 248 seconds) |
03:08:51 | | Platskie_ Quit (Ping timeout: 256 seconds) |
03:16:57 | | Platskies has joined |
03:21:07 | raptor | this is so weird |
03:21:25 | raptor | every game object knows what team its on, but the teams themselves don't.. |
03:25:20 | | Platskies Quit (Ping timeout: 264 seconds) |
03:27:30 | bobdaduck | lolwhat? |
03:27:37 | raptor | yeah this is crazy |
03:27:51 | raptor | you know how every object has a 0 or 1 or 2 on it |
03:28:11 | bobdaduck | I'm constantly updating my carnival code |
03:28:12 | raptor | well, in the c++ code... the Team itself doesn't know if its a 0 or 1 or 2 |
03:28:18 | bobdaduck | Where's robbie is a new one today |
03:28:23 | raptor | ah |
03:28:35 | bobdaduck | Which I put in exclusively to figure out what's happening when he disappears |
03:29:32 | raptor | ha I just found two methods that do the same thing: makeSureTeamCountIsNotZero() |
03:29:41 | raptor | and makeSureThereIsAtLeastOneTeam() |
03:33:06 | bobdaduck | Okay are you ready for my stupid levelgen complicated task for you? |
03:33:31 | raptor | uh sure, i guess... |
03:33:53 | | Platskies has joined |
03:34:07 | bobdaduck | Okay so I need to make goalzones shaped like swords that come off of the end of your ship and match the angle your ship is at |
03:35:01 | raptor | i was not expecting that.. |
03:35:05 | bobdaduck | The shaping like swords part is optional |
03:35:10 | bobdaduck | They can be sticks |
03:35:20 | raptor | haha, ok |
03:35:25 | raptor | so break it down |
03:35:36 | bobdaduck | ship:getAngle() or something like that |
03:35:41 | bobdaduck | and then I get lost in the math part |
03:35:42 | bobdaduck | And then |
03:35:42 | raptor | goalzones always moves with your ship angle? |
03:35:46 | bobdaduck | yeah |
03:36:06 | raptor | and it needs to be at the tip of the ship.. |
03:36:30 | raptor | haha... I think I can do that |
03:36:30 | bobdaduck | Yeah |
03:36:33 | bobdaduck | Its doable |
03:36:39 | bobdaduck | I just have no clue how to do it because math |
03:37:01 | fordcars | set a point at the end of the sword, ajust angle on tick |
03:37:04 | fordcars | ? |
03:37:06 | bobdaduck | And eventually I plan to have it so if someone touches the zone they die so its JUST LIKE SWORD FIGHTING |
03:37:19 | raptor | hahaha |
03:37:26 | fordcars | nice |
03:37:45 | bobdaduck | Which might be kind of weird because the only way I know to kill ships on command is by spawning a handful of bursts on them |
03:37:52 | bobdaduck | Which might kill you too. So, um. |
03:37:57 | bobdaduck | WHATEVER I'LL FIGURE IT OUT |
03:38:11 | fordcars | *mines) |
03:38:20 | raptor | same blast radius... |
03:38:29 | fordcars | doesn't move... |
03:38:45 | fordcars | oh right sorry |
03:39:10 | raptor | ok bobdaduck, give me a quick code snippet of how you plan on building the zones |
03:41:49 | raptor | do you use goalzones? |
03:54:00 | bobdaduck | yeah |
04:03:49 | | fordcars Quit (Ping timeout: 245 seconds) |
04:05:38 | | fordcars has joined |
04:06:27 | raptor | does getAngle return degrees or radians? |
04:07:10 | raptor | oh please let it be radians |
04:07:43 | bobdaduck | lol |
04:07:55 | bobdaduck | I don't have a code snippet on how I plan to do this |
04:08:08 | bobdaduck | I suppose it would be easiest to have the zones in existence and IDd |
04:08:18 | bobdaduck | And then you go and claim a sword |
04:08:28 | bobdaduck | and then if someone runs over a sword that isn't theirs they die? |
04:08:34 | raptor | nah |
04:08:46 | raptor | i'll use the registration system |
04:10:32 | bobdaduck | Arrays! |
04:11:57 | bobdaduck | Multidimensional arrays! |
04:13:54 | kaen | raptor, I hope you are charging bobdaduck your contracting rate... |
04:14:01 | bobdaduck | lol |
04:14:15 | kaen | bobdaduck... wtf did I just read? |
04:14:23 | bobdaduck | lol |
04:14:35 | bobdaduck | Well I thought levelgen carnival needed a swordfighting room... |
04:14:49 | kaen | it goes without saying! |
04:14:50 | bobdaduck | And the bonus is I'm also learning calculus/algebra/physics/math from raptors code! |
04:15:12 | | raptor shameless steals code from java libraries and converts to Lua |
04:15:22 | | raptor can't verb |
04:15:38 | | SolumnMushroom has joined |
04:15:40 | kaen | the only thing you should need to know is the circle equations :x |
04:15:51 | SolumnMushroom | Hello! |
04:16:22 | bobdaduck | Sup mush |
04:16:49 | kaen | x = cos(angle) * radius, y = sin(angle) * radius |
04:16:56 | SolumnMushroom | My sister and friend are playing SSBB |
04:17:18 | bobdaduck | cool? My favorites are snake and rob. |
04:17:34 | kaen | unless you aren't using math angles @_@ |
04:17:42 | SolumnMushroom | It's friend: Link vs. sister: Toon Link |
04:17:47 | bobdaduck | nope, we're using color angles |
04:17:51 | raptor | rotation and translation... at once! |
04:17:53 | bobdaduck | via piet |
04:18:09 | kaen | bobdaduck http://en.wikipedia.org/wiki/File:Circle-trig6.svg should explain things clearly |
04:18:13 | kaen | ... trololol |
04:18:20 | raptor | hahaha |
04:18:23 | bobdaduck | lol |
04:19:07 | bobdaduck | lol |
04:19:26 | raptor | invalid packet... |
04:19:30 | SolumnMushroom | Link seems to be winning |
04:19:34 | raptor | bobdaduck: are you sure goalzones work? |
04:19:43 | SolumnMushroom | And then Nintendog |
04:20:02 | kaen | they work for me |
04:20:10 | raptor | i mean adding via levelgen... |
04:20:13 | bobdaduck | that's what I used in the test I showed you |
04:20:14 | kaen | yep |
04:20:21 | SolumnMushroom | Link wins |
04:20:23 | bobdaduck | oh I didn't add it via levelgen |
04:20:31 | kaen | I've done it |
04:20:33 | bobdaduck | aw I was hoping Nintendog was gonna win |
04:20:34 | kaen | it works fine |
04:21:04 | SolumnMushroom | bobdaduck: lol |
04:21:14 | raptor | i'm using bitmatch, that ok? |
04:21:28 | kaen | yes, I actually tested it in all modes |
04:21:29 | bobdaduck | I'm just going to splice the code in anyways |
04:21:31 | SolumnMushroom | Ganon vs. Kirby |
04:22:01 | kaen | adding a goalzone created with the empty constructor gave me invalid packets though |
04:22:11 | bobdaduck | use loadouts if you want |
04:22:12 | bobdaduck | brb |
04:22:14 | SolumnMushroom | Stage: Pictochat |
04:22:16 | raptor | oh duh... |
04:22:23 | raptor | no geometry when constructed |
04:22:25 | raptor | thanks kaen |
04:22:28 | kaen | you bet |
04:23:29 | kaen | I actually fixed that invalid packet on while I was hardening kaen test but the bug is a bit deeper than that |
04:23:56 | kaen | I think it would be sane to have a default geometry |
04:24:59 | raptor | yay lua stack traces |
04:25:02 | raptor | progress! |
04:27:00 | raptor | hahaahahaha |
04:27:02 | raptor | it works! |
04:27:13 | raptor | saaaaaaaaaaddsadsa |
04:27:15 | raptor | ssssdasdsa |
04:27:17 | raptor | oops |
04:27:36 | raptor | this is ridiculous... |
04:28:41 | raptor | bobdaduck: http://pastie.org/pastes/7347274/text |
04:30:09 | | Lamp89 has joined |
04:30:09 | | Lamp89 Quit (Changing host) |
04:30:09 | | Lamp89 has joined |
04:30:20 | Lamp89 | kaen |
04:30:21 | raptor | ooo Lamp89 is using ipv6 |
04:30:29 | kaen | no |
04:30:33 | kaen | I mean hi Lamp89 |
04:30:35 | Lamp89 | i am? |
04:30:57 | Lamp89 | anyway |
04:31:00 | Lamp89 | kaen |
04:31:05 | Lamp89 | your server is laggy. |
04:31:05 | kaen | still here. |
04:31:09 | kaen | no u |
04:31:20 | Lamp89 | laggier than other's servers, and you said it was the fastest |
04:31:21 | raptor | no he's laggy? |
04:31:27 | Lamp89 | ? |
04:31:30 | Lamp89 | -_- |
04:31:37 | kaen | it is. you are mistaken :) |
04:31:54 | Lamp89 | it is laggy? |
04:32:07 | kaen | no, it is the fastest |
04:32:24 | kaen | 08:32:37 up 34 days, 10:41, 1 user, load average: 0.21, 0.46, 0.43 |
04:32:37 | kaen | three bitfighter servers takes on average 20% of its cpu |
04:32:37 | Lamp89 | well what about the occasional connection losses to it on some days? |
04:32:53 | raptor | kaen loop FTW |
04:33:06 | kaen | yes, that's when the server totally crashes |
04:33:12 | kaen | because hooligans upload crash maps |
04:33:19 | kaen | or there are maps which crash it on accident |
04:33:22 | Lamp89 | no, like you lose connection for a few seconds |
04:33:28 | Lamp89 | and get back |
04:33:33 | Lamp89 | but it's not the internet |
04:33:38 | Lamp89 | *my internet |
04:33:43 | Lamp89 | others experienced it too |
04:33:52 | Lamp89 | it's not everyday theough, only some days |
04:33:59 | Lamp89 | not very often |
04:34:03 | raptor | VPS network lag? |
04:34:07 | kaen | so every few days you experience a few seconds of lag |
04:34:13 | kaen | I can see how this is a major problem... |
04:34:25 | Lamp89 | when playing with several other players |
04:34:33 | raptor | Lamp89: did you get a new keyboard from the local thriftshop yet? |
04:34:40 | kaen | appears so |
04:34:48 | Lamp89 | no i dont know of any thrit shop |
04:34:51 | kaen | so anyway I'm not sure what you're getting at |
04:34:57 | Lamp89 | i still don't have a keyboard |
04:35:21 | Lamp89 | i'm just settling on using virtual keyboard with this one |
04:35:23 | Lamp89 | also |
04:35:28 | Lamp89 | w key doesn't work |
04:35:45 | Lamp89 | hello? |
04:36:03 | Lamp89 | raptor kaen |
04:36:11 | kaen | still here. |
04:36:15 | Lamp89 | is my internet.... nvm |
04:36:28 | Lamp89 | thought internet lost for a bit |
04:37:29 | Lamp89 | hey kaen, don't you hate itwhen you install something and then right when you screw the last screw, you break it? |
04:37:38 | raptor | hi |
04:37:41 | Lamp89 | hi |
04:37:58 | Lamp89 | what the i just saw something |
04:38:06 | raptor | me too! |
04:38:13 | Lamp89 | "Lamp" is almost as long as "raptor" |
04:38:24 | Lamp89 | even thought raptor has two more characters |
04:38:30 | | Platskies has left |
04:38:34 | raptor | ah yes, the tyranny of the letter 'm' |
04:38:45 | Lamp89 | ohh |
04:38:48 | | Platskies has joined |
04:38:58 | bobdaduck | I'm back |
04:39:00 | Lamp89 | nothing else to talk about |
04:39:02 | Lamp89 | hi bob |
04:39:08 | Lamp89 | now something to talk about' |
04:39:12 | kaen | you missed our rousing conversation |
04:39:15 | raptor | bobdaduck: I have fulfilled your request |
04:39:20 | raptor | http://pastie.org/pastes/7347274/text |
04:39:22 | Lamp89 | what request |
04:39:24 | bobdaduck | testing |
04:39:27 | bobdaduck | NOTHING |
04:40:10 | Lamp89 | SWORDS |
04:41:11 | Lamp89 | interesting |
04:41:23 | Lamp89 | swords, zones, and registering... |
04:41:39 | bobdaduck | BAHAHAHA |
04:41:41 | bobdaduck | xD |
04:41:52 | Lamp89 | bitfighter is gonna have SWORDS |
04:41:56 | Lamp89 | REALLY |
04:41:57 | bobdaduck | now |
04:41:58 | bobdaduck | no |
04:42:02 | Lamp89 | aww |
04:42:06 | bobdaduck | That would be STUPID. |
04:42:06 | kaen | I'm tearing out the lua scripting engine tomorrow |
04:42:09 | bobdaduck | just levelgen carnival |
04:42:09 | kaen | this seals it. |
04:42:12 | Lamp89 | it would |
04:42:12 | bobdaduck | xD |
04:42:27 | Lamp89 | LEVELGEN LEVELGEN FREEEE LEVELGEN |
04:42:51 | bobdaduck | haven't integrated it yet |
04:43:09 | Lamp89 | saved levelgn |
04:45:10 | raptor | bobdaduck: your carnival level is going to require everyone have a fiber optic internet connection |
04:45:16 | raptor | at this pace.. |
04:45:18 | bobdaduck | xD |
04:45:24 | Lamp89 | anyone here know minecraft? |
04:45:25 | bobdaduck | its only 600 lines of code |
04:45:32 | bobdaduck | minecraft is stupid. Everyone knows it |
04:45:40 | Lamp89 | NOOOOOOOOOOOOOOOO |
04:45:45 | Lamp89 | BURN DA DUCK |
04:45:52 | Lamp89 | WITH LAVA |
04:46:00 | Lamp89 | TRAP IT WITH A REDSTONE TRAP |
04:46:12 | Lamp89 | SQUISH THE CUBE DUCK |
04:46:28 | Lamp89 | GET DUCK MEAT OUT OF IT |
04:46:33 | Lamp89 | and any other minecraft thing |
04:46:36 | bobdaduck | Everyone knows dwarf fortress is better anyway |
04:46:38 | Lamp89 | well |
04:46:47 | Lamp89 | i wish i could play it |
04:46:51 | Lamp89 | IT DONT WORK |
04:46:55 | Lamp89 | WAAAAAAAHHHHHHH |
04:47:05 | Lamp89 | wwwwwwaaaaAAahHAhahhHHHHhhhhhhhAAAAhhhh |
04:47:40 | Lamp89 | minecraft classic dont work |
04:47:45 | Lamp89 | it dont work i tell ya |
04:47:52 | Lamp89 | do you know about java stuff? |
04:48:09 | Lamp89 | i get some LWGLW or whatever error |
04:48:25 | bobdaduck | Simplest solution: Quit minecraft |
04:48:27 | kaen | #minecraft |
04:48:38 | kaen | you'd fight in there I think. |
04:48:42 | bobdaduck | #minecraft indeed |
04:48:52 | kaen | fit in* |
04:48:53 | Lamp89 | HOW CAN I QUIT MINECRAFT IF I DIDNT EVEN START? |
04:49:15 | raptor | Lamp89: you're signal to noise ratio is becoming very low... |
04:49:18 | raptor | *your |
04:49:23 | bobdaduck | lol |
04:49:24 | Lamp89 | ? |
04:49:26 | | Platskies Quit (Read error: Connection reset by peer) |
04:49:30 | Lamp89 | ? |
04:49:36 | bobdaduck | GG raptor |
04:50:15 | Lamp89 | why cant i connect to #minecraft in my client |
04:50:22 | raptor | good grammar, iknow i know ... |
04:50:50 | Lamp89 | oh i have to right click it and click Join |
04:50:52 | Lamp89 | im in |
04:51:00 | Lamp89 | WOW THATS A LOT OF PPL |
04:51:18 | kaen | ENTHRALLING SIR, PLEASE TELL ME MORE |
04:51:46 | bobdaduck | rofl |
04:52:08 | bobdaduck | Quoting that to quartz |
04:53:28 | Lamp89 | CAN YOU EXPLAIN THAT IN A DIFFERENT WAY? |
04:55:58 | | SolumnMushroom Quit (Quit: Leaving) |
04:58:06 | bobdaduck | request: /clearconsole command |
04:58:14 | raptor | type in 'clear' |
04:58:34 | raptor | (I think that works... but may be broken) |
04:59:38 | bobdaduck | yeah seems broken |
05:00:01 | raptor | we hate our console anyways and have a rewrite on the menu.. |
05:00:17 | | Lamp89 Quit (Remote host closed the connection) |
05:00:20 | bobdaduck | lol |
05:04:20 | bobdaduck | Okay so |
05:04:35 | bobdaduck | I can't figure out how to check if the zone it ran over is a registeredZone |
05:06:39 | | Lamp89 has joined |
05:06:39 | | Lamp89 Quit (Changing host) |
05:06:40 | | Lamp89 has joined |
05:07:04 | bobdaduck | arg, help? |
05:07:18 | raptor | umm |
05:07:26 | raptor | hmmm |
05:07:57 | bobdaduck | like and it needs to know if its the one tied to the ship |
05:08:03 | bobdaduck | because the ship is constantly on its own sword |
05:08:25 | raptor | if you grab the zone from the zone registrar and compare it agains the one in onShipEnteredZone, would that work? |
05:09:42 | bobdaduck | uh |
05:09:50 | bobdaduck | I still need to check if its the one tied to the ship |
05:10:20 | raptor | get the players name |
05:10:34 | raptor | the zone registrar is a dictionary with playerName -> zone |
05:15:04 | bobdaduck | uh |
05:15:09 | bobdaduck | Got players name |
05:15:10 | bobdaduck | now what. |
05:15:11 | bobdaduck | xD |
05:16:30 | raptor | you can grab the zone tied to it from the registrar like so: local thisZone = registeredZoneSwords[playerName] |
05:16:46 | raptor | if it returns nil, then that player doesn't have a zone |
05:18:24 | | fordcars Quit (Ping timeout: 245 seconds) |
05:18:52 | bobdaduck | okay uhm |
05:19:30 | bobdaduck | http://pastie.org/7347534 |
05:20:00 | bobdaduck | Alas I remain lost |
05:21:16 | raptor | what do you want to do? |
05:21:38 | bobdaduck | A) if zone is a sword |
05:21:38 | bobdaduck | B) if it isn't the players sword |
05:21:38 | bobdaduck | C) spawn a burst |
05:22:23 | raptor | ok, so you have the zone, now do a test to determine if its a sword |
05:23:20 | raptor | you were close... |
05:24:10 | bobdaduck | for registeredzoneswords, if zone == value then? |
05:25:21 | raptor | something like this. you break it up into manageable chunks: http://pastie.org/7347561 |
05:25:31 | raptor | untested... you may find an error or two |
05:30:05 | bobdaduck | okay so its not even going through the for loop at all |
05:30:27 | bobdaduck | getting zone collisons, but its not getting to a logprint immediately inside the registeredzoneswords loop |
05:31:13 | bobdaduck | http://pastie.org/7347582 |
05:31:35 | raptor | oh oops |
05:31:41 | raptor | thats because its a dictionary |
05:31:45 | raptor | so use 'pairs' |
05:32:15 | bobdaduck | From now on never using ipairs ever again |
05:32:17 | bobdaduck | :P |
05:32:22 | raptor | heh |
05:32:51 | bobdaduck | zone is never == value |
05:33:12 | raptor | i was afraid of that... |
05:33:26 | raptor | rats.. |
05:33:38 | bobdaduck | what? |
05:33:47 | raptor | that may make it so you do zone tests... |
05:33:52 | raptor | *can't do |
05:34:20 | raptor | what if... what if you set the zone to be the same team, then do a team check with the incoming zone |
05:34:27 | raptor | incoming into onPlayerEnteredZone |
05:35:05 | bobdaduck | hm |
05:37:10 | bobdaduck | That's way bettter than my idea |
05:37:56 | raptor | wow, you have quite the command control block in your carnival levelgen you sent me before... |
05:38:03 | bobdaduck | lol |
05:38:06 | bobdaduck | Yeah |
05:38:11 | bobdaduck | I'm adding more too |
05:38:17 | raptor | haha |
05:38:28 | bobdaduck | its at least twice as big as what you have now |
05:39:12 | raptor | oh man |
05:40:17 | bobdaduck | okay |
05:40:23 | bobdaduck | it is bursting on all swords |
05:40:26 | bobdaduck | now to check if its my sword. |
05:41:01 | bobdaduck | how? |
05:41:53 | raptor | did you set the zone to be your team? |
05:42:00 | bobdaduck | no |
05:42:03 | bobdaduck | I set it to be -1 |
05:42:19 | bobdaduck | because integration with carnival |
05:42:21 | | Platskies has joined |
05:42:23 | raptor | set it to be the same as the ship that owns it, then do a team check... |
05:42:41 | raptor | and not do a burst if the zone is the same team as the ship |
05:43:19 | bobdaduck | That will work |
05:43:28 | bobdaduck | but not for integration into the carnival |
05:43:35 | bobdaduck | because carnival has the rave party section |
05:43:43 | | BFLogBot Commit: 2d3e52719733 | Author: buckyballreaction | Message: Convert TeamInfo object to LuaW. This necessitated the following: - Put Lua methods directly on the Team object - In a Lua script, the team is not directly constructable, but can be gotten from the GameInfo object - Team now actually keep track of what team index they are - Clean-up of unused code |
05:43:48 | raptor | if isSword and isOnSameTeam |
05:44:09 | bobdaduck | those are the same thing? |
05:44:37 | raptor | you only do a burst if the zone that was hit is on the same team as the ship and is a sword zone |
05:44:43 | raptor | both conditions must be met |
05:44:54 | bobdaduck | how do I check if isSword |
05:45:05 | bobdaduck | 'cause we just tried that and decided to go with teams |
05:45:10 | raptor | didn't I just send you the code? |
05:45:16 | raptor | yeah, still do it |
05:45:20 | raptor | still do the check |
05:45:34 | raptor | so you filter twice: 1. is a sword? 2. is same team? |
05:46:05 | bobdaduck | But we can't check if zone == value |
05:46:08 | bobdaduck | for whatever reason |
05:46:17 | bobdaduck | so we decided to go with "its a sword if its on this team" |
05:46:30 | raptor | ohhhh, that's right |
05:46:32 | raptor | duh |
05:46:44 | raptor | well... |
05:46:47 | | Lamp89 Quit (Read error: Connection reset by peer) |
05:46:51 | raptor | do all the raveparty zones have IDs? |
05:47:00 | | Lamp89 has joined |
05:47:02 | | Lamp89 Quit (Changing host) |
05:47:02 | | Lamp89 has joined |
05:47:13 | | Platskies Quit (Ping timeout: 264 seconds) |
05:47:22 | raptor | you could make sure it isn't one of those.. |
05:47:24 | raptor | or |
05:47:48 | raptor | do a check to see if it has 5 points |
05:48:06 | raptor | we need to find something we can check against to figure out it is a sword.. |
05:48:12 | bobdaduck | lol |
05:48:26 | bobdaduck | How to check if it has five points? |
05:50:59 | raptor | something like this: http://pastie.org/7347667 |
05:51:10 | raptor | getting the geom of an object is just a table of points |
05:51:16 | raptor | so check table size and off you go! |
05:51:48 | raptor | FYI that last commit was some real work... |
05:51:56 | raptor | (even if it doesn't look like much) |
05:52:34 | bobdaduck | lol |
05:52:37 | bobdaduck | it looked pretty big |
05:52:41 | bobdaduck | it'll fix a lot of crashes? |
05:52:43 | raptor | i was verbose |
05:52:51 | raptor | it was a Lua API enhancement |
05:53:37 | | Lamp89 Quit (Read error: Connection reset by peer) |
05:53:49 | bobdaduck | yeah |
05:53:53 | | Lamp89 has joined |
05:56:14 | bobdaduck | hm |
05:56:15 | | Lamp89 Quit (Remote host closed the connection) |
05:56:18 | bobdaduck | come try this |
05:56:21 | raptor | ok |
05:56:44 | | Platskies has joined |
05:57:42 | | Lamp89 has joined |
05:57:42 | | Lamp89 Quit (Changing host) |
05:57:42 | | Lamp89 has joined |
05:59:40 | raptor | what have i done |
06:01:18 | | Platskies Quit (Ping timeout: 248 seconds) |
06:08:52 | | Platskies has joined |
06:09:57 | bobdaduck | ohh man |
06:19:32 | | Platskies Quit (Remote host closed the connection) |
06:30:04 | bobdaduck | amazing |
06:31:48 | raptor | i wonder if watusimoto will flip |
06:31:56 | bobdaduck | lol |
06:32:02 | raptor | probably not |
06:32:03 | bobdaduck | I'm hoping to stay awake long enough to show him |
06:32:10 | raptor | ha |
06:34:12 | | Lamp89 Quit (Remote host closed the connection) |
06:35:31 | bobdaduck | wow |
06:35:34 | bobdaduck | okay come in for a sec |
06:35:36 | bobdaduck | just a sec. |
06:35:37 | raptor | ok |
06:48:44 | bobdaduck | lol |
06:48:50 | bobdaduck | Wish kaen was awake still to see that |
06:48:57 | raptor | haha |
06:52:54 | | Lamp89 has joined |
06:52:54 | | Lamp89 Quit (Changing host) |
06:52:54 | | Lamp89 has joined |
06:54:48 | raptor | falling asleep... |
06:54:51 | bobdaduck | lol |
06:54:57 | bobdaduck | go for bed |
06:55:07 | raptor | my kids pounce on me early... |
06:55:25 | raptor | good night! |
06:55:30 | bobdaduck | goodnight! |
06:55:41 | | raptor Quit () |
07:12:31 | | bobdaduck Quit (Remote host closed the connection) |
07:37:08 | | Lamp89 Quit (Remote host closed the connection) |
12:00:58 | | Watusimoto has joined |
13:01:04 | | Platskies has joined |
14:30:15 | | Platskies Quit (Remote host closed the connection) |
14:59:59 | | SolumnMushroom has joined |
15:00:34 | SolumnMushroom | The Bitfighter build quest is on again |
15:02:06 | | raptor has joined |
15:02:06 | | ChanServ sets mode +o raptor |
15:03:25 | SolumnMushroom | I'm trying to compile a build of Bitfighter 018a on my openSUSE computer |
15:03:32 | raptor | hi SolumnMushroom |
15:03:38 | raptor | and good morning everyone! |
15:07:43 | SolumnMushroom | Performing a ton of updates |
15:08:04 | raptor | on opensuse 11.1? |
15:08:10 | SolumnMushroom | Only 1.34 GB of updates... |
15:08:13 | raptor | i bet there were loads of updates... |
15:08:35 | raptor | in fact, I think that was the versino of openSUSE that they had to 'remaster' because of so many bugs... |
15:09:04 | SolumnMushroom | @ about < 50 MB per update |
15:10:52 | SolumnMushroom | I'm sitting next to an NES |
15:11:25 | SolumnMushroom | Model NES-001 |
15:11:41 | raptor | whoa! |
15:12:09 | SolumnMushroom | In perfect working condition |
15:12:11 | raptor | do you still have to blow on the cartridges to make them work? :) |
15:12:19 | SolumnMushroom | Yes |
15:13:13 | SolumnMushroom | It's my friend's NES, but he was staying the weekend so he brought it |
15:14:09 | SolumnMushroom | Along with Zelda (1 and 2), SMB, Duck Hunt, World Class Track Meet, and Tetris |
15:16:19 | raptor | ah zelda 1 |
15:17:18 | SolumnMushroom | I have it on Wii Virtual Console, but it's just not the same |
15:30:53 | SolumnMushroom | Dat cartrige slot squeak... |
15:32:13 | SolumnMushroom | I think I'll emulate some N64 |
15:45:24 | SolumnMushroom | Not the best idea as now I am quite frustrated |
16:54:30 | raptor | what difference does it make if our c++ lua methods (like lua_getShip) return 0 or return 1? |
16:55:20 | raptor | because several return* methods in LuaBase.cpp (like returnBool(), returnInt()) all return 1 |
16:55:41 | raptor | but loads of other methods strewn about return 0 |
17:31:05 | | Watusimoto Quit (Ping timeout: 246 seconds) |
17:53:53 | | BFLogBot Commit: fab94a7b10bd | Author: buckyballreaction | Message: Clean-up LuaLoadout class with respect to LuaW |
18:07:51 | | BFLogBot Commit: 030451967732 | Author: buckyballreaction | Message: Minor Lunar clean-up |
18:28:55 | | LordDVG has joined |
19:20:39 | | bobdaduck has joined |
19:20:55 | bobdaduck | gentlepeepz |
19:26:39 | kaen | hello |
19:26:46 | kaen | show me your swords bobdaduck |
19:26:49 | kaen | pretty please |
19:26:52 | bobdaduck | lol |
19:26:58 | kaen | I mean |
19:26:58 | kaen | erm |
19:27:01 | bobdaduck | I'm just about ifnished integrating into levelgen carnival |
19:27:02 | bobdaduck | xD |
19:27:05 | kaen | THOSE SWORDS ARE AN ATROCITY |
19:27:13 | bobdaduck | rofl |
19:27:18 | bobdaduck | pity wat isn't around to see them |
19:27:35 | kaen | I'm not sure the poor guy could take it... |
19:27:54 | bobdaduck | lol |
19:28:08 | bobdaduck | Actually I think its far more likely he'd add them as the next gameweapon. |
19:28:19 | kaen | swordfighter |
19:28:58 | kaen | putting dishes away then I'll be back |
19:29:02 | bobdaduck | k |
19:38:37 | bobdaduck | Done! |
19:38:57 | kaen | back |
19:39:13 | bobdaduck | hosting |
19:47:18 | | LordDVG Quit (Read error: Connection reset by peer) |
19:47:55 | | LordDVG has joined |
20:10:00 | | bobdaduck Quit (Ping timeout: 264 seconds) |
20:25:08 | | fordcars has joined |
20:49:53 | | LordDVG Quit (Remote host closed the connection) |
20:59:39 | | Watusimoto has joined |
21:02:50 | Watusimoto | >>> what difference does it make if our c++ lua methods (like lua_getShip) return 0 or return 1? <<< |
21:02:55 | Watusimoto | a big difference! |
21:03:12 | raptor | hi Watusimoto |
21:03:15 | Watusimoto | that number represents the number of arguments pushed onto the stack |
21:03:23 | Watusimoto | so return nil will push nil, then return 1 |
21:03:25 | raptor | ohhhhhh |
21:03:26 | Watusimoto | hi |
21:03:46 | Watusimoto | that's how that whole idion works |
21:03:53 | Watusimoto | return returnInt(5) |
21:04:00 | Watusimoto | will push 5, and return 1 |
21:04:07 | Watusimoto | idiom |
21:04:25 | Watusimoto | I am rather fond of that design, if I do say so! |
21:04:56 | Watusimoto | that than number (0, 1, whatever) is used by Lua to set up the return values to the calling function |
21:05:22 | Watusimoto | clear? |
21:05:34 | raptor | yes |
21:05:46 | raptor | ok.. looks like i didn't break anything (I made educated guesses..) |
21:05:58 | Watusimoto | good! |
21:06:03 | raptor | besides my precommit Lua tests worked.. |
21:10:18 | raptor | also done converting another Lunar object... |
21:13:36 | raptor | Watusimoto: what's the easiest way to get rid of a 'const' qualifier on an object? |
21:13:54 | Watusimoto | uhhhhh |
21:13:59 | Watusimoto | you shouldn't! |
21:13:59 | raptor | yeah.. |
21:14:19 | Watusimoto | there's a cast that will do it |
21:14:22 | raptor | ok, then tell me why gModuleInfo would be declared const? |
21:14:35 | raptor | and by 'why', I mean, what is the advantage |
21:15:00 | Watusimoto | are you a religious man? |
21:15:19 | raptor | I am, but not the normal type - I'm willing to change my views with new information |
21:15:36 | Watusimoto | well, this is, I believe a sort of religious question |
21:15:39 | raptor | (after the information has been thoroughly tested..) |
21:16:46 | raptor | well... |
21:16:59 | raptor | uhh.. i'll just change it to 'static' if you have no objections :) |
21:17:01 | Watusimoto | I use it for pointers that I don;t want people to use to modify the object it points to |
21:17:22 | raptor | ok, that makes sense |
21:17:43 | Watusimoto | so gmoduleinfo looks like that sort of thing -- it's data that shoudn't change |
21:17:48 | raptor | I just made the ModuleInfo struct a bonified object, though, with private members |
21:17:54 | raptor | and only getters |
21:18:29 | Watusimoto | and, maybe, needs to be const to be defined where it is (not sure about that, but is sometimes true) |
21:19:00 | Watusimoto | where is the const a problem? I've usually found that there is a clean fix when I think I am stuck |
21:19:32 | raptor | I'm adding a Lua interface to the ModuleInfo struct |
21:19:52 | Watusimoto | to provide that info to scripts |
21:19:56 | raptor | yes |
21:20:25 | raptor | actually - maybe I need to ask another question: do we want ModuleInfo provided? |
21:21:01 | raptor | right now all it ever exposed was the module name and the module id (or index) |
21:21:05 | Watusimoto | ideally, though I don't really see anyone actually using it |
21:21:32 | Watusimoto | but the drain/cost seems theoretically useful |
21:21:38 | raptor | no one has used it yet |
21:21:50 | raptor | so if yes, then my problem: |
21:22:07 | Watusimoto | let's see if we can solve the problem; if not, that may help us decide! |
21:22:17 | raptor | i'm plugging it in to be gotten like so: local info = game:getModuleInfo(Module.Shield) |
21:22:23 | raptor | however |
21:22:42 | Watusimoto | and info would be some sort of moduleInfo object? |
21:22:47 | raptor | I have to do a (ModuleInfo*) ->pus(L) |
21:22:51 | raptor | *push(L) |
21:22:56 | Watusimoto | yuck! |
21:22:56 | raptor | yes |
21:23:12 | raptor | yes and the issue is that the LuaW push(L) method can't handle const |
21:23:52 | Watusimoto | I guess it can't guarantee that lua won't tinker with the value |
21:24:13 | Watusimoto | which I suppose makes sense on some level |
21:24:14 | raptor | yeah, so... |
21:24:24 | raptor | either i break the const or... soemthing else? |
21:24:44 | raptor | this is my last error! |
21:24:57 | Watusimoto | well, if lua can tinker with the value, clearly we want to pass a copy, and not the orgiinal obejct |
21:25:10 | Watusimoto | otherwise lua could muck with the core of the game |
21:25:22 | Watusimoto | how do we handle this for weapons? |
21:25:34 | raptor | weapons are still in Lunar, but I will hit the same problem |
21:25:38 | Watusimoto | must be the same issue |
21:25:39 | Watusimoto | yes |
21:25:44 | raptor | WeaponInfo is my last object after this.. |
21:26:18 | raptor | so... if I did a new object, it is sufficient to just make a copy with 'new' ? |
21:26:25 | raptor | how would it get cleaned up? |
21:26:27 | Watusimoto | well, one option would be to have a pushModuleInfo(L) method that writes a simplified copy |
21:26:58 | raptor | how so? |
21:27:27 | Watusimoto | it could create a table with the name, drain, cost, etc. in it |
21:27:43 | Watusimoto | and that would be the entity that gets handed to lua |
21:28:23 | Watusimoto | actually it would have to be something like pushModuleInfo(luaState *L, const ModuleInfo modInfo) |
21:29:00 | raptor | maybe I could just override push? |
21:29:04 | Watusimoto | looking for a similar method |
21:29:14 | raptor | it's virtual.. |
21:29:33 | Watusimoto | override the moduleInfo push? |
21:29:39 | raptor | yes |
21:31:12 | raptor | tinker tinker.. |
21:31:19 | Watusimoto | well, what is the ultimate purpose we're trying to achiefe |
21:31:31 | Watusimoto | it's to provide scripts access to data about modules/weapons |
21:31:33 | raptor | just get the const ModuleInfo* on the stack.. |
21:31:36 | Watusimoto | cost to use, etc. |
21:31:48 | raptor | yes |
21:32:02 | Watusimoto | a moduleInfo object is one way to do that |
21:32:14 | Watusimoto | well, probably a good way to do that :-) |
21:32:17 | raptor | we already have one: the ModuleInfo struct |
21:32:29 | raptor | i converted it into a class that extends LuaObject |
21:32:38 | raptor | and added the Lua interface to it |
21:32:56 | Watusimoto | I guess playerInfo is a pretty similar idea |
21:33:09 | raptor | so a completely separate class, then? |
21:33:55 | Watusimoto | but with the ship, we return interesting values separately; i.e. there is no ShipInfo, but instead getEnergy, getHealth, etc. |
21:34:15 | Watusimoto | not going anywhere specific, just thinking aloud here |
21:34:19 | raptor | so I see two modes of attack |
21:34:25 | raptor | one is like with ClientInfo |
21:34:32 | raptor | it creates a LuaPlayerInfo class |
21:34:40 | raptor | and that class has only the lua interface |
21:34:44 | | bobdaduck_m has joined |
21:35:30 | raptor | and then there is all the BfObjects and children where the interface is directly in the class |
21:36:46 | raptor | for the first case, take a look at LuaLoadout |
21:37:46 | raptor | when a Loadout object is requested from Lua, the method Ship::lua_getReqLoadout pushes a 'new new LuaLoadout(loadoutItems)' |
21:37:56 | raptor | only one 'new' there.. |
21:38:21 | raptor | my question is how that gets cleaned up.. |
21:38:47 | Watusimoto | I think that one is a leak |
21:38:49 | Watusimoto | actually |
21:39:08 | raptor | yeah.. i made a note in my current revision |
21:39:19 | raptor | so if i do it that way.. how do I clean up the leak? |
21:40:22 | Watusimoto | i think you shouldn't do it that way |
21:41:02 | Watusimoto | I'm not sure how to clean up the leak... perhaps ... hook into the proxy delete somehow? don't use a proxy and let lua delete the object? |
21:41:14 | Watusimoto | probably that second one |
21:41:29 | Watusimoto | but there is also a third option |
21:42:07 | Watusimoto | that is instead of pusing the object, push a table instead, and manually write the interesting values to it |
21:42:41 | bobdaduck_m | T minus 20 minutes until watusimoto flips |
21:42:53 | bobdaduck_m | right raptor? |
21:43:01 | raptor | oh boy, yeah... |
21:43:46 | bobdaduck_m | I still haven't gotten the delete code working but its functional in my example level |
21:44:15 | raptor | Watusimoto: I was hoping I could just push the ModuleInfo object (from the original struct) directly... because that would be easiest |
21:44:27 | raptor | but since it's const... |
21:44:38 | raptor | I need to be religious I guess |
21:45:13 | | bobdaduck_m Quit (Read error: Connection reset by peer) |
21:45:13 | | BFLogBot Commit: ac03d41d3d69 | Author: buckyballreaction | Message: Note about potential memory leak |
21:45:34 | | bobdaduck_m has joined |
21:47:28 | Watusimoto | funny how all my searches for lua info lead me to stack overflow questions I've asked |
21:47:39 | raptor | haha, that's been my exact experience! |
21:48:08 | Watusimoto | so... what, about 15 minutes before I flip? |
21:48:22 | raptor | he has a level to show you in a bit |
21:48:36 | bobdaduck_m | And you will flip |
21:48:37 | raptor | I bare some of the responsibility, like usual... |
21:48:41 | raptor | bear |
21:48:43 | Watusimoto | ok, I think the issue is thus: we can't pass a const object to lua because lua can modify it |
21:48:51 | bobdaduck_m | We're taking bets on the exact extent of flippage |
21:48:56 | raptor | let me make sure that's the case, Watusimoto |
21:49:02 | Watusimoto | (and we don't want lua to modify it) |
21:49:21 | Watusimoto | well, wait a sec |
21:49:33 | Watusimoto | when we pass an object, we are just passing a pointer, right? |
21:49:46 | raptor | right |
21:50:18 | Watusimoto | and so that pointer is only good for running further methods like obj:getModuleCost() |
21:50:53 | | bobdaduck_m Quit (Remote host closed the connection) |
21:50:59 | Watusimoto | so we still face the problem of writing all those getXXX() methods, no? |
21:51:08 | | bobdaduck_m has joined |
21:51:41 | Watusimoto | the pointer is not good for directly acessing data members, is it? |
21:52:53 | Watusimoto | playerInfo is just a big collection of get methods |
21:53:10 | Watusimoto | getShip, isRobot, getScore, getRating, etc. |
21:53:53 | raptor | yes, but it is created and deleted in the ClientInfo object |
21:54:03 | Watusimoto | right |
21:54:15 | Watusimoto | so there's two approaches |
21:54:56 | Watusimoto | 1) create a similar ModuleInfo object somewhere, attaching it to, say, ServerGame so it gets cleaned up, and implement a stack of getXXX methods on it |
21:55:39 | Watusimoto | or 2) create a table with the info in it so scripters can access the info directly from the table, without calling getXXX |
21:56:25 | Watusimoto | 2 won't work for Playerinof, because the info there is dynamic, and a table would get stale as soon as the player scored or whatever |
21:56:58 | Watusimoto | but 2 seems easier for the user, and no more difficult for us. |
21:57:27 | Watusimoto | What I don;t see is a good automatic way to pass a pointer to a ModuleInfo object and to be done with it |
21:57:56 | Watusimoto | either way we need to define what info the scripter can access, and provide a method for that access |
22:00:14 | | bobdaduck_m Quit (Read error: Connection reset by peer) |
22:01:59 | Watusimoto | with our enums, we just push a table |
22:02:07 | Watusimoto | well, there's option 3 |
22:03:05 | Watusimoto | create a table with all the module info in it, and just make it available in lua like we do the enums, no getModuleInfo() call at all... it's just there as a reference |
22:03:19 | raptor | so a table table? |
22:03:29 | Watusimoto | table table? |
22:03:29 | | bobdaduck has joined |
22:03:38 | raptor | how would it be accessed in Lua |
22:03:57 | raptor | ModuleInfo[Module.Shield].energyCost ? |
22:04:21 | bobdaduck | In other news, levelgen carnival is 750 lines of code long now |
22:04:23 | Watusimoto | yes? |
22:04:37 | bobdaduck | OKAY |
22:04:43 | bobdaduck | Join server watusimoto |
22:04:47 | bobdaduck | you shall flip |
22:04:51 | Watusimoto | I'd say yes |
22:04:55 | bobdaduck | There shall be much flippage |
22:05:16 | raptor | Watusimoto: that may be a good idea... simplest, too... with XMacros! |
22:05:29 | raptor | also you should join bobdaducks server |
22:05:30 | Watusimoto | see the add_enum_to_lua code for how enums are done |
22:05:36 | Watusimoto | ok, going |
22:05:38 | Watusimoto | 018a? |
22:05:42 | bobdaduck | yeah |
22:05:44 | raptor | yes |
22:06:19 | Watusimoto | viva le x-macro! |
22:06:41 | Watusimoto | or la? |
22:06:55 | Watusimoto | I guess it's spanish, not french |
22:16:26 | Watusimoto | ok, bobdaduck, I am impressed |
22:16:35 | Watusimoto | you win :-) |
22:16:45 | bobdaduck | xDD |
22:18:48 | Watusimoto | bobdaduck: sometimes I see"orphaned" swords... what are those? |
22:18:55 | bobdaduck | when people die |
22:18:59 | bobdaduck | The sword stops |
22:19:03 | bobdaduck | Until they respawn |
22:19:32 | Watusimoto | ok, well now you have your melee weapon |
22:20:12 | bobdaduck | xD |
22:20:30 | bobdaduck | I might add it to my masterscript |
22:20:37 | bobdaduck | and then on command everyone suddenly gets swords |
22:21:09 | Watusimoto | raptor: just to followup... I think I like option 3) best, as it seems easiest for the scripter as well... and efficient |
22:21:27 | raptor | yeah, me too... I'll tinker with that |
22:21:45 | Watusimoto | raptor: one other idea might be to think about implementing playerInfo as a set of tables that are kept updated somehow |
22:22:02 | bobdaduck | raptor: My sister says she's eager to meet swords with you in the arena |
22:22:12 | raptor | heh |
22:22:13 | raptor | ok |
22:22:22 | Watusimoto | not sure exactly how it would work, but it might be a cool design |
22:22:36 | Watusimoto | then we could kill PlayerInfo and all the associated methods |
22:22:41 | raptor | Watusimoto: Lunar death first, then maybe i'll re look at LuaLoadout and LuaPlayerInfo |
22:22:56 | Watusimoto | sure, of course, just thinking about options |
22:23:33 | Watusimoto | bobdaduck: what is the master script? the grand collection of all your tricks? |
22:23:35 | raptor | although LuaLoadout memory leak needs to be addressed somehow.. |
22:23:45 | bobdaduck | global levelgen script |
22:23:46 | bobdaduck | server wide |
22:24:09 | Watusimoto | so almost like a custom server |
22:24:20 | raptor | Watusimoto: bobdaduck implemented a neat take on it for his 'gladiators' server |
22:24:24 | raptor | it actually pretty good.. |
22:24:30 | bobdaduck | yeah |
22:24:34 | bobdaduck | hold on I'll host it |
22:24:55 | Watusimoto | so what would make that script more usable would be a way to transmit scripts to the client for "predictive" rendering |
22:25:14 | raptor | Watusimoto: yes... client-side prediction is what's completely missing.. |
22:25:18 | bobdaduck | okay |
22:25:20 | bobdaduck | hosting |
22:36:31 | Watusimoto | well... great! |
22:36:46 | bobdaduck | Good and evil of scripting |
22:36:48 | raptor | so he uses a global script to do persistent server mods... sort of |
22:37:12 | bobdaduck | I think there's a bug though if you run a global script + level script (something about two main() functions) |
22:37:50 | raptor | oh really? I ran them... |
22:38:31 | bobdaduck | I dunno I just remember having something with qui's organic blocks level and a master script |
22:38:36 | bobdaduck | didn't test it thoroughly though |
22:39:07 | raptor | ok, well if you come across it again, let me know |
22:39:16 | bobdaduck | will doo |
22:39:20 | bobdaduck | seeya |
22:39:20 | | bobdaduck Quit (Remote host closed the connection) |
22:39:36 | Watusimoto | raptor: more than you need to know: http://www.cprogramming.com/tutorial/const_correctness.html |
22:39:43 | Watusimoto | if you don't already know |
22:40:43 | raptor | i remember reading that 2 years ago and not understanding anything.. |
22:41:25 | Watusimoto | I've read that several times myself |
22:42:00 | Watusimoto | I started making some rendering functions const a while back; seems cleaner |
22:42:20 | Watusimoto | because rendering should not alter state (though sometimes it does) |
22:44:39 | | fordcars Quit (Ping timeout: 245 seconds) |
22:46:07 | Watusimoto | also raptor did you see I converted the UI namespace to Zap::UI? |
22:46:25 | Watusimoto | still not sure I like it, but I do think it's an improvement |
23:25:54 | raptor | yes, I saw that - I like it better |
23:38:49 | raptor | This is hurting my brain.. getting ModuleInfo into Lua via the enum stuff... |
23:42:37 | raptor | so basically 'const' is used to document |
23:43:31 | Watusimoto | kind of |
23:43:56 | Watusimoto | partially as documentation, partly as enforcing a declared policy |
23:44:03 | Watusimoto | this function will not modify state |
23:47:42 | raptor | dinner! |
23:49:30 | Watusimoto | bon apetite! |