![]() |
1 Attachment(s)
I'm a little hesitant to start trying to make this parser a really interactive program. For starters, it's only intended to turn a user's recent.ini into a useable XML, so having the user have to manually set each setting again is counter-productive. Also, I have no idea how to make pretty GUIs. I changed majors before we got to that, and they don't teach you Visual C++ as a Criminology/Anthropology major (C# didn't exist yet when I was a Computer Science major hehe.)
Let me post a mostly-working version of the parser so you can get an idea what it does as far as input and output. I recommend you copy your eq2_recent.ini to your desktop; wherever you choose to put it, the parser has to be in the same folder. You can run it via a double-click, don't worry about the text that streams by in the command window, it's just telling you what variables it's changing internally and which eq2_recent.ini entries it's ignoring because they aren't relevant to the mod. Defaults are based on the balanced entries in your customizable mod. (NOTE: When I say mostly working I mean it. The output will look like a file you could just link in and go, but I haven't tested it at all. It doesn't even have a page declaratory, so linking the output file as-is will very likely cause you not to be able to load EQ2.) P.S. If somebody who actually knows how to handle GUIs wants to make a pretty front-end for this thing I'd be happy to release the source, but I think that may be going beyond the original intended scope of this parser. |
I'll check this out when I get home this evening.
|
2 Attachment(s)
Nice work Ger :)
It slots the settings into one button very niceley The output is almost exactly what I did with the button code as discussed a few posts up the line, and made it an independent file, And it works good Here is my recent.ini file and the output file after I ran Ger's parser for you to have a look at Kosmos if you want to see what it does now rather than wait till you get home :) (note I had to change the .ini to .txt so I could upload the file here) |
Quote:
Hey Cool, thanks I'll check it out. I have was doing some reading and I think the reason that some listings don't get place in the eq2.recent.ini file is because the game sets them to 'Empty' rather than True/False. I think the predefind profiles rather than setting a variable from true to false, simple clear the variable to an empty state. So it doesn't get saved in the eq2.recent.ini A simple way to test this is to set something true and accept it. then check the file. Set it to false, and check the file and see if it shows up in both states. Then Clear the value, I'm not sure what the command would be on that to clear a boolean value. I know how to invert one, but not to clear the variable all together. Anyway, I think that is why they are not listing in the file. |
That is very, very cool!
I'm very impressed. That beats the crap out of typing those values in by hand. We will have to address the missing data values some way. Putting in the Balacned values works for now, but we have to come up with a way that will put the correct user preference in that file even when the information isnt in the INI file. The other thing that may or may not be an issue is that when I was doing my mod and testing, I found that some of the commands required the decimal and some didn't I'm not sure if it matters for the regular whole number values, but it wouldn't hurt to make all the values include the decimal. Would it? I used decimal values for all mine, but I don't know if it was necssary. That thing is really, really nice. Do the user could set the preferences up. Click Accept. Then run your parser and it will create the XML file. Than they could just change the 'filename' to indicate 1, 2, or 3? How very groovy. |
I've been thinking about how to do the default values, and I think the best way may be to allow an INI setting for the parser that will tell it which profile to use. If you can get me the default values for the other profiles I'll set it up.
|
Looking over the matrix right now to make sure nothing needs to be tweaked the default values. Most fo them are the grey values. But I did some guess work on a couple and want to make sure Ive got things correct.
|
Ok Ger,
Notes for you on the Matrix to help with your parser. If I understand your parser is going to 'fill in' the spots for commands that don't exist in the eq2.recent.ini 90% of the grey listings do not change. So basically if your parser doesn't find those values in the eq2.recent.ini file it can create the command and the default value and put in the .xml file. There are a couple of exceptions though.and changes I need to make to the matrix Animate procedural Textures should be 'true' by default I believe. I have it listed as true on the extreme quality settings, but as you can see I have it false on the others. It specifically shows up in the file at Very High Performance as false, so I believe this value should be set to True by default. That's a mistake on my part. These tables were making my head swim, but I'm sure it can in handy for you when you wrote the parser. I do have Excel Database files available if you wantt those rather than thte PDF file. You can import the data into whatever database program you use. The links are here. Particle Level Of Detail Bias (r_particle_lod_scale) should set to 1.0 if it's not found in the eq2.recent.ini file. The 1.125, 1.250 and 1.375 I created as a gradiet. After you pass 1.5 at high performance the listing vanishes from the eq2.recent.ini file so I think it just goes to max. Spell Particles Close to Me (r_particle_near_plane) is a tricky one. This one doesn't show up in the eq2.recent.ini file unless you change it to anything below max. 0.0 This one also doesn't update the slider properly, but it does get set with accept. So it's just a freaky thing with the slider.(I might be confusing that with the triangles slider though) I would set that value to 0.0 if it's not found in the eq2.recent.ini file. NOTE. Anything lower than max, turns in a negative value. You can find this in the options.xlm file. That slider has negativetype set to true. So you may have to specifically do something with the parser to make sure it outputs a negative value. if the user has set this setting to something other than default. Maximum Triangle Density. 80000.0 (I think) would be the default for this one. I think. I don't think the file list anything over 80000.0 but you might want to double check that one. The other values I came up with. The slider goes to max on the pre-defined profiles. Low Detail Characters needs to be set to 100.0 if it's not listed in the eq2.recent.ini file. It's only not listed on the Extreme Quality settings, I'm prety sure this listing is in every eq2.recenent.ini file so it's safe to use 100 as the default since it will be likly that the command is listed in the eq2.recent.ini file. All of the other listings use the value that is in grey. Which I believe you have done already. Especially include the Graphics Resolution, lighting resolution, Flora Radius, and Flora Density. If you tweak these lower, and then load a pre-configured profile, it won't change them back automatically. If you have any other questions just let me know. This parser is going to be super sweet, great team work. lol Logically, I can't see any holes in our theory here. User sets there settings. Clicks Accept. Goes windowed. And moves the eq2.recent.ini file to the parser directory and runs it. user goes back into game and creates second bunch of settings. Clicks accept and and goes windowed and moves the file and parsers it again. Creating Profile #2 Repeat again. that's 3 .xml custom profiles. Than they would need to restart the game, and from then on they will always have those profiles settings set to the buttons for as long as they want. Super sweet! Here are links to the files. If you want to download the Excel Files EQ2_Display_Commnad_Table Excel File EQ2_Performance_Profile_Matrix Excel Files EDIT! I just read your last post. LOL The 'DEFAULT' Values are all of the values in grey. With the acceptions of the ones I've listed above. Which need to be set to the values indicated if the value isn't listed already in the eq2.recent.ini. As for the settings for the other profiles they are all in the Marix. Under each column. You can even use the Excel files perhaps to just cut and past all the command and values! Save you some typing. There is a typo on the max Triangle Deinsity for the Extreme Quality. it should be 100000.0 I put an extra zero on accident. |
Is there anything else I should add to the panel besides three buttons?
And the two volume buttons? Should I make the buttons bigger? Or just break them off the startbutton window and keep them the same size? Is three enough? Personall I think three is a pretty good number, to get a good range of profiles for quick change. run in balanced hit the high quality button for screen shots or whatever, and run in high performance for those laggy times. I think more than 3 would be over kill. And I dont' want to get anybody excited but I 'might' have found a way to get rid of those stupid splash screens on load up. Take a look at this file, if you are bored. eq2ui_loginscene.xml Just glancing at it, it seems like it would be pretty easy to remove those totally, or at the very least reduce the time they are on screen, or set some state to true to just pass over them. My first shot wll be to just remove the dang things totally, Epilespy warning will probably have to stay in there. I'm sure someone will beat me to that though. I won't be able to play with this much for a day or two. Really sucks cause it's fun to get couple of people working on this together. |
Quote:
Just to clarify. The "Default' Values that the Parser would need to fill in would be the same for every profile. The 'check' that needs to be in place is if the Parser finds the listing, If it doesn't it can auto fill the 'defaul grey' values on the matrix. The reason this would not change from profile to profile, is because if the user sets something to a non-default value. It makes it list in the eq2.recent.ini file. Hope that is more clear. |
Quote:
|
Quote:
Ger, basically the answer to your question is yes. Let me explain. The 'default' values really have nothing to do with the r_performance pre-defined performance profiles that come with the game. You have to look at it from another angle. The 'default' values are for the display options themselves. This is there native state, the state they are in by default. Basically from what I can tell is that the Rendering engine lookes for values in each of the variabls. If the value is empty, it reacts to it like it's in it's default value. This is specific to each single setting. For example. Enable Bloom Effect - r_bloom is 'on' or 'true' by default. If this data variable is empty, or set to false it will be 'enabled' Another Example is Heat Shimmer r_heatshimmer this variable is false or empty by defualt. When the render engine checks this variable if it's empty or false it does NOT render heat shimmer in this case. So as you see each of these variables has different 'default' states that the engine checks. These 'default states may be coded to the actual checkboxes or sliders with the UI, or coded someplace else, but the end results are the same. So the r_performance variable is basically totally uninportant to your parser and it can be ignored. Choosing one of the Performance Prfoiles basically does the exact same thing as you wold do if you went and set each of these values manually. With the exception of the couple of special cases I mentioned in the previous post. You can use the grey value for the default value. Going across the matrix from left to right you will see that the grey value does not change until it turns to 'white' which means that it's not listed in the eq2.recent.ini file. So the only time your parser should auto fill the variable is if it doesn't exist in the eq2.recent.ini file. This auto fill value will be the same regardless of which performance profile BUT, it will vary depending on the specific variable. Take my previous example. If Enable Bloom Effect. If the r_bloom variable is not found in the eq2.recent.ini file, than it should be set to 'true' With the other example Heat Shimmer. If the r_heatshimmer value is not found in the eq2.recent.ini file than this value should be set to 'false' The way you are looking at is is the perspective of the performance profiels themselves, when you have to look at the variables. The performance profile settnings will have no affect on your parsers output file if it's coded to the variables. Hoepfully that makes it a little more clear. So in answer to your question. If you changed from Extreme Performance to Extreme Quality each individual variable WOULD change in the listing in the eq2.recent.ini would change. the r_performance is basically just a 'button' that changes all the other values. It doesn't really have any bearing on the render engine itself. (At least far as I can tell) That is why there is a r_performance=7 for 'custom' settings. The exception to the ones that do not change are the ones I mentioned in the previous post. Those like Graphics Resolution need to be coded to the default value also. This value doesn't change across every profile, The only time it gets listed in the eq2.recent.ini file is if the user changes it to a value other than the defualt value. As long as you code the default value for each variable if the listing is not found everythin should work fine. Edit: Also to note, if you are in game, and you change from High Performance to High Quality with the drop down box. The changes take effect in game, but they do not go into the eq2.recent.ini file until you click the 'accept' button. At that point they are saved to the eq2.recent.ini file. |
Just went through and adjusted the default values used, but I'm missing some (they didn't have a grey entry, nor were they listed in your corrections post.) I'll list them at the bottom of this post.
With regard to the number of decimal places shown, it does that because I defined the numeric types as doubles. I'll change everything to text—since I won't be doing any mathematical functions on them anyway it doesn't really matter—so that they output the correct number of decimal places no matter what. Missing default values: r_anim_update_start r_fast_layer_min_distance r_light_bump_max_distance r_max_lights r_max_spec_lights r_min_anim_update_rate r_min_dir_ambient_intensity r_particle_priority |
2 Attachment(s)
Just in case you want to see this is what I came up with, I made a window for the buttons alone, and used the parser on my recent.ini to supply the code for the checkbox and dropped the file into my UI folder and all worked as expected, only thing what kind of go's wrong is you need to move the new buttons out of the top,left corner of the window, but thats easy done.
Had to put the line <include>eq2ui_mainhud_profilebuttons.xml</include> in eq2ui_mainhud.xml P.s or have you guys moved past this stage lol? |
Quote:
That is to say, I expected to have the standard preset profiles and 1 user-defineable custom profile. That way I don't have to worry about file/element naming or positioning. :) If we go the route Kosmos seems to be interested in (all profiles replaceable by the user) I'll have to figure out some way to let the parser know which profile it's replacing so that the button shows up in the right place and the element names/references are all assigned correctly. |
Quote:
Surgestion: Change the parser so that it generates the code for 3 buttons, Have the user rename a copy of their recent.ini to somthing like recent-1.ini log back in game set new values then name that to recent-2.ini etc Then have the parser ask for what files you want it to make code for recent-1 being button 1 , recent-2 being button 2 etc... If no 3rd file is given the parser will just generate say a high quality profile for the button, and / or other buttons as the case maybe. Will save you a hell of a lot of work, and the parser is just deveated slightly from its origional intended purpose. |
Quote:
|
Yups I understand that whilst not working in tech support, I get more than my fair share of phone calls from friends, friends of friends etc lol
Well only other thing for it then is a GUI like the display options in game, But even then yes it could be made to generate the files needed, but how would the average user know what impact their new buttons where going to have on gameplay? as adjusting stuff in game you can see whats changing to an extent. This would mean a lot of trial and error and I guess most users would soon give up on it.. The only other way would be to capture the values ingame based on the same princaple as the old cheat programs and then that will be against the EULA , Eventhough its only purpose would be to get display values, I am just thinking out loud here. So to me better to have the user rename a few files lol ,unless there is a easier way to do the above? |
Quote:
|
Oh Durr??
Me was off looking at it from too complicated view point again lol Now that sounds like a much cleaner way to do it, I will look forward to this :) |
Quote:
The user doesn't even have to camp. They can just hit accept and go windowed mode and do it. They would need to restart for the new XML files to get loaded though But they could do all three without having to camp. THEN camp and restart and would be done. I'll check for those data variables you are missing. |
r_anim_update_start
This one will not be necessary. The reason is that it's always listed in the eq2.recent.ini file. So the parser would never encounter a time when it's not listed. But if you do wan't to put one in, just to be safe. I would use 0.050, that is the one get gets set if you click the 'default' button. On my system When I click the default button. It resets everything to the High Performance settings but at a lower resolution. As far as i can tell there is no 'default' r_performance. it's actually High Performance r_performance=4. This might be specific to my system though. Not sure. r_fast_layer_min_distance Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 25.0 r_light_bump_max_distance Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 5.0 r_max_lights Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 4.0 r_max_spec_lights Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 1.0 r_min_anim_update_rate Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 0.100 r_min_dir_ambient_intensity Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 0.300 r_particle_priority Again, this is always listed in the eq2.recent.ini file. So the parser won't ever not see it listed. But if you want to put in a safe value. You can use 1.0 About the Button Positions. Before you can set that information in the parser, I suppose I need to finish the seperate window mod so that the parser can place that information in the XML also? Along with the final naming convensions for the parent elements and stuff. I'm working on this now. But Mondays are busy days so it's going slow. I'll get that information to you as soon as possible. |
Quote:
|
Well I know a little about gui's with VB but not c++, What program are you using to complie this?
|
1 Attachment(s)
Quote:
On a happy note, new version of the parser with the correct default values. Button location is still off, but it will be until I get the info from Kosmos on names and positions. |
| All times are GMT -5. The time now is 06:20 PM. |
vBulletin® - Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© MMOUI