Feature #219

porting Tools to Qt : Tile_Edit

Added by titegus over 9 years ago. Updated almost 8 years ago.

Status:Closed Start date:12/01/2008
Priority:Normal Due date:
Assignee:sfb % Done:

100%

Category:Tools: General
Target version:Version 0.7.0

Description

Tile_Edit is a tool used to manage .bank files:
- add/remove Land & Tile Set
- Link Land to TileSet
- Link TileSet to Vegetation Set

It also include a TileSet Viewer :
- Diffuse, Additive (Night&Day) Tiles
- Transition Tiles
- Displacement Maps
with Batch load, and Border Import/Export facilities

Still checking a few things concerning Image format and omw to port it :)

tile_edit_EditLand.png - Land Edition (to Manage links between Land and TileSets) (22.6 kB) titegus, 12/01/2008 07:59 pm

tile_edit_EditTileSet_Diffuse.jpg - TileSet Edition (Diffuse Color) (238.1 kB) titegus, 12/01/2008 07:59 pm

tile_edit_EditTileSet_Alpha.jpg - TileSet Edition (Alpha Channel) (185.2 kB) titegus, 12/01/2008 07:59 pm

tile_edit_Qt-4.4.3.zip (476.1 kB) titegus, 12/22/2008 05:48 pm

landscape.zip - .bank and .tga examples (2.8 MB) titegus, 12/22/2008 05:48 pm

tile_edit_qt_4.5.7z - Updated version with cleaned up filenames and compiling under Qt 4.5 (236.3 kB) kaetemi, 03/22/2009 12:33 pm

History

#1 Updated by titegus over 9 years ago

Here is the Qt version of the tile_edit tool

The interface slightly changed :

- TileSet relative Informations (SurfaceData/VegetSet/IsOriented) have been grouped into a "TileSet detail" Frame, visible without having to open the tile browser
- in the Tile Browser, "Subtile Set" checkboxes have been removed (obsolete)
- in the Tile Browser, RadioButton have been grouped to make a clear distinction between Tiles Data (stored into the .bank) and Editor Options (which only influence the way informations are displayed in the Browser)

and more generally, Buttons and Actions are Enable/Disable depending on the Context to help understanding.

I didn't remove any fonctionalities, but, in my opinion, the "Import border" fonctionality is useless (as it's imported by default with the first Tile) and new Border are imported without any Pixel Check, which is not correct ?
The Export Fonctionality should also be split into several methods "Export 128 Diffuse" and "Export 128 Additive", so we could add "Export 256 Diffuse" and "Export 256 Additive" (and this should be independant from the Texture currently displayed in the Browser)

I could provide a second version of the tile_edit tool after this one is validated !

I join the landscape.zip files (from snowball) that can be used as an Example

#2 Updated by kaetemi over 9 years ago

It seems to be working nicely.

Some issues, though:
- It needs quite a few changes with the include paths to compile with Qt 4.5
- Loads of warnings when compiling under VS2008 (related to how you are using enums)
- The project is missing a configuration for compiling under Debug mode apparently
- And it might be nice to follow the NeL naming conventions (filenames, typenames, etc)

#3 Updated by aquiles over 9 years ago

kaetemi wrote:

It seems to be working nicely.

Some issues, though:
- It needs quite a few changes with the include paths to compile with Qt 4.5
- Loads of warnings when compiling under VS2008 (related to how you are using enums)
- The project is missing a configuration for compiling under Debug mode apparently
- And it might be nice to follow the NeL naming conventions (filenames, typenames, etc)

Hello,

i tried to compile it, but after changing includes for qt and adding the additional needed librarys like nlmisc_x.lib or nl3d_x.lib and so oni get a bunch of compile errors (trimmed for better reading):

Linking...
msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>, already defined in nlmisc_r.lib(app_context.obj)
msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>, already defined in nlmisc_r.lib(app_context.obj)
msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>, already defined in nlmisc_r.lib(app_context.obj)
msvcprt.lib(MSVCP90.dll) : error LNK2005: "bool __cdecl std::operator==<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>, already defined in nlmisc_r.lib(log.obj)
msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>, already defined in nlmisc_r.lib(file.obj)
msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>, already defined in nlmisc_r.lib(file.obj)
libcpmt.lib(locale0.obj) : error LNK2005: "void __cdecl _AtModuleExit(void (__cdecl*)(void))" (?_AtModuleExit
@YAXP6AXXZ@Z) already defined in msvcprt.lib(locale0_implib.obj)
libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * _cdecl std::locale::_Getgloballocale(void)" already defined in msvcprt.lib(MSVCP90.dll)
libcpmt.lib(locale0.obj) : error LNK2005: __Fac_tidy already defined in msvcprt.lib(locale0_implib.obj)
libcpmt.lib(locale0.obj) : error LNK2005: "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" already defined in msvcprt.lib(locale0_implib.obj)
LIBCMT.lib(setlocal.obj) : error LNK2005: __configthreadlocale already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(tolower.obj) : error LNK2005: _tolower already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(invarg.obj) : error LNK2005: __invalid_parameter_noinfo already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(strftime.obj) : error LNK2005: _strftime already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(winxfltr.obj) : error LNK2005: __XcptFilter already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(atox.obj) : error LNK2005: _atoi already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(crt0init.obj) : error LNK2005: _
_xi_a already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: __xi_z already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: _
_xc_a already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in MSVCRT.lib(cinitexe.obj)
LIBCMT.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@YAXXZ) already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(getenv.obj) : error LNK2005: _getenv already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(dosmap.obj) : error LNK2005: __errno already defined in MSVCRT.lib(MSVCR90.dll)
LIBCMT.lib(errmode.obj) : error LNK2005: ___set_app_type already defined in MSVCRT.lib(MSVCR90.dll)
MSVCRT.lib(MSVCR90.dll) : error LNK2005: __strnicmp already defined in LIBCMT.lib(strnicmp.obj)
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library

Seems i have some missconfigured librarys. Can i simply use the libs compiled with normal Nel build? Or do i have to switch to dynamic linked? Or just some parameter changes in the project settings?

Thanx in advance,
aquiles

#4 Updated by kaetemi over 9 years ago

Yes, you seem to be mixing static/dynamic runtimes. Make sure you're compiling with the same stl runtime version for all libs and modules.

#5 Updated by kaetemi over 9 years ago

Updated version with cleaned up filenames and compiling under Qt 4.5

#6 Updated by sfb over 9 years ago

  • Status changed from New to Closed
  • Assignee set to sfb
  • Target version set to Version 0.7.0

Just an FYI that this tool is largely untested and does have a few issues with resolving tile bank paths. As these issues are discovered please open new issues for them. This builds and generates automatically via CMake for integrated building.

#7 Updated by kervala over 9 years ago

  • % Done changed from 0 to 100

#8 Updated by kervala almost 8 years ago

  • Project changed from NeL to Ryzom
  • Category deleted (Tools)
  • Target version deleted (Version 0.7.0)

#9 Updated by kervala almost 8 years ago

  • Category set to Tools: General
  • Target version set to Version 0.7.0

Also available in: Atom PDF