int CLabel::Regist( char *name, int type, int opt, char const *filename, int line ) { if ( name[0]==0 ) return -1; if ( cur>=maxlab ) { // ラベルバッファ拡張 LABOBJ *tmp; int i,oldsize; oldsize = sizeof(LABOBJ)*maxlab; maxlab += def_maxlab; tmp = (LABOBJ *)malloc( sizeof(LABOBJ)*maxlab ); for(i=0;i<maxlab;i++) { tmp[i].flag = -1; } memcpy( (char *)tmp, (char *)mem_lab, oldsize ); free( mem_lab ); mem_lab = tmp; } int label_id = cur; LABOBJ *lab=&mem_lab[cur++]; lab->flag = 1; lab->type = type; lab->opt = opt; lab->eternal = 0; lab->ref = 0; lab->name = RegistSymbol( name ); lab->data = NULL; lab->data2 = NULL; lab->hash = StrCase( lab->name ); lab->rel = NULL; lab->init = LAB_INIT_NO; lab->typefix = LAB_TYPEFIX_NONE; SetDefinition(label_id, filename, line); labels.insert(std::make_pair(lab->name, label_id)); return label_id; }
// Reset to the default state. void ParticleParameter::Reset(){ m_restartOnChange = true; m_index = 0; SetDefinition(k_defaultDefinition, B2_ARRAY_SIZE(k_defaultDefinition)); Set(0); }