Commit Graph
136 Commits
Author SHA1 Message Date
leak b8210f4396 SQL: Characters db storage type cleanup #1 - Note:
- MySQL numeric types can NOT be altered in value range or or storage size at all, so things like INT(32) are entirely pointless. As TC currently doesn't use the display width of numeric types, use the default width to avoid confusion. (see MySQL numeric types docs)

- Timestamps can be stored as INT(10) UNSIGNED. As the max value of this type is 4294967295 which translates into year 2106 using it as timestamp we are NOT affected by the year 2038 bug. If the timestamp needs to be negative in some cases, i.e. for displaying infinity using -1, use BIGINT(20) instead.

- Do NOT set ROW_FORMAT for InnoDB tables unless you specifically want COMPRESSED tables (which we don't for performance reasons). MySQL will chose the appropriate ROW_FORMAT by itself depending on the innodb_file_format setting of the server. (FIXED is only available for MyISAM)

- Even though VARCHAR does require less storage space than CHAR for values with variable length, the length still needs to be chosen wisely as this doesn't apply to memory consumption.
2011-01-19 02:53:44 +01:00
Shauren 9584f58130 Core/Battleground: Combine bg score type enum values with the same name
Signed-off-by: Shauren <[email protected]>
2011-01-14 23:02:15 +01:00
Spp bd2728eb74 Core: Fix some warnings 2011-01-11 11:18:00 +01:00
Taser 1a5554ccb5 Core/Battlegrounds: Fix Fel Reaver Ruins capturepoint in Eye of the Storm
Signed-off-by: Machiavelli <[email protected]>
2011-01-10 22:31:57 +01:00
Manuel 014714fb17 Core: Killing magic numbers. 2011-01-09 20:44:33 -03:00
Manuel 5cf76896eb Core/Battleground: Implemented blizzlike script for Isle of Conquest, written by gyullo and me, based on Socolin's and Josh's patch -BIG THANKS TO THEM-
Anyway the map is not yet playable, there are issues not related with the script.

I also want to thanks to QAston, linencloth, Shauren and Machiavelli to be so patient with my questions.
2011-01-09 00:00:08 -03:00
Machiavelli 957c69de83 Update copyright note for 2011.
Happy new year.
2011-01-01 15:01:13 +01:00
click f5492f82b5 Core: Include the name and ID of the affected BG in Battleground::GetBGCreature() error-reporting
--HG--
branch : trunk
2010-12-26 00:06:03 +01:00
Shauren 928443d899 Core: Removed more operator workarounds for ACE_Singleton (missed previously because of inconsistent naming)
--HG--
branch : trunk
2010-12-23 23:25:44 +01:00
Shauren b2b2f44506 Core/Battleground: SOTA
* Fixed boats model (Alliance/Horde)
* Send boats movement to all players
* Fixed demolisher respawn time
* Added support for achievement Storm the Beach (1310)
Patch by Socolin.

--HG--
branch : trunk
2010-12-23 13:15:26 +01:00
Xanadu cfa26522ad Core: Fixed occasional wrong order of async operations at respawn time saving. Closes issue #5239.
DB schema: Sorted out a discrepancy in respawn time column format.

--HG--
branch : trunk
2010-12-23 05:49:23 +01:00
Shauren 0f3b9019a8 Core: Get rid of dirty operator workaround for ACE_Singleton class implementation
--HG--
branch : trunk
2010-12-22 21:25:23 +01:00
Shauren 7b4e1c6387 Core/ObjectMgr: Static members are no longer accessed through singleton
--HG--
branch : trunk
2010-12-22 20:23:47 +01:00
leak 6115b0bd5f Removing ProgressBars as they are performing badly on startup.
[**************************************************] 100%
R.I.P

--HG--
branch : trunk
2010-12-22 00:12:03 +01:00
leak fd694cd232 Streamlining loading functions for server startup
- Added a couple of timer outputs
- Improved code consistency between loading functions
- Progess bars should look and behave similar on all OS now (sLog.outString() is not needed anymore to replace the progress bar in log files)

--HG--
branch : trunk
2010-12-19 17:06:33 +01:00
linencloth 59da698189 Core: Rename spell attributes, use more general names
--HG--
branch : trunk
2010-12-19 05:15:47 +01:00
Shauren b11e5bbf81 Core/Achievements: Prevent ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL updates at login
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_REACH_TEAM_RATING
Core/Achievements: Implemented map id requirement for achievement criterias

Closes issue #4479.
Closes issue #4478.
Closes issue #4473.
Closes issue #4472.
Closes issue #4471.
Closes issue #4480.
Closes issue #2284.
Closes issue #4481.

--HG--
branch : trunk
2010-12-17 18:12:46 +01:00
Anubisss 6d9029c12e Make some cleanup.
My thank goes to Az@zel for the code analysis.

--HG--
branch : trunk
2010-12-16 18:08:23 +01:00
azazel b39b8fdd0d DB Schema/Characters: removed columns auctionhouse.item_template, character_inventory.item_template, guild_bank_item.item_entry and mail_items.item_template and created item_instance.itemEntry column instead of them.
As a side effect moved related queries to prepared statements.
As one more side effect fixed not shown and lost mail items in returned expired mail (patch by Quriq14).

--HG--
branch : trunk
2010-12-15 14:08:12 +06:00
Shauren 58a9b15443 Core: Fixes some warnings
Core/SmartAI: Fixed DamageTaken and DamageDealt hooks

--HG--
branch : trunk
extra : rebase_source : 062f1c68cd1d318d192b294a493db17a1943bee2
2010-12-14 22:45:23 +01:00
click 2642894342 Core: Add new system for parallelizing client packet processing. Handle WorldSession updates in Map::Update() where we are safe to proceed. Patch by Ambal.
(And clean up tabs and whitespace while rummaging around in there)
Closes issue 5084.

--HG--
branch : trunk
2010-12-13 22:37:56 +01:00
azazel d2d62eab50 Cleanup: implemented helper methods for manipulating percentage calculation and used it where appropriate (plus fixed some other warnings).
NOTE: Initially I just wanted to fix some warnings, but noticed that there is no common method for percentage calculation and various formulas are used many time in the code making it difficult to read and understand what the code actually does. So, I introduced several template methods for calculating percent values and adding those values to the original base. I replaced all the raw calculations throughout the code where found, but I could have missed something or could have made a mistake. So, please report any strange behaviour after this commit.
If you ask me why I did it: for the sake of consistency and exact understanding what code means. If you see CalculatePct method, you clearly understand, that it find the value of x percent of y. And you can easily express, for example, spell behviour "reduces smth by x%" by the means of a method instead of recalling school maths.

--HG--
branch : trunk
2010-12-11 20:37:38 +06:00
Spp 408fce1de6 Core: Some optimizations
- Declare some functions const
- Fix some mem leak
- Fix some resource leak
- Remove unused variables and functions
- Remove duplicate functions
- Reduce the scope of some variables
- Remove unused file

--HG--
branch : trunk
2010-12-06 02:07:53 +01:00
Liberate 418f704e92 Core/Battlegrounds: Actually remove 16 rating from the teams if the match was ended because of the 45 minutes time limit.
--HG--
branch : trunk
2010-12-03 23:14:38 +01:00
click cf5e7b255d Core/Battleground: Fix compile - forgot to remove one '(' when pushing
(AND YES IT WAS TESTED - I was just thinking of cleaning it slightly, dropped it, and forgot I had changed it)

--HG--
branch : trunk
2010-12-02 23:14:26 +01:00
click 28c2e270db Core/Battlegrounds: Implement power resets on arena-fight preparations (first 60 seconds before arena-fight kicks off) (Thanks to Kaelima)
Restores all player powers every 5 seconds untill arena starts (fixes possible exploit with entering arena battle with full rage or runic power)
(The 5 second timer is not 100% confirmed, as official pages only states that the power is reset after prep-time - needs feedback)
Closes issue 4805

--HG--
branch : trunk
2010-12-02 22:50:30 +01:00
click 2338eae0ff Core/Battlegrounds: Stop arena matches after 45 minutes of no win/loss candidate, and deduct 16 points from each team (blizzlike) - Thanks to Alez
Closes issue 2017

--HG--
branch : trunk
2010-12-02 22:25:32 +01:00
Spp 25ac835507 Core/Groups: Move all function definition from .h to .cpp
Core/Groups: Remove Group.h dependency from any .h file

--HG--
branch : trunk
2010-11-29 07:50:31 +01:00
click 5cd3904059 Core/DBLayer: Move tables reserved_name, gameobject_respawn and creature_respawn from WORLD database to CHARACTER database as it's content is realm-specific and should be preserved (thanks to leak for the cleanup)
*** TO PRESERVE (COPY) THE DATA CONTAINED IN THE OLD TABLES, YOU MUST FOLLOW THE FOLLOWING SQL-RECIPE (REPLACE DATABASENAMES WHERE NEEDED!) ***

-- Move creature_respawn from world to characters db
INSERT INTO `characters`.`creature_respawn` (`guid`, `respawntime`, `instance`)
SELECT `guid, `respawntime` `instance` * FROM `world`.`creature_respawn`;
-- Remove creature_respawn table from world db
DROP TABLE `world`.`creature_respawn`;

-- Move gameobject_respawn from world to characters db
INSERT INTO `characters`.`gameobject_respawn` (`guid`, `respawntime`, `instance`)
SELECT `guid`, `respawntime`, `instance` FROM `world`.`gameobject_respawn`;
-- Remove creature_respawn table from world db
DROP TABLE `world`.`gameobject_respawn`;

-- Move reserved names from world to characters db
INSERT INTO `characters`.`reserved_name` (`name`)
SELECT `name` FROM `world`.`reserved_name`;
-- Remove reserved_names table from world db
DROP TABLE `world`.`reserved_name`;

*** THE ABOVE MUST BE DONE, OR EXISTING INSTANCES WILL BE FULLY RESPAWNED - YOU HAVE BEEN WARNED ***
Closes issue 4842. Closes issue 4849.

--HG--
branch : trunk
2010-11-19 15:53:14 +01:00
Shocker 48d90fab32 Misc: Some engrish fixes, thanks to ZxBiohazardZx, closes issue 4740
--HG--
branch : trunk
2010-11-14 23:46:34 +02:00
Shauren 7133f3f08e Core: Fixed some build warnings
--HG--
branch : trunk
2010-11-11 13:40:52 +01:00
Machiavelli 8862663df0 Core/Battleground: Fix a possible crash in Alterac Valley.
Author: HUNTERok
Fixes issue #4268

--HG--
branch : trunk
2010-11-09 11:08:33 +01:00
Shocker 222d1cd211 Core/Misc: Also remove buffs from pet when joining arena to make sure a player won't enter with a prebuffed pet, fixes issue 4287
--HG--
branch : trunk
2010-10-16 17:34:21 +03:00
Shocker 8154f7243c Core/Arenas: Remove pet spell cooldowns on arena join too, fixes issue 1868
--HG--
branch : trunk
2010-10-16 17:01:01 +03:00
azazel 3bd1ee0665 Fix most of the recently introduced warnings
--HG--
branch : trunk
2010-10-16 13:32:30 +06:00
Liberate 0a1d017b7d Core/Arena: Add a missing change from revision 6802b3bf07. Also personal rating should now start at 1k again if the team rating is over 1k and a new member joins the team (and the start personal rating is set to 0 in the config).
Fixes issue #4283

--HG--
branch : trunk
2010-10-07 16:49:35 +02:00
Liberate 6a504b983c Core/Arena: Fix an exploit which made you gain personal rating when you leave arena, and add some comments to the arena system (which I should have done way earlier).
--HG--
branch : trunk
2010-10-07 16:35:08 +02:00
click 613b81f36f REALLY fix the CRLF-crap...
--HG--
branch : trunk
2010-10-07 15:54:07 +02:00
click f0c4241ea4 Remove the accidental additions of CRLF-crap from the header updates
--HG--
branch : trunk
2010-10-07 15:35:36 +02:00
click a67d7c9afd Copyright header updates - part 3... (and some whitespace cleanups)
--HG--
branch : trunk
2010-10-07 14:00:52 +02:00
click 8ea4b32fab Update copyright headers (following the same standard in all files = good)
--HG--
branch : trunk
2010-10-07 12:41:56 +02:00
linencloth 41d816740b Core/Battleground: Fix typo
--HG--
branch : trunk
2010-09-30 19:54:32 +02:00
Shocker 78803c9f09 Magic numbers cleanup:
- Replace many magic numbers with constants
- Use enum for vehicle flags/seat flags
- Correct structure for ItemRandomSuffixEntry

--HG--
branch : trunk
2010-09-28 08:21:51 +03:00
Machiavelli 3c6dc32030 Core/DBLayer:
- Rewrite Field class to be able to store both binary prepared statement data and data from adhoc query resultsets
- Buffer the data of prepared statements using ResultSet and Field classes and let go of mysql c api structures after PreparedResultSet constructor. Fixes a race condition and thus a possible crash/data corruption (issue pointed out to Derex, basic suggestion by raczman)
- Conform PreparedResultSet and ResultSet to the same design standards, and using Field class as data buffer class for both
* NOTE: This means the fetching methods are uniform again, using ¨Field* fields = result->Fetch();¨ and access to elements trough fields[x].
* NOTE: for access to the correct row in prepared statements, ¨Field* fields = result->Fetch();¨ must ALWAYS be called inside the do { }while(result->NextRow()) loop.
* NOTE: This means that Field::GetString() returns std::string object and Field::GetCString() returns const char* pointer.

Still experimental and all that jazz, not recommended for production servers until feedback is given.

--HG--
branch : trunk
2010-09-24 22:16:21 +02:00
Spp 7a3fd2e9bf Core/: Fix warnings
--HG--
branch : trunk
2010-09-21 10:11:25 +02:00
Shocker eaadad5dfd Core/Arenas:
* Fix handling of Arena.ArenaStartPersonalRating
* Correct some typos for some arena configs in default world configuration file

--HG--
branch : trunk
2010-09-21 04:10:01 +03:00
linencloth d8a854d6e0 Core: Cleanup locale handling.
It also fixes the recent problem of strange strings.

--HG--
branch : trunk
2010-09-17 07:04:29 +02:00
Liberate 00630d94d4 Core/Arena: Fix another exploit: When leaving your team in the middle of the arena fight your average Matchmaker Rating will not change till after the fight.
--HG--
branch : trunk
2010-09-12 18:41:47 +02:00
click bf664b7a44 Cleanup/Core: Remove whitespace and tabs
--HG--
branch : trunk
2010-09-12 01:40:27 +02:00
Machiavelli a41e99223e Core/DBLayer:
* Rename QueryResult class to ResultSet
* Rename QueryResult_AutoPtr to QueryResult
* Declare ACE refcounted auto pointer for PreparedResultSet class

--HG--
branch : trunk
2010-09-11 21:10:54 +02:00