Renegade Projects Network Forums

Full Version: A new Yuri's Revenge INI editor (update 05/27/11)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I develop a modding tool "Yuri's Revenge INI Editor".

Some program screenshots:

[Image: 1.jpg]
List of sections and child sections or section properties, can jump to section with a button on editing grid.

[Image: 2.jpg]
Advanced find section tool with wildcard supporting (startwith / endwith), default search any section name contains a keyword.

[Image: 4.jpg]
Edit property easily with auto complete popup dialog (customizable by config.ini)

[Image: 5.jpg]
Predifined template supporting for quick creating a new section

[Image: 3.jpg]

Main program commands:
Filter -> filter property / section displayed in editing grid
Goto section -> goto current editing section
Auto Complete -> popup available values of selected property
Find Section -> find section with wildcards
Clone Section -> copy all properties of current to new section
Copy Properties -> copy selected properties to other section
Merge Properties -> copy all properties to other section
Copy INI Code -> copy ini code of selected / all properties to clipboard
Show INI source
Insert INI code -> insert ini snippet to current source and reload
Clear Property Value -> clear selected / all propertie values of current section

config.ini
A program customization data, some snippets:

[rulesmd] -> define a schema for rulesmd.ini
@General=node -> indicate General section show in left panel
@BuildingTypes=list -> indicate BuildingTypes show in left panel and auto reorder child sections, display "jump to section" button in a editing grid


(*)/Owner=multiple(@Countries) -> indicate Owner property of any section has popup dialog showing all values in Countries section
(*)/ToProtect=boolean -> indicate a boolean (yes/no)
(*)/FreeUnit=single(@VehicleTypes)
(*)/Primary=single(@All) -> @All token mean "All section names"
(*)/Prerequisite=multiple(@BuildingTypes)

syntax: multiple(@SectionName1, value1, value2, @SectionName2) => popup multiple values selecting dialog

syntax: single(@SectionName1, value1, value2, @SectionName2) => popup single value selecting dialog

Section or property matching can be regular expression.
Ex: (*)/Weapon\d+= => match Weapon1, Weapon2, WeaponX...

General/AICaptureWounded=number -> AICaptureWounded property of General section is number

[rulesmd.template] -> define a templates for rulesmd.ini
#Title=Building Type -> Text display in menu
UIName=
Name=
BuildCat=
Prerequisite=
Strength=
Armor=
TechLevel=


[rulesmd.template] -> define a templates for rulesmd.ini
#Title=InfantryType -> Text display in menu
UIName=
Name=
Image
Prerequisite=
Strength=
Cost=
Armor=
Primary=
Seconday=
TechLevel=


... and more ...
In order, the template menu item has shortcutkeys is Ctrl+1 -> Ctrl+0 and Ctrl+Shift+1 -> Ctrl+Shift+0 (total 20 items), >21th item has no shortcutkeys

Update 05/25/2011:
Now, the editor can validate INI code. Validation conditions store in config.ini. Download link changed.

[rulesmd.validation] => define a validation
Warheads/(*)=exist => all items in Warheads section must be existed
(*)/Primary=exist => all values of Primary property in any section must be existed
(*)/Seconday=exist
(*)/Projectile=exist
(*)/Prerequisite=exist
(*)/Owner=exist

(*)/Warhead=exist(Warheads) => all values of Wardhead property must be existed in Warheads section

Screenshots:
[Image: 6.jpg]



Update 05/27/11 (Download link changed):
+ New menu INI, move some items from Edit menu to the INI.

+ New command Fill Series

+ Add color selector dialog
config.ini code: (*)/PropertyName = color
[Image: 9.jpg]

+ Section groupping / filtering
[Image: 8.jpg]

Some examples:
@(*)=filter(mode=Basic & prerequisite=GACNST & title=Allied Buildings) => filter with basic mode, section must has prerequisite=GACNST, show title in list of sections

@(*)=filter(mode=Basic & prerequisite=GAPILE & category=Soldier & title=Allied Infantry)

@(*)=filter(mode=Basic & prerequisite=GAWEAP & category=AFV & title=Allied Units)

@(*)=filter(mode=Basic & prerequisite=GAYARD & title=Allied Naval)

@(*)=filter(title=All Weapons & projectile) => any section has projectile (no property value restriction)

