Resource icon

Other evoHUD 1.5.0

Login or Register an account to download this content
This new snapshot.

Before start AMS with this snapshot, run DBCreator to create database.

Important: For fixing problematic database search, I replaced on-the-fly search with compiled database. You need to run DBCreator on every time you install track or vehicle because of this modification.

Changelog:
  • added sqirrel preprocessor.
  • added DB_CarNumber.
  • added colorPicker, setTooltip, isItemHovered and getPressedButtonID API function.
  • added drawVeticalText and calcVerticalTextSize API functions.
  • added horizontal scrollbar option to beginWindow and beginChild.
  • improved delta bar appearance.
  • replaced on-the-fly data compilation with compiled database.
  • show version number.
  • fixed potential errors.
https://www.mediafire.com/file/7lswzthlqp4tvzw/evoHUD-snapshot364.7z
 
You need to run DBCreator on every time you install track or vehicle because of this modification.

replaced on-the-fly data compilation with compiled database.

Can't say that I think this is a good idea. Granted, it will probably be a bit less relevant now that AMS development is coming to an end, but I still don't think it's reasonable to expect regular evoHUD users to do something like this.

What kind of on-the-fly data does this relate to?
 
Can't say that I think this is a good idea. Granted, it will probably be a bit less relevant now that AMS development is coming to an end, but I still don't think it's reasonable to expect regular evoHUD users to do something like this.

What kind of on-the-fly data does this relate to?

I think this option is good for us who want to help him developing the hud, maybe for final release will be removed...or not?

@kenken great work mate!
 
Can't say that I think this is a good idea. Granted, it will probably be a bit less relevant now that AMS development is coming to an end, but I still don't think it's reasonable to expect regular evoHUD users to do something like this.

What kind of on-the-fly data does this relate to?
DBInfo parameters(car number, pit lane speed and etc) and track map aiw file. In on-the-fly, scan entire Locations and Vehicles to find proper files on every time enter session or when it needs. Of course, I can modify to update db automatically without external program, but it's not happen frequently.

Furthermore, this external database can complement to fill the parameters which we can't get because of encripted files(e.g. hdv ,tbc or etc).
 
Would it be possible to trigger the scan from the script (using a button or something) and have the new data loaded without having to restart the game?

Sorry I haven't been able to test any of the new features yet. Lots of shifts and kids now on school holidays so not much time free.
 
Would it be possible to trigger the scan from the script (using a button or something) and have the new data loaded without having to restart the game?
I don't understand what's the purpose for? These data is never change because they are defined in files except at AMS is updated or installed new track or vehicle but it never happen during game is running. Or do you ask about other things?
 
For simplicity to the user.

  1. User installs track.
  2. User forgets to run the dB update tool
  3. In game user finds missing track map or missing pit speed etc (message shown could be "Update of DB required")
  4. User can trigger update in-game without having to exit, run update, relaunch game and see if the problem is fixed
For ease of use having it automatically update is best. If that is not possible the in-game update is next easiest. Last would-be the user having to remember to do it or having to exit game and do it if they forget.
 
One thing I'm worried about is if user(or game?) doesn't have a write permission or privilege, auto update won't work. We can use my documents directory, but I don't know how to get proper directory corresponding user profile. Considering those, I think auto update if it works and notify to user if it doesn't work is only option. In any case, I think in-game manual update isn't necessary.
 
Welp, just spent several hours trying to find out how to use the registerController command properly, only to realize there's an example in the appendix of the API docs, and even though I did technically do it correctly, the reason it wasn't working for me was that I wasn't putting the controller instance name in quotes...:rolleyes:

So yeah, can confirm now it's working as expected and I can control widgets using the buttons on my shifter... :whistling:
 
This new snapshot.

Important: Due to database auto update, you need to (re)create database manually. Delete Plugins\evoHUD\evoHUD.db and create database with DBCreator.

If you don't need database auto update, modify 'CheckDBVersionOnly = 0' to 'CheckDBVersionOnly = 1' in evoHUD.ini.

Changelog:
  • added squirrel preprocessor.
  • added DB_CarNumber.
  • added colorPicker, setTooltip, isItemHovered and getPressedButtonID API function.
  • added drawVeticalText and calcVerticalTextSize API functions.
  • added horizontal scrollbar option to beginWindow and beginChild.
  • added auto update for database.
  • improved delta bar appearance.
  • replaced on-the-fly data compilation with compiled database.
  • show version number.
  • fixed various wrong database parameters.
  • fixed potential errors.
https://www.mediafire.com/file/48xpjx5auu9ae6m/evoHUD-387.7z
 
Hi @kenken. I'm finally getting to spend some time on evoHUD+ again. I have been playing with some of the many new features you added. Can you help.

I have the following line in initialise:
Code:
controller <- registerController("T.Flight Hotas X");
(just a test joystick I have)

