Commit Graph

587 Commits

Author SHA1 Message Date
Xanadu
d104f19469 *Properly initialize members to prevent DB logging before the DB is started. Fixes a rarely seen startup crash.
*Code cleanup.

--HG--
branch : trunk
2010-05-29 03:16:39 +02:00
Machiavelli
7c0f140bb0 Use ´manual´ ACE_Thread_Mutex objects in SQLTransaction class instead of using ACE_Based::LockedQueue.
This will either result in a crash fix caused by underlying operations of ACE_Based::LockedQueue, or at least give us a clearer view at where the crash is coming from.

--HG--
branch : trunk
2010-05-26 19:19:06 +02:00
Machiavelli
6da6879eff Add another ACE_Thread_Mutex in Database class for threadsafe operations on m_transQueues.
Fixes crash specified in comment #8 on issue #2214

--HG--
branch : trunk
2010-05-26 19:04:13 +02:00
Anubisss
a5840e9286 Implement a signalhandler via ACE.
Thanks to Diver for test compiling under WIN.

--HG--
branch : trunk
2010-05-19 21:16:59 +02:00
Machiavelli
437a5d90b2 Fix a possible crash in SqlTransaction::Execute(), using post-iterating on the LockedQueue instead of pre-iterating.
Thanks to click for the insight and Spp for testing.

--HG--
branch : trunk
2010-05-16 13:31:52 +02:00
Machiavelli
fa57ce4cd1 Reimplement ACE_Based::LockedQueue as SQL holder for the SqlTransaction class, since std::queue is not safe when multiple threads are reading/writing to it at the same time (SqlDelayThread and a MapUpdate Thread).
Original patch by thenecromancer, was removed for ungrounded reasons.
Thanks to Zor for the insight.
Please give feedback on how this affects mtmaps usage.

--HG--
branch : trunk
2010-05-15 14:58:16 +02:00
Machiavelli
7ff9e82f1a Use delete[] on object allocated with new[x+y*z] in TileAssembler.
--HG--
branch : trunk
2010-05-15 13:48:31 +02:00
Machiavelli
144a146810 Fix crash introduced in 4610bbf047.
- Update SqlAsyncTask´s destructor, properly NULLpoint SqlOperation* m_op so other threads can deal with it accordingly.
- Don´t keep NULL´d elements in transaction queues, remove them instead.

This now means you should be able to run a stable server with > 2 MapUpdate threads. Please leave feedback.

Courtesy of click and myself.

--HG--
branch : trunk
2010-05-13 17:24:54 +02:00
Machiavelli
5e48be89d5 Fix a crash in SqlAsyncTask::call caused by the fact that the SQLOperation to be called was a NULL pointer.
The crash was mostly noticable on servers with relatively high MapUpdate Threads, since the window between SqlAsyncTask::call()´s NULLpointer check for m_op and the usage of this pointer was larger when more map threads are calling Database::CommitTransaction()´s and NULLing this pointer.
Fixes crash specified in comment #24 in issue #1259, and most likely will affect other crashes specified there as well.
Courtesy of click and myself, and our lengthy and deep brainstorming session.

--HG--
branch : trunk
2010-05-13 14:22:00 +02:00
Spp
a3a8e6da2c Some warning fix
Tab to spaces
Remove trailing spaces

