| 974 | |
| 975 | // |
| 976 | const char *getObjectTokenField(const char *name) |
| 977 | { |
| 978 | const char *dot = dStrchr(name, '.'); |
| 979 | if(name[0] != '$' && dot) |
| 980 | { |
| 981 | S32 len = dStrlen(name); |
| 982 | AssertFatal(len < sizeof(scratchBuffer)-1, "Sim::getVariable - object name too long"); |
| 983 | dMemcpy(scratchBuffer, name, len+1); |
| 984 | |
| 985 | char * token = dStrtok(scratchBuffer, "."); |
| 986 | SimObject * obj = Sim::findObject(token); |
| 987 | if(!obj) |
| 988 | return(""); |
| 989 | |
| 990 | token = dStrtok(0, ".\0"); |
| 991 | if(!token) |
| 992 | return(""); |
| 993 | |
| 994 | while(token != NULL) |
| 995 | { |
| 996 | const char * val = obj->getDataField(StringTable->insert(token), 0); |
| 997 | if(!val) |
| 998 | return(""); |
| 999 | |
| 1000 | token = dStrtok(0, ".\0"); |
| 1001 | if(token) |
| 1002 | { |
| 1003 | obj = Sim::findObject(token); |
| 1004 | if(!obj) |
| 1005 | return(""); |
| 1006 | } |
| 1007 | else |
| 1008 | return(val); |
| 1009 | } |
| 1010 | } |
| 1011 | |
| 1012 | return NULL; |
| 1013 | } |
| 1014 | |
| 1015 | const char *getVariable(const char *name, const char* def) |
| 1016 | { |
no test coverage detected