Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
/*=========================================================================
*
* A3dSave.h - Saving functions for A3d file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef A3DSAVE_H
#define A3DSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "MTH.h"
#include "typedef.h"
#include "sprobj.h"
//--- Functions --------------------------------------------------------
// save
extern void MLT_vSaveA3dHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveA3dFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// matrix
extern void MLT_vGetPositions (MLT_tdxHandleToSuperObject *p_hRoot);
extern void MLT_vSetQuaternionFromMatrix (MTH_tdxReal stMatrix[3][3], float stQ[4]);
#endif // A3DSAVE_H

View File

@@ -0,0 +1,83 @@
/*=========================================================================
*
* Actors.h - LVL and ALW functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __ACTORS_H__
#define __ACTORS_H__
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "MTH.h"
#include "typedef.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Structures --------------------------------------------------------
// character
typedef struct MLT_tdstInsertCharacter_
{
xString sName;
xString szLink;
MTH_tdxReal RotMatrix[3][3] ;
MTH_tdxReal ScaleMatrix[3][3] ;
MTH3D_tdstVector Translation ;
xString szInitial;
}
MLT_tdstInsertCharacter;
// always
typedef struct MLT_tdstAlways_
{
xString sName;
xString sLinkCharacter;
long iCharacter;
float fTransparency;
}
MLT_tdstAlways;
//--- Functions --------------------------------------------------------
// lvl file
extern void MLT_vInitLVLLoad (void);
extern void MLT_vSaveInsertCharacter (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern SCR_tde_Anl_ReturnValue MLT_xLoadInsertCharacter (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// alw file
extern void MLT_vInitALWLoad (void);
extern void MLT_vSaveAlways (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern SCR_tde_Anl_ReturnValue MLT_xLoadAlways (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadALWCallback (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// alw library
extern void MLT_vEraseALWLib (void);
extern void MLT_vLoadALWFileInLib (void);
extern void MLT_vSaveLibInALWFile (void);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif // __ACTORS_H__

View File

@@ -0,0 +1,73 @@
/*=========================================================================
*
* Altimaps.h - Altimap functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __ALTIMAP_H__
#define __ALTIMAP_H__
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "geoobj.h"
//--- structures --------------------------------------------------------
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Functions ---------------------------------------------------------
// test function
extern BOOL MLT_bIsAltimap (float **p_fX, int **p_iEqualX, MLT_tdstGeometricObject *p_stGeometric, int *k);
// build function
extern void MLT_vCompleteAltimapStructure (MLT_tdstGeometricObject *p_stGeometric, MLT_tdstElementAltimap* p_stAltimap);
// free functions
extern void MLT_vFreeAltimap (MLT_tdstElementAltimap* p_stAltimap);
extern void MLT_vFree (MLT_tdstElementAltimap* p_stAltimap);
extern void MLT_vFreeAlloc (float *d_fX, float *d_fY, MLT_tdstTripledIndex *d_stVertexIndexes);
// sort functions
extern void MLT_vBubbleSort (float **p_fX, int **p_iXIndex, long lNbPoints);
extern void MLT_vFinalSort (float **p_fX, int **p_iXIndex, int iFirst, int iLast);
extern void MLT_vSortIndex (MLT_tdstTripledIndex *p_stListOfFaces, MLT_tdstElementAltimap* p_stAltimap, int **p_iInd);
// exchange functions
extern void MLT_vExchange (float **p_fX, int *p_iXIndex, long lNbPoints);
extern void MLT_vExchangeIndexes (MLT_tdstTripledIndex **p_fX, int *p_iXIndex, long lNbPoints, long lGeomPoints);
extern void MLT_vExchangeNormals (MTH3D_tdstVector **p_fX, int *p_iXIndex, long lNbPoints);
// order functions
extern void MLT_vOrder (int **p_iValues, int ** p_iInd);
extern void MLT_vArrangeArray (int **p_iCol, int *p_iInd);
// index functions
extern int MLT_iMin (int *p_iValues);
extern int MLT_iGetIndex (int *p_iXIndex, int iValue, long lNbPoints);
extern int MLT_iIndexSquare (MLT_tdstTripledIndex *p_stListOfFaces, MLT_tdstElementAltimap* p_stAltimap, BOOL *bIsFirst);
// search function
extern BOOL MLT_bExist (ACP_tdst2DUVValues *p_stUV, ACP_tdst2DUVValues stUVi, int *iNew, long lNumber);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif // __ALTIMAP_H__

View File

@@ -0,0 +1,39 @@
/*=========================================================================
*
* Anims.h - Animation conversion
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef ANIMS_H
#define ANIMS_H
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Functions --------------------------------------------------------
// computation functions
extern void MLT_vComputeAllAnims (char *RawData, char *GameData);
extern void MLT_vComputeOneAnim (char *sAnimData, char *RawData, char *GameData);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // ANIMS_H

View File

@@ -0,0 +1,64 @@
/*=========================================================================
*
* Banks.h - Bank conversion
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef BANKS_H
#define BANKS_H
//--- Includes --------------------------------------------------------
#include "typedef.h"
#include "sprobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Globals --------------------------------------------------------
extern MLT_tdxHandleToSuperObject g_hBankRoot;
//--- Functions --------------------------------------------------------
// computation functions
extern void MLT_vComputeAllBanks (char *sRawData, char *sGameData);
extern void MLT_vComputeOneBank (char *sBankName, char *sRawData, char *sGameData);
extern void MLT_vComputeOneMod (char *sBankName, char *sModName, char *sRawData, char *sGameData);
// search functions
extern BOOL MLT_bFindFileInBank (char *sFile, char *sIdent, char *sFamily);
extern BOOL MLT_bFindFileInBankInGameData (char *sFile, char *sIdent, char *sFamily);
extern void MLT_vFindInDir (xString sDirectory, xString sGame, char* sFile, char *sIdent, char *sFamily, BOOL *bRes);
extern void MLT_vExistFile (char *sBankName, char *sRawData, char *sDir, char *sExt, int *j);
extern void MLT_vExistFileInBank (char *sBankName, char * sDir, char *sExt, int *j);
extern void MLT_vGetCommonExt (int *iNbCommonFiles);
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // BANKS_H

View File

@@ -0,0 +1,64 @@
/*=========================================================================
*
* Borders.h - Borders & Frontier management
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __BORDER_H__
#define __BORDER_H__
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "geoobj.h"
#include "sprobj.h"
//---------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Functions --------------------------------------------------------
// hierarchy
extern void MLT_vEraseBorderInHierarchy (MLT_tdxHandleToSuperObject hSprObj, char *sParam);
// build fronteer
extern void MLT_vMakeGoThroughInLib (MLT_tdxHandleToSuperObject hSprObj);
// compute border
extern void MLT_vComputeAbsoluteBorder (MLT_tdxHandleToSuperObject hSprObj, char *sSector);
extern void MLT_vComputeAbsoluteValuesOfBorder (MLT_tdxHandleToSuperObject hSprObj, int i, char *sSector);
// border informations
extern void MLT_vInformSectorHasBorder (MLT_tdxHandleToSuperObject hRoot, char *sSectorDest, char *sSectorOrg);
extern void MLT_vPointedSectorOfBorder (MLT_tdstGeometricObject *p_stObj, char *sNameSector);
// minmax
extern void MLT_vComputeMinMaxPointOfBorder (MLT_tdstGeometricObject *p_stObj, MTH3D_tdstVector *p_stMin, MTH3D_tdstVector *p_stMax);
extern void MLT_vComputeMinMaxPointWithMatrix (MLT_tdstGeometricObject *p_stObj, MTH3D_tdstVector *p_stMin, MTH3D_tdstVector *p_stMax, MLT_tdstMatrix *p_stMatrix);
// name
extern void MLT_vSplitSectionInformation (char p, char *p_sSection, char *p_sFirst, char *p_sTemp);
// surface
extern void MLT_vAddSurfaceToSector (MLT_tdxHandleToSuperObject hRoot, char *sSprObj, char *sSector, char *sDirSave);
extern BOOL MLT_bAttachSurfaceToSector (MLT_tdxHandleToSuperObject hRoot, MLT_tdxHandleToSuperObject hSprObj, char *sDirSave);
extern void MLT_vComputeAltitudeSrf (MLT_tdstMatrix *p_stMat, char *sSurface);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif // __LEVEL_H__

View File

@@ -0,0 +1,26 @@
/*=========================================================================
*
* ChlSave.h - Saving functions for CHL file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef CHLSAVE_H
#define CHLSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
//--- Functions --------------------------------------------------------
// save
extern void MLT_vSaveChlHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveChlFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
#endif // CHLSAVE_H

View File

@@ -0,0 +1,40 @@
/*=========================================================================
*
* Banks.h - Class conversion
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef CLASSES_H
#define CLASSES_H
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Functions --------------------------------------------------------
// computation functions
extern void MLT_vComputeAllClasses (char *sRawData, char *sGameData);
extern void MLT_vComputeOneClass (char *sClassName, char *sRawData, char *sGameData);
extern void MLT_vComputeOneClassMod (char *sClassName, char *sModName, char *sRawData, char *sGameData);
//----------------------------------------------------------------------
#ifdef _WINDOWS
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // _WINDOWS
#endif // CLASSES_H

View File

@@ -0,0 +1,295 @@
/*=========================================================================
*
* Element.h - Element definitions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MLT_ELEMENT_H
#define __MLT_ELEMENT_H
//--- Includes --------------------------------------------------------
#include "acp_base.h"
#include "MTH.h"
#include "typedef.h"
#include "fmd.h"
#include "geosprit.h"
//--- Altimaps --------------------------------------------------------
#define MLT_C_xAltiSquareVoid 0
#define MLT_C_xAltiSquareTopRight 1
#define MLT_C_xAltiSquareBottomLeft 2
#define MLT_C_xAltiSquareBothTRBL 3
#define MLT_C_xAltiSquareTopLeft 4
#define MLT_C_xAltiSquareBottomRight 8
#define MLT_C_xAltiSquareBothTLBR 12
#define MLT_C_xAltiSquareBothBRTL MLT_C_xAltiSquareBothTLBR
#define MLT_C_xAltiSquareBothBLTR MLT_C_xAltiSquareBothTRBL
//--- Meshes --------------------------------------------------------
#define MeshFunctionSwap 0xFFFF
#define MeshFunctionEnd 0xFFFE
//--- Structures --------------------------------------------------------
// tripled index
typedef struct MLT_tdstTripledIndex_
{
long a3_xIndex[3];
}
MLT_tdstTripledIndex;
// double index
typedef struct MLT_tdstDoubledIndex_
{
long a2_xIndex[2];
}
MLT_tdstDoubledIndex;
// indexed sprite
typedef struct MLT_tdstIndexedSprite_
{
long xCenterPoint;
MLT_tdstSprite *hSprite;
MTH2D_tdstVector stSize;
}
MLT_tdstIndexedSprite;
// element sprite
typedef struct MLT_tdstElementSprite_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
long xNbSprites;
MLT_tdstIndexedSprite *d_stListOfSprites;
}
MLT_tdstElementSprite;
// element indexed triangle
typedef struct MLT_tdstElementIndexedTriangles_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
xString sMaterial;
MLT_tdstMaterial *hMaterial;
xString sSectorName;
long xNbFaces;
long xNbElementUV;
xString sFacesOf;
xString sUVsOf;
MLT_tdstTripledIndex *d_stListOfFacesTripled;
MLT_tdstTripledIndex *d_stListOfFacesTripledIndexUV;
MTH3D_tdstVector *d_stListOfFacesNormals;
MLT_tdstColor *d_stListOfFacesReceivedLightIntensity;
ACP_tdst2DUVValues *d_stListOfElementUV;
}
MLT_tdstElementIndexedTriangles;
// square
typedef struct MLT_tdstSquare_
{
short Vertex[4];
}
MLT_tdstSquare;
// altimap square
typedef struct MLT_tdstAltimapSquare_
{
unsigned char ucType;
ACP_tdxIndex xFaceIndex;
short sNbFacesForSquare;
}
MLT_tdstAltimapSquare;
// handle of FMD
typedef struct MLT_tdstHandleOfFMD_
{
MLT_tdstTripledIndex stTrianglesIndexUVValues;
xString sMaterial;
}
MLT_tdstHandleOfFMD;
typedef struct MLT_tdstHandleOfFMD_ *MLT_tdxHandleOfFMD;
// element altimap
typedef struct MLT_tdstElementAltimap_
{
char sName[100];
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
long xNbVertexes;
long xNbSquares;
long xNbFaces;
long xNbElementUV;
MTH3D_tdstVector stOrigin;
MTH_tdxReal xDeltaX;
MTH_tdxReal xDeltaY;
ACP_tdxIndex xWidth;
ACP_tdxIndex xDepth;
MTH_tdxReal *d_xHeight;
MTH3D_tdstVector *d_stPointNormals;
MLT_tdstAltimapSquare *d_stSquare;
ACP_tdst2DUVValues *d_stUVValues;
MLT_tdxHandleOfFMD *d_hFMD;
MTH3D_tdstVector *d_stFaceNormals;
}
MLT_tdstElementAltimap;
// face map triangle
typedef struct MLT_tdstFaceMapTriangle_
{
MLT_tdstTripledIndex stFaceTripled;
MLT_tdstFaceMapDescriptor *hFaceMapDescriptor;
}
MLT_tdstFaceMapTriangle;
// face map descriptor
typedef struct MLT_tdstElementFaceMapDescriptors_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
long xNbFaces;
MLT_tdstFaceMapTriangle *d_stListOfFacesQuadrupled;
MTH3D_tdstVector *d_stListOfFacesNormals;
MLT_tdstColor *d_stListOfFacesReceivedLightIntensity;
}
MLT_tdstElementFaceMapDescriptors;
// element mesh
typedef struct MLT_tdstElementTMeshes_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
xString sMaterial;
MLT_tdstMaterial *hMaterial;
long xNbMeshAtoms;
long xNbFaces;
long xNbUV;
long *d_stListOfMeshAtoms;
MTH3D_tdstVector *d_stListOfFacesNormals;
MLT_tdstColor *d_stListOfFacesReceivedLightIntensity;
ACP_tdst2DUVValues *d_stListOfElementUV;
}
MLT_tdstElementTMeshes;
// element point
typedef struct MLT_tdstElementPoints_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
MTH_tdxReal xFatness;
long xNbPoints;
long *d_xListOfPointIndex;
xString sMaterial;
MLT_tdstMaterial *hMaterial;
}
MLT_tdstElementPoints;
// element lines
typedef struct MLT_tdstElementLines_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
MTH_tdxReal xThickness;
long xNbLines;
MLT_tdstDoubledIndex *d_stListOfLineIndex;
xString *d_hListOfLinesMaterial;
MLT_tdstColor *d_stListOfLinesReceivedLightIntensity;
}
MLT_tdstElementLines;
// indexed sphere
typedef struct MLT_tdstIndexedSphere_
{
long xCenterPoint;
MTH_tdxReal xRadius;
xString sMaterial;
MLT_tdstMaterial *hMaterial;
}
MLT_tdstIndexedSphere;
// element sphere
typedef struct MLT_tdstElementSpheres_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
long xNbSpheres;
MLT_tdstIndexedSphere *d_stListOfSpheres;
}
MLT_tdstElementSpheres;
// indexed alighed box
typedef struct MLT_tdstIndexedAlignedBox_
{
long xMinPoint;
long xMaxPoint;
xString sMaterial;
MLT_tdstMaterial *hMaterial;
}
MLT_tdstIndexedAlignedBox;
// element aligned box
typedef struct MLT_tdstElementAlignedBoxes_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
long xNbAlignedBoxes;
MLT_tdstIndexedAlignedBox *d_stListOfAlignedBoxes;
}
MLT_tdstElementAlignedBoxes;
// indexed cone
typedef struct MLT_tdstIndexedCone_
{
long xTopPoint;
long xBasePoint;
MTH_tdxReal xBaseRadius;
xString sMaterial;
MLT_tdstMaterial *hMaterial;
}
MLT_tdstIndexedCone;
// element cone
typedef struct MLT_tdstElementCones_
{
xString sName;
ACP_tdxIndex xIndexOfParallelBox; // must be just after name.
long xNbCones;
MLT_tdstIndexedCone *d_stListOfCones;
}
MLT_tdstElementCones;
// mega face
typedef struct MLT_tdstMegaFace_
{
long lIndex;
long lNbFaces;
long *d_stListOfFaces;
}
MLT_tdstMegaFace;
// element mega face
typedef struct MLT_tdstElementMegaFace_
{
xString sName;
long lNbMegaFaces;
MLT_tdstMegaFace *d_stListOfMegaFaces;
}
MLT_tdstElementMegaFace;
#endif /* __MLT_ELEMENT_H */