--HG--
branch : trunk
2010-05-13 00:15:21 +02:00
click
f60d534b73 Cleanup on some database-related files: merge some DB-related files, add some consistency to callhandles in sourcetree (M
+ combine MySQL-specific files into main database-files (click)
+ fix vcproj-files, adjust handler-function names for consistency (Machiavelli)

--HG--
branch : trunk
2010-05-08 05:03:32 +02:00
click
cb84d3e617 Cleanup : Remove postgreSQL-support (not used and has also been broken for a long time)
--HG--
branch : trunk
2010-05-06 09:53:09 +02:00
Machiavelli
62dc839819 Use ACE_GUARD_RETURN macro in LockedQueue::next to guarrantee the lock is acquired before changing the queue´s properties
--HG--
branch : trunk
2010-05-05 21:46:54 +02:00
Spp
a0e1357e2b Fix locale selection at server load.
--HG--
branch : trunk
2010-05-02 00:16:05 +02:00
Spp
74dd02d024 Remove LOTS of compile warnings
--HG--
branch : trunk
2010-04-19 09:26:37 +02:00
n0n4m3
8abcca0a06 Another fix quest flags, Implement support weekly quests cooldowns(Original patch by GriffonHeart), also code cleanups.
--HG--
branch : trunk
2010-04-15 08:26:30 +04:00
Spp
65c3e979e2 Tab to Spaces and remove of trailing spaces
--HG--
branch : trunk
2010-04-11 20:20:38 +02:00
n0n4m3
8db7c06e6b Fix Auth on server also some fixes and cleanups. Big thx to TOM_RUS.
--HG--
branch : trunk
2010-04-11 11:11:32 +04:00
Rat
1f46c1150d *fix an sql-dbc load bug, patch by Qaston
--HG--
branch : trunk
2010-04-08 22:40:14 +02:00
Spp
b27ce42704 Code Style: Remove trailing spaces
--HG--
branch : trunk
2010-04-07 18:09:10 +02:00
Spp
f490ad5ac2 Code Style: tab to spaces
--HG--
branch : trunk
2010-04-07 17:24:07 +02:00
raczman
bcb67eb490 Include ACE headers in case they are not in system path.
Thanks for spotting the bug guys:
GL.AntiDiavol, next3x, Aokromes

--HG--
branch : trunk
2010-04-07 13:09:07 +02:00
raczman
e30e9a45cb Cleaned up include directories in cmakes.
--HG--
branch : trunk
2010-04-06 15:53:27 +02:00
XTZGZoReX
7c277c87d8 * Only call Database::ThreadStart()/ThreadEnd() once per thread.
* Some cleanups in MapUpdater/DelayExecutor.

--HG--
branch : trunk
2010-04-05 13:08:47 +02:00
_manuel_
fae77f2621 Add additional field for storage of speed_run rate of creature
This allow independent rate of walk vs run speed. Existing field renamed to explicit speed_walk.

Note that default database rate for run is a result of the most common value seen, 8.0/7.0

Author: NoFantasy.

--HG--
branch : trunk
2010-03-21 14:57:49 -03:00
Machiavelli
48051d1cd6 Add support field 'allowMount' to instance_template table (see http://trinitydatabase.org/index.php?/topic/14994-7656-instance-template/), this will define whether or not mounting is allowed in an instance, instead of defining it hard coded in the core.
--HG--
branch : trunk
2010-03-21 17:34:25 +01:00
n0n4m3
04e7a5bd39 Cleanup and applying code style to some Database files.
--HG--
branch : trunk
2010-03-09 15:45:34 +03:00
silver1ce
9e63454b63 store unit's level in uint8 format
TODO: may be change db format too

--HG--
branch : trunk
2010-03-03 02:48:31 +02:00
silver1ce
fcaa318fb3 Update visibility system
*visibility updates and ai relocations processed simultaneously for each grid
  *these operations now are not synchronized for different grids
  *some changes into structure of visibility notifiers

--HG--
branch : trunk
2010-02-27 15:25:14 +02:00
Tartalo
c6bdcb6b7c Dump characters to separate files config option, by azazel.kon
Resolves #744

--HG--
branch : trunk
2010-02-23 00:05:10 +01:00
Brian
90ba30cfd3 * Changed TrinityCore2 to TrinityCore. There is no TrinityCore2 anymore.
* Removed unused SystemConfig.h.in

--HG--
branch : trunk
2010-02-15 08:05:02 -07:00
Brian
486c00891b * Core switch to client 3.3.2 (11403)
* Credits (in no particular order) to:
* n0n4m3, raczman, manuel, Spp, Malcrom, Teacher, QAston, Tartalo,
* thenecromancer, Xanadu, Trazom, Zor, kiper
* Additional credits to:
* TOM_RUS and NoFantasy from MaNGOS
* Thanks for testing Aokromes and XTElite1
* SoTA still needs some work, but is very playable (huge thanks to raczman and
* kiper)
* To upgrade, you need to apply all SQL from sql/updates/3.2.2a_old from the
* last rev you are on
* and then apply all SQL from sql/updates/3.3.2_old to char / realmd / world
* DBs
* Known problem with guild banks.

--HG--
branch : trunk
2010-02-14 19:13:14 -07:00
n0n4m3
a893682dbf Fix compile warning on win.
--HG--
branch : trunk
2010-02-10 18:36:08 +03:00
n0n4m3
293ea07a25 Revert revision: 053bfe8ad9, this cause some crash.
Use dynamic_cast more is safer.
I think no more crash on db code.

--HG--
branch : trunk
2010-02-10 16:04:48 +03:00
n0n4m3
8676e5056f Implement async class for database operations for better performance, remove 10ms sleep, fixed some crash on sql execute.
--HG--
branch : trunk
2010-02-07 08:22:31 +03:00
Xanadu
a5d1bc77ab A great purge of obsolete macros.
--HG--
branch : trunk
2010-02-05 00:31:28 +01:00
thenecromancer
9b6cf93d7a Use normal ace thread mutex
--HG--
branch : trunk
2010-02-01 11:30:05 +01:00
thenecromancer
fd5f1e554d Use recursive thread mutex for SQL transaction queue
--HG--
branch : trunk
2010-02-01 10:23:18 +01:00
Anubisss
d9cb070215 Implement QueryResult_AutoPtr type which is ACE's reference counted auto_ptr(ACE_Refcounted_Auto_Ptr) for QueryResult pointers.
Use this auto_ptr for every DB queries(except QueryNamedResult yet).

This patch guarantees NO memory leaks from QueryResult pointers.

Thanks to raczman for the idea and for the helping to make this patch.

--HG--
branch : trunk
2010-01-23 14:45:58 +01:00
Brian
7162dcd475 * Backed out changeset c7c6faf26cbd
* A different solution to damage will be implemented
* You will need data from your DB provider if you don't have a backup

--HG--
branch : trunk
2010-01-21 18:38:49 -07:00
win32
2572e9ef8e * Add support for basedmg and baserangeddmg values in creature_classlevelstats.
* Remove mindmg, maxdmg, attackpower and ranged field in creature_template and add Dmg_Mod, Rangeddmg_Mod field.

--HG--
branch : trunk
2010-01-21 13:48:27 +02:00
n0n4m3
99f66a6bc9 Updated copyright for new year.
--HG--
branch : trunk
2010-01-16 20:19:18 +03:00
XTZGZoReX
a66152215e * Add support for base armor values in creature_classlevelstats.
* Change the table structure to be more core-friendly.
* Remove armor field in creature_template and add Armor_mod field.
* Also add static CreatureBaseStats::GetBaseStats() function for scripts.

--HG--
branch : trunk
2010-01-10 22:02:03 +01:00
QAston
8e9d2cdf01 Update aura system:
* Change system logic - unify Auras, AreaAuras and PersistentAreaAuras:
  * Aura has now its owner - which is the WorldObject, which applies aura (creates AuraApplication object) dependant on aura radius, and effect type
  * Owner can be Dynobj (DynObjAura class) for PersistentAreaAuras, or Unit (UnitAura class) for Area and nonArea auras
  * Aura data is shared for all units which have AuraApplication of the Aura
   * Because of that AuraEffect handlers , and periodic tick functions can't modify AuraEffect object (they are const now)
  * Remove spell source and AreaAuraEffect classes
  * Add AuraEffect::UpdatePeriodic function, to allow periodic aura object modification (target independant)
  * Add AuraEffect::CalculateAmount and AuraEffect::CalculateSpellMod function, to allow non-default amount calculation
  * AreaAura updates are done in owner _UpdateSpells cycle
  * Since now you don't need to wait an aura update cycle to get area aura applied on it's correct target list
  * And you can access area aura target list
  * Add basic support for aura amount recalculation
  * Save recalculation state and base amount of auras to db
  * Add AuraEffect::CalculatePeriodic function to determine if aura is periodic, and to set correct tick number after aura is loaded from db
  * Add ChangeAmount function in addition to SetAmount function, to allow easy reapplication of AuraEffect handlers on all targets
  * Sort aura effect handlers in SpellAuras.cpp and .h by their use
  * Add check for already existing aura of that type to some AuraEffect handlers, to prevent incorrect effect removal
  * SPELL_AURA_CONVERT_RUNE and MOD_POWER_REGEN and MOD_REGEN hacky handlers are now implemented correctly
  * Send aura application client update only once per unit update - prevent unnecesary packet spam
 * Fix ByteBuffer::appendPackGUID function - it added additionall 0s at the end of the packet
 * Fix memory leak at player creation (not deleted auras)
 * Updated some naming conventions (too many to mention)
 * Added Unit::GetAuraOfRankedSpell() function
 * Remove procflags on aura remove, use Aura::HandleAuraSpecificMods instead
 * Added functions to maintain owned auras (GetOwnedAuras, GetOwnedAura, RemoveOwnedAura, etc)
 * Implement AURA_INTERRUPT_FLAG_LANDING
 * Implement EffectPlayerNotification (thanks to Spp)
 * Remove wrong aura 304 handler
 * Add better handler for death runes
 * Remove unnecesary variables from DynamicObject class, and cleanup related code, link dynobj duration with aura
 * Add GetAuraEffectTriggerTarget function in CreatureAi for special target selection for periodic trigger auras used in a script
 * Add many assert() procection from idiots using some functions in wrong way
 * I am to lazy to write here anything more
Thanks to Visagalis for testing this patch
PS: Do not make patches like this, please

--HG--
branch : trunk
2010-01-10 01:23:15 +01:00
silver1ce
f82d5cb3fc fixed the bug that GetVmapHeight returns incorrect height on terrains(flying units fall below map etc)
also unlocked max ray lenght for getHeight, by default it's 10 yards

--HG--
branch : trunk
2010-01-06 12:15:02 +02:00
_manuel_
0e18bc37c2 Removed moveflags column from creature_addon and creature_template_addon. Thanks to Zor and raczman.
--HG--
branch : trunk
2010-01-02 19:52:08 -03:00
XTZGZoReX
03890fbe48 * Partial revert of [6833 : 970affc03278] - code style fixes + a warning fix preserved. Don't ask me why, but apparently time CAN be negative in TC. Funny stuff.
--HG--
branch : trunk
2009-12-29 00:27:44 +01:00
XTZGZoReX
a5f681fe9e * Time, by definition, cannot be negative for a timer, so this should be uint32, not int32. :)
--HG--
branch : trunk
2009-12-28 21:23:31 +01:00
n0n4m3
250a00cc1c Temporary revert 6743 commit. I fix this patch across 1-2 days.
--HG--
branch : trunk
2009-12-24 10:20:15 +01:00
n0n4m3
3fe0bc5254 Replaced time(NULL) on sGameTime.GetGameTime() this is used for better performance.
Original Timer.h divided into 2 parts. Shared project has no need to know about GameTime Singleton.
2 Identical structures with different types are now replaced with one generic templated structure and 2 typedefs.

--HG--
branch : trunk
2009-12-23 08:04:10 +01:00