01:00.22 | *** join/#bzflag bertman (~bert@unaffiliated/bertman) |
07:19.54 | allejo | https://travis-ci.org/allejo/bzflag/builds/285415448 |
07:20.46 | allejo | libsound was whitelisted. can't run ./configure with --enable-debug since there are some warnings that are treated as errors |
07:21.05 | allejo | seems like macos builds are having issues on Travis atm so can't test yet: https://github.com/travis-ci/travis-ci/issues/8552 |
07:21.38 | allejo | see here https://travis-ci.org/allejo/bzflag/jobs/285413694#L1687 for the --enable-debug error that prevents it from building |
07:43.54 | *** join/#bzflag BZnotify (~BZnotify@192.30.252.45) |
07:43.54 | BZnotify | [13bzflag] 15allejo opened pull request #89: Add Travis to test builds on macOS + Linux (062.4...06feature/travis-tests) 02https://git.io/vdgod |
07:43.54 | *** part/#bzflag BZnotify (~BZnotify@192.30.252.45) |
16:17.30 | JeffM | blast007: when are you going to turn that GCC export flag on? |
16:17.54 | blast007 | I don't know. Should it happen in 2.4, or wait for a major? |
16:18.11 | JeffM | how many plugins use the fake API? |
16:18.23 | blast007 | probably one or two |
16:18.26 | JeffM | it is not proto breaking |
16:18.42 | JeffM | find out what they use, add that to the real API, turn it on |
16:18.43 | JeffM | done |
16:18.55 | JeffM | hell tell me what they use from it and I'll add it to the API for you |
16:19.03 | blast007 | well, the main thing that I know it's been used for is changing teams in-game |
16:19.17 | JeffM | then add an API function that does whatever the lib does |
16:19.22 | JeffM | clearly bzfs can do it in proto |
16:19.27 | JeffM | if the lib does it |
16:19.32 | blast007 | (which is done by sending out a quit/join message to everyone) |
16:19.39 | JeffM | oh... |
16:19.43 | blast007 | yeah... :) |
16:19.45 | JeffM | that us Feed up |
16:19.52 | JeffM | umm yeah break that please4 |
16:19.58 | blast007 | lol |
16:20.21 | JeffM | the plugin it self can do that can't it? |
16:20.41 | blast007 | there's no API for team changes |
16:20.44 | JeffM | oh wait, it doens't kick them, it just pretends like everyone else rejoined |
16:20.47 | blast007 | yeah |
16:20.52 | JeffM | oh that's not too bad |
16:21.05 | JeffM | I hate that less |
16:21.06 | blast007 | and the client sees it's own join message and is like "I joined, and I'm on team X" |
16:21.11 | JeffM | ok |
16:21.23 | blast007 | I don't know if it works *well* though |
16:21.24 | JeffM | I'd not be against that being in bzfs untill a real message was had |
16:21.33 | JeffM | well I'd resent score too |
16:21.41 | JeffM | after that it should be fine |
16:21.42 | blast007 | allejo: does the hackish team changing stuff behave well? |
16:22.13 | JeffM | or make it be like bzapi_ChangeTeamsBadly |
16:22.16 | blast007 | we could add a note that it's very experimental and hackish in 2.4 |
16:22.43 | JeffM | flag it as a temporary API, that eventualy gets removed |
16:22.53 | JeffM | or add a seperate header |
16:23.00 | JeffM | bzapiEXP_ |
16:23.03 | blast007 | bzfs_api_crap.h |
16:23.13 | JeffM | stuff in there is like extension methods to openGL, for testing only |
16:23.39 | JeffM | but yes, a seperate header wiht real exprots, but don't ship the header as part of the public API |
16:24.05 | JeffM | then once something has been proven in that API, it gets migrated to the real API |
16:24.23 | JeffM | and if you use that header you understand that you will eventualy have to rebuild your plugin |
17:11.18 | allejo | blast007, yea it behaves and is potty trained |
17:12.30 | allejo | the only other function that accesses BZFS headers in that library is a "trigger spawn" |
17:12.50 | allejo | call it and it causes a client to spawn |
17:16.07 | allejo | just mark the change team "experimental" but keep the signature the same for a proto break |
17:16.31 | allejo | or make a bzfsAPI-next.h |
17:34.25 | JeffM | it forces a player to respawn? |
17:35.16 | JeffM | or spawns an instance of a client executable? :) |
17:53.30 | blast007 | what's the use case for forcing a player to spawn? besides April 1 jokes? |
17:54.12 | JeffM | event driven teleports? |
17:54.25 | JeffM | custom CTF? |
17:54.38 | JeffM | LULZ |
17:55.04 | blast007 | custom CTF that forces a player into an alive state even if they're not ready or at their computer? |
17:55.27 | JeffM | code could call it for non limbo players |
17:56.43 | blast007 | but why? |
17:59.14 | JeffM | if a cap returns all players, with out killing them |
17:59.31 | JeffM | I'm thinking cobined with the spawn location override event. |
17:59.38 | JeffM | but yes, I am reaching |
17:59.42 | allejo | quick attempt to move a player without having them respawn |
17:59.46 | blast007 | so it's not about forcing a player to spawn and more about moving them to a new location? |
17:59.59 | JeffM | yeah, spawn in the only message that would do that |
18:00.08 | JeffM | it's more like teleport :) |
18:00.10 | allejo | pretty much. kill them, set a new spawn location, force them to respawn |
18:00.45 | JeffM | do you have to kill them? |
18:00.49 | JeffM | what does the client do if it's alive? |
18:01.12 | allejo | never explored the option of actually moving the client without killing |
18:01.47 | JeffM | death should only happen when people are killed |
18:02.01 | BulletCatcher | The client thinks it is authoritative about its own location, except when spawning. |
18:02.28 | JeffM | then that would be good, a client should just POP when spawning, assuming it's not also checking allive |
18:05.01 | allejo | if thereâd be a teleport option, thatâd fix my need for the force respawn wrapper. that was my only use for it |
18:08.16 | JeffM | someone should look over the code to see if there are any returns in the client message handler of that |
18:08.23 | JeffM | and then test it on a real client |
18:08.47 | JeffM | it would even have an "instant teleport" effect from the spawn effects |
18:09.15 | JeffM | blast007: how about a custom bad flag that teleports you every 3 shots? :) |
18:09.20 | JeffM | Sliders Flag |
18:09.41 | allejo | oh Iâd have fun with that one |
18:10.51 | blast007 | I think I'd find a different server to join :P |
18:23.48 | *** join/#bzflag I_Died_Once (~I_Died_On@unaffiliated/idiedonce/x-1828535) |
18:30.45 | *** join/#bzflag BZnotify (~BZnotify@192.30.252.35) |
18:30.45 | BZnotify | [13bzflag] 15JeffM2501 opened pull request #90: Upgrade projects to VC15 (2017) (062.4...062.4_VC2017) 02https://git.io/vd2Au |
18:30.45 | *** part/#bzflag BZnotify (~BZnotify@192.30.252.35) |
18:30.50 | JeffM | if you want it |
18:32.39 | blast007 | any idea if the dependencies build with VC15? |
18:33.51 | blast007 | guess I could just try that here |
18:36.48 | blast007 | *downloads installer* *installer needs to update itself* ... |
18:37.51 | blast007 | oh, guess I already have 2017 installed :) |
19:03.33 | *** join/#bzflag TimRiker (d831ba32@bzflag/projectlead/TimRiker) |
19:03.33 | *** mode/#bzflag [+o TimRiker] by ChanServ |
19:16.48 | JeffM | I just used your last set of deps, they worked fine |
19:21.55 | blast007 | c-ares, curl (because c-ares did), and SDL2 fail to build |
19:40.35 | JeffM | nice |
19:41.50 | JeffM | the upgrade is less important, 2017 can fully run with the 2015 settings. Windows developers would just need to remember to not commit the project files. |
19:42.03 | JeffM | so you could leave it as 2015 and support both versions |
19:42.13 | JeffM | it's not like 2015 that needed code changes to build |
19:42.39 | blast007 | not saying it can't work, it just didn't work swapping out the versions/paths |
19:42.45 | JeffM | ahh |
19:42.59 | JeffM | the joy of a mixture of build systems :) |
19:43.16 | blast007 | I think all of them have CMake support now |
19:43.40 | allejo | ugh jeff. you suck at PRs. all those merged commits |
19:44.47 | JeffM | allejo: probably |
19:45.04 | JeffM | I still don't know how to merge my branch with the upsream |
19:45.10 | JeffM | I click buttons untill there are no errors |
19:45.28 | blast007 | git pull --rebase |
19:45.40 | blast007 | oh, from a branch.. |
19:45.47 | JeffM | yeah I have a fork |
19:45.54 | allejo | https://help.github.com/articles/syncing-a-fork/ |
19:46.09 | JeffM | I try to sync that to your stuff, then make a branch for each PR |
19:46.21 | JeffM | allejo: I was told your links are "Scarry" |
19:46.37 | JeffM | how do I do that from a clicky thingy |
19:46.49 | allejo | that only applies to links in other channels ;) |
19:47.20 | allejo | what clicky thingy are you using? |
19:47.25 | JeffM | tort |
19:47.46 | blast007 | haven't used TortoiseGit in a long time |
19:48.20 | allejo | my condolences |
19:48.37 | JeffM | I'll switch off it once VC2017 gets SSH key support |
19:49.14 | blast007 | maybe github desktop can do it? |
19:49.27 | JeffM | no thanks |
19:49.48 | JeffM | there is a github plugin for VC, I should probalby try it |
19:49.58 | allejo | https://stackoverflow.com/a/7297491 |
19:49.59 | JeffM | I mostly use gitlab, free private repos |
19:50.54 | JeffM | I may have picked the wrong thing |
19:51.18 | allejo | basically, you just need to add a remote to the original repo (bzflag-dev/bzflag) and then provided you have a clean branch, just pull/merge from that origin. it'll fast-forward the repo for you and then you just push up back to github and it's synced |
19:51.24 | JeffM | I have that |
19:51.30 | JeffM | I htink I picked the wrong remote |
19:52.17 | allejo | oh |
19:52.52 | blast007 | "Ah, this is the one for the BluRay, not the cable box.." |
19:53.07 | JeffM | now I think i made it worse :) |
19:53.14 | JeffM | maybe time to kill the fork and start over |
19:53.22 | allejo | lol |
19:53.30 | blast007 | nuke it from orbit. it's the only way to be sure. |
19:53.38 | JeffM | though I guess it has no conflicts now, just shitty history |
19:54.15 | allejo | no git bash on your computer? one of the few things that's much easier without a gui |
19:54.51 | JeffM | Sorry ð© history |
19:55.06 | JeffM | oh yeah I have git bash, real bash, all kinds of bash |
19:55.09 | JeffM | I just don't use em |
19:55.24 | JeffM | it should be easy with a GUI :) |
19:55.51 | JeffM | I can do it in SVN, I can do it in surround, next week I'll be trained how to do it in Perforce |
19:55.56 | JeffM | and I've done it before in Git |
19:55.59 | JeffM | I think I just hozed myself |
19:56.08 | blast007 | arg.. why does the cares-1_11_0 tag have 1.10.1, and cares_1_12_0 have 1.11.1 ... |
19:56.23 | allejo | agrees that it should easy with a GUI |
19:56.38 | blast007 | I guess they tab *before* they change the version string for release..? :P |
19:56.39 | JeffM | if you look at the PR, is it still messed up? |
19:56.43 | blast007 | tag* |
19:57.39 | allejo | conflict in the PR is gone and if we just squash it when it's merged it, it *should* be fine but you touching the git history is still on there |
19:57.56 | JeffM | let me try another branch |
19:58.21 | JeffM | my forks 2_4 branch should be clean, that's why I always make a local branch before each change. |
19:59.27 | allejo | that's the sane way of doing it |
20:00.38 | JeffM | nope, screwed up my fork too |
20:01.38 | allejo | whispers "git bash" |
20:01.49 | JeffM | you should ð©can my outstanding PRs and I'll restart |
20:01.53 | JeffM | DEATH FIRST! |
20:02.38 | JeffM | what bash command would fix my 2_4 branch? |
20:03.15 | allejo | good question. i'd think maybe, git reset --hard upstream/2.4 |
20:03.35 | JeffM | let me get a clean working dir and see what I can do |
20:08.04 | JeffM | nope, still shows a history item of @JeffM2501 JeffM2501 Merge remote-tracking branch 'remotes/parrent/2.4' into 2.4 ⦠|
20:08.53 | allejo | you did the reset and then force push? (you could check `git log` before a force push) and it shouldn't show your merge commit |
20:11.25 | JeffM | yup |
20:12.02 | JeffM | https://usercontent.irccloud-cdn.com/file/Xi3uTaWb/ |
20:14.13 | allejo | not sure what's up with yours then. i just did a hard reset on a clone of your fork and that fixed it for me |
20:15.31 | JeffM | there we go |
20:15.33 | JeffM | spaces |
20:15.36 | JeffM | extra spaces |
20:16.03 | allejo | ? |
20:16.30 | JeffM | -- hard vs --hard |
20:16.49 | JeffM | -- hard gives no error made it look like it worked |
20:18.59 | allejo | huh didn't realize the extra spaces would work |
20:21.28 | allejo | for your PR branch, this should clean things up: git reset --hard upstream/2.4; git cherry-pick d1d1524851fc0aab3072827579f3d889814e97c5 |
20:22.23 | JeffM | I have another branch wiht it clean |
20:22.34 | JeffM | I can just do a PR for that |
20:22.59 | allejo | that works too |
20:23.10 | *** join/#bzflag BZnotify (~BZnotify@192.30.252.42) |
20:23.10 | BZnotify | [13bzflag] 15JeffM2501 opened pull request #91: upgrade to VC2017 (062.4...062.4.VC15_2017) 02https://git.io/vdat5 |
20:23.10 | *** part/#bzflag BZnotify (~BZnotify@192.30.252.42) |
20:24.09 | allejo | it's clean! |
20:24.39 | allejo | now, should `<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>` be the minimum windows version we support or does that not matter? |
20:25.04 | JeffM | no, it's just the SDK used |
20:25.35 | *** join/#bzflag BZnotify (~BZnotify@192.30.252.42) |
20:25.36 | BZnotify | [13bzflag] 15allejo closed pull request #90: Upgrade projects to VC15 (2017) (062.4...062.4_VC2017) 02https://git.io/vd2Au |
20:25.36 | *** part/#bzflag BZnotify (~BZnotify@192.30.252.42) |
20:25.40 | JeffM | bzflag doens't use any of the APIs that don't exist on older stuff |
20:25.54 | JeffM | I mean it doesn't suport XP |
20:25.58 | JeffM | but why would you want to do that? |
20:26.16 | JeffM | it'll run fine on vista+ |
20:26.29 | JeffM | just as a developer you'd have access to the win10 apis |
20:26.53 | JeffM | the installer would need to be upgraded too, with the 2017 runtimes |
20:28.10 | allejo | ah that makes sense |
20:50.32 | JeffM | ugg.. you did it all in header.... |
20:50.37 | JeffM | you'd love boost ;) |
20:51.46 | JeffM | hmm you kill to observer.. I undrstand why but it's not ellegant |
20:52.21 | JeffM | also not sure why you need to call add and remove |
20:56.01 | JeffM | yeah looking at client code, MsgAlive doesn't require the player to be dead |
20:56.16 | JeffM | so you can use that to zap anyone anywhere |
20:58.07 | JeffM | allejo: how does observer to real team work? |
20:59.42 | allejo | for players that sit on obs for a while, swapping them to a real team would cause them to get idle kicked. so the workaround there is to mark them as alive so I can update their idle time to 0, and then mark them as dead so they can spawn |
20:59.56 | allejo | if I left them marked as "alive" they wouldn't be able to spawn |
21:00.10 | JeffM | what message tells the client it's ok for them to request a spawn? |
21:00.56 | JeffM | is to/from observer what you mostly use it for? |
21:01.34 | allejo | well i used it for both to even out unfair teams and to move players to observer without kicking them during timed matches such as Last Tank Standing |
21:02.06 | allejo | from observer to team i've never really used other than players doing it through a slash command |
21:02.07 | JeffM | what happens on a client if it gets a team message but is not dead? |
21:02.58 | allejo | a team message but is not dead? they'd get the message...? |
21:04.39 | JeffM | and what would the client do? |
21:04.51 | JeffM | wold it change the team in the local player record? |
21:05.22 | JeffM | did you map the code path on the client for all the messages you send? or are you just relying on the kill to handle it all? |
21:08.29 | allejo | can't say I really looked into how the client handled the messages, was more so trial and error. if a client is alive and is swapped from real team to real team, the client handles it fine. it's just confusing for players that they're suddenly on a new team |
21:09.26 | allejo | i can't take credit for it either, was based off Murielle's work. i just cleaned up a tad and fixed some odd issues |
21:23.01 | JeffM | took it, cleaned it up, packaged it in a way that made more people use it and think it would exist forever ;) |
21:24.37 | allejo | isn't that the Microsoft motto? |
21:24.57 | JeffM | yeah but they put it in a real API ;) |
21:24.59 | JeffM | you did not |
21:25.20 | JeffM | they do end up with a TON of backend code for compatiblity in old API stuff |
21:25.38 | JeffM | but that's the point of the API, so the people working on the core code KNOW that there is an expected interface. |
21:25.48 | JeffM | I could break your code by changing the signature to addPlayer |
21:25.52 | JeffM | all my code would work fine |
21:26.12 | JeffM | because I would not know that your random whackass plugin was calling it too |
21:26.44 | JeffM | but if it was in the API, I'd break the API code in bzfs and SEE that it has an expected signature |
21:27.30 | JeffM | any work on server side players could have busted those functions |
21:27.43 | JeffM | you are just lucky bzflag is dead and nobody changes anything |
21:27.54 | allejo | yup |
21:28.14 | allejo | i mean, if it were alive then i'd probably put more effort into getting a cleaner/proper solution |
21:28.51 | JeffM | what message changes the team? |
21:29.02 | JeffM | playerINfo? |
21:29.07 | allejo | i kinda just wanted a single location of helper functions. up until now, no one else has used my header files that I know of |
21:29.21 | JeffM | there is a lib we publish |
21:29.26 | JeffM | for helper functions |
21:30.01 | JeffM | plugin_utils |
21:30.11 | JeffM | thats where stuff should go |
21:30.34 | JeffM | change that all you want, it's a static lib IIRC, no binary compat needed. |
21:31.38 | allejo | there are some stuff i eventually intend on moving to there, just lack of interest |
21:32.13 | allejo | the change team functionality had been brought up before but since it was a wonky hack, it was turned away. so i just moved it to its own thing |
21:32.13 | JeffM | MsgAddPlayer |
21:32.42 | JeffM | how many plug-ins that people HERE care about use the team functionality? |
21:33.28 | allejo | realistically, probably only Last Tank Standing |
21:34.00 | JeffM | and it sends people to observer? |
21:34.03 | allejo | yup |
21:34.16 | allejo | team balance was used too, but then i went and broke it on accident |
21:34.18 | JeffM | does it change real teams? |
21:34.46 | allejo | team balance, did. lts, just playing team to observer |
21:35.36 | JeffM | hmm, I wonder how you are getting around this in the client, printError ("Server error when adding player, player already added"); |
21:36.45 | allejo | isn't that why the player's removed first? |
21:36.52 | JeffM | probably |
21:37.05 | JeffM | geenrates a lot of chat spam I'd guess |
21:37.39 | allejo | just displays a part + join message |
21:37.48 | JeffM | thats what I mean |
21:37.53 | allejo | same as a rejoin, just with no inconvenience to the player |
21:38.09 | JeffM | on a rejoin they don't see the chat spam :) |
21:38.14 | JeffM | since they are disconnected |
21:38.33 | allejo | what chat spam are you referring to? seeing themselves part and join? |
21:38.34 | JeffM | yeah, I would not put that in the real API |
21:38.37 | JeffM | yeah |
21:38.47 | JeffM | I'm imagining a case where everyone was pushed to observer |
21:38.50 | JeffM | like if a match ended |
21:38.58 | JeffM | that'd be several lines per preson |
21:39.41 | allejo | you see yourself joining (iirc) when you connect to a server. not sure about parting though |
21:39.53 | allejo | and well yea, that's the same for a /superkill |
21:39.56 | JeffM | you get a different message |
21:40.02 | JeffM | another stupid message :) |
21:40.28 | allejo | i'm sticking to the theme of stupid messages ;) |
21:41.03 | JeffM | well if it was up to me blast007 I'd break it now, so that people would have time to come up with the new API functions they'll need for the next version. |
21:41.10 | allejo | but yea, this is the same conclusion that was reached last time this was brought up (don't add it to the real API). hence my making it it's own thing with no guarantees that it'd always work |
21:41.17 | JeffM | since it's well known that NOBODY is going to test anything |
21:41.42 | JeffM | allejo: except it won't always work, like I said, I change addplayer to take another arg, and you are boned. |
21:42.01 | JeffM | you've FORCED addPlayer to be a real API function |
21:42.25 | JeffM | it's going to get broken |
21:42.32 | allejo | i know, hence this being a hack |
21:42.44 | JeffM | the question is do you want it to break on known terms or just randomly somtime later? |
21:43.43 | JeffM | it's a published hack, that's the problem, that makes it more than just a hack a person knows about |
21:45.05 | allejo | i'd prefer to know when it's broken, so if there's a workaround I could make a note of it |
21:45.25 | JeffM | cool, blast007 break it now :) |
21:47.44 | blast007 | lol |
21:48.32 | JeffM | Damned millennials messin up the sanctity of my API. |
21:48.45 | allejo | :p |
21:49.18 | JeffM | get a job |
21:49.32 | allejo | wanna hire me? |
21:49.39 | JeffM | we had an opening |
21:49.56 | JeffM | I think there is one in San Diego |
21:49.59 | JeffM | like for serious |
21:50.41 | allejo | close to finishing school, so gotta do that before i can freely explore options |
21:50.51 | JeffM | that is wise |
21:51.19 | allejo | :D |
21:51.32 | JeffM | yeah , SD is hiring a few software engineers |
21:52.03 | JeffM | and some project managers |
21:53.51 | allejo | what was your location hiring for? out of curiosity |
21:53.57 | allejo | same thing? |
21:54.24 | blast007 | Would we need an equivilent of DLL_LOCAL here? https://gcc.gnu.org/wiki/Visibility |
21:54.26 | JeffM | Jr software eng |
21:54.46 | JeffM | blast007: you have that |
21:54.57 | JeffM | all the API headers are prefixed with the BZAPI #def |
21:55.08 | JeffM | it's already there and #defed as nothing for linux |
21:55.10 | blast007 | that's DLL_PUBLIC |
21:55.33 | JeffM | you can set the default visiblity in the build options to gcc so all unflaged things are local |
21:56.04 | JeffM | I'd not do two defines |
21:56.05 | blast007 | well, it looks like it's for hiding things that are inside an exported class, for instance |
21:56.09 | JeffM | yeah |
21:56.14 | JeffM | something the API doens't do |
21:56.17 | blast007 | k |
21:56.26 | blast007 | and I'm not gonna care about Cygwin ;) |
21:56.37 | JeffM | yeah I don't see why |
21:56.46 | JeffM | I had a branch that had the #def I liked |
21:58.54 | JeffM | guess I never saved it |
21:59.09 | blast007 | should just be changing the non-windows one to: #define BZF_PLUGIN_CALL extern "C" __attribute__ ((visibility ("default"))) |
21:59.14 | blast007 | plus modding the build system |
21:59.21 | JeffM | something like that |
21:59.32 | blast007 | dunno if clang has to be handled special |
21:59.47 | JeffM | none of the other subsystems like game or obstacle are built as .so files right? |
22:00.32 | blast007 | the only .so files in my build are plugins |
22:27.11 | JeffM | good then it should work fine |
22:27.42 | JeffM | but that would be somethign to remember, if you do end up wiht like a LibBZW.so, it too needs to export a clean API |
22:29.34 | JeffM | SDL and anything else that uses a DLL on windows should be good anyway |
23:07.21 | blast007 | Looks like Star Wars Battlefront 2 has anti-cheat code worse than BZFlag. At least we can (usually) detect people moving 3 times the normal speed. :P |
23:08.01 | JeffM | Security Third! |
23:08.48 | allejo | who's on first |
23:09.27 | blast007 | Zero |
23:34.26 | blast007 | k... so the visibility change didn't seem to do anything... |
23:35.16 | allejo | you forgot to chant, "ready or not. here i come!" |
23:46.59 | blast007 | -fvisibilty=hidden being passed to gcc for everything, and even without the change to bzfsAPI.h it all still builds...grr |