Right now I'm busy with Grimext bugfixes, an 1.21b update for JNGP, a Widgetizer update etc ...
I had also planned to add a graphical tilepicker in this update but I currently do not have any time for it. So I'm looking for someone who is willing and has the skills to help out.
What we need is a simple GUI to pick the base tileset and the tiles for a map. We're using Delphi for the GUIs (Delphi 10 Lite which is available for free) Attached is the delphi project that already contains the test map configuration dialog and the about dialog of JNGP. The new GUI should simply be added to this project as a new form.
It should display all available tiles, grouped by tilesets. The tooltip of each tile should tell the name of the tile and if it's a cliff tile (eg Lordaeron Summer Dirt (Cliff)). For example it could look like the picker from WEU:
Then there should be a dropdown box from which to select the base tileset for the map. And at the bottom there should be a list where all the currently selected tiles are shown. This list can be edited by the user (click tile from the list to remove it, click tile from above to add it to the list). The max is 16 tiles.
For better testability you can create your own executable delphi project, but later the dialog should be put into the attached dll-project and exported through the following function declaration (see the attached project for a similar example):
Code:
function TilesetConfigDialog(parent: HWND; tileset CHAR; tilelist: PCHAR): PCHAR; stdcall;
The function takes the character that identifies the base tileset and a list of tile-ids which are the currently selected tiles.
It would then display the above mentioned dialog, allow the user to edit the tilelist and when the user clicks ok return a string with the new base tileset and tilelist.
Example return value:
This would mean that the user selected Lordaeron Summer as base tileset (the first L) and he has only two tiles in the tilelist, namely Lgrs (lordaeron summer grass) and Ldrt (lordaeron summer dirt).
You will need the following list of tileset characters and tile ids:
Tileset List
* A Ashenvale
* B Barrens
* C Felwood
* D Dungeon
* F Lordaeron Fall
* G Underground
* L Lordaeron Summer
* N Northrend
* Q Village Fall
* V Village
* W Lordaeron Winter
* X Dalaran
* Y Cityscape
* Z Sunken Ruins
* I Icecrown
* J Dalaran Ruins
* O Outland
* K Black Citadel
Tile Id List
* Ldrt Lordaeron Summer Dirt (cliff)
* Ldro Lordaeron Summer Rough Dirt
* Ldrg Lordaeron Summer Grassy Dirt
* Lrok Lordaeron Summer Rock
* Lgrs Lordaeron Summer Grass (cliff)
* Lgrd Lordaeron Summer Dark Grass
* Fdrt Lordaeron Fall Dirt (cliff)
* Fdro Lordaeron Fall Rough Dirt
* Fdrg Lordaeron Fall Grassy Dirt
* Frok Lordaeron Fall Rock
* Fgrs Lordaeron Fall Grass (cliff)
* Fgrd Lordaeron Fall Dark Grass
* Wdrt Lordaeron Winter Dirt
* Wdro Lordaeron Winter Rough Dirt
* Wsng Lordaeron Winter Grassy Snow
* Wrok Lordaeron Winter Rock
* Wgrs Lordaeron Winter Grass (cliff)
* Wsnw Lordaeron Winter Snow (cliff)
* Bdrt Barrens Dirt
* Bdrh Barrens Rough Dirt
* Bdrr Barrens Pebbles
* Bdrg Barrens Grassy Dirt
* Bdsr Barrens Desert (cliff)
* Bdsd Barrens Dark Desert
* Bflr Barrens Rock
* Bgrr Barrens Grass (cliff)
* Adrt Ashenvale Dirt (cliff)
* Adrd Ashenvale Rough Dirt
* Agrs Ashenvale Grass (cliff)
* Arck Ashenvale Rock
* Agrd Ashenvale Lumpy Grass
* Avin Ashenvale Vines
* Adrg Ashenvale Grassy Dirt
* Alvd Ashenvale Leaves
* Cdrt Felwood Dirt (cliff)
* Cdrd Felwood Rough Dirt
* Cpos Felwood Poison
* Crck Felwood Rock
* Cvin Felwood Vines
* Cgrs Felwood Grass (cliff)
* Clvg Felwood Leaves
* Ndrt Northrend Dirt (cliff)
* Ndrd Northrend Dark Dirt
* Nrck Northrend Rock
* Ngrs Northrend Grass
* Nice Northrend Ice
* Nsnw Northrend Snow (cliff)
* Nsnr Northrend Rocky Snow
* Ydrt Cityscape Dirt (cliff)
* Ydtr Cityscape Rough Dirt
* Yblm Cityscape Black Marble
* Ybtl Cityscape Brick
* Ysqd Cityscape Square Tiles (cliff)
* Yrtl Cityscape Round Tiles
* Ygsb Cityscape Grass
* Yhdg Cityscape Grass Trim
* Ywmb Cityscape White Marble
* Vdrt Village Dirt (cliff)
* Vdrr Village Rough Dirt
* Vcrp Village Crops
* Vcbp Village Cobble Path
* Vstp Village Stone Path
* Vgrs Village Short Grass
* Vrck Village Rocks
* Vgrt Village Thick Grass (cliff)
* Qdrt Village Fall Dirt (cliff)
* Qdrr Village Fall Rough Dirt
* Qcrp Village Fall Crops
* Qcbp Village Fall Cobble Path
* Qstp Village Fall Stone Path
* Qgrs Village Fall Short Grass
* Qrck Village Fall Rocks
* Qgrt Village Fall Thick Grass (cliff)
* Xdrt Dalaran Dirt (cliff)
* Xdtr Dalaran Rough Dirt
* Xblm Dalaran Black Marble
* Xbtl Dalaran Brick
* Xsqd Dalaran Square Tiles (cliff)
* Xrtl Dalaran Round Tiles
* Xgsb Dalaran Grass
* Xhdg Dalaran Grass Trim
* Xwmb Dalaran White Marble
* Ddrt Dungeon Dirt (cliff)
* Dbrk Dungeon Brick
* Drds Dungeon Red Stone
* Dlvc Dungeon Lava Cracks
* Dlav Dungeon Lava
* Ddkr Dungeon Dark Rock
* Dgrs Dungeon Grey Stones
* Dsqd Dungeon Square Tiles (cliff)
* Gdrt Underground Dirt (cliff)
* Gbrk Underground Brick
* Grds Underground Red Stone
* Glvc Underground Lava Cracks
* Glav Underground Lava
* Gdkr Underground Dark Rock
* Ggrs Underground Grey Stones
* Gsqd Underground Square Tiles (cliff)
* Zdrt Sunken Ruins Dirt (cliff)
* Zdtr Sunken Ruins Rough Dirt
* Zdrg Sunken Ruins Grassy Dirt
* Zbks Sunken Ruins Small Bricks
* Zsan Sunken Ruins Sand
* Zbkl Sunken Ruins Large Bricks (cliff)
* Ztil Sunken Ruins RoundTiles
* Zgrs Sunken Ruins Grass
* Zvin Sunken Ruins Dark Grass
* Idrt Icecrown Dirt
* Idtr Icecrown Rough Dirt
* Idki Icecrown Dark Ice
* Ibkb Icecrown Black Bricks
* Irbk Icecrown Runed Bricks (cliff)
* Itbk Icecrown Tiled Bricks
* Iice Icecrown Ice
* Ibsq Icecrown Black Squares
* Isnw Icecrown Snow (cliff)
* Odrt Outland Dirt
* Odtr Outland Light Dirt
* Osmb Outland Rough Dirt (cliff)
* Ofst Outland Cracked Dirt
* Olgb Outland Flat Stones
* Orok Outland Rock
* Ofsl Outland Light Flat Stone
* Oaby Outland Abyss (cliff)
* Kdrt Black Citadel Dirt (cliff)
* Kfsl Black Citadel Light Dirt
* Kdtr Black Citadel Rough Dirt
* Kfst Black Citadel Flat Stones
* Ksmb Black Citadel Small Bricks
* Klgb Black Citadel Large Bricks
* Ksqt Black Citadel Square Tiles
* Kdkt Black Citadel Dark Tiles (cliff)
* Jdrt Dalaran Ruins Dirt (cliff)
* Jdtr Dalaran Ruins Rough Dirt
* Jblm Dalaran Ruins Black Marble
* Jbtl Dalaran Ruins Brick
* Jsqd Dalaran Ruins Square Tiles (cliff)
* Jrtl Dalaran Ruins Round Tiles
* Jgsb Dalaran Ruins Grass
* Jhdg Dalaran Ruins Grass Trim
* Jwmb Dalaran Ruins White Marble
* cAc2 Ashenvale Dirt (non-cliff)
* cAc1 Ashenvale Grass (non-cliff)
* cBc2 Barrens Desert (non-cliff)
* cBc1 Barrens Grass (non-cliff)
* cKc1 Black Citadel Dirt (non-cliff)
* cKc2 Black Citadel Dark Tiles (non-cliff)
* cYc2 Cityscape Dirt (non-cliff)
* cYc1 Cityscape Square Tiles (non-cliff)
* cXc2 Dalaran Dirt (non-cliff)
* cXc1 Dalaran Square Tiles (non-cliff)
* cJc2 Dalaran Ruins Dirt (non-cliff)
* cJc1 Dalaran Ruins Square Tiles (non-cliff)
* cDc2 Dungeon Dirt (non-cliff)
* cDc1 Dungeon Square Tiles (non-cliff)
* cCc2 Felwood Dirt (non-cliff)
* cCc1 Felwood Grass (non-cliff)
* cIc2 Icecrown Runed Bricks (non-cliff)
* cIc1 Icecrown Snow (non-cliff)
* cFc2 Lordaeron Fall Dirt (non-cliff)
* cFc1 Lordaeron Fall Grass (non-cliff)
* cLc2 Lordaeron Summer Dirt (non-cliff)
* cLc1 Lordaeron Summer Grass (non-cliff)
* cWc2 Lordaeron Winter Grass (non-cliff)
* cWc1 Lordaeron Winter Snow (non-cliff)
* cNc2 Northrend Dirt (non-cliff)
* cNc1 Northrend Snow (non-cliff)
* cOc1 Outland Abyss (non-cliff)
* cOc2 Outland Rough Dirt (non-cliff)
* cZc2 Sunken Ruins Dirt (non-cliff)
* cZc1 Sunken Ruins Large Bricks (non-cliff)
* cGc2 Underground Dirt (non-cliff)
* cGc1 Underground Square Tiles (non-cliff)
* cVc2 Village Dirt (non-cliff)
* cVc1 Village Thick Grass (non-cliff)
* cQc2 Village Fall Dirt (non-cliff)
* cQc1 Village Fall Thick Grass (non-cliff)
The images for the tiles are quite hard to exract from the MPQ (they are cut out from a texture at runtime), so it'll be easier if you simply make a screenshot of the terrain toolbox in the WE like so:
And use some painting tool to cut the images.
I really hope someone is willing to help out and improve the NewGen pack.
And I hope I've provided all important information.
EDIT: Oh, I forgot to mention there's a catch about cliff tiles.
For all cliff tiles there's a cliff version and a non-cliff version. For example for icecrown snow there's Isnw (cliff version) and cIc1 (non-cliff version). When putting together the list of tile-ids that should be returned you need to look at which base tileset the user has selected in the dropdown. In the example if the user had selected Icecrown you would return Isnw (the cliff version), if the user had selected any other tileset then you would return cIc1. The same goes for all other cliff tiles. You only return the cliff version if the matching tileset was selected.
PS: Feel free to add whatever you think could improve usability also.