Jump to content

MMaps Redux


Guest auntieMangos

Recommended Posts

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

New generator doesn't need any parameters. Just put it in the same directory as the 'maps' and 'vmaps' folders, and it will do the rest.

I made it ignore maps 0, 1, 530, 571, and some others. You'll have to edit the MapBuilder::shouldSkipMap method if you want to change that behavior (or wait for me to make them configurable at runtime)

i don't know if i done something wrong?

no, you're doing it right.

2 bugs:

  • * debug commands don't do reference checking
    * I stated earlier there's a tile coord mismatch error caused by generator. This is it (I think)

I'll fix the first problem, should be easy.

The second one might not be as clear as I'm hoping, we'll see. But it will require new mmaps.

Link to comment
Share on other sites

Well, it's not so easy. Something is going wrong on in the generator which messes up the navmesh creation for portions of tiles, leaving sections of tiles without navdata.

I'm working on fixing it, but I have no idea what exactly is happening at the moment.

The core should be stable though. When monsters are in these areas, their behavior will return to the old way of running through objects.

Link to comment
Share on other sites

First, thanks to Konctantin and caeruleaus for your help. Dealing with the inner plumbing of the client leaves my head spinning.

Second:

New generator doesn't need any parameters. Just put it in the same directory as the 'maps' and 'vmaps' folders, and it will do the rest.

Pure, epic win! :D

May your camels always be blessed with three humps!

Link to comment
Share on other sites

Can someone help me with this please?

I downloaded this rev and compiled. Then I extracted new maps, vmaps3 and downloaded the vmaps in faramir's post, and put then in the folders maps, vmaps, mmaps.

Maps and vmaps work but when I try '.debug mmap' within the game it gives me the error "NavMesh not loaded for current map." and in the console I receive this: "ERROR:Error: Could not open mmap file 'mmaps\\533.mmap'" I've tried Naxx and Elwynn Forest and Stormwind.

Anyone have any ideas? =)

Link to comment
Share on other sites

New generator doesn't need any parameters. Just put it in the same directory as the 'maps' and 'vmaps' folders, and it will do the rest.

I made it ignore maps 0, 1, 530, 571, and some others. You'll have to edit the MapBuilder::shouldSkipMap method if you want to change that behavior (or wait for me to make them configurable at runtime)

no, you're doing it right.

2 bugs:

  • * debug commands don't do reference checking
    * I stated earlier there's a tile coord mismatch error caused by generator. This is it (I think)

I'll fix the first problem, should be easy.

The second one might not be as clear as I'm hoping, we'll see. But it will require new mmaps.

and where is the change i see not on your repo.

Link to comment
Share on other sites

I think the "How To" in the first post should be update due to recent change in mmap generation ( as i understand there is no need anymore to generate mmapas by hand).

And even if it sound like a clichés, i'd like to thanks the devs working on that because i believe this project is the most important WIP now :)

Link to comment
Share on other sites

I started playing around with a Linux Makefile and for whatever kind of reason I felt like lets try it with cmake. I created this CMakeLists.txt. I had to change "platform/Define.h" in MMapCommon.h to "Platform/Define.h", but still I only get a compile error.

[ 25%] Building CXX object CMakeFiles/generator.dir/MapBuilder.o
In file included from /home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp:3:
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MMapCommon.h:13: warning: scoped enums only available with -std=c++0x or -std=gnu++0x
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp: In member function ‘void MMAP::MapBuilder::loadVMap(uint32)’:
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp:258: error: ‘class VMAP::VMapManager2’ has no member named ‘getInstanceMapTree’
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp:263: error: ‘class VMAP::StaticMapTree’ has no member named ‘getModelInstances’
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp:277: error: ‘class VMAP::ModelInstance’ has no member named ‘getWorldModel’
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp:282: error: ‘class VMAP::WorldModel’ has no member named ‘getGroupModels’
/home/skirnir/Source/m/mmaps_rewrite/contrib/mmap/src/MapBuilder.cpp:303: error: ‘class VMAP::GroupModel’ has no member named ‘getMeshData’
make[2]: *** [CMakeFiles/generator.dir/MapBuilder.o] Error 1
make[1]: *** [CMakeFiles/generator.dir/all] Error 2
make: *** [all] Error 2

Link to comment
Share on other sites