Then I use the following to populate my debug table:
Code:
if(getPressedButtonID()){
    ::data["::buttonPressed"] <- getPressedButtonID()[0]+":"+getPressedButtonID()[1];
}

This all works fine. I get the joystick controller name by using DinputHelper.exe.

Can you think of anyway of getting a list of the controllers plugged in from within evoHUD so that controllers can be dynamically registered without the user having to edit the "controller instance name" in the registerController line of initialise.

Something like:
getControllers();
Returns an array of controller instance names.

Thanks.
 
Technically, there is no problem for implementing such function. But I can't guarantee to get always same controller order if multiple same controllers are plugged(I don't have tested in such condition). In that case, user will get confusion I guess, what do you think?
 
Yes had not thought of that. Is there any other variable that can be used. A unique ID or something that windows generates for the USB device maybe. If that is not possible then I guess the issue is present regardless of whether or not people have to enter the strong by hand or if a "getControllers();" function is created.

Another question:
getPressedButtonID() returns the array [device id, button id]. The button id returned is in decimal format.

The isButtonPressed() requires the button id in hexadecimal format. So I need a way of converting decimal to hexadecimal. This is what I have tried:

29 is the decimal value for the Ctrl key. As hex this is 1D.

Tried this:
Code:
local decKey = 29;
isButtonPressed(DI_Keyboard,format("0x%x",decKey));

Because the format command returns a string this does not work. I can't seem to find a way of making it work.

And yet another question (sorry for so many!)
I have the mouse positioning of widgets working including the option to snap to a grid to help alignment of widgets. Is it possible to move the mouse cursor to a defined location on screen. When I select to move a widget at the moment the widget jumps to the position of the mouse. I want to do the opposite and jump the mouse to the position of the widget. Hope that makes sense. If not then I can make a video to explain.

Thanks once again kenken. The little of what I have tested from the many new features are great.
 
Last edited:
Yes had not thought of that. Is there any other variable that can be used. A unique ID or something that windows generates for the USB device maybe. If that is not possible then I guess the issue is present regardless of whether or not people have to enter the strong by hand or if a "getControllers();" function is created.
The instance name should be identical as long as use on same pc, but I'm not sure. There is another identifier called GUID. I'll added it as second identifier if issue was reported.
Another question:
getPressedButtonID() returns the array [device id, button id]. The button id returned is in decimal format.

The isButtonPressed() requires the button id in hexadecimal format. So I need a way of converting decimal to hexadecimal. This is what I have tried:

29 is the decimal value for the Ctrl key. As hex this is 1D.

Tried this:
Code:
local decKey = 29;
isButtonPressed(DI_Keyboard,format("0x%x",decKey));

Because the format command returns a string this does not work. I can't seem to find a way of making it work.
You confuse data type and type representation. Both button IDs are same integer type. Decimal and hexadecimal are just different representations for same value, so you can just put it in the argument.
And yet another question (sorry for so many!)
I have the mouse positioning of widgets working including the option to snap to a grid to help alignment of widgets. Is it possible to move the mouse cursor to a defined location on screen. When I select to move a widget at the moment the widget jumps to the position of the mouse. I want to do the opposite and jump the mouse to the position of the widget. Hope that makes sense. If not then I can make a video to explain.

Thanks once again kenken. The little of what I have tested from the many new features are great.
I'll add set mouse position function. You have to take care of the rest(I guess you need some other functions).
 
Last edited:
You confuse data type and type representation. Both button IDs are same integer type. Decimal and hexadecimal are just different representations for same value, so you can just put it in the argument.
So obvious. Thought I had tried this but yes indeed it is the incredibly simple solution I was looking for. Thanks.

The instance name should be identical as long as use on same pc, but I'm not sure. There is another identifier called GUID. I'll added it as second identifier if issue was reported.
Sounds good.

I'll add set mouse position function. You have to take care of the rest(I guess you need some other functions).
Thank you for the set mouse position function. I'm sure there will be other functions needed but none for the moment.

Thanks

Jim
 
Hi @kenken

To add to the set mouse position function. I have got a long way with the in-game management of settings. Only problem I have so far is with the combobox.

I use the following to create a combobox with no label (I have it organised in a table with headings so no need for a label for each combo box):
Code:
combo("##brakeInfoEnabled",0,[arrayOfOptions]);

This does create a combobox with a label but unfortunately there is still an approximate 50pixel space left to the right of the combobox for a label even though none is shown. This makes it take up much more space than required.

If no label is needed can the combobox be adjusted so that a space for the non-existent label on the right is not created?

Thanks
 

Latest News

Do you prefer licensed hardware?

  • Yes for me it is vital

  • Yes, but only if it's a manufacturer I like

  • Yes, but only if the price is right

  • No, a generic wheel is fine

  • No, I would be ok with a replica


Results are only viewable after voting.
Back
Top