The online racing simulator
InSim Bug Report / Update Request
2
(38 posts, started )
You broke LFS.
Quote from JPeace :sorry for bump.

but jpeace what?

There was a bug, and you happened to invoke that bug on a server that was noticed by another programmer, that reported it to the devs, and we are now here. Basically, yeah, you did partake in the breaking of LFS.
Quote from EQ Worry :Looking forward to a fix and maybe some other InSim/OutGauge additions.

I've done the fix and cleaned up the code in that area. So that will be in the next patch - I don't know when that will be.

I've made a note of your InSim improvement requests, along with other things I want to do. But those things are all a bit low priority compared with getting the physics out.

Quote from JPeace :sorry for bump.

but jpeace what?

Your name just came up in a log file posted above, it was an example of how a certain LFS bug could come up, which I have reproduced and fixed now. It seems that you probably caused this bug to appear by trying to join the race twice in quick succession (unintentionally). One way would be if you pressed SHIFT+J twice when you were in the ESC menu.
Heya Scawen,

I know these aren't on your priority list, but there is still a bug in OutGauge that's been around for a while, plus an error with the OutGauge DL_x flags in InSim.txt.
  • If you set the OutGauge ID in cfg.txt, it is always reported as 0 (zero) in the OutGaugePack no matter what it's set to (OutSimPack works fine).
  • The enum provided for the DL_x bits in InSim.txt appears to be incorrect (see thread).
Just thought I'd report these in case you missed them in the forum hubris.
Quote from Scawen :I've done the fix and cleaned up the code in that area.

Superb, thanks!
Quote from DarkTimes :Heya Scawen,

I know these aren't on your priority list, but there is still a bug in OutGauge that's been around for a while, plus an error with the OutGauge DL_x flags in InSim.txt.
  • The enum provided for the DL_x bits in InSim.txt appears to be incorrect (see thread).

I thought so too, but it's not a bug, see me
OK thanks, that's my bad then. The OutGauge ID thing does still seem like a bug, although I've never found anyone willing to try and duplicate it, so it's probably just me being dumb as well.
Quote from DarkTimes :If you set the OutGauge ID in cfg.txt, it is always reported as 0 (zero) in the OutGaugePack no matter what it's set to (OutSimPack works fine).

Thank you, I confirm I have reproduced and fixed this one.
Just thought of something, hope it's not too complex as I'd really love to see this implemented: Access to the LFS audio mixer via InSim (toggle sound categories on/off, load samples where appropriate, change values).

The reasons being that it allows
  • to automatically adjust the sounds for certain players, instead of tabbing through the players and manually assigning individual sounds. *
  • to disable sounds an external program is taking care of, without the hassle of doing it manually everytime you leave pits. For example disabling everything on your own car except Starter, Wind and Skid when CSR is used.
* Probably one of the least known, yet most awesome features of LFS!

Packets could look like this:
enum // the fourth byte of an IS_SMALL packet is one of these
{
SMALL_NONE, // 0 : not used
SMALL_SSP, // 1 - instruction : start sending positions
SMALL_SSG, // 2 - instruction : start sending gauges
SMALL_VTA, // 3 - report : vote action
SMALL_TMS, // 4 - instruction : time stop
SMALL_STP, // 5 - instruction : time step
SMALL_RTP, // 6 - info : race time packet (reply to GTH)
SMALL_NLI, // 7 - instruction : set node lap interval
[B]SMALL_SMF, // 8 - instruction : send Sound Mixer File info[/B]
};

struct IS_SMF // Sound Mixer File (.eng)
{
byte Size; // 40
byte Type; // ISP_SML
byte ReqI; // ReqI if replying to a request packet (SMALL_SMF)
byte Zero;

byte PLID; // player's unique id

byte Spare0;

char ENGFile[32]; // last byte must be zero
word Toggle; // bit 0 = exhaust, bit 1 = turbo, bit 2 = dumb valve, etc.
};

