SCO
Arcane
- Joined
- Feb 3, 2009
- Messages
- 16,320
Dear blogdex
I have some findings from my research into bgscript from BG2:ToB version.
Following the well known classics for volatile memory variables:
"you can store them, but not perform arithmetic on them"
"you can store them, but not use them as arguments afterwards"
"you can store them, but can't reassign them"
I've went deeper into the rabbit hole and found gems such as:
"you can store them, but they only change in the next AI tick because we though evaluating conditionals seperatly from initiating the actions they guard was cool and setting a variable is a action (duh, you think we're dumb or something?)"
And now am analyzing the triggers (conditionals) themselves and found this:
"We have a NOT operator, only it's not really a operator, but a flag to the Conditional. This wouldn't make a difference if we weren't monkeys and "forget" about using the flag in some of the return values in some conditionals."
But they did and their !Something returns Something most of time (but not all of the time), for some values of "Something".
I have some findings from my research into bgscript from BG2:ToB version.
Following the well known classics for volatile memory variables:
"you can store them, but not perform arithmetic on them"
"you can store them, but not use them as arguments afterwards"
"you can store them, but can't reassign them"
I've went deeper into the rabbit hole and found gems such as:
"you can store them, but they only change in the next AI tick because we though evaluating conditionals seperatly from initiating the actions they guard was cool and setting a variable is a action (duh, you think we're dumb or something?)"
And now am analyzing the triggers (conditionals) themselves and found this:
"We have a NOT operator, only it's not really a operator, but a flag to the Conditional. This wouldn't make a difference if we weren't monkeys and "forget" about using the flag in some of the return values in some conditionals."
But they did and their !Something returns Something most of time (but not all of the time), for some values of "Something".