Original Post
I'm having a very strange problem with . My program breaks at the following line in I don't understand how there can be a type mismatch, since I typedef'ed FrameVector.
_DEBUG_ERROR("vector iterators incompatible"); //Line 238
typedef vector<DWORD> FrameVector;
class CPlayer
{
public:
void AddToINV(BaseItem _Item);
void RemoveFromINV(DWORD ID);
void SetINV(CPlayer NewINV) {m_INV = NewINV.m_INV;}
vector<DWORD> GetINV();
ErrorMessage FindItem(DWORD ID);
vector<DWORD> FindItems(ItemTypes Type);
int SetPos(COORD SetTo);
int SetPos(int x, int y);
int SetFacing(Dir SetDir = North);
int ChangeFacing(Turn TurnBy);
int ChangePos(Dir Move);
void vChangeCharacter(CPlayer newcharacter);
COORD GetPos();
Dir GetFacing();
DWORD GetTextureID();
void AddFrame(DWORD TextureID);
CPlayer();
DWORD m_ID;
DWORD m_MapID;
DWORD m_dwCharacterID;
private:
PlayerINV m_INV;
FrameVector::iterator m_CurrentFrame;
FrameVector m_TextureFrames;
COORD Pos;
CDir Facing;
};
//Get currect texture ID, and increment it if there are multiple frames
DWORD CPlayer::GetTextureID()
{
if(m_CurrentFrame == m_TextureFrames.end()) // <<Error happens on this line
{
m_CurrentFrame = m_TextureFrames.begin();
}
DWORD temp = *m_CurrentFrame;
m_CurrentFrame++;
return temp;
}