mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-17 10:52:46 +00:00
Fix all of those stupid PlasmaMax purecalls on exit
This commit is contained in:
@ -83,11 +83,11 @@ protected:
|
||||
HWND fhWnd;
|
||||
|
||||
public:
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
void DeleteThis() { IDeleteSegMap(); }
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
virtual void DeleteThis() { IDeleteSegMap(); }
|
||||
void SetThing(ReferenceTarget *m);
|
||||
|
||||
void Update( TimeValue t, Interval &valid, IParamMap2 *pmap );
|
||||
virtual void Update( TimeValue t, Interval &valid, IParamMap2 *pmap );
|
||||
|
||||
protected:
|
||||
// Set all the controls to their stored value
|
||||
|
@ -28,8 +28,33 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "../resource.h"
|
||||
#include "iparamm2.h"
|
||||
|
||||
class BumpBasicDlgProc;
|
||||
extern BumpBasicDlgProc gBumpBasicDlgProc;
|
||||
class BumpBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
#if 1
|
||||
protected:
|
||||
|
||||
public:
|
||||
BumpBasicDlgProc() {}
|
||||
~BumpBasicDlgProc() { }
|
||||
#endif
|
||||
|
||||
public:
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
virtual void DeleteThis() {}
|
||||
};
|
||||
static BumpBasicDlgProc gBumpBasicDlgProc;
|
||||
|
||||
static ParamBlockDesc2 gBumpBasicPB
|
||||
(
|
||||
@ -60,33 +85,3 @@ static ParamBlockDesc2 gBumpBasicPB
|
||||
end
|
||||
);
|
||||
ParamBlockDesc2 *GetBumpBasicPB() { return &gBumpBasicPB; }
|
||||
|
||||
class BumpBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
#if 1
|
||||
protected:
|
||||
|
||||
public:
|
||||
BumpBasicDlgProc() {}
|
||||
~BumpBasicDlgProc() { }
|
||||
#endif
|
||||
|
||||
public:
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
void DeleteThis() {}
|
||||
};
|
||||
static BumpBasicDlgProc gBumpBasicDlgProc;
|
||||
|
||||
|
||||
|
@ -121,87 +121,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class ClothingBasicDlgProc;
|
||||
extern ClothingBasicDlgProc gClothingBasicDlgProc;
|
||||
|
||||
static ParamBlockDesc2 gClothingMtlPB
|
||||
(
|
||||
plClothingMtl::kBlkBasic, _T("Clothing"), IDS_PASS_BASIC, GetClothingMtlDesc(),
|
||||
P_AUTO_CONSTRUCT + P_AUTO_UI + P_CALLSETS_ON_LOAD, plClothingMtl::kRefBasic,
|
||||
|
||||
// UI
|
||||
IDD_CLOTHING, IDS_PASS_BASIC, 0, 0, &gClothingBasicDlgProc,
|
||||
|
||||
plClothingMtl::kTileset, _T("tileset"), TYPE_INT, 0, 0,
|
||||
p_default, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmap, _T("texmap"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kDescription, _T("ItemDescription"), TYPE_STRING, 0, 0,
|
||||
p_ui, TYPE_EDITBOX, IDC_CLOTHING_DESCRIPTION,
|
||||
end,
|
||||
|
||||
plClothingMtl::kThumbnail, _T("Thumbnail"), TYPE_TEXMAP, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kLayer, _T("Layer"), TYPE_INT, 0, 0,
|
||||
p_default, plClothingElement::kLayerTint1,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkin, _T("SkinLayer"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmap2, _T("TintLayer2"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kDefault, _T("Default"), TYPE_BOOL, 0, 0,
|
||||
p_ui, TYPE_SINGLECHEKBOX, IDC_CLOTHING_DEFAULT,
|
||||
p_default, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kCustomTextSpecs, _T("TextSpecs"), TYPE_STRING, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapBase, _T("BaseLayer"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend1, _T("SkinBlend(1)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend2, _T("SkinBlend(2)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend3, _T("SkinBlend(3)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend4, _T("SkinBlend(4)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend5, _T("SkinBlend(5)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend6, _T("SkinBlend(6)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kDefaultTint1, _T("DefaultTint1"), TYPE_RGBA, 0, 0,
|
||||
p_ui, TYPE_COLORSWATCH, IDC_CLOTHING_TINT1,
|
||||
p_default, Color(1,1,1),
|
||||
end,
|
||||
|
||||
plClothingMtl::kDefaultTint2, _T("DefaultTint2"), TYPE_RGBA, 0, 0,
|
||||
p_ui, TYPE_COLORSWATCH, IDC_CLOTHING_TINT2,
|
||||
p_default, Color(1,1,1),
|
||||
end,
|
||||
|
||||
plClothingMtl::kForcedAcc, _T("ForcedAcc"), TYPE_STRING, 0, 0,
|
||||
p_ui, TYPE_EDITBOX, IDC_CLOTHING_FORCED_ACC,
|
||||
end,
|
||||
|
||||
end
|
||||
);
|
||||
|
||||
class ClothingBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
protected:
|
||||
@ -283,7 +202,7 @@ public:
|
||||
|
||||
virtual void Update(TimeValue t, Interval& valid, IParamMap2* pmap) { UpdateDisplay(pmap); }
|
||||
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// Check if it is for our edit box
|
||||
if (fCustomText.ProcessMsg(map, hWnd, msg, wParam, lParam))
|
||||
@ -427,6 +346,84 @@ public:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void DeleteThis() {}
|
||||
virtual void DeleteThis() {}
|
||||
};
|
||||
static ClothingBasicDlgProc gClothingBasicDlgProc;
|
||||
|
||||
static ParamBlockDesc2 gClothingMtlPB
|
||||
(
|
||||
plClothingMtl::kBlkBasic, _T("Clothing"), IDS_PASS_BASIC, GetClothingMtlDesc(),
|
||||
P_AUTO_CONSTRUCT + P_AUTO_UI + P_CALLSETS_ON_LOAD, plClothingMtl::kRefBasic,
|
||||
|
||||
// UI
|
||||
IDD_CLOTHING, IDS_PASS_BASIC, 0, 0, &gClothingBasicDlgProc,
|
||||
|
||||
plClothingMtl::kTileset, _T("tileset"), TYPE_INT, 0, 0,
|
||||
p_default, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmap, _T("texmap"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kDescription, _T("ItemDescription"), TYPE_STRING, 0, 0,
|
||||
p_ui, TYPE_EDITBOX, IDC_CLOTHING_DESCRIPTION,
|
||||
end,
|
||||
|
||||
plClothingMtl::kThumbnail, _T("Thumbnail"), TYPE_TEXMAP, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kLayer, _T("Layer"), TYPE_INT, 0, 0,
|
||||
p_default, plClothingElement::kLayerTint1,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkin, _T("SkinLayer"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmap2, _T("TintLayer2"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kDefault, _T("Default"), TYPE_BOOL, 0, 0,
|
||||
p_ui, TYPE_SINGLECHEKBOX, IDC_CLOTHING_DEFAULT,
|
||||
p_default, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kCustomTextSpecs, _T("TextSpecs"), TYPE_STRING, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapBase, _T("BaseLayer"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend1, _T("SkinBlend(1)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend2, _T("SkinBlend(2)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend3, _T("SkinBlend(3)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend4, _T("SkinBlend(4)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend5, _T("SkinBlend(5)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kTexmapSkinBlend6, _T("SkinBlend(6)"), TYPE_TEXMAP_TAB, plClothingMtl::kMaxTiles, 0, 0,
|
||||
end,
|
||||
|
||||
plClothingMtl::kDefaultTint1, _T("DefaultTint1"), TYPE_RGBA, 0, 0,
|
||||
p_ui, TYPE_COLORSWATCH, IDC_CLOTHING_TINT1,
|
||||
p_default, Color(1,1,1),
|
||||
end,
|
||||
|
||||
plClothingMtl::kDefaultTint2, _T("DefaultTint2"), TYPE_RGBA, 0, 0,
|
||||
p_ui, TYPE_COLORSWATCH, IDC_CLOTHING_TINT2,
|
||||
p_default, Color(1,1,1),
|
||||
end,
|
||||
|
||||
plClothingMtl::kForcedAcc, _T("ForcedAcc"), TYPE_STRING, 0, 0,
|
||||
p_ui, TYPE_EDITBOX, IDC_CLOTHING_FORCED_ACC,
|
||||
end,
|
||||
|
||||
end
|
||||
);
|
||||
|
@ -31,8 +31,59 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
class DecalBasicPBAccessor;
|
||||
extern DecalBasicPBAccessor basicAccessor;
|
||||
|
||||
class DecalBasicDlgProc;
|
||||
extern DecalBasicDlgProc gDecalBasicDlgProc;
|
||||
class DecalBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
protected:
|
||||
HIMAGELIST hLockButtons;
|
||||
|
||||
void LoadLockButtons()
|
||||
{
|
||||
static bool loaded = false;
|
||||
if (loaded)
|
||||
return;
|
||||
loaded = true;
|
||||
|
||||
HINSTANCE hInst = hInstance;
|
||||
hLockButtons = ImageList_Create(16, 15, TRUE, 2, 0);
|
||||
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BUTTONS));
|
||||
HBITMAP hMask = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_MASKBUTTONS));
|
||||
ImageList_Add(hLockButtons, hBitmap, hMask);
|
||||
DeleteObject(hBitmap);
|
||||
DeleteObject(hMask);
|
||||
}
|
||||
void ISetLock(HWND hButton)
|
||||
{
|
||||
LoadLockButtons();
|
||||
|
||||
ICustButton *iBut = GetICustButton(hButton);
|
||||
iBut->SetImage(hLockButtons,0,1,0,1,16,15);
|
||||
iBut->SetType(CBT_CHECK);
|
||||
ReleaseICustButton(iBut);
|
||||
}
|
||||
|
||||
public:
|
||||
DecalBasicDlgProc() : hLockButtons(NULL) {}
|
||||
~DecalBasicDlgProc() { if (hLockButtons) ImageList_Destroy(hLockButtons); }
|
||||
|
||||
public:
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_AD));
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_COLORS));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
virtual void DeleteThis() {}
|
||||
};
|
||||
static DecalBasicDlgProc gDecalBasicDlgProc;
|
||||
|
||||
static ParamBlockDesc2 gDecalBasicPB
|
||||
(
|
||||
@ -178,59 +229,3 @@ public:
|
||||
}
|
||||
};
|
||||
static DecalBasicPBAccessor basicAccessor;
|
||||
|
||||
class DecalBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
#if 1
|
||||
protected:
|
||||
HIMAGELIST hLockButtons;
|
||||
|
||||
void LoadLockButtons()
|
||||
{
|
||||
static bool loaded = false;
|
||||
if (loaded)
|
||||
return;
|
||||
loaded = true;
|
||||
|
||||
HINSTANCE hInst = hInstance;
|
||||
hLockButtons = ImageList_Create(16, 15, TRUE, 2, 0);
|
||||
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BUTTONS));
|
||||
HBITMAP hMask = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_MASKBUTTONS));
|
||||
ImageList_Add(hLockButtons, hBitmap, hMask);
|
||||
DeleteObject(hBitmap);
|
||||
DeleteObject(hMask);
|
||||
}
|
||||
void ISetLock(HWND hButton)
|
||||
{
|
||||
LoadLockButtons();
|
||||
|
||||
ICustButton *iBut = GetICustButton(hButton);
|
||||
iBut->SetImage(hLockButtons,0,1,0,1,16,15);
|
||||
iBut->SetType(CBT_CHECK);
|
||||
ReleaseICustButton(iBut);
|
||||
}
|
||||
|
||||
public:
|
||||
DecalBasicDlgProc() : hLockButtons(NULL) {}
|
||||
~DecalBasicDlgProc() { if (hLockButtons) ImageList_Destroy(hLockButtons); }
|
||||
#endif
|
||||
|
||||
public:
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_AD));
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_COLORS));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
void DeleteThis() {}
|
||||
};
|
||||
static DecalBasicDlgProc gDecalBasicDlgProc;
|
||||
|
@ -28,8 +28,87 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
class PartMtlPBAccessor;
|
||||
extern PartMtlPBAccessor partMtl_accessor;
|
||||
|
||||
class ParticleBasicDlgProc;
|
||||
extern ParticleBasicDlgProc gParticleBasicDlgProc;
|
||||
class ParticleBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
public:
|
||||
ParticleBasicDlgProc() {}
|
||||
~ParticleBasicDlgProc() {}
|
||||
|
||||
void UpdateDisplay(IParamMap2 *pmap)
|
||||
{
|
||||
HWND hWnd = pmap->GetHWnd();
|
||||
IParamBlock2 *pb = pmap->GetParamBlock();
|
||||
HWND cbox = GetDlgItem(hWnd, IDC_PARTICLE_NORMAL);
|
||||
plPlasmaMAXLayer *layer = (plPlasmaMAXLayer *)pb->GetTexmap(ParamID(plParticleMtl::kTexmap));
|
||||
PBBitmap *pbbm;
|
||||
ICustButton *bmSelectBtn;
|
||||
|
||||
SendMessage(cbox, CB_SETCURSEL, pb->GetInt(plParticleMtl::kNormal), 0);
|
||||
pbbm = (layer == nil ? nil : layer->GetPBBitmap());
|
||||
|
||||
bmSelectBtn = GetICustButton(GetDlgItem(hWnd,IDC_PARTICLE_TEXTURE));
|
||||
bmSelectBtn->SetText(pbbm ? (TCHAR*)pbbm->bi.Filename() : "(none)");
|
||||
ReleaseICustButton(bmSelectBtn);
|
||||
}
|
||||
|
||||
virtual void Update(TimeValue t, Interval& valid, IParamMap2* pmap) { UpdateDisplay(pmap); }
|
||||
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int id = LOWORD(wParam);
|
||||
int code = HIWORD(wParam);
|
||||
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
HWND cbox = NULL;
|
||||
plPlasmaMAXLayer *layer = (plPlasmaMAXLayer *)pb->GetTexmap(ParamID(plParticleMtl::kTexmap));
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
int j;
|
||||
for (j = 0; j < plParticleMtl::kNumNormalOptions; j++)
|
||||
{
|
||||
cbox = GetDlgItem(hWnd, IDC_PARTICLE_NORMAL);
|
||||
SendMessage(cbox, CB_ADDSTRING, 0, (LPARAM)plParticleMtl::NormalStrings[j]);
|
||||
}
|
||||
UpdateDisplay(map);
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
if (id == IDC_PARTICLE_NORMAL)
|
||||
{
|
||||
pb->SetValue(plParticleMtl::kNormal, t, SendMessage(GetDlgItem(hWnd, id), CB_GETCURSEL, 0, 0));
|
||||
return TRUE;
|
||||
}
|
||||
else if (id == IDC_PARTICLE_TEXTURE)
|
||||
{
|
||||
if (layer == nil)
|
||||
return FALSE;
|
||||
layer->HandleBitmapSelection();
|
||||
UpdateDisplay(map);
|
||||
return TRUE;
|
||||
}
|
||||
else if (id == IDC_PARTICLE_NOFILTER)
|
||||
{
|
||||
if (!layer)
|
||||
return FALSE;
|
||||
if( pb->GetInt(plParticleMtl::kNoFilter) )
|
||||
{
|
||||
layer->GetParamBlockByID( plLayerTex::kBlkBitmap )->SetValue(kBmpNoFilter, t, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer->GetParamBlockByID( plLayerTex::kBlkBitmap )->SetValue(kBmpNoFilter, t, 0);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
virtual void DeleteThis() {}
|
||||
};
|
||||
static ParticleBasicDlgProc gParticleBasicDlgProc;
|
||||
|
||||
#define PL_PARTICLE_MTL_MIN_TILES 1
|
||||
#define PL_PARTICLE_MTL_MAX_TILES 16
|
||||
@ -149,86 +228,3 @@ public:
|
||||
}
|
||||
};
|
||||
static PartMtlPBAccessor partMtl_accessor;
|
||||
|
||||
|
||||
class ParticleBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
public:
|
||||
ParticleBasicDlgProc() {}
|
||||
~ParticleBasicDlgProc() {}
|
||||
|
||||
void UpdateDisplay(IParamMap2 *pmap)
|
||||
{
|
||||
HWND hWnd = pmap->GetHWnd();
|
||||
IParamBlock2 *pb = pmap->GetParamBlock();
|
||||
HWND cbox = GetDlgItem(hWnd, IDC_PARTICLE_NORMAL);
|
||||
plPlasmaMAXLayer *layer = (plPlasmaMAXLayer *)pb->GetTexmap(ParamID(plParticleMtl::kTexmap));
|
||||
PBBitmap *pbbm;
|
||||
ICustButton *bmSelectBtn;
|
||||
|
||||
SendMessage(cbox, CB_SETCURSEL, pb->GetInt(plParticleMtl::kNormal), 0);
|
||||
pbbm = (layer == nil ? nil : layer->GetPBBitmap());
|
||||
|
||||
bmSelectBtn = GetICustButton(GetDlgItem(hWnd,IDC_PARTICLE_TEXTURE));
|
||||
bmSelectBtn->SetText(pbbm ? (TCHAR*)pbbm->bi.Filename() : "(none)");
|
||||
ReleaseICustButton(bmSelectBtn);
|
||||
}
|
||||
|
||||
virtual void Update(TimeValue t, Interval& valid, IParamMap2* pmap) { UpdateDisplay(pmap); }
|
||||
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int id = LOWORD(wParam);
|
||||
int code = HIWORD(wParam);
|
||||
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
HWND cbox = NULL;
|
||||
plPlasmaMAXLayer *layer = (plPlasmaMAXLayer *)pb->GetTexmap(ParamID(plParticleMtl::kTexmap));
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
int j;
|
||||
for (j = 0; j < plParticleMtl::kNumNormalOptions; j++)
|
||||
{
|
||||
cbox = GetDlgItem(hWnd, IDC_PARTICLE_NORMAL);
|
||||
SendMessage(cbox, CB_ADDSTRING, 0, (LPARAM)plParticleMtl::NormalStrings[j]);
|
||||
}
|
||||
UpdateDisplay(map);
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
if (id == IDC_PARTICLE_NORMAL)
|
||||
{
|
||||
pb->SetValue(plParticleMtl::kNormal, t, SendMessage(GetDlgItem(hWnd, id), CB_GETCURSEL, 0, 0));
|
||||
return TRUE;
|
||||
}
|
||||
else if (id == IDC_PARTICLE_TEXTURE)
|
||||
{
|
||||
if (layer == nil)
|
||||
return FALSE;
|
||||
layer->HandleBitmapSelection();
|
||||
UpdateDisplay(map);
|
||||
return TRUE;
|
||||
}
|
||||
else if (id == IDC_PARTICLE_NOFILTER)
|
||||
{
|
||||
if (!layer)
|
||||
return FALSE;
|
||||
if( pb->GetInt(plParticleMtl::kNoFilter) )
|
||||
{
|
||||
layer->GetParamBlockByID( plLayerTex::kBlkBitmap )->SetValue(kBmpNoFilter, t, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer->GetParamBlockByID( plLayerTex::kBlkBitmap )->SetValue(kBmpNoFilter, t, 0);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
void DeleteThis() {}
|
||||
};
|
||||
static ParticleBasicDlgProc gParticleBasicDlgProc;
|
||||
|
@ -59,9 +59,9 @@ class plPassAnimDlgProc : public ParamMap2UserDlgProc, public plMtlChangeCallbac
|
||||
plPassAnimDlgProc();
|
||||
virtual ~plPassAnimDlgProc();
|
||||
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
void DeleteThis() {}
|
||||
void SetThing(ReferenceTarget *m);
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
virtual void DeleteThis() {}
|
||||
virtual void SetThing(ReferenceTarget *m);
|
||||
virtual void Update(TimeValue t, Interval& valid, IParamMap2* pmap);
|
||||
|
||||
void SegmentListChanged( void );
|
||||
|
@ -42,7 +42,7 @@ protected:
|
||||
}
|
||||
|
||||
public:
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (msg)
|
||||
{
|
||||
@ -79,7 +79,7 @@ public:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void DeleteThis() {}
|
||||
virtual void DeleteThis() {}
|
||||
};
|
||||
|
||||
#endif
|
@ -391,8 +391,10 @@ RefTargetHandle plPassMtlBase::GetReference( int i )
|
||||
{
|
||||
if( i >= kRefNotetracks && i < kRefNotetracks + fNotetracks.GetCount() )
|
||||
return fNotetracks[ i - kRefNotetracks ];
|
||||
else
|
||||
hsAssert(false, "shit");
|
||||
|
||||
return NULL;
|
||||
return nil;
|
||||
}
|
||||
|
||||
//// SetReference ////////////////////////////////////////////////////////////
|
||||
|
@ -31,8 +31,60 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
class PassBasicPBAccessor;
|
||||
extern PassBasicPBAccessor basicAccessor;
|
||||
|
||||
class PassBasicDlgProc;
|
||||
extern PassBasicDlgProc gPassBasicDlgProc;
|
||||
class PassBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
protected:
|
||||
HIMAGELIST hLockButtons;
|
||||
|
||||
void LoadLockButtons()
|
||||
{
|
||||
static bool loaded = false;
|
||||
if (loaded)
|
||||
return;
|
||||
loaded = true;
|
||||
|
||||
HINSTANCE hInst = hInstance;
|
||||
hLockButtons = ImageList_Create(16, 15, TRUE, 2, 0);
|
||||
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BUTTONS));
|
||||
HBITMAP hMask = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_MASKBUTTONS));
|
||||
ImageList_Add(hLockButtons, hBitmap, hMask);
|
||||
DeleteObject(hBitmap);
|
||||
DeleteObject(hMask);
|
||||
}
|
||||
void ISetLock(HWND hButton)
|
||||
{
|
||||
LoadLockButtons();
|
||||
|
||||
ICustButton *iBut = GetICustButton(hButton);
|
||||
iBut->SetImage(hLockButtons,0,1,0,1,16,15);
|
||||
iBut->SetType(CBT_CHECK);
|
||||
ReleaseICustButton(iBut);
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
PassBasicDlgProc() : hLockButtons(NULL) {}
|
||||
~PassBasicDlgProc() { if (hLockButtons) ImageList_Destroy(hLockButtons); }
|
||||
|
||||
virtual BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_AD));
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_COLORS));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
virtual void DeleteThis() {}
|
||||
};
|
||||
static PassBasicDlgProc gPassBasicDlgProc;
|
||||
|
||||
static ParamBlockDesc2 gPassBasicPB
|
||||
(
|
||||
@ -179,62 +231,3 @@ public:
|
||||
}
|
||||
};
|
||||
static PassBasicPBAccessor basicAccessor;
|
||||
|
||||
class PassBasicDlgProc : public ParamMap2UserDlgProc
|
||||
{
|
||||
#if 1
|
||||
protected:
|
||||
HIMAGELIST hLockButtons;
|
||||
|
||||
void LoadLockButtons()
|
||||
{
|
||||
static bool loaded = false;
|
||||
if (loaded)
|
||||
return;
|
||||
loaded = true;
|
||||
|
||||
HINSTANCE hInst = hInstance;
|
||||
hLockButtons = ImageList_Create(16, 15, TRUE, 2, 0);
|
||||
HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BUTTONS));
|
||||
HBITMAP hMask = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_MASKBUTTONS));
|
||||
ImageList_Add(hLockButtons, hBitmap, hMask);
|
||||
DeleteObject(hBitmap);
|
||||
DeleteObject(hMask);
|
||||
}
|
||||
void ISetLock(HWND hButton)
|
||||
{
|
||||
LoadLockButtons();
|
||||
|
||||
ICustButton *iBut = GetICustButton(hButton);
|
||||
iBut->SetImage(hLockButtons,0,1,0,1,16,15);
|
||||
iBut->SetType(CBT_CHECK);
|
||||
ReleaseICustButton(iBut);
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
PassBasicDlgProc() : hLockButtons(NULL) {}
|
||||
~PassBasicDlgProc() { if (hLockButtons) ImageList_Destroy(hLockButtons); }
|
||||
#endif
|
||||
|
||||
public:
|
||||
BOOL DlgProc(TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
IParamBlock2 *pb = map->GetParamBlock();
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_AD));
|
||||
ISetLock(GetDlgItem(hWnd, IDC_LOCK_COLORS));
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
void DeleteThis() {}
|
||||
};
|
||||
static PassBasicDlgProc gPassBasicDlgProc;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user