119 lines
3.9 KiB
C
119 lines
3.9 KiB
C
/*=========================================================================
|
|
* CHLLoad.c : Loading CHL Files
|
|
*
|
|
* Version 1.0
|
|
* Creation date 29/05/97
|
|
* Revision date
|
|
*
|
|
* That file needs to be compatible for all platforms.
|
|
*
|
|
* (c) Ubi Studios 1997
|
|
*=======================================================================*/
|
|
#if defined (WIN32)
|
|
#include <stdio.h>
|
|
#endif /* WIN32 */
|
|
|
|
/* to be Friend*/
|
|
#define D_State_Define
|
|
|
|
#include "ToolsCPA.h"
|
|
|
|
/*#include "Options/Options.h"*/
|
|
#include "Macros.h"
|
|
|
|
#include "Actions/AllActs.h"
|
|
|
|
#include "Structur/3DOSLkTb.h"
|
|
#include "Structur/Objects.h"
|
|
#include "Structur/ErrGame.h"
|
|
#include "Structur/GameScpt.h"
|
|
#include "Structur/MemGame.h"
|
|
#include "Structur/StdObjSt.h"
|
|
#include "Structur/EngMode.h"
|
|
|
|
|
|
#include "Basic.h"
|
|
#include "Family.h"
|
|
#include "ObjType.h"
|
|
#include "ZeMem.h"
|
|
#include "CHLLoad.h"
|
|
|
|
|
|
/* global for CHL Link Table*/
|
|
SCR_tdst_Link_Table CHL_g_stLinkTable;
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : initialize and close link table for CHL
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 29/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------
|
|
* Modification date : Modification Author :
|
|
* Modifications :
|
|
*---------------------------------------------------------------------------*/
|
|
SCR_tdst_Link_Table *CHL_fn_p_stGetLinkTable(void)
|
|
{
|
|
return(&CHL_g_stLinkTable);
|
|
}
|
|
|
|
void CHL_fn_vInitLinkTable(void)
|
|
{
|
|
SCR_fn_v_Link_InitTable(&CHL_g_stLinkTable);
|
|
}
|
|
|
|
void CHL_fn_vCloseLinkTable(void)
|
|
{
|
|
SCR_fn_v_Link_CloseTable(&CHL_g_stLinkTable);
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : Used to register all script callback functions
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 29/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------*/
|
|
void CHL_fn_vRegisterAllScriptSections(void)
|
|
{
|
|
SCR_fn_v_RdL0_RegisterCallback(C_Section_CHLGeneral, CHL_fn_eScriptCallBackGeneral,SCR_CRC_c_RdL0_ForSection);
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : call-back for general section of CHL script file
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 29/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------*/
|
|
SCR_tde_Anl_ReturnValue CHL_fn_eScriptCallBackGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction)
|
|
{
|
|
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
|
|
char sz_ForLinkTable[MAX_PATH];
|
|
long lChannelNumber;
|
|
struct tdstFamilyList_ *p_stFamily;
|
|
|
|
if ( M_IsTitle )
|
|
{
|
|
SCR_M_RdL0_GetContextLong(C_ThisContext,0,struct tdstFamilyList_ *,p_stFamily);
|
|
p_stFamily->ulNumberOfChannels = fn_lAToI(_ap_szParams[0]);
|
|
|
|
SCR_M_RdL0_SetSectionLong(C_ThisSection,0,fn_lAToI(_p_szName));
|
|
SCR_M_RdL0_SetContextLong(C_ThisContext,1,0); /*counter*/
|
|
}
|
|
else if ( M_IsEntry )
|
|
{
|
|
SCR_M_RdL0_GetContextLong(C_ThisContext,0,struct tdstFamilyList_ *,p_stFamily);
|
|
|
|
|
|
strcpy(sz_ForLinkTable,fn_szFindFamilyTypeNameOfFamilyType(p_stFamily->otObjectFamilyType));
|
|
strcat(sz_ForLinkTable,"-");
|
|
strcat(sz_ForLinkTable,_ap_szParams[0]);
|
|
|
|
SCR_M_RdL0_GetContextLong(C_ThisContext,1,long,lChannelNumber);
|
|
SCR_fnp_st_Link_SetValue(&CHL_g_stLinkTable,sz_ForLinkTable,lChannelNumber);
|
|
lChannelNumber++;
|
|
SCR_M_RdL0_SetContextLong(C_ThisContext,1,lChannelNumber); /*counter*/
|
|
}
|
|
|
|
return ( eReturnValue );
|
|
}
|
|
|
|
|