// ********************************************************************************** // * "l_global_v6.c" * // * Written by : Sébastien Rubens * // * Tabulations : 4 char * // ********************************************************************************** #define L_GLOBAL_V6_C // ********************************************************************************** //#define ShowInfos //#define WaitGetChar #define Details // ********************************************************************************** // Included files #include #include #include #include #include #include "SCR.h" #include "specif\\a3x_pref.h" #include "a3x_glob.h" #include "makeanim.h" #include "l_global_v6.h" // ********************************************************************************** // Globals datas #define MaxInStringsTab 40000 #define MaxInVertexesTab 320000 #define MaxInQuaternionsTab 360000 #define MaxInA3dGENERALTab 2000 #define MaxInChannelsTab 12000 #define MaxInFramesTab 300000 #define MaxInFramesNTTOTab 400000 #define MaxInOnlyFramesTab 30000 #define MaxInHierarchiesTab 10000 #define MaxInChannelNamesTab 1000 #define MaxInSavedVertexesTab 200000 #define MaxInSavedQuaternionsTab 200000 #define MaxInSavedNTTOTab 40000 #define MaxInMorphTab 300000 //typedef char tdFileName[50]; tdstBinStackInfos tdstStacks[eStackBinNbMax]= { { 0, 0, 0, MaxInStringsTab }, // Strings { 0, 0, 0, MaxInVertexesTab }, // Vertexes { 0, 0, 0, MaxInQuaternionsTab }, // Quaternions { 0, 0, 0, MaxInA3dGENERALTab }, // A3dGENERAL { 0, 0, 0, MaxInChannelsTab }, // Channels { 0, 0, 0, MaxInFramesTab }, // Frames { 0, 0, 0, MaxInOnlyFramesTab }, // OnlyFrames { 0, 0, 0, MaxInHierarchiesTab }, // Hierarchies { 0, 0, 0, MaxInChannelNamesTab }, // ChannelNames { 0, 0, 0, MaxInSavedVertexesTab }, // SavedVertexes { 0, 0, 0, MaxInSavedQuaternionsTab}, // SavedQuaternions { 0, 0, 0, MaxInSavedNTTOTab }, // Saved FrameNumber and TypeOfObject { 0, 0, 0, MaxInFileA3dAnimationGENERALTab }, { 0, 0, 0, MaxInFileVertexesTab }, { 0, 0, 0, MaxInFileQuaternionsTab }, { 0, 0, 0, MaxInFileHierarchyTab }, { 0, 0, 0, MaxInFileNTTOTab }, { 0, 0, 0, MaxInFileOnlyFrameTab }, { 0, 0, 0, MaxInFileKeyFrameTab }, { 0, 0, 0, MaxInFileFrameTab }, { 0, 0, 0, MaxInFileChannelTab }, { 0, 0, 0, MaxInFileEventTab }, { 0, 0, 0, MaxInMorphTab }, { 0, 0, 0, MaxInSndEventIdTab }, { 0, 0, 0, MaxInEventTab } }; tdFileName ax_xStrings [MaxInStringsTab]; tdxVector3 axa3_xVertexes [MaxInVertexesTab]; tdxQuater4 axa4_xBinQuaternions [MaxInQuaternionsTab]; tdstBinA3dAnimationGENERAL ax_tdstA3dGENERAL [MaxInA3dGENERALTab]; tdstBinChannel ax_tdstChannels [MaxInChannelsTab]; tdstBinFrame ax_tdstFrames [MaxInFramesTab]; unsigned long ax_ulFramesNTTO [MaxInFramesNTTOTab]; tdstBinOnlyFrame ax_tdstOnlyFrames [MaxInOnlyFramesTab]; tdstBinHierarchy ax_tdstHierarchies [MaxInHierarchiesTab]; tdFileName ax_xChannelNames [MaxInChannelNamesTab]; tdxVector3 ax_tdxSavedVertexes [MaxInSavedVertexesTab]; tdxQuater4 ax_tdxSavedQuaternions [MaxInSavedQuaternionsTab]; tdstNTTO ax_tdstSavedNTTO [MaxInSavedNTTOTab]; tdstFileA3dAnimationGENERAL ax_tdstFileA3dGENERAL [MaxInFileA3dAnimationGENERALTab]; tdxULongVector3 ax_tdxFileVertexes [MaxInFileVertexesTab]; tdxSShortQuater4 ax_tdxFileQuaternions [MaxInFileQuaternionsTab]; tdstFileHierarchy ax_tdstFileHierarchy [MaxInFileHierarchyTab]; tdstNTTO ax_tdstFileNTTO [MaxInFileNTTOTab]; tdstFileOnlyFrame ax_tdstFileOnlyFrame [MaxInFileOnlyFrameTab]; tdstFileKeyFrame ax_tdstFileKeyFrame [MaxInFileKeyFrameTab]; tdstFileFrame ax_tdstFileFrame [MaxInFileFrameTab]; unsigned short ax_uwFramesNTTO []; tdstFileChannel ax_tdstFileChannel [MaxInFileChannelTab]; tdstFileEvent ax_tdstFileEvent [MaxInFileEventTab]; tdstFileMorphData ax_tdstFileMorphInfos [MaxInFileMorphTab]; tdstSndEventId ax_tdstSndEventId [MaxInSndEventIdTab]; tdstBinEvent ax_tdstEvents [MaxInEventTab]; tdstBinMorphData ax_tdstBinMorphInfos [MaxInMorphTab]; tdxVector3 a3_xVector0= { 0, 0, 0 }; tdxVector3 a3_xVector1= { 1, 1, 1 }; tdxQuater4 a4_xQuater0= { 0, 0, 0, 0 }; FILE *ErrorFile, *WarningFile, *SizeOut, *EventFile; // ********************************************************************************** void fn_v_AllocateOnStack( unsigned short uwNumStack, signed long slWantedSize ) { tdstStacks[uwNumStack].slStackPos += slWantedSize; tdstStacks[uwNumStack].slAllocNeeded += slWantedSize; if (tdstStacks[uwNumStack].slStackPos > tdstStacks[uwNumStack].slMaxPos) { fprintf( ErrorFile, "%s : Stack #%d is full (monty)...\n", AnimationName, uwNumStack ); assert(FALSE); tdstStacks[uwNumStack].slStackPos= tdstStacks[uwNumStack].slMaxPos - slWantedSize; } tdstStacks[uwNumStack].slPosAlloc= tdstStacks[uwNumStack].slStackPos - slWantedSize; } // ********************************************************************************** void fn_v_DeAllocateOnStack( unsigned short uwNumStack, signed long slSize ) { tdstStacks[uwNumStack].slStackPos-= slSize; if (tdstStacks[uwNumStack].slStackPos < 0) { fprintf( ErrorFile, "%s : Stack #%d is over (2 be) free...\n", AnimationName, uwNumStack ); assert(FALSE); tdstStacks[uwNumStack].slStackPos= 0; } } // ********************************************************************************** void fn_v_ResetStacks( void ) { unsigned short uwCnt; for ( uwCnt=0 ; uwCnt reset ! memset(ax_tdstBinMorphInfos,0,MaxInMorphTab*sizeof(tdstBinMorphData)); SCR_fn_v_RdL0_Init(); } // ********************************************************************************** void fn_v_KillMem( void ) {//#ifndef SCR_DM_LightVersion //fn_v_Anl_CloseModule(); // Destroy CallBack fn_v_Cxt_CloseModule(); fn_v_Err_CloseModule(); //#endif /* SCR_DM_LightVersion */ fn_v_Link_CloseModule(); fn_v_File_CloseModule(); //#ifndef SCR_DM_LightVersion fn_v_Ntfy_CloseModule(); fn_v_Sect_CloseModule(); fn_v_Vars_CloseModule(); //#endif /* SCR_DM_LightVersion */ } // ********************************************************************************** #undef L_GLOBAL_V6_C