TINY_VTE (Vote Expand), which cancels vote action (SMALL_VTA) but preserves all those votes casted (unlike the TINY_VTC, which cancels the vote completely), therefore we can increase the required votes percentage to any amount we want.
I am going to use it to filter laps to clean and non-clean categories in server stats.
By saying trivial, I meant just to send the packet whenever the drag gets to non-zero level. We could filter it up to 1..3% of the difference slipstream does to the car acceleration... There is also some need to exclude too short periods, like 10msecs or something like that.
Could we get slipstream value into IS_HLV::HLVC? It would let developers throw the burden of calculating the slipstream themselves (which we implement just by common sence, since there is no precise data on how it actually works in LFS). Also it would save quite a lot of bandwidth.
Scawen, you should add debug print to dcon which prints actual content of that spare byte in IS_ISI, in case some of old insim programs have some uninitiated garbage there instead of 0
It is not pointless one! If he ends up editing setup after his car was already on the track, he will abuse the restrictions we want to enforce, so we need that extra final JRR
Regarding the /ujoin, I think we could go the way we are... If the car is not ready (being in pits, changing settings) to join the track, from the insim you can tell it, and you can either ignore it (so he likely fails the start) or you can spectate him alltogether and alert him to join at the end of the grid.
EDIT:
I think, that making us able to see (from insim) if the car is joined being in pits (send IS_PLP), would be enough regarding the JRR stuff. So that if the car is not ready (being in pits, changing settings) to completely join the track, from the insim you can tell it, and you can either ignore it (so he likely fails the start) or you can spectate him alltogether and alert him to join at the end of the grid.
The symmetry with set/query packets is a good thing indeed. Currently I have to pack the command like ALL-XFG-UF1 if I want to set more cars than admin command packet can contain
So, yes, better to have both set and query packets.
I can bring here 2 other people who encountered this problem in some way. 1 car servers are used quite often in leagues. Wouldn't it be much more convenient to just configure server /cars and /track and start everything up neither than having to keep in mind how to deal with your tracker of choice?
Bitmap sounds flexible, although it will take atleast 32 bytes packet to suffice the whole possible range. With range based packet, you're enough with just 2 bytes. And, I guess, most of the time you still create and destroy buttons by some bunch amounts, which typically occupy consecutive ranges, so you could try to book keep them and use the range destroy packet.
Also, yet another request:
Can we have a packet enumerating allowed cars on the server? This will be really nice, because that way my app could automatically detect what car to show with !top command.
It was already annoying with Airio, when you came to some server and typed !top, seeing XFG top, while server has only BF1 enabled. There is workaround in Airio, but it requires server admin to take some actions (which they are lazy, or too busy to do), which ends up with lots of regular players experiencing this problem.
1.5.0 + Added quiet mode for events (!quiet to start, !notquiet to end) -- no chat spam and commands stop working for non-admins + Setup restrictions added -- can forbid traction control, automatic gears and can set the types of clutch control allowed + Updated translations. Thank you translators. - Renamed !quit to !shutdown - Now you need to strip '.example' part from config.ini.example and servers/srv1.ini.example when installing for first time. Updates are now easier, as you can just unpack everything to your installed lfstop folder and it's done. - Fixed warning being sent for wrong conditions
To make it clear, initially I thought that it would be possible to just send the IS_NPL and depending on response either put car on track or not. Then I saw we can't do it.
Also it will break compatibility with older insim programs -- say we run Airio and another program which does make use of this new feature.
So my current suggestion would be to have the new IS_RQJ packet being an exact full copy of the IS_NPL. This way old programs would just ignore RQJ and get only NPL, working as before.
In the IS_RQJ we need everything from the IS_NPL, in order to decide if we let driver join (need to check all the flags, game config, ... -- button clutch, restrictions, traction control, abs...)
I think you rather should not introduce whole new packet and use the IS_NPL. So we send IS_RQR in answer to IS_NPL.
Yet another request
Also, have you looked into other changes requests? https://www.lfs.net/forum/thread/88125 -- [RFC]TINY_AXM to request IS_AXM packets at any time -- this one will make LFSLazy splits prediction/comparison bar work on open config tracks.
Well, you can set FO8 to be lot easier than WR setups. So I hope that's the setup thing here. Will wait until they get car set up functionality back into the game, and then we can tell more.
I felt some severe input lag when driving, but can't tell if it's due to my potato PC (running on processor graphics atm). But force feedback was really nice, that's the key point for me. Need much more testing until I can say if I like it better than AC for example
That would be a bit less effort if we can have insim packets for this. The best is to have ability to send an insim packet, which has minimum and maximum setting for each value of car setup for each driver (say, we send it when driver connects). That would be the most flexible way possible: you can make special championships when people can choose what to improve in the car, and also we can have custom cars that way, etc. Also it would be nice to have sliders in insim
And basically it would be at least around 132 (setup file size) * 2 + 4 (header size) == 272 bytes size, which is already bigger than 256. That will require some (not too hard tbh) magic in insim format, since currently every packet has only 1 byte for size, so max size is 256.
Anyway, that does require a lot of work, and for those who really need such functionality, they could just RIP the set on the fly and spectate people if setup doesn't conform.