Commit graph

60 commits

Author SHA1 Message Date
VladimirMangos
d7ae5e3af0 [8718] Remove most GetObjectInWorld functions and move some map local to Map
Also mape pet guid counter per-map (in different expecte to be global pet number)
2009-10-24 01:16:40 +04:00
VladimirMangos
b942616ded [8710] Make vehicle guid counter per-map local.
Also update/drop/move to Map some dependent functions.
2009-10-22 17:43:41 +04:00
VladimirMangos
d482193cea [8705] Move DynamicObject guid counting from global levle to map.
This is first step in guid counting for map local object types at map level.
Map local countin let
1) have more wide guid space and then more seldom have problems with guid counter overflow
2) possible implement (later) restart map at guid overflow without server shutdown.
3) let use static guids (not for DynamicOPbject that not stored in DB anyway) in instances instead dynamic allocated.
2009-10-22 06:49:35 +04:00
seirge
f015e77a07 [8680] Spawn objects only in loaded grids (not just created)
Real object creating in grid make sense only if grid data already loaded, in other cases
gameevent/pool related object will loaded at normal grid data loading.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-10-20 11:34:01 +04:00
VladimirMangos
8bf52f7c63 [8678] Move objects updates store and proccessing for send to client in per map way. 2009-10-19 23:46:58 +04:00
ApoC
45c9c136ba [8653] Implemented per map guids store.
This patch implements storing guid->object pairs on per map level, this leads
to less locking in ObjectAccessor in case of further multithreaded map update.

For case of cross map guid looking (auras cases) all maps are linked into
ObjectAccessor and can be traversed for this lookup.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-10-17 00:12:31 +02:00
NoFantasy
9cb356851c [8626] Add missing argument names in function declaration.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-10-11 16:37:41 +02:00
VladimirMangos
a9af7f2b1c Use reset time for normal/heroic from new DBC. Improve basic support for raid difficalties. 2009-10-06 02:12:02 +04:00
tomrus88
546f7a7fe5 Merge commit 'origin/master' into 320
Conflicts:
	src/game/BattleGround.cpp
2009-09-28 19:52:54 +04: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
258e19a4a3 Merge commit 'origin/master' into 320 2009-09-22 18:14:06 +04:00
Ambal
cfea99ea62 [8524] New cell search algorithm implemented. You can now choose different visibility distances on continents, in BG/Arenas and instances.
Please, update your config files and check new options:

Visibility.Distance.Continents    = 90
Visibility.Distance.Instances     = 120
Visibility.Distance.BGArenas      = 180

Thanks everyone involved in patch tests!

Signed-off-by: Ambal <pogrebniak@gala.net>
2009-09-21 23:25:29 +03:00
VladimirMangos
7974e1ebcb Merge branch 'master' into 320 2009-09-10 05:46:08 +04:00
balrok
bd30769dec [8475] fixed some gcc-warnings
all warnings from Wunused
and some from Wall

cause unused may be most interesting for some:
they were in following files:
src/game/Level2.cpp
src/game/Map.cpp
src/game/SpellAuras.cpp
src/game/Unit.cpp
src/mangosd/Master.cpp
but i guess mostly someone just fogot to remove this code

for some unsigned vs signed warnings i used:
ack "for.*int .*size\(\)" | ack -v uint

also note for coding:
if you do something like
    if( a && b || c)
