hey! The plugininterface will allow you to create and modify youre own UI.
hey! The plugininterface will allow you to create and modify youre own UI.
Hello mate, really nice program. I know its just Beta but I would like to say some stuff. =)
1) It would be great if you can change the way ADTs are loaded. At the moment 1 ADT is being chosed so you can edit it, but you cant reach the rest before you close that adt and chose the other ones from main menu again. What I mean is something exactly like Noggit, where you can edit all ADTs in one place, so you can create big cities and mountains. =)
2) I really like the way we can add buildings and monsters! Being able to chose the other objects would be good aswell^^ No need to say giving an option to rotate the buildings and delete them I guess as someone already asked for it and you have noted it^^
3) Cant wait for the texture editing =)
4) A sky would be sweet, black colour is just a bit bad^^
5) Sometimes program crashes when you just go back to chose another ADT after closing another.
6) Can you add a tutorial how to add ADT files to a MPQ file so you can play with your changed zone? I know there are many out there, but if you add one to your "Contents", it would be great for everyone =)
Good luck mate, hope you make a great map editor tool in the end.
Hi!
1) Yes this is actually allready implemented, but deactivated. There is a performanceissue with the textures when loading more than one ADT that i need to fix first before i put it into beta.
2) Rotating can already be done, but i took some bad keys for that which are only available on german keyboards. Will add some buttons to the UI for that.
3) Well, same for me
4) Yes, will have a look on that when ive got the other main issues.
5) Yes, one other reason why theres atm only one ADT loaded. Sometimes there are some memoryleaks. Working on a better exception-handling.
6) Of course
Here is the problem (probably).Loading archive 'C:\World of Warcraft 3.2\Data\deDE\locale-deDE.MPQ'
Could not load 'C:\World of Warcraft 3.2\Data\deDE\locale-deDE.MPQ'
EDIT: Full log:
Loading archive 'C:\World of Warcraft 3.2\Data\lichking.MPQ'
Archive 'C:\World of Warcraft 3.2\Data\lichking.MPQ' loaded!
Loading archive 'C:\World of Warcraft 3.2\Data\expansion.MPQ'
Archive 'C:\World of Warcraft 3.2\Data\expansion.MPQ' loaded!
Loading archive 'C:\World of Warcraft 3.2\Data\patch-2.MPQ'
Archive 'C:\World of Warcraft 3.2\Data\patch-2.MPQ' loaded!
Loading archive 'C:\World of Warcraft 3.2\Data\patch.MPQ'
Archive 'C:\World of Warcraft 3.2\Data\patch.MPQ' loaded!
Loading archive 'C:\World of Warcraft 3.2\Data\common-2.MPQ'
Archive 'C:\World of Warcraft 3.2\Data\common-2.MPQ' loaded!
Loading archive 'C:\World of Warcraft 3.2\Data\common.MPQ'
Archive 'C:\World of Warcraft 3.2\Data\common.MPQ' loaded!
Loading archive 'C:\World of Warcraft 3.2\Data\deDE\locale-deDE.MPQ'
Could not load 'C:\World of Warcraft 3.2\Data\deDE\locale-deDE.MPQ'
Loading 'World\Maps\Azeroth\Azeroth_29_51.adt'...
Loading MCIN with size 4096...
Loading MTEX with size 316...
Loading MMDX with size 6029...
Loading MWMO with size 455...
Loading MDDF with size 28800...
Loading MODF with size 448...
WMO: world\wmo\azeroth\buildings\westfall_stable\westfall_stable.wmo
WMO: world\wmo\azeroth\buildings\human_barn_silo\silo.wmo
WMO: world\wmo\azeroth\buildings\moonbrook_human_farm\moonbrook_human_farm.wmo
WMO: world\wmo\azeroth\buildings\prison_camp\prisonlonghouse.wmo
WMO: world\wmo\azeroth\buildings\westfall_lumbermill\westfall_lumbermill.wmo
WMO: world\wmo\azeroth\buildings\westfall_humantwostory\westfall_humantwostory.wmo
WMO: world\wmo\azeroth\buildings\guardtower\guardtower.wmo
Last edited by Xel; 09-18-2009 at 08:59 AM.
No, that problem is solved since about 2 days. It loads locale-deDE, locale-enUS and locale-enGB. Take a look in your log if it trys to load'em. If not, you may have an outdated version of the editor.
/edit:
Didnt update the archive-count, so you may not see that the others get loaded but as they are not needed at all it should work anyways.
/edit2:
that actually looks good, and what happens after that?
Last edited by Cromon; 09-18-2009 at 09:02 AM.
After that the program "stopped working [close program]", it loads and shows the ground for a 0.1 second and then crashes.
Why can't we just work together on one application? I don't really think that "fighting" for the better application is a bit useless.
Fighting? Wtf? I first heard that there there is someone working on noggit about 1 or 2 days before my betarelease... Im not fighting, just coding.
Why not working together on noggit? Short to say: Lot of people (me included) hate noggit. Some hate it because dunno what, i hate it because of the sourcecode (as im not doing any modeledit at all i dont care any other things than the sourcecode). Im disgusted by the formating of the code and i dont like the way things are structured in the sourcode. So, thats one of the two points. The other is as i mentioned in my first posting in this thread. Im coding for fun and for "education". I never took any half-finished project and complete it and ill never do. If i do something i want to do it from scratch to learn about any point of the topic im coding in.
And last but not least: I cant work in a team, i hate if anybody works together with me.
But back to topic:
The plugin-system is nearly finished in its framework. You can add your own stuff to the application! Here is a small little example:
That can be compiled as DLL and put in the Plugin-folder. At startup there gets displayed:Code:#include <iostream> #include "PluginInterface.h" CPluginManager* plugmgr = 0; void SelectionChanged(YEID model) { if(!plugmgr) return; if(model == 0) printf("Selected terrain!\n"); else printf("Selected '%s'\n", plugmgr->GetModelName(model).c_str()); } extern "C" { __declspec(dllexport) void _yplug_info(LPPLUGININFO lpInfo) { lpInfo->pluginName = "Sample plugin"; lpInfo->pluginAutor = "Cromon"; lpInfo->versionMajor = 1; lpInfo->versionMinor = 0; } __declspec(dllexport) void _yplug_register(CPluginManager* mgr) { plugmgr = mgr; mgr->RegisterHook(HOOK_SELECTION_CHANGED, SelectionChanged); } }
And everytime the user changes its selection (model, wmo, terrain) the name gets displayed in the console.Loading 'Sample plugin' by 'Cromon' (Version: 1.0)...
The pluginmanager at the moment is pretty small but will get extended during the evening
So at the moment the pluginmanager gained a lot of features. Here is a bit an advanced code for an example plugin you may write. The sourcecode for a lot of examples will be available with the exe!
This plugin adds 5 buttons. 3 of these buttons adjust rotation of the selected model and the other 2 change the rotationspeed. a label displayes the actual speed!Code:#include <iostream> #include "PluginInterface.h" namespace AdvancedRotation { CPluginManager* pmgr; YEID buttonRX, buttonRY, buttonRZ, buttonSpeedp, buttonSpeedm; YEID selection; YEID slabel; float speed = 1.0f; void ModelChanged(YEID sel) { selection = sel; if(sel != 0) { pmgr->Show(buttonRX); pmgr->Show(buttonRY); pmgr->Show(buttonRZ); pmgr->Show(buttonSpeedp); pmgr->Show(buttonSpeedm); pmgr->Show(slabel); } else { pmgr->Hide(buttonRX); pmgr->Hide(buttonRY); pmgr->Hide(buttonRZ); pmgr->Hide(buttonSpeedp); pmgr->Hide(buttonSpeedm); pmgr->Hide(slabel); } } void ButtonClick(YEID button) { if(selection == 0) return; if(button == buttonRX) pmgr->RotateModel(selection, speed, 0.0f, 0.0f); else if(button == buttonRY) pmgr->RotateModel(selection, 0.0f, speed, 0.0f); else if(button == buttonRZ) pmgr->RotateModel(selection, 0.0f, 0.0f, speed); else if(button == buttonSpeedp) { speed += 0.1f; char txt[20]; sprintf(txt, "Speed: %.01f", speed); pmgr->SetLabelText(slabel, txt); } else if(button == buttonSpeedm && speed > 0.1f) { speed -= 0.1f; char txt[20]; sprintf(txt, "Speed: %.01f", speed); pmgr->SetLabelText(slabel, txt); } } void Init(CPluginManager* mgr) { pmgr = mgr; buttonRX = pmgr->AddButton(20, 350, 40, 30, "Rot X"); buttonRY = pmgr->AddButton(20, 390, 40, 30, "Rot Y"); buttonRZ = pmgr->AddButton(20, 430, 40, 30, "Rot Z"); buttonSpeedp = pmgr->AddButton(70, 355, 50, 30, "Speed+"); buttonSpeedm = pmgr->AddButton(70, 395, 50, 30, "Speed-"); slabel = pmgr->AddLabel(65, 455, "Speed: 1.0"); pmgr->Hide(buttonRX); pmgr->Hide(buttonRY); pmgr->Hide(buttonRZ); pmgr->Hide(buttonSpeedp); pmgr->Hide(buttonSpeedm); pmgr->Hide(slabel); pmgr->RegisterHook(HOOK_SELECTION_CHANGED, AdvancedRotation::ModelChanged); pmgr->AddButtonCallback(buttonRX, ButtonClick); pmgr->AddButtonCallback(buttonRY, ButtonClick); pmgr->AddButtonCallback(buttonRZ, ButtonClick); pmgr->AddButtonCallback(buttonSpeedp, ButtonClick); pmgr->AddButtonCallback(buttonSpeedm, ButtonClick); } }; extern "C" { __declspec(dllexport) void _yplug_info(LPPLUGININFO lpInfo) { lpInfo->pluginName = "AdvancedRotation"; lpInfo->pluginAutor = "Cromon"; lpInfo->versionMajor = 1; lpInfo->versionMinor = 0; } __declspec(dllexport) void _yplug_register(CPluginManager* mgr) { AdvancedRotation::Init(mgr); } }
I hope that there will be several people creating Plugins! (After i figured out my more important issues there will also be a .NET-Plugin-interface).
Greetings and good night
Cromon
Last edited by Cromon; 09-18-2009 at 05:19 PM. Reason: thats more reasonable :D
I still need some help to get it working.. :O
EDIT:
I has some photoshop skills.
Last edited by Xel; 09-19-2009 at 01:20 AM.
Hum, thats strange. If i load 33_29 i get a different view! Ill make a version with some debug-information so we can determine where your application encounters an error!
There is a new version available which allows you to delete selected objects and also a early version of the plugininterface as a C++-Header!
Can't wait for this to be finished! I can't watch the videos on the front page so I was just wondering how to turn on mdx? I found WMOs is - but I have hit every key on my keyboard and MDx is still off.
its just shift + <wmo-turn-on-key> (for me its shift + -)
Whats not working with the video?
Ok thanks. The video is a problem with my computer sorry.