Made scripts access Animation fields via accessors and mutators, instead of using raw pointers.
svn-id: r33891
This commit is contained in:
parent
2679f6ce7a
commit
c70d09bc26
4 changed files with 83 additions and 19 deletions
|
@ -289,7 +289,7 @@ int16 ScriptVar::getValue() {
|
|||
}
|
||||
|
||||
if (_flags & kParaField) {
|
||||
return *_pvalue;
|
||||
return _field->getValue();
|
||||
}
|
||||
|
||||
if (_flags & kParaRandom) {
|
||||
|
@ -311,7 +311,7 @@ void ScriptVar::setValue(int16 value) {
|
|||
}
|
||||
|
||||
if (_flags & kParaField) {
|
||||
*_pvalue = value;
|
||||
_field->setValue(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -321,11 +321,16 @@ void ScriptVar::setLocal(LocalVariable *local) {
|
|||
_flags |= (kParaLocal | kParaLValue);
|
||||
}
|
||||
|
||||
void ScriptVar::setField(int16 *field) {
|
||||
_pvalue = field;
|
||||
void ScriptVar::setField(Animation *anim, AnimationField::AccessorFunc accessor, AnimationField::MutatorFunc mutator) {
|
||||
_field = new AnimationField(anim, accessor, mutator);
|
||||
_flags |= (kParaField | kParaLValue);
|
||||
}
|
||||
|
||||
void ScriptVar::setField(Animation *anim, AnimationField::AccessorFunc accessor) {
|
||||
_field = new AnimationField(anim, accessor);
|
||||
_flags |= kParaField;
|
||||
}
|
||||
|
||||
void ScriptVar::setImmediate(int16 value) {
|
||||
_value = value;
|
||||
_flags |= kParaImmediate;
|
||||
|
@ -341,9 +346,14 @@ ScriptVar::ScriptVar() {
|
|||
_flags = 0;
|
||||
_local = 0;
|
||||
_value = 0;
|
||||
_pvalue = 0;
|
||||
_field = 0;
|
||||
}
|
||||
|
||||
ScriptVar::~ScriptVar() {
|
||||
delete _field;
|
||||
}
|
||||
|
||||
|
||||
Table::Table(uint32 size) : _size(size), _used(0), _disposeMemory(true) {
|
||||
_data = (char**)calloc(size, sizeof(char*));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue