Commit graph

70 commits

Author SHA1 Message Date
VladimirMangos
3de8212e03 [10801] More ObjectGuid uses in battleground code. 2010-12-01 13:29:30 +03:00
VladimirMangos
6d13cd6553 [10800] Use ObjectGuid in some battleground structures.
Also fix some catches bugs in code in result.
2010-12-01 11:24:35 +03:00
VladimirMangos
cc0655a402 [10782] Use Team enum types in all appropriate cases and catches bug in result fix.
* Fixed wrong arenaid use at leave arena queue.
* Fixed memory lost and etc at not virtual EndBattleground call
* Fixed crash at arena join with fake data from client.
* Code cleanups.
2010-11-25 01:11:17 +03:00
VladimirMangos
c2331f58bc [10781] Use BattleGround(AV)TeamIndex enum types in AV battleground code.
* Added BattleGroundAVTeamIndex enum type for 3-case special team list fo AV.
* Rename BattleGroundTeamId -> BattleGroundTeamIndex for clarify
* Some safe checks added and dropped bogus call RewardReputationToTeam in BattleGroundAV::HandleQuestComplete
  for BattleGroundTeamIndex as faction. Unclear for what it expected used so dropped.
2010-11-24 17:39:03 +03:00
DasBlub
fc5dd54f37 [10612] Revert "[10611] Made some values const"
Reason: It makes no sense to make a local variable const.

This reverts commit 49e3184d69056738701bc15d9b7f982bf11d7bbc.
2010-10-15 22:29:10 +02:00
Reve
47d971c7f9 [10611] Made some values const
Signed-off-by: DasBlub <dasblub@gmail.com>
2010-10-15 22:14:42 +02:00
VladimirMangos
acd0716297 [10432] Rename ASSERT -> MANGOS_ASSERT and related fixes
ASSERT hard use in predictable way because diff. 3rd party libs code
redefine it inf different ways and hard make sure that used in end
of mangos define version. This is real detected problem make some
expected assert checks ignored and so bugs not detected as expected from code.

In addition made related changes:
* Common.h header expected to be first include in any src/game/header except most simple cases.
* Related FILE.h header expected to be first include in FILE.cpp
* Fixed some absent includes and type forwards for safe build without PCH enabled.
* Avoid using MANGOS_ASSERT in src/framework code
2010-09-02 05:13:16 +04:00
VladimirMangos
dbe9c6f190 [10371] More wide use ObjectGuid in group code.
Also drop some unused functions.
And fix some uint32 -> uint6 guid assigns.
2010-08-18 13:43:55 +04:00
VladimirMangos
fecf6fdb72 [9880] Prepare world state inint packet data in more clean way.
* Avoid use hardcoded field amount values
* Avoid use world state update packets just after world state init packet
* Attempt make code look less horrible in general.
2010-05-12 09:28:03 +04:00
VladimirMangos
b37933454d Now BG honor marks not reawrded in BG
* And related spells not create items.
* Update code for allow creat marks for single existed case: outfield bg
  that not yet implemented in mangos.
2010-04-08 03:29:13 +04:00
tomrus88
9836bcbbaa Added enum for SMSG_GROUP_JOINED_BATTLEGROUND opcode.
Use this enum where possible.
Some misc fixes.
2010-04-03 22:22:30 +04:00
balrok
1b2eefd721 [9598] update battlegrounds per map + cleanup at delete
this will be useful, if we have multithreaded mapupdates one day