View File

@@ -0,0 +1,138 @@
/*=========================================================================
*
* ErrMlt.h - error managment for the module : MLT
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __ERRMlt_H__
#define __ERRMlt_H__
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
//--- Export ---------------------------------------------------------
#undef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
//----------------------------------------------------------------------
#ifndef __Erm_H__
#include "ERM.h"
#endif //__Erm_H__
#define __FATAL_ERR_Mlt__
#define __WARNING1_ERR_Mlt__
#define __WARNING2_ERR_Mlt__
#define __WARNING3_ERR_Mlt__
//----------
// Constant
//----------
// error of the Mlt Module
typedef enum e_uwMltErrNumber_{
E_uwMltFatalErr,
#ifdef __FATAL_ERR_Mlt__
// -----------------
E_uwMltFatalError1,
E_uwMltFatalError2,
E_uwMltFatalError3,
E_uwMltFatalError4,
#endif //__FATAL_ERR_Mlt__
E_uwMltStartOfWarning,
#ifdef __WARNING1_ERR_Mlt__
// -------------------
E_uwMltWarning1Error1,
E_uwMltWarning1Error2,
E_uwMltWarning1Error3,
#endif //__WARNING1_ERR_Mlt__
#ifdef __WARNING2_ERR_Mlt__
// -------------------
E_uwMltWarning2Error1,
E_uwMltWarning2Error2,
E_uwMltWarning2Error3,
E_uwMltWarning2Error4,
E_uwMltWarning2Error5,
#endif //__WARNING2_ERR_Mlt__
#ifdef __WARNING3_ERR_Mlt__
// -------------------
E_uwMltWarning3Error1,
E_uwMltWarning3Error2,
#endif //__WARNING3_ERR_Mlt__
E_uwMltErrNumber
} e_uwMltErrNumber;
//------------------
// Global Variables
//------------------
#undef __ERRMlt_EXTERN
#ifndef __DeclareGlobalVariableErrMlt_h__
#define __ERRMlt_EXTERN extern /*external declaration*/
#else //__DeclareGlobalVariableErrMlt_h__
#define __ERRMlt_EXTERN /*replace by nothing : we have to declare*/
#endif //__DeclareGlobalVariableErrMlt_h__
__ERRMlt_EXTERN CPA_EXPORT unsigned char g_ucMltModuleId /*number of identification of the Erm module*/
#if defined(__DeclareGlobalVariableErrMlt_h__) && !defined(CPA_WANTS_IMPORT)
= C_ucModuleNotInitialized
#endif //__DeclareGlobalVariableErrMlt_h__&& CPA_WANTS_IMPORT
;
#ifdef __ERROR_STRINGS__
__ERRMlt_EXTERN CPA_EXPORT char * g_szMltModuleName /* Mandatory syntax 'g_sz'+[Abbreviation of ModuleName]+'ModuleName'*/
#if defined(__DeclareGlobalVariableErrMlt_h__) && !defined(CPA_WANTS_IMPORT)
= "Module Mlt"
#endif //__DeclareGlobalVariableErrMlt_h__ && CPA_WANTS_IMPORT
;
__ERRMlt_EXTERN CPA_EXPORT struct tdstErrorMsg_ g_a_stMltTabErr [] /* Mandatory syntax 'g_a_st'+[Abbreviation of ModuleName]+'TabErr'*/
#if defined(__DeclareGlobalVariableErrMlt_h__) && !defined(CPA_WANTS_IMPORT)
={
#ifdef __FATAL_ERR_Mlt__
// -------------
E_uwMltFatalError1, " text of the error # E_uwMltFatalError1 ",
E_uwMltFatalError2, " text of the error # E_uwMltFatalError2",
E_uwMltFatalError3, " text of the error # E_uwMltFatalError3",
E_uwMltFatalError4, " text of the error # E_uwMltFatalError4",
#endif //__FATAL_ERR_Mlt__
#ifdef __WARNING1_ERR_Mlt__
// ----------------
E_uwMltWarning1Error1, " text of the error # E_uwMltWarning1Error1 ",
E_uwMltWarning1Error2, " text of the error # E_uwMltWarning1Error2 ",
E_uwMltWarning1Error3, " text of the error # E_uwMltWarning1Error3 ",
#endif //__WARNING1_ERR_Mlt__
#ifdef __WARNING2_ERR_Mlt__
// ----------------
E_uwMltWarning2Error1, " text of the error # E_uwMltWarning2Error1 ",
E_uwMltWarning2Error2, " text of the error # E_uwMltWarning2Error2 ",
E_uwMltWarning2Error3, " text of the error # E_uwMltWarning2Error3 ",
E_uwMltWarning2Error4, " text of the error # E_uwMltWarning2Error4 ",
E_uwMltWarning2Error5, " text of the error # E_uwMltWarning2Error5 ",
#endif //__WARNING2_ERR_Mlt__
#ifdef __WARNING3_ERR_Mlt__
// ----------------
E_uwMltWarning3Error1, " text of the error # E_uwMltWarning3Error1 ",
E_uwMltWarning3Error2, " text of the error # E_uwMltWarning3Error2 ",
#endif //__WARNING3_ERR_Mlt__
0xFFFF, "\0"//fin
};
#endif //__DeclareGlobalVariableErrMlt_h__ && CPA_WANTS_IMPORT
;
#endif //__ERROR_STRINGS__
#ifdef __cplusplus
};
#endif // __cplusplus
#endif //__ERRMlt_H__

View File