// You can obtain an SMF for a given player in the race using the following SMALL:

// ReqI : non-zero (returned in the reply)
// SubT : SMALL_SMF (Sound Mixer File)
// UVal : PLID


struct IS_SMV // Sound Mixer Values
{
byte Size; // 36
byte Type; // ISP_ISM
byte ReqI; // usually 0 / or if a reply : ReqI as received in the TINY_ISM
byte PLID;

byte CockpitMuffling; // / 100.0f

byte ExhaustPulseTone; // +100 / 100.0f (0 = 1.00, 200 = 3.00)
byte OffPowerTone; // / 100.0f
byte OffPowerVol; // / 100.0f
byte IdleVolBoost; // / 100.0f
byte Uneveness; // / 100.0f
byte ExhaustPipeTone;
byte ToneVariation; // / 100.0f
byte HeaderMix; // / 100.0f
byte CollectorMix; // / 100.0f
byte TailMix; // / 100.0f
byte Silencers; // / 100.0f
byte ExhaustVol; // / 10.0f

byte TurboPitchBase; // * 1000 (Turbo recorded at x RPM)
byte TurboMuffler; // / 100.0f
byte TurboVol; // / 10.0f

byte DumpValveMuffler; // / 100.0f
byte DumpValveVol; // / 10.0f

byte GearWhinePitchBase; // * 100 (Gear whine recorded at x RPM)
byte GWMuffler;
byte GWVol; // / 10.0f

byte AirIntakeMuffler; // / 100.0f
byte AirIntakeVol; // / 10.0f

byte GearShiftMuffler; // / 100.0f
byte GearShiftVol; // / 10.0f

byte StarterMuffler; // / 100.0f
byte StarterVol; // / 10.0f

byte WindVol; // / 10.0f

byte SkidVol; // / 10.0f

word Toggle; // bit 0 = exhaust, bit 1 = turbo, bit 2 = dumb valve, etc.

byte Spare0;
};

Edit: I'd also like to see a periodic camera position packet, like OutGauge and OutSim. It'd also be great to get OutGauge and OutSim information for all cars instead of just the one the ingame camera is focused on.
Quote from morpha :
Edit: I'd also like to see a periodic camera position packet, like OutGauge and OutSim. It'd also be great to get OutGauge and OutSim information for all cars instead of just the one the ingame camera is focused on.

+1 to both suggestions.

@EQ Worry: Any chance you could consolidate all the suggestions in the OP?
Quote from morpha :Edit: I'd also like to see a periodic camera position packet, like OutGauge and OutSim. It'd also be great to get OutGauge and OutSim information for all cars instead of just the one the ingame camera is focused on.

Wouldn't this be possible by requesting the camera packet be sent every X time? I haven't done much camera work with the connection but I remember reading that you can request the camera packet, and that alone can allow you to get periodically. I don't know what periodic camera output would be useful for, periodic camera input certainly useful for sliding cameras and things.

As for OutGauge/OutSim those are locked to the player car for security reasons, retrieving somebodies fuel load settings and stuff like that can possibly be a breach of security. There have been times when I wanted to know fuel loads also, but I believe it is designed this way so that people can not see specific information about their race strategies.
Quote from blackbird04217 :
As for OutGauge/OutSim those are locked to the player car for security reasons, retrieving somebodies fuel load settings and stuff like that can possibly be a breach of security. There have been times when I wanted to know fuel loads also, but I believe it is designed this way so that people can not see specific information about their race strategies.

For one, OutGauge/OutSim packets are not "locked" to the player's car; you can get OutGauge/OutSim info from any car as long as it has focus. Furthermore, fuel load is already omitted from packets for all but the player's car and he's not asking to change that.
I didn't realize the you could get OutSim/OutGauge packets from any car except for a players car, that was my own misunderstanding then.
2

FGED GREDG RDFGDR GSFDG