Jump to content

[10167] vmap rewrite


Auntie Mangos

Recommended Posts

Yes i managed to infiltrate the evil developer place and joined the laugh about evil jokes...wait, you must not know that part :P

Anyway, merging has been discussed, hence my last remark, you can either test it voluntarily, or the way Trin... *cough* I mean, the way some other project(s) makes you test it (which i have absolutely nothing to do with, btw.)

Link to comment
Share on other sites

  • Replies 298
  • Created
  • Last Reply

Top Posters In This Topic

I guess the one thing I can say is that the "other project(s)" feel that assisting with ironing out any issues with such an important change as this is, ie. checking it's stability, it's wellbehaviour etc, and for the communities that it will eventually affect, is something that shouldn't be shuddered at - the more people that will test it, the better it will be for everyone. And as Lynx3d said he doesn't have anything to do with it apart from us being interested in, and being willing to, assist with reporting eventual bugs to the project. Most of the projects will most probably report back to Lynx3d with proper reports if anything comes up. We just don't let "our users" bug him directly.

Link to comment
Share on other sites

Well, I wasn't sure which one is causing it. and thought that the vmap is responsible for the navigation of npcs. but I figured out, that the patch i applied caused the problem. without it the mobs stay inside as they should. only need to get mmap running :D

thanks anyway

Link to comment
Share on other sites

@Iowahc: vmaps never have been used for navigation, what do you think why the movemaps project was started...?

Maybe it should finally be renamed to collision system or something similar...it's neither V nor maps really...

Anyway, i just updated libmpq with latest SVN changes that should make it more windows friedly "out of box", someone might check if it still builds/works.

Would mean some custom code less...

Link to comment
Share on other sites

Molten Core's lava streams still don't seem to inflict any damage.

I don't think this patch is made to fix that... this patch as I see is only for space reduction of vmaps AND better detection of the zones and subzones... I believe that a new patch is needed to make those working... a patch that select all the lava streams from the entire world including instances/dungeons,etc and apply the dmg to everyone who enters!

with respect,

Axel

Link to comment
Share on other sites

there is a difference between lava pools and lavafalls (like waterfalls)

I wasn't talking about 'lavafalls' but about pools of liquid lava in Molten Core that look nearly identical to ones in Blackrock Depths. BRD's lava streams (i.e., liquid pools with animated surface textures) hurt. Molten Core's lava didn't seem to do so.

I thought that it might be useful, but if the issue is not related to vmaps, I really don't care about that particular map. The only time I ever touched that lava unintentionally was on during my first fight with Ragnaros on the official servers gods know how many years ago.

Link to comment
Share on other sites

Yea it might be the lava in Blackrock etc. are actually additional objects, and not just WMO liquid.

Actually from the shape and look of its texturing, i already wondered how it can work with just a uniform liquid grid...apparently, it doesn't :P

If someone knows more, let me know...

Link to comment
Share on other sites

Linker fix for vmap_assembler (win32-Debug)

change Project->Properties->C++->Code generation->RuntimeLibrary to Multithreaded Debug DLL (/MDd)

diff --git a/contrib/vmap_assembler/VC90/vmap_assembler.vcproj b/contrib/vmap_assembler/VC90/vmap_assembler.vcproj
index 41cc29d..378d4b9 100644
--- a/contrib/vmap_assembler/VC90/vmap_assembler.vcproj
+++ b/contrib/vmap_assembler/VC90/vmap_assembler.vcproj
@@ -46,7 +46,7 @@
                PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
                MinimalRebuild="true"
                BasicRuntimeChecks="3"
-                RuntimeLibrary="1"
+                RuntimeLibrary="3"
                EnableEnhancedInstructionSet="1"
                UsePrecompiledHeader="0"
                WarningLevel="3"

then it compiles, extracts and assembles (but I don't know enough of C++ to say if this is the right change)

PS: Thanks for the bars!

Link to comment
Share on other sites

Getting these linking errors:

3>Linking...
3>vmap_assembler.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification
3>MapTree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: char const * __thiscall ACE_Stack_Trace::c_str(void)const " (__imp_?c_str@ACE_Stack_Trace@@QBEPBDXZ) referenced in function "public: bool __thiscall VMAP::StaticMapTree::isInLineOfSight(class G3D::Vector3 const &,class G3D::Vector3 const &)const " (?isInLineOfSight@StaticMapTree@VMAP@@QBE_NABVVector3@G3D@@0@Z)
3>MapTree.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall ACE_Stack_Trace::ACE_Stack_Trace(int,unsigned int)" (__imp_??0ACE_Stack_Trace@@QAE@HI@Z) referenced in function "public: bool __thiscall VMAP::StaticMapTree::isInLineOfSight(class G3D::Vector3 const &,class G3D::Vector3 const &)const " (?isInLineOfSight@StaticMapTree@VMAP@@QBE_NABVVector3@G3D@@0@Z)
3>..\\bin\\Win32_Debug\\/vmap_assembler.exe : fatal error LNK1120: 2 unresolved externals

Visual Studio 2008 (VC90) with Win32 Debug and Release.

Link to comment
Share on other sites

Hm temporary solution: remove MapTree.cpp (and possibly VMapManager2.cpp) from project.

Eventually i'll have to think about separating assembling and core functions better...the CMake setup just sort of auto-fixes this.

However, there must be some inconsistency regarding incremental linking...but i doubt that this is the cause.

Link to comment
Share on other sites

ACE is a little attention-demanding ie. requires a little attention - make sure it is built as a DLL, and give it the ACE_BUILD_DLL preprocessing parameter.

(Had to dig this up to be able to use CMake fully on another project)

Link to comment
Share on other sites

The commit on master has nothing to do with this, was just a random catch while looking through code...

Also, the problem is not in how ACE is built, the problem is that the assembler is not even linked against ACE.

And since i don't really want it for now, i changed code a bit to exclude core-related diagnostic functions (also want to be able to use log output and similar later, to not just dump errors to console)

Hope it works like that...

Link to comment
Share on other sites

Great contribution! Thank you!

A problem I ran into: when you swim into coilfang reservoir, and find yourself inside it and inside water, then within VMapManager2::GetLiquidLevel: in this line: type = info.hitModel->GetLiquidType(); type is set to 0x80000000 (thus function returns false when ReqLiquidType is MAP_ALL_LIQUIDS), because iLiquid->GetType() returns -1. However, hypothetically, if I allowed 0x80000000 as a liquid type, then the liquid level/depth_level would be set correctly. Anyone else experiencing the same issue?

Sample coordinates: map = 530, x = 689, y = 6869, z = -90

Link to comment
Share on other sites

ouch...that's one big bug...

I blindly implemented the description from wow.dev wiki "(...) If that is set, it will take 0, (...)" without realizing that there exists no entry zero in LiquidType.dbc...i guess the first entry was meant, index zero with ID=1...which is just "water"...

Actually, i'm guessing a lot there anyway :/

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