@(*)=filter(title=Used Weapons & mode=Collect & property=Primary & property=Secondary) => collection all sections in indicated properties

General syntax:
filter(paramName1 = paramValue1 & paramName2 = paramValue2)
- Preversed parameter names: title, mode, test, property
- Other parameters are filter conditions, parameter has only name means value is optional.
- Parameter name can duplicate in some case.


+ Fix INI validation errors, config.ini code:
[rulesmd.validation]
Warheads/(*)=exist
(*)/Primary=exist(!NONE)
(*)/Seconday=exist(!NONE)
(*)/Projectile=exist => section of this property must be existed
(*)/Prerequisite=exist(!BARRACKS,!RADAR,!TECH,!PROC,!POWER,!FACTORY,!BASE) => check existing and ignore some ALIAS
(*)/Owner=exist
(*)/Warhead=exist(Warheads) => must be exist in Warheads section

+ INI comparision
[Image: 10.jpg]

[Image: 11.jpg]

Next features: Replace property value.

Install / Requirements:
- No installation required
- Program run on Microsoft .NET Framework 3.5, download here
- Download link

Notes:
Program is still developing, please backup your ini file before edit by program.

Please report bugs / questions in this thread.

Thanks for your reading
Looks useful, keep up the good work!

Just mind that there are several thousand tags in the engine, your configuration file will end up quite large.
(24.05.2011, 21:34:28)DCoder Wrote: [ -> ]Looks useful, keep up the good work!

Just mind that there are several thousand tags in the engine, your configuration file will end up quite large.

Thank you, I think every modder only use small set of tags for themselves . Program can load a <100k config file quickly.
Good work so far.
Thats really handy, nice work!
Inpressive. That looks like a very effective interface.
Lovely work, I'll use it.
I always used wordpad to edit my ini files, but this tool looks awesome, I think I will use it.
Crap, of course these pops up after my GPU fries!

When I get a new PC, I'll check this one. Looks nice but TBH... an AI editor with this awesomity would be much more helpful.
Thanks all, new features will update soon, some screenshots:

Fixed PROC, BASE, FACTORY error messages when validate INI code
[Image: 7.jpg]

Can define section filters for quickly access
[Image: 8.jpg]

Color selector
[Image: 9.jpg]
(26.05.2011, 15:44:03)linq2js Wrote: [ -> ]Thanks all, new features will update soon, some screenshots:

Fixed PROC, BASE, FACTORY error messages when validate INI code
[Image: 7.jpg]

Can define section filters for quickly access
[Image: 8.jpg]

Color selector
[Image: 9.jpg]
Good update Smile
Preview a AI Editor:

Features:

AI Editor is a part of Yuri'Revenge INI Editor, at Tools -> AI Editor (in the future: Art Editor etc.)

[Image: 12.jpg]

Main screen is very simple, no buttons. All commands will execute by shortcuts (Ctrl+A select all, Ctrl+D deselect all ..). Available single keys: Del, Enter, Insert ... for editing. Other commands: Clone

- ID is readonly and auto generation
- 1, 2, 3, 4: list of object type
- 5: predefined filter
- 6: quick filter: can input text for basic searching or advanced syntax for property value searching
Ex: search trigger: TechType = NAMISL & Side = 1 & (ProbDef = 10 | ProbDef = 20)
Operators supported:
=, <> for string / number comparision
>, <, >=, <= for number comparision
& (and), | (or) logic
(, ) grouping
Property name only means "property is not empty"
!Property name only means "property is empty"

- 7, 8: multi editing with previous, next buttons and dropdown list
- 9: can reset one / all editing object to origin values

Download link will update soon
Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.
(30.05.2011, 21:09:43)Graion Dilach Wrote: [ -> ]Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.

That's a good question, having it be able to be used for new Sides would greatly increase the chance of it being used.
(31.05.2011, 00:08:01)hogo Wrote: [ -> ]
(30.05.2011, 21:09:43)Graion Dilach Wrote: [ -> ]Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.

That's a good question, having it be able to be used for new Sides would greatly increase the chance of it being used.

Sides and Countries read from rulesmd in order (1 = GDI, 2 = NOD, 3 = ThirdSide, 4 = FourthSide and so on)