It is already possible to /spec, /kick & /ban with InSim so I don't see problem here. If function is powerful enough to be useful it can also be abused. If somebody decides to spam buttons, then just leave that server...
And few more ideas:
How about possibility to position button also relative to existing HUD elements? For example, so that Y position is given with normal 0-200 coordinate, but in X direction button is placed as much right or left as possible, without covering HUD (X = some magic number > 200). In this case also makes sense to have button size defined as I proposed above (coordinate + size instead of pair of coordinates), as one coordinate is not known to InSim program.
Another idea is adding button to Escape menu, for easy access to InSim program without cluttering the screen. Could be enabled with IBtn.ClickID = some number > 159 in IS_BTN.
Also I don't see way to show same button on all connections? Maybe a flag in IBtn.BStyle to make button show on all connections, including those made after defining a button. So to say, a persistent button.
OK that's all I can think of right now, hope that some of my ideas are helpful.
I guess it would be useful if InSim programs could create screen with multi-line text field, like one that pops up when hires skins are enabled in Options/misc. Also with OK/(optional?)cancel buttons. Could display there for example help text for InSim program.
Only problem I can think of is if you have limit on packet size, then text could be split to multiple packets.
Edit: doh, of course there's packet size limit, as byte is used for it.
Few more thoughts... maybe slightly better would be to define button with top left coordinates X, Y and size X, Y. Also way to delete all buttons at once could be useful, perhaps with MaxType = 0; ClickID = 255.
Small problem. If I start my InSim prog (which is ATM console program and doesn't create window itself) with /exec command in autoexec.lfs, LFS loses focus. Tried to use "/exec start /MIN prog.exe" to start it minimized, but then I get "Parameter is not valid".
Perhaps would make sense for /exec command to run programs in such way that LFS doesn't lose focus?
New InSim is so good that I just had to finally start coding. So far everything I have tried works as InSim.txt says, no bugs encountered. Had a little idea though.
How about making interval of LFS sending keepalive TINY_NONE customizable? Perhaps max (and default) 30 sec as it is now, min 1 sec, set with small packet if needed. Lazy me would like this a lot. This way InSim client could have timing without any extra effort, just with packet reading loop. I think it makes sense if "master" program provides timer for "slaves", no?
Edit: well, I guess it's silly suggestion, caused only by my lazyness... Have implemented nice timer myself now.
This not directly related to InSim, but driver can't see RCM while being shown yellow/blue flag? Blue flag can be on for long time, so basically there's no guarantee that message will be seen?
Well it's simple really... Why? Cause the law says so. If citizenship goes by jus sanguinis, then there are reasons for that. Citizenship is not one of human rights.
I'm quite sure it's not much different than here in Estonia, and you can ASK for citizenship and get it proving you can speak language, know something about laws and culture and are loyal to Latvia. Have you problem with any of that?
Anyway, your position as second generation immigrant is of course unfortunate, but you cannot blame latvians for that...
(All this assuming you don't have citizenship - as what other rights you can be demanding?)
Anything you may call "discrimination of russians" is direct consequence of this kind of attitude. Latvians are at home in this country. You are not. You can't just demand same rights as they have. Do you even speak latvian?
You wouldn't be posting to internet forums then...
But obviously you have no respect for country you live in! In your post you just repeat what Russian propaganda is telling you, i.e. (Soviet) Russia liberated Baltic states and also brought culture etc. All lies...
Unfortunately Scawen thinks that you're not supposed to actually drive in this view. I still hope he will change his mind on some nice day, and add mirror/look back.
I get rather odd results when trying to run following script, like "A new guest is connecting" messages appearing, and that in single player mode.
ai AI 1 ai AI 2 ai AI 3 ai AI 4 ai AI 5 ai AI 6 ai AI 7 ai AI 8 ai AI 9 ai AI 10 ai AI 11 ai AI 12 ai AI 13 ai AI 14 ai AI 15 ai AI 16 ai AI 17 ai AI 18 ai AI 19 ai AI 20
Also, if script has just 20 times "ai" (without names), only one AI driver is actually added.
Edit: Tried once more, now also crash with this, address 47ec4f (W10).
Hmmm... I still have drive through if I got 30 sec penalty in first place? Kinda doesn't add up.
Anyway, thought about it again looking at InSim, now we have time penalties carved into stone as 30/45 seconds everywhere (translations, InSim, etc.), but wouldn't do any harm to have penalties more flexible, and possibly configurable? Like have 2 types of penalty, time & pitlane. Time penalty could be any number of seconds (in reasonable limits of course, one byte enough), and pitlane penalty would also have time value (possibly same byte?) - the time to stop. If that's zero, then it's drive through, otherwise stop'n'go.