As part of my research creating my trigger programming language Neutrino, I have been working on a map and coded it entirely using the Neutrino's language. The programming language has been working perfectly for the past few weeks, and its been reading and writing real StarCraft CHK files for about a week now. Just today I wondered what would happen if I used Neutrino to create strings beyond the string limit of 1024 that we have known about.
So, I stuck this Neutrino code into a map I was already in the middle of.
CODE
#enumerate(testMineralCount, $mineralAmount = arithmaticSequence(0,2500,1))
if(switch["P.ReloadGas"] == true && player["currentPlayer"].resource[ResourceType_Ore] == $mineralAmount) {
display("$mineralAmount", true);
}
testMineralCount#
I tried compiling that with Neutrino. The program took about three minutes to compile (that's why the #enumerate command will never be in a release version, it just makes it as if I typed in 7500 lines of code myself. How slow!) but in the end I had a 7 MB CHK file which compiled down to an 150 KB SCX file, containing over 2500 strings.
To my great surprise and at the same time expectation, the map worked. StarCraft ran the map and its 2500 strings without a hitch, and displayed my mineral amount whenever the switch P.ReloadGas was set. Heimdal did say that he had made a map with 1025 strings, and so I wasn't completely surprised, but still I was quite impressed with myself.
Then I thought "heh, so we've got 2500, what happens if we had 25000?"
I created a new blank test map, wrote some slightly different code that would generate 25000 strings (and 25000 triggers for that matter). It's taking a long time, currently I've had it running for an hour and it has processed 1800 triggers. I'll leave it running overnight and post the result when it completes. However, with the 2500 string map working fine, I don't see why a 25000 string map wouldn't work.
So there you go. Strings beyond 1024 are possible. Voila
I'm posting a copy of the map I was working on that has 2500 strings. I would've made a test map without my triggers in there to annoy you, but it takes too long, and the 25000 string generator is running right now and I don't want to interfere with that. It's in no way finished, and if you open it up and find badly coded parts in it (there are some triggers with always actions in there that server no purpose) I blame the prototype programming language I was using for not being finished enough to have everything perfectly optimised.