Renegade Projects Network Forums
A new Yuri's Revenge INI editor (update 05/27/11) - Printable Version

+- Renegade Projects Network Forums (https://forums.renegadeprojects.com)
+-- Forum: Modding (https://forums.renegadeprojects.com/forumdisplay.php?fid=3)
+--- Forum: Red Alert 2 & Yuri's Revenge Editing (https://forums.renegadeprojects.com/forumdisplay.php?fid=8)
+--- Thread: A new Yuri's Revenge INI editor (update 05/27/11) (/showthread.php?tid=1872)



A new Yuri's Revenge INI editor (update 05/27/11) - linq2js - 24.05.2011

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


RE: A new Yuri's Revenge INI editor - DCoder - 24.05.2011

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.


RE: A new Yuri's Revenge INI editor - linq2js - 24.05.2011

(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.


RE: A new Yuri's Revenge INI editor - AlexB - 24.05.2011

Good work so far.


RE: A new Yuri's Revenge INI editor - Steel Mirage - 24.05.2011

Thats really handy, nice work!


RE: A new Yuri's Revenge INI editor - Orac - 25.05.2011

Inpressive. That looks like a very effective interface.
Lovely work, I'll use it.


RE: A new Yuri's Revenge INI editor - ¥R M0dd€r - 25.05.2011

I always used wordpad to edit my ini files, but this tool looks awesome, I think I will use it.


RE: A new Yuri's Revenge INI editor - Graion Dilach - 25.05.2011

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.


RE: A new Yuri's Revenge INI editor (update 05/25/11) - linq2js - 26.05.2011

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]


RE: A new Yuri's Revenge INI editor (update 05/25/11) - hogo - 27.05.2011

(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



RE: A new Yuri's Revenge INI editor (update 05/27/11) - linq2js - 30.05.2011

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


RE: A new Yuri's Revenge INI editor (update 05/27/11) - Graion Dilach - 30.05.2011

Howe are your Sides defined there? DCoder's AI Editor couldn't accept new sides only new countries, that's why I ask.


RE: A new Yuri's Revenge INI editor (update 05/27/11) - hogo - 31.05.2011

(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.


RE: A new Yuri's Revenge INI editor (update 05/27/11) - linq2js - 31.05.2011

(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)