mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
* directional attack in battles
* CSystemOptionsWindow partially done * added a few consts and references to improve performance
This commit is contained in:
parent
8bde616908
commit
6a3d0b666f
@ -90,7 +90,7 @@ void AdventureMapButton::activate()
|
|||||||
KeyInterested::activate();
|
KeyInterested::activate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AdventureMapButton::keyPressed (SDL_KeyboardEvent & key)
|
void AdventureMapButton::keyPressed (const SDL_KeyboardEvent & key)
|
||||||
{
|
{
|
||||||
//TODO: check if it's shortcut
|
//TODO: check if it's shortcut
|
||||||
}
|
}
|
||||||
@ -272,7 +272,7 @@ void CSlider::sliderClicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSlider::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
void CSlider::mouseMoved (const SDL_MouseMotionEvent & sEvent)
|
||||||
{
|
{
|
||||||
float v = sEvent.x - pos.x - 24;
|
float v = sEvent.x - pos.x - 24;
|
||||||
v/= (pos.w - 48);
|
v/= (pos.w - 48);
|
||||||
|
@ -17,7 +17,7 @@ public:
|
|||||||
virtual void clickLeft (tribool down);
|
virtual void clickLeft (tribool down);
|
||||||
void hover (bool on);
|
void hover (bool on);
|
||||||
void block(bool on); //if button is blocked then it'll change it's graphic to inactive (offset==2) and won't react on l-clicks
|
void block(bool on); //if button is blocked then it'll change it's graphic to inactive (offset==2) and won't react on l-clicks
|
||||||
void keyPressed (SDL_KeyboardEvent & key);
|
void keyPressed (const SDL_KeyboardEvent & key);
|
||||||
void activate(); // makes button active
|
void activate(); // makes button active
|
||||||
void deactivate(); // makes button inactive (but doesn't delete)
|
void deactivate(); // makes button inactive (but doesn't delete)
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ public:
|
|||||||
void sliderClicked();
|
void sliderClicked();
|
||||||
void moveLeft();
|
void moveLeft();
|
||||||
void clickLeft (tribool down);
|
void clickLeft (tribool down);
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void moveRight();
|
void moveRight();
|
||||||
void moveTo(int to);
|
void moveTo(int to);
|
||||||
void block(bool on);
|
void block(bool on);
|
||||||
|
@ -219,7 +219,7 @@ void CMinimap::hover (bool on)
|
|||||||
else if (LOCPLINT->adventureInt->statusbar.current==statusbarTxt)
|
else if (LOCPLINT->adventureInt->statusbar.current==statusbarTxt)
|
||||||
LOCPLINT->adventureInt->statusbar.clear();
|
LOCPLINT->adventureInt->statusbar.clear();
|
||||||
}
|
}
|
||||||
void CMinimap::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
void CMinimap::mouseMoved (const SDL_MouseMotionEvent & sEvent)
|
||||||
{
|
{
|
||||||
if (pressedL)
|
if (pressedL)
|
||||||
{
|
{
|
||||||
@ -395,7 +395,7 @@ endchkpt:
|
|||||||
void CTerrainRect::clickRight(tribool down)
|
void CTerrainRect::clickRight(tribool down)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void CTerrainRect::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
void CTerrainRect::mouseMoved (const SDL_MouseMotionEvent & sEvent)
|
||||||
{
|
{
|
||||||
int3 pom=LOCPLINT->adventureInt->verifyPos(whichTileIsIt(sEvent.x,sEvent.y));
|
int3 pom=LOCPLINT->adventureInt->verifyPos(whichTileIsIt(sEvent.x,sEvent.y));
|
||||||
if (pom!=curHoveredTile)
|
if (pom!=curHoveredTile)
|
||||||
@ -438,7 +438,7 @@ void CTerrainRect::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
|||||||
}
|
}
|
||||||
CGI->curh->changeGraphic(0,0);
|
CGI->curh->changeGraphic(0,0);
|
||||||
}
|
}
|
||||||
void CTerrainRect::keyPressed (SDL_KeyboardEvent & key){}
|
void CTerrainRect::keyPressed (const SDL_KeyboardEvent & key){}
|
||||||
void CTerrainRect::hover(bool on)
|
void CTerrainRect::hover(bool on)
|
||||||
{
|
{
|
||||||
if (!on)
|
if (!on)
|
||||||
@ -698,7 +698,7 @@ void CTerrainRect::show()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int3 CTerrainRect::whichTileIsIt(int x, int y)
|
int3 CTerrainRect::whichTileIsIt(const int & x, const int & y)
|
||||||
{
|
{
|
||||||
int3 ret;
|
int3 ret;
|
||||||
ret.x = LOCPLINT->adventureInt->position.x + ((LOCPLINT->current->motion.x-pos.x)/32);
|
ret.x = LOCPLINT->adventureInt->position.x + ((LOCPLINT->current->motion.x-pos.x)/32);
|
||||||
@ -1048,6 +1048,11 @@ void CAdvMapInt::fadventureOPtions()
|
|||||||
}
|
}
|
||||||
void CAdvMapInt::fsystemOptions()
|
void CAdvMapInt::fsystemOptions()
|
||||||
{
|
{
|
||||||
|
LOCPLINT->curint->deactivate();
|
||||||
|
|
||||||
|
CSystemOptionsWindow * sysopWindow = new CSystemOptionsWindow(genRect(487, 481, 159, 57));
|
||||||
|
sysopWindow->activate();
|
||||||
|
LOCPLINT->objsToBlit.push_back(sysopWindow);
|
||||||
}
|
}
|
||||||
void CAdvMapInt::fnextHero()
|
void CAdvMapInt::fnextHero()
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
void clickRight (tribool down);
|
void clickRight (tribool down);
|
||||||
void clickLeft (tribool down);
|
void clickLeft (tribool down);
|
||||||
void hover (bool on);
|
void hover (bool on);
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void activate(); // makes button active
|
void activate(); // makes button active
|
||||||
void deactivate(); // makes button inactive (but don't deletes)
|
void deactivate(); // makes button inactive (but don't deletes)
|
||||||
void hideTile(int3 pos); //puts FoW
|
void hideTile(int3 pos); //puts FoW
|
||||||
@ -56,11 +56,11 @@ public:
|
|||||||
void clickLeft(tribool down);
|
void clickLeft(tribool down);
|
||||||
void clickRight(tribool down);
|
void clickRight(tribool down);
|
||||||
void hover(bool on);
|
void hover(bool on);
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void keyPressed (SDL_KeyboardEvent & key);
|
void keyPressed (const SDL_KeyboardEvent & key);
|
||||||
void show();
|
void show();
|
||||||
void showPath();
|
void showPath();
|
||||||
int3 whichTileIsIt(int x, int y); //x,y are cursor position
|
int3 whichTileIsIt(const int & x, const int & y); //x,y are cursor position
|
||||||
int3 whichTileIsIt(); //uses current cursor pos
|
int3 whichTileIsIt(); //uses current cursor pos
|
||||||
};
|
};
|
||||||
class CResDataBar
|
class CResDataBar
|
||||||
|
@ -248,6 +248,7 @@ void CBattleInterface::setPrintMouseShadow(bool set)
|
|||||||
|
|
||||||
void CBattleInterface::activate()
|
void CBattleInterface::activate()
|
||||||
{
|
{
|
||||||
|
MotionInterested::activate();
|
||||||
subInt = NULL;
|
subInt = NULL;
|
||||||
bOptions->activate();
|
bOptions->activate();
|
||||||
bSurrender->activate();
|
bSurrender->activate();
|
||||||
@ -270,6 +271,7 @@ void CBattleInterface::activate()
|
|||||||
|
|
||||||
void CBattleInterface::deactivate()
|
void CBattleInterface::deactivate()
|
||||||
{
|
{
|
||||||
|
MotionInterested::deactivate();
|
||||||
bOptions->deactivate();
|
bOptions->deactivate();
|
||||||
bSurrender->deactivate();
|
bSurrender->deactivate();
|
||||||
bFlee->deactivate();
|
bFlee->deactivate();
|
||||||
@ -461,6 +463,85 @@ void CBattleInterface::show(SDL_Surface * to)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CBattleInterface::mouseMoved(const SDL_MouseMotionEvent &sEvent)
|
||||||
|
{
|
||||||
|
if(activeStack>=0)
|
||||||
|
{
|
||||||
|
int myNumber = -1; //number of hovered tile
|
||||||
|
for(int g=0; g<187; ++g)
|
||||||
|
{
|
||||||
|
if(bfield[g].hovered && bfield[g].strictHovered)
|
||||||
|
{
|
||||||
|
myNumber = g;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(myNumber == -1)
|
||||||
|
{
|
||||||
|
CGI->curh->changeGraphic(1, 6);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(std::find(shadedHexes.begin(),shadedHexes.end(),myNumber) == shadedHexes.end())
|
||||||
|
{
|
||||||
|
CStack *shere = LOCPLINT->cb->battleGetStackByPos(myNumber);
|
||||||
|
if(shere)
|
||||||
|
{
|
||||||
|
if(shere->owner == LOCPLINT->playerID) //our stack
|
||||||
|
CGI->curh->changeGraphic(1,5);
|
||||||
|
else if(LOCPLINT->cb->battleGetStackByID(activeStack)->creature->isShooting()) //we can shoot enemy
|
||||||
|
CGI->curh->changeGraphic(1,3);
|
||||||
|
else if(isTileAttackable(myNumber)) //available enemy (melee attackable)
|
||||||
|
{
|
||||||
|
int fromHex = -1;
|
||||||
|
for(int b=0; b<187; ++b)
|
||||||
|
if(bfield[b].hovered && !bfield[b].strictHovered)
|
||||||
|
{
|
||||||
|
fromHex = b;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(fromHex!=-1 && fromHex%17!=0 && fromHex%17!=16)
|
||||||
|
{
|
||||||
|
switch(BattleInfo::mutualPosition(fromHex, myNumber))
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
CGI->curh->changeGraphic(1,12);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
CGI->curh->changeGraphic(1,7);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
CGI->curh->changeGraphic(1,8);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
CGI->curh->changeGraphic(1,9);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
CGI->curh->changeGraphic(1,10);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
CGI->curh->changeGraphic(1,11);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else //unavailable enemy
|
||||||
|
CGI->curh->changeGraphic(1,0);
|
||||||
|
}
|
||||||
|
else //empty unavailable tile
|
||||||
|
CGI->curh->changeGraphic(1,0);
|
||||||
|
}
|
||||||
|
else //available tile
|
||||||
|
{
|
||||||
|
if(LOCPLINT->cb->battleGetStackByID(activeStack)->creature->isFlying())
|
||||||
|
CGI->curh->changeGraphic(1,2);
|
||||||
|
else
|
||||||
|
CGI->curh->changeGraphic(1,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool CBattleInterface::reverseCreature(int number, int hex, bool wideTrick)
|
bool CBattleInterface::reverseCreature(int number, int hex, bool wideTrick)
|
||||||
{
|
{
|
||||||
if(creAnims[number]==NULL)
|
if(creAnims[number]==NULL)
|
||||||
@ -518,7 +599,6 @@ void CBattleInterface::bSurrenderf()
|
|||||||
|
|
||||||
void CBattleInterface::bFleef()
|
void CBattleInterface::bFleef()
|
||||||
{
|
{
|
||||||
|
|
||||||
CFunctionList<void()> ony = boost::bind(&CBattleInterface::activate,this);
|
CFunctionList<void()> ony = boost::bind(&CBattleInterface::activate,this);
|
||||||
ony += boost::bind(&CBattleInterface::reallyFlee,this);
|
ony += boost::bind(&CBattleInterface::reallyFlee,this);
|
||||||
LOCPLINT->showYesNoDialog(CGI->generaltexth->allTexts[28],std::vector<SComponent*>(), ony, boost::bind(&CBattleInterface::activate,this), true, false);
|
LOCPLINT->showYesNoDialog(CGI->generaltexth->allTexts[28],std::vector<SComponent*>(), ony, boost::bind(&CBattleInterface::activate,this), true, false);
|
||||||
@ -951,6 +1031,16 @@ void CBattleInterface::giveCommand(ui8 action, ui16 tile, ui32 stack, si32 addit
|
|||||||
activeStack = -1;
|
activeStack = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CBattleInterface::isTileAttackable(int number)
|
||||||
|
{
|
||||||
|
for(int b=0; b<shadedHexes.size(); ++b)
|
||||||
|
{
|
||||||
|
if(BattleInfo::mutualPosition(shadedHexes[b], number) != -1 || shadedHexes[b] == number)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void CBattleInterface::hexLclicked(int whichOne)
|
void CBattleInterface::hexLclicked(int whichOne)
|
||||||
{
|
{
|
||||||
if((whichOne%17)!=0 && (whichOne%17)!=16) //if player is trying to attack enemey unit or move creature stack
|
if((whichOne%17)!=0 && (whichOne%17)!=16) //if player is trying to attack enemey unit or move creature stack
|
||||||
@ -972,15 +1062,36 @@ void CBattleInterface::hexLclicked(int whichOne)
|
|||||||
}
|
}
|
||||||
else if(dest->owner != attackingHeroInstance->tempOwner) //attacking
|
else if(dest->owner != attackingHeroInstance->tempOwner) //attacking
|
||||||
{
|
{
|
||||||
std::vector<int> n = BattleInfo::neighbouringTiles(whichOne);
|
//std::vector<int> n = BattleInfo::neighbouringTiles(whichOne);
|
||||||
for(int i=0;i<n.size();i++)
|
//for(int i=0;i<n.size();i++)
|
||||||
|
//{
|
||||||
|
// //TODO: now we are using first available tile, but in the future we should add possibility of choosing from which tile we want to attack
|
||||||
|
// if(vstd::contains(shadedHexes,n[i]))
|
||||||
|
// {
|
||||||
|
// giveCommand(6,n[i],activeStack,whichOne);
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
switch(CGI->curh->number)
|
||||||
{
|
{
|
||||||
//TODO: now we are using first available tile, but in the future we should add possibility of choosing from which tile we want to attack
|
case 12:
|
||||||
if(vstd::contains(shadedHexes,n[i]))
|
giveCommand(6,whichOne + ( (whichOne/17)%2 ? 17 : 18 ),activeStack,whichOne);
|
||||||
{
|
break;
|
||||||
giveCommand(6,n[i],activeStack,whichOne);
|
case 7:
|
||||||
return;
|
giveCommand(6,whichOne + ( (whichOne/17)%2 ? 16 : 17 ),activeStack,whichOne);
|
||||||
}
|
break;
|
||||||
|
case 8:
|
||||||
|
giveCommand(6,whichOne - 1,activeStack,whichOne);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
giveCommand(6,whichOne - ( (whichOne/17)%2 ? 18 : 17 ),activeStack,whichOne);
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
giveCommand(6,whichOne - ( (whichOne/17)%2 ? 17 : 16 ),activeStack,whichOne);
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
giveCommand(6,whichOne + 1,activeStack,whichOne);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1089,6 +1200,8 @@ float CBattleInterface::getAnimSpeedMultiplier() const
|
|||||||
return 2.2f;
|
return 2.2f;
|
||||||
case 4:
|
case 4:
|
||||||
return 1.0f;
|
return 1.0f;
|
||||||
|
default:
|
||||||
|
return 0.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1415,7 +1528,7 @@ void CBattleHero::clickLeft(boost::logic::tribool down)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CBattleHero::CBattleHero(std::string defName, int phaseG, int imageG, bool flipG, unsigned char player, const CGHeroInstance * hero): phase(phaseG), image(imageG), flip(flipG), flagAnim(0), myHero(hero)
|
CBattleHero::CBattleHero(const std::string & defName, int phaseG, int imageG, bool flipG, unsigned char player, const CGHeroInstance * hero): phase(phaseG), image(imageG), flip(flipG), flagAnim(0), myHero(hero)
|
||||||
{
|
{
|
||||||
dh = CDefHandler::giveDef( defName );
|
dh = CDefHandler::giveDef( defName );
|
||||||
for(int i=0; i<dh->ourImages.size(); ++i) //transforming images
|
for(int i=0; i<dh->ourImages.size(); ++i) //transforming images
|
||||||
@ -1508,7 +1621,7 @@ CBattleHex::CBattleHex() : myNumber(-1), accesible(true), hovered(false), strict
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBattleHex::mouseMoved(SDL_MouseMotionEvent &sEvent)
|
void CBattleHex::mouseMoved(const SDL_MouseMotionEvent &sEvent)
|
||||||
{
|
{
|
||||||
if(myInterface->cellShade)
|
if(myInterface->cellShade)
|
||||||
{
|
{
|
||||||
@ -1519,31 +1632,6 @@ void CBattleHex::mouseMoved(SDL_MouseMotionEvent &sEvent)
|
|||||||
else //hovered pixel is inside hex
|
else //hovered pixel is inside hex
|
||||||
{
|
{
|
||||||
strictHovered = true;
|
strictHovered = true;
|
||||||
if(myInterface->activeStack>=0)
|
|
||||||
{
|
|
||||||
if(std::find(myInterface->shadedHexes.begin(),myInterface->shadedHexes.end(),myNumber) == myInterface->shadedHexes.end())
|
|
||||||
{
|
|
||||||
CStack *shere = LOCPLINT->cb->battleGetStackByPos(myNumber);
|
|
||||||
if(shere)
|
|
||||||
{
|
|
||||||
if(shere->owner == LOCPLINT->playerID) //our stack
|
|
||||||
CGI->curh->changeGraphic(1,5);
|
|
||||||
else if(LOCPLINT->cb->battleGetStackByID(myInterface->activeStack)->creature->isShooting()) //we can shoot enemy
|
|
||||||
CGI->curh->changeGraphic(1,3);
|
|
||||||
else //unavailable enemy
|
|
||||||
CGI->curh->changeGraphic(1,0);
|
|
||||||
}
|
|
||||||
else //empty unavailable tile
|
|
||||||
CGI->curh->changeGraphic(1,0);
|
|
||||||
}
|
|
||||||
else //available tile
|
|
||||||
{
|
|
||||||
if(LOCPLINT->cb->battleGetStackByID(myInterface->activeStack)->creature->isFlying())
|
|
||||||
CGI->curh->changeGraphic(1,2);
|
|
||||||
else
|
|
||||||
CGI->curh->changeGraphic(1,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1555,7 +1643,7 @@ void CBattleHex::mouseMoved(SDL_MouseMotionEvent &sEvent)
|
|||||||
{
|
{
|
||||||
char tabh[160];
|
char tabh[160];
|
||||||
CStack attackedStack = *LOCPLINT->cb->battleGetStackByPos(myNumber);
|
CStack attackedStack = *LOCPLINT->cb->battleGetStackByPos(myNumber);
|
||||||
std::string attackedName = attackedStack.amount == 1 ? attackedStack.creature->nameSing : attackedStack.creature->namePl;
|
const std::string & attackedName = attackedStack.amount == 1 ? attackedStack.creature->nameSing : attackedStack.creature->namePl;
|
||||||
sprintf(tabh, CGI->generaltexth->allTexts[220].c_str(), attackedName.c_str());
|
sprintf(tabh, CGI->generaltexth->allTexts[220].c_str(), attackedName.c_str());
|
||||||
myInterface->console->alterTxt = std::string(tabh);
|
myInterface->console->alterTxt = std::string(tabh);
|
||||||
setAlterText = true;
|
setAlterText = true;
|
||||||
@ -1632,7 +1720,7 @@ void CBattleConsole::show(SDL_Surface * to)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CBattleConsole::addText(std::string text)
|
bool CBattleConsole::addText(const std::string & text)
|
||||||
{
|
{
|
||||||
if(text.size()>70)
|
if(text.size()>70)
|
||||||
return false; //text too long!
|
return false; //text too long!
|
||||||
@ -1661,7 +1749,7 @@ void CBattleConsole::eraseText(unsigned int pos)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBattleConsole::changeTextAt(std::string text, unsigned int pos)
|
void CBattleConsole::changeTextAt(const std::string & text, unsigned int pos)
|
||||||
{
|
{
|
||||||
if(pos >= texts.size()) //no such pos
|
if(pos >= texts.size()) //no such pos
|
||||||
return;
|
return;
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
void activate();
|
void activate();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
void clickLeft(boost::logic::tribool down);
|
void clickLeft(boost::logic::tribool down);
|
||||||
CBattleHero(std::string defName, int phaseG, int imageG, bool filpG, unsigned char player, const CGHeroInstance * hero); //c-tor
|
CBattleHero(const std::string & defName, int phaseG, int imageG, bool filpG, unsigned char player, const CGHeroInstance * hero); //c-tor
|
||||||
~CBattleHero(); //d-tor
|
~CBattleHero(); //d-tor
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ public:
|
|||||||
void hover (bool on);
|
void hover (bool on);
|
||||||
void activate();
|
void activate();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void clickLeft(boost::logic::tribool down);
|
void clickLeft(boost::logic::tribool down);
|
||||||
void clickRight(boost::logic::tribool down);
|
void clickRight(boost::logic::tribool down);
|
||||||
CBattleHex();
|
CBattleHex();
|
||||||
@ -69,9 +69,9 @@ public:
|
|||||||
CBattleConsole(); //c-tor
|
CBattleConsole(); //c-tor
|
||||||
~CBattleConsole(); //d-tor
|
~CBattleConsole(); //d-tor
|
||||||
void show(SDL_Surface * to = 0);
|
void show(SDL_Surface * to = 0);
|
||||||
bool addText(std::string text); //adds text at the last position; returns false if failed (e.g. text longer than 70 characters)
|
bool addText(const std::string & text); //adds text at the last position; returns false if failed (e.g. text longer than 70 characters)
|
||||||
void eraseText(unsigned int pos); //erases added text at position pos
|
void eraseText(unsigned int pos); //erases added text at position pos
|
||||||
void changeTextAt(std::string text, unsigned int pos); //if we have more than pos texts, pos-th is changed to given one
|
void changeTextAt(const std::string & text, unsigned int pos); //if we have more than pos texts, pos-th is changed to given one
|
||||||
void scrollUp(unsigned int by = 1); //scrolls console up by 'by' positions
|
void scrollUp(unsigned int by = 1); //scrolls console up by 'by' positions
|
||||||
void scrollDown(unsigned int by = 1); //scrolls console up by 'by' positions
|
void scrollDown(unsigned int by = 1); //scrolls console up by 'by' positions
|
||||||
};
|
};
|
||||||
@ -112,7 +112,7 @@ public:
|
|||||||
void show(SDL_Surface * to = 0);
|
void show(SDL_Surface * to = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
class CBattleInterface : public CMainInterface
|
class CBattleInterface : public CMainInterface, public MotionInterested
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
SDL_Surface * background, * menu, * amountBasic, * amountNormal, * cellBorders, * backgroundWithHexes;
|
SDL_Surface * background, * menu, * amountBasic, * amountNormal, * cellBorders, * backgroundWithHexes;
|
||||||
@ -160,6 +160,7 @@ private:
|
|||||||
std::list<SProjectileInfo> projectiles;
|
std::list<SProjectileInfo> projectiles;
|
||||||
void projectileShowHelper(SDL_Surface * to=NULL); //prints projectiles present on the battlefield
|
void projectileShowHelper(SDL_Surface * to=NULL); //prints projectiles present on the battlefield
|
||||||
void giveCommand(ui8 action, ui16 tile, ui32 stack, si32 additional=-1);
|
void giveCommand(ui8 action, ui16 tile, ui32 stack, si32 additional=-1);
|
||||||
|
bool isTileAttackable(int number); //returns true if tile 'number' is neighbouring any tile from active stack's range or is one of these tiles
|
||||||
public:
|
public:
|
||||||
CBattleInterface(CCreatureSet * army1, CCreatureSet * army2, CGHeroInstance *hero1, CGHeroInstance *hero2); //c-tor
|
CBattleInterface(CCreatureSet * army1, CCreatureSet * army2, CGHeroInstance *hero1, CGHeroInstance *hero2); //c-tor
|
||||||
~CBattleInterface(); //d-tor
|
~CBattleInterface(); //d-tor
|
||||||
@ -198,6 +199,7 @@ public:
|
|||||||
void activate();
|
void activate();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
void show(SDL_Surface * to = NULL);
|
void show(SDL_Surface * to = NULL);
|
||||||
|
void mouseMoved(const SDL_MouseMotionEvent &sEvent);
|
||||||
bool reverseCreature(int number, int hex, bool wideTrick = false); //reverses animation of given creature playing animation of reversing
|
bool reverseCreature(int number, int hex, bool wideTrick = false); //reverses animation of given creature playing animation of reversing
|
||||||
|
|
||||||
//call-ins
|
//call-ins
|
||||||
|
@ -143,7 +143,7 @@ void CBuildingRect::clickRight (tribool down)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBuildingRect::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
void CBuildingRect::mouseMoved (const SDL_MouseMotionEvent & sEvent)
|
||||||
{
|
{
|
||||||
if(area)
|
if(area)
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,7 @@ public:
|
|||||||
void hover(bool on);
|
void hover(bool on);
|
||||||
void clickLeft (tribool down);
|
void clickLeft (tribool down);
|
||||||
void clickRight (tribool down);
|
void clickRight (tribool down);
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
};
|
};
|
||||||
class CHeroGSlot : public ClickableL, public ClickableR, public Hoverable
|
class CHeroGSlot : public ClickableL, public ClickableR, public Hoverable
|
||||||
{
|
{
|
||||||
|
@ -18,13 +18,13 @@ void CCursorHandler::initCursor()
|
|||||||
SDL_ShowCursor(SDL_DISABLE);
|
SDL_ShowCursor(SDL_DISABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCursorHandler::changeGraphic(int type, int no)
|
void CCursorHandler::changeGraphic(const int & type, const int & no)
|
||||||
{
|
{
|
||||||
mode = type;
|
mode = type;
|
||||||
number = no;
|
number = no;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCursorHandler::cursorMove(int x, int y)
|
void CCursorHandler::cursorMove(const int & x, const int & y)
|
||||||
{
|
{
|
||||||
xpos = x;
|
xpos = x;
|
||||||
ypos = y;
|
ypos = y;
|
||||||
|
@ -16,8 +16,8 @@ public:
|
|||||||
std::vector<CDefHandler*> cursors;
|
std::vector<CDefHandler*> cursors;
|
||||||
int xpos, ypos; //position of cursor
|
int xpos, ypos; //position of cursor
|
||||||
void initCursor(); //inits cursorHandler
|
void initCursor(); //inits cursorHandler
|
||||||
void cursorMove(int x, int y); //change cursor's positions to (x, y)
|
void cursorMove(const int & x, const int & y); //change cursor's positions to (x, y)
|
||||||
void changeGraphic(int type, int no); //changes cursor graphic for type type (0 - adventure, 1 - combat, 2 - default, 3 - spellbook) and frame no (not used for type 3)
|
void changeGraphic(const int & type, const int & no); //changes cursor graphic for type type (0 - adventure, 1 - combat, 2 - default, 3 - spellbook) and frame no (not used for type 3)
|
||||||
void draw1();
|
void draw1();
|
||||||
void draw2();
|
void draw2();
|
||||||
void hide(){Show=0;};
|
void hide(){Show=0;};
|
||||||
|
@ -2269,7 +2269,7 @@ void CStatusBar::clear()
|
|||||||
SDL_Rect pom = genRect(pos.h,pos.w,pos.x,pos.y);
|
SDL_Rect pom = genRect(pos.h,pos.w,pos.x,pos.y);
|
||||||
SDL_BlitSurface(bg,&genRect(pos.h,pos.w,0,0),screen,&pom);
|
SDL_BlitSurface(bg,&genRect(pos.h,pos.w,0,0),screen,&pom);
|
||||||
}
|
}
|
||||||
void CStatusBar::print(std::string text)
|
void CStatusBar::print(const std::string & text)
|
||||||
{
|
{
|
||||||
current=text;
|
current=text;
|
||||||
SDL_Rect pom = genRect(pos.h,pos.w,pos.x,pos.y);
|
SDL_Rect pom = genRect(pos.h,pos.w,pos.x,pos.y);
|
||||||
@ -2432,7 +2432,7 @@ void CHeroList::clickLeft(tribool down)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void CHeroList::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
void CHeroList::mouseMoved (const SDL_MouseMotionEvent & sEvent)
|
||||||
{
|
{
|
||||||
if(isItIn(&arrupp,LOCPLINT->current->motion.x,LOCPLINT->current->motion.y))
|
if(isItIn(&arrupp,LOCPLINT->current->motion.x,LOCPLINT->current->motion.y))
|
||||||
{
|
{
|
||||||
@ -2502,7 +2502,7 @@ void CHeroList::clickRight(tribool down)
|
|||||||
void CHeroList::hover (bool on)
|
void CHeroList::hover (bool on)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void CHeroList::keyPressed (SDL_KeyboardEvent & key)
|
void CHeroList::keyPressed (const SDL_KeyboardEvent & key)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void CHeroList::updateHList()
|
void CHeroList::updateHList()
|
||||||
@ -2617,7 +2617,7 @@ void CTownList::select(int which)
|
|||||||
fun();
|
fun();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTownList::mouseMoved (SDL_MouseMotionEvent & sEvent)
|
void CTownList::mouseMoved (const SDL_MouseMotionEvent & sEvent)
|
||||||
{
|
{
|
||||||
if(isItIn(&arrupp,LOCPLINT->current->motion.x,LOCPLINT->current->motion.y))
|
if(isItIn(&arrupp,LOCPLINT->current->motion.x,LOCPLINT->current->motion.y))
|
||||||
{
|
{
|
||||||
@ -2749,7 +2749,7 @@ void CTownList::hover (bool on)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTownList::keyPressed (SDL_KeyboardEvent & key)
|
void CTownList::keyPressed (const SDL_KeyboardEvent & key)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3070,7 +3070,7 @@ void CSplitWindow::show(SDL_Surface * to)
|
|||||||
anim->blitPic(screen,pos.x+20,pos.y+54,false);
|
anim->blitPic(screen,pos.x+20,pos.y+54,false);
|
||||||
anim->blitPic(screen,pos.x+177,pos.y+54,false);
|
anim->blitPic(screen,pos.x+177,pos.y+54,false);
|
||||||
}
|
}
|
||||||
void CSplitWindow::keyPressed (SDL_KeyboardEvent & key)
|
void CSplitWindow::keyPressed (const SDL_KeyboardEvent & key)
|
||||||
{
|
{
|
||||||
//TODO: make manual typing possible
|
//TODO: make manual typing possible
|
||||||
}
|
}
|
||||||
@ -3287,7 +3287,7 @@ void CCreInfoWindow::dismissF()
|
|||||||
dsm();
|
dsm();
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
void CCreInfoWindow::keyPressed (SDL_KeyboardEvent & key)
|
void CCreInfoWindow::keyPressed (const SDL_KeyboardEvent & key)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
void CCreInfoWindow::deactivate()
|
void CCreInfoWindow::deactivate()
|
||||||
@ -3732,4 +3732,88 @@ void CMarketplaceWindow::selectionChanged(bool side)
|
|||||||
rSubs[i] = oss.str();
|
rSubs[i] = oss.str();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSystemOptionsWindow::CSystemOptionsWindow(const SDL_Rect &pos)
|
||||||
|
{
|
||||||
|
this->pos = pos;
|
||||||
|
background = BitmapHandler::loadBitmap("SysOpbck.bmp", true);
|
||||||
|
graphics->blueToPlayersAdv(background, LOCPLINT->playerID);
|
||||||
|
|
||||||
|
//printing texts
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[568], 240, 32, GEOR16, tytulowy, background); //window title
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[569], 122, 65, GEOR16, tytulowy, background); //hero speed
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[570], 122, 131, GEOR16, tytulowy, background); //enemy speed
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[571], 122, 197, GEOR16, tytulowy, background); //map scroll speed
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[20], 122, 263, GEOR16, tytulowy, background); //video quality
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[394], 122, 348, GEOR16, tytulowy, background); //music volume
|
||||||
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->allTexts[395], 122, 414, GEOR16, tytulowy, background); //effects volume
|
||||||
|
|
||||||
|
CSDL_Ext::printAt(CGI->generaltexth->allTexts[572], 283, 57, GEOR16, zwykly, background); //show move path
|
||||||
|
CSDL_Ext::printAt(CGI->generaltexth->allTexts[573], 283, 89, GEOR16, zwykly, background); //show hero reminder
|
||||||
|
CSDL_Ext::printAt(CGI->generaltexth->allTexts[574], 283, 121, GEOR16, zwykly, background); //quick combat
|
||||||
|
CSDL_Ext::printAt(CGI->generaltexth->allTexts[575], 283, 153, GEOR16, zwykly, background); //video subtitles
|
||||||
|
CSDL_Ext::printAt(CGI->generaltexth->allTexts[576], 283, 185, GEOR16, zwykly, background); //town building outlines
|
||||||
|
CSDL_Ext::printAt(CGI->generaltexth->allTexts[577], 283, 217, GEOR16, zwykly, background); //spell book animation
|
||||||
|
|
||||||
|
//setting up buttons
|
||||||
|
quitGame = new AdventureMapButton (CGI->preth->zelp[324].first, CGI->preth->zelp[324].second, boost::bind(&CSystemOptionsWindow::bquitf, this), 405, 471, "soquit.def", false, NULL, false);
|
||||||
|
std::swap(quitGame->imgs[0][0], quitGame->imgs[0][1]);
|
||||||
|
backToMap = new AdventureMapButton (CGI->preth->zelp[325].first, CGI->preth->zelp[325].second, boost::bind(&CSystemOptionsWindow::breturnf, this), 516, 471, "soretrn.def", false, NULL, false);
|
||||||
|
std::swap(backToMap->imgs[0][0], backToMap->imgs[0][1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
CSystemOptionsWindow::~CSystemOptionsWindow()
|
||||||
|
{
|
||||||
|
SDL_FreeSurface(background);
|
||||||
|
|
||||||
|
delete quitGame;
|
||||||
|
delete backToMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSystemOptionsWindow::bquitf()
|
||||||
|
{
|
||||||
|
this->deactivate();
|
||||||
|
LOCPLINT->showYesNoDialog(CGI->generaltexth->allTexts[578], std::vector<SComponent*>(), boost::bind(exit, 0), boost::bind(&CSystemOptionsWindow::activate, this), false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSystemOptionsWindow::breturnf()
|
||||||
|
{
|
||||||
|
deactivate();
|
||||||
|
|
||||||
|
for(int g=0; g<LOCPLINT->objsToBlit.size(); ++g)
|
||||||
|
{
|
||||||
|
if(dynamic_cast<CSystemOptionsWindow*>(LOCPLINT->objsToBlit[g]))
|
||||||
|
{
|
||||||
|
LOCPLINT->objsToBlit.erase(LOCPLINT->objsToBlit.begin()+g);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delete this;
|
||||||
|
LOCPLINT->curint->activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSystemOptionsWindow::activate()
|
||||||
|
{
|
||||||
|
quitGame->activate();
|
||||||
|
backToMap->activate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSystemOptionsWindow::deactivate()
|
||||||
|
{
|
||||||
|
quitGame->deactivate();
|
||||||
|
backToMap->deactivate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSystemOptionsWindow::show(SDL_Surface *to)
|
||||||
|
{
|
||||||
|
//evaluating to
|
||||||
|
if(!to)
|
||||||
|
to = screen;
|
||||||
|
|
||||||
|
SDL_BlitSurface(background, NULL, to, &pos);
|
||||||
|
|
||||||
|
quitGame->show(to);
|
||||||
|
backToMap->show(to);
|
||||||
|
}
|
||||||
|
@ -44,7 +44,7 @@ class IStatusBar
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~IStatusBar(){}; //d-tor
|
virtual ~IStatusBar(){}; //d-tor
|
||||||
virtual void print(std::string text)=0; //prints text and refreshes statusbar
|
virtual void print(const std::string & text)=0; //prints text and refreshes statusbar
|
||||||
virtual void clear()=0;//clears statusbar and refreshes
|
virtual void clear()=0;//clears statusbar and refreshes
|
||||||
virtual void show()=0; //shows statusbar (with current text)
|
virtual void show()=0; //shows statusbar (with current text)
|
||||||
virtual std::string getCurrent()=0;
|
virtual std::string getCurrent()=0;
|
||||||
@ -134,7 +134,7 @@ class KeyInterested : public virtual CIntObject
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~KeyInterested(){};
|
virtual ~KeyInterested(){};
|
||||||
virtual void keyPressed (SDL_KeyboardEvent & key)=0;
|
virtual void keyPressed (const SDL_KeyboardEvent & key)=0;
|
||||||
virtual void activate()=0;
|
virtual void activate()=0;
|
||||||
virtual void deactivate()=0;
|
virtual void deactivate()=0;
|
||||||
};
|
};
|
||||||
@ -144,7 +144,7 @@ public:
|
|||||||
bool strongInterest; //if true - report all mouse movements, if not - only when hovered
|
bool strongInterest; //if true - report all mouse movements, if not - only when hovered
|
||||||
MotionInterested(){strongInterest=false;};
|
MotionInterested(){strongInterest=false;};
|
||||||
virtual ~MotionInterested(){};
|
virtual ~MotionInterested(){};
|
||||||
virtual void mouseMoved (SDL_MouseMotionEvent & sEvent)=0;
|
virtual void mouseMoved (const SDL_MouseMotionEvent & sEvent)=0;
|
||||||
virtual void activate()=0;
|
virtual void activate()=0;
|
||||||
virtual void deactivate()=0;
|
virtual void deactivate()=0;
|
||||||
};
|
};
|
||||||
@ -400,7 +400,7 @@ public:
|
|||||||
|
|
||||||
CStatusBar(int x, int y, std::string name="ADROLLVR.bmp", int maxw=-1); //c-tor
|
CStatusBar(int x, int y, std::string name="ADROLLVR.bmp", int maxw=-1); //c-tor
|
||||||
~CStatusBar(); //d-tor
|
~CStatusBar(); //d-tor
|
||||||
void print(std::string text); //prints text and refreshes statusbar
|
void print(const std::string & text); //prints text and refreshes statusbar
|
||||||
void clear();//clears statusbar and refreshes
|
void clear();//clears statusbar and refreshes
|
||||||
void show(); //shows statusbar (with current text)
|
void show(); //shows statusbar (with current text)
|
||||||
std::string getCurrent();
|
std::string getCurrent();
|
||||||
@ -424,7 +424,7 @@ public:
|
|||||||
void clickLeft(boost::logic::tribool down);
|
void clickLeft(boost::logic::tribool down);
|
||||||
void activate();
|
void activate();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
virtual void mouseMoved (SDL_MouseMotionEvent & sEvent)=0;
|
virtual void mouseMoved (const SDL_MouseMotionEvent & sEvent)=0;
|
||||||
virtual void genList()=0;
|
virtual void genList()=0;
|
||||||
virtual void select(int which)=0;
|
virtual void select(int which)=0;
|
||||||
virtual void draw()=0;
|
virtual void draw()=0;
|
||||||
@ -441,11 +441,11 @@ public:
|
|||||||
int getPosOfHero(const CArmedInstance* h);
|
int getPosOfHero(const CArmedInstance* h);
|
||||||
void genList();
|
void genList();
|
||||||
void select(int which);
|
void select(int which);
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void clickLeft(boost::logic::tribool down);
|
void clickLeft(boost::logic::tribool down);
|
||||||
void clickRight(boost::logic::tribool down);
|
void clickRight(boost::logic::tribool down);
|
||||||
void hover (bool on);
|
void hover (bool on);
|
||||||
void keyPressed (SDL_KeyboardEvent & key);
|
void keyPressed (const SDL_KeyboardEvent & key);
|
||||||
void updateHList();
|
void updateHList();
|
||||||
void updateMove(const CGHeroInstance* which); //draws move points bar
|
void updateMove(const CGHeroInstance* which); //draws move points bar
|
||||||
void redrawAllOne(int which);
|
void redrawAllOne(int which);
|
||||||
@ -465,11 +465,11 @@ public:
|
|||||||
~CTownList();
|
~CTownList();
|
||||||
void genList();
|
void genList();
|
||||||
void select(int which);
|
void select(int which);
|
||||||
void mouseMoved (SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void clickLeft(boost::logic::tribool down);
|
void clickLeft(boost::logic::tribool down);
|
||||||
void clickRight(boost::logic::tribool down);
|
void clickRight(boost::logic::tribool down);
|
||||||
void hover (bool on);
|
void hover (bool on);
|
||||||
void keyPressed (SDL_KeyboardEvent & key);
|
void keyPressed (const SDL_KeyboardEvent & key);
|
||||||
void draw();
|
void draw();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -534,7 +534,7 @@ public:
|
|||||||
void close();
|
void close();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
void show(SDL_Surface * to = NULL);
|
void show(SDL_Surface * to = NULL);
|
||||||
void keyPressed (SDL_KeyboardEvent & key);
|
void keyPressed (const SDL_KeyboardEvent & key);
|
||||||
void sliderMoved(int to);
|
void sliderMoved(int to);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -560,7 +560,7 @@ public:
|
|||||||
void close();
|
void close();
|
||||||
void clickRight(boost::logic::tribool down);
|
void clickRight(boost::logic::tribool down);
|
||||||
void dismissF();
|
void dismissF();
|
||||||
void keyPressed (SDL_KeyboardEvent & key);
|
void keyPressed (const SDL_KeyboardEvent & key);
|
||||||
void deactivate();
|
void deactivate();
|
||||||
void show(SDL_Surface * to = NULL);
|
void show(SDL_Surface * to = NULL);
|
||||||
void onUpgradeYes();
|
void onUpgradeYes();
|
||||||
@ -636,6 +636,24 @@ public:
|
|||||||
void clear();
|
void clear();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CSystemOptionsWindow : public IShowActivable, public CIntObject
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
SDL_Surface * background; //background of window
|
||||||
|
AdventureMapButton * quitGame, * backToMap;
|
||||||
|
public:
|
||||||
|
CSystemOptionsWindow(const SDL_Rect & pos); //c-tor
|
||||||
|
~CSystemOptionsWindow(); //d-tor
|
||||||
|
|
||||||
|
//functions for butons
|
||||||
|
void bquitf(); //quit game
|
||||||
|
void breturnf(); //return to game
|
||||||
|
|
||||||
|
void activate();
|
||||||
|
void deactivate();
|
||||||
|
void show(SDL_Surface * to = NULL);
|
||||||
|
};
|
||||||
|
|
||||||
extern CPlayerInterface * LOCPLINT;
|
extern CPlayerInterface * LOCPLINT;
|
||||||
|
|
||||||
#endif //CPLAYERINTERFACE_H
|
#endif //CPLAYERINTERFACE_H
|
||||||
|
@ -69,7 +69,7 @@ void updateRect (SDL_Rect * rect, SDL_Surface * scr)
|
|||||||
{
|
{
|
||||||
SDL_UpdateRect(scr,rect->x,rect->y,rect->w,rect->h);
|
SDL_UpdateRect(scr,rect->x,rect->y,rect->w,rect->h);
|
||||||
}
|
}
|
||||||
void CSDL_Ext::printAtMiddleWB(std::string text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor, SDL_Surface * dst)
|
void CSDL_Ext::printAtMiddleWB(const std::string & text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor, SDL_Surface * dst)
|
||||||
{
|
{
|
||||||
std::vector<std::string> * ws = CMessage::breakText(text,charpr);
|
std::vector<std::string> * ws = CMessage::breakText(text,charpr);
|
||||||
std::vector<SDL_Surface*> wesu;
|
std::vector<SDL_Surface*> wesu;
|
||||||
@ -97,7 +97,7 @@ void CSDL_Ext::printAtMiddleWB(std::string text, int x, int y, TTF_Font * font,
|
|||||||
SDL_FreeSurface(wesu[i]);
|
SDL_FreeSurface(wesu[i]);
|
||||||
delete ws;
|
delete ws;
|
||||||
}
|
}
|
||||||
void CSDL_Ext::printAtWB(std::string text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor, SDL_Surface * dst)
|
void CSDL_Ext::printAtWB(const std::string & text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor, SDL_Surface * dst)
|
||||||
{
|
{
|
||||||
std::vector<std::string> * ws = CMessage::breakText(text,charpr);
|
std::vector<std::string> * ws = CMessage::breakText(text,charpr);
|
||||||
std::vector<SDL_Surface*> wesu;
|
std::vector<SDL_Surface*> wesu;
|
||||||
@ -116,7 +116,7 @@ void CSDL_Ext::printAtWB(std::string text, int x, int y, TTF_Font * font, int ch
|
|||||||
SDL_FreeSurface(wesu[i]);
|
SDL_FreeSurface(wesu[i]);
|
||||||
delete ws;
|
delete ws;
|
||||||
}
|
}
|
||||||
void CSDL_Ext::printAtMiddle(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality, bool refresh)
|
void CSDL_Ext::printAtMiddle(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality, bool refresh)
|
||||||
{
|
{
|
||||||
if(text.length()==0) return;
|
if(text.length()==0) return;
|
||||||
SDL_Surface * temp;
|
SDL_Surface * temp;
|
||||||
@ -145,7 +145,7 @@ void CSDL_Ext::printAtMiddle(std::string text, int x, int y, TTF_Font * font, SD
|
|||||||
SDL_UpdateRect(dst,x-(temp->w/2),y-(temp->h/2),temp->w,temp->h);
|
SDL_UpdateRect(dst,x-(temp->w/2),y-(temp->h/2),temp->w,temp->h);
|
||||||
SDL_FreeSurface(temp);
|
SDL_FreeSurface(temp);
|
||||||
}
|
}
|
||||||
void CSDL_Ext::printAt(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality)
|
void CSDL_Ext::printAt(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality)
|
||||||
{
|
{
|
||||||
if (text.length()==0)
|
if (text.length()==0)
|
||||||
return;
|
return;
|
||||||
@ -174,7 +174,7 @@ void CSDL_Ext::printAt(std::string text, int x, int y, TTF_Font * font, SDL_Colo
|
|||||||
SDL_UpdateRect(dst,x,y,temp->w,temp->h);
|
SDL_UpdateRect(dst,x,y,temp->w,temp->h);
|
||||||
SDL_FreeSurface(temp);
|
SDL_FreeSurface(temp);
|
||||||
}
|
}
|
||||||
void CSDL_Ext::printTo(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality)
|
void CSDL_Ext::printTo(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality)
|
||||||
{
|
{
|
||||||
if (text.length()==0)
|
if (text.length()==0)
|
||||||
return;
|
return;
|
||||||
@ -204,7 +204,7 @@ void CSDL_Ext::printTo(std::string text, int x, int y, TTF_Font * font, SDL_Colo
|
|||||||
SDL_FreeSurface(temp);
|
SDL_FreeSurface(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSDL_Ext::printToWR(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality)
|
void CSDL_Ext::printToWR(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor, SDL_Surface * dst, unsigned char quality)
|
||||||
{
|
{
|
||||||
if (text.length()==0)
|
if (text.length()==0)
|
||||||
return;
|
return;
|
||||||
|
@ -36,12 +36,12 @@ namespace CSDL_Ext
|
|||||||
SDL_Surface * alphaTransform(SDL_Surface * src); //adds transparency and shadows (partial handling only; see examples of using for details)
|
SDL_Surface * alphaTransform(SDL_Surface * src); //adds transparency and shadows (partial handling only; see examples of using for details)
|
||||||
int blit8bppAlphaTo24bpp(SDL_Surface * src, SDL_Rect * srcRect, SDL_Surface * dst, SDL_Rect * dstRect); //blits 8 bpp surface with alpha channel to 24 bpp surface
|
int blit8bppAlphaTo24bpp(SDL_Surface * src, SDL_Rect * srcRect, SDL_Surface * dst, SDL_Rect * dstRect); //blits 8 bpp surface with alpha channel to 24 bpp surface
|
||||||
Uint32 colorToUint32(const SDL_Color * color); //little endian only
|
Uint32 colorToUint32(const SDL_Color * color); //little endian only
|
||||||
void printTo(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2);// quality: 0 - lowest, 1 - medium, 2 - highest; prints at right bottom corner of specific area. position of corner indicated by (x, y)
|
void printTo(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2);// quality: 0 - lowest, 1 - medium, 2 - highest; prints at right bottom corner of specific area. position of corner indicated by (x, y)
|
||||||
void printToWR(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2);// quality: 0 - lowest, 1 - medium, 2 - highest; prints at right bottom corner of specific area. position of corner indicated by (x, y)
|
void printToWR(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2);// quality: 0 - lowest, 1 - medium, 2 - highest; prints at right bottom corner of specific area. position of corner indicated by (x, y)
|
||||||
void printAtMiddle(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2, bool refresh = false); // quality: 0 - lowest, 1 - medium, 2 - highest
|
void printAtMiddle(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2, bool refresh = false); // quality: 0 - lowest, 1 - medium, 2 - highest
|
||||||
void printAtMiddleWB(std::string text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen);
|
void printAtMiddleWB(const std::string & text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen);
|
||||||
void printAtWB(std::string text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen);
|
void printAtWB(const std::string & text, int x, int y, TTF_Font * font, int charpr, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen);
|
||||||
void printAt(std::string text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2); // quality: 0 - lowest, 1 - medium, 2 - highest
|
void printAt(const std::string & text, int x, int y, TTF_Font * font, SDL_Color kolor=tytulowy, SDL_Surface * dst=screen, unsigned char quality = 2); // quality: 0 - lowest, 1 - medium, 2 - highest
|
||||||
void update(SDL_Surface * what = screen); //updates whole surface (default - main screen)
|
void update(SDL_Surface * what = screen); //updates whole surface (default - main screen)
|
||||||
void drawBorder(SDL_Surface * sur, int x, int y, int w, int h, int3 color);
|
void drawBorder(SDL_Surface * sur, int x, int y, int w, int h, int3 color);
|
||||||
void setPlayerColor(SDL_Surface * sur, unsigned char player); //sets correct color of flags; -1 for neutral
|
void setPlayerColor(SDL_Surface * sur, unsigned char player); //sets correct color of flags; -1 for neutral
|
||||||
|
@ -16,7 +16,7 @@ extern SDL_Surface * screen;
|
|||||||
extern SDL_Color tytulowy, zwykly ;
|
extern SDL_Color tytulowy, zwykly ;
|
||||||
extern TTF_Font *GEOR16;
|
extern TTF_Font *GEOR16;
|
||||||
|
|
||||||
SpellbookInteractiveArea::SpellbookInteractiveArea(SDL_Rect & myRect, boost::function<void()> funcL, std::string textR, boost::function<void()> funcHon, boost::function<void()> funcHoff)
|
SpellbookInteractiveArea::SpellbookInteractiveArea(const SDL_Rect & myRect, boost::function<void()> funcL, const std::string & textR, boost::function<void()> funcHon, boost::function<void()> funcHoff)
|
||||||
{
|
{
|
||||||
pos = myRect;
|
pos = myRect;
|
||||||
onLeft = funcL;
|
onLeft = funcL;
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
void activate();
|
void activate();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
|
|
||||||
SpellbookInteractiveArea(SDL_Rect & myRect, boost::function<void()> funcL, std::string textR, boost::function<void()> funcHon, boost::function<void()> funcHoff);//c-tor
|
SpellbookInteractiveArea(const SDL_Rect & myRect, boost::function<void()> funcL, const std::string & textR, boost::function<void()> funcHon, boost::function<void()> funcHoff);//c-tor
|
||||||
};
|
};
|
||||||
|
|
||||||
class CSpellWindow : public IShowActivable, public CIntObject
|
class CSpellWindow : public IShowActivable, public CIntObject
|
||||||
|
Loading…
Reference in New Issue
Block a user