Tyrande's lack of inventory

So I recently started replaying Warcraft 3 and started with the Reign of Chaos. I go to do the Night Elf campaign Eternity’s End but notice that there’s an update so I update first. Now at first everything is working normally so I do the first mission with no fuss. However once I started the second mission (Daughters of the Moon) during the campaign Tyrande no longer had an inventory.

11 Likes

That is sad indeedy.

1 Like

Perhaps she decided to adhere to the philosophy of denial of property rights.

STAYING ON 1.30

5 Likes

Default unit inventory ability must have been removed from the hero. nice catch though… now they can look at this and fix it.

NOT STAYING ON 1.30

7 Likes

And on the chapter 3, the guardian spirits after the cutscene drop theyr orbs.

3 Likes

Oh wow. They drop their Orbs? That’s something!

2 Likes

that could mean they got no inventory ether…

3 Likes

I’ve been replaying the campaign and can confirm this issue as well as what MrNonsense says about chapter three.

The same thing happens to Grom in chapter five of the orc campaign “The Hunter of Shadows”, though when he becomes a fel orc he regains his inventory.

7 Likes

Glad I found this thread. Just started replaying the campaigns and was losing my mind why Grom and now Tyrande lost their inventory. Thought I just had terrible memory of the game.

Edit: Just finished Night Elf mission 2. At the start of the third Tyrande is given all the items available on the previous map.

3 Likes

This is because the modern Classic Games Team opened and saved the old campaign missions. In the Reign of Chaos, “all heroes have an inventory” was a hard-coded element of the game.

Now, when the Frozen Throne expansion was released, they wanted the World Editor to have more flexibility. So, “all heroes have an inventory” was removed. Instead, they added an ability called “Inventory (Hero)” to provide heroes with inventory. You can also give this ability to a non-Hero unit, and then the unit will have inventory. This allowed them to add the Backpack upgrade into the game.

Unfortunately, this change meant that any Reign of Chaos custom map where a hero’s non-Hero “normal” ability list had been modified now had stored to that unit an altered list that did not include the Inventory (Hero) ability – because when those units were made, that ability didn’t exist and wasn’t necessary. And, the changed ability list is saved as a list and not as a list of changes . For example, maybe the developers on Mission 2 decided to remove Shadowmeld from Tyrande in 2002 while the mission was being developed. I have not confirmed this is the case, I’m just suggesting it as a possible example. When the 2002 developer wanted to say, “Tyrande does not have Shadowmeld in this mission”, he would click on the “Abilities” list in the editor, click on Shadowmeld, push “Delete Item”, and then press “OK”. But, this saves to Tyrande in the data files that “her ability list is now empty” rather than “her ability list has Shadowmeld removed.”

So, when her ability list gained Inventory (Hero) in The Frozen Throne pre-patch in 2003 to make up for the fact that now “all heroes have an inventory” was no longer a rule, the custom mission’s data files said “overwrite her ability list with an empty list”. This meant that after you patched to the Frozen Throne and played those missions out of the Frozen Throne client, heroes would lose their inventory. This affected my custom maps at the time, since my heroes lost their inventories in that 2003 prepatch. This affected any custom map with a hero with custom unit abilities, for that matter, such as a custom hero who had the Shadowmeld skill but didn’t originally have it.

Maps under active development are easily fixed. But the 2003 team realized that a large number of historic .w3m files had this problem. So they put a special piece of code into the game, if I’m not mistaken, so that maps saved in the old version of the World Editor would automatically add back inventories to heroes affected by the issue. How did they do this? Each map has a stored instance of the World Editor version that saved it. So, a special rule was added to the game code: if the World Editor version that saved a particular map is older than XX (some 2002 patch), then while the map is loading, add back the 6 slot inventory to any hero unit where it is missing.

This was fine for years. It means that if you open Warchasers and you save it again, your saved copy will become bugged because its “saved World Editor version” is now the new version. You can see this on the Megatron X hero. He will lose his inventory if you open Warchasers and save it again and then try to play your modified copy. You will note that this difference appears even when you do not change anything in the map, even though the original map file is fine.

So, now the year is 2019 and the Classic Games team comes alone with a new budget and an opportunity to update the game. They are constantly frustrated by the complexity of the game and the limits of their human mind, so they decided that there should not be a different copy of each campaign map file for each language. Originally, if you played the Warcraft 3 Campaign in Spanish, you played a totally different map file where the text was in Spanish. If you played the Warcraft 3 Campaign in Russian, you played a totally different map file where the text was in Russian.
This complexity frustrated the new Classic Games team, so they decided to add a new system to handle the loading of locales. Now, you should be able to import any file into your map under the path “_locales/.w3mod/file” and then different imports within the single map file would load depending on Language setting. That’s simpler and easier than having many copies of the map – isn’t it?

