mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Added missing (?) includes from last revision.
This commit is contained in:
@@ -11,6 +11,8 @@
|
|||||||
#include "../hch/CDefHandler.h"
|
#include "../hch/CDefHandler.h"
|
||||||
#include "../hch/CGeneralTextHandler.h"
|
#include "../hch/CGeneralTextHandler.h"
|
||||||
#include "../hch/CObjectHandler.h"
|
#include "../hch/CObjectHandler.h"
|
||||||
|
#include "../hch/CTownHandler.h"
|
||||||
|
#include "../lib/map.h"
|
||||||
#include <boost/assign/std/vector.hpp>
|
#include <boost/assign/std/vector.hpp>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
using namespace boost::assign;
|
using namespace boost::assign;
|
||||||
@@ -24,26 +26,26 @@ using namespace CSDL_Ext;
|
|||||||
* License: GNU General Public License v2.0 or later
|
* License: GNU General Public License v2.0 or later
|
||||||
* Full text of license available in license.txt file, in main folder
|
* Full text of license available in license.txt file, in main folder
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int PicCount = 4;
|
int PicCount = 4;
|
||||||
|
|
||||||
CDefEssential* CKingdomInterface::slots;
|
CDefEssential* CKingdomInterface::slots;
|
||||||
CDefEssential* CKingdomInterface::fort;
|
CDefEssential* CKingdomInterface::fort;
|
||||||
CDefEssential* CKingdomInterface::hall;
|
CDefEssential* CKingdomInterface::hall;
|
||||||
|
|
||||||
CKingdomInterface::CKingdomInterface()
|
CKingdomInterface::CKingdomInterface()
|
||||||
{
|
{
|
||||||
OBJ_CONSTRUCTION_CAPTURING_ALL;
|
OBJ_CONSTRUCTION_CAPTURING_ALL;
|
||||||
defActions = SHARE_POS;
|
defActions = SHARE_POS;
|
||||||
pos.x = screen->w/2 - 400;
|
pos.x = screen->w/2 - 400;
|
||||||
pos.y = screen->h/2 - 300;
|
pos.y = screen->h/2 - 300;
|
||||||
size = 4;//we have 4 visible items in the list, would be nice to move this value to configs later
|
size = 4;//we have 4 visible items in the list, would be nice to move this value to configs later
|
||||||
heroPos = townPos = 0;
|
heroPos = townPos = 0;
|
||||||
state = 2;
|
state = 2;
|
||||||
showHarrisoned = false;
|
showHarrisoned = false;
|
||||||
|
|
||||||
bg = BitmapHandler::loadBitmap("OVCAST.bmp");
|
bg = BitmapHandler::loadBitmap("OVCAST.bmp");
|
||||||
graphics->blueToPlayersAdv(bg, LOCPLINT->playerID);
|
graphics->blueToPlayersAdv(bg, LOCPLINT->playerID);
|
||||||
mines = CDefHandler::giveDefEss("OVMINES.DEF");
|
mines = CDefHandler::giveDefEss("OVMINES.DEF");
|
||||||
slots = CDefHandler::giveDefEss("OVSLOT.DEF");
|
slots = CDefHandler::giveDefEss("OVSLOT.DEF");
|
||||||
@@ -51,61 +53,61 @@ CKingdomInterface::CKingdomInterface()
|
|||||||
hall = CDefHandler::giveDefEss("ITMTL.DEF");
|
hall = CDefHandler::giveDefEss("ITMTL.DEF");
|
||||||
fort = CDefHandler::giveDefEss("ITMCL.DEF");
|
fort = CDefHandler::giveDefEss("ITMCL.DEF");
|
||||||
|
|
||||||
toHeroes = new AdventureMapButton (CGI->generaltexth->overview[11],"",
|
toHeroes = new AdventureMapButton (CGI->generaltexth->overview[11],"",
|
||||||
boost::bind(&CKingdomInterface::listToHeroes,this),748,492,"OVBUTN1.DEF");
|
boost::bind(&CKingdomInterface::listToHeroes,this),748,492,"OVBUTN1.DEF");
|
||||||
toHeroes->block(2);
|
toHeroes->block(2);
|
||||||
|
|
||||||
toTowns = new AdventureMapButton (CGI->generaltexth->overview[12],"",
|
toTowns = new AdventureMapButton (CGI->generaltexth->overview[12],"",
|
||||||
boost::bind(&CKingdomInterface::listToTowns,this),748,528,"OVBUTN6.DEF");
|
boost::bind(&CKingdomInterface::listToTowns,this),748,528,"OVBUTN6.DEF");
|
||||||
toTowns->block(0);
|
toTowns->block(0);
|
||||||
|
|
||||||
exit = new AdventureMapButton (CGI->generaltexth->allTexts[600],"",
|
exit = new AdventureMapButton (CGI->generaltexth->allTexts[600],"",
|
||||||
boost::bind(&CKingdomInterface::close,this),748,563,"OVBUTN1.DEF");
|
boost::bind(&CKingdomInterface::close,this),748,563,"OVBUTN1.DEF");
|
||||||
exit->bitmapOffset = 3;
|
exit->bitmapOffset = 3;
|
||||||
|
|
||||||
statusbar = new CStatusBar(pos.x+7,pos.y+555,"TSTATBAR.bmp",732);
|
statusbar = new CStatusBar(pos.x+7,pos.y+555,"TSTATBAR.bmp",732);
|
||||||
resdatabar = new CResDataBar("KRESBAR.bmp",pos.x+3,pos.y+575,32,2,76,76);
|
resdatabar = new CResDataBar("KRESBAR.bmp",pos.x+3,pos.y+575,32,2,76,76);
|
||||||
|
|
||||||
for (int i=0; i<RESOURCE_QUANTITY; i++)
|
for (int i=0; i<RESOURCE_QUANTITY; i++)
|
||||||
incomes.push_back(new CResIncomePic(i,mines));
|
incomes.push_back(new CResIncomePic(i,mines));
|
||||||
|
|
||||||
heroes.resize(size);
|
heroes.resize(size);
|
||||||
for(size_t i=0;i<size;i++)//preparing lists for input
|
for(size_t i=0;i<size;i++)//preparing lists for input
|
||||||
heroes[i] = NULL;
|
heroes[i] = NULL;
|
||||||
towns.resize(size);
|
towns.resize(size);
|
||||||
for(size_t i=0;i<size;i++)
|
for(size_t i=0;i<size;i++)
|
||||||
towns[i] = NULL;
|
towns[i] = NULL;
|
||||||
|
|
||||||
slider = new CSlider(4, 4, 483, boost::bind (&CKingdomInterface::sliderMoved, this, _1),
|
slider = new CSlider(4, 4, 483, boost::bind (&CKingdomInterface::sliderMoved, this, _1),
|
||||||
size, LOCPLINT->cb->howManyHeroes(showHarrisoned), 0, false, 0);
|
size, LOCPLINT->cb->howManyHeroes(showHarrisoned), 0, false, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
CKingdomInterface::~CKingdomInterface()
|
CKingdomInterface::~CKingdomInterface()
|
||||||
{
|
{
|
||||||
SDL_FreeSurface(bg);
|
SDL_FreeSurface(bg);
|
||||||
|
|
||||||
delete statusbar;
|
delete statusbar;
|
||||||
delete resdatabar;
|
delete resdatabar;
|
||||||
|
|
||||||
delete exit;
|
delete exit;
|
||||||
delete toTowns;
|
delete toTowns;
|
||||||
delete toHeroes;
|
delete toHeroes;
|
||||||
|
|
||||||
delete slider;
|
delete slider;
|
||||||
delete title;
|
delete title;
|
||||||
delete slots;
|
delete slots;
|
||||||
delete fort;
|
delete fort;
|
||||||
delete hall;
|
delete hall;
|
||||||
delete mines;
|
delete mines;
|
||||||
|
|
||||||
/* for(size_t i=0;i<size;i++)
|
/* for(size_t i=0;i<size;i++)
|
||||||
delete heroes[i];
|
delete heroes[i];
|
||||||
heroes.clear();
|
heroes.clear();
|
||||||
for(size_t i=0;i<size;i++)
|
for(size_t i=0;i<size;i++)
|
||||||
delete towns[i];
|
delete towns[i];
|
||||||
towns.clear();*/
|
towns.clear();*/
|
||||||
for(size_t i=0;i<incomes.size();i++)
|
for(size_t i=0;i<incomes.size();i++)
|
||||||
delete incomes[i];
|
delete incomes[i];
|
||||||
incomes.clear();
|
incomes.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,50 +122,50 @@ void CKingdomInterface::showAll( SDL_Surface * to/*=NULL*/)
|
|||||||
blitAt(bg,pos,to);
|
blitAt(bg,pos,to);
|
||||||
resdatabar->draw(to);
|
resdatabar->draw(to);
|
||||||
toTowns->show(to);
|
toTowns->show(to);
|
||||||
toHeroes->show(to);
|
toHeroes->show(to);
|
||||||
exit->show(to);
|
exit->show(to);
|
||||||
if (state == 1)
|
if (state == 1)
|
||||||
{//printing text "Town", "Harrisoned hero", "Visiting hero"
|
{//printing text "Town", "Harrisoned hero", "Visiting hero"
|
||||||
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[3],pos.x+145,pos.y+12,TNRB16,zwykly,to);
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[3],pos.x+145,pos.y+12,TNRB16,zwykly,to);
|
||||||
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[4],pos.x+370,pos.y+12,TNRB16,zwykly,to);
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[4],pos.x+370,pos.y+12,TNRB16,zwykly,to);
|
||||||
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[5],pos.x+600,pos.y+12,TNRB16,zwykly,to);
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[5],pos.x+600,pos.y+12,TNRB16,zwykly,to);
|
||||||
for (size_t i=0; i<size; i++)
|
for (size_t i=0; i<size; i++)
|
||||||
towns[i]->show(to);//show town list
|
towns[i]->show(to);//show town list
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{//text "Hero/stats" and "Skills"
|
{//text "Hero/stats" and "Skills"
|
||||||
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[0],pos.x+150,pos.y+12,TNRB16,zwykly,to);
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[0],pos.x+150,pos.y+12,TNRB16,zwykly,to);
|
||||||
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[1],pos.x+500,pos.y+12,TNRB16,zwykly,to);
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[1],pos.x+500,pos.y+12,TNRB16,zwykly,to);
|
||||||
for (size_t i=0; i<size; i++)
|
for (size_t i=0; i<size; i++)
|
||||||
heroes[i]->show(to);//show hero list
|
heroes[i]->show(to);//show hero list
|
||||||
}
|
}
|
||||||
|
|
||||||
for(size_t i=0;i<incomes.size();i++)
|
for(size_t i=0;i<incomes.size();i++)
|
||||||
incomes[i]->show(to);//printing resource incomes
|
incomes[i]->show(to);//printing resource incomes
|
||||||
|
|
||||||
if(screen->w != 800 || screen->h !=600)
|
if(screen->w != 800 || screen->h !=600)
|
||||||
CMessage::drawBorder(LOCPLINT->playerID,to,828,628,pos.x-14,pos.y-15);
|
CMessage::drawBorder(LOCPLINT->playerID,to,828,628,pos.x-14,pos.y-15);
|
||||||
show(to);
|
show(to);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::show(SDL_Surface * to)
|
void CKingdomInterface::show(SDL_Surface * to)
|
||||||
{
|
{
|
||||||
statusbar->show(to);
|
statusbar->show(to);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::activate()
|
void CKingdomInterface::activate()
|
||||||
{
|
{
|
||||||
LOCPLINT->statusbar = statusbar;
|
LOCPLINT->statusbar = statusbar;
|
||||||
exit->activate();
|
exit->activate();
|
||||||
toTowns->activate();
|
toTowns->activate();
|
||||||
toHeroes->activate();
|
toHeroes->activate();
|
||||||
if (state == 1)
|
if (state == 1)
|
||||||
for (int i=0; i<size; i++)
|
for (int i=0; i<size; i++)
|
||||||
towns[i]->activate();
|
towns[i]->activate();
|
||||||
else
|
else
|
||||||
for (int i=0; i<size; i++)
|
for (int i=0; i<size; i++)
|
||||||
heroes[i]->activate();
|
heroes[i]->activate();
|
||||||
|
|
||||||
slider->activate();
|
slider->activate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,52 +179,52 @@ void CKingdomInterface::deactivate()
|
|||||||
towns[i]->deactivate();
|
towns[i]->deactivate();
|
||||||
else
|
else
|
||||||
for (int i=0; i<size; i++)
|
for (int i=0; i<size; i++)
|
||||||
heroes[i]->deactivate();
|
heroes[i]->deactivate();
|
||||||
slider->deactivate();
|
slider->deactivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::keyPressed(const SDL_KeyboardEvent & key)
|
void CKingdomInterface::keyPressed(const SDL_KeyboardEvent & key)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::recreateHeroList(int pos)
|
void CKingdomInterface::recreateHeroList(int pos)
|
||||||
{
|
{
|
||||||
for (int j=0; j<size; j++)
|
for (int j=0; j<size; j++)
|
||||||
delete heroes[j];//removing old list
|
delete heroes[j];//removing old list
|
||||||
std::vector<const CGHeroInstance*> Heroes = LOCPLINT->cb->getHeroesInfo(true);
|
std::vector<const CGHeroInstance*> Heroes = LOCPLINT->cb->getHeroesInfo(true);
|
||||||
int i=0, cnt=0;
|
int i=0, cnt=0;
|
||||||
for (int j = 0; ((j<Heroes.size()) && (i<size));j++)
|
for (int j = 0; ((j<Heroes.size()) && (i<size));j++)
|
||||||
{
|
{
|
||||||
if (Heroes[j]->inTownGarrison && (!showHarrisoned))//if hero in garrison and we don't show them
|
if (Heroes[j]->inTownGarrison && (!showHarrisoned))//if hero in garrison and we don't show them
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (cnt<pos)//skipping heroes
|
if (cnt<pos)//skipping heroes
|
||||||
{
|
{
|
||||||
cnt++;
|
cnt++;
|
||||||
continue;
|
continue;
|
||||||
}//this hero will be added
|
}//this hero will be added
|
||||||
heroes[i] = new CHeroItem(i, Heroes[j]);
|
heroes[i] = new CHeroItem(i, Heroes[j]);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
for (i;i<size;i++)//if we still have empty pieces
|
for (i;i<size;i++)//if we still have empty pieces
|
||||||
heroes[i] = new CHeroItem(i, NULL);//empty pic
|
heroes[i] = new CHeroItem(i, NULL);//empty pic
|
||||||
GH.totalRedraw();
|
GH.totalRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::recreateTownList(int pos)
|
void CKingdomInterface::recreateTownList(int pos)
|
||||||
{
|
{
|
||||||
std::vector<const CGTownInstance*> Towns = LOCPLINT->cb->getTownsInfo(true);
|
std::vector<const CGTownInstance*> Towns = LOCPLINT->cb->getTownsInfo(true);
|
||||||
for(int i=0;i<size;i++)
|
for(int i=0;i<size;i++)
|
||||||
{
|
{
|
||||||
delete towns[i];//remove old
|
delete towns[i];//remove old
|
||||||
if (i+pos<Towns.size())
|
if (i+pos<Towns.size())
|
||||||
towns[i] = new CTownItem(i, Towns[i+pos]);//and add new
|
towns[i] = new CTownItem(i, Towns[i+pos]);//and add new
|
||||||
else
|
else
|
||||||
towns[i] = new CTownItem(i, NULL);//empty pic
|
towns[i] = new CTownItem(i, NULL);//empty pic
|
||||||
}
|
}
|
||||||
GH.totalRedraw();
|
GH.totalRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::listToTowns()
|
void CKingdomInterface::listToTowns()
|
||||||
{
|
{
|
||||||
@@ -230,13 +232,13 @@ void CKingdomInterface::listToTowns()
|
|||||||
toHeroes->block(0);
|
toHeroes->block(0);
|
||||||
toTowns->block(2);
|
toTowns->block(2);
|
||||||
heroPos = slider->value;
|
heroPos = slider->value;
|
||||||
slider->setAmount(LOCPLINT->cb->howManyTowns());
|
slider->setAmount(LOCPLINT->cb->howManyTowns());
|
||||||
slider->value=townPos;//moving slider
|
slider->value=townPos;//moving slider
|
||||||
recreateTownList(townPos);
|
recreateTownList(townPos);
|
||||||
for (size_t i=0;i<size;i++)//TODO:is this loop needed?
|
for (size_t i=0;i<size;i++)//TODO:is this loop needed?
|
||||||
{
|
{
|
||||||
towns[i]->deactivate();
|
towns[i]->deactivate();
|
||||||
heroes[i]->activate();
|
heroes[i]->activate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,56 +247,56 @@ void CKingdomInterface::listToHeroes()
|
|||||||
state = 2;
|
state = 2;
|
||||||
toHeroes->block(2);
|
toHeroes->block(2);
|
||||||
toTowns->block(0);
|
toTowns->block(0);
|
||||||
townPos = slider->value;
|
townPos = slider->value;
|
||||||
slider->setAmount(LOCPLINT->cb->howManyHeroes(showHarrisoned));
|
slider->setAmount(LOCPLINT->cb->howManyHeroes(showHarrisoned));
|
||||||
slider->value=heroPos;//moving slider
|
slider->value=heroPos;//moving slider
|
||||||
recreateHeroList(heroPos);
|
recreateHeroList(heroPos);
|
||||||
for (size_t i=0;i<size;i++)//TODO:is this loop needed?
|
for (size_t i=0;i<size;i++)//TODO:is this loop needed?
|
||||||
{
|
{
|
||||||
towns[i]->deactivate();
|
towns[i]->deactivate();
|
||||||
heroes[i]->activate();
|
heroes[i]->activate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::sliderMoved(int newpos)
|
void CKingdomInterface::sliderMoved(int newpos)
|
||||||
{
|
{
|
||||||
if ( state == 1 )//towns
|
if ( state == 1 )//towns
|
||||||
{
|
{
|
||||||
townPos = newpos;
|
townPos = newpos;
|
||||||
recreateTownList(newpos);
|
recreateTownList(newpos);
|
||||||
}
|
}
|
||||||
else//heroes
|
else//heroes
|
||||||
{
|
{
|
||||||
heroPos = newpos;
|
heroPos = newpos;
|
||||||
recreateHeroList(newpos);
|
recreateHeroList(newpos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CKingdomInterface::CResIncomePic::CResIncomePic(int RID, CDefEssential * Mines)
|
CKingdomInterface::CResIncomePic::CResIncomePic(int RID, CDefEssential * Mines)
|
||||||
{
|
{
|
||||||
resID = RID;
|
resID = RID;
|
||||||
pos.x += 20 + RID*80;
|
pos.x += 20 + RID*80;
|
||||||
pos.y += 495;
|
pos.y += 495;
|
||||||
pos.h = 54;
|
pos.h = 54;
|
||||||
pos.w = (resID!=7)?68:136;//gold pile is bigger
|
pos.w = (resID!=7)?68:136;//gold pile is bigger
|
||||||
mines = Mines;
|
mines = Mines;
|
||||||
|
|
||||||
value = 0;
|
|
||||||
int resource = resID==7?6:resID;
|
|
||||||
|
|
||||||
for(size_t i = 0; i<CGI->state->map->objects.size(); i++)
|
value = 0;
|
||||||
{
|
int resource = resID==7?6:resID;
|
||||||
|
|
||||||
|
for(size_t i = 0; i<CGI->state->map->objects.size(); i++)
|
||||||
|
{
|
||||||
CGObjectInstance* obj = CGI->state->map->objects[i];
|
CGObjectInstance* obj = CGI->state->map->objects[i];
|
||||||
if (obj)
|
if (obj)
|
||||||
if (obj->ID == 53 && obj->subID == resource && //this is mine, produce required resource
|
if (obj->ID == 53 && obj->subID == resource && //this is mine, produce required resource
|
||||||
CGI->state->currentPlayer == obj->tempOwner )//mine is ours
|
CGI->state->currentPlayer == obj->tempOwner )//mine is ours
|
||||||
value++;
|
value++;
|
||||||
}
|
}
|
||||||
if (resID == 7)//we need to calculate income of whole kingdom
|
if (resID == 7)//we need to calculate income of whole kingdom
|
||||||
{
|
{
|
||||||
value *=1000;// mines = 1000 gold
|
value *=1000;// mines = 1000 gold
|
||||||
std::vector<const CGHeroInstance*> heroes = LOCPLINT->cb->getHeroesInfo(true);
|
std::vector<const CGHeroInstance*> heroes = LOCPLINT->cb->getHeroesInfo(true);
|
||||||
for(size_t i=0; i<heroes.size();i++)
|
for(size_t i=0; i<heroes.size();i++)
|
||||||
switch(heroes[i]->getSecSkillLevel(13))//some heroes may have estates
|
switch(heroes[i]->getSecSkillLevel(13))//some heroes may have estates
|
||||||
{
|
{
|
||||||
case 1: //basic
|
case 1: //basic
|
||||||
@@ -306,11 +308,11 @@ CKingdomInterface::CResIncomePic::CResIncomePic(int RID, CDefEssential * Mines)
|
|||||||
case 3: //expert
|
case 3: //expert
|
||||||
value += 500;
|
value += 500;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
std::vector<const CGTownInstance*> towns = LOCPLINT->cb->getTownsInfo(true);
|
std::vector<const CGTownInstance*> towns = LOCPLINT->cb->getTownsInfo(true);
|
||||||
for(size_t i=0; i<towns.size();i++)
|
for(size_t i=0; i<towns.size();i++)
|
||||||
value += towns[i]->dailyIncome();
|
value += towns[i]->dailyIncome();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CKingdomInterface::CResIncomePic::~CResIncomePic()
|
CKingdomInterface::CResIncomePic::~CResIncomePic()
|
||||||
@@ -322,10 +324,10 @@ void CKingdomInterface::CResIncomePic::hover(bool on)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::CResIncomePic::show(SDL_Surface * to)
|
void CKingdomInterface::CResIncomePic::show(SDL_Surface * to)
|
||||||
{
|
{
|
||||||
if (resID < 7)//this is not income
|
if (resID < 7)//this is not income
|
||||||
blitAt(mines->ourImages[resID].bitmap,pos.x,pos.y,to);
|
blitAt(mines->ourImages[resID].bitmap,pos.x,pos.y,to);
|
||||||
|
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << value;
|
oss << value;
|
||||||
CSDL_Ext::printAtMiddle(oss.str(),pos.x+pos.w/2,pos.y+50,GEOR13,zwykly,to);
|
CSDL_Ext::printAtMiddle(oss.str(),pos.x+pos.w/2,pos.y+50,GEOR13,zwykly,to);
|
||||||
@@ -333,14 +335,14 @@ void CKingdomInterface::CResIncomePic::show(SDL_Surface * to)
|
|||||||
|
|
||||||
|
|
||||||
CKingdomInterface::CTownItem::CTownItem(int num, const CGTownInstance * Town)
|
CKingdomInterface::CTownItem::CTownItem(int num, const CGTownInstance * Town)
|
||||||
{
|
{
|
||||||
// defActions = ACTIVATE | DEACTIVATE | SHOWALL | DISPOSE;
|
// defActions = ACTIVATE | DEACTIVATE | SHOWALL | DISPOSE;
|
||||||
numb = num;
|
numb = num;
|
||||||
pos.x = screen->w/2 - 400 + 23;
|
pos.x = screen->w/2 - 400 + 23;
|
||||||
pos.y = screen->h/2 - 300 + 26+num*116;
|
pos.y = screen->h/2 - 300 + 26+num*116;
|
||||||
pos.w = 702;
|
pos.w = 702;
|
||||||
pos.h = 114;
|
pos.h = 114;
|
||||||
town = Town;
|
town = Town;
|
||||||
}
|
}
|
||||||
|
|
||||||
CKingdomInterface::CTownItem::~CTownItem()
|
CKingdomInterface::CTownItem::~CTownItem()
|
||||||
@@ -436,14 +438,14 @@ void CKingdomInterface::CTownItem::show(SDL_Surface * to)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CKingdomInterface::CHeroItem::CHeroItem(int num, const CGHeroInstance * Hero)
|
CKingdomInterface::CHeroItem::CHeroItem(int num, const CGHeroInstance * Hero)
|
||||||
{
|
{
|
||||||
numb = num;
|
numb = num;
|
||||||
pos.x = screen->w/2 - 400 + 23;
|
pos.x = screen->w/2 - 400 + 23;
|
||||||
pos.y = screen->h/2 - 300 + 26+num*116;
|
pos.y = screen->h/2 - 300 + 26+num*116;
|
||||||
pos.w = 702;
|
pos.w = 702;
|
||||||
pos.h = 114;
|
pos.h = 114;
|
||||||
hero = Hero;
|
hero = Hero;
|
||||||
artGroup = 0;
|
artGroup = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CKingdomInterface::CHeroItem::~CHeroItem()
|
CKingdomInterface::CHeroItem::~CHeroItem()
|
||||||
@@ -457,7 +459,7 @@ void CKingdomInterface::CHeroItem::show(SDL_Surface * to)
|
|||||||
blitAt(slots->ourImages[numb % PicCount].bitmap,pos.x,pos.y,to);
|
blitAt(slots->ourImages[numb % PicCount].bitmap,pos.x,pos.y,to);
|
||||||
return;
|
return;
|
||||||
}//print background, different for arts view/backpack mode
|
}//print background, different for arts view/backpack mode
|
||||||
blitAt(slots->ourImages[(artGroup=2)?4:5].bitmap,pos.x,pos.y,to);
|
blitAt(slots->ourImages[(artGroup=2)?4:5].bitmap,pos.x,pos.y,to);
|
||||||
//text "Artifacts"
|
//text "Artifacts"
|
||||||
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[2],pos.x+320,pos.y+55,GEOR13,zwykly,to);
|
CSDL_Ext::printAtMiddle(CGI->generaltexth->overview[2],pos.x+320,pos.y+55,GEOR13,zwykly,to);
|
||||||
int X = pos.x+6;//portrait
|
int X = pos.x+6;//portrait
|
||||||
@@ -492,12 +494,12 @@ void CKingdomInterface::CHeroItem::show(SDL_Surface * to)
|
|||||||
CSDL_Ext::printAtMiddle(strnew.str(),(pos.x+298),(pos.y+31),GEORM,zwykly,to);
|
CSDL_Ext::printAtMiddle(strnew.str(),(pos.x+298),(pos.y+31),GEORM,zwykly,to);
|
||||||
}
|
}
|
||||||
//hero speciality
|
//hero speciality
|
||||||
blitAt(graphics->un32->ourImages[hero->subID].bitmap, pos.x+375, pos.y+6, to);
|
blitAt(graphics->un32->ourImages[hero->subID].bitmap, pos.x+375, pos.y+6, to);
|
||||||
|
|
||||||
for(int i=0; i<hero->secSkills.size(); i++)
|
for(int i=0; i<hero->secSkills.size(); i++)
|
||||||
{//secondary skills
|
{//secondary skills
|
||||||
int skill = hero->secSkills[i].first,
|
int skill = hero->secSkills[i].first,
|
||||||
level = hero->secSkills[i].second;
|
level = hero->secSkills[i].second;
|
||||||
blitAt(graphics->abils32->ourImages[skill*3+level+2].bitmap,pos.x+411+i*36,pos.y+6,to);
|
blitAt(graphics->abils32->ourImages[skill*3+level+2].bitmap,pos.x+411+i*36,pos.y+6,to);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -520,7 +522,7 @@ void CKingdomInterface::CHeroItem::show(SDL_Surface * to)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CKingdomInterface::CHeroItem::onArtChange(int newstate)
|
void CKingdomInterface::CHeroItem::onArtChange(int newstate)
|
||||||
{
|
{
|
||||||
artGroup = newstate;
|
artGroup = newstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,10 +7,10 @@
|
|||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#include "GUIBase.h"
|
#include "GUIBase.h"
|
||||||
#include "../hch/CMusicBase.h"
|
#include "../hch/CMusicBase.h"
|
||||||
class AdventureMapButton;
|
class AdventureMapButton;
|
||||||
class CHighlightableButtonsGroup;
|
class CHighlightableButtonsGroup;
|
||||||
class CResDataBar;
|
class CResDataBar;
|
||||||
class CStatusBar;
|
class CStatusBar;
|
||||||
class CSlider;
|
class CSlider;
|
||||||
class CMinorResDataBar;
|
class CMinorResDataBar;
|
||||||
|
|
||||||
@@ -25,85 +25,85 @@ class CMinorResDataBar;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class CKingdomInterface : public CIntObject
|
class CKingdomInterface : public CIntObject
|
||||||
{
|
{
|
||||||
/* class CDwellingList : public
|
/* class CDwellingList : public
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
void mouseMoved (const SDL_MouseMotionEvent & sEvent);
|
||||||
void genList();
|
void genList();
|
||||||
void select(int which);
|
void select(int which);
|
||||||
void draw(SDL_Surface * to);
|
void draw(SDL_Surface * to);
|
||||||
int size(); //how many elements do we have
|
int size(); //how many elements do we have
|
||||||
}*/
|
}*/
|
||||||
class CResIncomePic : public CIntObject
|
class CResIncomePic : public CIntObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int resID,value;//resource ID
|
int resID,value;//resource ID
|
||||||
CResIncomePic(int RID, CDefEssential * Mines);//c-tor
|
CResIncomePic(int RID, CDefEssential * Mines);//c-tor
|
||||||
~CResIncomePic();//d-tor
|
~CResIncomePic();//d-tor
|
||||||
void hover(bool on);
|
void hover(bool on);
|
||||||
void show(SDL_Surface * to);
|
void show(SDL_Surface * to);
|
||||||
CDefEssential * mines;//pointer to mines pictures;
|
CDefEssential * mines;//pointer to mines pictures;
|
||||||
};
|
|
||||||
class CTownItem : public CIntObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
int numb;//position on screen (1..4)
|
|
||||||
const CGTownInstance * town;
|
|
||||||
void show(SDL_Surface * to);
|
|
||||||
void activate();
|
|
||||||
void deactivate();
|
|
||||||
CTownItem (int num, const CGTownInstance * Town);//c-tor
|
|
||||||
~CTownItem();//d-tor
|
|
||||||
};
|
|
||||||
class CHeroItem : public CIntObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
const CGHeroInstance * hero;
|
|
||||||
int artGroup,numb;//current art group (0 = equiped, 1 = misc, 2 = backpack)
|
|
||||||
void onArtChange(int newstate);//changes artgroup
|
|
||||||
void show(SDL_Surface * to);
|
|
||||||
void activate();
|
|
||||||
void deactivate();
|
|
||||||
CHeroItem (int num, const CGHeroInstance * Hero);//c-tor
|
|
||||||
~CHeroItem();//d-tor
|
|
||||||
};
|
};
|
||||||
public:
|
class CTownItem : public CIntObject
|
||||||
//common data
|
{
|
||||||
|
public:
|
||||||
|
int numb;//position on screen (1..4)
|
||||||
|
const CGTownInstance * town;
|
||||||
|
void show(SDL_Surface * to);
|
||||||
|
void activate();
|
||||||
|
void deactivate();
|
||||||
|
CTownItem (int num, const CGTownInstance * Town);//c-tor
|
||||||
|
~CTownItem();//d-tor
|
||||||
|
};
|
||||||
|
class CHeroItem : public CIntObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const CGHeroInstance * hero;
|
||||||
|
int artGroup,numb;//current art group (0 = equiped, 1 = misc, 2 = backpack)
|
||||||
|
void onArtChange(int newstate);//changes artgroup
|
||||||
|
void show(SDL_Surface * to);
|
||||||
|
void activate();
|
||||||
|
void deactivate();
|
||||||
|
CHeroItem (int num, const CGHeroInstance * Hero);//c-tor
|
||||||
|
~CHeroItem();//d-tor
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
//common data
|
||||||
int state;//0 = initialisation 1 = towns showed, 2 = heroes;
|
int state;//0 = initialisation 1 = towns showed, 2 = heroes;
|
||||||
SDL_Surface * bg;//background
|
SDL_Surface * bg;//background
|
||||||
CStatusBar * statusbar;//statusbar
|
CStatusBar * statusbar;//statusbar
|
||||||
CResDataBar *resdatabar;//resources
|
CResDataBar *resdatabar;//resources
|
||||||
|
|
||||||
AdventureMapButton *exit;//exit button
|
AdventureMapButton *exit;//exit button
|
||||||
AdventureMapButton *toTowns;//town button
|
AdventureMapButton *toTowns;//town button
|
||||||
AdventureMapButton *toHeroes;//hero button
|
AdventureMapButton *toHeroes;//hero button
|
||||||
CDefEssential * title; //title bar
|
CDefEssential * title; //title bar
|
||||||
//hero/town lists
|
//hero/town lists
|
||||||
bool showHarrisoned;//show harrisoned hero in heroes list or not
|
bool showHarrisoned;//show harrisoned hero in heroes list or not
|
||||||
CSlider * slider;//slider
|
CSlider * slider;//slider
|
||||||
int heroPos,townPos,size;//position of lists; size of list
|
int heroPos,townPos,size;//position of lists; size of list
|
||||||
std::vector<CHeroItem *> heroes;//heroes list
|
std::vector<CHeroItem *> heroes;//heroes list
|
||||||
std::vector<CTownItem *> towns;//towns list
|
std::vector<CTownItem *> towns;//towns list
|
||||||
static CDefEssential * slots, *fort, *hall;
|
static CDefEssential * slots, *fort, *hall;
|
||||||
|
|
||||||
//income pics
|
//income pics
|
||||||
std::vector<CResIncomePic *> incomes;//mines + incomes
|
std::vector<CResIncomePic *> incomes;//mines + incomes
|
||||||
CDefEssential * mines;//picture of mines
|
CDefEssential * mines;//picture of mines
|
||||||
|
|
||||||
CKingdomInterface(); //c-tor
|
CKingdomInterface(); //c-tor
|
||||||
~CKingdomInterface(); //d-tor
|
~CKingdomInterface(); //d-tor
|
||||||
void recreateHeroList(int pos);//recreating heroes list (on slider move)
|
void recreateHeroList(int pos);//recreating heroes list (on slider move)
|
||||||
void recreateTownList(int pos);//same for town list
|
void recreateTownList(int pos);//same for town list
|
||||||
void keyPressed(const SDL_KeyboardEvent & key);
|
void keyPressed(const SDL_KeyboardEvent & key);
|
||||||
void listToTowns();//changing list to town view
|
void listToTowns();//changing list to town view
|
||||||
void listToHeroes();//changing list to heroes view
|
void listToHeroes();//changing list to heroes view
|
||||||
void sliderMoved(int newpos);//when we move a slider...
|
void sliderMoved(int newpos);//when we move a slider...
|
||||||
void show(SDL_Surface * to);
|
void show(SDL_Surface * to);
|
||||||
void showAll(SDL_Surface * to);
|
void showAll(SDL_Surface * to);
|
||||||
void close();
|
void close();
|
||||||
void activate();
|
void activate();
|
||||||
void deactivate();
|
void deactivate();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __CCASTLEINTERFACE_H__
|
#endif // __CCASTLEINTERFACE_H__
|
||||||
|
Reference in New Issue
Block a user