@@ -0,0 +1,61 @@
/*=========================================================================
*
* Families.h - Family Conversion
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef FAMILIES_H
#define FAMILIES_H
//--- Includes --------------------------------------------------------
#include "typedef.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Globals ---------------------------------------------------------
extern int g_iSpecific1;
extern int g_iSpecific2;
// files
extern char g_szFiles[20][5];
extern int g_iNbFiles;
//--- Functions --------------------------------------------------------
// computation functions
extern void MLT_vComputeAllFamilies (char *RawData, char *GameData);
extern void MLT_vComputeOneFamily (char *FamilyName, char *RawData, char *GameData);
extern void MLT_vComputeOneObj (char *sFamilyName, char *sObjName, char *sRawData, char *sGameData);
// anims functions
extern void MLT_vCopyAnims (char *sFamily);
extern void MLT_vSubstituteAnimInStaFile (char *sFamily);
// search functions
extern void MLT_vSearchInGame (char *sFamily, BOOL *bFound, xString sGame, xString sAnim);
extern BOOL MLT_bSearchExt (char *sExt);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // FAMILIES_H

View File

@@ -0,0 +1,47 @@
/*=========================================================================
*
* FMD.h - Face Map Descriptor
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MLT_FMD_H
#define __MLT_FMD_H
//--- Includes --------------------------------------------------------
#include "typedef.h"
//--- Structures --------------------------------------------------------
typedef struct MLT_tdstMaterial_ MLT_tdstMaterial ;
typedef struct MLT_tdstTexture_ MLT_tdstTexture ;
typedef float MLT_tdxUVValue ;
typedef struct ACP_tdst2DUVValues_
{
MLT_tdxUVValue xU;
MLT_tdxUVValue xV;
}
ACP_tdst2DUVValues;
typedef struct MLT_tdstFaceMapDescriptor_
{
char AlreadySave;
xString sName;
ACP_tdst2DUVValues stUVValues[3];
xString sMaterial;
xString sMaterialFile;
MLT_tdstMaterial *hMaterial;
xString sSprObjName;
xString sSprObjFile;
}
MLT_tdstFaceMapDescriptor;
#endif // __MLT_FMD_H

View File

@@ -0,0 +1,94 @@
/*=========================================================================
*
* GeoObj.h.h - Geometric Object
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MLT_GEOOBJ_H
#define __MLT_GEOOBJ_H
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "typedef.h"
#include "matrix.h"
#include "element.h"
//--- structures --------------------------------------------------------
// vector for normals
typedef struct MLT_tdstVector_
{
int iIndex[200];
int *iIndexObj;
int *iIndexPoint;
int iIndexElem[200];
}
MLT_tdstVector;
// geometric object
typedef struct MLT_tdstGeometricObject_
{
// name
xString sName;
// flag
BOOL bNotForSave;
// associated physical
xString sPhysicalSection;
long lNumberInTable;
long lNbLod;
// comment
xString sComment;
// vertices
xString sPointsOf;
long xNbPoints;
MTH3D_tdstVector *d_stListOfPoints;
MTH3D_tdstVector *d_stListOfPointsNormals;
MLT_tdstColor *d_stListOfPointsReceivedLightIntensity;
// min&max
MTH3D_tdstVector stMinPoint;
MTH3D_tdstVector stMaxPoint;
// elements
xString *sElementOf;
BOOL bHasElementOf;
long *sIndexOf;
long xNbElements;
long *d_xListOfElementsTypes;
void **d_stListOfElements;
// edges
xString sEdgesOf;
long xNbEdges;
MLT_tdstDoubledIndex *d_stListOfEdges;
// for altimap
int iFlags;
// for symmetry
char cGeom;
double fGeom;
// for LookAt
char sConstraintAxis[7];
// normals
MLT_tdstMatrix *p_stMatrix;
MLT_tdstVector *p_stFaceIndexes;
}
MLT_tdstGeometricObject;
#endif // __MLT_GEOOBJ_H

View File

@@ -0,0 +1,51 @@
/*=========================================================================
*
* GeoSprite.h - Sprite Object
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef GEOSPRIT_H
#define GEOSPRIT_H
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "typedef.h"
#include "Material.h"
//--- defines --------------------------------------------------------
#define MLT_C_lSpriteDrawMode2DScaled 1
#define MLT_C_lSpriteDrawMode2DRotativ 2
#define MLT_C_lSpriteDrawDisable 4
//--- structures --------------------------------------------------------
typedef struct MLT_tdstSprite_
{
// flag
char AlreadySave;
// name
xString sName;
// parameters
long xNbSprites;
short *d_xSpriteDrawMode;
MTH_tdxReal *d_xThresholds;
MTH2D_tdstVector *d_xSizeOfSprite;
MTH2D_tdstVector *d_xDisplacementOfSprite;
// material
xString *d_sMaterial;
MLT_tdstMaterial **d_hMaterial;
}
MLT_tdstSprite;
#endif // GEOSPRIT_H

View File

@@ -0,0 +1,25 @@
/*=========================================================================
*
* IPOSave.h - IPO saving functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef IPOSAVE_H
#define IPOSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
//--- Functions --------------------------------------------------------
// saving functions
extern void MLT_vSaveIpoFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveIpoSection (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
#endif //IPOSAVE_H

View File

@@ -0,0 +1,83 @@
/*=========================================================================
*
* Levels.h - Level conversion
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __LEVEL_H__
#define __LEVEL_H__
//--- Includes --------------------------------------------------------
#include "typedef.h"
#include "matrix.h"
#include "sprobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Globals --------------------------------------------------------
extern MLT_tdxHandleToSuperObject g_hRoot;
extern MLT_tdstMatrix g_stMatrixCenter;
extern xString g_sLevelFileIn;
extern BOOL g_bLevel;
//--- Functions --------------------------------------------------------
// level
extern void MLT_vComputeAllLevels (char *RawData, char *GameData);
extern void MLT_vComputeOneLevel (char *LevelName, char *RawData, char *GameData);
extern void MLT_vComputeOneSpo (char *sLevelName, char *sFileSpo, char *sRawData, char *sGameData);
// files
extern void MLT_vUpdateLevelWorld (char *sGameLevel, char *sLevelName, char *sGameData);
extern void MLT_vUpdateLevelStaticFiles (char *sGameLevel);
extern void MLT_vUpdateLevelDynamicFiles (char *sGameLevel, char *sRawLevel, char *sLevelName);
extern void MLT_vRemoveLevelTemporaryFiles (char *sGameLevel);
// hierarchy : first level
extern void MLT_vSearchAllSector (MLT_tdxHandleToSuperObject hRoot);
extern void MLT_vMatrixIdentityHierarchy (MLT_tdxHandleToSuperObject hRoot);
extern void MLT_vMatrixIdentitySector (MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vMatrixIdentityFronteer (MLT_tdxHandleToSuperObject hSprObj);
// sectors
extern void MLT_vMakeSectorInHierarchy (MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vCreateSector (MLT_tdxHandleToSuperObject hSector);
extern void MLT_vCreateUniversSector (MLT_tdxHandleToSuperObject hSprObj, xString sSubmapName);
// physical
extern void MLT_vMakeIpoInHierarchy (MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vMakePhysicalInLib (void);
// options
extern void MLT_vEraseDuplicatedPoints (void);
extern void MLT_vEraseUnusedPoints (void);
// multitextures
extern void MLT_vSearch (char *sRead, FILE *file);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif // __LEVEL_H__

View File

@@ -0,0 +1,63 @@
/*=========================================================================
*
* LgtLoad.h - Loading functions for Lgt file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef _LGTLOAD_H_
#define _LGTLOAD_H_
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
#include "matrix.h"
//------------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Structures ---------------------------------------------------------
typedef struct MLT_tdstLGT_
{
xString sName;
xString sSetMatrix;
MLT_tdstMatrix *p_stMatrix;
}
MLT_tdstLGT;
//--- Functions ---------------------------------------------------------
// load&save
extern void MLT_vInitLGTLoad (void);
//extern void MLT_vSaveVertexColor (SCR_tdst_File_Description *p_stFile, MLT_tdstVertexColor *p_stVertexColor);
extern SCR_tde_Anl_ReturnValue MLT_xLoadLGT (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadLGTCallback (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// library
extern void MLT_vEraseLGTLib (void);
extern void MLT_vLoadLGTFileInLib (void);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus */
/********************************************************/
#endif // _WINDOWS
#endif // _LGTLOAD_H_

View File

@@ -0,0 +1,78 @@
/*=========================================================================
*
* MacroMlt.h - Macros for memory
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MEMMlt_H__
#define __MEMMlt_H__
#define M_MltInitMem() Mem_M_SetModeAlloc(Mlt, E_ucDynamic)
#define M_MltAlloc(Var, cast, ulSize)\
{\
M_MltInitMem();\
Var = (cast) Mem_fn_p_vAlloc(ulSize);\
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
}\
}
#define M_MltAllocWithoutInitMem(Var, cast, ulSize)\
{\
Var = (cast) Mem_fn_p_vAlloc(ulSize);\
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
}\
}
#define M_MltRealloc(Var, AdrSrc, cast, ulSize)\
{\
M_MltInitMem();\
Var = (cast) Mem_fn_p_vRealloc(AdrSrc, ulSize);\
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
}\
}
#define M_MltReallocWithoutInitMem(Var, AdrSrc, cast, ulSize)\
{\
Var = (cast) Mem_fn_p_vRealloc(AdrSrc, ulSize);\
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltFatalFailedAllocationMem, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
}\
}
#define M_MltFree(p_cAdr) \
{\
M_MltInitMem();\
Mem_fn_vFree(p_cAdr);\
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltWarningCanNotFree, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
}\
}
#define M_MltFreeWithoutInitMem(p_cAdr) \
{\
Mem_fn_vFree(p_cAdr);\
if (Erm_M_uwCheckError(Mem, C_ucErmDefaultChannel)){\
Erm_M_ClearLastError(C_ucErmDefaultChannel);\
Erm_M_UpdateLastError(Mlt, C_ucErmDefaultChannel, E_uwMltWarningCanNotFree, C_lErmNoDebugData, C_ucErmOpenInfoWindow, C_ucAllowStopForDebug, NULL);\
}\
}
#endif // __MEMMlt_H__

View File

@@ -0,0 +1,134 @@
/*=========================================================================
*
* 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

View File

@@ -0,0 +1,59 @@
/*=========================================================================
*
* MemMlt.h - Memory managment for module : MLT
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MemMlt_H__
#define __MemMlt_H__
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
//--- Export ---------------------------------------------------------
#undef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
//----------------------------------------------------------------------
#include "MMG.h"
typedef enum e_ucMltStaticBlocks_{
E_ucMltBlock1,
E_ucMltBlock2,
E_ucMltBlock3,
E_ucMltBlock4,
E_ucMltMaxBlocksNb // maximum number of static block, You have to follow this syntax 'E_uc+ Abbreviation Module +MaxBlocksNb'
} e_ucMltStaticBlocks;
#undef __MEMMlt_EXTERN
#ifdef __DeclareGlobalVariableMemMlt_h__
#define __MEMMlt_EXTERN /*nothing*/
#else // no __DeclareGlobalVariableMemMlt_h__
#define __MEMMlt_EXTERN extern
#endif //__DeclareGlobalVariableMemMlt_h__
__MEMMlt_EXTERN CPA_EXPORT struct tdstBlockInfo_ g_a_stMltBlocksInfo[E_ucMltMaxBlocksNb];
#ifdef __DYNAMIC_MALLOC_ALLOWED__
#ifdef __DEBUG_MALLOC_MODE__
__MEMMlt_EXTERN CPA_EXPORT struct tdstDynInfo_ g_stMltDynInfo;
#endif //__DEBUG_MALLOC_MODE__
#endif //__DYNAMIC_MALLOC_ALLOWED__
#ifdef __cplusplus
};
#endif // __cplusplus
#endif //__MemMlt_H__

View File

@@ -0,0 +1,53 @@
/*=========================================================================
*
* Merge.h - merge functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MERGE_H__
#define __MERGE_H_
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "SCR.h"
#include "geoobj.h"
#include "sprobj.h"
//--- Structure ---------------------------------------------------------
typedef struct tdstMergeData_
{
char szSOName[ SCR_CV_ui_Cfg_MaxLenName ];
MLT_tdxHandleToSuperObject *d_hSO;
long *d_lIndex;
long lNumberOfSO;
MTH3D_tdstVector stOrigin;
char szObjName[ SCR_CV_ui_Cfg_MaxLenName ];
MLT_tdstGeometricObject **d_p_stObject;
MLT_tdstGeometricObject *p_stMergedObject;
} tdstMergeData;
//--- Functions ---------------------------------------------------------
// merge function
extern void MLT_vMergeObjectsInHierarchy (MLT_tdxHandleToSuperObject _hSO);
// geometric
extern void MLT_vComputeNewGeometric (tdstMergeData *_p_stMergeData);
extern void MLT_vMergeGeometric (tdstMergeData *_p_stMergeData);
// merge data
extern tdstMergeData * MLT_pstMergeDataCreate (char *_szName, long _lNumberMax);
extern void MLT_vMergeDataFree (tdstMergeData *_p_stMergeData);
extern void MLT_vMergeDataAddSO (tdstMergeData *_p_stMergeData, MLT_tdxHandleToSuperObject _hSO, long _lGroupIndex);
// merge index
extern long MLT_lMergeDataGetSOIndex (tdstMergeData *_p_stMergeData, MLT_tdxHandleToSuperObject _hSO);
extern long MLT_lMergeGetIndexAndName (char *_szName, char *_szResultName);
#endif //__MERGE_H__

View File

@@ -0,0 +1,72 @@
/*=========================================================================
*
* ModLib.h - library functions for geometric objects
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef _MODLIB_H_
#define _MODLIB_H_
//--- Includes --------------------------------------------------------
#include "typedef.h"
#include "geoobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Globals ---------------------------------------------------------
extern MLT_tdstGeometricObject **g_hGeometricInFile;
extern long g_lGeometricIndex;
//--- Functions ---------------------------------------------------------
// load&save functions
extern void MLT_vLoadModFileInLib (void);
extern void MLT_vSaveLibInModFile (BOOL bPhy, BOOL bTbl, BOOL bZoo, BOOL bVse);
// get functions
extern long MLT_lGetNumberObjectInLib (void);
// search functions
extern MLT_tdstGeometricObject *MLT_lGetObjectFromLib (long lIndex);
extern MLT_tdstGeometricObject *MLT_pFindInLib (char *sGeometric);
extern MLT_tdstGeometricObject *MLT_pFindAlmostInLib (char *sGeometric);
extern MLT_tdstGeometricObject *MLT_pFindInGivenLib (char *sGeometric, MLT_tdstGeometricObject **p_xGeometricInFile, long xNbGeometric);
// request functions
extern void MLT_vRequestObjInLib (char *sObjName, MLT_tdstGeometricObject ***h_stObj, long *p_lNbObj);
extern void MLT_vRequestAlmostInLib (xString sObjName, MLT_tdstGeometricObject ***h_stObj, long *p_lNbObj);
// erase functions
extern void MLT_vEraseLib (void);
extern void MLT_vEraseObjInLib (MLT_tdstGeometricObject *p_stObj);
extern void MLT_vEraseMergeObjInLib (MLT_tdstGeometricObject *p_stObj);
extern void MLT_xEraseGeometric (MLT_tdstGeometricObject *p_stGeometric);
extern long MLT_lEraseElementType (void *p_vElement, long lElementType);
// operation functions
extern void MLT_vMergeObjects (MLT_tdstGeometricObject *p_stObj, MLT_tdstGeometricObject *p_stObjDup);
extern void MLT_vMakeReverseObjInLib (MLT_tdstGeometricObject *p_stObj, MLT_tdstGeometricObject **h_stObjRev, char *sSector);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus */
/********************************************************/
#endif // _WINDOWS
#endif // _LOAD_H_

