Finialise the full game step
Had to rework a ton of code from bad design. NOTE: FRIENDLY FIRE IS ON >:D
This commit is contained in:
parent
6fc41914f7
commit
aee703b107
7 changed files with 379 additions and 57 deletions
|
@ -36,6 +36,7 @@ CUnit::CUnit()
|
|||
, player_id ( player_id_invalid )
|
||||
, unit_vis ( unitVis_invalid )
|
||||
, dir ( dir_t::S )
|
||||
, pos ( { ucoord_invalid, ucoord_invalid } )
|
||||
{
|
||||
updateMyVisual();
|
||||
};
|
||||
|
@ -47,6 +48,7 @@ CUnit::CUnit(CUnit&& unit)
|
|||
, player_id ( std::move(unit.player_id) )
|
||||
, unit_vis ( std::move(unit.unit_vis) )
|
||||
, dir ( std::move(unit.dir) )
|
||||
, pos ( std::move(unit.pos) )
|
||||
{
|
||||
updateMyVisual();
|
||||
}
|
||||
|
@ -81,7 +83,7 @@ bool CUnit::setFromVisual( const unitVis_c& vis )
|
|||
{
|
||||
if( it->second == vis )
|
||||
{
|
||||
dir == it->first;
|
||||
dir = it->first;
|
||||
updateMyVisual();
|
||||
return true;
|
||||
}
|
||||
|
@ -90,3 +92,91 @@ bool CUnit::setFromVisual( const unitVis_c& vis )
|
|||
// No matching direction to visual
|
||||
return false;
|
||||
}
|
||||
|
||||
// Turn unit left
|
||||
dir_t CUnit::turnLeft()
|
||||
{
|
||||
switch( dir )
|
||||
{
|
||||
case dir_t::N:
|
||||
dir = dir_t::W;
|
||||
break;
|
||||
|
||||
case dir_t::E:
|
||||
dir = dir_t::N;
|
||||
break;
|
||||
|
||||
case dir_t::S:
|
||||
dir = dir_t::E;
|
||||
break;
|
||||
|
||||
case dir_t::W:
|
||||
dir = dir_t::S;
|
||||
break;
|
||||
}
|
||||
|
||||
updateMyVisual();
|
||||
|
||||
return getDir();
|
||||
}
|
||||
|
||||
// Turn unit right
|
||||
dir_t CUnit::turnRight()
|
||||
{
|
||||
switch( dir )
|
||||
{
|
||||
case dir_t::N:
|
||||
dir = dir_t::E;
|
||||
break;
|
||||
|
||||
case dir_t::E:
|
||||
dir = dir_t::S;
|
||||
break;
|
||||
|
||||
case dir_t::S:
|
||||
dir = dir_t::W;
|
||||
break;
|
||||
|
||||
case dir_t::W:
|
||||
dir = dir_t::N;
|
||||
break;
|
||||
}
|
||||
|
||||
updateMyVisual();
|
||||
|
||||
return getDir();
|
||||
}
|
||||
|
||||
// Turn unit around
|
||||
dir_t CUnit::turnAround()
|
||||
{
|
||||
switch( dir )
|
||||
{
|
||||
case dir_t::N:
|
||||
dir = dir_t::S;
|
||||
break;
|
||||
|
||||
case dir_t::E:
|
||||
dir = dir_t::W;
|
||||
break;
|
||||
|
||||
case dir_t::S:
|
||||
dir = dir_t::N;
|
||||
break;
|
||||
|
||||
case dir_t::W:
|
||||
dir = dir_t::E;
|
||||
break;
|
||||
}
|
||||
|
||||
updateMyVisual();
|
||||
|
||||
return getDir();
|
||||
}
|
||||
|
||||
// Get the co-ordinate infront of the unit
|
||||
uvector2 CUnit::getInFront() const
|
||||
{
|
||||
vector2 delta = vecFromDir(dir);
|
||||
return pos + delta;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue