From cb280ec5dde6e966f84318395bb67c1bf317821a Mon Sep 17 00:00:00 2001 From: robinsch Date: Wed, 3 Jun 2015 14:53:05 +0200 Subject: [PATCH 01/13] Scripts/SmartScripts: Clear Movement on Death --- src/server/game/AI/SmartScripts/SmartAI.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 20a7ca05d93..21a15fa4f99 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -581,7 +581,11 @@ void SmartAI::JustDied(Unit* killer) { GetScript()->ProcessEventsFor(SMART_EVENT_DEATH, killer); if (HasEscortState(SMART_ESCORT_ESCORTING)) + { EndPath(true); + me->StopMoving();//force stop + me->GetMotionMaster()->MoveIdle(); + } } void SmartAI::KilledUnit(Unit* victim) From d78eae1eafc2319144a28f8447578e6ebdfca39e Mon Sep 17 00:00:00 2001 From: jackpoz Date: Mon, 8 Jun 2015 20:45:12 +0200 Subject: [PATCH 02/13] Core/Misc: Disable G3D buffer pools if jemalloc is enabled --- cmake/platform/unix/settings.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/platform/unix/settings.cmake b/cmake/platform/unix/settings.cmake index 04d21863f6c..754ff450fcc 100644 --- a/cmake/platform/unix/settings.cmake +++ b/cmake/platform/unix/settings.cmake @@ -2,6 +2,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux") if (NOT NOJEM) set(JEMALLOC_LIBRARY "jemalloc") + add_definitions(-DNO_BUFFERPOOL) message(STATUS "UNIX: Using jemalloc") endif() endif() From abda6840e1ac3c8140af59c619bef934761db5ee Mon Sep 17 00:00:00 2001 From: jackpoz Date: Mon, 8 Jun 2015 21:25:36 +0200 Subject: [PATCH 03/13] Core/Misc: Update helgrind suppressions --- contrib/valgrind/helgrind.supp | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/contrib/valgrind/helgrind.supp b/contrib/valgrind/helgrind.supp index 59dec3018c6..582b25bbb10 100644 --- a/contrib/valgrind/helgrind.supp +++ b/contrib/valgrind/helgrind.supp @@ -45,3 +45,63 @@ fun:_ZNKSt13__atomic_baseIjE4loadESt12memory_order fun:_ZNKSt13__atomic_baseIjEcvjEv } +{ + [1] std::atomic + Helgrind:Race + fun:load + fun:_ZNKSt13__atomic_baseIjEcvjEv +} +{ + [1] std::atomic + Helgrind:Race + fun:store + fun:_ZNSt13__atomic_baseIiEaSEi +} +{ + [1] std::atomic + Helgrind:Race + fun:store + fun:_ZNSt13__atomic_baseIbEaSEb +} +{ + [1] std::atomic + Helgrind:Race + fun:load + fun:_ZNKSt11atomic_boolcvbEv +} +{ + [1] std::atomic + Helgrind:Race + fun:store + fun:_ZNSt13__atomic_baseIjEaSEj +} +{ + [2] integer counters + Helgrind:Race + fun:_ZN4MMAP11MMapManager7loadMapERKSsjii + fun:_ZN3Map8LoadMMapEii +} +{ + [2] integer counters + Helgrind:Race + fun:_ZN8Movement7counterIjLj4294967295EE8IncreaseEv +} +{ + [2] integer counters + Helgrind:Race + fun:_ZN3G3D10BufferPool6mallocEm +} +{ + [3] System libraries + Helgrind:Race + fun:__GI_mempcpy + fun:_IO_file_xsputn@@GLIBC_2.2.5 + fun:vfprintf +} +{ + [3] System libraries + Helgrind:Race + fun:__GI_mempcpy + fun:_IO_file_xsputn@@GLIBC_2.2.5 + fun:fwrite +} From 9ecef15057a49a86041f1cb5d2be0e4f5b3cc485 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 10 Jun 2015 00:22:34 +0200 Subject: [PATCH 04/13] Core/Auth: Fixed authserver not shutting down correctly when started as windows service --- src/server/authserver/Main.cpp | 76 +++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 16 deletions(-) diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp index 64d64fef582..15ab1c38925 100644 --- a/src/server/authserver/Main.cpp +++ b/src/server/authserver/Main.cpp @@ -46,7 +46,7 @@ using namespace boost::program_options; # define _TRINITY_REALM_CONFIG "authserver.conf" #endif -#ifdef _WIN32 +#if PLATFORM == PLATFORM_WINDOWS #include "ServiceWin32.h" char serviceName[] = "authserver"; char serviceLongName[] = "TrinityCore auth service"; @@ -58,6 +58,9 @@ char serviceDescription[] = "TrinityCore World of Warcraft emulator auth service * 2 - paused */ int m_ServiceStatus = -1; + +boost::asio::deadline_timer* _serviceStatusWatchTimer; +void ServiceStatusWatcher(boost::system::error_code const& error); #endif bool StartDB(); @@ -66,8 +69,8 @@ void SignalHandler(const boost::system::error_code& error, int signalNumber); void KeepDatabaseAliveHandler(const boost::system::error_code& error); variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile, std::string& configService); -boost::asio::io_service _ioService; -boost::asio::deadline_timer _dbPingTimer(_ioService); +boost::asio::io_service* _ioService; +boost::asio::deadline_timer* _dbPingTimer; uint32 _dbPingInterval; LoginDatabaseWorkerPool LoginDatabase; @@ -80,13 +83,13 @@ int main(int argc, char** argv) if (vm.count("help")) return 0; -#ifdef _WIN32 +#if PLATFORM == PLATFORM_WINDOWS if (configService.compare("install") == 0) return WinServiceInstall() == true ? 0 : 1; else if (configService.compare("uninstall") == 0) return WinServiceUninstall() == true ? 0 : 1; else if (configService.compare("run") == 0) - WinServiceRun(); + return WinServiceRun() ? 0 : 1; #endif std::string configError; @@ -119,13 +122,16 @@ int main(int argc, char** argv) if (!StartDB()) return 1; + _ioService = new boost::asio::io_service(); + // Get the list of realms for the server - sRealmList->Initialize(_ioService, sConfigMgr->GetIntDefault("RealmsStateUpdateDelay", 20)); + sRealmList->Initialize(*_ioService, sConfigMgr->GetIntDefault("RealmsStateUpdateDelay", 20)); if (sRealmList->size() == 0) { TC_LOG_ERROR("server.authserver", "No valid realms specified."); StopDB(); + delete _ioService; return 1; } @@ -135,15 +141,16 @@ int main(int argc, char** argv) { TC_LOG_ERROR("server.authserver", "Specified port out of allowed range (1-65535)"); StopDB(); + delete _ioService; return 1; } std::string bindIp = sConfigMgr->GetStringDefault("BindIP", "0.0.0.0"); - sAuthSocketMgr.StartNetwork(_ioService, bindIp, port); + sAuthSocketMgr.StartNetwork(*_ioService, bindIp, port); // Set signal handlers - boost::asio::signal_set signals(_ioService, SIGINT, SIGTERM); + boost::asio::signal_set signals(*_ioService, SIGINT, SIGTERM); #if PLATFORM == PLATFORM_WINDOWS signals.add(SIGBREAK); #endif @@ -154,20 +161,38 @@ int main(int argc, char** argv) // Enabled a timed callback for handling the database keep alive ping _dbPingInterval = sConfigMgr->GetIntDefault("MaxPingTime", 30); - _dbPingTimer.expires_from_now(boost::posix_time::minutes(_dbPingInterval)); - _dbPingTimer.async_wait(KeepDatabaseAliveHandler); + _dbPingTimer = new boost::asio::deadline_timer(*_ioService); + _dbPingTimer->expires_from_now(boost::posix_time::minutes(_dbPingInterval)); + _dbPingTimer->async_wait(KeepDatabaseAliveHandler); + +#if PLATFORM == PLATFORM_WINDOWS + if (m_ServiceStatus != -1) + { + _serviceStatusWatchTimer = new boost::asio::deadline_timer(*_ioService); + _serviceStatusWatchTimer->expires_from_now(boost::posix_time::seconds(1)); + _serviceStatusWatchTimer->async_wait(ServiceStatusWatcher); + } +#endif // Start the io service worker loop - _ioService.run(); + _ioService->run(); + + _dbPingTimer->cancel(); + + sAuthSocketMgr.StopNetwork(); // Close the Database Pool and library StopDB(); TC_LOG_INFO("server.authserver", "Halting process..."); + + signals.cancel(); + + delete _dbPingTimer; + delete _ioService; return 0; } - /// Initialize connection to the database bool StartDB() { @@ -198,7 +223,7 @@ void StopDB() void SignalHandler(const boost::system::error_code& error, int /*signalNumber*/) { if (!error) - _ioService.stop(); + _ioService->stop(); } void KeepDatabaseAliveHandler(const boost::system::error_code& error) @@ -208,11 +233,30 @@ void KeepDatabaseAliveHandler(const boost::system::error_code& error) TC_LOG_INFO("server.authserver", "Ping MySQL to keep connection alive"); LoginDatabase.KeepAlive(); - _dbPingTimer.expires_from_now(boost::posix_time::minutes(_dbPingInterval)); - _dbPingTimer.async_wait(KeepDatabaseAliveHandler); + _dbPingTimer->expires_from_now(boost::posix_time::minutes(_dbPingInterval)); + _dbPingTimer->async_wait(KeepDatabaseAliveHandler); } } +#if PLATFORM == PLATFORM_WINDOWS +void ServiceStatusWatcher(boost::system::error_code const& error) +{ + if (!error) + { + if (m_ServiceStatus == 0) + { + _ioService->stop(); + delete _serviceStatusWatchTimer; + } + else + { + _serviceStatusWatchTimer->expires_from_now(boost::posix_time::seconds(1)); + _serviceStatusWatchTimer->async_wait(ServiceStatusWatcher); + } + } +} +#endif + variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile, std::string& configService) { options_description all("Allowed options"); @@ -220,7 +264,7 @@ variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile ("help,h", "print usage message") ("config,c", value(&configFile)->default_value(_TRINITY_REALM_CONFIG), "use as configuration file") ; -#ifdef _WIN32 +#if PLATFORM == PLATFORM_WINDOWS options_description win("Windows platform specific options"); win.add_options() ("service,s", value(&configService)->default_value(""), "Windows service options: [install | uninstall]") From d86ff0814526cf1fefb1b37e487d9d414086eead Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Wed, 10 Jun 2015 01:07:24 -0300 Subject: [PATCH 05/13] Scripts/TheEye: Clean up instance script --- .../Outland/TempestKeep/Eye/boss_alar.cpp | 21 +-- .../TempestKeep/Eye/boss_astromancer.cpp | 35 ++--- .../Outland/TempestKeep/Eye/boss_kaelthas.cpp | 75 ++++------- .../TempestKeep/Eye/boss_void_reaver.cpp | 22 +--- .../TempestKeep/Eye/instance_the_eye.cpp | 123 +++++------------- .../scripts/Outland/TempestKeep/Eye/the_eye.h | 30 +++-- 6 files changed, 98 insertions(+), 208 deletions(-) diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp index cc825afd3a0..48508aa4790 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp @@ -77,12 +77,11 @@ class boss_alar : public CreatureScript public: boss_alar() : CreatureScript("boss_alar") { } - struct boss_alarAI : public ScriptedAI + struct boss_alarAI : public BossAI { - boss_alarAI(Creature* creature) : ScriptedAI(creature) + boss_alarAI(Creature* creature) : BossAI(creature, DATA_ALAR) { Initialize(); - instance = creature->GetInstanceScript(); DefaultMoveSpeedRate = creature->GetSpeedRate(MOVE_RUN); DiveBomb_Timer = 0; MeltArmor_Timer = 0; @@ -105,8 +104,6 @@ class boss_alar : public CreatureScript cur_wp = 4; } - InstanceScript* instance; - WaitEventType WaitEvent; uint32 WaitTimer; @@ -129,9 +126,8 @@ class boss_alar : public CreatureScript void Reset() override { - instance->SetData(DATA_ALAREVENT, NOT_STARTED); - Initialize(); + _Reset(); me->SetDisplayId(me->GetNativeDisplayId()); me->SetSpeed(MOVE_RUN, DefaultMoveSpeedRate); @@ -145,18 +141,11 @@ class boss_alar : public CreatureScript void EnterCombat(Unit* /*who*/) override { - instance->SetData(DATA_ALAREVENT, IN_PROGRESS); - + _EnterCombat(); me->SetDisableGravity(true); // after enterevademode will be set walk movement - DoZoneInCombat(); me->setActive(true); } - void JustDied(Unit* /*killer*/) override - { - instance->SetData(DATA_ALAREVENT, DONE); - } - void JustSummoned(Creature* summon) override { if (summon->GetEntry() == CREATURE_EMBER_OF_ALAR) @@ -508,7 +497,7 @@ class npc_ember_of_alar : public CreatureScript DoCast(me, SPELL_EMBER_BLAST, true); me->SetDisplayId(11686); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - if (instance->GetData(DATA_ALAREVENT) == 2) + if (instance->GetBossState(DATA_ALAR) == IN_PROGRESS) { if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_ALAR))) { diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index 6021e38d3cf..ff9bdf15276 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -92,17 +92,13 @@ class boss_high_astromancer_solarian : public CreatureScript { public: - boss_high_astromancer_solarian() - : CreatureScript("boss_high_astromancer_solarian") - { - } + boss_high_astromancer_solarian() : CreatureScript("boss_high_astromancer_solarian") { } - struct boss_high_astromancer_solarianAI : public ScriptedAI + struct boss_high_astromancer_solarianAI : public BossAI { - boss_high_astromancer_solarianAI(Creature* creature) : ScriptedAI(creature), Summons(me) + boss_high_astromancer_solarianAI(Creature* creature) : BossAI(creature, DATA_HIGH_ASTROMANCER_SOLARIAN) { Initialize(); - instance = creature->GetInstanceScript(); defaultarmor = creature->GetArmor(); defaultsize = creature->GetObjectScale(); @@ -126,9 +122,6 @@ class boss_high_astromancer_solarian : public CreatureScript Phase = 1; } - InstanceScript* instance; - SummonList Summons; - uint8 Phase; uint32 ArcaneMissiles_Timer; @@ -152,16 +145,13 @@ class boss_high_astromancer_solarian : public CreatureScript void Reset() override { Initialize(); - - instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, NOT_STARTED); - + _Reset(); me->SetArmor(defaultarmor); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetVisible(true); me->SetObjectScale(defaultsize); me->SetDisplayId(MODEL_HUMAN); - Summons.DespawnAll(); } void KilledUnit(Unit* /*victim*/) override @@ -174,15 +164,13 @@ class boss_high_astromancer_solarian : public CreatureScript me->SetObjectScale(defaultsize); me->SetDisplayId(MODEL_HUMAN); Talk(SAY_DEATH); - instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, DONE); + _JustDied(); } void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - DoZoneInCombat(); - - instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, IN_PROGRESS); + _EnterCombat(); } void SummonMinion(uint32 entry, float x, float y, float z) @@ -193,7 +181,7 @@ class boss_high_astromancer_solarian : public CreatureScript if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) Summoned->AI()->AttackStart(target); - Summons.Summon(Summoned); + summons.Summon(Summoned); } } @@ -431,10 +419,7 @@ class npc_solarium_priest : public CreatureScript { public: - npc_solarium_priest() - : CreatureScript("npc_solarium_priest") - { - } + npc_solarium_priest() : CreatureScript("npc_solarium_priest") { } struct npc_solarium_priestAI : public ScriptedAI { @@ -462,9 +447,7 @@ class npc_solarium_priest : public CreatureScript Initialize(); } - void EnterCombat(Unit* /*who*/) override - { - } + void EnterCombat(Unit* /*who*/) override { } void UpdateAI(uint32 diff) override { diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index 9aa1981eabb..f5583c0bc53 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -286,17 +286,13 @@ class boss_kaelthas : public CreatureScript { public: - boss_kaelthas() - : CreatureScript("boss_kaelthas") + boss_kaelthas() : CreatureScript("boss_kaelthas") { } + + struct boss_kaelthasAI : public BossAI { - } - //Kael'thas AI - struct boss_kaelthasAI : public ScriptedAI - { - boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me) + boss_kaelthasAI(Creature* creature) : BossAI(creature, DATA_KAELTHAS) { Initialize(); - instance = creature->GetInstanceScript(); PhaseSubphase = 0; Phase_Timer = 0; } @@ -320,8 +316,6 @@ class boss_kaelthas : public CreatureScript ChainPyros = false; } - InstanceScript* instance; - uint32 Fireball_Timer; uint32 ArcaneDisruption_Timer; uint32 Phoenix_Timer; @@ -341,8 +335,6 @@ class boss_kaelthas : public CreatureScript bool IsCastingFireball; bool ChainPyros; - SummonList summons; - ObjectGuid m_auiAdvisorGuid[MAX_ADVISORS]; void Reset() override @@ -351,8 +343,8 @@ class boss_kaelthas : public CreatureScript if (me->IsInCombat()) PrepareAdvisors(); - - summons.DespawnAll(); + + _Reset(); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -413,7 +405,6 @@ class boss_kaelthas : public CreatureScript } void MoveInLineOfSight(Unit* who) override - { if (!me->HasUnitState(UNIT_STATE_STUNNED) && me->CanCreatureAttack(who)) { @@ -444,6 +435,8 @@ class boss_kaelthas : public CreatureScript { if (!instance->GetData(DATA_KAELTHASEVENT) && !Phase) StartEvent(); + + instance->SetBossState(DATA_KAELTHAS, IN_PROGRESS); } void KilledUnit(Unit* /*victim*/) override @@ -463,11 +456,6 @@ class boss_kaelthas : public CreatureScript } } - void SummonedCreatureDespawn(Creature* summon) override - { - summons.Despawn(summon); - } - void JustDied(Unit* /*killer*/) override { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -475,8 +463,6 @@ class boss_kaelthas : public CreatureScript Talk(SAY_DEATH); - summons.DespawnAll(); - instance->SetData(DATA_KAELTHASEVENT, 0); for (uint8 i = 0; i < MAX_ADVISORS; ++i) @@ -484,6 +470,7 @@ class boss_kaelthas : public CreatureScript if (Unit* pAdvisor = ObjectAccessor::GetUnit(*me, m_auiAdvisorGuid[i])) pAdvisor->Kill(pAdvisor); } + _JustDied(); } void UpdateAI(uint32 diff) override @@ -1024,10 +1011,8 @@ class boss_thaladred_the_darkener : public CreatureScript { public: - boss_thaladred_the_darkener() - : CreatureScript("boss_thaladred_the_darkener") - { - } + boss_thaladred_the_darkener() : CreatureScript("boss_thaladred_the_darkener") { } + struct boss_thaladred_the_darkenerAI : public advisorbase_ai { boss_thaladred_the_darkenerAI(Creature* creature) : advisorbase_ai(creature) @@ -1130,10 +1115,8 @@ class boss_lord_sanguinar : public CreatureScript { public: - boss_lord_sanguinar() - : CreatureScript("boss_lord_sanguinar") - { - } + boss_lord_sanguinar() : CreatureScript("boss_lord_sanguinar") { } + struct boss_lord_sanguinarAI : public advisorbase_ai { boss_lord_sanguinarAI(Creature* creature) : advisorbase_ai(creature) @@ -1205,10 +1188,8 @@ class boss_grand_astromancer_capernian : public CreatureScript { public: - boss_grand_astromancer_capernian() - : CreatureScript("boss_grand_astromancer_capernian") - { - } + boss_grand_astromancer_capernian() : CreatureScript("boss_grand_astromancer_capernian") { } + struct boss_grand_astromancer_capernianAI : public advisorbase_ai { boss_grand_astromancer_capernianAI(Creature* creature) : advisorbase_ai(creature) @@ -1358,10 +1339,8 @@ class boss_master_engineer_telonicus : public CreatureScript { public: - boss_master_engineer_telonicus() - : CreatureScript("boss_master_engineer_telonicus") - { - } + boss_master_engineer_telonicus() : CreatureScript("boss_master_engineer_telonicus") { } + struct boss_master_engineer_telonicusAI : public advisorbase_ai { boss_master_engineer_telonicusAI(Creature* creature) : advisorbase_ai(creature) @@ -1449,10 +1428,8 @@ class npc_kael_flamestrike : public CreatureScript { public: - npc_kael_flamestrike() - : CreatureScript("npc_kael_flamestrike") - { - } + npc_kael_flamestrike() : CreatureScript("npc_kael_flamestrike") { } + struct npc_kael_flamestrikeAI : public ScriptedAI { npc_kael_flamestrikeAI(Creature* creature) : ScriptedAI(creature) @@ -1482,7 +1459,6 @@ class npc_kael_flamestrike : public CreatureScript void MoveInLineOfSight(Unit* /*who*/) override { } - void EnterCombat(Unit* /*who*/) override { } void UpdateAI(uint32 diff) override @@ -1523,10 +1499,8 @@ class npc_phoenix_tk : public CreatureScript { public: - npc_phoenix_tk() - : CreatureScript("npc_phoenix_tk") - { - } + npc_phoenix_tk() : CreatureScript("npc_phoenix_tk") { } + struct npc_phoenix_tkAI : public ScriptedAI { npc_phoenix_tkAI(Creature* creature) : ScriptedAI(creature) @@ -1585,10 +1559,8 @@ class npc_phoenix_egg_tk : public CreatureScript { public: - npc_phoenix_egg_tk() - : CreatureScript("npc_phoenix_egg_tk") - { - } + npc_phoenix_egg_tk() : CreatureScript("npc_phoenix_egg_tk") { } + struct npc_phoenix_egg_tkAI : public ScriptedAI { npc_phoenix_egg_tkAI(Creature* creature) : ScriptedAI(creature) @@ -1611,7 +1583,6 @@ class npc_phoenix_egg_tk : public CreatureScript //ignore any void MoveInLineOfSight(Unit* /*who*/) override { } - void AttackStart(Unit* who) override { if (me->Attack(who, false)) diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp index 9186b491fa4..1aa7d5298e5 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -47,17 +47,13 @@ class boss_void_reaver : public CreatureScript { public: - boss_void_reaver() - : CreatureScript("boss_void_reaver") - { - } + boss_void_reaver() : CreatureScript("boss_void_reaver") { } - struct boss_void_reaverAI : public ScriptedAI + struct boss_void_reaverAI : public BossAI { - boss_void_reaverAI(Creature* creature) : ScriptedAI(creature) + boss_void_reaverAI(Creature* creature) : BossAI(creature, DATA_VOID_REAVER) { Initialize(); - instance = creature->GetInstanceScript(); } void Initialize() @@ -70,8 +66,6 @@ class boss_void_reaver : public CreatureScript Enraged = false; } - InstanceScript* instance; - uint32 Pounding_Timer; uint32 ArcaneOrb_Timer; uint32 KnockAway_Timer; @@ -82,9 +76,7 @@ class boss_void_reaver : public CreatureScript void Reset() override { Initialize(); - - if (me->IsAlive()) - instance->SetData(DATA_VOIDREAVEREVENT, NOT_STARTED); + _Reset(); } void KilledUnit(Unit* /*victim*/) override @@ -96,15 +88,13 @@ class boss_void_reaver : public CreatureScript { Talk(SAY_DEATH); DoZoneInCombat(); - - instance->SetData(DATA_VOIDREAVEREVENT, DONE); + _JustDied(); } void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - - instance->SetData(DATA_VOIDREAVEREVENT, IN_PROGRESS); + _EnterCombat(); } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp index 38c9cdd487c..c421b9974ce 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp @@ -27,8 +27,6 @@ EndScriptData */ #include "InstanceScript.h" #include "the_eye.h" -#define MAX_ENCOUNTER 5 - /* The Eye encounters: 0 - Kael'thas event 1 - Al' ar event @@ -39,20 +37,16 @@ EndScriptData */ class instance_the_eye : public InstanceMapScript { public: - instance_the_eye() - : InstanceMapScript("instance_the_eye", 550) - { - } + instance_the_eye() : InstanceMapScript("instance_the_eye", 550) { } struct instance_the_eye_InstanceMapScript : public InstanceScript { instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); + SetBossNumber(EncounterCount); KaelthasEventPhase = 0; - AlarEventPhase = 0; } ObjectGuid ThaladredTheDarkener; @@ -63,44 +57,34 @@ class instance_the_eye : public InstanceMapScript ObjectGuid Astromancer; ObjectGuid Alar; uint8 KaelthasEventPhase; - uint8 AlarEventPhase; - - uint32 m_auiEncounter[MAX_ENCOUNTER]; - - bool IsEncounterInProgress() const override - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - return true; - - return false; - } void OnCreatureCreate(Creature* creature) override { switch (creature->GetEntry()) { - case 20064: - ThaladredTheDarkener = creature->GetGUID(); - break; - case 20063: - MasterEngineerTelonicus = creature->GetGUID(); - break; - case 20062: - GrandAstromancerCapernian = creature->GetGUID(); - break; - case 20060: - LordSanguinar = creature->GetGUID(); - break; - case 19622: - Kaelthas = creature->GetGUID(); - break; - case 18805: - Astromancer = creature->GetGUID(); - break; - case 19514: - Alar = creature->GetGUID(); - break; + case NPC_SANGUINAR: + LordSanguinar = creature->GetGUID(); + break; + case NPC_CAPERNIAN: + GrandAstromancerCapernian = creature->GetGUID(); + break; + case NPC_TELONICUS: + MasterEngineerTelonicus = creature->GetGUID(); + break; + case NPC_THALADRED: + ThaladredTheDarkener = creature->GetGUID(); + break; + case NPC_KAELTHAS: + Kaelthas = creature->GetGUID(); + break; + case NPC_HIGH_ASTROMANCER_SOLARIAN: + Astromancer = creature->GetGUID(); + break; + case NPC_ALAR: + Alar = creature->GetGUID(); + break; + default: + break; } } @@ -113,7 +97,7 @@ class instance_the_eye : public InstanceMapScript case DATA_GRANDASTROMANCERCAPERNIAN: return GrandAstromancerCapernian; case DATA_MASTERENGINEERTELONICUS: return MasterEngineerTelonicus; case DATA_KAELTHAS: return Kaelthas; - case DATA_ASTROMANCER: return Astromancer; + case DATA_HIGH_ASTROMANCER_SOLARIAN: return Astromancer; case DATA_ALAR: return Alar; } return ObjectGuid::Empty; @@ -123,64 +107,23 @@ class instance_the_eye : public InstanceMapScript { switch (type) { - case DATA_ALAREVENT: - AlarEventPhase = data; - m_auiEncounter[0] = data; - break; - case DATA_HIGHASTROMANCERSOLARIANEVENT: - m_auiEncounter[1] = data; - break; - case DATA_VOIDREAVEREVENT: - m_auiEncounter[2] = data; - break; - case DATA_KAELTHASEVENT: - KaelthasEventPhase = data; - m_auiEncounter[3] = data; - break; + case DATA_KAELTHASEVENT: + KaelthasEventPhase = data; + break; + default: + break; } - if (data == DONE) - SaveToDB(); } uint32 GetData(uint32 type) const override { switch (type) { - case DATA_ALAREVENT: return AlarEventPhase; - case DATA_HIGHASTROMANCERSOLARIANEVENT: return m_auiEncounter[1]; - case DATA_VOIDREAVEREVENT: return m_auiEncounter[2]; - case DATA_KAELTHASEVENT: return KaelthasEventPhase; + case DATA_KAELTHASEVENT: + return KaelthasEventPhase; } return 0; } - - std::string GetSaveData() override - { - OUT_SAVE_INST_DATA; - - std::ostringstream stream; - stream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3]; - - OUT_SAVE_INST_DATA_COMPLETE; - return stream.str(); - } - - void Load(const char* in) override - { - if (!in) - { - OUT_LOAD_INST_DATA_FAIL; - return; - } - OUT_LOAD_INST_DATA(in); - - std::istringstream stream(in); - stream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3]; - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) // Do not load an encounter as "In Progress" - reset it instead. - m_auiEncounter[i] = NOT_STARTED; - OUT_LOAD_INST_DATA_COMPLETE; - } }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h index 718f37861d9..c46fe408274 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h +++ b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h @@ -21,19 +21,33 @@ #define DataHeader "TE" +uint32 const EncounterCount = 4; + enum DataTypes { - DATA_ALAREVENT = 1, - DATA_ASTROMANCER = 2, - DATA_GRANDASTROMANCERCAPERNIAN = 3, - DATA_HIGHASTROMANCERSOLARIANEVENT = 4, - DATA_KAELTHAS = 5, + // Encounter States/Boss GUIDs + DATA_KAELTHAS = 0, + DATA_ALAR = 1, + DATA_HIGH_ASTROMANCER_SOLARIAN = 2, + DATA_VOID_REAVER = 3, + + DATA_ASTROMANCER = 4, + DATA_GRANDASTROMANCERCAPERNIAN = 5, DATA_KAELTHASEVENT = 6, DATA_LORDSANGUINAR = 7, DATA_MASTERENGINEERTELONICUS = 8, - DATA_THALADREDTHEDARKENER = 10, - DATA_VOIDREAVEREVENT = 11, - DATA_ALAR = 12 + DATA_THALADREDTHEDARKENER = 9 +}; + +enum CreatureIds +{ + NPC_SANGUINAR = 20060, + NPC_CAPERNIAN = 20062, + NPC_TELONICUS = 20063, + NPC_THALADRED = 20064, + NPC_KAELTHAS = 19622, + NPC_HIGH_ASTROMANCER_SOLARIAN = 18805, + NPC_ALAR = 19514 }; #endif From f5530c719b71309bd476aff528b0d3e1220ca49b Mon Sep 17 00:00:00 2001 From: Dr-J Date: Thu, 11 Jun 2015 19:30:06 +0100 Subject: [PATCH 06/13] DB/Misc: Megzeg Nukklebust By @tkrokli Closes #14863 --- sql/updates/world/2015_06_11_00_world.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sql/updates/world/2015_06_11_00_world.sql diff --git a/sql/updates/world/2015_06_11_00_world.sql b/sql/updates/world/2015_06_11_00_world.sql new file mode 100644 index 00000000000..2e5e4786c13 --- /dev/null +++ b/sql/updates/world/2015_06_11_00_world.sql @@ -0,0 +1,4 @@ +-- Set correct npcflag for NPC ID 21283, Megzeg Nukklebust +-- He is neither a vendor nor repair NPC +UPDATE `creature_template` SET `npcflag` = 3 WHERE `entry`= 21283; +UPDATE `creature_template_addon` SET `bytes2` = 257 WHERE `entry`= 21283; From d08524cfeb9028ead9c378cf18ddf21c63c88a2a Mon Sep 17 00:00:00 2001 From: Kittnz Date: Fri, 12 Jun 2015 22:04:04 +0200 Subject: [PATCH 07/13] DB/Path: Sunreaver Hawkrider in Crystalsong Forest --- sql/updates/world/2015_06_11_01_world.sql | 65 +++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sql/updates/world/2015_06_11_01_world.sql diff --git a/sql/updates/world/2015_06_11_01_world.sql b/sql/updates/world/2015_06_11_01_world.sql new file mode 100644 index 00000000000..2ed3766deae --- /dev/null +++ b/sql/updates/world/2015_06_11_01_world.sql @@ -0,0 +1,65 @@ +DELETE FROM `creature_formations` WHERE `leaderGUID`=101017; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(101017, 101017, 0, 0, 1), +(101017, 101016, 2, 45, 2); + +-- Pathing for Sunreaver Hawkrider Entry: 30265 'TDB FORMAT' +SET @NPC := 101017; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5586.633,`position_y`=-658.4381,`position_z`=204.5775 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,28889,0,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,5586.633,-658.4381,204.5775,0,0,0,0,100,0), +(@PATH,2,5585.409,-655.815,203.7495,0,0,0,0,100,0), +(@PATH,3,5584.759,-647.1207,202.7112,0,0,0,0,100,0), +(@PATH,4,5589.797,-633.0928,200.7699,0,0,0,0,100,0), +(@PATH,5,5598.13,-621.1475,198.2848,0,0,0,0,100,0), +(@PATH,6,5592.634,-628.2191,199.8846,0,0,0,0,100,0), +(@PATH,7,5585.994,-641.5278,201.9498,0,0,0,0,100,0), +(@PATH,8,5584.441,-650.3018,203.0215,0,0,0,0,100,0); + +DELETE FROM `creature_formations` WHERE `leaderGUID`=100987; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(100987, 100987, 0, 0, 1), +(100987, 100986, 2, 45, 2); + +-- Pathing for Sunreaver Hawkrider Entry: 30265 'TDB FORMAT' +SET @NPC := 100987; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5615.299,`position_y`=-711.0152,`position_z`=206.286 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,28889,0,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,5615.299,-711.0152,206.286,0,0,0,0,100,0), +(@PATH,2,5608.708,-695.2381,206.6548,0,0,0,0,100,0), +(@PATH,3,5598.26,-684.2681,206.6482,0,0,0,0,100,0), +(@PATH,4,5595.715,-675.8694,206.6474,0,0,0,0,100,0), +(@PATH,5,5589.645,-664.4355,205.7086,0,0,0,0,100,0), +(@PATH,6,5593.898,-670.5458,206.5087,0,0,0,0,100,0), +(@PATH,7,5596.294,-679.0742,206.6474,0,0,0,0,100,0), +(@PATH,8,5606.79,-693.2242,206.6536,0,0,0,0,100,0); + +DELETE FROM `creature_formations` WHERE `leaderGUID`=100984; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(100984, 100984, 0, 0, 1), +(100984, 100985, 2, 45, 2); + +-- Pathing for Sunreaver Hawkrider Entry: 30265 'TDB FORMAT' +SET @NPC := 100984; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5603.461,`position_y`=-753.2111,`position_z`=198.3089 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,28889,0,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,5603.461,-753.2111,198.3089,0,0,0,0,100,0), +(@PATH,2,5609.75,-744.6108,201.4747,0,0,0,0,100,0), +(@PATH,3,5614.047,-736.9058,203.5394,0,0,0,0,100,0), +(@PATH,4,5617.86,-725.5508,204.9431,0,0,0,0,100,0), +(@PATH,5,5618.354,-717.699,205.5509,0,0,0,0,100,0), +(@PATH,6,5618.291,-721.7224,205.229,0,0,0,0,100,0), +(@PATH,7,5616.521,-730.5341,204.4404,0,0,0,0,100,0), +(@PATH,8,5613.125,-738.7379,203.1023,0,0,0,0,100,0); From b067f20f4a0e5ba02b4026a7edae3a5d161e46c6 Mon Sep 17 00:00:00 2001 From: Kittnz Date: Fri, 12 Jun 2015 22:05:57 +0200 Subject: [PATCH 08/13] DB: Fix date for file --- .../world/{2015_06_11_01_world.sql => 2015_06_12_00_world.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sql/updates/world/{2015_06_11_01_world.sql => 2015_06_12_00_world.sql} (100%) diff --git a/sql/updates/world/2015_06_11_01_world.sql b/sql/updates/world/2015_06_12_00_world.sql similarity index 100% rename from sql/updates/world/2015_06_11_01_world.sql rename to sql/updates/world/2015_06_12_00_world.sql From 30bf498810f40fc280543564493f32846b1234db Mon Sep 17 00:00:00 2001 From: ShinDarth Date: Fri, 12 Jun 2015 12:56:57 +0200 Subject: [PATCH 09/13] Sorted contributors list of THANKS file and converted to utf-8 (cherry picked from commit dc403149ebe4151330a5bd5974fe9952c4f9f37e) --- THANKS | 794 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 707 insertions(+), 87 deletions(-) diff --git a/THANKS b/THANKS index d43b40b9ba5..eb197ce1d10 100644 --- a/THANKS +++ b/THANKS @@ -13,90 +13,710 @@ Thanks to the ScriptDev2 team (http://www.scriptdev2.com) for scripts. Thanks to the WCell team (especially Ralek) for research on realm reconnect sequence, item scaling stats algorithm, gameobject rotation issues. -Thanks go out to the following people for various patches/code (listed in the -order they were added) (there may be duplicates or invalid names, most of them -were extracted from commits): -w12x, dythzer, XEQT, death420, balrok, TOM_RUS, -runningnak3d, Seline, KingPin, raczman, bogie, Neo2003, NoFantasy, Derex, -freghar, toilet1, megamage, MadJack, WarHead, gvcoman, Ntsc, arrai, jrkpote, -Seraphim, vagoth, KerchumA222, Rognar, Blaymoira, DragonHunter, Molius, ApoC, -SeT, hunuza, Wyk3d, VladimirMangos, rj686, Arthorius, QAston, Muhaha, dereka, -Kaldorei, NuRRi, Biglad, Machiavelli, Nivelo, Paradox, Aokromes, EleGoS, -Visagalis, reno, Cybrax, GriffonHeart, fgenesis, rilex, XTElite1, Anubisss, eL, -Iskander, arclite, Bladex, EIFEL, Klaimmore, XTZGZoReX, panaut0lordv, DearScorpion, -BlueSteel, AlexDereka, Drahy, krz, Xeptor, Sethoso, Sarjuuk, pasdVn, nissen, -Triply, `win, Fog, emsy, McBitter, Lukaasm, maikash, Wormheart, DonTomika, -DiSlord, Tiretunderl, Ramses_II, cccyril, Cha0S2, miebaik, Trazom, KiriX, -darkEvil, Sorken, Kudlaty, Charlie2025, Medwise, Rat, Lutik, domingo, -TrullyONE, rastikzzz, Tassader, Lightguard, KAPATEJIb, Tux`Volant, zhanhang03, -Asael, Elron, False, nos4r2zod, Disassembler, thumsoul, rvnth, throneinc, -MrTux, Luniz2k1, Dani, BroodWyrm, raven_coda, Bagsac, Thraxx, Trogvar, -teacher4, zhenya, Albrecht de Endrau, Phacops, Naicisum, thenecromancer, shax, -cryingcloud, freeganja, Foks, daveh, Az@zel, evilstar, Corfen, Astellar, Maxxie, -DEN_North, StarJoker, Nezemnoy, X-Savior, subhuman_bob, Ambal, Brueggus, sparc, -jojo, Trojan, tvaroh, Genars, BombermaG, Bulkin, nesocip, xILOSWag, SilverIce, -Uruviel, timmit, Seizerkiller, Stokrotka, JoN0, Tanatos, Hunteee, Alyen, -Farah, Them, DaGNU, arthurcik, BudIcePenguin, Amok, Amit86, onkelz28, Azrael, -Larva, Roland, DerDyddye, Vicos, PSZ, CRAZyBUg, irish, Sephiroth1984, -mike753, Xlybriem, Paytheo, ArticDevil, FearX, Beaste, bufferoverflow, Jeniczek, -Den, bobaz, crackm, seirge, D_Skywalk, mknjc, Christyan, Saeba, Nevan, tlexii, -liszt, duckman, Joro, Charlie, smellbee, bigjohnson4, maxdestroyer, Destalker, -ckegg, Drethek, yad02, Win32, NetSky, Zcuron, Necroo, ogeraisi, Coldblooded, -Edder, riddick, Craker, NeoLithicX, srounet, SLG, Tidus, neo0608, SyRiOCoP, -F636y623, Patro, mobel, simak, hectolight, Riccardo, GodsdoG, Gomez, kamir86, fredi, -qubix, Deafboy, Authorius, DarkRabbit, mrbungle, netoya, peldor, eumario, Alex, -Moandor, ebx, DasBlub, guenex, Brats, Lucy, arcx, Enril, oiler2112, -Wizz, Elminster, 123qwe, NeatElves, Turk3y, deicide, vladonix, nugu100, -Skystar, Reve, jorooo, FrozenDB, miranda.conrado, Tequila, Gommes, Zerg2000, -aerione_alt, Rastik, FrenchW, wilibald09, Velorien, kancaras, fisherman, -Aviram, Mufik, loop69, multiplexer, Koani, rechapa79, kozelo, MeanMachine, -fregh, adrycasillo, IncoGnito, Alez, Itch, Kuteur, MaS0n, peaceman, manuel, -Gendalph, Lynx3d, raftom, Infinity, Ebrithil, Sorya, HP1, Prince, redcore, -Boogie, Necro, Thyros, simon, MrSmite, horogandris, Stryker, MaXiMiUS, kaell, -totoro, Forgiven, Big, Oculus, Lorac, Nemesis, Epsik, iadus3, durotar, hoshie, -fukifat, imbecile, Nafsih, Meldanor, Turok, Naturamen, Themris, Sundark, -Azuritus, jotapdiez, EnderGT, Curuad, oc_redfox, rockzOr, Darkshines, -BlackYoghurt, McLovin, Gyullo, kaxap, Hawthorne, nanouniko, new001, Opterman, -Typhoon, Cleave, HiZed, The_Game_Master, Athor, Veras, Menia, Jolan, BlackOne, -johnholiver, Spp, Drevi, kb_z, Tartalo, Shendor, Demonx, Taliesin, defacer, -SoulForge, Jackpoz, Cass, QuaLiT1, exul182, sunwell, AniRB, clotza, Tommassino, -dracula70, alexsot, RedSonja, Cnillidan, Proofzor, aqs999, Sony, amsjunior123, -Sisif, Joshh, alex_1983, arez, RammboNr5, Insider, bodompelle, lobuz, Azazel, -footman, elron103, make_the_king, destros, MetaphysicalDrama, disassebler, -Malcrom, Vladmimr Liptk, retriman, hyriuu, Smakapotatis, PainKiller, -bkhorizon, n0n4m3, Chesterfield, Frankir, Wowka321, Morpheux, p0wer, -Ouden, toshik, laise, yavi, Splinter, Syntec, Arthas, denyde, unholy, -Vaughner, blackmanos, edrinn, Liberate, Shauren, dr.tenma, click, -SupaBad, Xanadu, Socolin, Shocker, Silinoron, 0xFuture, xK1, Ramus, menke, -wowgargamel, Dark0r, Kierkegaard, Leak, ge0rg, StormByte, joshwhedon, -BlackCat0110, JuliuSZS, n4rk0, filip.havlicek, m.ax, laviniu, LordJZ, Scazzato88, -svannon, jurkovic.nikola, Willian Krueger, BioHazard, Ille000, Erocoloco, -terrorbringer, antihrists, Havenard, scarymovie87, D3VIL, FaTe753, PrinceCreed, -spgm, Dakeyras, sombre88, 19Maxx83, moriquendu, Ille, breakerfly, -zthoreen, clement.roussel, p.alexej, Ceris, Nayre, Kiper, announce, thmarth, -Ner'zhul, DarkXuan, linencloth, SnakeIce, Tome, Nay, Kaelima, -Subv, Tuxity, tibbi, Gigatotem, Nexflame, trickerer, zxbiohazardzx, w1sht0l1v3, -Warpten, CeIa, Kandera, horn, Dimitro, thesensei, Sovak, Vincent-Michael, -Xanvial, faq, Gacko, Geodar, hexa-, MacWarrior, cyberbrest, Myran2, Northstrider, -AFROM, CrYser, Kretol, Bizzy, nelegalno, Kinzcool, armano2, Tomas, Aristoo, Trista, -e@cacaw.net, oMadMano, Kiddie, blub, Santiago, tobmaps, Mik43l, danik, Souler, -joschiwald, CDawg, WishToDie, gecko32, gadge, neuro_999, Stefo, dr.skull, NTX, Hexit, -Stalker-Riddick, thomas33, Manuel Carrasco, Imprtat, Chaplain, teyrnon, zorix, Greymane, -Venugh, e000, Amit, Alternative, Exodius, Jorge, shlomi1515, tharaca, Alestaan, Valcorb, -Odyssey, Chipsi, Pesthuf, stfx, Yaki Khadafi, David Klepáček, SignFinder, unknown, -NNN666, AliveShiro, 4m1g0, mweinelt, Abdollah Hasan, Xees, zori, warriorpoetex, qaywsx, -ghost, Discovered, faq_, Jildor, The Game, Kezo90, Helias, Frca, Ramusik, elecyb, Joni, -Multivitamin, faramir118, cookta2012, Gyx, ShinDarth, Lopin, Martin Weinelt, -Bezo, frozenarmor, E. van Harten, LiMCrosS, Albis, Go6o, Pitcrawler, Matthew Goff, neurorulez, -Ka0z, glkrlos, zwerg, Merlin2010, furion, Giuseppe Montesanto, LihO, Bootz, PKX, burnham, -Drake Fish, Vlad, Discover, Heisenberg, Kapoeira, Emo Norfik, tREAk, zoidmann, Wilds, weclub, -Jon, Cron, Alexander, Vinolentus, LaserJet, mns, Stalker_Riddick, Yelvann, draco, Geekotron, -bytewarrior, Fredi Machado, Studioworks, 3kids, idostyle@zoit, Sebastián Orellana, DemiDroL, -n4ndo, et2012, Rochet2, Grobi, Google, Wispeckt, hacknowledge, wonopon, Naga, -Joeri Thissen, Payn, Fest, insider42, DrTenma, L30m4nc3r, Akama, Jesper Meyer, Kiperr, -maanuel, vcrx6, Furion89, Mark07, lost-illusion, SeTM, TCKiper, vlad852, tehmarto, boom, -Per Wilhelmsen, telsamat, Various, erimioa, Sawiner, zergtmn, SimonDMII, pek2011, alexbolotsin, -laly, mrquickfx, Koord, amnell, GWRde, EdwinDW, gildor, darkstalker, Feanordev, _manuel_, -thymuswisewood, sohrab, Lazzalf, Taser, Ottowayne, Exordian, nucleartux, John Holiver, j4r0d, -Trazom62, Brian, enjoi, teacher, Alex Bolotsin, Troy, silver1ce, nihal, arcanzic, Chaz Brown, -pendragon, aven_coda, cca220v, ArcticDevil, derex_tri \ No newline at end of file +Thanks go out to the following people for various patches/code (there may be duplicates or invalid names, most of them +were extracted from old commits): + +- 0xFuture +- 123qwe +- 19Maxx83 +- 3kids +- 4m1g0 +- Abdollah Hasan +- adrycasillo +- aerione_alt +- AFROM +- Akama +- Albis +- Albrecht de Endrau +- Alestaan +- Alex +- Alex Bolotsin +- Alexander +- alexbolotsin +- AlexDereka +- alexsot +- alex_1983 +- Alez +- AliveShiro +- Alternative +- Alyen +- Ambal +- Amit +- Amit86 +- amnell +- Amok +- amsjunior123 +- AniRB +- announce +- antihrists +- Anubisss +- Aokromes +- ApoC +- aqs999 +- arcanzic +- arclite +- ArcticDevil +- arcx +- arez +- Aristoo +- armano2 +- arrai +- Arthas +- Arthorius +- arthurcik +- ArticDevil +- Asael +- Astellar +- Athor +- Authorius +- aven_coda +- Aviram +- Az@zel +- Azrael +- Azuritus +- Bagsac +- balrok +- Beaste +- Bezo +- Big +- bigjohnson4 +- Biglad +- BioHazard +- Bizzy +- bkhorizon +- BlackCat0110 +- blackmanos +- BlackOne +- BlackYoghurt +- Bladex +- Blaymoira +- blub +- BlueSteel +- bobaz +- bodompelle +- bogie +- BombermaG +- Boogie +- boom +- Bootz +- Brats +- breakerfly +- Brian +- BroodWyrm +- Brueggus +- BudIcePenguin +- bufferoverflow +- Bulkin +- burnham +- bytewarrior +- Cass +- cca220v +- cccyril +- CDawg +- CeIa +- Ceris +- Cha0S2 +- Chaplain +- Charlie +- Charlie2025 +- Chaz Brown +- Chesterfield +- Chipsi +- Christyan +- ckegg +- Cleave +- clement.roussel +- click +- clotza +- Cnillidan +- Coldblooded +- cookta2012 +- Corfen +- crackm +- Craker +- CRAZyBUg +- Cron +- cryingcloud +- CrYser +- Curuad +- cyberbrest +- Cybrax +- D3VIL +- DaGNU +- Dakeyras +- Dani +- danik +- Dark0r +- darkEvil +- DarkRabbit +- Darkshines +- darkstalker +- DarkXuan +- DasBlub +- daveh +- David Klepáček +- Deafboy +- DearScorpion +- death420 +- defacer +- deicide +- DemiDroL +- Demonx +- Den +- denyde +- DEN_North +- DerDyddye +- dereka +- Derex +- derex_tri +- Destalker +- destros +- Dimitro +- disassebler +- Disassembler +- Discover +- Discovered +- DiSlord +- domingo +- DonTomika +- dr.skull +- dr.tenma +- draco +- dracula70 +- DragonHunter +- Drahy +- Drake Fish +- Drethek +- Drevi +- DrTenma +- duckman +- durotar +- dythzer +- D_Skywalk +- E. van Harten +- e000 +- e@cacaw.net +- Ebrithil +- ebx +- Edder +- edrinn +- EdwinDW +- EIFEL +- eL +- elecyb +- EleGoS +- Elminster +- Elron +- elron103 +- Emo Norfik +- emsy +- EnderGT +- enjoi +- Enril +- Epsik +- erimioa +- Erocoloco +- et2012 +- eumario +- evilstar +- Exodius +- Exordian +- exul182 +- F636y623 +- False +- faq +- faq_ +- Farah +- faramir118 +- FaTe753 +- Feanordev +- FearX +- Fest +- fgenesis +- filip.havlicek +- fisherman +- Fog +- Foks +- footman +- Forgiven +- Frankir +- Frca +- fredi +- Fredi Machado +- freeganja +- fregh +- freghar +- FrenchW +- frozenarmor +- FrozenDB +- fukifat +- furion +- Furion89 +- Gacko +- gadge +- ge0rg +- gecko32 +- Geekotron +- Genars +- Gendalph +- Geodar +- ghost +- Gigatotem +- gildor +- Giuseppe Montesanto +- glkrlos +- Go6o +- GodsdoG +- Gomez +- Gommes +- Google +- Greymane +- GriffonHeart +- Grobi +- guenex +- gvcoman +- GWRde +- Gyullo +- Gyx +- hacknowledge +- Havenard +- Hawthorne +- hectolight +- Heisenberg +- Helias +- hexa- +- Hexit +- HiZed +- horn +- horogandris +- hoshie +- HP1 +- Hunteee +- hunuza +- hyriuu +- iadus3 +- idostyle@zoit +- Ille +- Ille000 +- imbecile +- Imprtat +- IncoGnito +- Infinity +- Insider +- insider42 +- irish +- Iskander +- Itch +- j4r0d +- Jackpoz +- Jeniczek +- Jesper Meyer +- Jildor +- Joeri Thissen +- John Holiver +- johnholiver +- jojo +- Jolan +- Jon +- JoN0 +- Joni +- Jorge +- Joro +- jorooo +- joschiwald +- Joshh +- joshwhedon +- jotapdiez +- jrkpote +- JuliuSZS +- jurkovic.nikola +- Ka0z +- Kaelima +- kaell +- Kaldorei +- kamir86 +- kancaras +- Kandera +- KAPATEJIb +- Kapoeira +- kaxap +- kb_z +- KerchumA222 +- Kezo90 +- Kiddie +- Kierkegaard +- KingPin +- Kinzcool +- Kiper +- Kiperr +- KiriX +- Klaimmore +- Koani +- Koord +- kozelo +- Kretol +- krz +- Kudlaty +- Kuteur +- L30m4nc3r +- laise +- laly +- Larva +- LaserJet +- laviniu +- Lazzalf +- Leak +- Liberate +- Lightguard +- LihO +- LiMCrosS +- linencloth +- liszt +- lobuz +- loop69 +- Lopin +- Lorac +- LordJZ +- lost-illusion +- Lucy +- Lukaasm +- Luniz2k1 +- Lutik +- Lynx3d +- m.ax +- maanuel +- Machiavelli +- MacWarrior +- MadJack +- maikash +- make_the_king +- Malcrom +- manuel +- Manuel Carrasco +- Mark07 +- Martin Weinelt +- MaS0n +- Matthew Goff +- maxdestroyer +- MaXiMiUS +- Maxxie +- McBitter +- McLovin +- MeanMachine +- Medwise +- megamage +- Meldanor +- Menia +- menke +- Merlin2010 +- MetaphysicalDrama +- miebaik +- Mik43l +- mike753 +- miranda.conrado +- mknjc +- mns +- Moandor +- mobel +- Molius +- moriquendu +- Morpheux +- mrbungle +- mrquickfx +- MrSmite +- MrTux +- Mufik +- Muhaha +- multiplexer +- Multivitamin +- mweinelt +- Myran2 +- n0n4m3 +- n4ndo +- n4rk0 +- Nafsih +- Naga +- Naicisum +- nanouniko +- Naturamen +- Nay +- Nayre +- NeatElves +- Necro +- Necroo +- nelegalno +- Nemesis +- neo0608 +- Neo2003 +- NeoLithicX +- Ner'zhul +- nesocip +- netoya +- NetSky +- neurorulez +- neuro_999 +- Nevan +- new001 +- Nexflame +- Nezemnoy +- nihal +- nissen +- Nivelo +- NNN666 +- NoFantasy +- Northstrider +- nos4r2zod +- Ntsc +- NTX +- nucleartux +- nugu100 +- NuRRi +- Oculus +- oc_redfox +- Odyssey +- ogeraisi +- oiler2112 +- oMadMano +- onkelz28 +- Opterman +- Ottowayne +- Ouden +- p.alexej +- p0wer +- PainKiller +- panaut0lordv +- Paradox +- pasdVn +- Patro +- Payn +- Paytheo +- peaceman +- pek2011 +- peldor +- pendragon +- Per Wilhelmsen +- Pesthuf +- Phacops +- Pitcrawler +- PKX +- Prince +- PrinceCreed +- Proofzor +- PSZ +- QAston +- qaywsx +- QuaLiT1 +- qubix +- raczman +- raftom +- RammboNr5 +- Ramses_II +- Ramus +- Ramusik +- Rastik +- rastikzzz +- Rat +- raven_coda +- rechapa79 +- redcore +- RedSonja +- reno +- retriman +- Reve +- Riccardo +- riddick +- rilex +- rj686 +- Rochet2 +- rockzOr +- Rognar +- Roland +- runningnak3d +- rvnth +- Saeba +- Santiago +- Sarjuuk +- Sawiner +- scarymovie87 +- Scazzato88 +- Sebastián Orellana +- seirge +- Seizerkiller +- Seline +- Sephiroth1984 +- Seraphim +- SeT +- Sethoso +- SeTM +- Shauren +- shax +- Shendor +- ShinDarth +- shlomi1515 +- Shocker +- SignFinder +- Silinoron +- silver1ce +- SilverIce +- simak +- simon +- SimonDMII +- Sisif +- Skystar +- SLG +- Smakapotatis +- smellbee +- SnakeIce +- Socolin +- sohrab +- sombre88 +- Sony +- Sorken +- Sorya +- Souler +- SoulForge +- Sovak +- sparc +- spgm +- Splinter +- Spp +- srounet +- Stalker-Riddick +- Stalker_Riddick +- StarJoker +- Stefo +- stfx +- Stokrotka +- StormByte +- Stryker +- Studioworks +- subhuman_bob +- Subv +- Sundark +- sunwell +- SupaBad +- svannon +- Syntec +- SyRiOCoP +- Taliesin +- Tanatos +- Tartalo +- Taser +- Tassader +- TCKiper +- teacher +- teacher4 +- tehmarto +- telsamat +- Tequila +- terrorbringer +- teyrnon +- tharaca +- The Game +- Them +- Themris +- thenecromancer +- thesensei +- The_Game_Master +- thmarth +- thomas33 +- Thraxx +- throneinc +- thumsoul +- thymuswisewood +- Thyros +- tibbi +- Tidus +- timmit +- Tiretunderl +- tlexii +- tobmaps +- toilet1 +- Tomas +- Tome +- Tommassino +- TOM_RUS +- toshik +- totoro +- Trazom +- Trazom62 +- tREAk +- trickerer +- Triply +- Trista +- Trogvar +- Trojan +- Troy +- TrullyONE +- Turk3y +- Turok +- Tuxity +- Tux`Volant +- tvaroh +- Typhoon +- unholy +- unknown +- Uruviel +- vagoth +- Valcorb +- Various +- Vaughner +- vcrx6 +- Velorien +- Venugh +- Veras +- Vicos +- Vincent-Michael +- Vinolentus +- Visagalis +- Vlad +- vlad852 +- VladimirMangos +- Vladmimír Lipták +- vladonix +- w12x +- w1sht0l1v3 +- WarHead +- Warpten +- warriorpoetex +- weclub +- Wilds +- wilibald09 +- Willian Krueger +- Win32 +- WishToDie +- Wispeckt +- Wizz +- wonopon +- Wormheart +- wowgargamel +- Wowka321 +- Wyk3d +- X-Savior +- Xanadu +- Xanvial +- Xees +- Xeptor +- XEQT +- xILOSWag +- xK1 +- Xlybriem +- XTElite1 +- XTZGZoReX +- yad02 +- Yaki Khadafi +- yavi +- Yelvann +- Zcuron +- Zerg2000 +- zergtmn +- zhanhang03 +- zhenya +- zoidmann +- zori +- zorix +- zthoreen +- zwerg +- zxbiohazardzx +- _manuel_ +- `win From 1a7a9619d87e95ecdc75fe012e0099a3f184b17b Mon Sep 17 00:00:00 2001 From: Naios Date: Sat, 13 Jun 2015 00:49:45 +0200 Subject: [PATCH 10/13] Update contributors list (THANKS file) * See https://gist.github.com/Naios/25810829e66b7ddd8b82 for the full procedure & sources. * Most names were taken from commits (3.3.5 & 6.x branch) * Also contributors who were mentioned in commits were included (@, thx, thanks, Author:, author:) (cherry picked from commit 5b64df1a26d8b521282ffa41a17ad49a2e99558c) --- THANKS | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 270 insertions(+), 7 deletions(-) diff --git a/THANKS b/THANKS index eb197ce1d10..28695da62d7 100644 --- a/THANKS +++ b/THANKS @@ -19,8 +19,11 @@ were extracted from old commits): - 0xFuture - 123qwe - 19Maxx83 +- 2010phenix - 3kids - 4m1g0 +- A Metaphysical Drama +- Aaron126 - Abdollah Hasan - adrycasillo - aerione_alt @@ -29,36 +32,48 @@ were extracted from old commits): - Albis - Albrecht de Endrau - Alestaan +- aletuna - Alex - Alex Bolotsin - Alexander - alexbolotsin - AlexDereka +- Alexei_Nech - alexsot - alex_1983 - Alez - AliveShiro +- alpharius - Alternative - Alyen - Ambal +- Aminxhm - Amit - Amit86 - amnell - Amok - amsjunior123 - AniRB +- Ankso - announce +- Ante - antihrists +- Anton Usmansky - Anubisss - Aokromes - ApoC +- Appled - aqs999 - arcanzic - arclite - ArcticDevil - arcx - arez +- AriDEV +- ariel- - Aristoo +- arks +- Armano - armano2 - arrai - Arthas @@ -66,22 +81,32 @@ were extracted from old commits): - arthurcik - ArticDevil - Asael +- Ascathor - Astellar - Athor - Authorius - aven_coda - Aviram -- Az@zel +- Azazel - Azrael - Azuritus +- b4nan1 +- badmoon +- Baeumchen - Bagsac +- baines - balrok +- baric +- Barlok - Beaste +- bele +- betagan - Bezo - Big - bigjohnson4 - Biglad - BioHazard +- BitCoding - Bizzy - bkhorizon - BlackCat0110 @@ -90,17 +115,23 @@ were extracted from old commits): - BlackYoghurt - Bladex - Blaymoira +- Blipi +- bloerwald - blub - BlueSteel +- Blumster - bobaz - bodompelle - bogie - BombermaG +- Bonitas +- Bonny1992 - Boogie - boom - Bootz - Brats - breakerfly +- Brecky - Brian - BroodWyrm - Brueggus @@ -108,58 +139,88 @@ were extracted from old commits): - bufferoverflow - Bulkin - burnham +- Butterfly69 - bytewarrior +- Carbenium +- Carl Hjerpe +- Carlos Vargas - Cass - cca220v - cccyril +- ccrs - CDawg - CeIa +- cemak +- Cepox - Ceris - Cha0S2 +- chadryx - Chaplain - Charlie - Charlie2025 - Chaz Brown - Chesterfield +- Chevron +- ChipLeo - Chipsi - Christyan +- Ciclop - ckegg - Cleave - clement.roussel - click - clotza - Cnillidan +- cocolino - Coldblooded - cookta2012 +- corbi - Corfen +- cr4st - crackm - Craker - CRAZyBUg +- Cristal - Cron - cryingcloud - CrYser +- Crysicle - Curuad - cyberbrest +- Cyberium - Cybrax +- d-sat - D3VIL +- D4R4 +- Daejiv - DaGNU - Dakeyras - Dani +- Daniel M. Weeks - danik +- danlapps - Dark0r +- DarkBrain2580 - darkEvil +- darkman1983 - DarkRabbit - Darkshines - darkstalker - DarkXuan - DasBlub - daveh -- David Klepáček +- David Klepáček +- DDuarte - Deafboy - DearScorpion - death420 +- deathicon - defacer +- Dehravor - deicide +- Dekadence +- delavega +- dele - DemiDroL - Demonx - Den @@ -171,14 +232,20 @@ were extracted from old commits): - derex_tri - Destalker - destros +- devil1234 +- Dietrich - Dimitro - disassebler - Disassembler - Discover - Discovered - DiSlord +- DJScias +- dkmbasura - domingo - DonTomika +- DorianGrey +- Dr-J - dr.skull - dr.tenma - draco @@ -191,6 +258,7 @@ were extracted from old commits): - DrTenma - duckman - durotar +- Dyddye - dythzer - D_Skywalk - E. van Harten @@ -202,43 +270,62 @@ were extracted from old commits): - edrinn - EdwinDW - EIFEL +- Eilo - eL - elecyb - EleGoS +- Ellie - Elminster - Elron - elron103 +- Emo - Emo Norfik - emsy - EnderGT - enjoi - Enril +- Epicurus4 - Epsik +- Ergar - erimioa - Erocoloco - et2012 +- et65 - eumario - evilstar +- ExHunter - Exodius - Exordian +- Expecto - exul182 +- F03SD - F636y623 +- Fabi - False - faq -- faq_ - Farah - faramir118 +- fatalaim - FaTe753 - Feanordev - FearX +- fedehacker - Fest - fgenesis +- FH3095 +- Filip - filip.havlicek +- FireEmerald - fisherman +- Fmut +- Foereaper - Fog - Foks +- Foldor +- Foldy - footman - Forgiven +- Francesco Borzì - Frankir - Frca - fredi @@ -249,67 +336,94 @@ were extracted from old commits): - FrenchW - frozenarmor - FrozenDB +- FrozenSoul +- Frytiks - fukifat - furion - Furion89 - Gacko - gadge +- gaut - ge0rg - gecko32 - Geekotron - Genars - Gendalph - Geodar +- gerripeach - ghost - Gigatotem +- Gigi1237 - gildor - Giuseppe Montesanto - glkrlos - Go6o +- Goatform - GodsdoG +- Golrag - Gomez - Gommes - Google +- Gooyeth +- Goret +- greenbagels - Greymane - GriffonHeart +- Grimton1337 - Grobi +- grsgs - guenex +- Guillaume Belz - gvcoman - GWRde +- gwrde - Gyullo - Gyx - hacknowledge +- hamcake9 +- Hanfblatt - Havenard - Hawthorne - hectolight +- Heihachi - Heisenberg - Helias +- HenryG - hexa- - Hexit - HiZed +- Hobbilis - horn - horogandris - hoshie - HP1 +- Hristo Bogdanov - Hunteee +- HUNTERok - hunuza +- huri - hyriuu - iadus3 -- idostyle@zoit +- iDenyDeX +- idostyle - Ille -- Ille000 +- illusion - imbecile - Imprtat - IncoGnito - Infinity - Insider - insider42 +- Intel +- Intra - irish - Iskander - Itch - j4r0d - Jackpoz +- Jared Jones - Jeniczek +- Jens Bäckman - Jesper Meyer - Jildor - Joeri Thissen @@ -325,10 +439,12 @@ were extracted from old commits): - jorooo - joschiwald - Joshh +- Joshiwald - joshwhedon - jotapdiez - jrkpote - JuliuSZS +- JunkyBulgaria - jurkovic.nikola - Ka0z - Kaelima @@ -339,36 +455,57 @@ were extracted from old commits): - Kandera - KAPATEJIb - Kapoeira +- karn - kaxap - kb_z +- keke222 +- kelsarhu +- kenjiro +- kennylive - KerchumA222 +- kerhong +- Kevin Darcel - Kezo90 - Kiddie - Kierkegaard +- Killyana - KingPin - Kinzcool - Kiper - Kiperr +- Kiritoo - KiriX +- Kirkhammett +- Kittnz - Klaimmore - Koani +- kontownik - Koord - kozelo - Kretol +- krofna +- Krogonos - krz +- Krzysztof Rapacki - Kudlaty - Kuteur - L30m4nc3r - laise - laly +- Lapps +- Lartza - Larva +- Larya - LaserJet - laviniu - Lazzalf - Leak +- leguybrush +- Leonid Logvinov - Liberate - Lightguard - LihO +- LilleCarl - LiMCrosS - linencloth - liszt @@ -377,29 +514,41 @@ were extracted from old commits): - Lopin - Lorac - LordJZ +- Lordron +- LordUsagi - lost-illusion +- Lucas - Lucy +- Luhzinha - Lukaasm - Luniz2k1 - Lutik +- Luzifix - Lynx3d - m.ax +- m7nu3l - maanuel - Machiavelli - MacWarrior - MadJack +- Magnifikator - maikash - make_the_king - Malcrom - manuel - Manuel Carrasco +- ManuFe +- marc0303 +- Marius Ungureanu - Mark07 +- Marosa - Martin Weinelt - MaS0n - Matthew Goff - maxdestroyer - MaXiMiUS - Maxxie +- maxxx - McBitter - McLovin - MeanMachine @@ -410,21 +559,34 @@ were extracted from old commits): - menke - Merlin2010 - MetaphysicalDrama +- Michael +- MidnaAT - miebaik +- Miha Penger +- Mihapro +- mik1893 - Mik43l - mike753 - miranda.conrado +- Miroslav1993 +- Mislav Blažević +- MitchesD - mknjc - mns - Moandor - mobel +- Mogadischu - Molius +- MorganaOP +- Morgoporc - moriquendu - Morpheux - mrbungle - mrquickfx - MrSmite - MrTux +- msoky +- mthsena - Mufik - Muhaha - multiplexer @@ -437,14 +599,22 @@ were extracted from old commits): - Nafsih - Naga - Naicisum +- Naios - nanouniko +- Nate +- natepizzle - Naturamen +- Natureknight +- Nawuko - Nay - Nayre +- Ne3x - NeatElves - Necro - Necroo +- Nefarion - nelegalno +- nelgalno - Nemesis - neo0608 - Neo2003 @@ -455,22 +625,29 @@ were extracted from old commits): - NetSky - neurorulez - neuro_999 +- Nevadas - Nevan - new001 - Nexflame - Nezemnoy +- Nick - nihal +- Nihilianth - nissen - Nivelo - NNN666 +- Noeliel - NoFantasy +- Noffearr - Northstrider - nos4r2zod - Ntsc - NTX - nucleartux - nugu100 +- Numielle - NuRRi +- Nyeriah - Oculus - oc_redfox - Odyssey @@ -479,9 +656,12 @@ were extracted from old commits): - oMadMano - onkelz28 - Opterman +- Orphus - Ottowayne - Ouden +- P-Kito - p.alexej +- p0ody - p0wer - PainKiller - panaut0lordv @@ -496,18 +676,32 @@ were extracted from old commits): - pendragon - Per Wilhelmsen - Pesthuf +- pete318 - Phacops +- Phantons +- phoenixfight - Pitcrawler +- pjasicek - PKX +- Polkic +- Portgas +- Portgas D. Ace +- Praetonus - Prince - PrinceCreed +- profPlum +- projectcoredevs - Proofzor - PSZ +- PuniCZ - QAston - qaywsx +- qsa +- QT - QuaLiT1 - qubix - raczman +- raelik - raftom - RammboNr5 - Ramses_II @@ -517,29 +711,46 @@ were extracted from old commits): - rastikzzz - Rat - raven_coda +- razer025 - rechapa79 - redcore - RedSonja +- Regigicas - reno - retriman - Reve +- RezolveX +- Rhyme +- Ric101 - Riccardo +- Ricko92 - riddick - rilex - rj686 +- robinsch +- roc13x - Rochet2 +- rocky517 - rockzOr +- rocverde - Rognar +- Rohlik - Roland +- Rolando - runningnak3d +- Rushor - rvnth - Saeba - Santiago +- Sar777 - Sarjuuk - Sawiner - scarymovie87 - Scazzato88 -- Sebastián Orellana +- Schmoozerd +- seaofgreen +- Sebastián Orellana +- secharles - seirge - Seizerkiller - Seline @@ -548,6 +759,7 @@ were extracted from old commits): - SeT - Sethoso - SeTM +- SgT-Fatality - Shauren - shax - Shendor @@ -561,6 +773,7 @@ were extracted from old commits): - simak - simon - SimonDMII +- sirikfoll - Sisif - Skystar - SLG @@ -570,24 +783,28 @@ were extracted from old commits): - Socolin - sohrab - sombre88 +- sonic3000 - Sony - Sorken - Sorya - Souler - SoulForge +- soulfrost - Sovak - sparc - spgm +- Splash - Splinter - Spp +- springfieldking - srounet - Stalker-Riddick -- Stalker_Riddick - StarJoker - Stefo - stfx - Stokrotka - StormByte +- streetart - Stryker - Studioworks - subhuman_bob @@ -595,11 +812,15 @@ were extracted from old commits): - Sundark - sunwell - SupaBad +- suranex - svannon +- svetilo12 - Syntec - SyRiOCoP +- Takenbacon - Taliesin - Tanatos +- Tanner Carter - Tartalo - Taser - Tassader @@ -613,9 +834,12 @@ were extracted from old commits): - teyrnon - tharaca - The Game +- The-Legend +- thebillkidy - Them - Themris - thenecromancer +- therzok - thesensei - The_Game_Master - thmarth @@ -627,14 +851,18 @@ were extracted from old commits): - Thyros - tibbi - Tidus +- timh52280 - timmit - Tiretunderl +- tkrokli - tlexii - tobmaps - toilet1 - Tomas +- Tomatoes - Tome - Tommassino +- tomrus88 - TOM_RUS - toshik - totoro @@ -643,9 +871,11 @@ were extracted from old commits): - tREAk - trickerer - Triply +- Trisjdc - Trista - Trogvar - Trojan +- Trond B Krokli - Troy - TrullyONE - Turk3y @@ -654,14 +884,20 @@ were extracted from old commits): - Tux`Volant - tvaroh - Typhoon +- tyraela +- Ukulutl - unholy +- Unholychick - unknown +- untaught - Uruviel +- Vadim - vagoth - Valcorb - Various - Vaughner - vcrx6 +- velinath - Velorien - Venugh - Veras @@ -674,16 +910,22 @@ were extracted from old commits): - VladimirMangos - Vladmimír Lipták - vladonix +- Vojtěch Boček - w12x - w1sht0l1v3 +- Walkum - WarHead +- warmech - Warpten - warriorpoetex +- Wayt - weclub - Wilds - wilibald09 - Willian Krueger +- win - Win32 +- wintergreen77 - WishToDie - Wispeckt - Wizz @@ -691,26 +933,45 @@ were extracted from old commits): - Wormheart - wowgargamel - Wowka321 +- wowpsp +- Wulfr - Wyk3d +- WyldePointer - X-Savior - Xanadu - Xanvial +- Xanviall - Xees - Xeptor - XEQT +- xerkoss +- XFurry +- Xiledria - xILOSWag +- xjose93 - xK1 - Xlybriem +- xomachine - XTElite1 +- xter - XTZGZoReX - yad02 - Yaki Khadafi - yavi - Yelvann +- yesitsme +- z0ldrax +- Zabustak +- ZackTsuna +- Zakamurite +- Zaphod - Zcuron +- Zedron +- zengwf - Zerg2000 - zergtmn - zhanhang03 +- Zharvek - zhenya - zoidmann - zori @@ -718,5 +979,7 @@ were extracted from old commits): - zthoreen - zwerg - zxbiohazardzx +- [M]axx - _manuel_ - `win +- Дмитрий From d123c811623fcedcf125f56101b6aea773f460e0 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sat, 13 Jun 2015 12:27:19 +0200 Subject: [PATCH 11/13] Core/Texts: Fix race conditions in CreatureTextMgr repeat group Fix race conditions in CreatureTextMgr repeat group happening with MapThreads > 1 reported by helgrind by moving Creature-GUID-base data from CreatureTextMgr to Creature. Issues added in bbf86641a1c35fcc66de30d7a79175c31effde88 --- .../game/Entities/Creature/Creature.cpp | 26 +++++++++++++++++++ src/server/game/Entities/Creature/Creature.h | 10 +++++++ src/server/game/Texts/CreatureTextMgr.cpp | 26 +++---------------- src/server/game/Texts/CreatureTextMgr.h | 6 ----- 4 files changed, 40 insertions(+), 28 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 3d11965ac6e..809c76c260a 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2635,3 +2635,29 @@ void Creature::StartPickPocketRefillTimer() _pickpocketLootRestore = time(NULL) + sWorld->getIntConfig(CONFIG_CREATURE_PICKPOCKET_REFILL); } +void Creature::SetTextRepeatId(uint8 textGroup, uint8 id) +{ + CreatureTextRepeatIds& repeats = m_textRepeat[textGroup]; + if (std::find(repeats.begin(), repeats.end(), id) == repeats.end()) + repeats.push_back(id); + else + TC_LOG_ERROR("sql.sql", "CreatureTextMgr: TextGroup %u for Creature(%s) GuidLow %u Entry %u, id %u already added", uint32(textGroup), GetName().c_str(), GetGUIDLow(), GetEntry(), uint32(id)); +} + +CreatureTextRepeatIds Creature::GetTextRepeatGroup(uint8 textGroup) +{ + CreatureTextRepeatIds ids; + + CreatureTextRepeatGroup::const_iterator groupItr = m_textRepeat.find(textGroup); + if (groupItr != m_textRepeat.end()) + ids = groupItr->second; + + return ids; +} + +void Creature::ClearTextRepeatGroup(uint8 textGroup) +{ + CreatureTextRepeatGroup::iterator groupItr = m_textRepeat.find(textGroup); + if (groupItr != m_textRepeat.end()) + groupItr->second.clear(); +} diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 764a57d4cef..585bc137e0b 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -409,6 +409,10 @@ struct TrainerSpellData #define MAX_VENDOR_ITEMS 150 // Limitation in 3.x.x item count in SMSG_LIST_INVENTORY +//used for handling non-repeatable random texts +typedef std::vector CreatureTextRepeatIds; +typedef std::unordered_map CreatureTextRepeatGroup; + class Creature : public Unit, public GridObject, public MapObject { public: @@ -656,6 +660,10 @@ class Creature : public Unit, public GridObject, public MapObject void FocusTarget(Spell const* focusSpell, WorldObject const* target); void ReleaseFocus(Spell const* focusSpell); + CreatureTextRepeatIds GetTextRepeatGroup(uint8 textGroup); + void SetTextRepeatId(uint8 textGroup, uint8 id); + void ClearTextRepeatGroup(uint8 textGroup); + protected: bool CreateFromProto(uint32 guidlow, uint32 entry, CreatureData const* data = nullptr, uint32 vehId = 0); bool InitEntry(uint32 entry, CreatureData const* data = nullptr); @@ -720,6 +728,8 @@ class Creature : public Unit, public GridObject, public MapObject bool TriggerJustRespawned; Spell const* _focusSpell; ///> Locks the target during spell cast for proper facing + + CreatureTextRepeatGroup m_textRepeat; }; class AssistDelayEvent : public BasicEvent diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp index 5fbc4b8ae1e..f9ccd2efd16 100644 --- a/src/server/game/Texts/CreatureTextMgr.cpp +++ b/src/server/game/Texts/CreatureTextMgr.cpp @@ -77,7 +77,7 @@ void CreatureTextMgr::LoadCreatureTexts() uint32 oldMSTime = getMSTime(); mTextMap.clear(); // for reload case - mTextRepeatMap.clear(); //reset all currently used temp texts + //all currently used temp texts are NOT reset PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_CREATURE_TEXT); PreparedQueryResult result = WorldDatabase.Query(stmt); @@ -224,13 +224,7 @@ uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, WorldObject if (tempGroup.empty()) { - CreatureTextRepeatMap::iterator mapItr = mTextRepeatMap.find(source->GetGUID()); - if (mapItr != mTextRepeatMap.end()) - { - CreatureTextRepeatGroup::iterator groupItr = mapItr->second.find(textGroup); - groupItr->second.clear(); - } - + source->ClearTextRepeatGroup(textGroup); tempGroup = textGroupContainer; } @@ -426,26 +420,14 @@ void CreatureTextMgr::SetRepeatId(Creature* source, uint8 textGroup, uint8 id) if (!source) return; - CreatureTextRepeatIds& repeats = mTextRepeatMap[source->GetGUID()][textGroup]; - if (std::find(repeats.begin(), repeats.end(), id) == repeats.end()) - repeats.push_back(id); - else - TC_LOG_ERROR("sql.sql", "CreatureTextMgr: TextGroup %u for Creature(%s) GuidLow %u Entry %u, id %u already added", uint32(textGroup), source->GetName().c_str(), source->GetGUIDLow(), source->GetEntry(), uint32(id)); + source->SetTextRepeatId(textGroup, id); } CreatureTextRepeatIds CreatureTextMgr::GetRepeatGroup(Creature* source, uint8 textGroup) { ASSERT(source);//should never happen - CreatureTextRepeatIds ids; - CreatureTextRepeatMap::const_iterator mapItr = mTextRepeatMap.find(source->GetGUID()); - if (mapItr != mTextRepeatMap.end()) - { - CreatureTextRepeatGroup::const_iterator groupItr = (*mapItr).second.find(textGroup); - if (groupItr != mapItr->second.end()) - ids = groupItr->second; - } - return ids; + return source->GetTextRepeatGroup(textGroup); } bool CreatureTextMgr::TextExist(uint32 sourceEntry, uint8 textGroup) diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h index 6ee1e82ce66..237aedd49d0 100644 --- a/src/server/game/Texts/CreatureTextMgr.h +++ b/src/server/game/Texts/CreatureTextMgr.h @@ -75,11 +75,6 @@ typedef std::unordered_map CreatureTextMap; // a typedef std::map LocaleCreatureTextMap; -//used for handling non-repeatable random texts -typedef std::vector CreatureTextRepeatIds; -typedef std::unordered_map CreatureTextRepeatGroup; -typedef std::unordered_map CreatureTextRepeatMap;//guid based - class CreatureTextMgr { private: @@ -115,7 +110,6 @@ class CreatureTextMgr float GetRangeForChatType(ChatMsg msgType) const; CreatureTextMap mTextMap; - CreatureTextRepeatMap mTextRepeatMap; LocaleCreatureTextMap mLocaleTextMap; }; From 0d66b1917e53b38f5a0b6ee44c59e76315405bd6 Mon Sep 17 00:00:00 2001 From: Kittnz Date: Sat, 13 Jun 2015 15:29:10 +0200 Subject: [PATCH 12/13] DB/Path: Silver Covenant Horseman in Crystalsong Forest/Windrunner's Overlook --- sql/updates/world/2015_06_13_00_world.sql | 112 ++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sql/updates/world/2015_06_13_00_world.sql diff --git a/sql/updates/world/2015_06_13_00_world.sql b/sql/updates/world/2015_06_13_00_world.sql new file mode 100644 index 00000000000..b360ce4e3bc --- /dev/null +++ b/sql/updates/world/2015_06_13_00_world.sql @@ -0,0 +1,112 @@ +DELETE FROM `creature_formations` WHERE `leaderGUID`=100887; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(100887, 100887, 0, 0, 1), +(100887, 100888, 2, 90, 2); + +-- Pathing for Silver Covenant Horseman Entry: 30263 'TDB FORMAT' +SET @NPC := 100887; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5067.709,`position_y`=-623.0535,`position_z`=216.2992 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,2410,0,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,5067.709,-623.0535,216.2992,0,0,0,0,100,0), -- 20:33:40 +(@PATH,2,5064.371,-619.6366,217.7106,0,0,0,0,100,0), -- 20:33:46 +(@PATH,3,5064.18,-607.0121,219.5005,0,0,0,0,100,0), -- 20:33:50 +(@PATH,4,5065.22,-602.5242,220.0495,0,0,0,0,100,0), -- 20:33:56 +(@PATH,5,5064.4,-593.0133,220.2778,0,0,0,0,100,0), -- 20:33:59 +(@PATH,6,5062.952,-571.7712,220.2518,0,0,0,0,100,0), -- 20:34:08 +(@PATH,7,5062.632,-572.1309,220.0737,0,0,0,0,100,0), -- 20:34:17 +(@PATH,8,5062.766,-572.0648,220.3171,0,0,0,0,100,0), -- 20:34:24 +(@PATH,9,5064.708,-593.1912,220.1846,0,0,0,0,100,0), -- 20:34:32 +(@PATH,10,5063.012,-612.4286,219.0811,0,0,0,0,100,0), -- 20:34:36 +(@PATH,11,5066.325,-621.582,216.7641,0,0,0,0,100,0), -- 20:34:42 +(@PATH,12,5067.825,-623.082,216.2641,0,0,0,0,100,0); -- 20:34:42 +-- 0x1C392447601D8DC000000C000077FF13 .go 5067.709 -623.0535 216.2992 + +DELETE FROM `creature_formations` WHERE `leaderGUID`=100898; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(100898, 100898, 0, 0, 1), +(100898, 100899, 2, 90, 2); + +-- Pathing for Silver Covenant Horseman Entry: 30263 'TDB FORMAT' +SET @NPC := 100898; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5076.637,`position_y`=-639.3936,`position_z`=210.1455 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,2410,0,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,5076.637,-639.3936,210.1455,0,0,0,0,100,0), -- 11:59:49 +(@PATH,2,5079.917,-659.7036,200.968,0,0,0,0,100,0), -- 12:00:00 +(@PATH,3,5079.445,-679.8152,193.9069,0,0,0,0,100,0), -- 12:00:08 +(@PATH,4,5081.471,-688.5268,190.5579,0,0,0,0,100,0), -- 12:00:17 +(@PATH,5,5091.792,-703.2252,184.7582,0,0,0,0,100,0), -- 12:00:22 +(@PATH,6,5099.77,-708.3243,181.946,0,0,0,0,100,0), -- 12:00:29 +(@PATH,7,5094.969,-706.1178,183.7631,0,0,0,0,100,0), -- 12:00:34 +(@PATH,8,5082.577,-691.327,189.5212,0,0,0,0,100,0), -- 12:00:36 +(@PATH,9,5080.255,-683.3011,192.4193,0,0,0,0,100,0), -- 12:00:45 +(@PATH,10,5080.166,-662.0288,199.9953,0,0,0,0,100,0); -- 12:00:49 +-- 0x1C392447601D8DC000000C000077FF7B .go 5076.637 -639.3936 210.1455 + +DELETE FROM `creature_formations` WHERE `leaderGUID`=100889; +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(100889, 100889, 0, 0, 1), +(100889, 100890, 2, 90, 2); + +-- Pathing for Silver Covenant Horseman Entry: 30263 'TDB FORMAT' +SET @NPC := 100889; +SET @PATH := @NPC * 10; +UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5060.026,`position_y`=-538.408,`position_z`=220.0076 WHERE `guid`=@NPC; +DELETE FROM `creature_addon` WHERE `guid`=@NPC; +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES (@NPC,@PATH,2410,0,1,0, ''); +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,5060.026,-538.408,220.0076,0,0,0,0,100,0), -- 12:00:56 +(@PATH,2,5059.559,-537.8341,220.0076,2.070161,0,0,0,100,0), -- 12:00:57 +(@PATH,3,5058.987,-537.1638,220.0076,0,0,0,0,100,0), -- 12:00:57 +(@PATH,4,5057.041,-534.8303,219.9673,0,0,0,0,100,0), -- 12:00:58 +(@PATH,5,5055.152,-532.5667,219.8454,0,0,0,0,100,0), -- 12:00:59 +(@PATH,6,5053.768,-528.5505,219.8488,0,0,0,0,100,0), -- 12:01:01 +(@PATH,7,5054.296,-525.5225,219.4218,0,0,0,0,100,0), -- 12:01:02 +(@PATH,8,5055.446,-521.4495,219.3181,0,0,0,0,100,0), -- 12:01:03 +(@PATH,9,5057.875,-519.7457,218.8674,0,0,0,0,100,0), -- 12:01:04 +(@PATH,10,5059.473,-518.8138,218.6286,0,0,0,0,100,0), -- 12:01:05 +(@PATH,11,5061.776,-517.084,217.916,0,0,0,0,100,0), -- 12:01:07 +(@PATH,12,5064.104,-515.4176,217.0972,0,0,0,0,100,0), -- 12:01:08 +(@PATH,13,5065.635,-514.3111,215.9073,0,0,0,0,100,0), -- 12:01:09 +(@PATH,14,5068.912,-512.2123,214.4262,0,0,0,0,100,0), -- 12:01:10 +(@PATH,15,5070.144,-511.1482,213.5484,0,0,0,0,100,0), -- 12:01:12 +(@PATH,16,5073.149,-509.0605,212.3315,0,0,0,0,100,0), -- 12:01:13 +(@PATH,17,5074.678,-507.9399,211.4917,0,0,0,0,100,0), -- 12:01:14 +(@PATH,18,5078.117,-505.9191,209.5764,0,0,0,0,100,0), -- 12:01:15 +(@PATH,19,5079.734,-505.1035,208.2059,0,0,0,0,100,0), -- 12:01:16 +(@PATH,20,5082.03,-503.8705,206.9615,0,0,0,0,100,0), -- 12:01:18 +(@PATH,21,5085.192,-502.0856,205.0636,0,0,0,0,100,0), -- 12:01:19 +(@PATH,22,5087.563,-500.825,203.5342,0,0,0,0,100,0), -- 12:01:20 +(@PATH,23,5088.891,-500.0888,202.8326,0,0,0,0,100,0), -- 12:01:21 +(@PATH,24,5090.603,-499.18,201.682,0,0,0,0,100,0), -- 12:01:23 +(@PATH,25,5090.519,-499.2244,201.7328,-2.536886,0,0,0,100,0), -- 12:01:23 +(@PATH,26,5089.623,-499.7004,202.2772,0,0,0,0,100,0), -- 12:01:24 +(@PATH,27,5088.674,-500.0867,202.9039,0,0,0,0,100,0), -- 12:01:25 +(@PATH,28,5085.627,-501.6739,204.7783,0,0,0,0,100,0), -- 12:01:26 +(@PATH,29,5083.288,-502.9158,206.4351,0,0,0,0,100,0), -- 12:01:27 +(@PATH,30,5081.008,-504.1263,207.5976,0,0,0,0,100,0), -- 12:01:29 +(@PATH,31,5078.845,-505.3429,208.9937,0,0,0,0,100,0), -- 12:01:30 +(@PATH,32,5076.814,-506.5785,210.2388,0,0,0,0,100,0), -- 12:01:31 +(@PATH,33,5073.882,-508.545,211.8869,0,0,0,0,100,0), -- 12:01:32 +(@PATH,34,5072.41,-509.5816,212.7734,0,0,0,0,100,0), -- 12:01:33 +(@PATH,35,5069.576,-511.4619,214.2128,0,0,0,0,100,0), -- 12:01:35 +(@PATH,36,5067.752,-512.8409,215.1404,0,0,0,0,100,0), -- 12:01:36 +(@PATH,37,5064.977,-514.6848,216.6034,0,0,0,0,100,0), -- 12:01:37 +(@PATH,38,5063.138,-516.0745,217.341,0,0,0,0,100,0), -- 12:01:38 +(@PATH,39,5060.213,-518.0273,218.5601,0,0,0,0,100,0), -- 12:01:40 +(@PATH,40,5056.744,-520.0189,219.1413,0,0,0,0,100,0), -- 12:01:41 +(@PATH,41,5054.522,-524.2232,219.3947,0,0,0,0,100,0), -- 12:01:42 +(@PATH,42,5053.996,-527.2253,219.6623,0,0,0,0,100,0), -- 12:01:43 +(@PATH,43,5053.982,-531.1642,219.9596,0,0,0,0,100,0), -- 12:01:44 +(@PATH,44,5056.037,-533.6272,219.9433,0,0,0,0,100,0), -- 12:01:46 +(@PATH,45,5058.094,-536.0921,219.9923,0,0,0,0,100,0), -- 12:01:47 +(@PATH,46,5060.026,-538.408,220.0076,0,0,0,0,100,0); -- 12:01:48 +-- 0x1C392447601D8DC000000C0000F7FF07 .go 5060.026 -538.408 220.0076 From 718c238524e5d9bc4d43c56c4870c78af794f520 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sat, 13 Jun 2015 19:16:10 +0200 Subject: [PATCH 13/13] Dep/libmpq: Update libmpq to https://github.com/mbroemme/libmpq/commit/d59b4cf1d107b5f6a0f67d6bc545c6c6ebef3d74 Update libmpq to https://github.com/mbroemme/libmpq/commit/d59b4cf1d107b5f6a0f67d6bc545c6c6ebef3d74 and add some custom change to fix additional build warnings, diff is included. Extracting dbcs, maps, vmaps and mmaps is not required. --- dep/PackageList.txt | 4 +- dep/libmpq/AUTHORS | 4 +- dep/libmpq/FAQ | 2 +- dep/libmpq/README | 6 +- dep/libmpq/THANKS | 2 +- dep/libmpq/bindings/d/mpq.d | 12 +- dep/libmpq/bindings/python/mpq.py | 12 +- dep/libmpq/configure.ac | 3 +- dep/libmpq/debian/control | 2 +- dep/libmpq/debian/copyright | 8 +- dep/libmpq/doc/man1/libmpq-config.1 | 8 +- dep/libmpq/doc/man3/Makefile.am | 10 +- dep/libmpq/doc/man3/libmpq.3 | 32 ++--- dep/libmpq/doc/man3/libmpq__archive_close.3 | 12 +- dep/libmpq/doc/man3/libmpq__archive_files.3 | 8 +- dep/libmpq/doc/man3/libmpq__archive_offset.3 | 8 +- dep/libmpq/doc/man3/libmpq__archive_open.3 | 12 +- ...d_size.3 => libmpq__archive_size_packed.3} | 18 +-- ...size.3 => libmpq__archive_size_unpacked.3} | 18 +-- dep/libmpq/doc/man3/libmpq__archive_version.3 | 8 +- .../doc/man3/libmpq__block_close_offset.3 | 8 +- .../doc/man3/libmpq__block_open_offset.3 | 8 +- dep/libmpq/doc/man3/libmpq__block_read.3 | 8 +- ...d_size.3 => libmpq__block_size_unpacked.3} | 18 +-- dep/libmpq/doc/man3/libmpq__file_blocks.3 | 8 +- dep/libmpq/doc/man3/libmpq__file_compressed.3 | 8 +- dep/libmpq/doc/man3/libmpq__file_encrypted.3 | 8 +- dep/libmpq/doc/man3/libmpq__file_imploded.3 | 8 +- dep/libmpq/doc/man3/libmpq__file_number.3 | 8 +- dep/libmpq/doc/man3/libmpq__file_offset.3 | 8 +- dep/libmpq/doc/man3/libmpq__file_read.3 | 8 +- ...cked_size.3 => libmpq__file_size_packed.3} | 18 +-- ...ed_size.3 => libmpq__file_size_unpacked.3} | 18 +-- dep/libmpq/doc/man3/libmpq__strerror.3 | 8 +- dep/libmpq/doc/man3/libmpq__version.3 | 8 +- dep/libmpq/libmpq-hotfix1.diff | 38 ++++++ dep/libmpq/libmpq/Makefile.am | 2 +- dep/libmpq/libmpq/common.c | 4 +- dep/libmpq/libmpq/common.h | 2 +- dep/libmpq/libmpq/explode.c | 2 +- dep/libmpq/libmpq/explode.h | 2 +- dep/libmpq/libmpq/extract.c | 3 +- dep/libmpq/libmpq/extract.h | 2 +- dep/libmpq/libmpq/huffman.c | 2 +- dep/libmpq/libmpq/huffman.h | 2 +- dep/libmpq/libmpq/mpq-internal.h | 2 +- dep/libmpq/libmpq/mpq.c | 119 ++++++++++-------- dep/libmpq/libmpq/mpq.h | 14 +-- dep/libmpq/libmpq/pack_begin.h | 2 +- dep/libmpq/libmpq/pack_end.h | 2 +- dep/libmpq/libmpq/platform.h | 2 +- dep/libmpq/libmpq/wave.c | 2 +- dep/libmpq/libmpq/wave.h | 2 +- dep/libmpq/tools/crypt_buf_gen.c | 4 +- src/tools/map_extractor/mpq_libmpq.cpp | 2 +- src/tools/map_extractor/mpq_libmpq04.h | 2 +- src/tools/vmap4_extractor/mpq_libmpq.cpp | 2 +- src/tools/vmap4_extractor/mpq_libmpq04.h | 2 +- 58 files changed, 302 insertions(+), 253 deletions(-) rename dep/libmpq/doc/man3/{libmpq__archive_packed_size.3 => libmpq__archive_size_packed.3} (80%) rename dep/libmpq/doc/man3/{libmpq__archive_unpacked_size.3 => libmpq__archive_size_unpacked.3} (80%) rename dep/libmpq/doc/man3/{libmpq__block_unpacked_size.3 => libmpq__block_size_unpacked.3} (84%) rename dep/libmpq/doc/man3/{libmpq__file_packed_size.3 => libmpq__file_size_packed.3} (82%) rename dep/libmpq/doc/man3/{libmpq__file_unpacked_size.3 => libmpq__file_size_unpacked.3} (82%) create mode 100644 dep/libmpq/libmpq-hotfix1.diff diff --git a/dep/PackageList.txt b/dep/PackageList.txt index 9c5e66a955e..704fab5c168 100644 --- a/dep/PackageList.txt +++ b/dep/PackageList.txt @@ -25,8 +25,8 @@ jemalloc (a general-purpose scalable concurrent malloc-implementation) Version: 3.6.0 libMPQ (a library for reading MPQ files) - https://libmpq.org/ - Version: 1.0.4 + https://github.com/mbroemme/libmpq/ + Version: d59b4cf1d107b5f6a0f67d6bc545c6c6ebef3d74 SFMT (SIMD-oriented Fast Mersenne Twister) Based on http://agner.org/random/ diff --git a/dep/libmpq/AUTHORS b/dep/libmpq/AUTHORS index 3d7da7bec9a..daac7662eee 100644 --- a/dep/libmpq/AUTHORS +++ b/dep/libmpq/AUTHORS @@ -1,10 +1,10 @@ Project Initiator: - * Maik Broemme + * Maik Broemme Developers: - * Maik Broemme + * Maik Broemme * Tilman Sauerbeck * Forrest Voight * Georg Lukas diff --git a/dep/libmpq/FAQ b/dep/libmpq/FAQ index 52ca9f3c705..61cad93b6fc 100644 --- a/dep/libmpq/FAQ +++ b/dep/libmpq/FAQ @@ -57,7 +57,7 @@ A: Of course :) The example below takes first parameter as mpq archive libmpq__archive_open(&mpq_archive, argv[1], -1); /* get size of first file (0) and malloc output buffer. */ - libmpq__file_unpacked_size(mpq_archive, 0, &out_size); + libmpq__file_size_unpacked(mpq_archive, 0, &out_size); out_buf = malloc(out_size); /* read, decrypt and unpack file to output buffer. */ diff --git a/dep/libmpq/README b/dep/libmpq/README index 3f1bd3a1e9f..9d3f80e01c6 100644 --- a/dep/libmpq/README +++ b/dep/libmpq/README @@ -26,9 +26,9 @@ Reporting Bugs Bug reports for 'libmpq' can be send to me directly. - * Maik Broemme + * Maik Broemme Enjoy! -Maik Broemme -http://www.babelize.org/ +Maik Broemme +http://libmpq.org/ diff --git a/dep/libmpq/THANKS b/dep/libmpq/THANKS index 42da1235476..384e9f1f9e6 100644 --- a/dep/libmpq/THANKS +++ b/dep/libmpq/THANKS @@ -1,4 +1,4 @@ -'libmpq' was originaly created by Maik Broemme +'libmpq' was originaly created by Maik Broemme and i want to thank some people which helped by supplying knowledge, code or something else. diff --git a/dep/libmpq/bindings/d/mpq.d b/dep/libmpq/bindings/d/mpq.d index d72c2d2a986..cb3cf100070 100644 --- a/dep/libmpq/bindings/d/mpq.d +++ b/dep/libmpq/bindings/d/mpq.d @@ -1,7 +1,7 @@ /* * mpq.d -- D programming language module for libmpq * - * Copyright (c) 2008 Georg Lukas + * Copyright (c) 2008-2011 Georg Lukas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -58,15 +58,15 @@ char *libmpq__version(); /* libmpq__generic mpq archive information. */ int libmpq__archive_open(mpq_archive_s **mpq_archive, char *mpq_filename, off_t archive_offset); int libmpq__archive_close(mpq_archive_s *mpq_archive); -int libmpq__archive_packed_size(mpq_archive_s *mpq_archive, off_t *packed_size); -int libmpq__archive_unpacked_size(mpq_archive_s *mpq_archive, off_t *unpacked_size); +int libmpq__archive_size_packed(mpq_archive_s *mpq_archive, off_t *packed_size); +int libmpq__archive_size_unpacked(mpq_archive_s *mpq_archive, off_t *unpacked_size); int libmpq__archive_offset(mpq_archive_s *mpq_archive, off_t *offset); int libmpq__archive_version(mpq_archive_s *mpq_archive, uint *version_); int libmpq__archive_files(mpq_archive_s *mpq_archive, uint *files); /* libmpq__generic file processing functions. */ -int libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint file_number, off_t *packed_size); -int libmpq__file_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, off_t *unpacked_size); +int libmpq__file_size_packed(mpq_archive_s *mpq_archive, uint file_number, off_t *packed_size); +int libmpq__file_size_unpacked(mpq_archive_s *mpq_archive, uint file_number, off_t *unpacked_size); int libmpq__file_offset(mpq_archive_s *mpq_archive, uint file_number, off_t *offset); int libmpq__file_blocks(mpq_archive_s *mpq_archive, uint file_number, uint *blocks); int libmpq__file_encrypted(mpq_archive_s *mpq_archive, uint file_number, uint *encrypted); @@ -78,7 +78,7 @@ int libmpq__file_read(mpq_archive_s *mpq_archive, uint file_number, ubyte *out_b /* libmpq__generic block processing functions. */ int libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint file_number); int libmpq__block_close_offset(mpq_archive_s *mpq_archive, uint file_number); -int libmpq__block_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, uint block_number, off_t *unpacked_size); +int libmpq__block_size_unpacked(mpq_archive_s *mpq_archive, uint file_number, uint block_number, off_t *unpacked_size); int libmpq__block_read(mpq_archive_s *mpq_archive, uint file_number, uint block_number, ubyte *out_buf, off_t out_size, off_t *transferred); } diff --git a/dep/libmpq/bindings/python/mpq.py b/dep/libmpq/bindings/python/mpq.py index cf6ecaae800..0f4ca37cfba 100644 --- a/dep/libmpq/bindings/python/mpq.py +++ b/dep/libmpq/bindings/python/mpq.py @@ -50,14 +50,14 @@ libmpq.libmpq__version.restype = ctypes.c_char_p libmpq.libmpq__archive_open.errcheck = check_error libmpq.libmpq__archive_close.errcheck = check_error -libmpq.libmpq__archive_packed_size.errcheck = check_error -libmpq.libmpq__archive_unpacked_size.errcheck = check_error +libmpq.libmpq__archive_size_packed.errcheck = check_error +libmpq.libmpq__archive_size_unpacked.errcheck = check_error libmpq.libmpq__archive_offset.errcheck = check_error libmpq.libmpq__archive_version.errcheck = check_error libmpq.libmpq__archive_files.errcheck = check_error -libmpq.libmpq__file_packed_size.errcheck = check_error -libmpq.libmpq__file_unpacked_size.errcheck = check_error +libmpq.libmpq__file_size_packed.errcheck = check_error +libmpq.libmpq__file_size_unpacked.errcheck = check_error libmpq.libmpq__file_offset.errcheck = check_error libmpq.libmpq__file_blocks.errcheck = check_error libmpq.libmpq__file_encrypted.errcheck = check_error @@ -68,7 +68,7 @@ libmpq.libmpq__file_read.errcheck = check_error libmpq.libmpq__block_open_offset.errcheck = check_error libmpq.libmpq__block_close_offset.errcheck = check_error -libmpq.libmpq__block_unpacked_size.errcheck = check_error +libmpq.libmpq__block_size_unpacked.errcheck = check_error libmpq.libmpq__block_read.errcheck = check_error __version__ = libmpq.libmpq__version() @@ -112,7 +112,7 @@ class Reader(object): def _read_block(self, ctypes=ctypes, libmpq=libmpq): block_size = ctypes.c_uint64() - libmpq.libmpq__block_unpacked_size(self._file._archive._mpq, + libmpq.libmpq__block_size_unpacked(self._file._archive._mpq, self._file.number, self._cur_block, ctypes.byref(block_size)) block_data = ctypes.create_string_buffer(block_size.value) libmpq.libmpq__block_read(self._file._archive._mpq, diff --git a/dep/libmpq/configure.ac b/dep/libmpq/configure.ac index d274eab07c6..ce5f90016da 100644 --- a/dep/libmpq/configure.ac +++ b/dep/libmpq/configure.ac @@ -1,5 +1,6 @@ # the autoconf initilization. -AC_INIT(libmpq, 0.4.2, [mbroemme@plusserver.de], [libmpq]) +AC_INIT(libmpq, 0.4.2, [mbroemme@libmpq.org], [libmpq]) +AC_SUBST(LIBMPQ_ABI, [1:0:0]) # detect the canonical host and target build environment. AC_CANONICAL_SYSTEM diff --git a/dep/libmpq/debian/control b/dep/libmpq/debian/control index f35bb060015..b25a3a36c28 100644 --- a/dep/libmpq/debian/control +++ b/dep/libmpq/debian/control @@ -4,7 +4,7 @@ Maintainer: Georg Lukas Build-Depends: debhelper (>= 7), autotools-dev, libbz2-dev Standards-Version: 3.7.3 Section: libs -Homepage: https://libmpq.org/ +Homepage: http://libmpq.org/ Package: libmpq-dev Section: libdevel diff --git a/dep/libmpq/debian/copyright b/dep/libmpq/debian/copyright index f014cf14de7..5a86a7f1157 100644 --- a/dep/libmpq/debian/copyright +++ b/dep/libmpq/debian/copyright @@ -1,15 +1,15 @@ This package was debianized by Georg Lukas on Fri, 04 Jul 2008 18:17:08 +0200. -It was downloaded from +It was downloaded from Upstream Author: - Maik Broemme + Maik Broemme Copyright: - Copyright (C) 2008 Maik Broemme + Copyright (C) 2003-2011 Maik Broemme License: @@ -19,5 +19,5 @@ License: (at your option) any later version. -The Debian packaging is (C) 2008, Georg Lukas and +The Debian packaging is (C) 2008-2011, Georg Lukas and is licensed under the GPL, see `/usr/share/common-licenses/GPL'. diff --git a/dep/libmpq/doc/man1/libmpq-config.1 b/dep/libmpq/doc/man1/libmpq-config.1 index c025f5ce4f4..01caf2ff664 100644 --- a/dep/libmpq/doc/man1/libmpq-config.1 +++ b/dep/libmpq/doc/man1/libmpq-config.1 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 1 2008-02-10 "The MoPaQ archive library" +.TH libmpq 1 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq-config \- script to get information about the installed version of libmpq. .SH SYNOPSIS @@ -63,7 +63,7 @@ Instead of using this configuration script you should better use the pkg-config .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/Makefile.am b/dep/libmpq/doc/man3/Makefile.am index cad3d865dc1..443df545c14 100644 --- a/dep/libmpq/doc/man3/Makefile.am +++ b/dep/libmpq/doc/man3/Makefile.am @@ -11,21 +11,21 @@ man_MANS = \ libmpq__archive_files.3 \ libmpq__archive_offset.3 \ libmpq__archive_open.3 \ - libmpq__archive_packed_size.3 \ - libmpq__archive_unpacked_size.3 \ + libmpq__archive_size_packed.3 \ + libmpq__archive_size_unpacked.3 \ libmpq__archive_version.3 \ libmpq__block_close_offset.3 \ libmpq__block_open_offset.3 \ libmpq__block_read.3 \ - libmpq__block_unpacked_size.3 \ + libmpq__block_size_unpacked.3 \ libmpq__file_blocks.3 \ libmpq__file_compressed.3 \ libmpq__file_encrypted.3 \ libmpq__file_imploded.3 \ libmpq__file_number.3 \ libmpq__file_offset.3 \ - libmpq__file_packed_size.3 \ libmpq__file_read.3 \ - libmpq__file_unpacked_size.3 \ + libmpq__file_size_packed.3 \ + libmpq__file_size_unpacked.3 \ libmpq__strerror.3 \ libmpq__version.3 diff --git a/dep/libmpq/doc/man3/libmpq.3 b/dep/libmpq/doc/man3/libmpq.3 index 768dab0a712..acea1bcef2b 100644 --- a/dep/libmpq/doc/man3/libmpq.3 +++ b/dep/libmpq/doc/man3/libmpq.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-04-29 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -41,12 +41,12 @@ libmpq \- cross-platform C library for manipulating mpq archives. .BI " mpq_archive_s *" "mpq_archive" .BI ");" .sp -.BI "int32_t libmpq__archive_packed_size(" +.BI "int32_t libmpq__archive_size_packed(" .BI " mpq_archive_s *" "mpq_archive", .BI " off_t *" "packed_size" .BI ");" .sp -.BI "int32_t libmpq__archive_unpacked_size(" +.BI "int32_t libmpq__archive_size_unpacked(" .BI " mpq_archive_s *" "mpq_archive", .BI " off_t *" "unpacked_size" .BI ");" @@ -66,13 +66,13 @@ libmpq \- cross-platform C library for manipulating mpq archives. .BI " uint32_t *" "files" .BI ");" .sp -.BI "int32_t libmpq__file_packed_size(" +.BI "int32_t libmpq__file_size_packed(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " off_t *" "packed_size" .BI ");" .sp -.BI "int32_t libmpq__file_unpacked_size(" +.BI "int32_t libmpq__file_size_unpacked(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " off_t *" "unpacked_size" @@ -132,14 +132,14 @@ libmpq \- cross-platform C library for manipulating mpq archives. .BI " uint32_t " "file_number" .BI ");" .sp -.BI "int32_t libmpq__block_packed_size(" +.BI "int32_t libmpq__block_size_packed(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " uint32_t " "block_number", .BI " off_t *" "packed_size" .BI ");" .sp -.BI "int32_t libmpq__block_unpacked_size(" +.BI "int32_t libmpq__block_size_unpacked(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " uint32_t " "block_number", @@ -177,13 +177,13 @@ The \fIlibmpq\fP library supports decrypting, decompressing, exploding and vario .BR libmpq__strerror (3), .BR libmpq__archive_open (3), .BR libmpq__archive_close (3), -.BR libmpq__archive_packed_size (3), -.BR libmpq__archive_unpacked_size (3), +.BR libmpq__archive_size_packed (3), +.BR libmpq__archive_size_unpacked (3), .BR libmpq__archive_offset (3), .BR libmpq__archive_version (3), .BR libmpq__archive_files (3), -.BR libmpq__file_packed_size (3), -.BR libmpq__file_unpacked_size (3), +.BR libmpq__file_size_packed (3), +.BR libmpq__file_size_unpacked (3), .BR libmpq__file_offset (3), .BR libmpq__file_blocks (3), .BR libmpq__file_encrypted (3), @@ -193,15 +193,15 @@ The \fIlibmpq\fP library supports decrypting, decompressing, exploding and vario .BR libmpq__file_read (3), .BR libmpq__block_open_offset (3), .BR libmpq__block_close_offset (3), -.BR libmpq__block_packed_size (3), -.BR libmpq__block_unpacked_size (3), +.BR libmpq__block_size_packed (3), +.BR libmpq__block_size_unpacked (3), .BR libmpq__block_offset (3), .BR libmpq__block_seed (3), .BR libmpq__block_read (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_close.3 b/dep/libmpq/doc/man3/libmpq__archive_close.3 index dfc652a6721..c529815f668 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_close.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_close.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-04-29 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -43,15 +43,15 @@ On success, a zero is returned and on error one of the following constants. The given file could not be closed. .SH SEE ALSO .BR libmpq__archive_open (3), -.BR libmpq__archive_packed_size (3), -.BR libmpq__archive_unpacked_size (3), +.BR libmpq__archive_size_packed (3), +.BR libmpq__archive_size_unpacked (3), .BR libmpq__archive_offset (3), .BR libmpq__archive_version (3), .BR libmpq__archive_files (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_files.3 b/dep/libmpq/doc/man3/libmpq__archive_files.3 index 6663b99161a..3cd1de4edf3 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_files.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_files.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-14 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -44,7 +44,7 @@ On success, a zero is returned. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_offset.3 b/dep/libmpq/doc/man3/libmpq__archive_offset.3 index 696ac5e809f..3aee44c9577 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_offset.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_offset.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-14 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -45,7 +45,7 @@ On success, a zero is returned. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_open.3 b/dep/libmpq/doc/man3/libmpq__archive_open.3 index 02c021f8948..bc400c444fd 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_open.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_open.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-04-29 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -57,15 +57,15 @@ The given file is no valid mpq archive. Reading in archive failed. .SH SEE ALSO .BR libmpq__archive_close (3), -.BR libmpq__archive_packed_size (3), -.BR libmpq__archive_unpacked_size (3), +.BR libmpq__archive_size_packed (3), +.BR libmpq__archive_size_unpacked (3), .BR libmpq__archive_offset (3), .BR libmpq__archive_version (3), .BR libmpq__archive_files (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_packed_size.3 b/dep/libmpq/doc/man3/libmpq__archive_size_packed.3 similarity index 80% rename from dep/libmpq/doc/man3/libmpq__archive_packed_size.3 rename to dep/libmpq/doc/man3/libmpq__archive_size_packed.3 index 6c3061f2031..30de1e33c5a 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_packed_size.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_size_packed.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-04-29 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -27,25 +27,25 @@ libmpq \- cross-platform C library for manipulating mpq archives. .B #include .sp -.BI "int32_t libmpq__archive_packed_size(" +.BI "int32_t libmpq__archive_size_packed(" .BI " mpq_archive_s *" "mpq_archive", .BI " off_t *" "packed_size" .BI ");" .fi .SH DESCRIPTION .PP -Call \fBlibmpq__archive_packed_size\fP() to get the packed size of all files in the archive. It will count compressed and imploded files as well as stored only. +Call \fBlibmpq__archive_size_packed\fP() to get the packed size of all files in the archive. It will count compressed and imploded files as well as stored only. .LP -The \fBlibmpq__archive_packed_size\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument is a reference to the compressed, imploded or stored size \fIpacked_size\fP of file. +The \fBlibmpq__archive_size_packed\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument is a reference to the compressed, imploded or stored size \fIpacked_size\fP of file. .SH RETURN VALUE On success, a zero is returned. .SH SEE ALSO -.BR libmpq__file_packed_size (3), -.BR libmpq__block_packed_size (3) +.BR libmpq__file_size_packed (3), +.BR libmpq__block_size_packed (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_unpacked_size.3 b/dep/libmpq/doc/man3/libmpq__archive_size_unpacked.3 similarity index 80% rename from dep/libmpq/doc/man3/libmpq__archive_unpacked_size.3 rename to dep/libmpq/doc/man3/libmpq__archive_size_unpacked.3 index d2ba923c8f0..5ca04e79dbd 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_unpacked_size.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_size_unpacked.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-04-29 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -27,25 +27,25 @@ libmpq \- cross-platform C library for manipulating mpq archives. .B #include .sp -.BI "int32_t libmpq__archive_unpacked_size(" +.BI "int32_t libmpq__archive_size_unpacked(" .BI " mpq_archive_s *" "mpq_archive", .BI " off_t *" "unpacked_size" .BI ");" .fi .SH DESCRIPTION .PP -Call \fBlibmpq__archive_unpacked_size\fP() to get the unpacked size of all files in the archive. It will count uncompressed and exploded files as well as stored only. +Call \fBlibmpq__archive_size_unpacked\fP() to get the unpacked size of all files in the archive. It will count uncompressed and exploded files as well as stored only. .LP -The \fBlibmpq__archive_unpacked_size\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument is a reference to the uncompressed, exploded or stored size \fIunpacked_size\fP of file. +The \fBlibmpq__archive_size_unpacked\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument is a reference to the uncompressed, exploded or stored size \fIunpacked_size\fP of file. .SH RETURN VALUE On success, a zero is returned. .SH SEE ALSO -.BR libmpq__file_unpacked_size (3), -.BR libmpq__block_unpacked_size (3) +.BR libmpq__file_size_unpacked (3), +.BR libmpq__block_size_unpacked (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__archive_version.3 b/dep/libmpq/doc/man3/libmpq__archive_version.3 index 1764046895a..5962fc84c41 100644 --- a/dep/libmpq/doc/man3/libmpq__archive_version.3 +++ b/dep/libmpq/doc/man3/libmpq__archive_version.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-14 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -42,7 +42,7 @@ On success, a zero is returned. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__block_close_offset.3 b/dep/libmpq/doc/man3/libmpq__block_close_offset.3 index 1ec0c06f70d..d3cc08e7a52 100644 --- a/dep/libmpq/doc/man3/libmpq__block_close_offset.3 +++ b/dep/libmpq/doc/man3/libmpq__block_close_offset.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -47,7 +47,7 @@ File or block does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__block_open_offset.3 b/dep/libmpq/doc/man3/libmpq__block_open_offset.3 index a60b133f406..ae51fb9fd2a 100644 --- a/dep/libmpq/doc/man3/libmpq__block_open_offset.3 +++ b/dep/libmpq/doc/man3/libmpq__block_open_offset.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -59,7 +59,7 @@ Decrypting block failed. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__block_read.3 b/dep/libmpq/doc/man3/libmpq__block_read.3 index 3272c64c7ed..46847ca1b88 100644 --- a/dep/libmpq/doc/man3/libmpq__block_read.3 +++ b/dep/libmpq/doc/man3/libmpq__block_read.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -72,7 +72,7 @@ Unpacking block failed. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__block_unpacked_size.3 b/dep/libmpq/doc/man3/libmpq__block_size_unpacked.3 similarity index 84% rename from dep/libmpq/doc/man3/libmpq__block_unpacked_size.3 rename to dep/libmpq/doc/man3/libmpq__block_size_unpacked.3 index a21ca48159a..19c913ce8f0 100644 --- a/dep/libmpq/doc/man3/libmpq__block_unpacked_size.3 +++ b/dep/libmpq/doc/man3/libmpq__block_size_unpacked.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -27,7 +27,7 @@ libmpq \- cross-platform C library for manipulating mpq archives. .B #include .sp -.BI "int32_t libmpq__block_unpacked_size(" +.BI "int32_t libmpq__block_size_unpacked(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " uint32_t " "block_number", @@ -36,9 +36,9 @@ libmpq \- cross-platform C library for manipulating mpq archives. .fi .SH DESCRIPTION .PP -Call \fBlibmpq__block_unpacked_size\fP() to get the unpacked size of a given block in the file. It will return a valid size for compressed and imploded blocks as well as stored only. +Call \fBlibmpq__block_size_unpacked\fP() to get the unpacked size of a given block in the file. It will return a valid size for compressed and imploded blocks as well as stored only. .LP -The \fBlibmpq__block_unpacked_size\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument \fIfile_number\fP is the number of file, the third argument \fIblock_number\fP is the number of block and the fourth argument is a reference to the uncompressed, exploded or stored size \fIunpacked_size\fP of block. +The \fBlibmpq__block_size_unpacked\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument \fIfile_number\fP is the number of file, the third argument \fIblock_number\fP is the number of block and the fourth argument is a reference to the uncompressed, exploded or stored size \fIunpacked_size\fP of block. .SH RETURN VALUE On success, a zero is returned and on error one of the following constants. .TP @@ -48,12 +48,12 @@ File or block does not exist in archive. .B LIBMPQ_ERROR_OPEN Block offset table was not opened by calling \fBlibmpq__block_open_offset\fP(), or it was closed by an \fBlibmpq__block_close_offset\fP() call. .SH SEE ALSO -.BR libmpq__archive_unpacked_size (3), -.BR libmpq__file_unpacked_size (3) +.BR libmpq__archive_size_unpacked (3), +.BR libmpq__file_size_unpacked (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_blocks.3 b/dep/libmpq/doc/man3/libmpq__file_blocks.3 index 85baeffc603..0ce1fbbac08 100644 --- a/dep/libmpq/doc/man3/libmpq__file_blocks.3 +++ b/dep/libmpq/doc/man3/libmpq__file_blocks.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -48,7 +48,7 @@ File does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_compressed.3 b/dep/libmpq/doc/man3/libmpq__file_compressed.3 index 24b44f0b666..317f6cbfc8f 100644 --- a/dep/libmpq/doc/man3/libmpq__file_compressed.3 +++ b/dep/libmpq/doc/man3/libmpq__file_compressed.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -48,7 +48,7 @@ File does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_encrypted.3 b/dep/libmpq/doc/man3/libmpq__file_encrypted.3 index 798f4019c7a..2036b9f413d 100644 --- a/dep/libmpq/doc/man3/libmpq__file_encrypted.3 +++ b/dep/libmpq/doc/man3/libmpq__file_encrypted.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -48,7 +48,7 @@ File does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_imploded.3 b/dep/libmpq/doc/man3/libmpq__file_imploded.3 index 9adce38cb5f..6b549f9cef5 100644 --- a/dep/libmpq/doc/man3/libmpq__file_imploded.3 +++ b/dep/libmpq/doc/man3/libmpq__file_imploded.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -48,7 +48,7 @@ File does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_number.3 b/dep/libmpq/doc/man3/libmpq__file_number.3 index 8d7a47769ee..5849c556108 100644 --- a/dep/libmpq/doc/man3/libmpq__file_number.3 +++ b/dep/libmpq/doc/man3/libmpq__file_number.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -46,7 +46,7 @@ File does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_offset.3 b/dep/libmpq/doc/man3/libmpq__file_offset.3 index 392a66d0b04..ec7fc75e73c 100644 --- a/dep/libmpq/doc/man3/libmpq__file_offset.3 +++ b/dep/libmpq/doc/man3/libmpq__file_offset.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-15 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -49,7 +49,7 @@ File does not exist in archive. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_read.3 b/dep/libmpq/doc/man3/libmpq__file_read.3 index cbfafbd0f4f..bc6f3d22478 100644 --- a/dep/libmpq/doc/man3/libmpq__file_read.3 +++ b/dep/libmpq/doc/man3/libmpq__file_read.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-16 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -71,7 +71,7 @@ Unpacking file failed. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_packed_size.3 b/dep/libmpq/doc/man3/libmpq__file_size_packed.3 similarity index 82% rename from dep/libmpq/doc/man3/libmpq__file_packed_size.3 rename to dep/libmpq/doc/man3/libmpq__file_size_packed.3 index b584ddf77dd..b01f626d828 100644 --- a/dep/libmpq/doc/man3/libmpq__file_packed_size.3 +++ b/dep/libmpq/doc/man3/libmpq__file_size_packed.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-15 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -27,7 +27,7 @@ libmpq \- cross-platform C library for manipulating mpq archives. .B #include .sp -.BI "int32_t libmpq__file_packed_size(" +.BI "int32_t libmpq__file_size_packed(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " off_t *" "packed_size" @@ -35,21 +35,21 @@ libmpq \- cross-platform C library for manipulating mpq archives. .fi .SH DESCRIPTION .PP -Call \fBlibmpq__file_packed_size\fP() to get the packed size of a given file in the archive. It will return a valid size for compressed and imploded files as well as stored only. +Call \fBlibmpq__file_size_packed\fP() to get the packed size of a given file in the archive. It will return a valid size for compressed and imploded files as well as stored only. .LP -The \fBlibmpq__file_packed_size\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument \fIfile_number\fP is the number of file and the third argument is a reference to the compressed, imploded or stored size \fIpacked_size\fP of file. +The \fBlibmpq__file_size_packed\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument \fIfile_number\fP is the number of file and the third argument is a reference to the compressed, imploded or stored size \fIpacked_size\fP of file. .SH RETURN VALUE On success, a zero is returned and on error one of the following constants. .TP .B LIBMPQ_ERROR_EXIST File does not exist in archive. .SH SEE ALSO -.BR libmpq__archive_packed_size (3), -.BR libmpq__block_packed_size (3) +.BR libmpq__archive_size_packed (3), +.BR libmpq__block_size_packed (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__file_unpacked_size.3 b/dep/libmpq/doc/man3/libmpq__file_size_unpacked.3 similarity index 82% rename from dep/libmpq/doc/man3/libmpq__file_unpacked_size.3 rename to dep/libmpq/doc/man3/libmpq__file_size_unpacked.3 index a81cf7a4e76..4569a5cf062 100644 --- a/dep/libmpq/doc/man3/libmpq__file_unpacked_size.3 +++ b/dep/libmpq/doc/man3/libmpq__file_size_unpacked.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-05-15 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -27,7 +27,7 @@ libmpq \- cross-platform C library for manipulating mpq archives. .B #include .sp -.BI "int32_t libmpq__file_unpacked_size(" +.BI "int32_t libmpq__file_size_unpacked(" .BI " mpq_archive_s *" "mpq_archive", .BI " uint32_t " "file_number", .BI " off_t *" "unpacked_size" @@ -35,21 +35,21 @@ libmpq \- cross-platform C library for manipulating mpq archives. .fi .SH DESCRIPTION .PP -Call \fBlibmpq__file_unpacked_size\fP() to get the unpacked size of a given file in the archive. It will return a valid size for compressed and imploded files as well as stored only. +Call \fBlibmpq__file_size_unpacked\fP() to get the unpacked size of a given file in the archive. It will return a valid size for compressed and imploded files as well as stored only. .LP -The \fBlibmpq__file_unpacked_size\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument \fIfile_number\fP is the number of file and the third argument is a reference to the uncompressed, exploded or stored size \fIunpacked_size\fP of file. +The \fBlibmpq__file_size_unpacked\fP() function takes as first argument the archive structure \fImpq_archive\fP which have to be allocated first and opened by \fBlibmpq__archive_open\fP(). The second argument \fIfile_number\fP is the number of file and the third argument is a reference to the uncompressed, exploded or stored size \fIunpacked_size\fP of file. .SH RETURN VALUE On success, a zero is returned and on error one of the following constants. .TP .B LIBMPQ_ERROR_EXIST File does not exist in archive. .SH SEE ALSO -.BR libmpq__archive_unpacked_size (3), -.BR libmpq__block_unpacked_size (3) +.BR libmpq__archive_size_unpacked (3), +.BR libmpq__block_size_unpacked (3) .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__strerror.3 b/dep/libmpq/doc/man3/libmpq__strerror.3 index 246f422eed0..ac23d7fb8f0 100644 --- a/dep/libmpq/doc/man3/libmpq__strerror.3 +++ b/dep/libmpq/doc/man3/libmpq__strerror.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2010 Georg Lukas +.\" Copyright (c) 2010-2011 Georg Lukas .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2010-07-18 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq__strerror \- return string describing libmpq error number .SH SYNOPSIS @@ -39,7 +39,7 @@ The function returns a string pointer to non-writable memory or NULL if \fBretur .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/doc/man3/libmpq__version.3 b/dep/libmpq/doc/man3/libmpq__version.3 index 5500d7314f5..dcd072cbd3b 100644 --- a/dep/libmpq/doc/man3/libmpq__version.3 +++ b/dep/libmpq/doc/man3/libmpq__version.3 @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2008 Maik Broemme +.\" Copyright (c) 2003-2011 Maik Broemme .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as @@ -19,7 +19,7 @@ .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. -.TH libmpq 3 2008-03-31 "The MoPaQ archive library" +.TH libmpq 3 2011-11-06 "The MoPaQ archive library" .SH NAME libmpq \- cross-platform C library for manipulating mpq archives. .SH SYNOPSIS @@ -39,7 +39,7 @@ The function returns the library version. .SH AUTHOR Check documentation. .TP -libmpq is (c) 2003-2008 -.B Maik Broemme +libmpq is (c) 2003-2011 +.B Maik Broemme .PP The above e-mail address can be used to send bug reports, feedbacks or library enhancements. diff --git a/dep/libmpq/libmpq-hotfix1.diff b/dep/libmpq/libmpq-hotfix1.diff new file mode 100644 index 00000000000..fba4c7160c6 --- /dev/null +++ b/dep/libmpq/libmpq-hotfix1.diff @@ -0,0 +1,38 @@ + dep/libmpq/libmpq/extract.c | 1 + + dep/libmpq/libmpq/mpq.c | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/dep/libmpq/libmpq/extract.c b/dep/libmpq/libmpq/extract.c +index f4ebb29..dc970b7 100644 +--- a/dep/libmpq/libmpq/extract.c ++++ b/dep/libmpq/libmpq/extract.c +@@ -49,6 +49,7 @@ static decompress_table_s dcmp_table[] = { + /* this function decompress a stream using huffman algorithm. */ + int32_t libmpq__decompress_huffman(uint8_t *in_buf, uint32_t in_size, uint8_t *out_buf, uint32_t out_size) { + ++ (void)in_size; + /* TODO: make typdefs of this structs? */ + /* some common variables. */ + int32_t tb = 0; +diff --git a/dep/libmpq/libmpq/mpq.c b/dep/libmpq/libmpq/mpq.c +index 1936f25..71081b5 100644 +--- a/dep/libmpq/libmpq/mpq.c ++++ b/dep/libmpq/libmpq/mpq.c +@@ -65,7 +65,7 @@ const char *libmpq__version(void) { + const char *libmpq__strerror(int32_t return_code) { + + /* check for array bounds */ +- if (-return_code < 0 || -return_code > sizeof(__libmpq_error_strings)/sizeof(char*)) ++ if (-return_code < 0 || (size_t)-return_code > sizeof(__libmpq_error_strings)/sizeof(char*)) + return NULL; + + /* return appropriate string */ +@@ -912,7 +912,7 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin + } + + /* read block from file. */ +- if (fread(in_buf, 1, in_size, mpq_archive->fp) != in_size) { ++ if ((libmpq__off_t)fread(in_buf, 1, in_size, mpq_archive->fp) != in_size) { + + /* free buffers. */ + free(in_buf); diff --git a/dep/libmpq/libmpq/Makefile.am b/dep/libmpq/libmpq/Makefile.am index 409e3dfe02f..7653a551a31 100644 --- a/dep/libmpq/libmpq/Makefile.am +++ b/dep/libmpq/libmpq/Makefile.am @@ -12,7 +12,7 @@ libmpq_includedir = $(includedir)/libmpq libmpq_include_HEADERS = mpq.h libmpq_la_SOURCES = $(GENERAL_SRCS) -libmpq_la_LDFLAGS = -release $(PACKAGE_VERSION) +libmpq_la_LDFLAGS = -version-info @LIBMPQ_ABI@ GENERAL_SRCS = \ common.c \ diff --git a/dep/libmpq/libmpq/common.c b/dep/libmpq/libmpq/common.c index 879bd902b58..ca7bca5c391 100644 --- a/dep/libmpq/libmpq/common.c +++ b/dep/libmpq/libmpq/common.c @@ -1,7 +1,7 @@ /* * common.c -- shared functions used by mpq-tools. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -175,7 +175,7 @@ int32_t libmpq__decompress_block(uint8_t *in_buf, uint32_t in_size, uint8_t *out /* check if one compression mode is used. */ else if (compression_type == LIBMPQ_FLAG_COMPRESS_PKZIP || - compression_type == LIBMPQ_FLAG_COMPRESS_MULTI) { + compression_type == LIBMPQ_FLAG_COMPRESS_MULTI) { /* check if block is really compressed, some blocks have set the compression flag, but are not compressed. */ if (in_size < out_size) { diff --git a/dep/libmpq/libmpq/common.h b/dep/libmpq/libmpq/common.h index b9e03126434..93949b4739c 100644 --- a/dep/libmpq/libmpq/common.h +++ b/dep/libmpq/libmpq/common.h @@ -1,7 +1,7 @@ /* * common.h -- header functions used by mpq-tools. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/dep/libmpq/libmpq/explode.c b/dep/libmpq/libmpq/explode.c index 2d778d25c39..eca5b1a078e 100644 --- a/dep/libmpq/libmpq/explode.c +++ b/dep/libmpq/libmpq/explode.c @@ -1,7 +1,7 @@ /* * explode.c -- explode function of pkware data compression library. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This source was adepted from the C++ version of pkware.cpp included * in stormlib. The C++ version belongs to the following authors: diff --git a/dep/libmpq/libmpq/explode.h b/dep/libmpq/libmpq/explode.h index 1d14dfc0e0a..2724e02d1f5 100644 --- a/dep/libmpq/libmpq/explode.h +++ b/dep/libmpq/libmpq/explode.h @@ -2,7 +2,7 @@ * explode.h -- header file for pkware data decompression library * used by mpq-tools. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This source was adepted from the C++ version of pklib.h included * in stormlib. The C++ version belongs to the following authors: diff --git a/dep/libmpq/libmpq/extract.c b/dep/libmpq/libmpq/extract.c index 11de1071683..dc970b75ce2 100644 --- a/dep/libmpq/libmpq/extract.c +++ b/dep/libmpq/libmpq/extract.c @@ -2,7 +2,7 @@ * extract.c -- global extracting function for all known file compressions * in a mpq archive. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -49,6 +49,7 @@ static decompress_table_s dcmp_table[] = { /* this function decompress a stream using huffman algorithm. */ int32_t libmpq__decompress_huffman(uint8_t *in_buf, uint32_t in_size, uint8_t *out_buf, uint32_t out_size) { + (void)in_size; /* TODO: make typdefs of this structs? */ /* some common variables. */ int32_t tb = 0; diff --git a/dep/libmpq/libmpq/extract.h b/dep/libmpq/libmpq/extract.h index d6ea794f162..1243af65440 100644 --- a/dep/libmpq/libmpq/extract.h +++ b/dep/libmpq/libmpq/extract.h @@ -1,7 +1,7 @@ /* * extract.h -- header for the extraction functions used by mpq-tools. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/dep/libmpq/libmpq/huffman.c b/dep/libmpq/libmpq/huffman.c index 8fc87be2f60..3760f7f8d8e 100644 --- a/dep/libmpq/libmpq/huffman.c +++ b/dep/libmpq/libmpq/huffman.c @@ -2,7 +2,7 @@ * huffman.c -- functions do decompress files in mpq files which * uses a modified huffman version. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * Differences between C++ and C version: * diff --git a/dep/libmpq/libmpq/huffman.h b/dep/libmpq/libmpq/huffman.h index 6f691088fa0..9a8b86eab5f 100644 --- a/dep/libmpq/libmpq/huffman.h +++ b/dep/libmpq/libmpq/huffman.h @@ -1,7 +1,7 @@ /* * huffman.h -- structures used for huffman compression. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This source was adepted from the C++ version of huffman.h included * in stormlib. The C++ version belongs to the following authors: diff --git a/dep/libmpq/libmpq/mpq-internal.h b/dep/libmpq/libmpq/mpq-internal.h index 76eabe4190a..e6146cecd4e 100644 --- a/dep/libmpq/libmpq/mpq-internal.h +++ b/dep/libmpq/libmpq/mpq-internal.h @@ -2,7 +2,7 @@ * mpq-internal.h -- some default types and defines, but only required for * compilation of the library. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/dep/libmpq/libmpq/mpq.c b/dep/libmpq/libmpq/mpq.c index a6ab5db82d9..71081b57945 100644 --- a/dep/libmpq/libmpq/mpq.c +++ b/dep/libmpq/libmpq/mpq.c @@ -1,7 +1,7 @@ /* * mpq.c -- functions for developers using libmpq. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,6 +37,23 @@ /* support for platform specific things */ #include "platform.h" +/* static error constants. */ +static const char *__libmpq_error_strings[] = { + "success", + "open error on file", + "close error on file", + "lseek error on file", + "read error on file", + "write error on file", + "memory allocation error", + "format errror", + "init() wasn't called", + "buffer size is to small", + "file or block does not exist in archive", + "we don't know the decryption seed", + "error on unpacking file" +}; + /* this function returns the library version information. */ const char *libmpq__version(void) { @@ -44,41 +61,25 @@ const char *libmpq__version(void) { return VERSION; } -static const char *__libmpq_error_strings[] = { - "success", - "open error on file", - "close error on file", - "lseek error on file", - "read error on file", - "write error on file", - "memory allocation error", - "format errror", - "init() wasn't called", - "buffer size is to small", - "file or block does not exist in archive", - "we don't know the decryption seed", - "error on unpacking file" - }; - /* this function returns a string message for a return code. */ -const char *libmpq__strerror(int32_t returncode) { +const char *libmpq__strerror(int32_t return_code) { + /* check for array bounds */ - if (-returncode < 0 || -returncode > sizeof(__libmpq_error_strings)/sizeof(char*)) + if (-return_code < 0 || (size_t)-return_code > sizeof(__libmpq_error_strings)/sizeof(char*)) return NULL; /* return appropriate string */ - return __libmpq_error_strings[-returncode]; + return __libmpq_error_strings[-return_code]; } /* this function read a file and verify if it is a valid mpq archive, then it read and decrypt the hash table. */ int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filename, libmpq__off_t archive_offset) { /* some common variables. */ - uint32_t rb = 0; - uint32_t i = 0; - uint32_t count = 0; - int32_t result = 0; - uint32_t header_search = FALSE; + uint32_t i = 0; + uint32_t count = 0; + int32_t result = 0; + uint32_t header_search = FALSE; if (archive_offset == -1) { archive_offset = 0; @@ -118,7 +119,7 @@ int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filena } /* read header from file. */ - if ((rb = fread(&(*mpq_archive)->mpq_header, 1, sizeof(mpq_header_s), (*mpq_archive)->fp)) != sizeof(mpq_header_s)) { + if (fread(&(*mpq_archive)->mpq_header, 1, sizeof(mpq_header_s), (*mpq_archive)->fp) != sizeof(mpq_header_s)) { /* no valid mpq archive. */ result = LIBMPQ_ERROR_FORMAT; @@ -182,7 +183,7 @@ int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filena } /* read header from file. */ - if ((rb = fread(&(*mpq_archive)->mpq_header_ex, 1, sizeof(mpq_header_ex_s), (*mpq_archive)->fp)) != sizeof(mpq_header_ex_s)) { + if (fread(&(*mpq_archive)->mpq_header_ex, 1, sizeof(mpq_header_ex_s), (*mpq_archive)->fp) != sizeof(mpq_header_ex_s)) { /* no valid mpq archive. */ result = LIBMPQ_ERROR_FORMAT; @@ -211,7 +212,7 @@ int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filena } /* read the hash table into the buffer. */ - if ((rb = fread((*mpq_archive)->mpq_hash, 1, (*mpq_archive)->mpq_header.hash_table_count * sizeof(mpq_hash_s), (*mpq_archive)->fp)) < 0) { + if (fread((*mpq_archive)->mpq_hash, 1, (*mpq_archive)->mpq_header.hash_table_count * sizeof(mpq_hash_s), (*mpq_archive)->fp) != (*mpq_archive)->mpq_header.hash_table_count * sizeof(mpq_hash_s)) { /* something on read failed. */ result = LIBMPQ_ERROR_READ; @@ -230,7 +231,7 @@ int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filena } /* read the block table into the buffer. */ - if ((rb = fread((*mpq_archive)->mpq_block, 1, (*mpq_archive)->mpq_header.block_table_count * sizeof(mpq_block_s), (*mpq_archive)->fp)) < 0) { + if (fread((*mpq_archive)->mpq_block, 1, (*mpq_archive)->mpq_header.block_table_count * sizeof(mpq_block_s), (*mpq_archive)->fp) != (*mpq_archive)->mpq_header.block_table_count * sizeof(mpq_block_s)) { /* something on read failed. */ result = LIBMPQ_ERROR_READ; @@ -252,7 +253,7 @@ int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filena } /* read header from file. */ - if ((rb = fread((*mpq_archive)->mpq_block_ex, 1, (*mpq_archive)->mpq_header.block_table_count * sizeof(mpq_block_ex_s), (*mpq_archive)->fp)) < 0) { + if (fread((*mpq_archive)->mpq_block_ex, 1, (*mpq_archive)->mpq_header.block_table_count * sizeof(mpq_block_ex_s), (*mpq_archive)->fp) != (*mpq_archive)->mpq_header.block_table_count * sizeof(mpq_block_ex_s)) { /* no valid mpq archive. */ result = LIBMPQ_ERROR_FORMAT; @@ -327,7 +328,7 @@ int32_t libmpq__archive_close(mpq_archive_s *mpq_archive) { } /* this function return the packed size of all files in the archive. */ -int32_t libmpq__archive_packed_size(mpq_archive_s *mpq_archive, libmpq__off_t *packed_size) { +int32_t libmpq__archive_size_packed(mpq_archive_s *mpq_archive, libmpq__off_t *packed_size) { /* some common variables. */ uint32_t i; @@ -342,7 +343,7 @@ int32_t libmpq__archive_packed_size(mpq_archive_s *mpq_archive, libmpq__off_t *p } /* this function return the unpacked size of all files in the archive. */ -int32_t libmpq__archive_unpacked_size(mpq_archive_s *mpq_archive, libmpq__off_t *unpacked_size) { +int32_t libmpq__archive_size_unpacked(mpq_archive_s *mpq_archive, libmpq__off_t *unpacked_size) { /* some common variables. */ uint32_t i; @@ -397,7 +398,7 @@ int32_t libmpq__archive_files(mpq_archive_s *mpq_archive, uint32_t *files) { } /* this function return the packed size of the given files in the archive. */ -int32_t libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *packed_size) { +int32_t libmpq__file_size_packed(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *packed_size) { /* check if given file number is not out of range. */ CHECK_FILE_NUM(file_number, mpq_archive) @@ -410,7 +411,7 @@ int32_t libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint32_t file_numbe } /* this function return the unpacked size of the given file in the archive. */ -int32_t libmpq__file_unpacked_size(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *unpacked_size) { +int32_t libmpq__file_size_unpacked(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *unpacked_size) { /* check if given file number is not out of range. */ CHECK_FILE_NUM(file_number, mpq_archive) @@ -534,8 +535,8 @@ int32_t libmpq__file_read(mpq_archive_s *mpq_archive, uint32_t file_number, uint /* some common variables. */ uint32_t i; - uint32_t blocks = 0; - int32_t result = 0; + uint32_t blocks = 0; + int32_t result = 0; libmpq__off_t file_offset = 0; libmpq__off_t unpacked_size = 0; libmpq__off_t transferred_block = 0; @@ -545,7 +546,7 @@ int32_t libmpq__file_read(mpq_archive_s *mpq_archive, uint32_t file_number, uint CHECK_FILE_NUM(file_number, mpq_archive) /* get target size of block. */ - libmpq__file_unpacked_size(mpq_archive, file_number, &unpacked_size); + libmpq__file_size_unpacked(mpq_archive, file_number, &unpacked_size); /* check if target buffer is to small. */ if (unpacked_size > out_size) { @@ -574,7 +575,7 @@ int32_t libmpq__file_read(mpq_archive_s *mpq_archive, uint32_t file_number, uint unpacked_size = 0; /* get unpacked block size. */ - libmpq__block_unpacked_size(mpq_archive, file_number, i, &unpacked_size); + libmpq__block_size_unpacked(mpq_archive, file_number, i, &unpacked_size); /* read block. */ if ((result = libmpq__block_read(mpq_archive, file_number, i, out_buf + transferred_total, unpacked_size, &transferred_block)) < 0) { @@ -610,7 +611,6 @@ int32_t libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint32_t file_numb /* some common variables. */ uint32_t i; uint32_t packed_size; - int32_t rb = 0; int32_t result = 0; /* check if given file number is not out of range. */ @@ -673,7 +673,7 @@ int32_t libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint32_t file_numb } /* read block positions from begin of file. */ - if ((rb = fread(mpq_archive->mpq_file[file_number]->packed_offset, 1, packed_size, mpq_archive->fp)) < 0) { + if (fread(mpq_archive->mpq_file[file_number]->packed_offset, 1, packed_size, mpq_archive->fp) != packed_size) { /* something on read from archive failed. */ result = LIBMPQ_ERROR_READ; @@ -683,8 +683,8 @@ int32_t libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint32_t file_numb /* check if the archive is protected some way, sometimes the file appears not to be encrypted, but it is. * a special case are files with an additional sector but LIBMPQ_FLAG_CRC not set. we don't want to handle * them as encrypted. */ - if (mpq_archive->mpq_file[file_number]->packed_offset[0] != rb && - mpq_archive->mpq_file[file_number]->packed_offset[0] != rb + 4) { + if (mpq_archive->mpq_file[file_number]->packed_offset[0] != packed_size && + mpq_archive->mpq_file[file_number]->packed_offset[0] != packed_size + 4) { /* file is encrypted. */ mpq_archive->mpq_block[mpq_archive->mpq_map[file_number].block_table_indices].flags |= LIBMPQ_FLAG_ENCRYPTED; @@ -789,7 +789,7 @@ int32_t libmpq__block_close_offset(mpq_archive_s *mpq_archive, uint32_t file_num } /* this function return the unpacked size of the given file and block in the archive. */ -int32_t libmpq__block_unpacked_size(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t block_number, libmpq__off_t *unpacked_size) { +int32_t libmpq__block_size_unpacked(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t block_number, libmpq__off_t *unpacked_size) { /* check if given file number is not out of range. */ CHECK_FILE_NUM(file_number, mpq_archive) @@ -860,13 +860,13 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin /* some common variables. */ uint8_t *in_buf; - uint32_t seed = 0; - uint32_t encrypted = 0; - uint32_t compressed = 0; - uint32_t imploded = 0; - int32_t tb = 0; + uint32_t seed = 0; + uint32_t encrypted = 0; + uint32_t compressed = 0; + uint32_t imploded = 0; + int32_t tb = 0; libmpq__off_t block_offset = 0; - off_t in_size = 0; + libmpq__off_t in_size = 0; libmpq__off_t unpacked_size = 0; /* check if given file number is not out of range. */ @@ -884,7 +884,7 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin } /* get target size of block. */ - libmpq__block_unpacked_size(mpq_archive, file_number, block_number, &unpacked_size); + libmpq__block_size_unpacked(mpq_archive, file_number, block_number, &unpacked_size); /* check if target buffer is to small. */ if (unpacked_size > out_size) { @@ -912,7 +912,7 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin } /* read block from file. */ - if (fread(in_buf, 1, in_size, mpq_archive->fp) < 0) { + if ((libmpq__off_t)fread(in_buf, 1, in_size, mpq_archive->fp) != in_size) { /* free buffers. */ free(in_buf); @@ -925,7 +925,7 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin libmpq__file_encrypted(mpq_archive, file_number, &encrypted); /* check if file is encrypted. */ - if (encrypted == 1) { + if (encrypted) { /* get decryption key. */ libmpq__block_seed(mpq_archive, file_number, block_number, &seed); @@ -945,7 +945,7 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin libmpq__file_compressed(mpq_archive, file_number, &compressed); /* check if file is compressed. */ - if (compressed == 1) { + if (compressed) { /* decompress block. */ if ((tb = libmpq__decompress_block(in_buf, in_size, out_buf, out_size, LIBMPQ_FLAG_COMPRESS_MULTI)) < 0) { @@ -962,7 +962,7 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin libmpq__file_imploded(mpq_archive, file_number, &imploded); /* check if file is imploded. */ - if (imploded == 1) { + if (imploded) { /* explode block. */ if ((tb = libmpq__decompress_block(in_buf, in_size, out_buf, out_size, LIBMPQ_FLAG_COMPRESS_PKZIP)) < 0) { @@ -975,8 +975,17 @@ int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uin } } + /* files should not be compressed and imploded */ + if (compressed && imploded) { + /* free temporary buffer. */ + free(in_buf); + + /* something on decompressing block failed. */ + return LIBMPQ_ERROR_UNPACK; + } + /* check if file is neither compressed nor imploded. */ - if (compressed == 0 && imploded == 0) { + if (!compressed && !imploded) { /* copy block. */ if ((tb = libmpq__decompress_block(in_buf, in_size, out_buf, out_size, LIBMPQ_FLAG_COMPRESS_NONE)) < 0) { diff --git a/dep/libmpq/libmpq/mpq.h b/dep/libmpq/libmpq/mpq.h index abd4862c334..c367ab3776e 100644 --- a/dep/libmpq/libmpq/mpq.h +++ b/dep/libmpq/libmpq/mpq.h @@ -1,7 +1,7 @@ /* * mpq.h -- some default types and defines. * - * Copyright (c) 2003-2008 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * Some parts (the encryption and decryption stuff) were adapted from * the C++ version of StormLib.h and StormPort.h included in stormlib. @@ -66,20 +66,20 @@ typedef int64_t libmpq__off_t; extern LIBMPQ_API const char *libmpq__version(void); /* string error message for a libmpq return code. */ -extern LIBMPQ_API const char *libmpq__strerror(int32_t returncode); +extern LIBMPQ_API const char *libmpq__strerror(int32_t return_code); /* generic mpq archive information. */ extern LIBMPQ_API int32_t libmpq__archive_open(mpq_archive_s **mpq_archive, const char *mpq_filename, libmpq__off_t archive_offset); extern LIBMPQ_API int32_t libmpq__archive_close(mpq_archive_s *mpq_archive); -extern LIBMPQ_API int32_t libmpq__archive_packed_size(mpq_archive_s *mpq_archive, libmpq__off_t *packed_size); -extern LIBMPQ_API int32_t libmpq__archive_unpacked_size(mpq_archive_s *mpq_archive, libmpq__off_t *unpacked_size); +extern LIBMPQ_API int32_t libmpq__archive_size_packed(mpq_archive_s *mpq_archive, libmpq__off_t *packed_size); +extern LIBMPQ_API int32_t libmpq__archive_size_unpacked(mpq_archive_s *mpq_archive, libmpq__off_t *unpacked_size); extern LIBMPQ_API int32_t libmpq__archive_offset(mpq_archive_s *mpq_archive, libmpq__off_t *offset); extern LIBMPQ_API int32_t libmpq__archive_version(mpq_archive_s *mpq_archive, uint32_t *version); extern LIBMPQ_API int32_t libmpq__archive_files(mpq_archive_s *mpq_archive, uint32_t *files); /* generic file processing functions. */ -extern LIBMPQ_API int32_t libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *packed_size); -extern LIBMPQ_API int32_t libmpq__file_unpacked_size(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *unpacked_size); +extern LIBMPQ_API int32_t libmpq__file_size_packed(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *packed_size); +extern LIBMPQ_API int32_t libmpq__file_size_unpacked(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *unpacked_size); extern LIBMPQ_API int32_t libmpq__file_offset(mpq_archive_s *mpq_archive, uint32_t file_number, libmpq__off_t *offset); extern LIBMPQ_API int32_t libmpq__file_blocks(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t *blocks); extern LIBMPQ_API int32_t libmpq__file_encrypted(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t *encrypted); @@ -91,7 +91,7 @@ extern LIBMPQ_API int32_t libmpq__file_read(mpq_archive_s *mpq_archive, uint32_t /* generic block processing functions. */ extern LIBMPQ_API int32_t libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint32_t file_number); extern LIBMPQ_API int32_t libmpq__block_close_offset(mpq_archive_s *mpq_archive, uint32_t file_number); -extern LIBMPQ_API int32_t libmpq__block_unpacked_size(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t block_number, libmpq__off_t *unpacked_size); +extern LIBMPQ_API int32_t libmpq__block_size_unpacked(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t block_number, libmpq__off_t *unpacked_size); extern LIBMPQ_API int32_t libmpq__block_read(mpq_archive_s *mpq_archive, uint32_t file_number, uint32_t block_number, uint8_t *out_buf, libmpq__off_t out_size, libmpq__off_t *transferred); #ifdef __cplusplus diff --git a/dep/libmpq/libmpq/pack_begin.h b/dep/libmpq/libmpq/pack_begin.h index eb4a6ddebbb..eff141c57ce 100644 --- a/dep/libmpq/libmpq/pack_begin.h +++ b/dep/libmpq/libmpq/pack_begin.h @@ -1,7 +1,7 @@ /* * pack_begin.h -- header file for struct packing used by libmpq. * - * Copyright (c) 2010 Georg Lukas + * Copyright (c) 2010-2011 Georg Lukas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/dep/libmpq/libmpq/pack_end.h b/dep/libmpq/libmpq/pack_end.h index a8a35113bfb..60b1b1db9d2 100644 --- a/dep/libmpq/libmpq/pack_end.h +++ b/dep/libmpq/libmpq/pack_end.h @@ -1,7 +1,7 @@ /* * pack_end.h -- header file for struct packing used by libmpq. * - * Copyright (c) 2010 Georg Lukas + * Copyright (c) 2010-2011 Georg Lukas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/dep/libmpq/libmpq/platform.h b/dep/libmpq/libmpq/platform.h index 68fdfdc5ded..cdffccabbf1 100644 --- a/dep/libmpq/libmpq/platform.h +++ b/dep/libmpq/libmpq/platform.h @@ -1,7 +1,7 @@ /* * platform.h -- header file for platform specific parts. * - * Copyright (c) 2010 Georg Lukas + * Copyright (c) 2010-2011 Georg Lukas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/dep/libmpq/libmpq/wave.c b/dep/libmpq/libmpq/wave.c index 628593fce83..9df58a0baf6 100644 --- a/dep/libmpq/libmpq/wave.c +++ b/dep/libmpq/libmpq/wave.c @@ -2,7 +2,7 @@ * wave.c -- this file contains decompression methods used by mpq-tools * to decompress wave files. * - * Copyright (c) 2003-2007 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This source was adepted from the C++ version of wave.cpp included * in stormlib. The C++ version belongs to the following authors: diff --git a/dep/libmpq/libmpq/wave.h b/dep/libmpq/libmpq/wave.h index 1b9491bd70a..7496b1cf9bb 100644 --- a/dep/libmpq/libmpq/wave.h +++ b/dep/libmpq/libmpq/wave.h @@ -1,7 +1,7 @@ /* * wave.h -- header file for wav unplode functions used by mpq-tools. * - * Copyright (c) 2003-2007 Maik Broemme + * Copyright (c) 2003-2011 Maik Broemme * * This source was adepted from the C++ version of wave.h included * in stormlib. The C++ version belongs to the following authors: diff --git a/dep/libmpq/tools/crypt_buf_gen.c b/dep/libmpq/tools/crypt_buf_gen.c index 3d150fc661f..c6b1cbc60a6 100644 --- a/dep/libmpq/tools/crypt_buf_gen.c +++ b/dep/libmpq/tools/crypt_buf_gen.c @@ -1,8 +1,8 @@ /* * crypt_buf_gen.c -- tool to re-create the static decryption buffer. * - * Copyright (c) 2003-2008 Maik Broemme - * Copyright (c) 2008 Georg Lukas + * Copyright (c) 2003-2011 Maik Broemme + * Copyright (c) 2008-2011 Georg Lukas * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/tools/map_extractor/mpq_libmpq.cpp b/src/tools/map_extractor/mpq_libmpq.cpp index 3e12747e9c5..482e3a3abbd 100644 --- a/src/tools/map_extractor/mpq_libmpq.cpp +++ b/src/tools/map_extractor/mpq_libmpq.cpp @@ -71,7 +71,7 @@ MPQFile::MPQFile(const char* filename): uint32_t filenum; if(libmpq__file_number(mpq_a, filename, &filenum)) continue; libmpq__off_t transferred; - libmpq__file_unpacked_size(mpq_a, filenum, &size); + libmpq__file_size_unpacked(mpq_a, filenum, &size); // HACK: in patch.mpq some files don't want to open and give 1 for filesize if (size<=1) { diff --git a/src/tools/map_extractor/mpq_libmpq04.h b/src/tools/map_extractor/mpq_libmpq04.h index 470e7bd0c50..c6fe36a8221 100644 --- a/src/tools/map_extractor/mpq_libmpq04.h +++ b/src/tools/map_extractor/mpq_libmpq04.h @@ -43,7 +43,7 @@ public: uint32_t filenum; if(libmpq__file_number(mpq_a, "(listfile)", &filenum)) return; libmpq__off_t size, transferred; - libmpq__file_unpacked_size(mpq_a, filenum, &size); + libmpq__file_size_unpacked(mpq_a, filenum, &size); char *buffer = new char[size+1]; buffer[size] = '\0'; diff --git a/src/tools/vmap4_extractor/mpq_libmpq.cpp b/src/tools/vmap4_extractor/mpq_libmpq.cpp index 5e0effc1a77..f3eb3da96b6 100644 --- a/src/tools/vmap4_extractor/mpq_libmpq.cpp +++ b/src/tools/vmap4_extractor/mpq_libmpq.cpp @@ -71,7 +71,7 @@ MPQFile::MPQFile(const char* filename): uint32 filenum; if(libmpq__file_number(mpq_a, filename, &filenum)) continue; libmpq__off_t transferred; - libmpq__file_unpacked_size(mpq_a, filenum, &size); + libmpq__file_size_unpacked(mpq_a, filenum, &size); // HACK: in patch.mpq some files don't want to open and give 1 for filesize if (size<=1) { diff --git a/src/tools/vmap4_extractor/mpq_libmpq04.h b/src/tools/vmap4_extractor/mpq_libmpq04.h index bb842daf258..6196285627d 100644 --- a/src/tools/vmap4_extractor/mpq_libmpq04.h +++ b/src/tools/vmap4_extractor/mpq_libmpq04.h @@ -42,7 +42,7 @@ public: uint32_t filenum; if(libmpq__file_number(mpq_a, "(listfile)", &filenum)) return; libmpq__off_t size, transferred; - libmpq__file_unpacked_size(mpq_a, filenum, &size); + libmpq__file_size_unpacked(mpq_a, filenum, &size); char *buffer = new char[size + 1]; buffer[size] = '\0';