1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-07 00:58:39 +02:00

Added some kind of simple chatting functionality through console. Implemented several WoG cheats equivalents:

* woggaladriel -> vcmiainur 
* wogoliphaunt -> vcminoldor 
* wogshadowfax -> vcminahar 
* wogeyeofsauron -> vcmieagles 
* wogisengard -> vcmiformenos 
* wogsaruman -> vcmiistari 
* wogpathofthedead -> vcmiangband 

Minor changes.
This commit is contained in:
Michał W. Urbańczyk
2008-10-18 23:20:48 +00:00
parent 9a8e009862
commit 2d01e00284
15 changed files with 283 additions and 33 deletions

View File

@ -37,6 +37,12 @@
#include <cmath>
#include <queue>
#include <sstream>
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
using namespace boost::assign;
using namespace CSDL_Ext;
@ -1905,11 +1911,24 @@ void CPlayerInterface::heroPrimarySkillChanged(const CGHeroInstance * hero, int
adventureInt->infoBar.draw();
return;
}
void CPlayerInterface::heroManaPointsChanged(const CGHeroInstance * hero)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
SDL_FreeSurface(graphics->heroWins[hero->subID]);//TODO: moznaby zmieniac jedynie fragment bitmapy zwiazany z dana umiejetnoscia
graphics->heroWins[hero->subID] = infoWin(hero); //a nie przerysowywac calosc. Troche roboty, obecnie chyba nie wartej swieczki.
if (adventureInt->selection == hero)
adventureInt->infoBar.draw();
}
void CPlayerInterface::heroMovePointsChanged(const CGHeroInstance * hero)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
if(adventureInt == curint)
adventureInt->heroList.draw();
}
void CPlayerInterface::receivedResource(int type, int val)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
if(!curint->subInt)
if(curint==adventureInt || curint==castleInt)
adventureInt->resdatabar.draw();
}
@ -1987,8 +2006,8 @@ void CPlayerInterface::garrisonChanged(const CGObjectInstance * obj)
SDL_FreeSurface(graphics->heroWins[hh->subID]);
graphics->heroWins[hh->subID] = infoWin(hh);
}
CHeroWindow * hw = dynamic_cast<CHeroWindow *>(curint->subInt);
if(hw)
CHeroWindow * hw = adventureInt->heroWindow;
if(hw == curint->subInt)
{
hw->garInt->recreateSlots();
hw->garInt->show();
@ -2019,6 +2038,8 @@ void CPlayerInterface::garrisonChanged(const CGObjectInstance * obj)
LOCPLINT->castleInt->garr->recreateSlots();
}
}
if(curint == adventureInt)
adventureInt->infoBar.draw();
}
void CPlayerInterface::buildChanged(const CGTownInstance *town, int buildingID, int what) //what: 1 - built, 2 - demolished
{
@ -2068,23 +2089,25 @@ void CPlayerInterface::battleNewRound(int round) //called at the beggining of ea
void CPlayerInterface::actionStarted(const BattleAction* action)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
curAction = action;
if((action->actionType==2 || (action->actionType==6 && action->destinationTile!=cb->battleGetPos(action->stackNumber)))
&& battleInt->creAnims[action->stackNumber]->framesInGroup(20)
)
{
battleInt->creAnims[action->stackNumber]->setType(20);
if((action->actionType==2 || (action->actionType==6 && action->destinationTile!=cb->battleGetPos(action->stackNumber)))) //deactivating interface when move is started
}
//if((action->actionType==2 || (action->actionType==6 && action->destinationTile!=cb->battleGetPos(action->stackNumber)))) //deactivating interface when move is started
{
battleInt->deactivate();
}
}
}
void CPlayerInterface::actionFinished(const BattleAction* action)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
curAction = NULL;
if((action->actionType==2 || (action->actionType==6 && action->destinationTile!=cb->battleGetPos(action->stackNumber)))) //activating interface when move is finished
//if((action->actionType==2 || (action->actionType==6 && action->destinationTile!=cb->battleGetPos(action->stackNumber)))) //activating interface when move is finished
{
battleInt->activate();
}
@ -2238,15 +2261,21 @@ void CPlayerInterface::removeObjToBlit(IShowable* obj)
(std::find(objsToBlit.begin(),objsToBlit.end(),obj));
//delete obj;
}
void CPlayerInterface::tileRevealed(int3 pos)
void CPlayerInterface::tileRevealed(const std::set<int3> &pos)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
adventureInt->minimap.showTile(pos);
for(std::set<int3>::const_iterator i=pos.begin(); i!=pos.end();i++)
adventureInt->minimap.showTile(*i);
if(curint == adventureInt)
adventureInt->minimap.draw();
}
void CPlayerInterface::tileHidden(int3 pos)
void CPlayerInterface::tileHidden(const std::set<int3> &pos)
{
boost::unique_lock<boost::recursive_mutex> un(*pim);
adventureInt->minimap.hideTile(pos);
for(std::set<int3>::const_iterator i=pos.begin(); i!=pos.end();i++)
adventureInt->minimap.hideTile(*i);
if(curint == adventureInt)
adventureInt->minimap.draw();
}
void CPlayerInterface::openHeroWindow(const CGHeroInstance *hero)
{
@ -2440,8 +2469,8 @@ void CHeroList::select(int which)
LOCPLINT->adventureInt->terrain.currentPath = items[which].second;
draw();
LOCPLINT->adventureInt->townList.draw();
LOCPLINT->adventureInt->infoBar.draw(NULL);
LOCPLINT->cb->setSelection(items[which].first);
}
void CHeroList::clickLeft(tribool down)
{
@ -2592,7 +2621,7 @@ void CHeroList::updateMove(const CGHeroInstance* which) //draws move points bar
{
int ser = LOCPLINT->cb->getHeroSerial(which);
ser -= from;
int pom = (which->movement)/100;
int pom = std::min((which->movement)/100,(int)mobile->ourImages.size()-1);
blitAt(mobile->ourImages[pom].bitmap,posmobx,posmoby+ser*32); //move point
}
void CHeroList::draw()