| 5006 | } |
| 5007 | |
| 5008 | hx::Object *runObject(CppiaCtx *ctx) HXCPP_OVERRIDE |
| 5009 | { |
| 5010 | int n = items.size(); |
| 5011 | switch(arrayType) |
| 5012 | { |
| 5013 | case arrBool: |
| 5014 | { |
| 5015 | Array<bool> result = Array_obj<bool>::__new(n,n); |
| 5016 | for(int i=0;i<n;i++) |
| 5017 | { |
| 5018 | result->__unsafe_set(i,items[i]->runInt(ctx)!=0); |
| 5019 | BCR_CHECK; |
| 5020 | } |
| 5021 | return result.mPtr; |
| 5022 | } |
| 5023 | case arrUnsignedChar: |
| 5024 | { |
| 5025 | Array<unsigned char> result = Array_obj<unsigned char>::__new(n,n); |
| 5026 | for(int i=0;i<n;i++) |
| 5027 | { |
| 5028 | result->__unsafe_set(i,items[i]->runInt(ctx)); |
| 5029 | BCR_CHECK; |
| 5030 | } |
| 5031 | return result.mPtr; |
| 5032 | } |
| 5033 | case arrInt: |
| 5034 | { |
| 5035 | Array<int> result = Array_obj<int>::__new(n,n); |
| 5036 | for(int i=0;i<n;i++) |
| 5037 | { |
| 5038 | result->__unsafe_set(i,items[i]->runInt(ctx)); |
| 5039 | BCR_CHECK; |
| 5040 | } |
| 5041 | return result.mPtr; |
| 5042 | } |
| 5043 | case arrFloat: |
| 5044 | { |
| 5045 | Array<Float> result = Array_obj<Float>::__new(n,n); |
| 5046 | for(int i=0;i<n;i++) |
| 5047 | { |
| 5048 | result->__unsafe_set(i,items[i]->runFloat(ctx)); |
| 5049 | BCR_CHECK; |
| 5050 | } |
| 5051 | return result.mPtr; |
| 5052 | } |
| 5053 | case arrFloat32: |
| 5054 | { |
| 5055 | Array<float> result = Array_obj<float>::__new(n,n); |
| 5056 | for(int i=0;i<n;i++) |
| 5057 | { |
| 5058 | result->__unsafe_set(i,items[i]->runFloat(ctx)); |
| 5059 | BCR_CHECK; |
| 5060 | } |
| 5061 | return result.mPtr; |
| 5062 | } |
| 5063 | case arrString: |
| 5064 | { |
| 5065 | Array<String> result = Array_obj<String>::__new(n,n); |