The online racing simulator
LFSLazy
(1353 posts, started , go to first unread)
My eyes agree this window ! Good job Daniel ! Thumbs up

EDIT : Can you please make the main window resizable in width ? Smile
Well, you can also remove spaces before punctuation marks ("Current version: 41", "More..."), because normally you don't have spaces in front of punctuation marks.
Yeah but no, that's ugly as f*ck, I prefer the french standard (with space before punctuation. Big grin
Now I'm thinking to add checkbox "Check for update on start" to that window. Maybe also "Auto update" that would update LFSLazy without even bringing this window to front and any user interaction.

Quote from nacim :
EDIT : Can you please make the main window resizable in width ? Smile

Window is resizable only when you enable Chat - History. Yeah, I agree its awkardly tiny when history is off. I will make it a bit wider when the history is off, so that you can see full title.

Quote from vitaly_m :Well, you can also remove spaces before punctuation marks ("Current version: 41", "More..."), because normally you don't have spaces in front of punctuation marks.

After checking couple of programs I can confirm "no space" is more normal. To be honest same thing for me. Maybe we should make a poll Big grin
Quote from DANIEL-CRO :Now I'm thinking to add checkbox "Check for update on start" to that window. Maybe also "Auto update" that would update LFSLazy without even bringing this window to front and any user interaction.

That's more a thing to set on the option menu rather than the update window.

Quote from DANIEL-CRO :Window is resizable only when you enable Chat - History. Yeah, I agree its awkardly tiny when history is off. I will make it a bit wider when the history is off, so that you can see full title.

That would be great.

Quote from DANIEL-CRO :After checking couple of programs I can confirm "no space" is more normal. To be honest same thing for me. Maybe we should make a poll

It seems to be the English standard, so I guess it's better to do it like this.
New button system (?)

As it is the case with almost any InSim application, LFSLazy also use InSim buttons. Button system in LFS does a great job and yet it's simple enough. However, there are certain limitations while using it, for example, you can place only up to 240 buttons. That may seem like a lot to some, but surely it's not enough from the programmer's side when you want to show a lot of data.

A few months back, I started working on my own button system using LFSLazy overlay (like Radar and Dashboard work). I've put it on hold because of other personal obligations. With the recent design suggestions by nacim, we continued to talk on PM and he reminded me of overlay potential, so I've decided to get my button system near the finish.

The new button system has much more options than standard InSim one, for example:
  • unlimited number of buttons
  • complete control over the position on screen to a pixel
  • background and text color can be selected from a full range of colors and alpha (ARGB) for each button separately
  • possible to use different fonts
LFS color code handling is implemented as well and it can draw borders around buttons from full ARGB range. Firstly, I wasn't that satisfied with the performance, after some optimisations and testing I actually think it does a great job now. For example, pure LFS at same scene gives me 133 FPS, using my button system I get 126 FPS and using InSim 125 FPS. When buttons aren't that filled with text, it performs much better than InSim's one.

Sure thing, many great things come with this, but what I'm worried about is that there are still some people that have problems running LFSLazy overlay. I'm not sure that I will be able to help them. If they cannot use Radar or Dashboard (run LFSLazy overlay), they won't be able to use new button system. If I decide to move to the new system that will leave them disabled.

About moving to a new system, it can be easily be done using a wrapper function. It will take some time to make all code take the full functionality of a new system. Many great animations can be done, fade in or out on a group of buttons for example, but have in mind once I move to a new system there is no move back. Here is a screen shot of gadgets drawn using the new button system:

Attached images
new button system.JPG
Hehe, it looks nice for a start, keep it up ! Smile
And thanks for the credits bro. Thumbs up
New update to support 0.6H3 Smile

New button system is disabled, but here is one more screenshot where I draw borders around buttons as well.
Attached images
2015-06-30 21-12-32.231.jpg
Quote from DANIEL-CRO :New update to support 0.6H3 Smile

New button system is disabled, but here is one more screenshot where I draw borders around buttons as well.

Are you gonna do them rounded and with configurable transparency?
Also text shadow is must have here, because then you don't need those button backgrounds opaque too much.