After finally getting it to work and testing it for about two hours, I strongly feel that this should be made priority number one and merged with the master as soon as it's humanly possible. The difference in gameplay is absolutely staggering and I can't think of any other underdeveloped feature more important than this. Faramir118, thanks for keeping the project alive.

Link to comment
Share on other sites

I think the "How To" in the first post should be update due to recent change in mmap generation

I actually did this, but the forum ate my edit :(

Will redo as soon as I finish this set of changes.

edit: done

but still I only get a compile error.

First of all, thanks for doing this!

You can resolve your errors with preprocessor define MMAP_GENERATOR

(compiler option -D MMAP_GENERATOR or something?)

Link to comment
Share on other sites

Another batch of updates.

Please look at contrib/mmap/readme.

Generator Updates:

  • * finished add runtime settings (config file or command line parameters)
    * finished prevent potential tile index inconsistencies
    * new finished use all mesh data in output (fix those 'imperfect' maps)
    * navmesh parameter tweaks, map generation is much much faster now

Generator Todo:

  • * find a way to 'poke holes' in the heighmap mesh where there should be entrances (caves, stairs leading underground, etc)
    * use liquid info when building mmaps

No map downloads this time, at least for a little while. I'd like people to try out the generator.

edit: I should mention that I had to change the core's makefiles again, so I wouldn't be surprised if it broke

Link to comment
Share on other sites

I just got this error on compile:

In file included from ../../../../src/shared/pathfinding/InputGeom.cpp:26:

../../../../src/shared/pathfinding/InputGeom.h:24:19: error: Debug.h: No such fi le or directory

In file included from ../../../../src/shared/pathfinding/InputGeom.cpp:26:

../../../../src/shared/pathfinding/InputGeom.h:38: error: ISO C++ forbids declar ation of 'myMeshLoaderObj' with no type

../../../../src/shared/pathfinding/InputGeom.h:38: error: expected ';' before '* ' token

../../../../src/shared/pathfinding/InputGeom.h:65: error: ISO C++ forbids declar ation of 'myMeshLoaderObj' with no type

../../../../src/shared/pathfinding/InputGeom.h:65: error: 'myMeshLoaderObj' decl ared as an 'inline' field

../../../../src/shared/pathfinding/InputGeom.h:65: error: expected ';' before '* ' token

../../../../src/shared/pathfinding/InputGeom.h:66: error: expected `;' before 'i nline'

../../../../src/shared/pathfinding/InputGeom.cpp: In constructor 'InputGeom::Inp utGeom()':

../../../../src/shared/pathfinding/InputGeom.cpp:110: error: class 'InputGeom' d oes not have any field named 'm_mesh'

../../../../src/shared/pathfinding/InputGeom.cpp: In destructor 'InputGeom::~Inp utGeom()':

../../../../src/shared/pathfinding/InputGeom.cpp:119: error: 'm_mesh' was not de clared in this scope

../../../../src/shared/pathfinding/InputGeom.cpp: In member function 'bool Input Geom::loadMesh(const char*)':

../../../../src/shared/pathfinding/InputGeom.cpp:124: error: 'm_mesh' was not de clared in this scope

../../../../src/shared/pathfinding/InputGeom.cpp:128: error: type '<type error>' argument given to 'delete', expected pointer

../../../../src/shared/pathfinding/InputGeom.cpp:134: error: 'm_mesh' was not de clared in this scope

../../../../src/shared/pathfinding/InputGeom.cpp:134: error: expected type-speci fier before 'myMeshLoaderObj'

../../../../src/shared/pathfinding/InputGeom.cpp:134: error: expected `;' before 'myMeshLoaderObj'

../../../../src/shared/pathfinding/InputGeom.cpp: In member function 'bool Input Geom::load(const char*)':

../../../../src/shared/pathfinding/InputGeom.cpp:187: error: 'm_mesh' was not de clared in this scope

../../../../src/shared/pathfinding/InputGeom.cpp: In member function 'bool Input Geom::save(const char*)':

../../../../src/shared/pathfinding/InputGeom.cpp:255: error: 'm_mesh' was not de clared in this scope

../../../../src/shared/pathfinding/InputGeom.cpp:261: error: 'm_mesh' was not de clared in this scope

../../../../src/shared/pathfinding/InputGeom.cpp: In member function 'bool Input Geom::raycastMesh(float*, float*, float&)':

../../../../src/shared/pathfinding/InputGeom.cpp:294: error: 'm_mesh' was not de clared in this scope

gmake[6]: *** [inputGeom.o] Error 1

I'm on FreeBSD 8, using just your repo.

Link to comment
Share on other sites

I just got this error on compile:

I'm on FreeBSD 8, using just your repo.

I attempted to prevent that in http://github.com/faramir118/mangos/commit/7700c9820b001b62b4b6f80bb3d93c34ba5c5deb and http://github.com/faramir118/mangos/commit/afdf5dac480b352494539fb2b786f3ec78709e0a

Basically, InputGeom.h/cpp, MeshLoaderObj.h/.cpp and ChunkyTriMesh.h/.cpp should be excluded from core. Maybe those files should be moved to contrib/mmap/src/

If you make it work, please post a patch!

As you can tell, make build chain is my worst enemy.

Link to comment
Share on other sites

ok, great work faramir but i seem to have an error in compiling in win32:

1>c:\\users\\vladex\\desktop\\perfect mangos core\\mangos\\src\\shared\\pathfinding\\InputGeom.h(24) : fatal error C1083: Cannot open include file: 'Debug.h': No such file or directory

ok i found it , ill just do include "and path" should work

ok it did work but now i recive errors about ,something like this:

1>InputGeom.obj : error LNK2001: unresolved external symbol "public: bool __thiscall myMeshLoaderObj::load(char const *)" (?load@myMeshLoaderObj@@QAE_NPBD@Z)

1>InputGeom.obj : error LNK2001: unresolved external symbol "public: __thiscall myMeshLoaderObj::~myMeshLoaderObj(void)" (??1myMeshLoaderObj@@QAE@XZ)

1>InputGeom.obj : error LNK2001: unresolved external symbol "public: __thiscall myMeshLoaderObj::myMeshLoaderObj(void)" (??0myMeshLoaderObj@@QAE@XZ)

Link to comment
Share on other sites

faramir I've been messing with my own repo and I think I may have fixed those build errors, just testing now! :)

Two issues though, firstly when I try to extract mmaps with 'skip continents' off it crashes after about 10 seconds. Secondly, if I run the extractor with all runtime settings it keeps telling me than "invalid map number specified".

Will keep you updated with the build..

-Will

Link to comment
Share on other sites

@vladex

I moved some files around, all VC90 projects work now

@willisoady

Hopefully my moving files around fixed it also, but I'd like to see your changes regardless.

When you run the generator with parameters, you have to specify values for everything:

C:\\wowemu\\mangos>MoveMapGen.exe --skipContinents false --hiResHeightmaps true

The only exception is specifying a map number, like when you want to build ONLY naxxramas:

C:\\wowemu\\mangos>MoveMapGen.exe 533

And you can combine them like this:

C:\\wowemu\\mangos>MoveMapGen.exe --hiResHeightmaps true --debugOutput true 533

If you specify a map number, it will build that map regardless of the --skip* settings or their defaults.

A word of warning regarding debugOutput...

This requires A LOT of hard disk space, and increases memory requirements.

Link to comment
Share on other sites

Haha faramir I essentially did exactly what you did (moved to another directory). :D

I still have an issue with the generator though, if I run 'MoveMapGen.exe --skipContinents false --shredHeightmaps true -hiResHeightmaps true' I get a crash on Win 7 x64 once it starts 'Creating ChunkyTriMesh'. I'm busy atm but I'll try and debug it when I get the chance.

-Will

Link to comment
Share on other sites

Hrm, looks like there's a bug in the G3D::MemoryManager implementation, which is used by G3D::Array (which I use to gather vertex and triangle data). Interestingly, the error occurs while trying to deallocate memory.

Stop using hiRes heightmaps for now, the bug seems to only occur when the Array grows past a certain size. I'll see if there's an easy fix for this.

Link to comment
Share on other sites

Will, what does your log.txt say? Was it a writing error? See if your DataDir has an empty 'mmaps' folder, and if it doesn't, try creating one manually. I also had a "Memory manager returned NULL: out of memory" crash when I used --hiResHeightmaps true with --skipContinents false. If you get it, try setting hiResHeightmaps to false as a temporary workaround.

Link to comment
Share on other sites

Thanks for editing the How to :) One last thing, the link you posted point in the mmaps repo and should be the mmaps_rewrite repo

And sorry to ask a dumb question but does the vmaps_rewrite patch by Lynx3d is part of your repo or should we add it first ?

- Answered my own question looking at the last commiters on certain files :) thank you both.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use