reman3/Rayman_X/cpa/Appli/Max23Dos/inc/Material.h

135 lines
3.5 KiB
C

/*=========================================================================
*
* Material.h - Material structures
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef MATERIAL_H
#define MATERIAL_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
#include "color.h"
//--- Structures --------------------------------------------------------
typedef struct GEO_tdstGeometricObject_ GEO_tdstGeometricObject ;
typedef struct GLI_tdstTexture_ GLI_tdstTexture;
// multitextures
typedef struct MLT_tdstMultiTexture_
{
xString sName;
xString sTexture;
xString sOption;
xString sLoad;
xString sLinarMipMapping;
xString sPerspectiveCorrection;
float fBlendToColor[3];
float fBlendToAlpha;
}
MLT_tdstMultiTexture;
typedef struct MLT_tdstUVComputing_
{
xString sName;
xString sObject;
int iPosUSpeed;
int iPosU;
int iPosVSpeed;
int iPosV;
int iAngleSpeed;
int iAngleAlpha;
int iScaleU;
int iScaleV;
}
MLT_tdstUVComputing;
// material
typedef struct MLT_tdstMaterial_
{
// name
xString sName;
// flags
BOOL bAlreadySave;
// asociated materials
xString sNameCMT;
BOOL bMaxMaterial;
long lSoundType;
// TEX parameters
xString sQuality[100];
xString sOn[100];
xString sEnable[100];
int iVal[4][100];
xString sMipMapping;
xString sTilingFirst;
xString sTilingSecond;
// VMT parameters
xString sBackface;
xString sMaterialType;
MLT_tdstColor stAmbient;
MLT_tdstColor stDiffuse;
MLT_tdstColor stSpecular;
BOOL bExistAmbient;
BOOL bExistDiffuse;
long lSpecularExponent;
xString sTexture[100];
float fTexture1[100];
long lTexture;
long lCurTexture;
float fScroll1[100];
float fScroll2[100];
long lNbScroll;
// multitextures
long lMultiTexture;
MLT_tdstMultiTexture stMultiTexture[100];
long lUVComputing;
MLT_tdstUVComputing stUVComputing[100];
}
MLT_tdstMaterial;
// game material
typedef struct MLT_tdstGameMaterial_
{
xString sName;
xString sNameCMT;
BOOL bMaxMaterial;
long lSoundType;
}
MLT_tdstGameMaterial;
//--- Functions ---------------------------------------------------------
// load
extern SCR_tde_Anl_ReturnValue MLT_xLoadGameMaterial (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadMaterial (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// files
extern void MLT_vSaveGmtFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveVmtFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveTexFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// save
extern void MLT_vSaveGameMaterial (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveVisualMaterial (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveTexture (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// operations
extern long MLT_vGetCyclingTextNameKey (char *d_ucFileName);
extern BOOL MLT_vGetNonZeroTextNameKey (char *d_ucFileName);
extern void MLT_v2LastLetters (char *d_ucFileName , char *a4_Extend);
#endif // MATERIAL_H