Also, apparently it looks like you're able to draw transparent stuff O_o. Then why don't you make car radar opacity configurable? I had to make it really small, otherwise I can't read some important stuff on F12 menu (like amount of fuel to put on pitstop). And by the way, you can make yet another option to reduce radar opacity while in F12 mode.
My win 8.1 erros some time Frown pls help
what did the message say? (i can't help but if you post about an error then you will need to post what the error says)
Quote from vitaly_m :
Quote from DANIEL-CRO :New update to support 0.6H3 Smile

New button system is disabled, but here is one more screenshot where I draw borders around buttons as well.

Are you gonna do them rounded and with configurable transparency?
Also text shadow is must have here, because then you don't need those button backgrounds opaque too much.

Also, apparently it looks like you're able to draw transparent stuff O_o. Then why don't you make car radar opacity configurable? I had to make it really small, otherwise I can't read some important stuff on F12 menu (like amount of fuel to put on pitstop). And by the way, you can make yet another option to reduce radar opacity while in F12 mode.

Still not sure how to efficiently draw rounded buttons. Each button already have different transparency (alpha).
Here is how my button update function look like:
Quote :void Txt(char *Group, int ID, D3DCOLOR bkg, D3DCOLOR border, float L, float T, float W, float H, D3DCOLOR txtclr, UINT Style, char *text, ...)

Text shadow - good idea especially for split info, noted! One thing though, should I allow myself to choose once again another color for shadow, or maybe to just invert text color? I already see myself having lots of problems designing menus with so much options.

Regarding Radar opacity, I made it now reduce opacity of everything drawn by the radar by 50% if you are in F12 menu and center of your radar is bottom right part of screen.

Quote from racer55556232 :My win 8.1 erros some time Frown pls help

Quote from k_badam :what did the message say?

Exactly, we can't help you if we don't know the error
Little update regarding text shadow. Smile
Attached images
no shadow.png
shadow.png
Definitely waiting to test it out. Wink
Thank´s is work really thanks Big grin
Update 43!

Changes:
Radar - cars temporary red after crash
Support for 0.6H4

Regarding new button system... There is a new option Other->Options->Use overlay buttons. Checking that checkbox will enable new button system, but first you must restart your LFSLazy.
Don't expect miracles, for now only gadgets, gadget editor, split info are drawn using new buttons. Still lot of stuff is not functional. This is probably the hardest way of them all to implement new button system, but good thing is it will keep current InSim menus intacted. If you notice any problems with InSim menus please inform me.
If you do not check this option LFSLazy should remain as it is.

BTW: As there isn't button limit in new button system, there isn't 19 gadgets limit anymore (while using new button system).
There are more and more open config usage in events these days, so I am here again with couple more ideas on how to identify the tracks.

First is intercepting insim button packages. You can get track name from airio powered servers by passing !tr message packet and then intercepting the response (which is either buttons window with track name or just message in the chat).

Another way which doesnt require airio or any tracker on server, is using md5sum or any similar hashing algorithm on the layout. You can get the layout info by setting ISF_AXM_LOAD in the IS_ISI packet. Then you collect whole layout into some buffer and then calculate hash sum of the resulting buffer. That way you will get unique ID for every possible track.

And lastly, it would be nice to simply be able to enter track name manually to LFSLazy until we come up with something proper here.
There is a little enhancement you can do. When I have UI center shift + UI scaling I get somewhat funny result with LFSLazy interface. (pic 1)

In the main LFS screen it causes buttons highlight to work wrong, while clicking is alright (it clicks the button under cursor, not the highlighted one). (pic 2)

And when I tune the buttons I get significant offset in the lower part of the screen. (pic 3)
Attached images
lfs_00000045.jpg
lfs_00000046.jpg
lfs_00000047.jpg
DANIEL-CRO

Hi. Can a ask something ? Smile There is no way to use gauges for android platform phone ? I mean make and edit program like this (witch use OutGauge data) : LFS Dashboard

For example: I create gauges for XRT and i want to use it in my phone too. Of course if it's possible to edit future like this... This will be greatest thing ever Smile
Quote from vitaly_m :There are more and more open config usage in events these days, so I am here again with couple more ideas on how to identify the tracks.

First is intercepting insim button packages. You can get track name from airio powered servers by passing !tr message packet and then intercepting the response (which is either buttons window with track name or just message in the chat).

Another way which doesnt require airio or any tracker on server, is using md5sum or any similar hashing algorithm on the layout. You can get the layout info by setting ISF_AXM_LOAD in the IS_ISI packet. Then you collect whole layout into some buffer and then calculate hash sum of the resulting buffer. That way you will get unique ID for every possible track.

And lastly, it would be nice to simply be able to enter track name manually to LFSLazy until we come up with something proper here.

Using !tr isn't that good idea because it will bring Airio's track menu to front without user requesting it and packet intercepting isn't something I'd like to deal with.

Checking layout data is more on my mind. I'm not sure that I have any spare bytes in current pb files, so I'd have to make separate files for open configs which shouldn't be so complicated. My idea is to check position, heading of splits and finish line, because you probably wouldn't like your PB to be discarded just because one object was added/deleted.

But last way of handling open configs will not always work. Why? Because setting ISF_AXM_LOAD will not send layout data to InSim if you are connected to server at InSim start (there is no way to requesting layout). You'd have to either reconnect to server or wait for track change. This may seem pretty balan to you, but I know there will be people not carrying about such a stuff. Uhmm

Quote from vitaly_m :There is a little enhancement you can do. When I have UI center shift + UI scaling I get somewhat funny result with LFSLazy interface. (pic 1)

In the main LFS screen it causes buttons highlight to work wrong, while clicking is alright (it clicks the button under cursor, not the highlighted one). (pic 2)

And when I tune the buttons I get significant offset in the lower part of the screen. (pic 3)

I didn't even know that you can scale LFS interface Razz I will see what can I do, but not promising anything.

Quote from sti228 :DANIEL-CRO

Hi. Can a ask something ? Smile There is no way to use gauges for android platform phone ? I mean make and edit program like this (witch use OutGauge data) : LFS Dashboard

For example: I create gauges for XRT and i want to use it in my phone too. Of course if it's possible to edit future like this... This will be greatest thing ever Smile

I never made a phone app and for now I don't have such ambitions, sorry Smile
Pushed little update to support new 0.6H5 version. Smile

There are also some other nice changes, but not so usable at the time. One that is the most important is that Split Predictor can now work on open config tracks. However it will not always work, because there is no way to request layout data, LFS only send this data when layout changes. That means Split Predictor will not work right as you join a server, but you'll have to wait for a layout change after which it should work.

vitaly_m has started a thread regarding lack of TINY_AXM in InSim to request layout data anytime. Lets hope this will be implemented soon Smile
For some reason lazy stopped working for me on vista after the update "The procedure entry point K32GetModuleFileNameExA not found in the dynamic link library Kernel32.dll" (note: error message translated with google translate)
My issues with Overlay have gone now so no idea what it was.

Is it possible to have more than one acceleration statistic? So like 0-100mph, 0-150mph etc? Would be nice. Possibly some distance ones too like 1/4 mile, 1/2 mile, 1 mile times, but I suspect these are a nightmare to code.

Regardless this is still the best mod for LFS ever, and it's great to see the progress made. Great work!
Quote from henee96 :For some reason lazy stopped working for me on vista after the update "The procedure entry point K32GetModuleFileNameExA not found in the dynamic link library Kernel32.dll" (note: error message translated with google translate)

Can you please try downloading LFSLazy from the link in the first post and try it. I don't recall making any changes in code that could do that, maybe some settings changed. Uhmm

Quote from McGherkin :My issues with Overlay have gone now so no idea what it was.

Once again, absolutely no changes to code that deal with Overlay injection.

Quote from McGherkin :
Is it possible to have more than one acceleration statistic? So like 0-100mph, 0-150mph etc? Would be nice. Possibly some distance ones too like 1/4 mile, 1/2 mile, 1 mile times, but I suspect these are a nightmare to code.

Regardless this is still the best mod for LFS ever, and it's great to see the progress made. Great work!

Quite simple infact, my concern is actually how exactly to implement it without too much complicated settings. I guess having so much messages for all those events would be quite annoying sometimes, probably better would be to display times using a gadget.
For example two new gadgets "TIMER DISTANCE" and "TIMER SPEED". TIMER DISTANCE shows time needed to make 100, 200, 400, 1000m from a complete stop, and TIMER SPEED show time needed to achieve 50, 100, 150 kmph from a complete stop.
Perhaps make it configurable? So you can just type a number in and it measures to that speed/distance? Saves having buttons for 50,100,150 etc.

If you had a box for start speed too that would allow you to measure in gear acceleration too.

LFSLazy
(1353 posts, started )
FGED GREDG RDFGDR GSFDG