void ESoundSource::FillProp(LPCSTR pref, PropItemVec& values) { inherited::FillProp (pref,values); ButtonValue* B; B=PHelper().CreateButton (values, PrepareKey(pref,"Custom\\Controls"), "Play,Stop,Simulate",0); B->OnBtnClickEvent.bind (this,&ESoundSource::OnControlClick); PropValue* V; V=PHelper().CreateChoose (values,PrepareKey(pref,"Source\\WAVE name"), &m_WAVName, smSoundSource); V->OnChangeEvent.bind (this,&ESoundSource::OnChangeWAV); V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Frequency"), &m_Params.freq, 0.0f,2.f); V->OnChangeEvent.bind (this,&ESoundSource::OnChangeSource); V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Volume"), &m_Params.volume, 0.0f,1.f); V->OnChangeEvent.bind (this,&ESoundSource::OnChangeSource); V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Min dist"), &m_Params.min_distance, 0.1f,1000.f,0.1f,1); V->Owner()->Enable (FALSE); V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Max dist"), &m_Params.max_distance, 0.1f,1000.f,0.1f,1); V->Owner()->Enable (FALSE); V=PHelper().CreateFloat (values,PrepareKey(pref,"Source\\Max ai dist"), &m_Params.max_ai_distance, 0.1f,1000.f,0.1f,1); V->Owner()->Enable (FALSE); PHelper().CreateCaption (values,PrepareKey(pref,"Game\\Active time\\Hint"), "Zero - play sound looped round the clock."); PHelper().CreateTime (values,PrepareKey(pref,"Game\\Active time\\From"), &m_ActiveTime.x); PHelper().CreateTime (values,PrepareKey(pref,"Game\\Active time\\To"), &m_ActiveTime.y); PHelper().CreateCaption (values,PrepareKey(pref,"Game\\Play time\\Hint"), "Zero - play sound once."); PHelper().CreateTime (values,PrepareKey(pref,"Game\\Play time\\From"), &m_PlayTime.x); PHelper().CreateTime (values,PrepareKey(pref,"Game\\Play time\\To"), &m_PlayTime.y); PHelper().CreateCaption (values,PrepareKey(pref,"Game\\Pause delta\\Hint"), "Zero - play sound looped."); PHelper().CreateTime (values,PrepareKey(pref,"Game\\Pause delta\\From"), &m_RandomPause.x); PHelper().CreateTime (values,PrepareKey(pref,"Game\\Pause delta\\To"), &m_RandomPause.y); // V=PHelper().CreateFlag32 (values,PHelper().PrepareKey(pref,"Looped"), &m_Flags, flLooped); // V->OnChangeEvent = OnChangeSource; }
void PDomain::FillProp (PropItemVec& items, LPCSTR pref, u32 clr) { PropValue* V; V=PHelper().CreateToken32(items,pref,(u32*)&type,domain_token); V->OnChangeEvent.bind (this,&PDomain::OnTypeChange); V->Owner()->prop_color = TColor(clr); switch(e_type){ case vNum: switch(type){ case PDPoint: V=PHelper().CreateVector (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDLine: V=PHelper().CreateVector (items,PrepareKey(pref,"Point 1"), &v[0],flt_min,flt_max,0.001f,3); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Point 2"), &v[1],flt_min,flt_max,0.001f,3); V->Owner()->prop_color = TColor(clr); break; case PDTriangle: V=PHelper().CreateVector (items,PrepareKey(pref,"Vertex 1"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Vertex 2"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Vertex 3"), &v[2],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDPlane: V=PHelper().CreateVector (items,PrepareKey(pref,"Origin"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Normal"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDBox: V=PHelper().CreateVector (items,PrepareKey(pref,"Min"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Max"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDSphere: V=PHelper().CreateVector (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[3],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[4],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDCylinder: V=PHelper().CreateVector (items,PrepareKey(pref,"Point 1"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Point 2"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDCone: V=PHelper().CreateVector (items,PrepareKey(pref,"Apex"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"End Point"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDBlob: V=PHelper().CreateVector (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[3],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDDisc: V=PHelper().CreateVector (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Normal"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDRectangle: V=PHelper().CreateVector (items,PrepareKey(pref,"Origin"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Basis U"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Basis V"), &v[2],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; default: V=PHelper().CreateVector (items,PrepareKey(pref,"Translate"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Rotate"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVector (items,PrepareKey(pref,"Scale"), &v[2],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; } break; case vAngle: switch(type){ case PDPoint: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDLine: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Point 1"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Point 2"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDTriangle: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Vertex 1"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Vertex 2"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Vertex 3"), &v[2],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDPlane: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Origin"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Normal"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDBox: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Min"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Max"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDSphere: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[3],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[4],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDCylinder: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Point 1"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Point 2"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDCone: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Apex"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"End Point"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDBlob: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[3],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDDisc: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Center"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Normal"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; case PDRectangle: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Origin"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Basis U"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Basis V"), &v[2],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; default: V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Translate"), &v[0],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Rotate"), &v[1],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); V=PHelper().CreateAngle3 (items,PrepareKey(pref,"Scale"), &v[2],flt_min,flt_max,0.001f,3);V->Owner()->prop_color = TColor(clr); break; } break; case vColor: switch(type){ case PDPoint: V=PHelper().CreateVColor (items,PrepareKey(pref,"Center"), &v[0]); V->Owner()->prop_color = TColor(clr); break; case PDLine: V=PHelper().CreateVColor (items,PrepareKey(pref,"Point 1"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Point 2"), &v[1]); V->Owner()->prop_color = TColor(clr); break; case PDTriangle: V=PHelper().CreateVColor (items,PrepareKey(pref,"Vertex 1"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Vertex 2"), &v[1]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Vertex 3"), &v[2]); V->Owner()->prop_color = TColor(clr); break; case PDPlane: V=PHelper().CreateVColor (items,PrepareKey(pref,"Origin"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Normal"), &v[1]); V->Owner()->prop_color = TColor(clr); break; case PDBox: V=PHelper().CreateVColor (items,PrepareKey(pref,"Min"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Max"), &v[1]); V->Owner()->prop_color = TColor(clr); break; case PDSphere: V=PHelper().CreateVColor (items,PrepareKey(pref,"Center"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[3]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[4]); V->Owner()->prop_color = TColor(clr); break; case PDCylinder: V=PHelper().CreateVColor (items,PrepareKey(pref,"Point 1"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Point 2"), &v[1]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7]); V->Owner()->prop_color = TColor(clr); break; case PDCone: V=PHelper().CreateVColor (items,PrepareKey(pref,"Apex"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"End Point"), &v[1]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7]); V->Owner()->prop_color = TColor(clr); break; case PDBlob: V=PHelper().CreateVColor (items,PrepareKey(pref,"Center"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[3]); V->Owner()->prop_color = TColor(clr); break; case PDDisc: V=PHelper().CreateVColor (items,PrepareKey(pref,"Center"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Normal"), &v[1]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Inner"), &f[6]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateFloat (items,PrepareKey(pref,"Radius Outer"), &f[7]); V->Owner()->prop_color = TColor(clr); break; case PDRectangle: V=PHelper().CreateVColor (items,PrepareKey(pref,"Origin"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Basis U"), &v[1]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Basis V"), &v[2]); V->Owner()->prop_color = TColor(clr); break; default: V=PHelper().CreateVColor (items,PrepareKey(pref,"Translate"), &v[0]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Rotate"), &v[1]); V->Owner()->prop_color = TColor(clr); V=PHelper().CreateVColor (items,PrepareKey(pref,"Scale"), &v[2]); V->Owner()->prop_color = TColor(clr); break; } break; } }
void STextureParams::FillProp(LPCSTR base_name, PropItemVec& items, PropValue::TOnChange on_type_change) { OnTypeChangeEvent = on_type_change; PropValue* P = PHelper().CreateToken32 (items, "Type", (u32*)&type, ttype_token); P->OnChangeEvent.bind(this,&STextureParams::OnTypeChange); PHelper().CreateCaption (items, "Source\\Width", shared_str().sprintf("%d",width)); PHelper().CreateCaption (items, "Source\\Height", shared_str().sprintf("%d",height)); PHelper().CreateCaption (items, "Source\\Alpha", HasAlpha ()?"present":"absent"); switch (type){ case ttImage: case ttCubeMap: PHelper().CreateToken32 (items, "Format", (u32*)&fmt, tfmt_token); PHelper().CreateFlag32 (items, "MipMaps\\Enabled", &flags, flGenerateMipMaps); PHelper().CreateToken32 (items, "MipMaps\\Filter", (u32*)&mip_filter, tparam_token); P = PHelper().CreateToken32 (items, "Bump\\Mode", (u32*)&bump_mode, tbmode_token); P->OnChangeEvent.bind(this,&STextureParams::OnTypeChange); if (tbmUse==bump_mode){ AnsiString path; path = base_name; PHelper().CreateChoose (items, "Bump\\Texture", &bump_name, smTexture, path.c_str()); } PHelper().CreateFlag32 (items, "Details\\Use As Diffuse", &flags, flDiffuseDetail); PHelper().CreateFlag32 (items, "Details\\Use As Bump (R2)",&flags, flBumpDetail); PHelper().CreateChoose (items, "Details\\Texture", &detail_name, smTexture); PHelper().CreateFloat (items, "Details\\Scale", &detail_scale, 0.1f,10000.f,0.1f,2); PHelper().CreateToken32 (items, "Material\\Base", (u32*)&material, tmtl_token); PHelper().CreateFloat (items, "Material\\Weight", &material_weight ); // PHelper().CreateFlag32 (items, "Flags\\Binary Alpha", &flags, flBinaryAlpha); PHelper().CreateFlag32 (items, "Flags\\Dither", &flags, flDitherColor); PHelper().CreateFlag32 (items, "Flags\\Dither Each MIP", &flags, flDitherEachMIPLevel); PHelper().CreateFlag32 (items, "Flags\\Implicit Lighted", &flags, flImplicitLighted); PHelper().CreateFlag32 (items, "Fade\\Enable Color", &flags, flFadeToColor); PHelper().CreateFlag32 (items, "Fade\\Enabled Alpha", &flags, flFadeToAlpha); PHelper().CreateU8 (items, "Fade\\Delay 'n' MIP", &fade_delay, 0,255); PHelper().CreateU32 (items, "Fade\\% of color to fade in",&fade_amount, 0,100,0); PHelper().CreateColor (items, "Fade\\Color", &fade_color ); PHelper().CreateU8 (items, "Fade\\Alpha", ((u8*)&fade_color)+3,0,255); PHelper().CreateFlag32 (items, "Border\\Enabled Color", &flags, flColorBorder); PHelper().CreateFlag32 (items, "Border\\Enabled Alpha", &flags, flAlphaBorder); PHelper().CreateColor (items, "Border\\Color", &border_color ); break; case ttBumpMap: PHelper().CreateChoose (items, "Bump\\Special NormalMap", &ext_normal_map_name,smTexture,base_name); PHelper().CreateFloat (items, "Bump\\Virtual Height (m)", &bump_virtual_height, 0.f, 0.1f, 0.001f, 3); break; case ttNormalMap: P = PHelper().CreateToken32 (items, "Format", (u32*)&fmt, tfmt_token); P->Owner()->Enable(false); PHelper().CreateFlag32 (items, "MipMaps\\Enabled", &flags, flGenerateMipMaps); PHelper().CreateToken32 (items, "MipMaps\\Filter", (u32*)&mip_filter, tparam_token); break; case ttTerrain: P = PHelper().CreateToken32 (items, "Format", (u32*)&fmt, tfmt_token); P->Owner()->Enable(false); PHelper().CreateFlag32 (items, "Details\\Use As Diffuse", &flags, flDiffuseDetail); PHelper().CreateFlag32 (items, "Details\\Use As Bump (R2)",&flags, flBumpDetail); PHelper().CreateChoose (items, "Details\\Texture", &detail_name, smTexture); PHelper().CreateFloat (items, "Details\\Scale", &detail_scale, 0.1f,10000.f,0.1f,2); PHelper().CreateToken32 (items, "Material\\Base", (u32*)&material, tmtl_token); PHelper().CreateFloat (items, "Material\\Weight", &material_weight ); P = PHelper().CreateFlag32 (items, "Flags\\Implicit Lighted", &flags, flImplicitLighted); P->Owner()->Enable(false); break; } }
void PS::CPGDef::FillProp(LPCSTR pref, ::PropItemVec& items, ::ListItem* owner) { ButtonValue* B; B=PHelper().CreateButton (items,PrepareKey(pref,"Control"),"Play,Stop,Stop...",ButtonValue::flFirstOnly); B->OnBtnClickEvent.bind (this,&PS::CPGDef::OnControlClick); B=PHelper().CreateButton (items,PrepareKey(pref,"Edit"),"Append Effect",ButtonValue::flFirstOnly); B->OnBtnClickEvent.bind (this,&PS::CPGDef::OnEffectsEditClick); PropValue* V; PHelper().CreateName (items,PrepareKey(pref,"Name"),&m_Name,owner); V=PHelper().CreateFloat (items,PrepareKey(pref,"Time Limit (s)"), &m_fTimeLimit, -1.f,1000.f); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); u32 i = 0; for (EffectIt it=m_Effects.begin(); it!=m_Effects.end(); ++it,++i) { u32 clr = (*it)->m_Flags.is(CPGDef::SEffect::flEnabled)?clBlack:clSilver; AnsiString nm = AnsiString("Effect #")+(i+1); B=PHelper().CreateButton(items,PrepareKey(pref,nm.c_str()),"Preview,Select,Remove",ButtonValue::flFirstOnly); B->tag = it-m_Effects.begin(); B->OnBtnClickEvent.bind (this,&PS::CPGDef::OnEffectEditClick); B->Owner()->prop_color = clr; V=PHelper().CreateChoose(items,PrepareKey(pref,nm.c_str(),"Name"),&(*it)->m_EffectName,smPE); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; V=PHelper().CreateFloat (items,PrepareKey(pref,nm.c_str(),"Start Time (s)"),&(*it)->m_Time0, 0.f,1000.f); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; V=PHelper().CreateFloat (items,PrepareKey(pref,nm.c_str(),"End Time (s)"), &(*it)->m_Time1, 0.f,1000.f); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; V=PHelper().CreateFlag32(items,PrepareKey(pref,nm.c_str(),"Deferred Stop"),&(*it)->m_Flags, SEffect::flDefferedStop); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; V=PHelper().CreateFlag32(items,PrepareKey(pref,nm.c_str(),"Enabled"), &(*it)->m_Flags, SEffect::flEnabled); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; V=PHelper().CreateFlag32(items,PrepareKey(pref,nm.c_str(),"Children\\On Birth"), &(*it)->m_Flags, SEffect::flOnBirthChild); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; if ((*it)->m_Flags.is(SEffect::flOnBirthChild)){ V=PHelper().CreateChoose(items,PrepareKey(pref,nm.c_str(),"Children\\On Birth\\Effect Name"), &(*it)->m_OnBirthChildName,smPE); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; } V=PHelper().CreateFlag32(items,PrepareKey(pref,nm.c_str(),"Children\\On Play"), &(*it)->m_Flags, SEffect::flOnPlayChild); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; if ((*it)->m_Flags.is(SEffect::flOnPlayChild)){ V=PHelper().CreateChoose (items,PrepareKey(pref,nm.c_str(),"Children\\On Play\\Effect Name"), &(*it)->m_OnPlayChildName,smPE); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; V=PHelper().CreateFlag32(items,PrepareKey(pref,nm.c_str(),"Children\\On Play\\Play After Stop"), &(*it)->m_Flags, SEffect::flOnPlayChildRewind); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; } V=PHelper().CreateFlag32(items,PrepareKey(pref,nm.c_str(),"Children\\On Dead"), &(*it)->m_Flags, SEffect::flOnDeadChild); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; if ((*it)->m_Flags.is(SEffect::flOnDeadChild)){ V=PHelper().CreateChoose (items,PrepareKey(pref,nm.c_str(),"Children\\On Dead\\Effect Name"), &(*it)->m_OnDeadChildName,smPE); V->OnChangeEvent.bind (this,&PS::CPGDef::OnParamsChange); V->Owner()->prop_color = clr; } } }
int main(int argc, char** argv) { // init Proposer View view(0); std::set<node_id_t> *nodes_set = view.get_nodes(); std::set<node_id_t>::iterator it; PropValue value; value.set_data("Hello World!"); Proposer prop(view, value); // Phase I Propser call prepare LOG_INFO("Test_Proposer Started Phase I"); MsgPrepare *msg_pre = prop.msg_prepare(); LOG_INFO("Test_Proposer (ballot_id_):%llu", msg_pre->ballot_id()); // std::cout << "ballot_id_ " << msg_pre->ballot_id() <<std::endl; // Phase I Propsergot msg_pre and send to all acceptors for (it = nodes_set->begin(); it != nodes_set->end(); it++) { // send } // listen to all acceptors got ack in different threads // fake acceptors here View view2(0); Acceptor acc(view2); MsgAckPrepare *msg_ack_pre = acc.handle_msg_prepare(msg_pre); MsgAccept *msg_acc = NULL; switch (prop.handle_msg_promise(msg_ack_pre)) { case DROP: break; case NOT_ENOUGH: break; case CONTINUE: { // Send to all acceptors in view LOG_INFO("Test_Proposer Continue to Phase II"); msg_acc = prop.msg_accept(); for (it = nodes_set->begin(); it != nodes_set->end(); it++) { // send msg_accpect } break; } default: { //RESTART msg_pre = prop.restart_msg_prepare(); for (it = nodes_set->begin(); it != nodes_set->end(); it++) { // send msg_prepare } } } //Not Good to avoid error if (!msg_acc) return -1; MsgAckAccept *msg_ack_acc = acc.handle_msg_accept(msg_acc); // handle_msg_accepted switch (prop.handle_msg_accepted(msg_ack_acc)) { case DROP: break; case NOT_ENOUGH: break; case CHOOSE: { // std::cout << "One Value is Successfully Chosen!" << std::endl; LOG_INFO("Test_Proposer One Value is Successfully Chosen!"); // destroy all the threads retlated to this paxos_instance // TODO break; } default: { //RESTART msg_pre = prop.restart_msg_prepare(); for (it = nodes_set->begin(); it != nodes_set->end(); it++) { // send msg_prepare } } } return 0; }