View File

@@ -0,0 +1,89 @@
/*=========================================================================
*
* ModLoad.h - Loading functions for MOD file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef _LOAD_H_
#define _LOAD_H_
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
#include "geoobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Defines ---------------------------------------------------------
#define MLT_C_xIndexedTriangles 1
#define MLT_C_xFaceMapDescriptor 2
#define MLT_C_xSprite 3
#define MLT_C_xTMesh 4
//--- Structures ---------------------------------------------------------
// geometric info
typedef struct MLT_tdstGeometricInfo_
{
xString a_cSectionName;
MLT_tdstGeometricObject *hObject;
}
MLT_tdstGeometricInfo;
//--- Functions ---------------------------------------------------------
// init
extern void MLT_vInitMODLoad ();
// file
extern SCR_tde_Anl_ReturnValue MLT_xLoadModCallback (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// geometric
extern SCR_tde_Anl_ReturnValue MLT_xLoadGeometric (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// element
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementIndexedTriangles (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementFaceMapDescriptors (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementSprites (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementLines (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementSpheres (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementAlignedBoxes (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementPoints (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementTMeshes (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadElementMegaFace (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// object
extern SCR_tde_Anl_ReturnValue MLT_xLoadFaceMapDescriptor (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadSprite (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// allocation
extern void MLT_xAllocateGeometric (MLT_tdstGeometricObject *p_stGeometric);
extern void MLT_vCreateRotativSprite (MLT_tdstSprite **p_hSprite , long xNbAngles);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus */
/********************************************************/
#endif // _WINDOWS
#endif // _LOAD_H_

View File

@@ -0,0 +1,54 @@
/*=========================================================================
*
* ModSave.h - Saving functions for MOD file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef MODSAVE_H
#define MODSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "geoobj.h"
//--- Globals ---------------------------------------------------------
extern char g_szInstancesSaved[200][256];
extern int g_iNbInstancesSaved;
//--- Functions ---------------------------------------------------------
// mod save
extern void MLT_vSaveEmptyModHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// geometric object
extern void MLT_vSaveGeometricObject (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstGeometricObject *p_stGeometric, BOOL bPhy, BOOL bTbl, BOOL bZoo, BOOL bVse);
// save elements
extern void MLT_vSaveElementIndexedTriangle (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementIndexedTriangles *p_stElement);
extern void MLT_vSaveElementFaceMapDescriptors (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementFaceMapDescriptors *p_stElement);
extern void MLT_vSaveElementSprites (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementSprite *p_stElement);
extern void MLT_vSaveElementLines (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementLines *p_stElement);
extern void MLT_vSaveElementSpheres (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementSpheres *p_stElement);
extern void MLT_vSaveElementAlignedBox (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementAlignedBoxes *p_stElement);
extern void MLT_vSaveElementCones (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementCones *p_stElement);
extern void MLT_vSaveElementPoints (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementPoints *p_stElement);
extern void MLT_vSaveElementTMeshes (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementTMeshes *p_stElement);
extern void MLT_vSaveElementAltimap (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementAltimap *p_stElement);
extern void MLT_vSaveElementMegaFace (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstElementMegaFace *p_stElement);
// save objects
extern void MLT_vSaveFaceMapDescriptor (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstFaceMapDescriptor *hFMD);
extern void MLT_vSaveSprite (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstSprite *hSprite);
// operations
extern BOOL MLT_bFindVertex (MLT_tdstGeometricObject *p_stGeometric, MTH3D_tdstVector stValues);
extern BOOL MLT_bTestSymmetry (MLT_tdstGeometricObject *p_stGeometric);
#endif // MODSAVE_H

View File

@@ -0,0 +1,56 @@
/*=========================================================================
*
* Normals.h - normal functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef _NORMALS_H_
#define _NORMALS_H_
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "geoobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Functions ---------------------------------------------------------
// global compute
extern void MLT_xComputeAllNormals (void);
// index
extern void MLT_vIndexFace (MLT_tdstGeometricObject *p_stObj);
// compute for object
extern void MLT_xComputeObjectNormals (MLT_tdstGeometricObject *p_stObj );
extern void MLT_xComputeAltimapObjectNormals (MLT_tdstGeometricObject *p_stObj );
// compute for face
extern void MLT_xComputeNormalWeightedBySurf (MTH3D_tdstVector *p_stPResult, MTH3D_tdstVector *p_stPA, MTH3D_tdstVector *p_stPB, MTH3D_tdstVector *p_stPC );
// test functions
extern BOOL MLT_bIntersBoundingBoxes (MLT_tdstGeometricObject *p_stObj1, MLT_tdstGeometricObject *p_stObj2);
extern BOOL MLT_bPointInBoundingBox (MTH3D_tdstVector stPoint, MLT_tdstGeometricObject *p_stObj);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus */
/********************************************************/
#endif // _WINDOWS
#endif // _NORMALS_H_

View File

@@ -0,0 +1,58 @@
/*=========================================================================
*
* ObjLoad.h - Loading functions for OBJ file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef OBJLOAD_H
#define OBJLOAD_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
//--- Structures ---------------------------------------------------------
typedef struct MLT_tdstObjElement_
{
long lNumberInTable;
xString sSectionObj;
xString sSectionMod;
xString sTete;
xString sLetter;
xString sNeutral;
long lValue;
double a9_dCustomZoom[9];
BOOL bCustomZoom;
// Object Table
int iType; //type of the event
xString sObject; //used for some events
xString sData; //used for some events
long lSoundReference; //used for SoundEvent
long lFirstCall; //common for all events(Generic, Generate, Sound, Mechanic, Camera)
long lPeriod; //common for all events(Generic, Generate, Sound, Mechanic, Camera)
long lPriority; //common for all events(Generic, Generate, Sound, Mechanic, Camera)
BOOL bFlag;
}
MLT_tdstObjElement;
//--- Functions ---------------------------------------------------------
// initialisation
extern void MLT_vInitOBJLoad (void);
// library
extern void MLT_vLoadModuleLib (void);
extern void MLT_vDeleteModuleLib (void);
// loading callback
extern SCR_tde_Anl_ReturnValue MLT_xLoadObjHeader (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadObj (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
#endif // OBJLOAD_H

View File

@@ -0,0 +1,26 @@
/*=========================================================================
*
* ObjSave.h - Saving functions for OBJ file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef OBJSAVE_H
#define OBJSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
//--- Functions --------------------------------------------------------
// save
extern void MLT_vSaveObjHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveObjFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
#endif // OBJSAVE_H

View File

@@ -0,0 +1,41 @@
/*=========================================================================
*
* PhyLoad.h - Saving functions for PHY file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef PHYSAVE_H
#define PHYSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "objload.h"
//--- Functions ---------------------------------------------------------
// init
extern void MLT_vInitSaveTbl (void);
// files
extern void MLT_vSaveTblFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSavePhyFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// sections
extern void MLT_vSaveTbl (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSavePhy (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// from OBJ
extern void MLT_vSaveTblFromObj (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSavePhyFromObj (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// subsections
void MLT_vSaveA3dObj (SCR_tdst_File_Description *p_stFile, MLT_tdstObjElement *p_stGeometric);
void MLT_vSaveSoundEvent (SCR_tdst_File_Description *p_stFile, MLT_tdstObjElement *p_stGeometric);
void MLT_vSaveMechanicEvent (SCR_tdst_File_Description *p_stFile, MLT_tdstObjElement *p_stGeometric);
void MLT_vSaveGenericEvent (SCR_tdst_File_Description *p_stFile, MLT_tdstObjElement *p_stGeometric);
void MLT_vSaveGenerateEvent (SCR_tdst_File_Description *p_stFile, MLT_tdstObjElement *p_stGeometric);
void MLT_vSaveCameraEvent (SCR_tdst_File_Description *p_stFile, MLT_tdstObjElement *p_stGeometric);
#endif // PHYSAVE_H

View File

@@ -0,0 +1,73 @@
/*=========================================================================
*
* PlgLoad.h - Loading functions for Plg file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef _PLG_H_
#define _PLG_H_
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
//------------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Structures ---------------------------------------------------------
// PLG color
typedef struct MLT_tdstVColor_
{
float fR;
float fG;
float fB;
}
MLT_tdstVColor;
// vertex color
typedef struct MLT_tdstVertexColor_
{
xString sName;
long xNbPoints;
MLT_tdstVColor *d_stListOfPoints;
}
MLT_tdstVertexColor;
//--- Functions ---------------------------------------------------------
// load&save
extern void MLT_vInitPLGLoad (void);
extern void MLT_vSaveVertexColor (SCR_tdst_File_Description *p_stFile, MLT_tdstVertexColor *p_stVertexColor);
extern SCR_tde_Anl_ReturnValue MLT_xLoadVertexColor (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadPLGCallback (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// library
extern void MLT_vErasePLGLib (void);
extern void MLT_vLoadPLGFileInLib (void);
extern void MLT_vSaveLibInPLGFile (void);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus */
/********************************************************/
#endif // _WINDOWS
#endif // _PLG_H_

View File

