Files
lba1-classic/SOURCES/INCRUST.C
Gwen Gourevich c5f4f6ba25 Initial commit
2021-10-27 10:34:18 +02:00

109 lines
2.4 KiB
C

#include "c_extern.h"
/*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*
Û ÛÛÜ Û Ûßßßß ÛßßßÛ Û Û ÛÛßßß ßßÛßß ÛßßßÜ Û ÛÛßßß ÛßßßÛ
ÛÛ ÛÛßÛÛ ÛÛ ÛÛßÛß ÛÛ Û ßßßßÛ ÛÛ ÛÛ Û ÛÛ ßßßßÛ ÛÛßßß
ßß ßß ß ßßßßß ßß ß ßßßßß ßßßßß ßß ßßßßß ßßßß ßß ßßßßß ßß
*ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ*/
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
void InitIncrustDisp( WORD type,
WORD num,
WORD x, WORD y,
WORD info,
WORD move,
WORD timeout )
{
T_INCRUST_DISP *ptrdisp ;
WORD n ;
ptrdisp = ListIncrustDisp ;
for( n=0; n<MAX_INCRUST_DISP; n++, ptrdisp++ )
{
if( ptrdisp->Num == -1 ) /* slot libre */
{
ptrdisp->Num = num ;
ptrdisp->X = x ;
ptrdisp->Y = y ;
ptrdisp->Type = type ;
ptrdisp->Info = info ;
ptrdisp->Move = move ;
ptrdisp->TimerEnd = TimerRef + 50 * timeout ;
return ;
}
}
}
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
void ChangeIncrustPos( WORD xp0, WORD yp0, WORD xp1, WORD yp1 )
{
T_INCRUST_DISP *ptrdisp ;
WORD n ;
WORD dx, dy ;
dx = xp1 - xp0 ;
dy = yp1 - yp0 ;
ptrdisp = ListIncrustDisp ;
for( n=0; n<MAX_INCRUST_DISP; n++, ptrdisp++ )
{
if( ptrdisp->Type == INCRUST_NUM )
{
ptrdisp->X += dx ;
ptrdisp->Y += dy ;
}
}
}
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
WORD LastNumBulle = -1 ;
WORD SpriteBulle = 91 ;
void DrawBulle( WORD numobj )
{
LONG dx, dy ;
ProjettePoint( ListObjet[numobj].PosObjX - WorldXCube,
ListObjet[numobj].PosObjY + ListObjet[numobj].Ymax - WorldYCube,
ListObjet[numobj].PosObjZ - WorldZCube ) ;
if( LastNumBulle != numobj )
{
SpriteBulle ^= 1 ;
LastNumBulle = numobj ;
}
GetDxDyGraph( 0, &dx, &dy, HQR_Get(HQRPtrSpriteExtra, SpriteBulle ) ) ;
if( SpriteBulle == 90 ) ScreenXmin = Xp + 10 ;
else ScreenXmin = Xp - 10 - dx ;
ScreenYmin = Yp - 20 ;
ScreenXmax = ScreenXmin + dx -1 ;
ScreenYmax = ScreenYmin + dy -1 ;
SetClip( ScreenXmin, ScreenYmin, ScreenXmax, ScreenYmax ) ;
AffGraph( 0, ScreenXmin, ScreenYmin, HQR_Get(HQRPtrSpriteExtra, SpriteBulle) ) ;
if( ClipXmin <= ClipXmax
AND ClipYmin <= ClipYmax )
{
CopyBlockPhys( ClipXmin, ClipYmin, ClipXmax, ClipYmax ) ;
}
UnSetClip() ;
}
/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/