This commit is contained in:
parent
0b22ba26cd
commit
c41e4640cf
2 changed files with 68 additions and 1 deletions
|
@ -59,6 +59,27 @@
|
||||||
#include "friend\fplnkton.h"
|
#include "friend\fplnkton.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __PAD_PADS_H__
|
||||||
|
#include "pad\pads.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GAME_CONVO_H__
|
||||||
|
#include "game\convo.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __SPR_SPRITES_H__
|
||||||
|
#include <sprites.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// These are temporary.. I'll clean them up when I can test them (pkg)
|
||||||
|
int strobespeed=20;
|
||||||
|
int strobebase=300;
|
||||||
|
int strobescale=100;
|
||||||
|
// These are temporary.. I'll clean them up when I can test them (pkg)
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Friend NPCs
|
// Friend NPCs
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -175,6 +196,8 @@ void CNpcFriend::init()
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
m_reversed = false;
|
m_reversed = false;
|
||||||
m_platform = NULL;
|
m_platform = NULL;
|
||||||
|
m_hasSpokenToSbYet=false;
|
||||||
|
m_iconStrobe=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -229,10 +252,28 @@ void CNpcFriend::think(int _frames)
|
||||||
m_animPlaying = true;
|
m_animPlaying = true;
|
||||||
m_frame = 0;
|
m_frame = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_iconStrobe=(m_iconStrobe+(strobespeed))&4095;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int m_control,m_iconFrame;
|
||||||
|
} ICON_MAP;
|
||||||
|
static const ICON_MAP s_iconMap[]=
|
||||||
|
{
|
||||||
|
{ PAD_UP, FRM__BUTU },
|
||||||
|
{ PAD_DOWN, FRM__BUTD },
|
||||||
|
{ PAD_LEFT, FRM__BUTL },
|
||||||
|
{ PAD_RIGHT, FRM__BUTR },
|
||||||
|
{ PAD_CROSS, FRM__BUTX },
|
||||||
|
{ PAD_SQUARE, FRM__BUTS },
|
||||||
|
{ PAD_CIRCLE, FRM__BUTC },
|
||||||
|
{ PAD_TRIANGLE, FRM__BUTT },
|
||||||
|
};
|
||||||
|
|
||||||
void CNpcFriend::render()
|
void CNpcFriend::render()
|
||||||
{
|
{
|
||||||
CNpcThing::render();
|
CNpcThing::render();
|
||||||
|
@ -249,6 +290,28 @@ void CNpcFriend::render()
|
||||||
boundingBox.YMax = 0;
|
boundingBox.YMax = 0;
|
||||||
setCollisionSize( ( boundingBox.XMax - boundingBox.XMin ), ( boundingBox.YMax - boundingBox.YMin ) );
|
setCollisionSize( ( boundingBox.XMax - boundingBox.XMin ), ( boundingBox.YMax - boundingBox.YMin ) );
|
||||||
setCollisionCentreOffset( ( boundingBox.XMax + boundingBox.XMin ) >> 1, ( boundingBox.YMax + boundingBox.YMin ) >> 1 );
|
setCollisionCentreOffset( ( boundingBox.XMax + boundingBox.XMin ) >> 1, ( boundingBox.YMax + boundingBox.YMin ) >> 1 );
|
||||||
|
|
||||||
|
if(m_hasSpokenToSbYet&&!CConversation::isActive())
|
||||||
|
{
|
||||||
|
const ICON_MAP *map;
|
||||||
|
int control;
|
||||||
|
sFrameHdr *fh;
|
||||||
|
int size;
|
||||||
|
DVECTOR iconPos;
|
||||||
|
|
||||||
|
map=s_iconMap;
|
||||||
|
control=CPadConfig::getButton(CPadConfig::PAD_CFG_UP);
|
||||||
|
while(map->m_control!=control)
|
||||||
|
{
|
||||||
|
map++;
|
||||||
|
}
|
||||||
|
fh=CGameScene::getSpriteBank()->getFrameHeader(map->m_iconFrame);
|
||||||
|
size=strobebase+((msin(m_iconStrobe)*strobescale)>>12);
|
||||||
|
iconPos=getRenderPos();
|
||||||
|
iconPos.vx-=(fh->W*size)>>(8+1);
|
||||||
|
iconPos.vy-=120;
|
||||||
|
CGameScene::getSpriteBank()->printFT4Scaled(fh,iconPos.vx,iconPos.vy,0,0,0,size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -263,8 +326,9 @@ void CNpcFriend::collidedWith( CThing *_thisThing )
|
||||||
{
|
{
|
||||||
CPlayer *player = (CPlayer *) _thisThing;
|
CPlayer *player = (CPlayer *) _thisThing;
|
||||||
|
|
||||||
if ( player->isTryingToConversateWithFriend() )
|
if ( !m_hasSpokenToSbYet||player->isTryingToConversateWithFriend() )
|
||||||
{
|
{
|
||||||
|
m_hasSpokenToSbYet=true;
|
||||||
startConderversation();
|
startConderversation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,9 @@ protected:
|
||||||
u8 m_animPlaying;
|
u8 m_animPlaying;
|
||||||
CActorGfx *m_actorGfx;
|
CActorGfx *m_actorGfx;
|
||||||
bool m_reversed;
|
bool m_reversed;
|
||||||
|
|
||||||
|
int m_hasSpokenToSbYet;
|
||||||
|
int m_iconStrobe;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Add table
Reference in a new issue