626 lines
22 KiB
C
626 lines
22 KiB
C
/*=========================================================================
|
|
* mittext.c : Functions for the menus management
|
|
*
|
|
* Version 1.0
|
|
* Creation date 2./05/97
|
|
* Revision date
|
|
*
|
|
* That file needs to be compatible for all platforms.
|
|
*
|
|
* (c) Ubi R&D 1997
|
|
*=======================================================================*/
|
|
/*
|
|
*=======================================================================
|
|
Modifications:
|
|
*=======================================================================*/
|
|
/*#include "fonhdls.h"*/
|
|
|
|
#include "ACP_Base.h"
|
|
#include "ToolsCPA.h"
|
|
#include "macros.h"
|
|
#include "Structur/EngMode.h"
|
|
|
|
#include "MTH.h"
|
|
/*#include "DPT.h"*/
|
|
/*#include "GEO.h"*/
|
|
/*#include "GLI.h"*/
|
|
#include "SCR.h"
|
|
#include "RND.h"
|
|
/*#include "POS.h"*/
|
|
/*#include "SPO.h"*/
|
|
/*#include "LST.h"*/
|
|
|
|
#include "fonpub.h"
|
|
/*#include "fonmem.h"*/
|
|
#include "fonerm.h"
|
|
#include "fonfont.h"
|
|
/*#include "FON_Eff.h"*/
|
|
#include "fontext.h"
|
|
|
|
/*XB*/
|
|
/*#include <string.h>*/
|
|
/*End XB*/
|
|
|
|
/*************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xComputePartXWithAlign(FON_tdxHandleOfString hText,long lIndex,MTH_tdxReal x,enum FON_tdeAlignment_ eXAlign)
|
|
{
|
|
MTH_tdxReal xPosX = 0.0f;
|
|
|
|
if (eXAlign==FON_E_LeftAlign)
|
|
xPosX=x;
|
|
else if (eXAlign==FON_E_MiddleAlign)
|
|
xPosX=x-FON_fn_xWidthOfText(hText,lIndex)/2;
|
|
else if (eXAlign==FON_E_RightAlign)
|
|
xPosX=x-FON_fn_xWidthOfText(hText,lIndex);
|
|
|
|
return(xPosX);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xComputeXWithAlign(FON_tdxHandleOfString hText,MTH_tdxReal x,enum FON_tdeAlignment_ eXAlign)
|
|
{
|
|
MTH_tdxReal xPosX = 0.0f;
|
|
|
|
if (eXAlign==FON_E_LeftAlign)
|
|
xPosX=x;
|
|
else if (eXAlign==FON_E_MiddleAlign)
|
|
xPosX=x-FON_fn_xWidthOfMultipleText(hText)/2;
|
|
else if (eXAlign==FON_E_RightAlign)
|
|
xPosX=x-FON_fn_xWidthOfMultipleText(hText);
|
|
|
|
return(xPosX);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xComputeYWithAlign(FON_tdxHandleOfString hText,MTH_tdxReal y,enum FON_tdeAlignment_ eYAlign)
|
|
{
|
|
MTH_tdxReal xPosY = 0.0f;
|
|
|
|
if (eYAlign==FON_E_UpAlign)
|
|
xPosY=y/ *-FON_fn_xHeightOfMultipleText(hText)* /;
|
|
else if (eYAlign==FON_E_MiddleAlign)
|
|
xPosY=y-FON_fn_xHeightOfMultipleText(hText)/2;
|
|
else if (eYAlign==FON_E_DownAlign)
|
|
xPosY=y-FON_fn_xHeightOfMultipleText(hText);
|
|
|
|
return(xPosY);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*void FON_fn_vDrawText(FON_tdxHandleOfString hText,MTH_tdxReal x,MTH_tdxReal y,enum FON_tdeAlignment_ eXAlign,enum FON_tdeAlignment_ eYAlign,FON_tdeTypeOfDisplay _eDisplayType)
|
|
{
|
|
FON_fn_vDrawText3D(hText,x,y,0.0,eXAlign,eYAlign,_eDisplayType);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*void FON_fn_vDrawText3D(FON_tdxHandleOfString hText,MTH_tdxReal x,MTH_tdxReal y,MTH_tdxReal z,enum FON_tdeAlignment_ eXAlign,enum FON_tdeAlignment_ eYAlign,FON_tdeTypeOfDisplay _eDisplayType)
|
|
{
|
|
char *szText;
|
|
MTH3D_tdstVector stVector;
|
|
MTH3D_tdstVector stI,stJ,stK;
|
|
MTH_tdxReal xZDecalValue;
|
|
|
|
FON_tdxHandleOfFont hFont;
|
|
struct FON_st3DFont_ *h3DObject;
|
|
unsigned long i,j;
|
|
unsigned long ulNextCharacter;
|
|
|
|
unsigned short uwDisplayedCharacter;
|
|
|
|
struct FON_stText_ *p_stText;
|
|
|
|
POS_fn_vSetIdentityMatrix(FON_g_stGeneral.hMatrix);
|
|
|
|
p_stText = FON_fn_p_stGetTextPointerOfHandle(hText);
|
|
hFont = FON_fn_xGetFontOfTextHandle(hText);
|
|
szText=p_stText->szText;
|
|
|
|
MTH3D_M_vSetZofVector(&stVector,FON_fn_xComputeYWithAlign(hText,(MTH_tdxReal)y,eYAlign));
|
|
MTH3D_M_vSetYofVector(&stVector,z);
|
|
|
|
xZDecalValue = FON_fn_xHeightOfText(hText);
|
|
for (j=0;szText[j]!=0;j=i)
|
|
{
|
|
MTH3D_M_vSetXofVector(&stVector,FON_fn_xComputePartXWithAlign(hText,j,(MTH_tdxReal)x,eXAlign));
|
|
for (i=j;szText[i]!=0&&szText[i]!=0x5E;i=ulNextCharacter)
|
|
{
|
|
uwDisplayedCharacter = FON_fn_uwGetDisplayedCharacter(hFont,szText,i);
|
|
ulNextCharacter = FON_fn_vGetNextCharacter(hFont,szText,i);
|
|
|
|
if (p_stText->d_hLocalMatrix!=NULL)
|
|
{
|
|
POS_fn_vGetTranslationVector(p_stText->d_hLocalMatrix[i],&stI);
|
|
MTH3D_M_vAddVector(&stI,&stI,&stVector);
|
|
POS_fn_vSetTranslationVector(FON_g_stGeneral.hMatrix,&stI);
|
|
POS_fn_vGetRotationMatrix(p_stText->d_hLocalMatrix[i],&stI,&stJ,&stK);
|
|
POS_fn_vSetRotationMatrix(FON_g_stGeneral.hMatrix,&stI,&stJ,&stK);
|
|
POS_fn_vGetScaleMatrix(p_stText->d_hLocalMatrix[i],&stI,&stJ,&stK);
|
|
POS_fn_vSetScaleMatrix(FON_g_stGeneral.hMatrix,&stI,&stJ,&stK);
|
|
}
|
|
else
|
|
{
|
|
POS_fn_vSetTranslationVector(FON_g_stGeneral.hMatrix,&stVector);
|
|
MTH3D_M_vSetVectorElements(&stI,1,0,0);
|
|
MTH3D_M_vSetVectorElements(&stJ,0,1,0);
|
|
MTH3D_M_vSetVectorElements(&stK,0,0,1);
|
|
POS_fn_vSetRotationMatrix(FON_g_stGeneral.hMatrix,&stI,&stJ,&stK);
|
|
POS_fn_vSetScaleMatrix(FON_g_stGeneral.hMatrix,&stI,&stJ,&stK);
|
|
}
|
|
|
|
h3DObject=FON_fn_p_stGet3dObjectOfCharacter(hFont,uwDisplayedCharacter);
|
|
|
|
POS_fn_vGetTranslationVector(FON_g_stGeneral.hMatrix,&stI);
|
|
MTH3D_M_vSetZofVector(&stI,MTH3D_M_xGetZofVector(&stI)+xZDecalValue-h3DObject->xHeight+FON_fn_xGetBaseYOfCharacter(hFont,uwDisplayedCharacter));
|
|
POS_fn_vSetTranslationVector(FON_g_stGeneral.hMatrix,&stI);
|
|
|
|
if (h3DObject->hGLIGeometric!=NULL)
|
|
if (FON_fn_p_stGetTextPointerOfHandle(hText)->d_p_stLight!=NULL)
|
|
FON_fn_vDraw3DObject(h3DObject,FON_g_stGeneral.hMatrix,FON_fn_p_stGetTextPointerOfHandle(hText)->d_p_stLight[i]);
|
|
else
|
|
FON_fn_vDraw3DObject(h3DObject,FON_g_stGeneral.hMatrix,NULL);
|
|
|
|
// *** Effect of text *** - Oliv' - Portage v15 - 1 warning removed here
|
|
FON_fn_vPlayLetterEffect(hText,FON_fn_p_stGetEffectPointerOfHandle(hText),i);
|
|
|
|
if (_eDisplayType==FON_Enabled)
|
|
FON_fn_vPlayLetterEffect(hText,&FON_g_stEffectByDisplay.stEnabledEffect,i);
|
|
else if (_eDisplayType==FON_Disabled)
|
|
FON_fn_vPlayLetterEffect(hText,&FON_g_stEffectByDisplay.stDisabledEffect,i);
|
|
else if (_eDisplayType==FON_Pressed)
|
|
FON_fn_vPlayLetterEffect(hText,&FON_g_stEffectByDisplay.stPressedEffect,i);
|
|
else if (_eDisplayType==FON_Selected)
|
|
FON_fn_vPlayLetterEffect(hText,&FON_g_stEffectByDisplay.stSelectedEffect,i);
|
|
|
|
MTH3D_M_vSetXofVector(&stVector,
|
|
MTH3D_M_xGetXofVector(&stVector)+
|
|
h3DObject->xWidth/2+
|
|
hFont->xCharacterSpace);
|
|
if (szText[ulNextCharacter]!=0)
|
|
{
|
|
h3DObject=FON_fn_p_stGet3dObjectOfCharacter(hFont,FON_fn_uwGetDisplayedCharacter(hFont,szText,ulNextCharacter));
|
|
MTH3D_M_vSetXofVector(&stVector,
|
|
MTH3D_M_xGetXofVector(&stVector)+
|
|
h3DObject->xWidth/2);
|
|
}
|
|
}
|
|
if (szText[i]==0x5E)
|
|
i++;
|
|
MTH3D_M_vSetZofVector(&stVector,MTH3D_M_xGetZofVector(&stVector)+FON_fn_xHeightOfText(hText));
|
|
}
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xWidthOfTextByHandle(FON_tdxHandleOfString hText,long lIndex)
|
|
{
|
|
return(FON_fn_xWidthOfText(hText,lIndex));
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xHeightOfTextByHandle(FON_tdxHandleOfString hText)
|
|
{
|
|
return(FON_fn_xHeightOfText(hText));
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xWidthOfText(FON_tdxHandleOfString hText,long lIndex)
|
|
{
|
|
unsigned int i;
|
|
MTH_tdxReal xPosX = 0.0f;
|
|
char *szText=FON_fn_p_stGetTextPointerOfHandle(hText)->szText+lIndex;
|
|
struct FON_st3DFont_ *h3DObject;
|
|
unsigned long ulNextCharacter;
|
|
FON_tdxHandleOfFont hFont;
|
|
|
|
hFont = FON_fn_xGetFontOfTextHandle(hText);
|
|
|
|
for (i=0;szText[i]!=0&&szText[i]!=0x5E;i=ulNextCharacter)
|
|
{
|
|
ulNextCharacter = FON_fn_vGetNextCharacter(hFont,szText,i);
|
|
h3DObject=FON_fn_p_stGet3dObjectOfCharacter(hFont,FON_fn_uwGetDisplayedCharacter(hFont,szText,i));
|
|
|
|
if (i==0&&(szText[i+1]==0||szText[ulNextCharacter]==0x5E))
|
|
{
|
|
xPosX=0.0f;
|
|
}
|
|
else if(szText[ulNextCharacter]==0||szText[ulNextCharacter]==0x5E)
|
|
xPosX+=(h3DObject->xWidth)/2;
|
|
else if(i==0)
|
|
xPosX+=(h3DObject->xWidth)/2 + hFont->xCharacterSpace;
|
|
else
|
|
xPosX+=h3DObject->xWidth + hFont->xCharacterSpace;
|
|
}
|
|
return(xPosX);
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xHeightOfText(FON_tdxHandleOfString hText)
|
|
{
|
|
return(FON_fn_p_stGet3dObjectOfCharacter(FON_fn_p_stGetFontAndEffectPointerOfHandle(hText)->p_stFont,' ')->xHeight);
|
|
return MTH_C_ZERO;
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xWidthOfLetter(FON_tdxHandleOfString hText,unsigned long lIndex)
|
|
{
|
|
MTH_tdxReal xPosX = 0.0f;
|
|
char *szText=FON_fn_p_stGetTextPointerOfHandle(hText)->szText+lIndex;
|
|
struct FON_st3DFont_ *h3DObject;
|
|
FON_tdxHandleOfFont hFont;
|
|
|
|
hFont = FON_fn_xGetFontOfTextHandle(hText);
|
|
|
|
h3DObject=FON_fn_p_stGet3dObjectOfCharacter(hFont,FON_fn_uwGetDisplayedCharacter(hFont,szText,0));
|
|
xPosX=h3DObject->xWidth + hFont->xCharacterSpace;
|
|
|
|
return(xPosX);
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xWidthOfMultipleText(FON_tdxHandleOfString hText)
|
|
{
|
|
unsigned long i;
|
|
MTH_tdxReal xMaxPosX = 0.0f;
|
|
MTH_tdxReal xPosX = 0.0f;
|
|
char *szText=FON_fn_p_stGetTextPointerOfHandle(hText)->szText;
|
|
struct FON_st3DFont_ *h3DObject;
|
|
unsigned long ulNextCharacter;
|
|
FON_tdxHandleOfFont hFont;
|
|
|
|
hFont = FON_fn_xGetFontOfTextHandle(hText);
|
|
|
|
for (i=0;szText[i]!=0;i=ulNextCharacter)
|
|
{
|
|
ulNextCharacter = FON_fn_vGetNextCharacter(hFont,szText,i);
|
|
if (szText[i]==0x5E)
|
|
{
|
|
xPosX = 0;
|
|
}
|
|
else
|
|
{
|
|
h3DObject=FON_fn_p_stGet3dObjectOfCharacter(hFont,FON_fn_uwGetDisplayedCharacter(hFont,szText,i));
|
|
if(szText[ulNextCharacter]==0||szText[ulNextCharacter]==0x5E)
|
|
xPosX+=(h3DObject->xWidth)/2;
|
|
else if(i==0)
|
|
xPosX+=(h3DObject->xWidth)/2 + hFont->xCharacterSpace;
|
|
else
|
|
xPosX+=h3DObject->xWidth + hFont->xCharacterSpace;
|
|
if (xPosX>xMaxPosX)
|
|
xMaxPosX = xPosX;
|
|
}
|
|
}
|
|
return(xMaxPosX);
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xHeightOfMultipleText(FON_tdxHandleOfString hText)
|
|
{
|
|
char *p_szTemp = FON_fn_p_stGetTextPointerOfHandle(hText)->szText;
|
|
unsigned long i;
|
|
|
|
for (i=1;strchr(p_szTemp,0x5E)!=NULL;i++,p_szTemp=strchr(p_szTemp,0x5E)+1);
|
|
|
|
return(i*(FON_fn_p_stGet3dObjectOfCharacter(FON_fn_p_stGetFontAndEffectPointerOfHandle(hText)->p_stFont,' ')->xHeight));
|
|
}*/
|
|
/**************************************************************************/
|
|
/*MTH_tdxReal FON_fn_xRealHeightOfText(FON_tdxHandleOfString hText,long lIndex)
|
|
{
|
|
unsigned int i;
|
|
MTH_tdxReal xHeight = 0.0f;
|
|
char *szText=FON_fn_p_stGetTextPointerOfHandle(hText)->szText+lIndex;
|
|
struct FON_st3DFont_ *h3DObject = NULL;
|
|
FON_tdxHandleOfFont hFont;
|
|
unsigned long ulNextCharacter;
|
|
|
|
hFont = FON_fn_xGetFontOfTextHandle(hText);
|
|
|
|
for (i=0;szText[i]!=0&&szText[i]!=0x5E;i=ulNextCharacter)
|
|
{
|
|
ulNextCharacter = FON_fn_vGetNextCharacter(hFont,szText,i);
|
|
h3DObject=FON_fn_p_stGet3dObjectOfCharacter(hFont,FON_fn_uwGetDisplayedCharacter(hFont,szText,i));
|
|
if (xHeight>h3DObject->xHeight)
|
|
xHeight=h3DObject->xHeight;
|
|
}
|
|
return(xHeight);
|
|
}*/
|
|
/**************************************************************************/
|
|
/*void FON_fn_vAllocText(FON_tdxHandleOfString hTextNumber,unsigned long _ulSize/ *,enum FON_tdeTextEffect_ _eTextEffect* /)
|
|
{
|
|
char/ *struct FON_stText_* / *hText;
|
|
//struct FON_tdstFontAndEffect_ *hFontAndEffect;
|
|
// unsigned long i;
|
|
|
|
//hText = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,sizeof(struct FON_stText_));
|
|
//hFontAndEffect=FON_fn_p_vAllocInBloc(E_ucFONMemoryBlock,sizeof(struct FON_tdstFontAndEffect_));
|
|
|
|
hText/ *->szText* / = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize+1);
|
|
memset(hText/ *->szText* /,0,_ulSize+1);
|
|
memset(hText/ *->szText* /,' ',_ulSize);
|
|
|
|
// *** Effect gestion *** - Oliv' - Portage v15 - 1 warning removed here
|
|
/ *if (_eTextEffect!=FON_e_Nothing)
|
|
{
|
|
if (_eTextEffect&FON_e_NeedMatrix)
|
|
hText->d_hLocalMatrix = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
else
|
|
hText->d_hLocalMatrix = NULL;
|
|
if (_eTextEffect&FON_e_Translation)
|
|
hText->d_hLocalDynTranslation = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
else
|
|
hText->d_hLocalDynTranslation = NULL;
|
|
if (_eTextEffect&FON_e_Rotation)
|
|
hText->d_hLocalDynRotation = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
else
|
|
hText->d_hLocalDynRotation = NULL;
|
|
if (_eTextEffect&FON_e_Scale)
|
|
hText->d_hLocalDynScale = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
else
|
|
hText->d_hLocalDynScale = NULL;
|
|
if (_eTextEffect&FON_e_Light)
|
|
hText->d_p_stLight = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
else
|
|
hText->d_p_stLight = NULL;
|
|
|
|
for (i=0;i<_ulSize;i++)
|
|
{
|
|
if (_eTextEffect&FON_e_NeedMatrix)
|
|
{
|
|
hText->d_hLocalMatrix[i] = GEO_fn_hCreateMatrix();
|
|
POS_fn_vSetIdentityMatrix(hText->d_hLocalMatrix[i]);
|
|
}
|
|
if (_eTextEffect&FON_e_Translation)
|
|
{
|
|
hText->d_hLocalDynTranslation[i] = POS_fn_hCreateDynVector();
|
|
POS_fn_vSetDynVector(hText->d_hLocalDynTranslation[i],0.0,0.0,0.0);
|
|
}
|
|
if (_eTextEffect&FON_e_Rotation)
|
|
{
|
|
hText->d_hLocalDynRotation[i] = POS_fn_hCreateDynVector();
|
|
POS_fn_vSetDynVector(hText->d_hLocalDynRotation[i],0.0,0.0,0.0);
|
|
}
|
|
if (_eTextEffect&FON_e_Scale)
|
|
{
|
|
hText->d_hLocalDynScale[i] = POS_fn_hCreateDynVector();
|
|
POS_fn_vSetDynVector(hText->d_hLocalDynScale[i],1.0,1.0,1.0);
|
|
}
|
|
if (_eTextEffect&FON_e_Light)
|
|
hText->d_p_stLight[i] = NULL;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
hText->d_hLocalMatrix = NULL;
|
|
hText->d_hLocalDynTranslation = NULL;
|
|
hText->d_hLocalDynRotation = NULL;
|
|
hText->d_hLocalDynScale = NULL;
|
|
hText->d_p_stLight = NULL;
|
|
}* /
|
|
//hFontAndEffect->p_stFont = NULL;
|
|
|
|
FON_g_stGeneral.d_stTextsArray[hTextNumber] = hText;
|
|
//FON_g_stGeneral.d_stFontAndEffectArray[hTextNumber] = hFontAndEffect;
|
|
}*/
|
|
/**************************************************************************/
|
|
/*
|
|
void FON_fn_vAllocTextWithoutString(FON_tdxHandleOfString hTextNumber,unsigned long _ulSize)
|
|
{
|
|
struct FON_stText_ *hText;
|
|
struct FON_tdstFontAndEffect_ *hFontAndEffect;
|
|
unsigned long i;
|
|
|
|
hText=FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,sizeof(struct FON_stText_));
|
|
hFontAndEffect=FON_fn_p_vAllocInBloc(E_ucFONMemoryBlock,sizeof(struct FON_tdstFontAndEffect_));
|
|
|
|
hText->d_hLocalMatrix = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
hText->d_hLocalDynTranslation = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
hText->d_hLocalDynRotation = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
hText->d_hLocalDynScale = FON_fn_p_vAllocInBloc(E_ucFONTextMemoryBlock,_ulSize*sizeof(void *));
|
|
for (i=0;i<_ulSize;i++)
|
|
{
|
|
hText->d_hLocalMatrix[i] = GEO_fn_hCreateMatrix();
|
|
POS_fn_vSetIdentityMatrix(hText->d_hLocalMatrix[i]);
|
|
hText->d_hLocalDynTranslation[i] = POS_fn_hCreateDynVector();
|
|
hText->d_hLocalDynRotation[i] = POS_fn_hCreateDynVector();
|
|
hText->d_hLocalDynScale[i] = POS_fn_hCreateDynVector();
|
|
POS_fn_vSetDynVector(hText->d_hLocalDynTranslation[i],0.0,0.0,0.0);
|
|
POS_fn_vSetDynVector(hText->d_hLocalDynRotation[i],0.0,0.0,0.0);
|
|
POS_fn_vSetDynVector(hText->d_hLocalDynScale[i],1.0,1.0,1.0);
|
|
}
|
|
hFontAndEffect->p_stFont = NULL;
|
|
|
|
FON_g_stGeneral.d_stTextsArray[hTextNumber] = hText;
|
|
FON_g_stGeneral.d_stFontAndEffectArray[hTextNumber] = hFontAndEffect;
|
|
}
|
|
*/
|
|
/**************************************************************************/
|
|
/*unsigned long FON_fn_ulGetNumberOfTexts(void)
|
|
{
|
|
return(FON_g_stGeneral.ulNumberOfTexts);
|
|
}*/
|
|
|
|
#if !defined(U64)
|
|
/**************************************************************************/
|
|
FON_tdxHandleOfText FON_fn_hGetTextHandle(char *_szLinkKey)
|
|
{
|
|
FON_tdxHandleOfText hReturn = FON_C_xInvalidTextHandle;
|
|
|
|
if ( _szLinkKey && strlen(_szLinkKey) )
|
|
{
|
|
SCR_tdst_Link_Value *p_xIndex;
|
|
|
|
p_xIndex = SCR_fnp_st_Link_SearchKey(&FON_g_stTextLinkTable,_szLinkKey);
|
|
|
|
if (p_xIndex!=NULL&&SCR_M_e_Link_GetState(p_xIndex)==SCR_ELS_Link_Initialized)
|
|
{
|
|
hReturn = (FON_tdxHandleOfText) SCR_M_ul_Link_GetValue(p_xIndex);
|
|
}
|
|
|
|
if ( hReturn == FON_C_xInvalidTextHandle )
|
|
M_FONWarningError(E_uwFONUnknownText);
|
|
}
|
|
|
|
return hReturn;
|
|
}
|
|
/**************************************************************************/
|
|
FON_tdxHandleOfText FON_fn_hGetTextHandleWithoutWarning(char *_szLinkKey)
|
|
{
|
|
FON_tdxHandleOfText hReturn = FON_C_xInvalidTextHandle;
|
|
|
|
SCR_tdst_Link_Value *p_xIndex;
|
|
|
|
p_xIndex = SCR_fnp_st_Link_SearchKey(&FON_g_stTextLinkTable,_szLinkKey);
|
|
|
|
if (p_xIndex!=NULL&&SCR_M_e_Link_GetState(p_xIndex)==SCR_ELS_Link_Initialized)
|
|
{
|
|
hReturn = (FON_tdxHandleOfText) SCR_M_ul_Link_GetValue(p_xIndex);
|
|
}
|
|
return hReturn;
|
|
}
|
|
/**************************************************************************/
|
|
#ifdef ACTIVE_EDITOR
|
|
char *FON_fn_szGetNameOfTextHandle(FON_tdxHandleOfText hString)
|
|
{
|
|
char *p_szReturn = NULL;
|
|
|
|
SCR_tdst_Link_Value *p_xIndex;
|
|
|
|
p_xIndex = SCR_fnp_st_Link_SearchValue(&FON_g_stTextLinkTable,(long) hString);
|
|
|
|
if (p_xIndex!=NULL&&SCR_M_e_Link_GetState(p_xIndex)==SCR_ELS_Link_Initialized)
|
|
{
|
|
p_szReturn = (char *)SCR_M_p_sz_Link_GetKey(p_xIndex);
|
|
}
|
|
return p_szReturn;
|
|
}
|
|
#endif /* ACTIVE_EDITOR */
|
|
/**************************************************************************/
|
|
#endif /* U64 */
|
|
|
|
char *FON_fn_szLoadOneStringForCurrentLanguage(FON_tdxHandleOfText _IdOfString);
|
|
|
|
char *FON_fn_szGetTextPointerForHandle(FON_tdxHandleOfText hString)
|
|
{
|
|
return ( hString == FON_C_xInvalidTextHandle )
|
|
? NULL
|
|
#ifdef U64 // FB170399
|
|
: FON_fn_szLoadOneStringForCurrentLanguage(hString);
|
|
#else
|
|
: (
|
|
( hString < FON_C_HandleOffsetForCommonLanguage )
|
|
? FON_g_stGeneral.d_sLanguageArray[g_stEngineStructure.ucCurrentLanguage].d_pTextsArray[hString]
|
|
: FON_g_stGeneral . p_stCommonLanguage -> d_pTextsArray[ hString - FON_C_HandleOffsetForCommonLanguage ]
|
|
) ;
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
#if !defined(RETAIL) || defined(USE_MONITOR)
|
|
unsigned short FON_fn_uwGetNumberOfAvailableLanguages()
|
|
{
|
|
return FON_g_stGeneral.uwNumberOfLanguages;
|
|
}
|
|
#endif !defined(RETAIL) || defined(USE_MONITOR)
|
|
|
|
|
|
|
|
/*FON_tdxHandleOfString FON_fn_hGetTextHandleWithFont(char *_szLinkKey,FON_tdxHandleOfFont hFont)
|
|
{
|
|
FON_tdxHandleOfString hReturn = FON_fn_hGetInvalidTextHandle();
|
|
#if !defined(U64)
|
|
SCR_tdst_Link_Value *p_xIndex;
|
|
|
|
p_xIndex = SCR_fnp_st_Link_SearchKey(&FON_g_stGeneral.stTextLinkTable,_szLinkKey);
|
|
|
|
if (p_xIndex!=NULL&&SCR_M_e_Link_GetState(p_xIndex)==SCR_ELS_Link_Initialized)
|
|
{
|
|
hReturn = (FON_tdxHandleOfString)SCR_M_ul_Link_GetValue(p_xIndex);
|
|
FON_fn_vChangeFontOfText(hReturn,hFont);
|
|
}
|
|
|
|
if (hReturn==FON_fn_hGetInvalidTextHandle())
|
|
M_FONWarningError(E_uwFONUnknownText);
|
|
|
|
#endif // U64
|
|
return (hReturn);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*void FON_fn_vChangeFontOfText(FON_tdxHandleOfString hText,FON_tdxHandleOfFont hFont)
|
|
{
|
|
FON_g_stGeneral.d_stFontAndEffectArray[hText]->p_stFont = hFont;
|
|
}*/
|
|
/*************************************************************************/
|
|
/*FON_tdxHandleOfFont FON_fn_xGetFontOfTextHandle(FON_tdxHandleOfString hText)
|
|
{
|
|
return(FON_g_stGeneral.d_stFontAndEffectArray[hText]->p_stFont);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*char/ *struct FON_stText_* / *FON_fn_p_stGetTextPointerOfHandle(FON_tdxHandleOfString hText)
|
|
{
|
|
return(FON_g_stGeneral.d_stTextsArray[hText]);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*struct FON_tdstFontAndEffect_ *FON_fn_p_stGetFontAndEffectPointerOfHandle(FON_tdxHandleOfString hText)
|
|
{
|
|
return(FON_g_stGeneral.d_stFontAndEffectArray[hText]);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*struct FON_tdstEffect_ *FON_fn_p_stGetEffectPointerOfHandle(FON_tdxHandleOfString hText)
|
|
{
|
|
return(&FON_g_stGeneral.d_stFontAndEffectArray[hText]->stEffect);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*enum FON_tdeTypeOfFont_ FON_fn_eGetTypeOfFontForText(FON_tdxHandleOfString hText)
|
|
{
|
|
enum FON_tdeTypeOfFont_ eReturn = FON_eUnknow;
|
|
|
|
if (FON_fn_p_stGetFontAndEffectPointerOfHandle(hText)->p_stFont!=NULL)
|
|
eReturn = FON_fn_p_stGetFontAndEffectPointerOfHandle(hText)->p_stFont->eTypeOfFont;
|
|
|
|
return(eReturn);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*unsigned long FON_fn_ulGetDisplayedLenghtOfText(FON_tdxHandleOfString hText)
|
|
{
|
|
// *** Return the number of displayed characters *** - Oliv' - Portage v15 - 1 warning removed here
|
|
unsigned long i;
|
|
unsigned long ulReturn = 0;
|
|
char *p_szText;
|
|
FON_tdxHandleOfFont hFont;
|
|
|
|
hFont = FON_fn_xGetFontOfTextHandle(hText);
|
|
p_szText = FON_fn_p_stGetTextPointerOfHandle(hText)/ *->szText* /;
|
|
|
|
for (i=0;p_szText[i]!=0;i=FON_fn_vGetNextCharacter(hFont,p_szText,i),ulReturn++);
|
|
|
|
return(ulReturn);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*unsigned long FON_fn_ulGetTrueLenghtOfText(FON_tdxHandleOfString hText)
|
|
{
|
|
// *** Return the number of char characters *** - Oliv' - Portage v15 - 1 warning removed here
|
|
return(strlen(FON_fn_p_stGetTextPointerOfHandle(hText)->szText));
|
|
}*/
|
|
/*************************************************************************/
|
|
/*char *FON_fn_p_szGetStringPointer(FON_tdxHandleOfString hText)
|
|
{
|
|
return(FON_fn_p_stGetTextPointerOfHandle(hText)->szText);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*void FON_fn_vChangeText(FON_tdxHandleOfString hText,char *szText)
|
|
{
|
|
strcpy(FON_fn_p_stGetTextPointerOfHandle(hText)/ *->szText* /,szText);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*void FON_fn_vUpperText(FON_tdxHandleOfString hText)
|
|
{
|
|
strupr(FON_fn_p_stGetTextPointerOfHandle(hText)/ *->szText* /);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*FON_tdxHandleOfString FON_fn_hGetInvalidTextHandle(void)
|
|
{
|
|
return(0xffffffff);
|
|
}*/
|
|
/*************************************************************************/
|
|
/*unsigned char FON_fn_bIsAValidText(FON_tdxHandleOfString hText)
|
|
{
|
|
if (hText==FON_fn_hGetInvalidTextHandle())
|
|
return(FALSE);
|
|
else
|
|
return(TRUE);
|
|
}*/
|
|
/**************************************************************************/
|
|
/*struct FON_tdstEffect_ *FON_fn_p_stGetEffectPointer(FON_tdxHandleOfString hText)
|
|
{
|
|
return(&FON_fn_p_stGetFontAndEffectPointerOfHandle(hText)->stEffect);
|
|
}*/
|
|
/**************************************************************************/
|