@@ -0,0 +1,97 @@
/*=========================================================================
*
* Print.h - Display functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef PRINT_H
#define PRINT_H
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Defines ---------------------------------------------------------
#define C_ComRes_cTitleLine 0
#define C_ComRes_cNormalLine 1
#define C_ComRes_cResultLine 2
#define C_ComRes_cWarningLine 3
#define C_ComRes_cErrorLine 4
//--- Globals ---------------------------------------------------------
// main options
extern BOOL g_bRaymanII;
extern BOOL g_bModifLst;
extern BOOL g_bEraseMdf;
// ignore options
extern BOOL g_bIgnoreZoo;
extern BOOL g_bIgnoreSct;
extern BOOL g_bIgnoreSpo;
extern BOOL g_bIgnoreGmt;
extern BOOL g_bIgnoreTex;
// conversion options
extern BOOL g_bCopyAnims;
extern BOOL g_bCopyTextures;
extern BOOL g_bGenerateRLI;
extern BOOL g_bUpdateGameDSC;
// erase options
extern BOOL g_bEraseDuplicated;
extern BOOL g_bEraseUnused;
// family options
extern BOOL g_bCommonFamily;
extern BOOL g_bSpecificFamily;
extern BOOL g_bAskFamily;
extern BOOL g_bApplyAll;
// bank option
extern BOOL g_bCreateBasicFamily;
// existence of files
extern BOOL g_bCreatedSpo;
extern BOOL g_bCreatedGmt;
extern BOOL g_bExistTex;
extern BOOL g_bExistSpo;
extern BOOL g_bExistMdf;
extern BOOL g_bExistMdt;
extern BOOL g_bExistSpoBank;
// multitextures
extern BOOL g_bBankConversion;
extern BOOL g_bClassConversion;
extern BOOL g_bLevelConversion;
// paths configurations
extern BOOL g_bStandardConfig;
extern char g_szAnims[255];
extern char g_szBanks[255];
extern char g_szClasses[255];
extern char g_szFamilies[255];
extern char g_szLevels[255];
extern char g_szTextures[255];
//--- Functions ---------------------------------------------------------
void fn_vAfxOutputStringRes (char* _szString, char _Line);
void fn_vAfxOutputStringCom (char* _szString, char _Line);
extern void MLT_vOutput( char cLineType, char *szFormat, ... );
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // PRINT_H

View File

@@ -0,0 +1,96 @@
/*=========================================================================
*
* RLISave.h - Saving functions for RLI file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef RLISAVE_H
#define RLISAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
#include "color.h"
#include "matrix.h"
#include "geoobj.h"
#include "sprobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Globals ---------------------------------------------------------
extern long g_lLightIndex;
//--- Defines ---------------------------------------------------------
enum {SPHERICAL, AMBIENT, HOTSPOT, PARALLEL};
enum {L_RGB=0, L_PAINT=1, L_ALPHA=2};
//--- Structures ---------------------------------------------------------
typedef struct MLT_Light_
{
xString sName; // name
int iGeomType; // SPHERICAL, AMBIENT, ...
int iType; // RGB, PAINT, ALPHA
int iRLI; // affected RLI
int iState; // ON/OFF
MLT_tdstColor color;
float fNearFar[2];
float fAlphas[2];
MLT_tdstMatrix *Matrix;
BOOL bNotCompute;
}
MLT_Light;
//--- Functions ---------------------------------------------------------
// init functions
extern void MLT_vLoadLG2();
extern void MLT_LoadLGT();
extern void MLT_vCreateRLI();
extern void MLT_vDeleteAllLights();
// loading functions
extern SCR_tde_Anl_ReturnValue MLT_xLoadLight (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadMatrixRLI (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// compute functions
extern void MLT_vComputeFullRLI (MLT_tdstGeometricObject *obj, MLT_tdstColor *rli);
extern void MLT_vComputeSphericalRLI (MLT_tdstMatrix *p_stMatrix, MLT_Light *light, MLT_tdstGeometricObject *obj, MLT_tdstColor *rli);
extern void MLT_vComputeAmbientRLI (MLT_tdstMatrix *p_stMatrix, MLT_Light *light, MLT_tdstGeometricObject *obj, MLT_tdstColor *rli);
extern void MLT_vComputeHotSpotRLI (MLT_tdstMatrix *p_stMatrix, MLT_Light *light, MLT_tdstGeometricObject *obj, MLT_tdstColor *rli);
extern void MLT_vComputeParallelRLI (MLT_tdstMatrix *p_stMatrix, MLT_Light *light, MLT_tdstGeometricObject *obj, MLT_tdstColor *rli);
extern void MLT_vComputeOneRLI (MLT_tdxHandleToSuperObject hSupObj, MLT_tdstMatrix *p_stMatrix, MLT_tdstColor **rli, int nRLI, SCR_tdst_File_Description *p_stFile);
// light functions
extern int MLT_iGetLightType (char *type);
extern void MLT_vAddLightEffect (MLT_tdstColor *dst, MLT_tdstColor *src, float coef);
// level functions
extern MLT_Light * MLT_hGetLight (xString sStaticLight, MLT_Light **g_hLights);
extern void MLT_vComputeSector (MLT_tdxHandleToSuperObject hSupObj);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif // RLISAVE_H

View File

@@ -0,0 +1,60 @@
/*=========================================================================
*
* SaveMdf.h - Saving functions for ModifLst.txt file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SAVEMODIF_H
#define SAVEMODIF_H
//--- Includes --------------------------------------------------------
#include "typedef.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Globals ---------------------------------------------------------
extern BOOL g_bPrintOutOK;
//--- Defines ---------------------------------------------------------
#define M_TempSCR_Modif "TempModifLst.txt"
//--- Functions ---------------------------------------------------------
// texture file
extern void MLT_vBeginSaveTextureFile (char *sDir);
extern BOOL MLT_bFirstAccesInFile (char *sDir);
extern void MLT_vWriteInTextureFile (char *sDir, char *sMessage);
extern void MLT_vEndSaveTextureFile (void);
// modif file
extern void MLT_vSavePosInModifFile (void);
extern void MLT_vAddEntryToModifFile (char *sLine);
extern void MLT_vUpdatePathInModifFile (char *_p_cPath);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // SAVEMODIF_H

View File

@@ -0,0 +1,32 @@
/*=========================================================================
*
* SctLoad.h - Loading functions for SCT file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SCTLOAD_H
#define SCTLOAD_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
extern int iExistStaticLight;
//--- Functions ---------------------------------------------------------
// init
extern void MLT_vInitSCTLoad();
// load section
extern SCR_tde_Anl_ReturnValue MLT_xLoadSector (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// load sub-sections
extern SCR_tde_Anl_ReturnValue MLT_xLoadSectorBorder (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadSectorENVAndSRF (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadSectorLink (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadSectorStaticLights (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
#endif // SCTLOAD_H

View File

@@ -0,0 +1,104 @@
/*=========================================================================
*
* SctObj.h - Sector Structure
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SCTOBJ_H
#define SCTOBJ_H
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "typedef.h"
#include "matrix.h"
//--- Defines ---------------------------------------------------------
#define MLT_C_MaxNbEnvAndSurfInSector 200
#define MLT_C_MaxNbSectorLinksInSector 200
#define MLT_C_MaxNbStaticLightInSector 200
//--- Structures ---------------------------------------------------------
// surfaces
typedef struct MLT_tdstSurface_
{
xString sGeometric;
MLT_tdstMatrix stMatrix;
}
MLT_tdstSurface;
// sector
typedef struct MLT_tdstSector_
{
// name
xString sName;
// old sector
struct MLT_tdstSector_ *p_stOldSector;
struct MLT_tdstSector_ *p_stSubmapOldSector;
// parameters
BOOL bHasCameraType;
BOOL bHasPriority;
long lCameraType;
long lPriority;
// border
BOOL bIsVirtual;
MTH3D_tdstVector stPointMin;
MTH3D_tdstVector stPointMax;
double fZMax;
BOOL bExistZMax;
int iFlag;
// env&surf
long lNbSurface;
MLT_tdstSurface a_stSurface[MLT_C_MaxNbEnvAndSurfInSector];
xString a_sEnv[MLT_C_MaxNbEnvAndSurfInSector];
// sector links
long lNbSecteurCollision;
long lNbSecteurActivity;
long lNbSecteurGraphic;
long lNbSecteurSound;
long lNbSoundEvent;
xString a_sSecteurCollision[MLT_C_MaxNbSectorLinksInSector];
xString a_sSecteurActivity[MLT_C_MaxNbSectorLinksInSector];
xString a_sSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
xString a_sSecteurSound[MLT_C_MaxNbSectorLinksInSector];
xString a_sSoundEvent1[MLT_C_MaxNbSectorLinksInSector];
xString a_sSoundEvent2[MLT_C_MaxNbSectorLinksInSector];
long a_lSecteurGraphicLook[MLT_C_MaxNbSectorLinksInSector];
long a_lSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
long a_lSecteurSound[MLT_C_MaxNbSectorLinksInSector];
// submap links
long lNbSubmapSecteurGraphic;
long lNbSubmapSecteurActivity;
long lNbSubmapSecteurCollision;
long lNbSubmapSecteurSound;
long lNbSubmapSoundEvent;
xString a_sSubmapSecteurCollision[MLT_C_MaxNbSectorLinksInSector];
xString a_sSubmapSecteurActivity[MLT_C_MaxNbSectorLinksInSector];
xString a_sSubmapSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
xString a_sSubmapSecteurSound[MLT_C_MaxNbSectorLinksInSector];
xString a_sSubmapSoundEvent1[MLT_C_MaxNbSectorLinksInSector];
xString a_sSubmapSoundEvent2[MLT_C_MaxNbSectorLinksInSector];
long a_lSubmapSecteurGraphicLook[MLT_C_MaxNbSectorLinksInSector];
long a_lSubmapSecteurGraphic[MLT_C_MaxNbSectorLinksInSector];
long a_lSubmapSecteurSound[MLT_C_MaxNbSectorLinksInSector];
// static lights
long lNbStaticLights;
xString a_sStaticLights[MLT_C_MaxNbStaticLightInSector];
// submap lights
long lNbSubmapStaticLights;
xString a_sSubmapStaticLights[MLT_C_MaxNbStaticLightInSector];
}
MLT_tdstSector;
#endif // SCTOBJ_H

View File

@@ -0,0 +1,82 @@
/*=========================================================================
*
* SctSave.h - Saving functions for SCT file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SCTSAVE_H
#define SCTSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
#include "sprobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Globals ---------------------------------------------------------
// sector
extern xString g_a_sOldSector[500];
extern long g_lNbOldSector;
extern xString g_a_sSector[500];
extern long g_lNbSector;
//--- Enums ---------------------------------------------------------
typedef enum {IS_NEWFRONTIER = 0x01, IS_OLDFRONTIER = 0x02} eFrontiers;
//--- Structures ---------------------------------------------------------
// super-object
//typedef struct MLT_tdstSprObj_ *MLT_tdxHandleToSuperObject;
//--- Functions ---------------------------------------------------------
// check sector
extern BOOL MLT_bIsGoodSector (char *sSector);
extern BOOL MLT_bContainBadSector (char *sSector);
extern void MLT_vAddSector (char *sSector);
// saving functions
extern void MLT_vSaveSctFile (MLT_tdxHandleToSuperObject hRoot, xString sFile);
extern void MLT_vSaveSctHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSct (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveBorder (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSctGot (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSctEnv (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSctLnk (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSctLgt (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSctUnivers (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// update
extern void MLT_vUpdateSctFile (xString sFile);
extern void MLT_vToEndSection (FILE *file);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // SCTSAVE_H

View File

@@ -0,0 +1,93 @@
/*=========================================================================
*
* SpoLoad.h - Loading functions for SPO file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __SpoLOAD_H__
#define __SpoLOAD_H__
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
#include "sprobj.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- structures --------------------------------------------------------
typedef struct MLT_tdstSPOFlags_
{
char szFlag[5];
short sFlag;
}
MLT_tdstSPOFlags;
//--- Globals ---------------------------------------------------------
extern BOOL g_bSubFile;
extern MLT_tdstSPOFlags g_stSPOFlags[32];
extern int g_iEditorSPOFlags[32];
extern int g_iNbEditorSPOFlags;
//--- Functions ---------------------------------------------------------
// init
extern void MLT_vInitSPOLoad (void);
// loading
extern SCR_tde_Anl_ReturnValue MLT_xLoadSuperObject (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadMatrix (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// SPO flags
extern void MLT_vReadSPOFlagsFile (xString sRawData);
extern void MLT_vSetSPOFlags (unsigned long *p_ulSPOFlags, float *p_fTransparency, xString *sIdent);
extern int MLT_iGetIndexSPOFlags (char *szFlag);
// geometric propertie
extern void MLT_vGeomProp (int * p_iGeomProp, xString *sIdent, char *p_cGeom, double* p_fGeom, char * p_sConstraintAxis[4]);
// hierarchy
extern void MLT_vLoadHierarchy (MLT_tdxHandleToSuperObject *p_hRoot);
extern void MLT_vCheckHierarchy (MLT_tdxHandleToSuperObject *p_hRoot);
extern void MLT_vDeleteHierarchy (MLT_tdxHandleToSuperObject hSprObj);
// search functions
extern MLT_tdxHandleToSuperObject MLT_hFindInHierarchy (char *sName, MLT_tdxHandleToSuperObject hSprObj);
extern MLT_tdxHandleToSuperObject MLT_hFindInHierarchySector (char *sName, MLT_tdxHandleToSuperObject hSprObj);
extern BOOL MLT_bIsNotSameSector (char *sName, char *sSector);
// file parameters
extern double MLT_dGetUnitInMeterInFile (char *szGeometricFile);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // __SpoLOAD_H__

View File

@@ -0,0 +1,41 @@
/*=========================================================================
*
* SpoSave.h - Saving functions for SPO file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SPOSAVE_H
#define SPOSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "MTH.h"
#include "sprobj.h"
//--- Globals ---------------------------------------------------------
extern double g_fLimit1;
extern double g_fLimit2;
extern double g_fLimit3;
//--- Functions ---------------------------------------------------------
// header
extern void MLT_vSaveEmptySpoHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// sections
extern void MLT_vSaveSuperObject (SCRIPT_tdstSaveFile *p_stFile, MLT_tdxHandleToSuperObject hSprObj);
extern void MLT_vSaveMatrix (SCRIPT_tdstSaveFile *p_stFile, MLT_tdstMatrix *p_stMatrix);
// file
extern void MLT_vSaveSpoFile (MLT_tdxHandleToSuperObject hRoot);
extern void MLT_vSaveHierarchy (MLT_tdxHandleToSuperObject hRoot);
// test
extern BOOL MLT_vCompareMatrix (MTH_tdxReal RotMatrix[3][3], MTH_tdxReal RotMatrixComp[3][3]);
#endif // SPOSAVE_H

View File

@@ -0,0 +1,80 @@
/*=========================================================================
*
* SprObj.h - Super Object Structure
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SPROBJ_H
#define SPROBJ_H
//--- Includes --------------------------------------------------------
#include "typedef.h"
#include "matrix.h"
#include "sctobj.h"
//--- Enums ---------------------------------------------------------
typedef enum
{
MAYBE_MIRROR = 0x01,
IS_MIRROR = 0x02,
MAYBE_ALTIMAP = 0x04,
MAYBE_SYM = 0x08,
IS_LOOKAT = 0x10,
IS_SEMI_LA = 0x20,
MAYBE_SPH = 0x40,
IS_NOT_ALTIMAP = 0x80
}
eFlags;
//--- Structures ---------------------------------------------------------
typedef struct MLT_tdstSprObj_ *MLT_tdxHandleToSuperObject;
typedef struct MLT_tdstSector_ MLT_tdstSector;
// super object
typedef struct MLT_tdstSprObj_
{
// name
xString sName;
// linked object
MLT_tdstSector stSector;
xString sLinkedObject;
xString sGeometric;
// children
long lNbChild;
MLT_tdxHandleToSuperObject d_hChild[500];
// matrix
MLT_tdstMatrix *p_stMatrix;
// flags
unsigned long ulSPOFlags;
// transparency
float fTransparency;
// geometric properties
int iFlags;
int iGeomProp;
char cGeom;
double fGeom;
char sConstraintAxis[7];
}
MLT_tdstSprObj;
// submap
typedef struct MLT_tdstSubMaps_
{
xString sName;
xString sSoundEvent[20];
int iN;
}
MLT_tdstSubMaps;
#endif // SPROBJ_H

View File

@@ -0,0 +1,30 @@
/*=========================================================================
*
* SrfSave.h - Saving functions for SRF file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SRFSAVE_H
#define SRFSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "sprobj.h"
//--- Functions ---------------------------------------------------------
// sections
extern void MLT_vSaveSrfHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveSurface (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// file
extern void MLT_vSaveSrfFile (MLT_tdstSprObj *hRoot);
// name
extern void MLT_vGetSurfaceName (char *sName, char *sOldName);
#endif // SRFSAVE_H

View File

@@ -0,0 +1,64 @@
/*=========================================================================
*
* Submaps.h - Submap conversion
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __SUBMAP_H__
#define __SUBMAP_H__
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "sprobj.h"
//--------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Globals --------------------------------------------------------
extern MLT_tdxHandleToSuperObject g_hRoot1;
extern MLT_tdxHandleToSuperObject g_hRoot2;
extern BOOL g_bSubmaps;
extern int g_iUnivSectors;
//--- Functions --------------------------------------------------------
// hierarchy
extern void MLT_vCheckHierarchyForSubmaps (MLT_tdxHandleToSuperObject hRoot, char *sGameLevel, char *sRawLevel);
// init
extern void MLT_vInitSubMapsLoad (void);
// save
extern void MLT_vSaveSubFile (void);
extern void MLT_vSaveSubSectionsInFile (void);
extern void MLT_vSaveSubMaps (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveAllSubMapsSection (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveNbSubMaps (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveNumberOfSubMaps (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// load
extern SCR_tde_Anl_ReturnValue MLT_xLoadAllSubMaps (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif // __SUBMAP_H__

View File

@@ -0,0 +1,56 @@
/*=========================================================================
*
* Textures.h - Textures functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef TEXTURES_H
#define TEXTURES_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
//--------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Functions ---------------------------------------------------------
// compute function
extern void MLT_vComputeAllTextures (char *RawData, char *GameData);
extern void MLT_vComputeOneTexture (char *TextureName, char *RawData, char *GameData);
// search function
extern void MLT_vSearchGameData (char *szParams, xString sDir);
// copy functions
extern void MLT_vCopyTexturesFromRaw (char *szParams, xString sDir);
extern void MLT_vCopyTextureIfFound (char *szParams, xString sDir);
// write functions
extern void MLT_vWriteTextureIfFound (char *szParams);
extern void MLT_vSetTextureFile (xString sFileMaterial, char* szParams, xString sDir1, xString sDir);
// load function
SCR_tde_Anl_ReturnValue MLT_xLoadTextureSection (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // TEXTURES_H

View File

@@ -0,0 +1,21 @@
/*=========================================================================
*
* Typedef.h - type definition for all files
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef TYPEDEF_H
#define TYPEDEF_H
//--- Typedefs ---------------------------------------------------------
typedef char xString[256];
#endif // TYPEDEF_H

View File

@@ -0,0 +1,36 @@
/*=========================================================================
*
* VseLoad.h - loading functions for VSE file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef VSELOAD_H
#define VSELOAD_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
//--- Structures ---------------------------------------------------------
typedef struct MLT_tdstVSE_
{
int iVSE;
}
MLT_tdstVSE;
//--- Functions ---------------------------------------------------------
// init
extern void MLT_vInitVSELoad();
// load
extern SCR_tde_Anl_ReturnValue MLT_xLoadVS (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadLOD (SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
#endif // VSELOAD_H

View File

@@ -0,0 +1,29 @@
/*=========================================================================
*
* VseSave.h - saving functions for VSE file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef VSESAVE_H
#define VSESAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
//--- Functions ---------------------------------------------------------
// sections
extern void MLT_vSaveVseFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveVisualSet (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveLod (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
// notify
extern long MLT_lSaveLodInFile (char *sVisualSetName);
#endif // VSESAVE_H

View File

@@ -0,0 +1,45 @@
/*=========================================================================
*
* Zooload.h - loading functions for ZOO file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef ZOOLOAD_H
#define ZOOLOAD_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
#include "typedef.h"
//--- Structures ---------------------------------------------------------
typedef struct MLT_tdstZoo_
{
xString sCS[1000];
xString sZDR[1000];
xString sZDM[1000];
xString sZDE[1000];
xString sZDD[1000];
}
MLT_tdstZoo;
//--- Functions ---------------------------------------------------------
// init
extern void MLT_vInitZOOLoad();
// load
extern SCR_tde_Anl_ReturnValue MLT_xLoadAllCollideSets(SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
extern SCR_tde_Anl_ReturnValue MLT_xLoadCS(SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType);
// search
extern BOOL MLT_bExistIn (xString * p_sArray, xString sIdent1);
extern int MLT_iIndex (xString sIdent, MLT_tdstZoo* p_stZoo);
#endif // ZOOLOAD_H

View File

@@ -0,0 +1,26 @@
/*=========================================================================
*
* ZooSave.h - loading functions for ZOO file
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef ZOOSAVE_H
#define ZOOSAVE_H
//--- Includes --------------------------------------------------------
#include "SCR.h"
//--- Functions ---------------------------------------------------------
extern void MLT_vSaveZooFile (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveAllCollideSetsSection (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveZoo (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
extern void MLT_vSaveZooFromObj (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction);
#endif // ZOOSAVE_H

View File

@@ -0,0 +1,32 @@
/*=========================================================================
*
* Color.h - Color definition
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MLT_COLOR_H
#define __MLT_COLOR_H
//--- definitions ---------------------------------------------------------
// color value
typedef float MLT_tdxColorValue;
// color structure
typedef struct MLT_tdstColor_
{
MLT_tdxColorValue xR;
MLT_tdxColorValue xG;
MLT_tdxColorValue xB;
MLT_tdxColorValue xA;
}
MLT_tdstColor;
//----------------------------------------------------------------------
#endif // __MLT_COLOR_H

View File

@@ -0,0 +1,471 @@
/*=========================================================================
*
* Conventi.h - String definitions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef CONVENTION_H
#define CONVENTION_H
//--- General ---------------------------------------------------------
#define M_SetCurrentFileDouble "SetCurrentFileDouble"
#define M_VersionNumber "VersionNumber"
//--- Files ---------------------------------------------------------
#define M_FichierALW ".alw"
#define M_FichierLGT ".lgt"
#define M_FichierPLG ".plg"
#define M_FichierMOD ".mod"
#define M_FichierZOO ".zoo"
//--- Headers ---------------------------------------------------------
#define M_TBL_HEADER "TBL_HEADER"
#define M_IPO_HEADER "IPO_HEADER"
#define M_ZOO_HEADER "ZOO_HEADER"
#define M_PHY_HEADER "PHY_HEADER"
#define M_VSE_HEADER "VSE_HEADER"
#define M_A3D_HEADER "A3dHEADER"
//--- Super-Objects ---------------------------------------------------------
// section name
#define M_SuperObject "SuperObject"
// section entries
#define M_SPOActionTransparency "Transparency"
#define M_SPOActionLinkedObject "LinkedObject"
#define M_SPOActionGeometric "Geometric"
#define M_SPOActionPutMatrix "PutMatrix"
#define M_SPOActionAddChild "AddChild"
#define M_SPOActionComment "Comment"
#define M_SPOActionFlags "Flags"
// modifications
#define M_Edit_ListModifSuperObject "Edit-ListModifSuperObject"
// parameters
#define M_Root "Root"
#define M_SPO_Univers "SPO_Univers"
//--- Matrix ---------------------------------------------------------
// section name
#define M_Matrix "Matrix"
// section entries
#define M_MATActionTranslation "MatrixTranslation"
#define M_MATActionRotation "MatrixRotation"
#define M_MATActionScale "MatrixScale"
//--- Characters ---------------------------------------------------------
// section name
#define M_InsertCharacter "InsertCharacter"
#define M_InsertAlways "InsertAlways"
// section entries
#define M_LVLActionCharacterFlags "CharacterFlags"
#define M_LVLActionLinkCharacter "LinkCharacter"
#define M_LVLActionInitialState "InitialState"
#define M_LVLActionTransparency "Transparency"
#define M_LVLActionTranslation "MatrixTranslation"
#define M_LVLActionRotation "MatrixRotation"
#define M_LVLActionScale "MatrixScale"
//--- Sectors ---------------------------------------------------------
// section name
#define M_Sector "Sector"
// env&surf subsection
#define M_ENVAndSRF "ENVAndSRF"
// env&surf entries
#define M_SCTActionAddLstEnv "AddLstEnvironment"
#define M_SCTActionAddLstSurface "AddLstSurface"
// sector links subsection
#define M_SectorsLink "SectorsLink"
// sector links entries
#define M_SCTActionVirtual "Virtual"
#define M_SCTActionPriority "Priority"
#define M_SCTActionCameraType "CameraType"
#define M_SCTActionNewModelisation "NewModelisation"
#define M_SCTActionAddLstSound "AddLstSound"
#define M_SCTActionAddLstGraphic "AddLstGraphic"
#define M_SCTActionAddLstActivity "AddLstActivity"
#define M_SCTActionAddLstCollision "AddLstCollision"
#define M_SCTActionAddLstSoundEvent "AddLstSoundEvent"
// static lights subsection
#define M_StaticLights "StaticLights"
// static lights entries
#define M_SCTActionAddStaticLight "AddLstStaticLights"
// border subsection
#define M_Border "Border"
// border entries
#define M_SCTActionMinPointOfBorder "MinPointOfBorder"
#define M_SCTActionMaxPointOfBorder "MaxPointOfBorder"
#define M_SCTActionZmaxOfBorder "ZmaxOfBorder"
// gothrough subsection
#define M_Gothrough "Gothrough"
// gothrough entries
#define M_SCTActionGothrough "GoThrough"
// parameters
#define M_Univers "Univers"
#define M_NameGothrough "Gothrough"
//--- Submaps ---------------------------------------------------------
// section name
#define M_CreateSubMaps "CreateSubMaps"
// section entries
#define M_NumberOfSubMaps "NumberOfSubMaps"
#define M_BeginSubMapSoundEvent "BeginSubMapSoundEvent"
// parameters
#define M_SuperObjectRoot "SuperObject:Root"
#define M_MatrixRoot "Matrix:Root"
#define M_MatrixCenter "*^Matrix:LevelCenter"
//--- Surfaces ---------------------------------------------------------
// section name
#define M_SurfaceDescription "SurfaceDescription"
// section entries
#define M_SRFActionVisual "SurfaceVisual"
#define M_SRFActionVisualMatrix "SurfaceVisualMatrix"
//--- IPOs ---------------------------------------------------------
// section name
#define M_IpoMirror "IPO_MIRROR"
#define M_Ipo "IPO"
// section entries
#define M_IPOActionPO "PO"
#define M_IPOActionRLI "RLI"
//--- POs ---------------------------------------------------------
// section name
#define M_Phy "PHY"
// section entries
#define M_PHYActionCS "CS"
#define M_PHYActionVS "VS"
// section names
#define M_CS "CS"
#define M_VS "VS"
//--- Zones ---------------------------------------------------------
// section name
#define M_AllCollideSets "AllCollideSets"
// section entries
#define M_ZOOActionZDR "ZDR"
#define M_ZOOActionZDM "ZDM"
#define M_ZOOActionZDE "ZDE"
#define M_ZOOActionZDD "ZDD"
// parameter
#define M_Collide "Collide"
//--- Visual Set ---------------------------------------------------------
// section name
#define M_LOD "LOD"
// section entries
#define M_VSEActionLOD_Threshold "LOD_Threshold"
#define M_VSEActionFichierMOD "FichierMOD"
#define M_VSEActionFichierRLI "FichierRLI"
//--- Geometric Objects ---------------------------------------------------------
// section name
#define M_Geometric "Geometric"
// section entries
#define M_MODActionLookAt "LookAt"
#define M_MODActionComment "Comment"
#define M_MODActionAddEdge "AddEdge"
#define M_MODActionAddVertex "AddVertex"
#define M_MODActionAddElement "AddElement"
#define M_MODActionGetElement "GetElement"
#define M_MODActionGetVertices "GetVertices"
// element sections
#define M_ElementFaceMapDescriptors "ElementFaceMapDescriptors"
#define M_ElementIndexedTriangles "ElementIndexedTriangles"
#define M_ElementSprites "ElementSprites"
#define M_ElementTMeshes "ElementTMeshes"
#define M_ElementLines "ElementLines"
#define M_ElementPoints "ElementPoints"
#define M_ElementSpheres "ElementSpheres"
#define M_ElementAlignedBoxes "ElementAlignedBoxes"
#define M_ElementAltimap "ElementAltimap"
#define M_ElementMegaFace "ElementMegaFaces"
// triangles & facemap entries
#define M_MODActionMaterial "Material"
#define M_MODActionPointedSector "PointedSector"
#define M_MODActionAddFaceFMD "AddFaceFMD"
#define M_MODActionTripledUV "TripledUV"
#define M_MODActionAddFaceUV "AddFaceUV"
#define M_MODActionGetFaces "GetFaces"
#define M_MODActionAddFace "AddFace"
#define M_MODActionGetUVs "GetUVs"
#define M_MODActionAddUV "AddUV"
// sprite entries
#define M_MODActionAddMaterial "AddMaterial"
#define M_MODActionAddSprite "AddSprite"
#define M_MODActionAddInfo "AddInfo"
// meshes entries
#define M_MODActionAddPoint "AddPoint"
#define M_MODActionFatness "Fatness"
// lines entries
#define M_MODActionAddLine "AddLine"
#define M_MODActionThickness "Thickness"
// elements entries
#define M_MODActionAddCone "AddCone"
#define M_MODActionAddSphere "AddSphere"
#define M_MODActionAddAlignedBox "AddAlignedBox"
// altimap entries
#define M_MODActionOrigin "Origin"
#define M_MODActionSetVertex "SetVertex"
#define M_MODActionSetSquare "SetSquare"
#define M_MODActionSetTriangle "SetTriangle"
#define M_MODActionSquarePattern "SquarePattern"
// megaface entries
#define M_MODActionAddMegaFace "AddMegaFace"
// element names
#define M_FaceMapDescriptors "FaceMapDescriptors"
#define M_FaceMapDescriptor "FaceMapDescriptor"
#define M_IndexedTriangles "IndexedTriangles"
#define M_Sprites "Sprites"
#define M_Sprite "Sprite"
#define M_TMeshes "TMeshes"
#define M_Lines "Lines"
#define M_Cones "Cones"
#define M_Points "Points"
#define M_Spheres "Spheres"
#define M_AlignedBoxes "AlignedBoxes"
#define M_Altimap "Altimap"
#define M_MegaFace "MegaFaces"
// parameters
#define M_2DScaled "2DScaled"
#define M_2DNonScaled "2DNonScaled"
//--- PLG File ---------------------------------------------------------
// section name
#define M_VertexColor "VertexColor"
// section entries
#define M_PLGActionAddVertexColor "AddVertexColor"
//--- Game Materials ---------------------------------------------------------
// section name
#define M_GameMaterial "GameMaterial"
// section entries
#define M_GMTActionCollideMat "CollideMat"
#define M_GMTActionVisualMat "VisualMat"
#define M_GMTActionSoundMat "SoundType"
//--- Visual Materials ---------------------------------------------------------
// section name
#define M_Material "Material"
// section entries
#define M_VMTActionType "Type"
#define M_VMTActionScroll "Scroll"
#define M_VMTActionBackface "Backface"
#define M_VMTActionAddTexture "AddTexture"
#define M_VMTActionAmbientColor "AmbientColor"
#define M_VMTActionDiffuseColor "DiffuseColor"
#define M_VMTActionSpecularColor "SpecularColor"
// multitextures
#define M_VMTActionMultiTexture "MultiTexture"
#define M_VMTActionUVComputing "UVComputing"
//--- Textures ---------------------------------------------------------
// section name
#define M_Texture "Texture"
// section entries
#define M_TEXActionLoadTexture "LoadTexture"
#define M_TEXActionTiling "Tiling"
#define M_TEXActionMipMapping "MipMapping"
#define M_TEXActionChromakey "Chromakey"
#define M_TEXActionQuality "Quality"
#define M_TEXActionPriority "Priority"
// multitextures
#define M_TEXActionLinarMipMapping "LinarMipMapping"
#define M_TEXActionCorrection "PerspectiveCorrection"
#define M_TEXActionBlendToColor "BlendToColor"
#define M_TEXActionBlendToAlpha "BlendToAlpha"
//--- OBJ File ---------------------------------------------------------
// section names
#define M_A3dObjectsTableELEMENT "A3dObjectsTableELEMENT"
#define M_A3dObjectsTableGENERAL "A3dObjectsTableGENERAL"
// section entries
#define M_OBJActionMaximumIndex "MaximumIndex"
#define M_OBJActionSoundReference "SoundReference"
#define M_OBJActionLipsSynchro "LipsSynchro"
#define M_OBJActionCustomZoom "CustomZoom"
#define M_OBJActionObjectType "ObjectType"
#define M_OBJActionFirstCall "FirstCall"
#define M_OBJActionPriority "Priority"
#define M_OBJActionPeriod "Period"
#define M_OBJActionStatus "Status"
#define M_OBJActionObject "Object"
#define M_OBJActionBank "Bank"
#define M_OBJActionData "Data"
// basic family
#define M_OBJActionActor "Actor"
#define M_OBJActionCount "Count"
#define M_OBJActionGridSettings "GridSettings"
#define M_OBJActionOrientation "Orientation"
#define M_OBJActionPivotOrientation "PivotOrientation"
#define M_OBJActionPivotPosition "PivotPosition"
#define M_OBJActionPosition "Position"
// parameters
#define M_Object "Object"
#define M_Fake "Fake"
#define M_OBJActionFileType "FileType"
#define M_OBJActionVersionNumber "VersionNumber"
//--- CHL File ---------------------------------------------------------
// section names
#define M_A3dChannelNames "A3dChannelNames"
// section entries
#define M_CHLActionAddChannelName "AddChannelName"
//--- A3D File ---------------------------------------------------------
// section names
#define M_A3dAnimationGENERAL "A3dAnimationGENERAL"
#define M_A3dStringsTable "A3dStringsTable"
#define M_A3dVertexesTable "A3dVertexesTable"
#define M_A3dQuaternionsTable "A3dQuaternionsTable"
#define M_A3dChannel "Channel"
#define M_A3dFrame "Frame"
// section entries
#define M_A3DActionActor "Actor"
#define M_A3DActionNumberOfChannels "NumberOfChannels"
#define M_A3DActionNumberOfFrames "NumberOfFrames"
#define M_A3DActionCurrentFrame "CurrentFrame"
#define M_A3DActionTransOffset "AnimationTranslationOffset"
#define M_A3DActionRotationOffset "AnimationRotationOffset"
#define M_A3DActionReferenceChannel "AnimReferenceChannel"
#define M_A3DActionSpeed "AnimationSpeed"
#define M_A3DActionNumberInTable "NumberInTable"
#define M_A3DActionAdd "Add"
#define M_A3DActionPosition "Position"
#define M_A3DActionOrientation "Orientation"
#define M_A3DActionScale "Scale"
//--- Object Tables ---------------------------------------------------------
// section name
#define M_Tbl "TBL"
#define M_Evt "EVT"
// section entries
#define M_TBLActionMaximumIndex "MaximumIndex"
#define M_TBLActionObjectType "ObjectType"
#define M_TBLActionSoundEvent "SoundEvent"
#define M_TBLActionCameraEvent "CameraEvent"
#define M_TBLActionGenericEvent "GenericEvent"
#define M_TBLActionGenerateEvent "GenerateEvent"
#define M_TBLActionMechanicEvent "MechanicEvent"
#define M_TBLActionPeriod "Period"
#define M_TBLActionPriority "Priority"
#define M_TBLActionFirstCall "FirstCall"
#define M_TBLActionCustomZoom "CustomZoom"
#define M_TBLActionLipsSynchro "LipsSynchro"
// event names
#define M_3dObject "3dObject"
#define M_SoundEvent "SoundEvent"
#define M_CameraEvent "CameraEvent"
#define M_GenericEvent "GenericEvent"
#define M_GenerateEvent "GenerateEvent"
#define M_MechanicEvent "MechanicEvent"
//--- Lights ---------------------------------------------------------
// section name
#define M_Light "Light"
// section entries
#define M_LGTActionSetState "SetState"
#define M_LGTActionSetColor "SetColor"
#define M_LGTActionSetMatrix "SetMatrix"
#define M_LGTActionSetAlphas "SetAlphas"
#define M_LGTActionSetNearFar "SetNearFar"
//--- RLIs ---------------------------------------------------------
// section name
#define M_RLI "RLI"
#define M_ISI "ISI"
// section entries
#define M_RLIActionAddLOD "AddLODRLI"
#define M_RLIActionAddVertexLOD "AddVertexRLILOD"
//--- Prefixes ---------------------------------------------------------
// Borders
#define M_BoundingBox "frtb"
// Frontiers
#define M_Frontier "frt"
#define M_Fermeture "frtc"
#define M_FronRever "frtr"
#define M_NewFronRever "frtf"
#define M_FermRever "frtcr"
// Surfaces
#define M_Surface "srf_"
// SuperObjects
#define M_SPO_ "SPO_"
//--- Specific ---------------------------------------------------------
#define M_NomAnim "nomdel'anim"
#endif // CONVENTION_H

View File

@@ -0,0 +1,36 @@
/*=========================================================================
*
* Defines.h - Type definitions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef DEFINE_H
#define DEFINE_H
//--- Sprite ---------------------------------------------------------
#define MLT_C_lSpriteDrawMode2DScaled 1
#define MLT_C_lSpriteDrawMode2DRotativ 2
#define MLT_C_lSpriteDrawDisable 4
//--- Elements ---------------------------------------------------------
#define MLT_C_xElementNULL 0
#define MLT_C_xElementIndexedTriangles 1
#define MLT_C_xElementFaceMapDescriptors 2
#define MLT_C_xElementSprites 3
#define MLT_C_xElementTMeshes 4
#define MLT_C_xElementPoints 5
#define MLT_C_xElementLines 6
#define MLT_C_xElementSpheres 7
#define MLT_C_xElementAlignedBoxes 8
#define MLT_C_xElementCones 9
#define MLT_C_xElementAltimap 10
#define MLT_C_xElementMegaFace 11
#endif // DEFINE_H

View File

@@ -0,0 +1,79 @@
/*=========================================================================
*
* Main.h - globals
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef __MAIN_H__
#define __MAIN_H__
//--- Includes --------------------------------------------------------
#include "typedef.h"
//----------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
//--- Typedefs ---------------------------------------------------------
typedef enum { C_Anim, C_Family, C_Bank, C_Level, C_Classe , C_Texture} MLT_tdeCategory;
//--- Globals ---------------------------------------------------------
// current version
extern char g_fVersion[9];
extern BOOL g_bVersionN64;
// modes
extern BOOL g_bOneAnimMode, g_bAnimMode;
extern BOOL g_bOneBankMode, g_bBankMode;
extern BOOL g_bOneClassMode, g_bClassMode;
extern BOOL g_bOneLevelMode, g_bLevelMode;
extern BOOL g_bOneFamilyMode, g_bFamilyMode;
extern BOOL g_bOneTextureMode, g_bTextureMode;
// data
extern MLT_tdeCategory g_cCategoryType;
extern xString g_sAnim[100];
extern xString g_sBank[100];
extern xString g_sClass[100];
extern xString g_sLevel[100];
extern xString g_sFamily[100];
extern xString g_sTexture[100];
extern long g_lAnimNum;
extern long g_lBankNum;
extern long g_lClassNum;
extern long g_lLevelNum;
extern long g_lFamilyNum;
extern long g_lTextureNum;
// directories
extern xString g_sInitialDir;
extern xString g_sRawData;
extern xString g_sGameData;
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif //_WINDOWS
#endif //__MAIN_H__

View File

@@ -0,0 +1,131 @@
/*=========================================================================
*
* Matrix.h - Matrix functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef MATRIX_H
#define MATRIX_H
//--- Includes --------------------------------------------------------
#include "MTH.h"
#include "typedef.h"
//--- Defines ---------------------------------------------------------
#define MLT_C_lMatrixIdentityFlag 0
#define MLT_C_lNotMatrixIdentityFlag 1
#define MLT_C_lMatrixRotatFlag 2
#define MLT_C_lMatrixScaleFlag 4
#define MLT_C_lMatrixTransFlag 8
//--- Structures ---------------------------------------------------------
typedef struct MLT_tdstMatrix_
{
xString sName;
MTH_tdxReal a9_xRotMatrix[3][3] ;
MTH_tdxReal a9_xScaleMatrix[3][3] ;
MTH_tdxReal a9_xTransformMatrix[3][3] ;
MTH3D_tdstVector stTranslation ;
long lStateFlag;
}
MLT_tdstMatrix;
//--- Functions ---------------------------------------------------------
extern void
MLT_xGetTranslationMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stTrs ) ;
extern void
MLT_xGetRotationMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stI ,
MTH3D_tdstVector *p_stJ ,
MTH3D_tdstVector *p_stK ) ;
extern void
MLT_xGetScaleMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stI ,
MTH3D_tdstVector *p_stJ ,
MTH3D_tdstVector *p_stK ) ;
extern void
MLT_xGetTransformMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stI ,
MTH3D_tdstVector *p_stJ ,
MTH3D_tdstVector *p_stK ) ;
extern void
MLT_xSetTranslationMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stTrs ) ;
extern void
MLT_xSetRotationMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stI ,
MTH3D_tdstVector *p_stJ ,
MTH3D_tdstVector *p_stK ) ;
extern void
MLT_xSetScaleMatrix ( MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stI ,
MTH3D_tdstVector *p_stJ ,
MTH3D_tdstVector *p_stK ) ;
extern void
MLT_xResetScaleMatrix ( MLT_tdstMatrix *p_stMatrix ) ;
extern void
MLT_xComputeTransformMatrix ( MLT_tdstMatrix *p_stMatrix ) ;
extern void
MLT_xSetIdentityMatrix ( MLT_tdstMatrix *p_stMatrix ) ;
extern void
MLT_xNormalizeMatrix ( MLT_tdstMatrix *p_stMatrix ) ;
extern void
MLT_xInvertMatrix ( MLT_tdstMatrix *p_stDest ,
MLT_tdstMatrix *p_stSource );
extern void
MLT_xInvertIsoMatrix ( MLT_tdstMatrix *p_stDest ,
MLT_tdstMatrix *p_stSource ) ;
extern void
MLT_xMulMatrixVertex ( MTH3D_tdstVector *p_stDest ,
MLT_tdstMatrix *p_stMatrix ,
MTH3D_tdstVector *p_stSource ) ;
extern void
MLT_xMulMatrixMatrix ( MLT_tdstMatrix *p_stDest ,
MLT_tdstMatrix *p_stA ,
MLT_tdstMatrix *p_stB ) ;
extern void
MLT_xTranspA9Matrix ( MTH_tdxReal p_xDest[3][3] ,
MTH_tdxReal p_xA[3][3] );
extern void
MLT_xMulA9MatrixVertex ( MTH3D_tdstVector *p_stDest ,
MTH_tdxReal a9_xTable[3][3] ,
MTH3D_tdstVector *p_stSource );
extern void
MLT_xMulA9MatrixMatrix ( MTH_tdxReal *p_xDest ,
MTH_tdxReal *p_xA ,
MTH_tdxReal *p_xB ) ;
extern long
MLT_lIsNotScaledMatrix ( MLT_tdstMatrix *p_stMatrix );
extern long
MLT_lIsIdentityMatrix ( MLT_tdstMatrix *p_stMatrix );
#endif //MATRIX_H

View File

@@ -0,0 +1,41 @@
/*=========================================================================
*
* MatStack.h - Matrix Stack
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef MATSTACK_H
#define MATSTACK_H
//--- Includes --------------------------------------------------------
#include "matrix.h"
//--- Defines ---------------------------------------------------------
#define MLT_C_lMaxMatrixInStack 100
#define MLT_C_lStackFull 200
#define MLT_C_lStackEmpty 201
//--- Globals ---------------------------------------------------------
extern MLT_tdstMatrix *g_p_stCurrentMatrix ;
//--- Functions ---------------------------------------------------------
// stack
extern void MLT_xInitMatrixStack (void);
extern void MLT_xResetMatrixStack (void);
// push&pop
extern void MLT_xPopMatrix (void);
extern void MLT_xPushMatrix (MLT_tdstMatrix *p_stMatrix);
extern void MLT_xPrePushMatrix (MLT_tdstMatrix *p_stMatrix);
#endif // MATSTACK_H

View File

@@ -0,0 +1,84 @@
/*=========================================================================
*
* System.h - System functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef SYSTEM_H
#define SYSTEM_H
//--- Includes --------------------------------------------------------
#include "typedef.h"
//--------------------------------------------------------------------
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
//--- Globals ---------------------------------------------------------
// index of chosen directories
extern int g_iData;
extern int g_iRaw;
// directories
extern xString g_sGameCommon, g_sGameSpecific1, g_sGameSpecific2;
extern xString g_sRawCommon, g_sRawSpecific1, g_sRawSpecific2;
extern xString g_sFileIn;
extern xString g_sFileMaterial;
extern xString g_sDirectorySave;
extern xString g_sGameTextureDirectory;
//--- Functions ---------------------------------------------------------
// main function
extern void MLT_fn_vMainConvert(int argc, char **argv);
// system
extern void MLT_vInitSystem();
extern void MLT_vExitSystem();
// init
extern void MLT_vInitVariables();
extern void MLT_vSetData();
// find & copy
extern long MLT_bFindFile (char *sDir, char *sFile);
extern void MLT_vCopyFiles (char *sFile, char *sSrc, char *sDst);
extern void MLT_vCopyAndRenameFile (char *_sFileSrc, char *_sDirSrc, char *_sFileDst, char *_sDirDst, int bErase);
extern void MLT_vCopyAndUpdateFile (char *_sFileSrc, char *_sDirSrc, char *_sFileDst, char *_sDirDst, char *_SrcRef, char *_DstRef, int bErase);
extern void MLT_vCopyOneTexture (char *sTextureName, char *sRawData, char * sGameData);
// names
extern char *MLT_vRemoveFromName (char *szName);
extern char *MLT_p_cGetFileNameWithoutExt (char *sFileName);
extern char *MLT_p_cGetFileNameWithoutPath (char *sFileName);
extern char *MLT_p_cEraseSpace (char *sFileName);
extern char *MLT_p_cGetSectionName (char *sSection);
extern void MLT_vRemoveFlags (char **sIdent);
extern void MLT_vRemoveGeomProp (char **sIdent);
extern void MLT_vExtractPropFromName (char **sIdent, char *szExtract);
extern void MLT_vSplitModuleSectionName (char *sSection, char *sForme, char *sHabillage, long *p_lNoPhy, long *p_lNoLod, char *sName);
extern void MLT_vComputePhysicalSectionName (char *sSection, char *sForme, char *sHabillage, long lNoPhy, char *sName);
extern void MLT_vComputeVisualSetSectionName(char *sSection, char *sForme, char *sHabillage, char *sName);
#ifdef _WINDOWS
/********************************************************/
#ifdef __cplusplus
}
#endif // __cplusplus
/********************************************************/
#endif // _WINDOWS
#endif // SYSTEM_H

