Core: Append single character to stream as character, not as a string

This commit is contained in:
Spp-
2011-07-29 14:18:28 +02:00
parent 06b46ba203
commit e47b96af3e
70 changed files with 432 additions and 424 deletions
@@ -50,14 +50,14 @@ public:
{
mob_water_elementalAI(Creature* c) : ScriptedAI(c) {}
uint32 uiWaterBoltTimer;
uint64 uiBalindaGUID;
uint32 uiResetTimer;
uint32 waterBoltTimer;
uint64 balindaGUID;
uint32 resetTimer;
void Reset()
{
uiWaterBoltTimer = 3*IN_MILLISECONDS;
uiResetTimer = 5*IN_MILLISECONDS;
waterBoltTimer = 3*IN_MILLISECONDS;
resetTimer = 5*IN_MILLISECONDS;
}
void UpdateAI(const uint32 diff)
@@ -65,20 +65,20 @@ public:
if (!UpdateVictim())
return;
if (uiWaterBoltTimer < diff)
if (waterBoltTimer < diff)
{
DoCast(me->getVictim(), SPELL_WATERBOLT);
uiWaterBoltTimer = 5*IN_MILLISECONDS;
} else uiWaterBoltTimer -= diff;
waterBoltTimer = 5*IN_MILLISECONDS;
} else waterBoltTimer -= diff;
// check if creature is not outside of building
if (uiResetTimer < diff)
if (resetTimer < diff)
{
if (Creature* pBalinda = Unit::GetCreature(*me, uiBalindaGUID))
if (Creature* pBalinda = Unit::GetCreature(*me, balindaGUID))
if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50)
EnterEvadeMode();
uiResetTimer = 5*IN_MILLISECONDS;
} else uiResetTimer -= diff;
resetTimer = 5*IN_MILLISECONDS;
} else resetTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -97,27 +97,27 @@ public:
struct boss_balindaAI : public ScriptedAI
{
boss_balindaAI(Creature* c) : ScriptedAI(c), Summons(me) {}
boss_balindaAI(Creature* c) : ScriptedAI(c), summons(me) {}
uint32 uiArcaneExplosionTimer;
uint32 uiConeOfColdTimer;
uint32 uiFireBoltTimer;
uint32 uiFrostboltTimer;
uint32 uiResetTimer;
uint32 uiWaterElementalTimer;
uint32 arcaneExplosionTimer;
uint32 coneOfColdTimer;
uint32 fireBoltTimer;
uint32 frostboltTimer;
uint32 resetTimer;
uint32 waterElementalTimer;
SummonList Summons;
SummonList summons;
void Reset()
{
uiArcaneExplosionTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
uiConeOfColdTimer = 8*IN_MILLISECONDS;
uiFireBoltTimer = 1*IN_MILLISECONDS;
uiFrostboltTimer = 4*IN_MILLISECONDS;
uiResetTimer = 5*IN_MILLISECONDS;
uiWaterElementalTimer = 0;
arcaneExplosionTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
coneOfColdTimer = 8*IN_MILLISECONDS;
fireBoltTimer = 1*IN_MILLISECONDS;
frostboltTimer = 4*IN_MILLISECONDS;
resetTimer = 5*IN_MILLISECONDS;
waterElementalTimer = 0;
Summons.DespawnAll();
summons.DespawnAll();
}
void EnterCombat(Unit* /*who*/)
@@ -132,15 +132,15 @@ public:
void JustSummoned(Creature* summoned)
{
CAST_AI(mob_water_elemental::mob_water_elementalAI, summoned->AI())->uiBalindaGUID = me->GetGUID();
CAST_AI(mob_water_elemental::mob_water_elementalAI, summoned->AI())->balindaGUID = me->GetGUID();
summoned->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true));
summoned->setFaction(me->getFaction());
Summons.Summon(summoned);
summons.Summon(summoned);
}
void JustDied(Unit* /*Killer*/)
{
Summons.DespawnAll();
summons.DespawnAll();
}
void UpdateAI(const uint32 diff)
@@ -148,47 +148,47 @@ public:
if (!UpdateVictim())
return;
if (uiWaterElementalTimer < diff)
if (waterElementalTimer < diff)
{
if (Summons.empty())
if (summons.empty())
me->SummonCreature(NPC_WATER_ELEMENTAL, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 45*IN_MILLISECONDS);
uiWaterElementalTimer = 50*IN_MILLISECONDS;
} else uiWaterElementalTimer -= diff;
waterElementalTimer = 50*IN_MILLISECONDS;
} else waterElementalTimer -= diff;
if (uiArcaneExplosionTimer < diff)
if (arcaneExplosionTimer < diff)
{
DoCast(me->getVictim(), SPELL_ARCANE_EXPLOSION);
uiArcaneExplosionTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
} else uiArcaneExplosionTimer -= diff;
arcaneExplosionTimer = urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS);
} else arcaneExplosionTimer -= diff;
if (uiConeOfColdTimer < diff)
if (coneOfColdTimer < diff)
{
DoCast(me->getVictim(), SPELL_CONE_OF_COLD);
uiConeOfColdTimer = urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS);
} else uiConeOfColdTimer -= diff;
coneOfColdTimer = urand(10*IN_MILLISECONDS, 20*IN_MILLISECONDS);
} else coneOfColdTimer -= diff;
if (uiFireBoltTimer < diff)
if (fireBoltTimer < diff)
{
DoCast(me->getVictim(), SPELL_FIREBALL);
uiFireBoltTimer = urand(5*IN_MILLISECONDS, 9*IN_MILLISECONDS);
} else uiFireBoltTimer -= diff;
fireBoltTimer = urand(5*IN_MILLISECONDS, 9*IN_MILLISECONDS);
} else fireBoltTimer -= diff;
if (uiFrostboltTimer < diff)
if (frostboltTimer < diff)
{
DoCast(me->getVictim(), SPELL_FROSTBOLT);
uiFrostboltTimer = urand(4*IN_MILLISECONDS, 12*IN_MILLISECONDS);
} else uiFrostboltTimer -= diff;
frostboltTimer = urand(4*IN_MILLISECONDS, 12*IN_MILLISECONDS);
} else frostboltTimer -= diff;
// check if creature is not outside of building
if (uiResetTimer < diff)
if (resetTimer < diff)
{
if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 50)
{
EnterEvadeMode();
DoScriptText(YELL_EVADE, me);
}
uiResetTimer = 5*IN_MILLISECONDS;
} else uiResetTimer -= diff;
resetTimer = 5*IN_MILLISECONDS;
} else resetTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -204,4 +204,4 @@ void AddSC_boss_balinda()
{
new boss_balinda;
new mob_water_elemental;
};
};
@@ -265,8 +265,8 @@ public:
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " "
<< m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " " << GhostKillCount;
saveStream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' '
<< m_auiEncounter[3] << ' ' << m_auiEncounter[4] << ' ' << m_auiEncounter[5] << ' ' << GhostKillCount;
str_data = saveStream.str();
@@ -170,9 +170,9 @@ public:
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " "
<< m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " " << m_auiEncounter[6] << " "
<< m_auiEncounter[7] << " " << m_auiEncounter[8] << " " << m_auiEncounter[9] << " " << m_auiEncounter[10] << " " << m_auiEncounter[11];
saveStream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' '
<< m_auiEncounter[3] << ' ' << m_auiEncounter[4] << ' ' << m_auiEncounter[5] << ' ' << m_auiEncounter[6] << ' '
<< m_auiEncounter[7] << ' ' << m_auiEncounter[8] << ' ' << m_auiEncounter[9] << ' ' << m_auiEncounter[10] << ' ' << m_auiEncounter[11];
strSaveData = saveStream.str();
@@ -181,7 +181,7 @@ public:
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3];
saveStream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3];
str_data = saveStream.str();
@@ -367,8 +367,8 @@ class instance_stratholme : public InstanceMapScript
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << EncounterState[0] << " " << EncounterState[1] << " " << EncounterState[2] << " "
<< EncounterState[3] << " " << EncounterState[4] << " " << EncounterState[5];
saveStream << EncounterState[0] << ' ' << EncounterState[1] << ' ' << EncounterState[2] << ' '
<< EncounterState[3] << ' ' << EncounterState[4] << ' ' << EncounterState[5];
OUT_SAVE_INST_DATA_COMPLETE;
return saveStream.str();
@@ -273,8 +273,8 @@ public:
{
OUT_SAVE_INST_DATA;
std::ostringstream stream;
stream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3] << " "
<< m_auiEncounter[4] << " " << m_auiEncounter[5];
stream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3] << ' '
<< m_auiEncounter[4] << ' ' << m_auiEncounter[5];
char* out = new char[stream.str().length() + 1];
strcpy(out, stream.str().c_str());
if (out)
@@ -377,7 +377,7 @@ class instance_uldaman : public InstanceMapScript
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2];
saveStream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2];
str_data = saveStream.str();
@@ -179,7 +179,7 @@ class instance_zulaman : public InstanceMapScript
std::string GetSaveData()
{
std::ostringstream ss;
ss << "S " << BossKilled << " " << ChestLooted << " " << QuestMinute;
ss << "S " << BossKilled << ' ' << ChestLooted << ' ' << QuestMinute;
char* data = new char[ss.str().length()+1];
strcpy(data, ss.str().c_str());
//sLog->outError("TSCR: Zul'aman saved, %s.", data);