1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

Fixed remaining CWE-457 in NetPacks.h

This commit is contained in:
AlexVinS 2016-11-26 20:49:26 +03:00
parent 7befacfb1e
commit 7793a57b0a
2 changed files with 79 additions and 69 deletions

View File

@ -926,20 +926,3 @@ void SetAvailableArtifacts::applyCl(CClient *cl)
INTERFACE_CALL_IF_PRESENT(cl->getTile(bm->visitablePos())->visitableObjects.back()->tempOwner, availableArtifactsChanged, bm);
}
}
void TradeComponents::applyCl(CClient *cl)
{///Shop handler
switch (CGI->mh->map->objects.at(objectid)->ID)
{
case Obj::BLACK_MARKET:
break;
case Obj::TAVERN:
break;
case Obj::DEN_OF_THIEVES:
break;
case Obj::TRADING_POST_SNOW:
break;
default:
logNetwork->warnStream() << "Shop type not supported!";
}
}

View File

@ -1088,21 +1088,6 @@ struct CommanderLevelUp : public Query
}
};
struct TradeComponents : public CPackForClient, public CPackForServer
{
///used to handle info about components available in shops
void applyCl(CClient *cl);
DLL_LINKAGE void applyGs(CGameState *gs);
si32 heroid;
ui32 objectid;
std::map<ui16, Component> available, chosen, bought;
template <typename Handler> void serialize(Handler &h, const int version)
{
h & heroid & objectid & available & chosen & bought;
}
};
//A dialog that requires making decision by player - it may contain components to choose between or has yes/no options
//Client responds with QueryReply, where answer: 0 - cancel pressed, choice doesn't matter; 1/2/... - first/second/... component selected and OK pressed
//Until sending reply player won't be allowed to take any actions
@ -1129,7 +1114,6 @@ struct BlockingDialog : public Query
BlockingDialog(bool yesno, bool Selection)
{
flags = 0;
soundID = 0;
if(yesno) flags |= ALLOW_CANCEL;
@ -1137,7 +1121,6 @@ struct BlockingDialog : public Query
}
BlockingDialog()
{
flags = 0;
soundID = 0;
};
@ -1169,7 +1152,10 @@ struct GarrisonDialog : public Query
struct ExchangeDialog : public Query
{
ExchangeDialog(){}
ExchangeDialog()
{
heroes = {nullptr,nullptr};
}
void applyCl(CClient *cl);
std::array<const CGHeroInstance*, 2> heroes;
@ -1182,11 +1168,13 @@ struct ExchangeDialog : public Query
struct TeleportDialog : public Query
{
TeleportDialog(){}
TeleportDialog()
: hero(nullptr), impassable(false)
{}
TeleportDialog(const CGHeroInstance *Hero, TeleportChannelID Channel)
: hero(Hero), channel(Channel), impassable(false)
{
}
{}
void applyCl(CClient *cl);
@ -1204,7 +1192,9 @@ struct TeleportDialog : public Query
struct BattleInfo;
struct BattleStart : public CPackForClient
{
BattleStart(){}
BattleStart()
:info(nullptr)
{}
void applyFirstCl(CClient *cl);
void applyCl(CClient *cl);
@ -1218,9 +1208,10 @@ struct BattleStart : public CPackForClient
h & info;
}
};
struct BattleNextRound : public CPackForClient
{
BattleNextRound(){};
BattleNextRound():round(0){};
void applyFirstCl(CClient *cl);
void applyCl(CClient *cl);
DLL_LINKAGE void applyGs( CGameState *gs );
@ -1231,10 +1222,12 @@ struct BattleNextRound : public CPackForClient
h & round;
}
};
struct BattleSetActiveStack : public CPackForClient
{
BattleSetActiveStack()
{
stack = 0;
askPlayerInterface = true;
}
@ -1249,11 +1242,17 @@ struct BattleSetActiveStack : public CPackForClient
h & stack & askPlayerInterface;
}
};
struct BattleResult : public CPackForClient
{
enum EResult {NORMAL = 0, ESCAPE = 1, SURRENDER = 2};
BattleResult(){};
BattleResult()
: result(NORMAL), winner(2)
{
exp[0] = 0;
exp[1] = 0;
};
void applyFirstCl(CClient *cl);
void applyGs(CGameState *gs);
@ -1274,7 +1273,9 @@ struct BattleStackMoved : public CPackForClient
ui32 stack;
std::vector<BattleHex> tilesToMove;
ui8 distance, teleporting;
BattleStackMoved(){};
BattleStackMoved()
:stack(0), distance(0), teleporting(0)
{};
void applyFirstCl(CClient *cl);
void applyGs(CGameState *gs);
template <typename Handler> void serialize(Handler &h, const int version)
@ -1285,7 +1286,9 @@ struct BattleStackMoved : public CPackForClient
struct StacksHealedOrResurrected : public CPackForClient
{
StacksHealedOrResurrected(){}
StacksHealedOrResurrected()
:lifeDrain(false), tentHealing(false), drainedFrom(0), cure(false)
{}
DLL_LINKAGE void applyGs(CGameState *gs);
void applyCl(CClient *cl);
@ -1317,7 +1320,10 @@ struct StacksHealedOrResurrected : public CPackForClient
struct BattleStackAttacked : public CPackForClient
{
BattleStackAttacked():
flags(0), spellID(SpellID::NONE){};
stackAttacked(0), attackerID(0),
newAmount(0), newHP(0), killedAmount(0), damageAmount(0),
flags(0), effect(0), spellID(SpellID::NONE)
{};
void applyFirstCl(CClient * cl);
//void applyCl(CClient *cl);
DLL_LINKAGE void applyGs(CGameState *gs);
@ -1330,7 +1336,6 @@ struct BattleStackAttacked : public CPackForClient
SpellID spellID; //only if flag SPELL_EFFECT is set
std::vector<StacksHealedOrResurrected> healedStacks; //used when life drain
bool killed() const//if target stack was killed
{
return flags & KILLED || flags & CLONE_KILLED;
@ -1374,7 +1379,9 @@ struct BattleStackAttacked : public CPackForClient
struct BattleAttack : public CPackForClient
{
BattleAttack(): flags(0), spellID(SpellID::NONE){};
BattleAttack()
: stackAttacking(0), flags(0), spellID(SpellID::NONE)
{};
void applyFirstCl(CClient *cl);
DLL_LINKAGE void applyGs(CGameState *gs);
void applyCl(CClient *cl);
@ -1458,7 +1465,15 @@ struct BattleSpellCast : public CPackForClient
}
};
BattleSpellCast(){ casterStack = -1;};
BattleSpellCast()
{
side = 0;
id = 0;
skill = 0;
manaGained = 0;
casterStack = -1;
castByHero = true;
};
DLL_LINKAGE void applyGs(CGameState *gs);
void applyCl(CClient *cl);
@ -1587,7 +1602,9 @@ struct BattleStacksRemoved : public CPackForClient
struct BattleStackAdded : public CPackForClient
{
BattleStackAdded(){};
BattleStackAdded()
: attacker(0), amount(0), pos(0), summoned(0), newStackID(0)
{};
DLL_LINKAGE void applyGs(CGameState *gs);
void applyCl(CClient *cl);
@ -1609,7 +1626,9 @@ struct BattleStackAdded : public CPackForClient
struct BattleSetStackProperty : public CPackForClient
{
BattleSetStackProperty(){};
BattleSetStackProperty()
: stackID(0), which(CASTS), val(0), absolute(0)
{};
enum BattleStackProperty {CASTS, ENCHANTER_COUNTER, UNBIND, CLONED, HAS_CLONE};
@ -1626,9 +1645,12 @@ struct BattleSetStackProperty : public CPackForClient
}
};
///activated at the beginning of turn
struct BattleTriggerEffect : public CPackForClient
{ //activated at the beginning of turn
BattleTriggerEffect(){};
{
BattleTriggerEffect()
: stackID(0), effect(0), val(0), additionalInfo(0)
{};
DLL_LINKAGE void applyGs(CGameState *gs); //effect
void applyCl(CClient *cl); //play animations & stuff
@ -1645,7 +1667,7 @@ struct BattleTriggerEffect : public CPackForClient
};
struct BattleObstaclePlaced : public CPackForClient
{ //activated at the beginning of turn
{
BattleObstaclePlaced(){};
DLL_LINKAGE void applyGs(CGameState *gs); //effect
@ -1661,7 +1683,7 @@ struct BattleObstaclePlaced : public CPackForClient
struct BattleUpdateGateState : public CPackForClient
{
BattleUpdateGateState(){};
BattleUpdateGateState():state(EGateState::NONE){};
void applyFirstCl(CClient *cl);
@ -1674,7 +1696,6 @@ struct BattleUpdateGateState : public CPackForClient
}
};
struct ShowInInfobox : public CPackForClient
{
ShowInInfobox(){};
@ -1691,8 +1712,8 @@ struct ShowInInfobox : public CPackForClient
struct AdvmapSpellCast : public CPackForClient
{
AdvmapSpellCast(){}
const CGHeroInstance * caster;
AdvmapSpellCast():caster(nullptr){}
const CGHeroInstance * caster;//todo: replace with ObjectInstanceID
SpellID spellID;
void applyCl(CClient *cl);
@ -1729,6 +1750,7 @@ struct CommitPackage : public CPackForServer
CommitPackage()
{
freePack = true;
packToCommit = nullptr;
}
~CommitPackage()
{
@ -1772,7 +1794,7 @@ struct DismissHero : public CPackForServer
struct MoveHero : public CPackForServer
{
MoveHero(){};
MoveHero():transit(false){};
MoveHero(const int3 &Dest, ObjectInstanceID HID, bool Transit) : dest(Dest), hid(HID), transit(Transit) {};
int3 dest;
ObjectInstanceID hid;
@ -1787,7 +1809,7 @@ struct MoveHero : public CPackForServer
struct CastleTeleportHero : public CPackForServer
{
CastleTeleportHero(){};
CastleTeleportHero():source(0){};
CastleTeleportHero(const ObjectInstanceID HID, ObjectInstanceID Dest, ui8 Source ) : dest(Dest), hid(HID), source(Source){};
ObjectInstanceID dest;
ObjectInstanceID hid;
@ -1802,7 +1824,7 @@ struct CastleTeleportHero : public CPackForServer
struct ArrangeStacks : public CPackForServer
{
ArrangeStacks(){};
ArrangeStacks():what(0), val(0){};
ArrangeStacks(ui8 W, SlotID P1, SlotID P2, ObjectInstanceID ID1, ObjectInstanceID ID2, si32 VAL)
:what(W),p1(P1),p2(P2),id1(ID1),id2(ID2),val(VAL) {};
@ -1844,16 +1866,17 @@ struct BuildStructure : public CPackForServer
h & tid & bid;
}
};
struct RazeStructure : public BuildStructure
{
RazeStructure(){};
//RazeStructure(si32 TID, si32 BID):bid(BID),tid(TID){};
bool applyGh(CGameHandler *gh);
};
struct RecruitCreatures : public CPackForServer
{
RecruitCreatures(){};
RecruitCreatures():amount(0), level(0){};
RecruitCreatures(ObjectInstanceID TID, ObjectInstanceID DST, CreatureID CRID, si32 Amount, si32 Level):
tid(TID), dst(DST), crid(CRID), amount(Amount), level(Level){};
ObjectInstanceID tid; //dwelling id, or town
@ -1911,7 +1934,7 @@ struct ExchangeArtifacts : public CPackForServer
struct AssembleArtifacts : public CPackForServer
{
AssembleArtifacts(){};
AssembleArtifacts():assemble(false){};
AssembleArtifacts(ObjectInstanceID _heroID, ArtifactPosition _artifactSlot, bool _assemble, ArtifactID _assembleTo)
: heroID(_heroID), artifactSlot(_artifactSlot), assemble(_assemble), assembleTo(_assembleTo){};
ObjectInstanceID heroID;
@ -1942,9 +1965,11 @@ struct BuyArtifact : public CPackForServer
struct TradeOnMarketplace : public CPackForServer
{
TradeOnMarketplace(){};
TradeOnMarketplace()
:market(nullptr), hero(nullptr), mode(EMarketMode::RESOURCE_RESOURCE), r1(0), r2(0), val(0)
{};
const CGObjectInstance *market;
const CGObjectInstance *market; //todo: replace with ObjectInstanceID
const CGHeroInstance *hero; //needed when trading artifacts / creatures
EMarketMode::EMarketMode mode;
ui32 r1, r2; //mode 0: r1 - sold resource, r2 - bought res (exception: when sacrificing art r1 is art id [todo: make r2 preferred slot?]
@ -1959,7 +1984,7 @@ struct TradeOnMarketplace : public CPackForServer
struct SetFormation : public CPackForServer
{
SetFormation(){};
SetFormation():formation(0){};
SetFormation(ObjectInstanceID HID, ui8 Formation):hid(HID),formation(Formation){};
ObjectInstanceID hid;
ui8 formation;
@ -1973,7 +1998,7 @@ struct SetFormation : public CPackForServer
struct HireHero : public CPackForServer
{
HireHero(){};
HireHero():hid(0){};
HireHero(si32 HID, ObjectInstanceID TID):hid(HID),tid(TID){};
si32 hid; //available hero serial
ObjectInstanceID tid; //town (tavern) id
@ -2001,7 +2026,7 @@ struct BuildBoat : public CPackForServer
struct QueryReply : public CPackForServer
{
QueryReply(){};
QueryReply():answer(0){};
QueryReply(QueryID QID, ui32 Answer):qid(QID),answer(Answer){};
QueryID qid;
ui32 answer; //hero and artifact id
@ -2105,7 +2130,7 @@ struct PlayerMessage : public CPackForClient, public CPackForServer
struct CenterView : public CPackForClient
{
CenterView(){};
CenterView():focusTime(0){};
void applyCl(CClient *cl);
PlayerColor player;
@ -2222,7 +2247,9 @@ struct RequestOptionsChange : public CPregamePackToHost
RequestOptionsChange(ui8 What, si8 Dir, ui8 Player)
:what(What), direction(Dir), playerID(Player)
{}
RequestOptionsChange(){}
RequestOptionsChange()
:what(0), direction(0), playerID(0)
{}
void apply(CSelectionScreen *selScreen); //that functions are implemented in CPreGame.cpp