- Just remembered that the true color stuff generates textures differently.  Changed the previous commit to expand 1, 2, and 4 bit grayscale images while reading the PNG instead of changing the palette.

git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/trunk@4289 a95907f1-e10c-0410-b46f-9e587ccb1026
- Fixed more possible NULL derefs from r4264

git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/trunk@4290 a95907f1-e10c-0410-b46f-9e587ccb1026
- Move bitdepth check outside the loop for grayscale unpacking. Also, don't use a multiply for
  1-bit pixels. Use a lookup table for 2-bit pixels, because it's probably faster than a bunch
  of shifts and register juggling.

git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/trunk@4291 a95907f1-e10c-0410-b46f-9e587ccb1026
- Added ACS functions SetCVarString and SetUserCVarString. These work just like their non-string
  counterparts except that their value argument is an ACS string. (Note that they work with any
  type of cvar, not just string cvars.)
- Make UCVarValue::String point to a constant string.

git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/trunk@4292 a95907f1-e10c-0410-b46f-9e587ccb1026
- Added ACS functions GetCVarString and GetUserCVarString. These act like their non-string
  counterparts, except that they return strings. Like strparam, the strings they return are
  only guaranteed to be valid for the tick they are called during. (Note that these work with any
  cvar, not just string ones.)

git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/trunk@4293 a95907f1-e10c-0410-b46f-9e587ccb1026
I hope I don't regret doing this so close before I want to do a release, since it's a pretty
major change to ACS's workings. However, I had an epiphany yesterday and just had to do this, since it seems like too big a deal to hold off until a later release:
- Dynamically generated strings returned via strparam and get(user)cvar now last as long as they
  need to. They do not disappear at the end of each tic. You can now safely store them in
  variables and hold on to them indefinitely. In addition, strings from libraries no longer
  require you to load the exact same libraries in the exact same order. You can even store a
  library's string in a world variable and retrieve it on another map that doesn't load the
  library at all, and it will still be the correct string.
- ACS library IDs now only get 12 bits instead of 16 so that each string table can hold up
  to about a million strings instead of just 65536. This shouldn't be a problem, although it
  means that save games that had strings with the larger IDs stored in variables are no
  longer compatible. Since many saves don't involve libraries at all, and even many that do 
  are not actually affected, I'm not bumping the min save version. The worst that can happen
  is that you get no text at all where some was expected.

git-svn-id: http://mancubus.net/svn/hosted/zdoom/zdoom/trunk@4295 a95907f1-e10c-0410-b46f-9e587ccb1026