mirror of
https://github.com/vcmi/vcmi.git
synced 2025-09-16 09:26:28 +02:00
* support for Inferno
* started doing splitting/merging stacks
This commit is contained in:
@@ -423,11 +423,21 @@ int CCallback::swapCreatures(const CGObjectInstance *s1, const CGObjectInstance
|
||||
CGI->playerint[s1->tempOwner]->garrisonChanged(s1);
|
||||
if(s2->tempOwner<PLAYER_LIMIT)
|
||||
CGI->playerint[s2->tempOwner]->garrisonChanged(s2);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int CCallback::mergeStacks(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
int CCallback::splitStack(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2, int val)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
bool CCallback::dismissHero(const CGHeroInstance *hero)
|
||||
{
|
||||
CGHeroInstance * Vhero = const_cast<CGHeroInstance *>(hero);
|
||||
|
@@ -35,6 +35,8 @@ public:
|
||||
virtual int getMySerial()=0;
|
||||
virtual int getHeroSerial(const CGHeroInstance * hero)=0;
|
||||
virtual int swapCreatures(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2)=0;//swaps creatures between two posiibly different garrisons // TODO: AI-unsafe code - fix it!
|
||||
virtual int mergeStacks(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2)=0;//joins first stack tothe second (creatures must be same type)
|
||||
virtual int splitStack(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2, int val)=0;//split creatures from the first stack
|
||||
virtual bool dismissHero(const CGHeroInstance * hero)=0; //dismisses diven hero; true - successfuly, false - not successfuly
|
||||
virtual const CCreatureSet* getGarrison(const CGObjectInstance *obj)=0;
|
||||
};
|
||||
@@ -82,6 +84,8 @@ public:
|
||||
int getHeroSerial(const CGHeroInstance * hero);
|
||||
int getMySerial();
|
||||
int swapCreatures(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2);
|
||||
int mergeStacks(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2);
|
||||
int splitStack(const CGObjectInstance *s1, const CGObjectInstance *s2, int p1, int p2, int val);
|
||||
bool dismissHero(const CGHeroInstance * hero);
|
||||
const CCreatureSet* getGarrison(const CGObjectInstance *obj);
|
||||
|
||||
|
@@ -164,6 +164,8 @@ CCastleInterface::CCastleInterface(const CGTownInstance * Town, bool Activate)
|
||||
CSDL_Ext::blueToPlayersAdv(townInt,LOCPLINT->playerID);
|
||||
exit = new AdventureMapButton<CCastleInterface>
|
||||
(CGI->townh->tcommands[8],"",&CCastleInterface::close,744,544,"TSBTNS.DEF",this,false);
|
||||
split = new AdventureMapButton<CCastleInterface>
|
||||
(CGI->townh->tcommands[8],"",&CCastleInterface::splitF,744,382,"TSBTNS.DEF",this,false);
|
||||
exit->bitmapOffset = 4;
|
||||
statusbar = new CStatusBar(8,555,"TSTATBAR.bmp",732);
|
||||
std::set< std::pair<int,int> > s; //group - id
|
||||
@@ -243,6 +245,7 @@ CCastleInterface::~CCastleInterface()
|
||||
SDL_FreeSurface(townInt);
|
||||
SDL_FreeSurface(cityBg);
|
||||
delete exit;
|
||||
delete split;
|
||||
delete hall;
|
||||
delete fort;
|
||||
delete bigTownPic;
|
||||
@@ -262,6 +265,9 @@ void CCastleInterface::close()
|
||||
LOCPLINT->adventureInt->show();
|
||||
delete this;
|
||||
}
|
||||
void CCastleInterface::splitF()
|
||||
{
|
||||
}
|
||||
void CCastleInterface::showAll(SDL_Surface * to)
|
||||
{
|
||||
if (!to)
|
||||
@@ -391,6 +397,7 @@ void CCastleInterface::activate()
|
||||
LOCPLINT->curint = this;
|
||||
LOCPLINT->statusbar = statusbar;
|
||||
exit->activate();
|
||||
split->activate();
|
||||
for(int i=0;i<buildings.size();i++)
|
||||
buildings[i]->activate();
|
||||
}
|
||||
@@ -398,6 +405,7 @@ void CCastleInterface::deactivate()
|
||||
{
|
||||
garr->deactivate();
|
||||
exit->deactivate();
|
||||
split->deactivate();
|
||||
for(int i=0;i<buildings.size();i++)
|
||||
buildings[i]->deactivate();
|
||||
}
|
@@ -40,7 +40,7 @@ public:
|
||||
*bigTownPic, *flag;
|
||||
|
||||
CGarrisonInt * garr;
|
||||
AdventureMapButton<CCastleInterface> * exit;
|
||||
AdventureMapButton<CCastleInterface> * exit, *split;
|
||||
|
||||
std::vector<CBuildingRect*> buildings; //building id, building def, structure struct, border, filling
|
||||
|
||||
@@ -49,6 +49,7 @@ public:
|
||||
void show(SDL_Surface * to=NULL);
|
||||
void showAll(SDL_Surface * to=NULL);
|
||||
void close();
|
||||
void splitF();
|
||||
void activate();
|
||||
void deactivate();
|
||||
};
|
@@ -113,4 +113,42 @@
|
||||
2 41 TBTWUP_4.def 511 8
|
||||
2 42 TBTWUP_5.def 681 157
|
||||
2 43 TBTWUP_6.def 75 91
|
||||
2 8 TBTWCAS2.def 301 0
|
||||
2 8 TBTWCAS2.def 301 0
|
||||
3 16 TBINBLAK.def 684 253
|
||||
3 9 TBINCAS3.def 223 18
|
||||
3 7 TBINCSTL.def 223 44
|
||||
3 30 TBINDW_0.def 614 256
|
||||
3 31 TBINDW_1.def 187 248
|
||||
3 32 TBINDW_2.def 9 325
|
||||
3 33 TBINDW_3.def 414 204
|
||||
3 34 TBINDW_4.def 359 296
|
||||
3 35 TBINDW_5.def 220 350
|
||||
3 36 TBINDW_6.def 420 153
|
||||
3 21 TBINEXT0.def 297 0
|
||||
3 22 TBINEXT1.def 227 174
|
||||
3 23 TBINEXT2.def 593 104
|
||||
3 11 TBINHAL2.def 0 174
|
||||
3 12 TBINHAL3.def 0 174
|
||||
3 13 TBINHAL4.def 0 131
|
||||
3 10 TBINHALL.def 0 174
|
||||
3 26 TBINHOLY.def 24 10
|
||||
3 18 TBINHRD1.def 614 256
|
||||
3 19 TBINHRD2.def 614 221
|
||||
3 24 TBINHRD3.def 10 301
|
||||
3 25 TBINHRD4.def 9 273
|
||||
3 1 TBINMAG2.def 667 101
|
||||
3 2 TBINMAG3.def 667 83
|
||||
3 3 TBINMAG4.def 667 56
|
||||
3 4 TBINMAG5.def 667 35
|
||||
3 0 TBINMAGE.def 667 127
|
||||
3 14 TBINMARK.def 511 301
|
||||
3 15 TBINSILO.def 497 337
|
||||
3 5 TBINTVRN.def 105 219
|
||||
3 37 TBINUP_0.def 614 221
|
||||
3 38 TBINUP_1.def 187 212
|
||||
3 39 TBINUP_2.def 9 273
|
||||
3 40 TBINUP_3.def 412 197
|
||||
3 41 TBINUP_4.def 359 244
|
||||
3 42 TBINUP_5.def 220 282
|
||||
3 43 TBINUP_6.def 420 105
|
||||
3 8 TBINCAS2.def 222 44
|
@@ -74,6 +74,40 @@ CASTLE 2
|
||||
18
|
||||
19
|
||||
END
|
||||
CASTLE 3
|
||||
26
|
||||
21
|
||||
7
|
||||
8
|
||||
9
|
||||
22
|
||||
31
|
||||
38
|
||||
36
|
||||
43
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
5
|
||||
32
|
||||
39
|
||||
24
|
||||
25
|
||||
33
|
||||
40
|
||||
34
|
||||
41
|
||||
30
|
||||
37
|
||||
18
|
||||
19
|
||||
14
|
||||
15
|
||||
16
|
||||
35
|
||||
42
|
||||
END
|
||||
EOD
|
||||
|
||||
------------------------------------------------------------------
|
||||
|
@@ -109,4 +109,42 @@
|
||||
2 40 TBTWUP_3.def TOTMAG2.bmp TZTMAG2.bmp
|
||||
2 41 TBTWUP_4.def TOTGEN2.bmp TZTGEN2.bmp
|
||||
2 42 TBTWUP_5.def TOTNAG2.bmp TZTNAG2.bmp
|
||||
2 43 TBTWUP_6.def TOTTIT2.bmp TZTTIT2.bmp
|
||||
2 43 TBTWUP_6.def TOTTIT2.bmp TZTTIT2.bmp
|
||||
3 16 TBINBLAK.def TOIBLKA.bmp TZIBLKA.bmp
|
||||
3 8 TBINCAS2.def TOICAS1A.bmp TZICAS1A.bmp
|
||||
3 9 TBINCAS3.def TOICAS3A.bmp TZICAS3A.bmp
|
||||
3 7 TBINCSTL.def TOICAS2A.bmp TZICAS2A.bmp
|
||||
3 30 TBINDW0_.def TOIMP1A.bmp TZIMP1A.bmp
|
||||
3 31 TBINDW_1.def TOIGOG1A.bmp TZIGOG1A.bmp
|
||||
3 32 TBINDW_2.def TOIHND1.bmp TZIHND1.bmp
|
||||
3 33 TBINDW_3.def TOIDMN1.bmp TZIDMN1.bmp
|
||||
3 34 TBINDW_4.def TOIPIT1.bmp TZIPIT1.bmp
|
||||
3 35 TBINDW_5.def TOIEFR1.bmp TZIEFR1.bmp
|
||||
3 36 TBINDW_6.def TOIDVL1.bmp TZIDVL1.bmp
|
||||
3 21 TBINEXT0.def TOICAB1A.bmp TZICAB1A.bmp
|
||||
3 22 TBINEXT1.def TOICASGA.bmp TZICASGA.bmp
|
||||
3 23 TBINEXT2.def TOIPAIN.bmp TZIPAIN.bmp
|
||||
3 11 TBINHAL2.def TOIHAL2.bmp TZIHAL2.bmp
|
||||
3 12 TBINHAL3.def TOIHAL3.bmp TZIHAL3.bmp
|
||||
3 13 TBINHAL4.def TOIHAL4.bmp TZIHAL4.bmp
|
||||
3 10 TBINHALL.def TOIHAL1.bmp TZIHAL1.bmp
|
||||
3 26 TBINHOLY.def TOIHOLY.bmp TZIHOLY.bmp
|
||||
3 18 TBINHRD1.def TOIMP1HA.bmp TZIMP1HA.bmp
|
||||
3 19 TBINHRD2.def TOIMP2HA.bmp TZIMP2HA.bmp
|
||||
3 24 TBINHRD3.def TOIHND1H.bmp TZIHND1H.bmp
|
||||
3 25 TBINHRD4.def TOIHND2H.bmp TZIHND2H.bmp
|
||||
3 1 TBINMAG2.def TOIMAG2A.bmp TZIMAG2A.bmp
|
||||
3 2 TBINMAG3.def TOIMAG3A.bmp TZIMAG3A.bmp
|
||||
3 3 TBINMAG4.def TOIMAG4A.bmp TZIMAG4A.bmp
|
||||
3 4 TBINMAG5.def TOIMAG5A.bmp TZIMAG5A.bmp
|
||||
3 0 TBINMAGE.def TOIMAG1A.bmp TZIMAG1A.bmp
|
||||
3 14 TBINMARK.def TOIMAR1.bmp TZIMAR1.bmp
|
||||
3 15 TBINSILO.def TOIMAR2.bmp TZIMAR2.bmp
|
||||
3 5 TBINTVRN.def TOITAV.bmp TZITAV.bmp
|
||||
3 37 TBINUP0_.def TOIMP2A.bmp TZIMP2A.bmp
|
||||
3 38 TBINUP_1.def TOIGOG2A.bmp TZIGOG2A.bmp
|
||||
3 39 TBINUP_2.def TOIHND2.bmp TZIHND2.bmp
|
||||
3 40 TBINUP_3.def TOIDMN2.bmp TZIDMN2.bmp
|
||||
3 41 TBINUP_4.def TOIPIT2.bmp TZIPIT2.bmp
|
||||
3 42 TBINUP_5.def TOIEFR2.bmp TZIEFR2.bmp
|
||||
3 43 TBINUP_6.def TOIDVL2.bmp TZIDVL2.bmp
|
@@ -54,4 +54,15 @@ GROUP
|
||||
19
|
||||
31
|
||||
38
|
||||
CASTLE 3
|
||||
GROUP
|
||||
18
|
||||
19
|
||||
30
|
||||
37
|
||||
GROUP
|
||||
32
|
||||
39
|
||||
24
|
||||
25
|
||||
EOD
|
Reference in New Issue
Block a user