Erwan
- fixed memory leak in AEquip/ATeach - Test suite now trims strings correctly (allows to have space between comma-separated card names) - Added Paradise Mantle (for ATeach test) - removed a missing wallpaper from wallpapers list
This commit is contained in:
@@ -6,5 +6,4 @@ wallpapers/kaioshin_garruk.jpg
|
|||||||
wallpapers/kaioshin_jace.jpg
|
wallpapers/kaioshin_jace.jpg
|
||||||
graphics/shop.jpg
|
graphics/shop.jpg
|
||||||
themes/Classic/backdrop.jpg
|
themes/Classic/backdrop.jpg
|
||||||
themes/Jade/backdrop.jpg
|
|
||||||
wallpapers/kaioshin_ravager.jpg
|
wallpapers/kaioshin_ravager.jpg
|
||||||
|
|||||||
@@ -38929,6 +38929,18 @@ power=6
|
|||||||
toughness=3
|
toughness=3
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
[card]
|
||||||
|
name=Paradise Mantle
|
||||||
|
auto=teach(creature) {t}:add{r}
|
||||||
|
auto=teach(creature) {t}:add{w}
|
||||||
|
auto=teach(creature) {t}:add{b}
|
||||||
|
auto=teach(creature) {t}:add{u}
|
||||||
|
auto=teach(creature) {t}:add{g}
|
||||||
|
auto={1}:equip
|
||||||
|
type=artifact
|
||||||
|
subtype=equipment
|
||||||
|
mana={0}
|
||||||
|
[/card]
|
||||||
|
[card]
|
||||||
name=Paradise Plume
|
name=Paradise Plume
|
||||||
auto=choice name(White) && counter(0/0,1,White) all(this)
|
auto=choice name(White) && counter(0/0,1,White) all(this)
|
||||||
auto=choice name(Blue) && counter(0/0,1,Blue) all(this)
|
auto=choice name(Blue) && counter(0/0,1,Blue) all(this)
|
||||||
|
|||||||
@@ -391,6 +391,7 @@ OneDozenEyes.txt
|
|||||||
orcish_artillery.txt
|
orcish_artillery.txt
|
||||||
orcish_lumberjack.txt
|
orcish_lumberjack.txt
|
||||||
overrun.txt
|
overrun.txt
|
||||||
|
paradise_mantle.txt
|
||||||
paralysis.txt
|
paralysis.txt
|
||||||
paralysis2.txt
|
paralysis2.txt
|
||||||
persuasion.txt
|
persuasion.txt
|
||||||
|
|||||||
20
projects/mtg/bin/Res/test/paradise_mantle.txt
Normal file
20
projects/mtg/bin/Res/test/paradise_mantle.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#Bug: "Teach" functionality has a memory leak whenever it equips a creature
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:grizzly bears,raging goblin
|
||||||
|
hand:paradise mantle
|
||||||
|
manapool:{2}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
paradise mantle
|
||||||
|
paradise mantle
|
||||||
|
grizzly bears
|
||||||
|
paradise mantle
|
||||||
|
raging goblin
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:grizzly bears,raging goblin, paradise mantle
|
||||||
|
[PLAYER2]
|
||||||
|
[END]
|
||||||
@@ -2469,7 +2469,7 @@ public:
|
|||||||
source->target = NULL;
|
source->target = NULL;
|
||||||
for (size_t i = 0; i < currentAbilities.size(); ++i){
|
for (size_t i = 0; i < currentAbilities.size(); ++i){
|
||||||
MTGAbility * a = currentAbilities[i];
|
MTGAbility * a = currentAbilities[i];
|
||||||
if(dynamic_cast<AEquip *>(a)){
|
if(dynamic_cast<AEquip *>(a) || dynamic_cast<ATeach *>(a)){
|
||||||
SAFE_DELETE(a);
|
SAFE_DELETE(a);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,10 +232,10 @@ void TestSuiteState::parsePlayerState(int playerId, string s){
|
|||||||
unsigned int value;
|
unsigned int value;
|
||||||
limiter = s.find(",");
|
limiter = s.find(",");
|
||||||
if (limiter != string::npos){
|
if (limiter != string::npos){
|
||||||
value = Rules::getMTGId(s.substr(0,limiter));
|
value = Rules::getMTGId(trim(s.substr(0,limiter)));
|
||||||
s = s.substr(limiter+1);
|
s = s.substr(limiter+1);
|
||||||
}else{
|
}else{
|
||||||
value = Rules::getMTGId(s);
|
value = Rules::getMTGId(trim(s));
|
||||||
s = "";
|
s = "";
|
||||||
}
|
}
|
||||||
if (value) playerData[playerId].zones[area].add(value);
|
if (value) playerData[playerId].zones[area].add(value);
|
||||||
|
|||||||
@@ -219,40 +219,40 @@ std::vector<std::string> split(const std::string &s, char delim) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string wordWrap(std::string sentence, int width)
|
std::string wordWrap(std::string sentence, int width)
|
||||||
{
|
{
|
||||||
std::string::iterator it = sentence.begin();
|
std::string::iterator it = sentence.begin();
|
||||||
|
|
||||||
//remember how long next word is
|
//remember how long next word is
|
||||||
int nextWordLength = 0;
|
int nextWordLength = 0;
|
||||||
int distanceFromWidth = width;
|
int distanceFromWidth = width;
|
||||||
|
|
||||||
while (it != sentence.end())
|
while (it != sentence.end())
|
||||||
{
|
{
|
||||||
while (*it != ' ')
|
while (*it != ' ')
|
||||||
{
|
{
|
||||||
nextWordLength++;
|
nextWordLength++;
|
||||||
distanceFromWidth--;
|
distanceFromWidth--;
|
||||||
|
|
||||||
++it;
|
++it;
|
||||||
|
|
||||||
// check if done
|
// check if done
|
||||||
if (it == sentence.end())
|
if (it == sentence.end())
|
||||||
{
|
{
|
||||||
return sentence;
|
return sentence;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nextWordLength > distanceFromWidth)
|
if (nextWordLength > distanceFromWidth)
|
||||||
{
|
{
|
||||||
*it = '\n';
|
*it = '\n';
|
||||||
distanceFromWidth = width;
|
distanceFromWidth = width;
|
||||||
nextWordLength = 0;
|
nextWordLength = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//skip the space
|
//skip the space
|
||||||
++it;
|
++it;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sentence;
|
return sentence;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user