View File

@@ -0,0 +1,53 @@
/*=========================================================================
*
* Util.h - Math functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef UTIL_H
#define UTIL_H
//--- Includes --------------------------------------------------------
#include "MTH.h"
//--- Defines --------------------------------------------------------
#define MLT_C_InfinitPlus (float) 3.402822E38
#define MLT_C_InfinitMinus (float) -3.402822E38
#define MLT_M_FloatToValue(A) MTH_M_xFloatToReal(A)
#define MLT_M_1616ToValue(A) MTH_M_xFixed16_16ToReal(A)
#define MLT_M_ValueToFloat(A) MTH_M_xRealToFloat(A)
#define MLT_M_ValueTo1616(A) MTH_M_xRealToFixed16_16(A)
#define MLT_M_ValueToLong(A) MTH_M_xRealToLong( A )
#define MLT_M_LongToValue(A) MTH_M_xLongToReal( A )
#define MLT_M_Mul(A,B) MTH_M_xMul(A, B)
#define MLT_M_Sub(A,B) MTH_M_xSub(A, B)
#define MLT_M_Add(A,B) MTH_M_xAdd(A, B)
#define MLT_M_Div(A,B) MTH_M_xDiv(A, B)
#define MLT_M_Neg(A) MTH_M_xNeg(A)
#define MLT_M_Sgn(A) MTH_M_xSign(A)
#define MLT_M_Inv(A) MTH_M_xInv(A)
#define MLT_M_Abs(A) MTH_M_xAbs(A)
#define MLT_M_Sqrt(A) MTH_M_xSqrt(A)
#define MLT_M_DegToAng(A) MTH_M_xDegToRad(A)
#define MLT_M_AngToRad(A) (MTH_tdxReal)( ( A ) )
#define MLT_M_Cos(A) MTH_M_xCos(A)
#define MLT_M_Sin(A) MTH_M_xSin(A)
#define MLT_M_Tan(A) MTH_M_xTan(A)
#define MLT_M_Atan(A) MTH_M_xATan(A)
#define MLT_M_Cotan(A) MTH_M_xCoTan(A)
#define MLT_M_PI MTH_C_Pi
#define MLT_M_2PI MTH_C_2Pi
#define MLT_M_PIO2 MTH_C_PiBy2
#define MLT_M_PIO4 MTH_C_PiBy4
#endif // UTIL_H

View File

@@ -0,0 +1,60 @@
/*=========================================================================
*
* Vertex.h - vertex functions
*
* Version 1.0
* Revision date
*
*=======================================================================*/
#ifndef VERTEX_H
#define VERTEX_H
//--- Includes --------------------------------------------------------
#include "MTH.h"
//--- Defines --------------------------------------------------------
#define MLT_M_SetVertexX(A,B) MTH3D_M_vSetXofVector(A,B)
#define MLT_M_SetVertexY(A,B) MTH3D_M_vSetYofVector(A,B)
#define MLT_M_SetVertexZ(A,B) MTH3D_M_vSetZofVector(A,B)
#define MLT_M_SetVertexXYZ(A,B,C,D) MTH3D_M_vSetVectorElements(A,B,C,D)
#define MLT_M_GetVertexX(A,B) *(B) = MTH3D_M_xGetXofVector(A)
#define MLT_M_GetVertexY(A,B) *(B) = MTH3D_M_xGetYofVector(A)
#define MLT_M_GetVertexZ(A,B) *(B) = MTH3D_M_xGetZofVector(A)
#define MLT_M_GetVertexXYZ(A,B,C,D) MTH3D_M_vGetVectorElements(B,C,D,A) // WARNING !!! INVERSION OF PARAMS
#define MLT_M_NullVertex(A) MTH3D_M_vNullVector(A)
#define MLT_M_AddVertex(A,B) MTH3D_M_vAddVector(A,A,B)
#define MLT_M_SubVertex(A,B) MTH3D_M_vSubVector(A,A,B)
#define MLT_M_MulVertex(A,B) MTH3D_M_vMulScalarVector(A,B,A)
#define MLT_M_DotProduct(A,B) MTH3D_M_xDotProductVector(A,B)
#define MLT_M_CrossProduct(A,B,C) MTH3D_M_vCrossProductVector( A, B, C)
#define MLT_M_Norme(A) MTH3D_M_xNormVector(A)
#define MLT_M_Normalize(A) MTH3D_M_vNormalizeVector(A, A)
#define MLT_M_ScaleVertex(A,B) (A)->xX = MLT_M_Mul( (A)->xX , (B)->xX ) ; \
(A)->xY = MLT_M_Mul( (A)->xY , (B)->xY ) ; \
(A)->xZ = MLT_M_Mul( (A)->xZ , (B)->xZ ) // WARNING A FAIRE : AJOUTER A MTH !!!!
#endif // VERTEX_H