Dear Programmers, as you probably know there is a new test patch coming.
http://www.lfsforum.net/showthread.php?t=73874
Old InSim programs will still work with the new patch, but you can make use of some new functions.
1) Note the Track[6] fields will indicate the new configs like SO1X and FE3Y etc. Those two would indicate an open config using SO Classic Forward start grid / Fern Bay Gold Reversed grid.
2) New collision reporting. Please take a look at this packet specification and have a think about how you would use it, and if it needs any more info :
3) IS_MTC now can have up to 128 characters (including a zero at the end) in a variable sized packet. You can also specify the sound effect of the message and send a message to all connections with a single call.
4) I've had a look at EQ_Worry's suggestions in this post :
http://www.lfsforum.net/showthread.php?p=1337106#post1337106
Particularly suggestion (2) a traction control bit I'd like to include because that is something missing. And I'll have a look at (3). I have not studied them yet so I can't say for sure.
I really must keep any updates to the minimum, because I want to release the test patch as soon as possible so I can get back to the tyre physics. So if you have suggestions, please try to stick to very simple ones and think through how they would work.
Thanks
http://www.lfsforum.net/showthread.php?t=73874
Old InSim programs will still work with the new patch, but you can make use of some new functions.
1) Note the Track[6] fields will indicate the new configs like SO1X and FE3Y etc. Those two would indicate an open config using SO Classic Forward start grid / Fern Bay Gold Reversed grid.
2) New collision reporting. Please take a look at this packet specification and have a think about how you would use it, and if it needs any more info :
// CONTACT - reports contacts between two cars
// =======
struct CarContact // Info about one car in a contact - two of these in the IS_CON (below)
{
byte PLID;
byte Info; // like Info byte in CompCar (CCI_BLUE / CCI_YELLOW / CCI_LAG)
byte Sp2;
byte Speed; // m/s
byte Direction; // car's motion if Speed > 0 : 0 = world y direction, 128 = 180 deg
byte Heading; // direction of forward axis : 0 = world y direction, 128 = 180 deg
char AccelF; // m/s^2 longitudinal acceleration (forward positive)
char AccelR; // m/s^2 lateral acceleration (right positive)
short X; // position (1 metre = 16)
short Y; // position (1 metre = 16)
};
struct IS_CON // CONtact - between two cars (A and B are sorted by PLID)
{
byte Size; // 32
byte Type; // ISP_CON
byte ReqI; // 0
byte Zero;
byte Closing; // the closing speed of the collision in m/s (suggests severity)
byte Sp1;
byte Sp2;
byte Sp3;
CarContact A;
CarContact B;
};
3) IS_MTC now can have up to 128 characters (including a zero at the end) in a variable sized packet. You can also specify the sound effect of the message and send a message to all connections with a single call.
struct IS_MTC // Msg To Connection - hosts only - send to a connection / a player / all
{
byte Size; // 8 + TEXT_SIZE (TEXT_SIZE = 4, 8, 12... 128)
byte Type; // ISP_MTC
byte ReqI; // 0
byte Sound; // sound effect (see Message Sounds below)
byte UCID; // connection's unique id (0 = host / 255 = all)
byte PLID; // player's unique id (if zero, use UCID)
byte Sp2;
byte Sp3;
// char Text[TEXT_SIZE]; // up to 128 characters of text - last byte must be zero
};
4) I've had a look at EQ_Worry's suggestions in this post :
http://www.lfsforum.net/showthread.php?p=1337106#post1337106
Particularly suggestion (2) a traction control bit I'd like to include because that is something missing. And I'll have a look at (3). I have not studied them yet so I can't say for sure.
I really must keep any updates to the minimum, because I want to release the test patch as soon as possible so I can get back to the tyre physics. So if you have suggestions, please try to stick to very simple ones and think through how they would work.
Thanks