reman3/Rayman_X/cpa/tempgrp/SAI/SAI_Pub.c

195 lines
7.7 KiB
C

#include "SaiCPA.h"
#include "MmgSai.h"
#include "ErmSai.h"
#include "Sai_Enum.h"
#include "Sai_str.h"
#include "Sai_Pub.h"
#include "Sai_Priv.h"
#include "Sai_Save.h"
/**************************************************************************/
#ifndef U64 /* Oliv' - 07/07/1999 */
unsigned char SAI_fn_bInsertBoolInTable(void *_p_vValue, unsigned char ucMask, SAI_tdeFlags _eFlags)
{
#if defined(U64)
/* write a short in SAI, with :*/
/* high part (1 octet) == the mask (1,2,4 or 8 but not higher, because only 2 bits are available to save mask)*/
/* low part (1 octet) == the octet that contains the bit, at its right position, and not masked*/
unsigned short usValue;
assert(ucMask <= 8);
usValue = ucMask;
usValue <<= 8;
usValue |= ((*((unsigned char*)_p_vValue))&0xff);
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,2,SAI_eType1,_eFlags));
#else
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,ucMask,SAI_eType1,_eFlags));
#endif
}
#endif /* U64 */
/**************************************************************************/
unsigned char SAI_fn_bInsertCharInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,1,SAI_eType8,_eFlags));
}
/**************************************************************************/
unsigned char SAI_fn_bInsertShortInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,2,SAI_eType16,_eFlags));
}
/**************************************************************************/
unsigned char SAI_fn_bInsertLongInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,4,SAI_eType32,_eFlags));
}
/**************************************************************************/
unsigned char SAI_fn_bInsertFloatInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,4,SAI_eType32,_eFlags));
}
/**************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
unsigned char SAI_fn_bInsertDoubleInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,8,SAI_eType64,_eFlags));
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/**************************************************************************/
unsigned char SAI_fn_bInsertPointerInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,8,SAI_eTypePointer,_eFlags));
}
/**************************************************************************/
unsigned char SAI_fn_bInsertMTHRealInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
#if defined(MTH_RealIsFloat)
return(SAI_fn_bInsertFloatInTable(_p_vValue,_eFlags));
#elif defined(MTH_RealIsDouble)
return(SAI_fn_bInsertDoubleInTable(_p_vValue,_eFlags));
#elif defined(MTH_RealIsFixed16_16)
return(SAI_fn_bInsertLongInTable(_p_vValue,_eFlags));
#else
#error Unknown MTH_tdxReal define
#endif
}
/**************************************************************************/
unsigned char SAI_fn_bInsertMTHVectorInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
#if defined(MTH_RealIsFloat)
return(SAI_fn_bInsertArrayInTable(_p_vValue,3*4,_eFlags));
#elif defined(MTH_RealIsDouble)
return(SAI_fn_bInsertArrayInTable(_p_vValue,3*8,_eFlags));
#elif defined(MTH_RealIsFixed16_16)
return(SAI_fn_bInsertArrayInTable(_p_vValue,3*8,_eFlags));
#else
#error Unknown MTH_tdxReal define
#endif
}
/**************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
unsigned char SAI_fn_bInsertMTHMatrixInTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
#if defined(MTH_RealIsFloat)
return(SAI_fn_bInsertArrayInTable(_p_vValue,9*4,_eFlags));
#elif defined(MTH_RealIsDouble)
return(SAI_fn_bInsertArrayInTable(_p_vValue,9*8,_eFlags));
#elif defined(MTH_RealIsFixed16_16)
return(SAI_fn_bInsertArrayInTable(_p_vValue,9*8,_eFlags));
#else
#error Unknown MTH_tdxReal define
#endif
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/**************************************************************************/
unsigned char SAI_fn_bRemoveValueFromTable(void *_p_vValue, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bFreeAnElementFromList(&SAI_g_stInternalStructure,_p_vValue,_eFlags));
}
/**************************************************************************/
void *SAI_fn_p_vGetTableValuePointerOf(void *_p_vValue, SAI_tdeFlags _eFlags)
{
void *p_vReturn = NULL;
SAI_tdxHandleToListEntry hListEntry;
SAI_tdeFlags eIntarnalFlags;
eIntarnalFlags=SAI_fn_eVerifyFlags(_eFlags);
if ((hListEntry=fn_hSearchAnElementInList(&SAI_g_stInternalStructure,_p_vValue,eIntarnalFlags))!=NULL)
{
switch(hListEntry->eFlags&C_TypesFlags)
{
#ifndef U64 /* Oliv' - 07/07/1999 */
case SAI_eType1:
#endif /* U64 */
case SAI_eType8:
p_vReturn = (void *)&hListEntry->uData.ucCharData;
break;
case SAI_eType16:
p_vReturn = (void *)&hListEntry->uData.uwShortData;
break;
case SAI_eType32:
p_vReturn = (void *)&hListEntry->uData.ulLongData;
break;
case SAI_eType64:
p_vReturn = (void *)&hListEntry->uData.i64Long64Data;
break;
case SAI_eTypePointer:
p_vReturn = (void *)&hListEntry->uData.stPointerData.p_vPointer;
break;
case SAI_eTypeXX:
p_vReturn = (void *)hListEntry->uData.stArrayData.p_ucPointer;
break;
default:
p_vReturn = (void *)NULL;
break;
}
}
return(p_vReturn);
}
/**************************************************************************/
unsigned char SAI_fn_bInsertArrayInTable(void *_p_vValue, unsigned long _ulSize, SAI_tdeFlags _eFlags)
{
return(SAI_fn_bInsertAnElementInList(&SAI_g_stInternalStructure,_p_vValue,_ulSize,SAI_eTypeXX,_eFlags));
}
/**************************************************************************/
unsigned char SAI_fn_bInitAllWhen(SAI_tdeFlags _eUserFlags)
{
return(SAI_fn_bInitAllTableWhen(&SAI_g_stInternalStructure,_eUserFlags));
}
/**************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
unsigned char SAI_fn_bInitOneValueWhen(void *_p_vValue, SAI_tdeFlags _eUserFlags)
{
return(SAI_fn_bInitOneTableElementWhen(&SAI_g_stInternalStructure,_p_vValue,_eUserFlags));
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/**************************************************************************/
unsigned char SAI_fn_ucPlayerSaveValues(char *_szFileName)
{
return(SAI_fn_ucSaveAllGameTableValues(&SAI_g_stInternalStructure,_szFileName,SAI_ePlayerSaveTableValue|SAI_ePlayerSaveCurrentValue));
}
/**************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
unsigned char SAI_fn_ucLevelSaveValues(char *_szFileName)
{
return(SAI_fn_ucSaveAllGameTableValues(&SAI_g_stInternalStructure,_szFileName,SAI_eLevelSaveTableValue|SAI_eLevelSaveCurrentValue));
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/**************************************************************************/
unsigned char SAI_fn_ucLoadPlayerValues(char *_szFileName)
{
return SAI_fn_ucLoadAllGameTableValues( &SAI_g_stInternalStructure, _szFileName, SAI_ePlayerSaveTableValue|SAI_ePlayerSaveCurrentValue );
}
/**************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
unsigned char SAI_fn_ucLoadLevelValues(char *_szFileName)
{
return SAI_fn_ucLoadAllGameTableValues( &SAI_g_stInternalStructure, _szFileName, SAI_eLevelSaveTableValue|SAI_eLevelSaveCurrentValue );
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */