- Joined
- Apr 19, 2008
- Messages
- 2,565
I have this idea that you could write a program where you choose a map (even if it is optimized and protected) and then it ports the map to 1.29, fixing any compatibility issues automatically.
What is any reason not to do this? I did not make it yet, but I believe it could be done. DrSuperGood created a Java lib for BLPs that is supposed to be super good so we should be able to tell which BLPs are "corrupted" as per the 1.29 definition. Also, for maps from before Patch 1.24, there is a forward port for any return bug system that can be done in an automated way which I used to produce a running version of the TToR mod (which I last had working on 1.21) that worked on 1.28.
We know the scope of what must be done to port a map into the modern environment. Why don't we have this automatic updater tool? Any reason it couldn't be done (in case I try to write it later)?
Then we could begin to unify the existing community and get people stuck on 1.26 or 1.28 to have their maps run on 1.29.
Obviously memory hack would not be supported because you can't automatically move that stuff to 1.29 because it's a bad idea that shouldn't be supported and it's actually bad for me to mention it here as though it was ever a legitimate development decision made by any map developer to use such a thing. But last night I popped open old RPG maps made for Patch 1.21 and before, and played them in widescreen on 1.29, and all of these old maps worked flawlessly. The only places where little API obscurities have broken recent maps is when people tried to do illogical but functional operations -- such as BLPs with glitched mipmaps for smaller filesize and JASS stuff with the return bug, which was removed in 1.22/1.23 under the erroneous assumption that removing it would fix i2c. Hashtables were added to try to give maps the same general API behavior as the return bug, but pre-122 return bug maps all died. Removing the return bug didn't fix i2c, though, and so it was later in 1.27/1.28 where i2c memory hacking was legitimately removed by disallowing JASS bytecode to assign a value to the pointer of an array variable.
These updates have created little bizarre schizms in the community of people who just want to play the game and get things done. Yet, no update was unknown, and no update legitimately stopped previous legitimate in-game behavior from being available. And so, logically, all content authors have created should be playable on the unified modern Warcraft III.
Edit: This application should also include a UITile05 and UITile06 generator, operating to the best of it's ability
What is any reason not to do this? I did not make it yet, but I believe it could be done. DrSuperGood created a Java lib for BLPs that is supposed to be super good so we should be able to tell which BLPs are "corrupted" as per the 1.29 definition. Also, for maps from before Patch 1.24, there is a forward port for any return bug system that can be done in an automated way which I used to produce a running version of the TToR mod (which I last had working on 1.21) that worked on 1.28.
We know the scope of what must be done to port a map into the modern environment. Why don't we have this automatic updater tool? Any reason it couldn't be done (in case I try to write it later)?
Then we could begin to unify the existing community and get people stuck on 1.26 or 1.28 to have their maps run on 1.29.
Obviously memory hack would not be supported because you can't automatically move that stuff to 1.29 because it's a bad idea that shouldn't be supported and it's actually bad for me to mention it here as though it was ever a legitimate development decision made by any map developer to use such a thing. But last night I popped open old RPG maps made for Patch 1.21 and before, and played them in widescreen on 1.29, and all of these old maps worked flawlessly. The only places where little API obscurities have broken recent maps is when people tried to do illogical but functional operations -- such as BLPs with glitched mipmaps for smaller filesize and JASS stuff with the return bug, which was removed in 1.22/1.23 under the erroneous assumption that removing it would fix i2c. Hashtables were added to try to give maps the same general API behavior as the return bug, but pre-122 return bug maps all died. Removing the return bug didn't fix i2c, though, and so it was later in 1.27/1.28 where i2c memory hacking was legitimately removed by disallowing JASS bytecode to assign a value to the pointer of an array variable.
These updates have created little bizarre schizms in the community of people who just want to play the game and get things done. Yet, no update was unknown, and no update legitimately stopped previous legitimate in-game behavior from being available. And so, logically, all content authors have created should be playable on the unified modern Warcraft III.
Edit: This application should also include a UITile05 and UITile06 generator, operating to the best of it's ability
Last edited: