Talk:Plan for more flexible stats
This is good. However, another thing to add would be local flags per character. Also, other properties are possible, such as what happens when level up (one possibility is to keep the same value, and other possibility is to keep the same fraction of max), and whether or not it is capped, etc. Moving stuff out of GEN can potentially cause problems with older games; one way to correct it is for both sets of stat caps to count (whichever number is lower) (a similar thing could be used for general bitsets 2, 3, and 43) (there are other ways to correct this, although this way seems simplest and easiest without damaging anything; however, it won't work if the maximums are increased beyond 32767 (but doing that would require all sorts of other changes too, so perhaps it seems unlikely to me)). Also, in the Pokemon game, your own HP you can see the exact number but opponent's HP you can only see how much of the max. --24.207.15.213 11:20, 19 May 2019 (PDT)
- Thanks for the suggestions, I added some to the plan.
- I think that allowing stat properties (e.g. the max value of a stat) to vary from one hero to another is probably just too much work for too little gain. Aside from stat visibility, which is already per-hero, most of the other don't seem like things you're likely to want to have variable.
- If stat caps and stat names are moved out of GEN and STT then the old stat data will still be present, it just won't be updated. So it would still be possible for you to downgrade to an older version of the OHRRPGCE if you really wanted to ignore all our warnings not to. But in general downgrading is not supported and will probably cause things to break (or show an "Unsupported RPG file!" warning).
- Options for enemy HP (and other stat!) meters would be very nice, but I think that belongs in the battle system options, not stat options.
- --TMC (talk) 05:18, 22 May 2019 (PDT)
- You are probably correct about many of these things (enemy stat meters probably do belong in battle system options and not in stat options). However, by "local flags per character" I do not mean allowing stat properties to vary from one hero to another (I agree with you that it is unnecessary); it is rather more like having extra tags that are per character (which are also somewhat like boolean stats, I suppose); I suppose mentioning them with the stats may be confusing. However, I think that ignoring stat caps in GEN may potentially break old games (another possibility other than what I mentioned above is for writes to that part of GEN from scripts to have the side effect of also updating the stat caps (there is no need to change reading; if you use the new commands to update stat caps, then you are not expected to be able to read them back from GEN (although they still will be if you restore a save game, I suppose)); if you use this then there is no need for the editor to update GEN, or for the runtime to use that part of GEN for anything (except upgrading old games), and it also makes it easier to increase the maximum above 32767 later if that is ever done, so perhaps it is simpler). --24.207.15.213 22:06, 31 May 2019 (PDT)
- Oh, good point, I hadn't considered read/writegeneral. Hmm, stat caps were added in tirgoviste (Mar 15 2006). "get hero stat cap" and "set capped hero stat" were added soon afterwards to nightly builds... but the enxt release wasn't until ubersetzung (Sept 21 2007). Worse, those commands were totally broken until Beelzebufo (April 9 2013)!! (Which also added "set hero stat cap"). So noone had used them and the fact that "get hero stat cap" used to be implemented using "read general" doesn't matter. Now it's possible that someone using tirgoviste used read/writegeneral because those commands were missing, but only using writegeneral would break old games if we move stat caps out of GEN, since the old copy of the data would still be there. And I think it's exceedingly unlikely that anyone was using writegeneral to change stat caps, because
- it's unlikely you would want to do that. It would be a really novel thing to do
- as far as I can recall, no one ever asked us for a "set hero stat cap" command, I think I just added that because it was missing
- As of Feb 2017, no game uploaded to CP, SS or any other game in my collection has made use of "set hero stat cap"
- virtually noone uses read/writegeneral unless James or I gave them a script snippet that did so: they don't know how to and it's not really documented. And that's why we have a de facto policy of NOT preserving backcompatibility for read/writegeneral in general unless we think it's actually required or it's not hard. Backcompat for everything is a great deal of work, and the fact is that despite our enormous efforts to preserve backcompat over the years, we have failed. Games from 20 years ago are typically broken. Before ~2007 backcompat was not observed as strictly as it is now, and 10 years of nearly but not perfectly backcompatible changes adds up to something in a game breaking badly.
- And that's why I have no concerns about breaking any games by moving stat caps out of GEN. However I didn't consider damage and level caps...
- Oh, good point, I hadn't considered read/writegeneral. Hmm, stat caps were added in tirgoviste (Mar 15 2006). "get hero stat cap" and "set capped hero stat" were added soon afterwards to nightly builds... but the enxt release wasn't until ubersetzung (Sept 21 2007). Worse, those commands were totally broken until Beelzebufo (April 9 2013)!! (Which also added "set hero stat cap"). So noone had used them and the fact that "get hero stat cap" used to be implemented using "read general" doesn't matter. Now it's possible that someone using tirgoviste used read/writegeneral because those commands were missing, but only using writegeneral would break old games if we move stat caps out of GEN, since the old copy of the data would still be there. And I think it's exceedingly unlikely that anyone was using writegeneral to change stat caps, because