just place parentheses around (a && b) && always will have
precedence over || but without parentheses this could be overseen
quite fast (at least that's my guess why gcc will warn for this)

Signed-off-by: balrok <der-coole-carl@gmx.net>
2009-09-05 13:47:47 +02:00
tomrus88
f90f3dd987 Merge commit 'origin/master' into 320
Conflicts:
	src/game/ArenaTeam.cpp
2009-07-29 15:17:37 +04:00
Sorya
7f38da23fd [8272] Fixed typos in world 'height' by code.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also some other code style fixes.
2009-07-29 10:04:53 +04:00
tomrus88
be8eaf4e46 Just merge commit 'origin/master' into 320
Conflicts:
	src/game/MiscHandler.cpp
2009-07-28 17:05:38 +04:00
Ambal
64f11bedf7 [8252] Move DB scripting code from global World to Map.
This one more step to pre-map events proccesing and parallel in future.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-26 12:20:59 +04:00
tomrus88
1a47420fe8 Merge commit 'origin/master' into 320
Conflicts:
	src/game/Map.cpp
	src/game/MapInstanced.cpp
	src/game/Player.cpp
	src/game/SpellEffects.cpp
	src/game/Totem.cpp
2009-07-15 09:40:13 +04:00
Ambal
58209ee79a [8182] Store and use Map* pointer in WorldObject instead map ids for speedup
Also some code logic cleanups.
Changes let make more cleanups in base map access and other places,
but this chnages not inlcuded in patch.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-15 02:13:52 +04:00
tomrus88
02bcc56919 Added placeholders for new battlegrounds, some other stuff. 2009-06-25 19:08:53 +04:00
Ambal
a4eab7e9f2 [7811] do not reload already loaded map coordinats at runtime.
Signed-off-by: AlexDereka <dereka.alex@gmail.com>
2009-05-11 13:01:56 +04:00
Ambal
2aff48cc5d [7810] Moved ZThread related code on ACE framework.
Remove ZThread source code from mangos.
Signed-off-by: AlexDereka <dereka.alex@gmail.com>
2009-05-11 12:14:22 +04:00
VladimirMangos
fc0e1ecdf1 [7690] Move GetCreature/GetGameobject to class Map.
* This let get objects at map without reference to player or another object.
* Simplify future implementation for per-map storage for like objects
2009-04-20 19:08:13 +04:00
freghar
0fc68c5e1e [7609] Trailing whitespace cleaning
Here we are again! "git diff --check" !!

Signed-off-by: freghar <compmancz@gmail.com>
2009-04-03 16:46:39 +02:00
VladimirMangos
89d9e736a3 [7594] Lost last moment fixes for prev. commit.
This will fix crashes at teleports.
2009-04-01 04:49:12 +04:00
VladimirMangos
5dc0a1ed97 [7593] Map::EnsureGridLoaded related cleanups and fixes:
* Make generic EnsureGridLoaded function and move specialized code to LoadGrid and EnsureGridLoadedAtEnter
* Rename args to gx/gy for low-level grid numbering values.
* Remove redundent LoadMpa call after always case loading maps in EnsureGridCreated
2009-04-01 03:23:35 +04:00
VladimirMangos
8c23d3cd50 [7578] Replace generic [7577] implememtaion by more explicit code.
This must restore build at Unix/Linux.
2009-03-29 14:02:12 +04:00
VladimirMangos
24f1cf4b83 [7577] Implement YellToZone for different world object types. 2009-03-29 01:09:15 +03:00
VladimirMangos
c4d4bb5620 [7552] Move client version dependend DBC code to src/game. 2009-03-27 01:59:26 +03:00
VladimirMangos
a7fd57cc74 [7487] Avoid attempt use InstanceSave data for non-dungeons.
Also check map existance and correctness at instance data loading.
Removed unused and totally bugged InstanceMap::GetResetTime.
2009-03-18 16:48:54 +03:00
VladimirMangos
329fb3f9d1 [7440] Use server-side only zone info. Optimize related calles in case zone and subzone use.
This in some cases make some zones not explorable if it not have server side data in current maps
but not allow cheating with zone set from client.
2009-03-11 10:08:12 +03:00
DiSlord
071a0317f0 [7439] Fix wrong liquid level in some places. Need reectract maps.
Remove some log on extract maps.
Add liquid status log to .gps command

Signed-off-by: DiSlord <dislord@nomail.com>
2009-03-11 00:04:19 +03:00
DiSlord
6a90d60327 [7428] Add new .map file format use more compact data store and use
Rewrite .map extractor
 + extract more useful data
 + add "-f 0" option for disable size/accuracy optimisation
 + Compatability vs 2.4.3 client data
More fast get .map data
Implement fatigue timer
Rewrite breath timer
Allow absorb/resist for lava/slime environmental damage

Need re-extract map for work.

Signed-off-by: DiSlord <dislord@nomail.com>
2009-03-09 19:38:35 +03:00
VladimirMangos
b4dbeb3bc8 [7339] Attempt lock spawn grid only for active non-pet creatures. 2009-02-26 02:45:22 +03:00
ApoC
1fcaf35e29 [7337] Make some methods const.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-02-25 22:33:59 +01:00
VladimirMangos
872d791ca6 [7335] Implement active objects support.
Active objects triggrering grid loading and updating around self like players.
It can be used for event long run movements or escoring quest travels.
Also can be used for proper implementation far vision spells.
Currently only creatures can be activated by function call (from script) cr->SetActiveObjectState(true);
Please avoid lot amount active objects in same time use. Existance active objects support isn't meaning
that each rabbit must be active creature.

Also added independent grid unloading locks for explicit unloading lock,
lock for used by instance copied grids, lock counter for actiove object spawn grids locks.
Last case required for prevent double spawn active creature walk far away from spawn point.
2009-02-25 13:44:49 +03:00
DiSlord
946e4fb036 [7291] Better map height calculation by use client data format.
Need re extract map files by use new ad.exe
Signed-off-by: DiSlord <dislord@nomail.com>
2009-02-17 21:07:12 +03:00
Energy
f26d6151c8 [7141] Implement heroic raid instance mode support.
* Heroic mode player amount for instances in DB. Can be used for any instances but added for heroic raid instance.
* Output transfer error at max playrs limit.
* FIXME notes ;) for raid required implementing store 2 reset time and do global reset for 2 modes. But currently raid have inmmap entry data
same reset time for both cases.
* Update instances list where mounts allowed.
* Simplify and fix code for SMSG_RAID_INSTANCE_INFO.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-01-22 03:27:59 +03:00
ApoC
220aa56fed [7124] Removed virtual keyworld from Map::CanUnload method. This method needn't to be virtual. Method moved all into header file to be inlined.
Fixed problem when instance never unloaded in case low population servers where update time always fit into WORLD_SLEEP_CONST and unload time is multiple of this constant.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-20 20:54:23 +01:00
VladimirMangos
9e590f7ceb [7114] Code cleanups.
Remove redundant `inline` for in-class function definitions.
Fixed float -> int implicit casts.
2009-01-19 15:13:57 +03:00
arrai
c6f48843ad [7017] Updated copyright notice for new year 2009-01-03 18:09:51 +01:00
VladimirMangos
bd4fc1b0ae [7005] Request Area/Zone Ids using 3D coordinates.
.map files not have 3D specifci area infor. So use hack way for update areaflag for some cases (areas 4281, 4342)
where exist area dependent auras.
2009-01-02 19:30:43 +03:00
tomrus88
a4b8862803 Merge branch 'master' into 303 2008-11-28 18:15:12 +03:00
Wyk3d
8b707ca072 [6855] Fixed the MapReference loop on map update by storing the iterator in the map. 2008-11-28 13:17:01 +02:00
tomrus88
397efd4fac Merge branch 'master' into 303
Conflicts:
	src/game/SpellEffects.cpp
2008-11-18 18:08:58 +03:00
VladimirMangos
5439dd0fd4 Allow constant only access to m_mapRefManager using Map::GetPlayers() 2008-11-17 14:56:44 +03:00
tomrus88
52b0ab1f89 Merge branch 'master' into 303 2008-11-17 01:50:37 +03:00
hunuza
520fce4b27 Move PlayersNearGrid() to Map class. 2008-11-16 22:29:10 +01:00
hunuza
79558a32d9 Introduce player map references. 2008-11-16 21:47:18 +01:00