SBSPSS/source/projectl/prnpcspr.cpp
Charles 320876b044
2001-05-16 19:45:43 +00:00

75 lines
1.5 KiB
C++

/*=========================================================================
prnpcspr.cpp
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2000 Climax Development Ltd
===========================================================================*/
#ifndef __PROJECTL_PRNPCSPR_H__
#include "projectl\prnpcspr.h"
#endif
#ifndef __VID_HEADER_
#include "system\vid.h"
#endif
#ifndef __LEVEL_LEVEL_H__
#include "level\level.h"
#endif
void CEnemyAsSpriteProjectile::think( int _frames )
{
CPlayerProjectile::think( _frames );
m_rotation += 512;
m_rotation &= 4095;
}
void CEnemyAsSpriteProjectile::setGraphic( int frame )
{
m_spriteFrame = frame;
m_rotation = 0;
}
void CEnemyAsSpriteProjectile::setRGB( int R, int G, int B )
{
m_R = R;
m_G = G;
m_B = B;
}
void CEnemyAsSpriteProjectile::render()
{
sFrameHdr *frameHdr;
DVECTOR offset;
int x,y;
int scrnWidth = VidGetScrW();
int scrnHeight = VidGetScrH();
int spriteWidth = m_spriteBank->getFrameWidth( m_spriteFrame );
int spriteHeight = m_spriteBank->getFrameHeight( m_spriteFrame );
offset = getScreenOffset();
x = Pos.vx - offset.vx;
y = Pos.vy - offset.vy;
if ( x < -spriteWidth || y < -spriteHeight || x > scrnWidth || y > scrnHeight )
{
return;
}
frameHdr = m_spriteBank->getFrameHeader( m_spriteFrame );
POLY_FT4 *SprFrame = m_spriteBank->printRotatedScaledSprite( frameHdr, x, y, 4096, 4096, m_rotation, 0 );
if ( m_hasRGB )
{
setRGB0( SprFrame, m_R, m_G, m_B );
}
}