aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/compiler/msvc/settings.cmake4
-rw-r--r--sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql77
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp17
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp25
4 files changed, 98 insertions, 25 deletions
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake
index 3d8fe43b6aa..0aa5d93a4b3 100644
--- a/cmake/compiler/msvc/settings.cmake
+++ b/cmake/compiler/msvc/settings.cmake
@@ -50,3 +50,7 @@ if(NOT WITH_WARNINGS)
message(STATUS "MSVC: Disabled generic compiletime warnings")
endif()
endif()
+
+# Specify Precompiled Header Memory Allocation Limit
+# (Fix a compiler-problem when using PCH - the /Ym flag is adjusted by the compiler in MSVC2012, hence we need to set an upper limit to avoid disrupancies)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm500")
diff --git a/sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql b/sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql
new file mode 100644
index 00000000000..3d0ad779dc2
--- /dev/null
+++ b/sql/updates/world/2012_12_28_04_world_citadel_footsteps.sql
@@ -0,0 +1,77 @@
+-- Do your worst
+UPDATE `quest_template` SET `PrevQuestId`=13393 WHERE `Id`=13394;
+-- Where dragons fell
+UPDATE `quest_template` SET `PrevQuestId`=13397 WHERE `Id`=13398;
+-- Argent aid
+UPDATE `quest_template` SET `PrevQuestId`=13362 WHERE `Id`=13363;
+-- Where dragons fell
+UPDATE `quest_template` SET `PrevQuestId`=13349 WHERE `Id`=13359;
+-- Time for answers
+UPDATE `quest_template` SET `PrevQuestId`=13359 WHERE `Id`=13360;
+-- Do your worst
+UPDATE `quest_template` SET `PrevQuestId`=13304 WHERE `Id`=13305;
+-- A short fuse
+UPDATE `quest_template` SET `NextQuestId`=13168 WHERE `Id` IN (13389,13263);
+-- Several quest group conditions...
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) AND `SourceEntry` IN (13172,13174);
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`Comment`) VALUES
+(19,13172,0,8,13169,'Accepting Seeds of Chaos requires An Undeads Best Friend to be rewarded'),
+(19,13172,1,8,13170,'Accepting Seeds of Chaos requires Honor is for the Weak to be rewarded'),
+(19,13172,2,8,13171,'Accepting Seeds of Chaos requires From Whence They Came to be rewarded'),
+(20,13172,0,8,13169,'Seeing quest mark for Seeds of Chaos requires An Undeads Best Friend to be rewarded'),
+(20,13172,1,8,13170,'Seeing quest mark for Seeds of Chaos requires Honor is for the Weak to be rewarded'),
+(20,13172,2,8,13171,'Seeing quest mark for Seeds of Chaos requires From Whence They Came to be rewarded'),
+(19,13174,0,8,13169,'Accepting Amidst the Confusion requires An Undeads Best Friend to be rewarded'),
+(19,13174,1,8,13170,'Accepting Amidst the Confusion requires Honor is for the Weak to be rewarded'),
+(19,13174,2,8,13171,'Accepting Amidst the Confusion requires From Whence They Came to be rewarded'),
+(20,13174,0,8,13169,'Seeing quest mark for Amidst the Confusion requires An Undeads Best Friend to be rewarded'),
+(20,13174,1,8,13170,'Seeing quest mark for Amidst the Confusion requires Honor is for the Weak to be rewarded'),
+(20,13174,2,8,13171,'Seeing quest mark for Amidst the Confusion requires From Whence They Came to be rewarded');
+-- Seeds of Chaos / Admist the Confusion
+UPDATE `quest_template` SET `NextQuestId`=13155,`ExclusiveGroup`=-13155 WHERE `Id` IN (13172,13174);
+-- Generosity Abounds / Matchmaker / Stunning View
+UPDATE `quest_template` SET `PrevQuestId`=13145 WHERE `Id` IN (13146,13160,13147);
+-- Several quest group conditions...
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) AND `SourceEntry` IN (13161,13163,13162);
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`Comment`) VALUES
+(19,13161,0,8,13146,'Accepting The Rider of the Unholy requires Generosity Abounds to be rewarded'),
+(19,13161,1,8,13160,'Accepting The Rider of the Unholy requires Stunning View to be rewarded'),
+(19,13161,2,8,13147,'Accepting The Rider of the Unholy requires Matchmaker to be rewarded'),
+(20,13161,0,8,13146,'Seeing quest mark for The Rider of the Unholy requires Generosity Abounds to be rewarded'),
+(20,13161,1,8,13160,'Seeing quest mark for The Rider of the Unholy requires Stunning View to be rewarded'),
+(20,13161,2,8,13147,'Seeing quest mark for The Rider of the Unholy requires Matchmaker to be rewarded'),
+(19,13163,0,8,13146,'Accepting The Rider of Blood requires Generosity Abounds to be rewarded'),
+(19,13163,1,8,13160,'Accepting The Rider of Blood requires Stunning View to be rewarded'),
+(19,13163,2,8,13147,'Accepting The Rider of Blood requires Matchmaker to be rewarded'),
+(20,13163,0,8,13146,'Seeing quest mark for The Rider of Blood requires Generosity Abounds to be rewarded'),
+(20,13163,1,8,13160,'Seeing quest mark for The Rider of Blood requires Stunning View to be rewarded'),
+(20,13163,2,8,13147,'Seeing quest mark for The Rider of Blood requires Matchmaker to be rewarded'),
+(19,13162,0,8,13146,'Accepting The Rider of Frost requires Generosity Abounds to be rewarded'),
+(19,13162,1,8,13160,'Accepting The Rider of Frost requires Stunning View to be rewarded'),
+(19,13162,2,8,13147,'Accepting The Rider of Frost requires Matchmaker to be rewarded'),
+(20,13162,0,8,13146,'Seeing quest mark for The Rider of Frost requires Generosity Abounds to be rewarded'),
+(20,13162,1,8,13160,'Seeing quest mark for The Rider of Frost requires Stunning View to be rewarded'),
+(20,13162,2,8,13147,'Seeing quest mark for The Rider of Frost requires Matchmaker to be rewarded');
+-- The Rider of Blood / ... Frost / ... the Unholy
+UPDATE `quest_template` SET `NextQuestId`=13164,`ExclusiveGroup`=-13164 WHERE `Id` IN (13161,13163,13162);
+-- Where Are They Coming From?
+UPDATE `quest_template` SET `PrevQuestId`=13106 WHERE `Id`=13117;
+-- Destroying the Altars / Death's Gaze
+UPDATE `quest_template` SET `PrevQuestId`=13117,`NextQuestId`=13134,`ExclusiveGroup`=-13134 WHERE `Id` IN (13119,13120);
+-- Jagged Shards
+UPDATE `quest_template` SET `PrevQuestId`=13134 WHERE `Id`=13136;
+-- Several quest group conditions...
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) AND `SourceEntry` IN (13211,13152);
+INSERT INTO `conditions`(`SourceTypeOrReferenceId`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`Comment`) VALUES
+(19,13152,0,8,13140,'Accepting A Visit to the Doctor requires The Runesmiths of Malykriss to be rewarded'),
+(19,13152,1,8,13138,'Accepting A Visit to the Doctor requires Im Smelting... Smelting! to be rewarded'),
+(20,13152,0,8,13140,'Seeing quest mark for A Visit to the Doctor requires The Runesmiths of Malykriss to be rewarded'),
+(20,13152,1,8,13138,'Seeing quest mark for A Visit to the Doctor requires Im Smelting... Smelting! to be rewarded'),
+(19,13211,0,8,13140,'Accepting By Fire Be Purged requires The Runesmiths of Malykriss to be rewarded'),
+(19,13211,1,8,13138,'Accepting By Fire Be Purged requires Im Smelting... Smelting! to be rewarded'),
+(20,13211,0,8,13140,'Seeing quest mark for By Fire Be Purged requires The Runesmiths of Malykriss to be rewarded'),
+(20,13211,1,8,13138,'Seeing quest mark for By Fire Be Purged requires Im Smelting... Smelting! to be rewarded');
+-- A Visit to the Doctor / By Fire Be Purged
+UPDATE `quest_template` SET `NextQuestId`=13144,`ExclusiveGroup`=-13144 WHERE `Id` IN (13211,13152);
+-- Let's Get Out of Here! / Let's Get Out of Here / He's Gone to Pieces
+UPDATE `quest_template` SET `PrevQuestId`=13144 WHERE `Id` IN (13481,13482,13212);
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 00ef3d32a06..650d904db47 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -478,6 +478,23 @@ void Creature::Update(uint32 diff)
RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
}
+ // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc)
+ float ground = GetPositionZ();
+ GetMap()->GetWaterOrGroundLevel(GetPositionX(), GetPositionY(), GetPositionZ(), &ground);
+
+ bool isInAir = G3D::fuzzyGt(GetPositionZ(), ground + 0.05f);
+ CreatureTemplate const* cinfo = GetCreatureTemplate();
+
+ if (cinfo->InhabitType & INHABIT_AIR && cinfo->InhabitType & INHABIT_GROUND && isInAir)
+ SetCanFly(true);
+ else if (cinfo->InhabitType & INHABIT_AIR && isInAir)
+ SetDisableGravity(true);
+ else
+ {
+ SetCanFly(false);
+ SetDisableGravity(false);
+ }
+
switch (m_deathState)
{
case JUST_RESPAWNED:
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index dd3ebb48ebf..4148e3177fe 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -17375,31 +17375,6 @@ bool Unit::UpdatePosition(float x, float y, float z, float orientation, bool tel
else if (turn)
UpdateOrientation(orientation);
- if (Creature* creature = ToCreature())
- {
- // Set the movement flags if the creature is in that mode. (Only fly if actually in air, only swim if in water, etc)
- float ground = z;
- GetMap()->GetWaterOrGroundLevel(x, y, z, &ground);
-
- bool isInAir = G3D::fuzzyGt(z, ground);
- CreatureTemplate const* cinfo = creature->GetCreatureTemplate();
-
- if (cinfo->InhabitType & INHABIT_AIR && cinfo->InhabitType & INHABIT_GROUND && isInAir)
- SetCanFly(true);
- else if (cinfo->InhabitType & INHABIT_AIR && isInAir)
- SetDisableGravity(true);
- else
- {
- SetCanFly(false);
- SetDisableGravity(false);
- }
-
- if (cinfo->InhabitType & INHABIT_WATER && GetMap()->IsInWater(x, y, z))
- AddUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- else
- RemoveUnitMovementFlag(MOVEMENTFLAG_SWIMMING);
- }
-
// code block for underwater state update
UpdateUnderwaterState(GetMap(), x, y, z);