// The current version static ParamBlockDescID descVer1[] = { { TYPE_FLOAT, NULL, TRUE, bend_angle }, { TYPE_FLOAT, NULL, TRUE, bend_dir }, { TYPE_INT, NULL, FALSE, bend_axis }, { TYPE_INT, NULL, FALSE, bend_fromto }, { TYPE_FLOAT, NULL, TRUE, bend_from }, { TYPE_FLOAT, NULL, TRUE, bend_to } }; #define PBLOCK_LENGTH 6 #define NUM_OLDVERSIONS 2 // CAL-11/10/00: need to include all versions. // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,3,0), ParamVersionDesc(descVer1,PBLOCK_LENGTH,1) }; // CAL-11/10/00: These are not used anymore. // Current version // #define CURRENT_VERSION 1 // static ParamVersionDesc curVersion(descVer1,PBLOCK_LENGTH,CURRENT_VERSION); //--- BendDlgProc ------------------------------- //////////////////////////////////////////////////////////////////////////////////////// //
static ParamBlockDescID pbdesc3[] = { { TYPE_FLOAT, NULL, TRUE,plate_blur }, // blur { TYPE_FLOAT, NULL, TRUE,plate_thick }, // noise amount { TYPE_FLOAT, NULL, TRUE,plate_thick }, // noise levels { TYPE_FLOAT, NULL, TRUE,plate_thick }, // noise size { TYPE_FLOAT, NULL, TRUE,plate_thick } // noise phase }; static ParamBlockDescID pbdesc[] = { { TYPE_FLOAT, NULL, TRUE,plate_blur }, // blur { TYPE_FLOAT, NULL, TRUE,plate_thick }, // thickness { TYPE_FLOAT, NULL, TRUE,plate_reframt }, // refraction amount }; static ParamVersionDesc versions[4] = { ParamVersionDesc(pbdesc1,2,1), ParamVersionDesc(pbdesc2,1,2), ParamVersionDesc(pbdesc3,5,3), ParamVersionDesc(pbdesc,3,4) }; //static ParamVersionDesc curVersion(pbdesc,NPARAMS,PLATE_VERSION); void Plate::Init() { ivalid.SetEmpty(); nth = 1; do_nth = TRUE; applyBlur = TRUE; useEnvMap = TRUE; SetBlur(1.0f, TimeValue(0)); SetThick(0.5f, TimeValue(0));
//Current Param Block Descriptor static ParamBlockDescID WardShaderPB[ WARD_SHADER_NPARAMS ] = { { TYPE_RGBA, NULL, TRUE,1 }, // ambient { TYPE_RGBA, NULL, TRUE,2 }, // diffuse { TYPE_RGBA, NULL, TRUE,3 }, // specular { TYPE_FLOAT, NULL, TRUE,21 }, // diffuse level { TYPE_FLOAT, NULL, TRUE,5 }, // specularLevel { TYPE_FLOAT, NULL, TRUE,4 }, // glossiness x { TYPE_FLOAT, NULL, TRUE,22 }, // glossiness y }; #define WARD_NUMOLDVER 1 static ParamVersionDesc oldVersions[WARD_NUMOLDVER] = { ParamVersionDesc(WardShaderPB, WARD_SHADER_NPARAMS, 0), }; //---------------------------------------------------------------------------------------- //---- Ward Elliptical Gaussian Anisotropic Shader --------------------------------------- //---------------------------------------------------------------------------------------- class WardShaderDlg; class WardShader : public ExposureMaterialControlImp<WardShader, AddExposureMaterialControl<Shader> > { friend class WardShaderDlg; friend class ExposureMaterialControlImp<WardShader, AddExposureMaterialControl<Shader> >; protected:
{ TYPE_POINT3, NULL, TRUE, grad_color3 }, // col3 { TYPE_INT, NULL, FALSE , grad_type }, // type { TYPE_FLOAT, NULL, TRUE, grad_amount }, // amount { TYPE_FLOAT, NULL, TRUE, grad_size }, // size { TYPE_FLOAT, NULL, TRUE, grad_phase }, // phase { TYPE_FLOAT, NULL, TRUE, grad_center }, // center { TYPE_INT, NULL, FALSE, grad_noise_type }, // noise type { TYPE_FLOAT, NULL, TRUE, grad_levels }, // levels { TYPE_FLOAT, NULL, TRUE, grad_low_thresh }, // low thresh { TYPE_FLOAT, NULL, TRUE, grad_high_thresh }, // high thresh { TYPE_FLOAT, NULL, TRUE, grad_thresh_smooth }, // thresh smoothing }; // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(pbdesc1, 7, 1), ParamVersionDesc(pbdesc2, 8, 2), ParamVersionDesc(pbdesc3, 10, 3), ParamVersionDesc(pbdesc4, 13, 4), }; #define NUM_OLDVERSIONS 4 void Gradient::Init() { if (uvGen) uvGen->Reset(); else ReplaceReference( UVGEN_REF, GetNewDefaultUVGen()); if (texout) texout->Reset(); else ReplaceReference( TEXOUT_REF, GetNewDefaultTextureOutput()); ivalid.SetEmpty(); }
static ParamBlockDescID descVer0[] = { { TYPE_FLOAT, NULL, TRUE, 0 }, { TYPE_FLOAT, NULL, TRUE, 1 }, }; static ParamBlockDescID descVer1[] = { { TYPE_FLOAT, NULL, TRUE, 0 }, { TYPE_FLOAT, NULL, TRUE, 1 }, { TYPE_INT, NULL, FALSE, 4 }, }; #define PBLOCK_LENGTH 3 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,2,0) }; #define NUM_OLDVERSIONS 1 // Current version #define CURRENT_VERSION 1 static ParamVersionDesc curVersion(descVer1,PBLOCK_LENGTH,CURRENT_VERSION); //--- TypeInDlgProc -------------------------------- class TriPatchTypeInDlgProc : public ParamMapUserDlgProc { public: TriPatchObject *ob; TriPatchTypeInDlgProc(TriPatchObject *o) {ob=o;} BOOL DlgProc(TimeValue t,IParamMap *map,HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
IDC_THICKNESS,IDC_THICKSPIN, MIN_RADIUS,MAX_RADIUS, SPIN_AUTOSCALE) }; #define PARAMDESCPIPE_LENGTH 2 static ParamBlockDescID descVer0[] = { { TYPE_FLOAT, NULL, TRUE, 0 }, { TYPE_FLOAT, NULL, TRUE, 1 } }; #define PBLOCK_LENGTH 2 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,3,0) // This is a dummy entry!!! }; #define NUM_OLDVERSIONS 0 // No old ones yet! // Current version #define CURRENT_VERSION 0 static ParamVersionDesc curVersion(descVer0,PBLOCK_LENGTH,CURRENT_VERSION); //--- TypeInDlgProc -------------------------------- class DonutTypeInDlgProc : public ParamMapUserDlgProc { public: DonutObject *dob; DonutTypeInDlgProc(DonutObject *d) {dob=d;} INT_PTR DlgProc(TimeValue t,IParamMap *map,HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
}; static ParamBlockDescID pbdesc3[] = { { TYPE_FLOAT, NULL, TRUE,noise_size }, // size { TYPE_RGBA, NULL, TRUE,noise_color1 }, // col1 { TYPE_RGBA, NULL, TRUE,noise_color2 }, // col2 { TYPE_FLOAT, NULL, TRUE,noise_phase }, // phase { TYPE_FLOAT, NULL, TRUE,noise_levels }, // levels { TYPE_FLOAT, NULL, TRUE,noise_lowthresh }, // low thresh { TYPE_FLOAT, NULL, TRUE,noise_hithresh }, // high thresh }; // Current version params static ParamVersionDesc versions[] = { ParamVersionDesc(pbdesc1,3,1), // Version 1 params ParamVersionDesc(pbdesc2,4,2), // Version 2 params ParamVersionDesc(pbdesc3,7,3), // Version 2 params }; #define NUM_OLDVERSIONS 3 float Noise::avgAbsNs = -1.0f; #define IN_TO_M(x) (x / 39.370079f) void Noise::Init() { if (xyzGen) xyzGen->Reset(); else ReplaceReference( XYZGEN_REF, GetNewDefaultXYZGen()); if (texout) texout->Reset(); else ReplaceReference( TEXOUT_REF, GetNewDefaultTextureOutput());
); // For the old ParamBlock static ParamBlockDescID descVer0[] = { { TYPE_FLOAT, NULL, TRUE, PB_LENGTH }, { TYPE_FLOAT, NULL, TRUE, PB_WIDTH } }; #define NUM_PARAM_V0 2 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0, NUM_PARAM_V0, 0) }; /*********************************************************************/ // Callbacks /*********************************************************************/ class EllipseTypeInDlgProc : public ParamMap2UserDlgProc { public: EllipseObject *ro; EllipseTypeInDlgProc(EllipseObject *d) { ro=d; } INT_PTR DlgProc(TimeValue t,IParamMap2 *map,HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam); void DeleteThis() { delete this; } };
#define STRAUSS_NCOLBOX 1 static int colID[STRAUSS_NCOLBOX] = { IDC_STD_COLOR2 }; //Current Param Block Descriptor static ParamBlockDescID StraussShaderPB[ STRAUSS_SHADER_NPARAMS ] = { { TYPE_RGBA, NULL, TRUE,st_diffuse }, // diffuse { TYPE_FLOAT, NULL, TRUE,-1 }, // ambient level { TYPE_FLOAT, NULL, TRUE,st_glossiness }, // glossiness { TYPE_FLOAT, NULL, TRUE,st_metalness }, // metalness }; #define STRAUSS_NUMOLDVER 1 static ParamVersionDesc oldVersions[STRAUSS_NUMOLDVER] = { ParamVersionDesc(StraussShaderPB, STRAUSS_SHADER_NPARAMS, 0), }; //---------------------------------------------------------------------------------------- // Straus Shader, from CGA Nov 1990, "Realistic lighting model for computer animators" //---------------------------------------------------------------------------------------- // note: We replace std opacity & std reflection, these are automatic in the strauss model #define STRAUSS_PARAMS (STD_PARAM_DIFFUSE_CLR+STD_PARAM_GLOSSINESS\ +STD_PARAM_SPECULAR_LEV+STD_EXTRA_DLG+STD_EXTRA_REFRACTION) class StraussShaderDlg; class StraussShader : public ExposureMaterialControlImp<StraussShader, AddExposureMaterialControl<Shader> > { friend class StraussShaderCB;
{ TYPE_RGBA, NULL, TRUE, onb_diffuse }, // diffuse { TYPE_RGBA, NULL, TRUE, onb_specular }, // specular { TYPE_RGBA, NULL, TRUE, onb_self_illum_color }, // self-illum color { TYPE_FLOAT, NULL, TRUE, onb_self_illum_amnt }, // selfIllum { TYPE_FLOAT, NULL, TRUE, onb_glossiness }, // glossiness { TYPE_FLOAT, NULL, TRUE, onb_specular_level }, // specularLevel { TYPE_FLOAT, NULL, TRUE, onb_soften }, // soften { TYPE_FLOAT, NULL, TRUE, onb_roughness }, // diffuse roughness { TYPE_FLOAT, NULL, TRUE, -1 }, // diffuse reflectivity { TYPE_FLOAT, NULL, TRUE, onb_diffuse_level }, // diffuse level }; #define ON_NUMOLDVER 1 static ParamVersionDesc oldVersions[ON_NUMOLDVER] = { ParamVersionDesc(ONShaderPB, 8, 0), }; static ParamVersionDesc curVersion(ONShaderPB, ON_SHADER_NPARAMS, ON_SHADER_PB_VERSION); //---------------------------------------------------------------------------------------- //---- Oren-Nayar Extended Diffuse Shader, w/ Blinn specular hilite ---------------------- //---------------------------------------------------------------------------------------- class OrenNayarShaderDlg; class OrenNayarBlinnShader : public ExposureMaterialControlImp<OrenNayarBlinnShader, CombineComponentsCompShader> { friend class ONShaderCB; friend class OrenNayarShaderDlg; friend class ExposureMaterialControlImp<OrenNayarBlinnShader, CombineComponentsCompShader>; protected:
{ TYPE_INT, NULL, FALSE, 2 }, { TYPE_FLOAT, NULL, FALSE, 3 }, { TYPE_FLOAT, NULL, TRUE, 4 }, { TYPE_FLOAT, NULL, TRUE, 5 }, { TYPE_FLOAT, NULL, TRUE, 6 }, { TYPE_INT, NULL, FALSE, 7 }, }; #define WINDPBLOCK_LENGTH 8 //#define CURRENT_WINDVERSION 1 #define NUM_OLDVERSIONS 2 static ParamVersionDesc windversions[] = { ParamVersionDesc(descWindVer0,7,0), ParamVersionDesc(descWindVer1,8,1), }; //static ParamVersionDesc windcurVersion(descWindVer1,WINDPBLOCK_LENGTH,CURRENT_WINDVERSION); //--- WindObject Methods --------------------------------------------- void WindObject::BeginEditParams( IObjParam *ip,ULONG flags,Animatable *prev) { if (!hSot) hSot = ip->AddRollupPage( hInstance, MAKEINTRESOURCE(IDD_WINDGRAV_SOT), DefaultSOTProc,
{ TYPE_RGBA, NULL, TRUE,wood_color1 }, // col1 { TYPE_RGBA, NULL, TRUE,wood_color2 } // col2 }; static int nameID[] = { IDS_DS_WOODSIZE, IDS_DS_WOODR1, IDS_DS_WOODR2, IDS_DS_COLOR1, IDS_DS_COLOR2 }; static int colID[2] = { IDC_WOOD_COL1, IDC_WOOD_COL2 }; static Class_ID woodClassID(WOOD_CLASS_ID,0); static float noiseTable[NOISE_DIM+1][NOISE_DIM+1][NOISE_DIM+1]; static int noiseInited = 0; // Array of old versions static ParamVersionDesc versions[1] = { ParamVersionDesc(pbdesc,5,1) }; // per instance gradient block static ParamBlockDesc2 wood_param_blk ( wood_params, _T("parameters"), 0, &woodCD, P_AUTO_CONSTRUCT + P_AUTO_UI, 1, //rollout IDD_WOOD, IDS_DS_WOOD_PARAMS, 0, 0, NULL, // params wood_map1, _T("map1"), TYPE_TEXMAP, P_OWNERS_REF, IDS_PW_MAP1, p_refno, 2, p_subtexno, 0, p_ui, TYPE_TEXMAPBUTTON, IDC_WOOD_TEX1, p_end, wood_map2, _T("map2"), TYPE_TEXMAP, P_OWNERS_REF, IDS_PW_MAP2, p_refno, 3, p_subtexno, 1, p_ui, TYPE_TEXMAPBUTTON, IDC_WOOD_TEX2,
{ TYPE_FLOAT, NULL, TRUE, cellular_highthresh }, // high thresh { TYPE_INT, NULL, FALSE, cellular_type }, // type { TYPE_INT, NULL, FALSE, cellular_fractal }, // fractal { TYPE_FLOAT, NULL, TRUE, cellular_iteration },// iterations { TYPE_INT, NULL, FALSE, cellular_map1_on }, // use cell col map { TYPE_INT, NULL, FALSE, cellular_map2_on }, // use div1 col map { TYPE_INT, NULL, FALSE, cellular_map3_on }, // use div2 col map { TYPE_FLOAT, NULL, TRUE, cellular_rough },// rough { TYPE_FLOAT, NULL, TRUE, cellular_smooth },// smooth { TYPE_INT, NULL, FALSE, cellular_adaptive }, // adaptive }; #define PBLOCK_LENGTH 18 static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,12,0), ParamVersionDesc(descVer1,15,1), ParamVersionDesc(descVer2,18,2) }; #define NUM_OLDVERSIONS 3 //#define CURRENT_VERSION 2 //static ParamVersionDesc curVersion(descVer2,PBLOCK_LENGTH,CURRENT_VERSION); /* //--- CellTexParamDlg ------------------------------------------------------- CellTexParamDlg::CellTexParamDlg(CellTex *m,IMtlParams *i,HWND hMedit) { dadMgr.Init(this);
{TYPE_RGBA, NULL, TRUE ,matte_color } }; static ParamBlockDescID pbdesc[] = { {TYPE_FLOAT, NULL, TRUE,matte_shadow_brightness }, {TYPE_RGBA, NULL, TRUE,matte_color }, {TYPE_FLOAT, NULL, TRUE,matte_reflection_amount } }; #define MATTE_VERSION 3 #define NUM_OLDVERSIONS 3 #define NPARAMS 3 // Array of old versions static ParamVersionDesc versions[NUM_OLDVERSIONS] = { ParamVersionDesc(pbdesc0,1,0), ParamVersionDesc(pbdesc1,2,1), ParamVersionDesc(pbdesc,3,2) }; //static ParamVersionDesc curVersion(pbdesc,NPARAMS,MATTE_VERSION); // Code for saving Max R2 files ------------------- /* static void NotifyPreSaveOld(void *param, NotifyInfo *info) { Matte *mt = (Matte *)param; if (GetSavingVersion()==2000) { mt->savepb = mt->pblock; mt->pblock = UpdateParameterBlock(pbdesc,3,mt->savepb,pbdesc1,2,1); }
{ TYPE_FLOAT, NULL, TRUE, 0 }, { TYPE_INT, NULL, TRUE, 1 }, { TYPE_INT, NULL, FALSE, 2 }, { TYPE_INT, NULL, FALSE, 3 }, { TYPE_INT, NULL, FALSE, 4 }, { TYPE_INT, NULL, FALSE, 5 }, { TYPE_INT, NULL, FALSE, 6 }, { TYPE_INT, NULL, FALSE, 7 }, { TYPE_INT, NULL, FALSE, 8 }, { TYPE_INT, NULL, FALSE, 9 } }; #define PBLOCK_LENGTH 10 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,4,0), ParamVersionDesc(descVer1,5,1), ParamVersionDesc(descVer2,6,2), ParamVersionDesc(descVer3,7,3), ParamVersionDesc(descVer4,8,4), ParamVersionDesc(descVer5,9,5) }; #define NUM_OLDVERSIONS 6 // Current version #define CURRENT_VERSION 6 static ParamVersionDesc curVersion(descVer6,PBLOCK_LENGTH,CURRENT_VERSION); ExtrudeMod::ExtrudeMod(BOOL create) { //watje new mapping ver < 4 of this modifier use the old mapping
ParamBlockDescID descObjVer0[] = { { TYPE_FLOAT, NULL, TRUE, 0 }, { TYPE_FLOAT, NULL, TRUE, 1 }, { TYPE_FLOAT, NULL, TRUE, 2 }}; ParamBlockDescID descObjVer1[] = { { TYPE_FLOAT, NULL, TRUE, 0 }, { TYPE_FLOAT, NULL, TRUE, 1 }, { TYPE_FLOAT, NULL, TRUE, 2 }, { TYPE_FLOAT, NULL, TRUE, 3 }}; #define PBLOCK_LENGTH 4 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descObjVer0,3,0) }; #define NUM_OLDVERSIONS 1 // Current version #define CURRENT_VERSION 1 static ParamVersionDesc curVersion(descObjVer1,PBLOCK_LENGTH,CURRENT_VERSION); static ParamUIDesc descParam[] = { // Length ParamUIDesc( PB_OSMTOWSM_LENGTH, EDITTYPE_UNIVERSE, IDC_OSMTOWSM_LENGTH,IDC_OSMTOWSM_LENGTHSPIN, float(-1.0E30),float(1.0E30),
// And enumerate the parameters within that block: enum { kFexAmount, kFexScale, kFexType }; // Old ParamBlockDescID used with old ParamBlock-1: static ParamBlockDescID descVer0[] = { { TYPE_FLOAT, NULL, TRUE, kFexAmount }, { TYPE_FLOAT, NULL, TRUE, kFexScale }, { TYPE_INT, NULL, FALSE, kFexType } // type - note old values were either 0 (for local normal) or 1 (for "from center"). }; #define PBLOCK_LENGTH 3 #define NUM_OLDVERSIONS 1 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc (descVer0, 3, 0) }; // Parameters static ParamBlockDesc2 face_extrude_param_blk (kFaceExtrudeParams, _T("Face Extrude Parameters"), 0, &fextrudeDesc, P_AUTO_CONSTRUCT + P_AUTO_UI, kFEX_PBLOCK_REF, // rollout IDD_FEX_PARAM, IDS_PARAMETERS, 0, 0, NULL, // Parameters kFexAmount, _T("FaceExtrudeAmount"), TYPE_FLOAT, P_RESET_DEFAULT|P_ANIMATABLE, IDS_FEX_AMOUNT, p_default, 0.0f, p_range, -BIGFLOAT, BIGFLOAT, p_ui, TYPE_SPINNER, EDITTYPE_UNIVERSE, IDC_FEX_AMOUNT, IDC_FEX_AMOUNTSPIN, SPIN_AUTOSCALE, p_end,
static ParamBlockDescID descVer1[] = { { TYPE_INT, NULL, FALSE, 0 }, { TYPE_INT, NULL, FALSE, 1 }, { TYPE_FLOAT, NULL, FALSE, 2 }, { TYPE_FLOAT, NULL, FALSE, 3 }, { TYPE_FLOAT, NULL, FALSE, 4 }, { TYPE_FLOAT, NULL, FALSE, 5 }, { TYPE_FLOAT, NULL, FALSE, 6 }, { TYPE_FLOAT, NULL, FALSE, 7 }, }; #define NUM_OLD_VERSIONS 1 static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,7,0), }; // Current version #define CURRENT_VERSION 1 static ParamVersionDesc curVersion(descVer1, PB_NA_LENGTH, CURRENT_VERSION); class NavInfoParamDlgProc : public ParamMapUserDlgProc { public: NavInfoObject *ob; NavInfoParamDlgProc(NavInfoObject *o) { ob = o; } INT_PTR DlgProc(TimeValue t, IParamMap *map,HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); void DeleteThis() {delete this;} };
{ TYPE_FLOAT, NULL, TRUE, 8 }, { TYPE_FLOAT, NULL, TRUE, 9 }, { TYPE_INT, NULL, FALSE, 10 }, { TYPE_INT, NULL, FALSE, 11 }, { TYPE_FLOAT, NULL, TRUE, 14 }, // max edge2 { TYPE_INT, NULL, FALSE, 12 }, { TYPE_INT, NULL, FALSE, 15 }, }; #define PBLOCK_LENGTH 16 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,13,0), ParamVersionDesc(descVer1,15,0) }; #define NUM_OLDVERSIONS 2 // Current version #define CURRENT_VERSION 2 static ParamVersionDesc curVersion(descVer2,PBLOCK_LENGTH,CURRENT_VERSION); //--- OptDlgProc ------------------------------- class OptDlgProc : public ParamMapUserDlgProc { public: Interface *ip;
static ParamBlockDescID descSmoothVer0[] = { { TYPE_INT, NULL, FALSE, sm_autosmooth }, { TYPE_FLOAT, NULL, TRUE, sm_threshold }, { TYPE_INT, NULL, FALSE, sm_smoothbits } }; static ParamBlockDescID descSmoothVer1[] = { { TYPE_INT, NULL, FALSE, sm_autosmooth }, { TYPE_FLOAT, NULL, TRUE, sm_threshold }, { TYPE_INT, NULL, FALSE, sm_smoothbits }, { TYPE_INT, NULL, FALSE, sm_prevent_indirect }, }; // Array of old versions static ParamVersionDesc versionsSmooth[] = { ParamVersionDesc(descSmoothVer0,3,0), ParamVersionDesc(descSmoothVer1,4,1) }; #define NUM_OLDSMOOTHVERSIONS 2 #define SMOOTHMOD_VERSION_CHUNK 0x1000 IOResult SmoothMod::Load(ILoad *iload) { Modifier::Load(iload); iload->RegisterPostLoadCallback( new ParamBlock2PLCB(versionsSmooth, NUM_OLDSMOOTHVERSIONS, &smooth_param_desc, this, REF_SMOOTH_PBLOCK)); IOResult res; ULONG nb; version = SMOOTHMOD_VER1; // Set default version to old one while (IO_OK==(res=iload->OpenChunk())) {
{ TYPE_FLOAT, NULL, TRUE, 1 }, { TYPE_FLOAT, NULL, TRUE, 8 }, { TYPE_FLOAT, NULL, TRUE, 9 }, { TYPE_INT, NULL, TRUE, 2 }, { TYPE_INT, NULL, TRUE, 3 }, { TYPE_INT, NULL, TRUE, 4 }, { TYPE_INT, NULL, TRUE, 5 }, { TYPE_FLOAT, NULL, TRUE, 6 }, { TYPE_FLOAT, NULL, TRUE, 7 }, { TYPE_INT, NULL, FALSE, 10 } }; #define PBLOCK_LENGTH 11 // Array of old versions static ParamVersionDesc versions[] = { ParamVersionDesc(descVer0,5,0), ParamVersionDesc(descVer1,9,1), ParamVersionDesc(descVer2,10,2) }; #define NUM_OLDVERSIONS 3 // Current version static ParamVersionDesc curVersion(descVer3,PBLOCK_LENGTH,3); #define CURRENT_VERSION 3 //--- TypeInDlgProc -------------------------------- class TorusTypeInDlgProc : public ParamMapUserDlgProc { public: TorusObject *ob;
}; */ // The number of descriptors in the paramDesc array #define PARAMDESC_LENGTH 3 // Parameter block parameters static ParamBlockDescID pbdesc[] = { { TYPE_FLOAT, NULL, TRUE, speckle_size }, // size { TYPE_RGBA, NULL, TRUE, speckle_color1 }, // color 1 { TYPE_RGBA, NULL, TRUE, speckle_color2 } // color 2 }; // The number of parameters in the parameter block #define PB_LENGTH 3 static ParamVersionDesc versions[] = { ParamVersionDesc(pbdesc,3,1) // Version 1 params }; // The names of the parameters in the parameter block static int nameIDs[] = { IDS_DS_SIZE, IDS_DS_COL1, IDS_DS_COL2 }; /* // This is the class that allows the sub-map buttons to be processed. class SpeckleDlgProc : public ParamMapUserDlgProc { public: SpeckleDlg *theDlg; SpeckleDlgProc(SpeckleDlg *s) { theDlg = s; } INT_PTR DlgProc(TimeValue t, IParamMap *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); void DeleteThis() { delete this; } };
ParamBlockDescID descVer1[] = { { TYPE_INT, NULL, FALSE, 0 }, //PB_SYMMETRY { TYPE_FLOAT, NULL, FALSE, 1 }, //PB_CHAOS { TYPE_INT, NULL, FALSE, 2 }, //PB_STARTTIME { TYPE_INT, NULL, FALSE, 3 }, //PB_LASTSFOR { TYPE_FLOAT, NULL, TRUE, 4 }, //PB_DELTA_V { TYPE_FLOAT, NULL, TRUE, 5 }, // PB_DECAY { TYPE_INT, NULL, FALSE, 6 }, // PB_DECAYTYPE { TYPE_FLOAT, NULL, FALSE, 7 }, // PB_ICONSIZE { TYPE_INT, NULL, FALSE, 8 } // Range Indicator }; #define PBLOCK_LENGTH 9 static ParamVersionDesc pbombversions[] = { ParamVersionDesc(descVer0,8,0), ParamVersionDesc(descVer1,9,1), }; #define NUM_OLDVERSIONS 1 #define CURRENT_VERSION 1 static ParamVersionDesc curVersionPBomb(descVer1,PBLOCK_LENGTH,CURRENT_VERSION); //--- Deflect object methods ----------------------------------------- class PBombPostLoadCallback : public PostLoadCallback { public: ParamBlockPLCB *cb; PBombPostLoadCallback(ParamBlockPLCB *c) {cb=c;}