/*========================================================================= tplatfrm.cpp Author: CRB Created: Project: Spongebob Purpose: Copyright (c) 2001 Climax Development Ltd ===========================================================================*/ /*---------------------------------------------------------------------- Includes -------- */ #include "triggers\trigger.h" #include "triggers\tplatfrm.h" #ifndef __GAME_GAME_H__ #include "game\game.h" #endif /* Std Lib ------- */ /* Data ---- */ /*---------------------------------------------------------------------- Tyepdefs && Defines ------------------- */ /*---------------------------------------------------------------------- Structure defintions -------------------- */ /*---------------------------------------------------------------------- Function Prototypes ------------------- */ /*---------------------------------------------------------------------- Vars ---- */ /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ #if defined (__USER_art__) || defined (__USER_sbart__) #include "gfx\prim.h" void CPlatformTrigger::render() { DVECTOR ofs; CRECT area; CTriggerThing::render(); ofs=CLevel::getCameraPos(); area=getCollisionArea(); area.x1-=ofs.vx; area.y1-=ofs.vy; area.x2-=ofs.vx; area.y2-=ofs.vy; if(area.x1<=511&&area.x2>=0&& area.y1<=255&&area.y2>=0) { POLY_F4 *f4; f4=GetPrimF4(); setXY4(f4,area.x1,area.y1, area.x2,area.y1, area.x1,area.y2, area.x2,area.y2); setRGB0(f4,0,255,0); setSemiTrans(f4,true); AddPrimToList(f4,0); DrawLine(area.x1,area.y1,area.x2,area.y1,0,255,0,0); DrawLine(area.x2,area.y1,area.x2,area.y2,0,255,0,0); DrawLine(area.x2,area.y2,area.x1,area.y2,0,255,0,0); DrawLine(area.x1,area.y2,area.x1,area.y1,0,255,0,0); } } #endif /*---------------------------------------------------------------------- Function: Purpose: Params: Returns: ---------------------------------------------------------------------- */ void CPlatformTrigger::collidedWith(CThing *_thisThing) { switch( _thisThing->getThingType() ) { case TYPE_PLAYER: { CPlayer *player = (CPlayer *) _thisThing; ATTACK_STATE playerState = player->getAttackState(); if ( playerState == ATTACK_STATE__BUTT_BOUNCE ) { m_platform->trigger(); } break; } case TYPE_PLAYERPROJECTILE: { m_platform->trigger(); _thisThing->setToShutdown(); break; } default: break; } } /*=========================================================================== end */