2011/5/24 Dylan Smith <[email protected]>: > --- > dlls/d3dx9_36/mesh.c | 117 +++++++++++++++++++++++++++++++++++++++++++++++-- > 1 files changed, 112 insertions(+), 5 deletions(-) > > diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c > index fa32797..20b3262 100644 > --- a/dlls/d3dx9_36/mesh.c > +++ b/dlls/d3dx9_36/mesh.c ... > + strcpy(defaults->pParamName, diffuse_paramname); > + defaults->pValue = defaults->pParamName + sizeof(diffuse_paramname); > + defaults->Type = D3DXEDT_FLOATS; > + defaults->NumBytes = sizeof(D3DCOLORVALUE); > + memcpy(defaults->pValue, &material_ptr->MatD3D.Diffuse, > sizeof(D3DCOLORVALUE)); > + (defaults + 1)->pParamName = > (LPSTR)((D3DCOLORVALUE*)defaults->pValue + 1); > + defaults++; > + > + strcpy(defaults->pParamName, power_paramname); > + defaults->pValue = defaults->pParamName + sizeof(power_paramname); > + defaults->Type = D3DXEDT_FLOATS; > + defaults->NumBytes = sizeof(FLOAT); > + *(FLOAT*)defaults->pValue = material_ptr->MatD3D.Power; > + (defaults + 1)->pParamName = (LPSTR)((FLOAT*)defaults->pValue + 1); > + defaults++; ...
A nitpick maybe, but I think you could avoid to repeat the same code for each parameter by means of a loop driven by a table. It may be worth a try if it doesn't become more cumbersome than the current approach.