since i couldn't reproduce any errors regarding to self deletions of
battlegrounds i removed the m_deleteThis variable
2010-03-17 00:47:22 +01:00
balrok
24d45c6a08 [9597] create battleground map at bg creation
when a bg gets created it will also get it's map
(old behaviour was, that map got's created when first player entered the instance)

the reason why battlegroundmaps aren't instantiated with a player object:
    * the only information from player-class we need is player->GetBattleGround()
      also we can't use anything else
      (e.g. playerlevel can be outside of bg-levelrange)
      -> cause bgs depend pretty much on their maps this caused circualr dependencies between map,bg,player
    * battlegroundmaps will _always_ be prepared by the bgsystem to set the proper data
    * there is not much shared in the creational process with dungeonmaps
      even the functioncall is different since players need to enqueue first for bgs,
      therefore again the player's way to that instance is only through the bgMgr
2010-03-17 00:41:54 +01:00
VladimirMangos
63709fdc49 Use PVPDificulty.dbc for bg/arena bracket selection (levels and difficulty) 2010-01-09 03:36:27 +03:00
VladimirMangos
3e3c090348 [9129] Rename BG/arena queue_id to bracket_id and related functions/etc
This is more consistent to wide used terms

Also some other cleanups.
2010-01-08 22:40:34 +03:00
VladimirMangos
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03:00
balrok
c50df41b3c [8775] implement all creature difficulties + support bgs with this
former know as heroic_entry we now have 3 of those
which let us chose different creature_templates for different
map-types

normal maps will need a bit more support to use correct
spawnmodes

but for battlegrounds it works already good:
they are divided by levelrange:
    0-59  == normal spawn -> spiritguides level 60
    60-69 == difficulty=1 -> spritiguides level 70
    70-79 == difficulty=2 -> spiritguides level 80
    80    == difficulty=3 -> spiritguides level 80

this is needed mostly for alterac valley to get
right creature-templates spawned
and with that all creature->SetLevel hacks could
get removed from alterac valley code
2009-11-05 10:48:15 +01:00
balrok
45f6a474bf [8608] implement BattleGround Alterac Valley
sql won't be included - please look at your database
providers forum

also note, that creature_loot_template id 0
is used for the loot of dead players in this bg
(after a player died and you remove insignia from him..
he not only drops money - he drops some random items too)

further work must be done in better code for adjusting right
levels to creatures - maybe using something similar like it's
done in heroic instances

also quests and creatures needs some scripts in future

thanks to:
netsky - initial start of this patch
bogie - 2nd person writing on this patch
triply, kapatejib, vladimir - code review and suggestions
arrai - for his great tool and help
and all testers / code contributers - I won't write
down a list, else I would forget most probably one ^^
2009-10-09 18:18:22 +02:00
VladimirMangos
59befa2e0e Merge branch 'master' into 320 2009-10-02 19:09:06 +04:00
XTZGZoReX
c5a22f775b [8574] Use map pointer in BattleGround for faster access
this avoids the HashMapHolder usage when searching
for objects
2009-09-30 18:18:33 +02:00
tomrus88
546f7a7fe5 Merge commit 'origin/master' into 320
Conflicts:
	src/game/BattleGround.cpp
2009-09-28 19:52:54 +04:00
balrok
a59c6bb0d9 [8555] removed now unused spelldefinition
SPELL_WAITING_FOR_RESURRECT isn't used anymore
2009-09-28 17:47:02 +02:00
balrok
1f9b4ca4c3 [8553] removed spiritguide from code
they basicaly should
*autocast 22011
*give player after gossiphello buff 2584
*port players away to another spiritguides, when they die

so this can be done by a script
and maybe eventai
2009-09-28 16:45:06 +02:00
balrok
2adf6245c2 BattleGround: removed now unneeded functions
I couldn't remove AddObject and m_bgObjects from code
cause it's still needed for buffobjects.. later
the poolsystem must be rewritten, so that it'll work for instances too
then those objects can be removed

(it would be possible to take the eventsystem for those spawns too - but
this would be the wrong way to handle it)
2009-09-28 16:42:01 +02:00
balrok
9b7b3b0304 corrected spawning of buffobjects in arena
they are spawned in all arenas 60 seconds after start
so i implemented this function in BattleGround.cpp
maybe we should use BattleGroundAA for such things
then we also can drop all arena-files, cause
all arenas are working in the same way
(at least those which are currently implemented)
2009-09-28 16:41:54 +02:00
balrok
c77683afbb event-handling functions in battleground-class
i added a map m_ActiveEvents which will track all current active events
it's allways key:event1 -> value:event2 so it's like a one dimensional array
which contains current active event2..
i only need one event2 in this list, cause i only want to allow one event2 at
the same time if other event2 are also active right now - i would just despawn
it

(for example (numbers not real) arathi basin stables are event1=3 and have 5
states (alliance assault, horde assault, neutral...) so every state has an
event2 index and only one state at a time is possible (so if we spawn
horde-contested gameobjects/creatures, we will despawn everything else)

OnObjectDBLoad - generic implementation for this function:
    will automaticly spawn or not spawn.. open (doors) or not open
    gameobjects/creatures

doors:
i use event1=254 and event2=0

IsDoor(event1,event2) - just a check if this event could be a door (mostly not
    needed for bg-subclasses)

OpenDoorEvent(event1,event2) - opens the door (used in bg subclass cause some
doors also must be despawned)

SpawnEvent(event1, event2, bool spawn)
    spawn=true says all related gameobjects/creatures getting spawned, else despawned
    will despawn all event2 in event1 which are not equal to the
    event2-parameter
    also this function will set the right values in m_ActiveEvents

IsActiveEvent(event1,event2) - returns true if event is active
2009-09-28 16:41:33 +02:00
balrok
538c5c257e [8548] implement db supported battleground eventindexes
those eventindexes will then be used by the battleground-code to decide
which creature belongs to which objective
for example all creatures in alteracvalley which are standing around a tower
will belong to one eventindex then.. the eventindex will be defined through the code
and must be proper documented for db-devs
2009-09-28 16:41:00 +02:00
balrok
3cf92b8507 spawnbgobject now accepts guids instead of bg_objects-index
this makes those functions independent from the bg_objects vector

also dooropen and doorclose will now accept only guid

additional i removed the comments around spawnbgcreatures-function
also i updated this function, so that it'll work
2009-09-28 16:15:25 +02:00
balrok
bd87209498 call OnObjectDBLoad(Creature/GameObject) for battleground at object-loading
this is a virtual function and can be used to move gameobjects
and creatures from battlegroundcode to database

for this i also had to add a BattleGround-pointer to the map
so i renamed CreateBattleGround(instanceid) to CreateBattleGroundMap(instanceid, Battleground*)
2009-09-28 16:15:01 +02:00
tomrus88
3f33946d6a Update to latest client build 10505.
Fixed CMSG_AUCTION_SELL_ITEM.
Fixed CMSG_BUY_PETITION.
Some other fixes.
2009-09-26 19:40:14 +04:00
tomrus88
f97da77cbd Merge commit 'origin/master' into 320 2009-08-05 14:52:29 +04:00
VladimirMangos
a6413516f9 [8315] Fixed memory leaks (mostly at server shutdown) and code cleanups.
* Fixed leak in BattleGround::m_PlayerScores at BattleGround::Reset,
  add and use BattleGroundScoreMap typedef
* Delete AreaTeam objects stored in global map at shutdown
* Delete Corpse objects stored in global map at shutdown
* Store guild bank log entries as objectes instead pointers in log event lists
2009-08-05 14:27:30 +04:00
tomrus88
a06853bc61 Merge commit 'origin/master' into 320 2009-07-30 08:22:31 +04:00
VladimirMangos
9002710c93 [8276] Implement achievment ACHIEVEMENT_CRITERIA_TYPE_WIN_BG
* including new achievement createria data type ACHIEVEMENT_CRITERIA_DATA_TYPE_BG_LOSS_TEAM_SCORE

Note: Some achivement creteria for success need data in `achievement_criteria_data`
2009-07-29 17:29:10 +04:00
balrok
d8c1e3991f [8274] use virtual m_TeamScore for battlegrounds
score is used in every battleground (not arena)
so we can use it as a virtual variable to access
it also from BattleGround-class

Signed-off-by: balrok <der-coole-carl@gmx.net>
2009-07-29 14:45:45 +02:00
tomrus88
02bcc56919 Added placeholders for new battlegrounds, some other stuff. 2009-06-25 19:08:53 +04:00
Nezemnoy
00820846e9 [7805] Refactoring batleground rewards code for cleanup and useful state for custom reward reuse.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-09 16:20:13 +04:00
balrok
6b2fd22a9c [7632] more "if"-condition related codestyle in battlegroundfiles
this time with this regex:
sed -i 's/if *( *\(.*\) *)$/if (\1)/' BattleGround*
2009-04-07 17:25:53 +00:00
Triply
73d12d7ccf replaced if( bla ) with if (bla) for applying mangos coding style
replaced it with sed -i 's/if( \(.*\) )$/if (\1)/' BattleGround*
written by triply

Signed-off-by: balrok <der-coole-carl@gmx.net>
2009-04-07 16:13:46 +00:00
Triply
571c56ff07 [7449] Fixed BG queue invitation status showed on client. Fixed BG starting timer and BG ending timer.
TODO: make bg queue update player's status each minute.

Signed-off-by: Triply <triply@getmangos.com>
2009-03-13 00:09:50 +01:00
balrok
b6064c373e [7437] Fixed client visible instance ids for battlegrounds. Patch provided by balrok. Thx.
Signed-off-by: Triply <triply@getmangos.com>
2009-03-10 16:52:24 +01:00
balrok
aebcf212dc [7432] Fixed BattleGround's bonus_honor based on player level and reputation rewards. Implement functions for BattleGroundWeekends. Patch originally provided by Balrok. Thx
Correctly assigned some comments.

Signed-off-by: Triply <triply@getmangos.com>
2009-03-09 22:32:11 +01:00
Triply
bd0619ce40 [7415] Fixed removing player from battlegrounds
Probably fixed bug with not ending battlegrounds - reported in previous commit message
Fixed player will loose arena rating if
1. he doesn't click on enter rated arena window - and timer will expire
2. he logs out during time he is invited to rated arena match
3. if he logs out during fight in rated arena match
Patch is not tested, i will test it as soon as possible.

Signed-off-by: Triply <triply@getmangos.com>
2009-03-08 22:18:53 +01:00
Triply
ee5feab3eb [7414] Fixed premature finish timer messages for battleground (va_start was broken).
Fixed typo with BattleGroundPlayerMap.
Optimized implementation for removing offline players from battleground.
Fixed typo in BattleGroundMgr::DeleteAllBattleGrounds.
Patch is tested and should work.

TODO there is a bug if you disable premature finish timer, that can cause battlegrounds to be never ending!
TODO rewrite BattleGround::RemovePlayer function - and fix bugs there!
I might not have today enough time to fix those bugs.

Signed-off-by: Triply <triply@getmangos.com>
2009-03-08 13:28:35 +01:00
VladimirMangos
722395be75 [7413] Fixed finally problems with node names localization in BattleGroundAB messages.
Also fix build at some platforms.
2009-03-08 14:39:53 +03:00
VladimirMangos
57e715857b [7409] Support localization for messsages in specialized battagorund code BattleGround*.cpp
Note: BattleGroundAB still have problems with team/node localization in result wrong way LANG_ strings used.
2009-03-08 09:52:52 +03:00
VladimirMangos
28a8e0c9cf [7407] Implement per-client localization support for battleground broadcast messages. 2009-03-08 08:10:54 +03:00
VladimirMangos
27a2d88796 [7406] Remove string version of BattleGround::SendMessageToAll. Use only string_id versions always. 2009-03-08 05:48:05 +03:00
Triply
8a9942619b [7404] Fixed cheating in rated arena matches by alt+f4.
Signed-off-by: Triply <triply@getmangos.com>
2009-03-08 01:48:41 +01:00
Triply
1ee2320484 [7399] Rewrited BattleGround starting code - moved it to battleground class.
Fixed message color for premature finish warnings.
Fixed .debug bg command won't allow 1v0 arenas now, only battlegrounds 1v0.
Added battleground announcer message removed in [7384].
Patch is tested, everything worked for me. You must execute attached sql file!

Signed-off-by: Triply <triply@getmangos.com>
2009-03-07 11:23:23 +01:00