And it was at this time that the developers opened the map files with the World Editor, or a an automated tool that was a derivative of the same application logic. When they ran this tool on the ancient campaign missions, it saved the “war3map.w3i” map information file inside of each map to now encode that the map is using the newest 1.31 World Editor version – not the ancient 2002 World Editor version that had been encoded in these map files for years.

Unfortunately for the Classic Games team, the part of the game code that knew how to deal with this issue was added hastily to the game client, and not to the World Editor. So, their map modification tool vaporized the inventory of any hero with a custom list of unit abilities – just like we users see happen to Megatron X if we try to make a custom copy of Warchasers.

They are probably going to find it and fix before too long. I gathered from talking to them that they intend to pay a human being to open each campaign map file and press the Add button in the World Editor to add back inventories to each and every campaign hero rather than fixing a problem that arose due to automated tools using again an automated fix. So, something that would take a seasoned programmer about 12 minutes to fix with a “for each map file in folder, for each unit in w3u, if rawcode[0] is upper case, add AInv to ability list, end loop, save map” is instead going to take innumerable hours of fixing because of the way that bureaucracy and ignorance can combine to form one perfect hybrid.

Or, maybe I’m wrong, and they’ll ask a tools guy to spend 12 minutes on it. Until then, you’ll have to make due without an inventory. Or, you could spend the 12 minutes yourself. If you do it yourself, you have to add +1 hour for getting a CASC library to load all of the campaign missions from code, so you don’t have to click them. Then +1 hour for getting an MPQ parser to parse the map file. Then +1 hour for getting a w3u parser to parse the unit data. Then +1 hour for dealing with a bug in the open source w3u parser that you may encounter because it probably wasn’t built for Reign of Chaos style stuff, only for Frozen Throne stuff. Then +1 hour because you need a coffee. Add another hour for a meeting with your team lead, and you’ll be spending probably about the same amount of time as the Tools guy at Blizzard.

12 Likes

To be fair the glitch so far hasn’t been an actual problem. In the Orc campaign it was only half a mission and for the Night Elf thing with Tyrande you were given all the items that were on the previous map. After those two parts so far I haven’t noticed any other inventory glitches.

2 Likes

In my previous post, I said that fixing this bug with the missing inventories would take you 12 minutes if you were in a Blizzard office with the tools and libraries of the company.

With open source buggy libraries, I wrote a script that fixed all of these maps and added all of the inventories to all missions and it took more like 35-40 minutes because I’m on the outside as a player. I recorded the entire programming session on video, and end my video with a version of the campaign missions where all the heroes have their inventories, as they should:

So if Blizzard spends budget money paying a person to open each map and fix each inventory by hand, then they need to have better training for their employees to avoid colossal wastes of time.

11 Likes

06:00 I made my Peon into a Fel Orc Peon over here. Obviously, that’s ridiculous. ©

[Not] by the way, what is the name of the song in The Calling of Tellfrom?

The song in the video I believe was Pisces, by the band Cusco. Between 2003 and 2006 my family used to hang out together in the basement and listen to music from some Cusco discs that we bought at Barnes and Noble – and similar music – and play Warcraft 3. It’s meant as an inside reference to a childhood nostalgia.

Apparently they make that music into YouTube music videos now, like they do with everything:

1 Like

This is an amazing band, absolutely astonishing.

Awesome information. They should hire you to their classic games team, as a consultant or something.

Am doing a playthrough myself, doing the challenges from Aesis Gaming’s youtube channel. He managed to destroy every single base in the game on Hard difficulty, even the ones meant to be impossible to destroy. Good to know what to fix, since it’s only 2 maps I’ll just export, add inventory, reimport through CASC editor like I have before. Good enough for me. But Blizzard should really use your code.

Sept 7, and still no fix for this issue. It’s been 3 months since first reported issues. Yikes.

2 Likes

Crap, the latest patch broke War3Mod.mpq, for now it can’t be used to overwrite game data at all to fix this. I’d have to revert the game to an older patch to fix it.

Just started replaying the campaigns again and noticed these issues too, first with normal Hellscream in the Cenarius mission and now Tyrande in mission 2 of the RoC night elf campaign. Boy, Blizzard sure is taking their sweet time in fixing this issue, that I’m sure is quite easy to fix given their resources.

1 Like

You sure kid yourself with this one (or you pretend to be kidding with a new account). Blizzard may NEVER fix this one. Why? Because they may be working on Reforged instead, and forget Warcraft III Classic altogether.

They will fix this issue, but on Reforged only probably, so “tough luck” kiddo.