• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Campaign Processing Helper v1.1

  • Like
Reactions: Sky_Demon
Campaign Processing Helper (CPH) is a program, which helps to optimize Warcraft III campaigns. Usually the manual process of optimization looks like that:
  • Extract map from the campaign file.
  • Run through Widgetizer.
  • Run through Optimizer.
  • Add optimized map to the campaign file.
  • Repeat steps 1-4 for other maps.
CPH automatizes this process. User just presses one button, and the program does the rest.

If you found any bugs or you have new ideas, feel free to post them here.

Copyright � 2012 Shadow Daemon (aka Spec).
Program uses SFMPQ.DLL by ShadowFlare.

Keywords:
w3n, campaign, optimizer, widgetizer, swdn
Contents

Campaign Processing Helper v1.1 (Binary)

Reviews
Vengeancekael Date: 2012/Aug/24 18:56:41 Comment: [Approved] Very useful tool and also easy to use. Staff Contact - Rules
Level 12
Joined
Jul 11, 2010
Messages
422
This tool makes the campaigns bug because Widgetized map shouldn't be used inside a campaign.

I remind you the widgetizer's purpose.
In normal maps, the datas are loaded this way :

1) Load default War3 object datas,
2) apply object editor transformations to them.

In a widgetized map, object editor datas are transformed into raw Warcraft III object datas and are put in the W3 map with the good path so it replaces the default W3 object datas. So datas are loaded this way :

1) Load replaced War3 object datas,
2) object editor datas are not applied.

But for campaigns, there is one more step :

1) Load default War3 object datas,
2) apply campaign object editor transformations,
3) apply map object editor transformations.

Using widgetized maps inside a non-widgetized campaign (there is no tool yet to widgetize campaign datas) will cause bug because the order of the transformation is screwed. I only tested what happens for 1 mission campaign but it might be worse when you change between 2 levels of the same campaign. The datas are loaded this way in that case :

1) Load replaced War3 object datas (containing map's datas),
2) apply campaign object editor transformations,
3) map object editor datas doesn't do anything.

In practical terms, if the map and the campaign both edit the same field of the same object, the campaign value will be the one applied.

Therefore I suggest you to change the widgetizing part of the tool so it only widgetizes the campaign's datas. I say how to make that in this post. With that, only part of the objects are widgetized but it doesn't bug (and it should be the biggest part).
If you widgetize both the campaign and the maps datas, then the map's datas will be read as "replaced War3 datas" and it will completly ignore the campaign's datas.

Attached are 4 versions of the same campaign sample (campaign datas remove Witch's invisibility and Spellbreaker's spell-steal while map datas remove the Spellbreaker's Control-of-Magic and the Dragon-Ridder's Cloud) :
The first is the normal campaign that WE gives,
The second is the widgetized campaign with normal map,
The third is the normal campaign with widgetized map (same as what your tool does for now),
The last is the widgetized campaign with widgetized map.

Thx for reading :ogre_haosis:.

EDIT: The explanations are still relevant but the solution I gave has flaws (which do not figure in the test campaigns below). The best solution we found is to merge the campaign and map datas and widgetize them afterward.
 

Attachments

  • WidgetTestBase.w3n
    81.4 KB · Views: 227
  • WidgetTest - TF.w3n
    409.9 KB · Views: 206
  • WidgetTest - FT.w3n
    203.6 KB · Views: 215
  • WidgetTest - TT.w3n
    529.9 KB · Views: 205
Last edited:
Top