48#define GAMEMTL_CONVERTED_TO_NOLOD (1<<0)
50#define GAMEMTL_DISPLACEMENT_ROLLUP_OPEN (1<<25)
51#define GAMEMTL_SURFACE_ROLLUP_OPEN (1<<26)
52#define GAMEMTL_PASSCOUNT_ROLLUP_OPEN (1<<27)
53#define GAMEMTL_PASS0_ROLLUP_OPEN (1<<28)
54#define GAMEMTL_PASS1_ROLLUP_OPEN (1<<29)
55#define GAMEMTL_PASS2_ROLLUP_OPEN (1<<30)
56#define GAMEMTL_PASS3_ROLLUP_OPEN (1<<31)
58#define GAMEMTL_ROLLUP_FLAGS ( GAMEMTL_SURFACE_ROLLUP_OPEN | \
59 GAMEMTL_DISPLACEMENT_ROLLUP_OPEN | \
60 GAMEMTL_PASSCOUNT_ROLLUP_OPEN | \
61 GAMEMTL_PASS0_ROLLUP_OPEN | \
62 GAMEMTL_PASS1_ROLLUP_OPEN | \
63 GAMEMTL_PASS2_ROLLUP_OPEN | \
64 GAMEMTL_PASS3_ROLLUP_OPEN )
66#define GAMEMTL_ID_PARTA 0x29397211
67#define GAMEMTL_ID_PARTB 0x28c016c2
74#define GAMEMTL_MAPPING_UV 0
75#define GAMEMTL_MAPPING_ENV 1
76#define GAMEMTL_MAPPING_CHEAP_ENV 2
77#define GAMEMTL_MAPPING_SCREEN 3
78#define GAMEMTL_MAPPING_LINEAR_OFFSET 4
79#define GAMEMTL_MAPPING_SILHOUETTE 5
80#define GAMEMTL_MAPPING_SCALE 6
81#define GAMEMTL_MAPPING_GRID 7
82#define GAMEMTL_MAPPING_ROTATE 8
83#define GAMEMTL_MAPPING_SINE_LINEAR_OFFSET 9
84#define GAMEMTL_MAPPING_STEP_LINEAR_OFFSET 10
85#define GAMEMTL_MAPPING_ZIGZAG_LINEAR_OFFSET 11
86#define GAMEMTL_MAPPING_WS_CLASSIC_ENV 12
87#define GAMEMTL_MAPPING_WS_ENVIRONMENT 13
88#define GAMEMTL_MAPPING_GRID_CLASSIC_ENV 14
89#define GAMEMTL_MAPPING_GRID_ENVIRONMENT 15
90#define GAMEMTL_MAPPING_RANDOM 16
91#define GAMEMTL_MAPPING_EDGE 17
92#define GAMEMTL_MAPPING_BUMPENV 18
100#define GAMEMTL_PSX_TRANS_NONE 0
101#define GAMEMTL_PSX_TRANS_100 1
102#define GAMEMTL_PSX_TRANS_50 2
103#define GAMEMTL_PSX_TRANS_25 3
104#define GAMEMTL_PSX_TRANS_MINUS_100 4
155 RefTargetHandle
Clone(RemapDir &remap = NoRemap());
156 RefResult
NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message);
172 void Update(TimeValue t, Interval& validr);
183 void Shade(ShadeContext& sc);
192 IOResult
Save(ISave* iSave);
193 IOResult
Load(ILoad* iLoad);
325 int pass_ref_index(
int pass) {
return REF_PASS_PARAMETERS + pass; }
327 void update_viewport_display();
330 void ps2_shade(ShadeContext& sc);
333 unsigned int SurfaceType;
342 GameMapsClass * Maps;
343 IParamBlock * MainParameterBlock;
348 Texmap * DisplacementMap;
349 float DisplacementAmt;
357 REF_PASS_PARAMETERS = 2,
362 Mtl *SubstituteMaterial;
Mtl * Substitute_Material()
void GetClassName(TSTR &s)
void Set_PSX_Lighting(int pass, bool val)
Color Get_Specular(int pass, TimeValue t)
int Get_Current_Page(int pass)
int Get_Displacement_Map_Index(void) const
void Set_PS2_Shader_Param_A(int pass, int val)
float Get_Translucency(int pass, TimeValue t)
int Get_Texture_Anim_Type(int pass, int stage)
void Set_Dest_Blend(int pass, int val)
int Get_PS2_Shader_Param_A(int pass)
int Compute_PC_Shader_From_PS2_Shader(int pass)
int Get_Detail_Alpha_Func(int pass)
int Get_Texture_Clamp_U(int pass, int stage)
int Get_Src_Blend(int pass)
void Set_Emissive(int pass, TimeValue t, Color color)
void Set_Texture_Resize(int pass, int stage, bool val)
int pass_stage_to_texmap_index(int pass, int stage)
void Set_Texture_Enable(int pass, int stage, bool val)
float Get_Shininess(int pass, TimeValue t)
void Set_Depth_Mask(int pass, int val)
void Set_Texture(int pass, int stage, Texmap *tex)
void Set_Texture_Clamp_V(int pass, int stage, bool val)
int Get_Texture_Frame_Count(int pass, int stage)
void Set_Shader_Type(int shadertype)
void Set_Substitute_Material(Mtl *m)
int Get_Texture_No_Mipmap(int pass, int stage)
int Get_PS2_Shader_Param_D(int pass)
void Set_PS2_Shader_Param_C(int pass, int val)
friend class GameMtlPostLoad
void SetDiffuse(Color c, TimeValue t)
void Set_Flag(ULONG f, ULONG val)
Color Get_Emissive(int pass, TimeValue t)
float EvalDisplacement(ShadeContext &sc)
GameMtl(BOOL loading=FALSE)
int Get_Sec_Gradient(int pass)
IOResult Save(ISave *iSave)
int Get_Texture_Display(int pass, int stage)
int Get_Pri_Gradient(int pass)
int Get_Texture_Enable(int pass, int stage)
int Get_PSX_Lighting(int pass)
int Get_Map_Channel(int pass, int stage)
Color GetSpecular(int mtlNum=0, BOOL backFace=FALSE)
float Get_Opacity(int pass, TimeValue t)
int Get_Depth_Mask(int pass)
void Set_Ambient(int pass, TimeValue t, Color color)
RefTargetHandle Clone(RemapDir &remap=NoRemap())
void Set_Texture_Anim_Type(int pass, int stage, int val)
void Set_PS2_Shader_Param_D(int pass, int val)
int Get_Detail_Color_Func(int pass)
void Set_Src_Blend(int pass, int val)
void Set_Texture_Display(int pass, int stage, bool val)
void SetReference(int i, RefTargetHandle rtarg)
int Get_Sort_Level(void) const
Color Get_Ambient(int pass, TimeValue t)
ULONG Requirements(int subMtlNum)
void SetAmbient(Color c, TimeValue t)
void Set_PSX_Translucency(int pass, int val)
IOResult Load(ILoad *iLoad)
void Set_Mapping_Type(int pass, int stage, int val)
void Set_Detail_Color_Func(int pass, int val)
int Get_PS2_Shader_Param_C(int pass)
void Set_Detail_Alpha_Func(int pass, int val)
void Set_Depth_Compare(int pass, int val)
Color GetDiffuse(int mtlNum=0, BOOL backFace=FALSE)
void SetSpecular(Color c, TimeValue t)
void Set_Diffuse(int pass, TimeValue t, Color color)
void Set_Texture_No_LOD(int pass, int stage, bool val)
void Set_Pass_Count(int passcount)
int Get_Alpha_Test(int pass)
void Shade(ShadeContext &sc)
void Set_Copy_Specular_To_Diffuse(int pass, bool val)
int Get_Texture_Hint(int pass, int stage)
float GetShininess(int mtlNum=0, BOOL backFace=FALSE)
Texmap * Get_Texture(int pass, int stage)
void Set_Translucency(int pass, TimeValue t, float val)
void Set_Texture_Alpha_Bitmap(int pass, int stage, bool val)
int Compute_PS2_Shader_From_PC_Shader(int pass)
float GetXParency(int mtlNum=0, BOOL backFace=FALSE)
Texmap * GetSubTexmap(int i)
void Set_Sec_Gradient(int pass, int val)
Animatable * SubAnim(int i)
void Set_Pri_Gradient(int pass, int val)
RefTargetHandle GetReference(int i)
Texmap * Get_Displacement_Map(void) const
unsigned int Get_Surface_Type(void) const
void Set_Texture_No_Mipmap(int pass, int stage, bool val)
void Set_Texture_Clamp_U(int pass, int stage, bool val)
void Notify_Changed(void)
int Get_Texture_Publish(int pass, int stage)
void Set_Sort_Level(int level)
Interval Validity(TimeValue t)
int Get_Texture_Clamp_V(int pass, int stage)
void Set_Map_Channel(int pass, int stage, int channel)
void Set_Surface_Type(unsigned int type)
int Get_Dest_Blend(int pass)
int Get_Depth_Compare(int pass)
void Set_Texture_Publish(int pass, int stage, bool val)
float Get_Displacement_Amount(void) const
void Set_Displacement_Amount(float amount)
void SetSubTexmap(int i, Texmap *m)
void Set_Alpha_Test(int pass, int val)
int Get_Copy_Specular_To_Diffuse(int pass)
void Set_Texture_Hint(int pass, int stage, int val)
ParamDlg * CreateParamDlg(HWND hwMtlEdit, IMtlParams *imp)
int Get_Texture_Resize(int pass, int stage)
RefResult NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, PartID &partID, RefMessage message)
void texmap_index_to_pass_stage(int index, int *set_pass, int *set_stage)
float GetShinStr(int mtlNum=0, BOOL backFace=FALSE)
void SetParamDlg(GameMtlDlg *pd)
float Get_Texture_Frame_Rate(int pass, int stage)
int Get_Texture_Alpha_Bitmap(int pass, int stage)
Color GetAmbient(int mtlNum=0, BOOL backFace=FALSE)
void Set_Texture_Frame_Count(int pass, int stage, int val)
Color Get_Diffuse(int pass, TimeValue t)
void SetShininess(float v, TimeValue t)
void Set_Opacity(int pass, TimeValue t, float val)
void Set_Current_Page(int pass, int page)
IParamBlock * Get_Parameter_Block(int pass)
void Set_Specular(int pass, TimeValue t, Color color)
void Set_Shininess(int pass, TimeValue t, float val)
char * Get_Mapping_Arg_Buffer(int pass, int stage=0, unsigned int len=0U)
void Set_Texture_Frame_Rate(int pass, int stage, float val)
Interval DisplacementValidity(TimeValue t)
void Set_PS2_Shader_Param_B(int pass, int val)
int Get_Texture_No_LOD(int pass, int stage)
int Get_Mapping_Type(int pass, int stage=0)
int Get_PSX_Translucency(int pass)
int Get_PS2_Shader_Param_B(int pass)
ClassDesc * Get_PS2_Material_Conversion()
ClassDesc * Get_Game_Material_Desc()
ClassDesc * Get_PS2_Game_Material_Desc()
Class_ID PS2GameMaterialClassID
Class_ID PCToPS2MaterialClassID
Class_ID GameMaterialClassID