Commit Graph
54 Commits
Author SHA1 Message Date
Machiavelli 683cea9e83 Core/Vehicles:
- Grab correct npc entry from npc_spellclick_spells in case of player vehicle. Fixes DB errors added in my previous changeset
- Allow aura's with SPELL_AURA_CONTROL_VEHICLE to stack if there are enough free seats, even if spellIds are identical.
- Fix a possible infinite loop. Thanks to manuel for spotting
2011-02-27 03:58:41 +01:00
Machiavelli 3ac80ee3a4 Core/Vehicles: Correct usage of npc_spellclick_spells instead of blatant hacks for vehicle entry.
Note: This may break a few vehicles, but only due to the absence of proper, non-hackish data.
2011-02-26 23:00:09 +01:00
Machiavelli 30738e645f Core/Vehicles&Movement:
- Send correct SMSG_MONSTER_MOVE with newly discovered SPLINEFLAG_EXIT_VEHICLE on vehicle exit. Fixes the "stuck on exit" bug as a result of removing the previous hack in 04b656a44f.
- Use SMSG_SPLINE_MOVE_ROOT and SMSG_SPLINE_MOVE_UNROOT as root packets for creatures.
- Reimplement toggling of MOVEMENTFLAG_ROOT on root event (including enter vehicle)
- Speedup in fetching movementflags for vehicles depending on vehicleflags on object updates.
- Code cleanup and refactoring
2011-02-26 03:47:23 +01:00
Machiavelli 04b656a44f Core/Vehicles:
- Allow specifying of exit position for Unit::ExitVehicle
- On Vehicle::InstallAccessory, despawn any accessory in the current seat with the same entry with TEMPSUMMON_MANUAL_DESPAWN type
- Remove hacky TELEPORT_ACK packet on vehicle exit
- Remove some redundant packet send operations that were already handled elsewhere
2011-02-25 01:38:21 +01:00
Machiavelli 2c7ca195d1 Core/Vehicles: Remove a visibility hack on Vehicle::AddPassenger. May fix client crash/freeze issues. 2011-02-23 20:43:12 +01:00
Machiavelli a6da435b84 Core/Vehicles: Also remove MOVEMENTFLAG_ROOT on ExitVehicle (thanks to Anubisss), and slight refactoring of code. 2011-02-23 04:08:11 +01:00
Machiavelli 867f6d3513 Core/Vehicles: Don't add MOVEMENTFLAG_ROOT to movementflags on vehicle enter. 2011-02-23 02:21:08 +01:00
Machiavelli 0a2fc16908 Core/Vehicles: Send SMSG_FORCE_MOVE_UNROOT to client when exiting vehicle with UNIT_FLAG_DISABLE_MOVE 2011-02-23 02:15:48 +01:00
Machiavelli 44fc35bb07 Traditional post-commit buildfix 2011-02-22 23:49:08 +01:00
Machiavelli 918f1ce8ec Core/Vehicles:
- Allow configurable TempSummonType and timer for vehicle_accessory table instead of hard coded values
- Reimplement some earlier charted VehicleSeatFlagsB, that were temporarily removed because of VEHICLE_SEAT_FLAG_UNCONTROLLED (they now work in conjunction with eachother)
2011-02-22 23:47:28 +01:00
Machiavelli e07e20ffca Core/Log: Implement log masks for debug log level, to allow selective debug output. Update your worldserver.conf. 2011-02-20 20:16:34 +01:00
Machiavelli c0b29fd0ad Core/Vehicles: Chart VEHICLE_SEAT_FLAG_UNCONTROLLED and implement usage. Concerns vehicleseat enter/exit capabilities. Fixes vehicles related to Malygos encounter.
Original research by rsa, thanks to Manuel for pointing out.
2011-02-19 21:58:50 +01:00
Machiavelli 6618655d04 Core/Vehicles: Let's use proper fractions/percentages 2011-02-17 21:41:09 +01:00
Machiavelli 6ebf672557 Core/Vehicles: Take in account current health percentage of vehichle when recalculating new HP based on vehicle gear scaling. Fixes an exploit that would allow vehicles to reset their HP in a jiffy.
Closes ticket #317
2011-02-17 21:32:38 +01:00
Feanordev 253891bf9f Core/Vehicles: Make vehicles with UNIT_FLAG_DISABLE_MOVE unable to move client side by sending SMSG_FORCE_MOVE_ROOT to area.
Signed-off-by: Machiavelli <[email protected]>
2011-02-17 21:06:38 +01:00
Spp bd2728eb74 Core: Fix some warnings 2011-01-11 11:18:00 +01:00
Machiavelli 58f795d171 Core/Vehicles: Logic fix for AddPassenger seat validity check, thanks to Tassader 2011-01-08 21:13:18 +01:00
Shauren 9c0cd63e93 Core/Scripts: Added wrapper method for despawning creatures DespawnOrUnsummon 2011-01-02 21:33:37 +01:00
Machiavelli ce76f10bc8 Core/Vehicles: Fix a typo in AddPassenger.
Thanks to cyberbrest
2011-01-01 23:20:08 +01:00
Machiavelli 957c69de83 Update copyright note for 2011.
Happy new year.
2011-01-01 15:01:13 +01:00
Machiavelli 72a115f242 Core/Vehicles: Store guids in vehicleseat structures instead of pointers. Fixes a crash with vendor-carrying Mammoth mounts. 2010-12-31 17:23:51 +01:00
Machiavelli 4b0341c167 Core/Vehicles: Add an assert to trace down crash in Vehicle::RelocatePassengers 2010-12-31 01:40:31 +01:00
Machiavelli 11cc3eac7a Core/Vehicles: Implement VEHICLE_SEAT_FLAG_B_CANSWITCH restriction, and do some cleanup. 2010-12-30 19:57:50 +01:00
Machiavelli 948a2136c4 Core/Vehicles: - Redefine VEHICLE_SEAT_FLAG_USABLE as VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT. This flag determines whether or not the player has control over entering/exiting a vehicleseat. Thanks to linencloth for help with research.
- Implement VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT exit restriction
- Remove MOVEMENTFLAG_ROOT on vehicle exit
2010-12-30 19:10:46 +01:00
Machiavelli 8c8f4a828b Core/Vehicles: - Prevent client ejecting passengers from non-ejectable seats.
- Chart some more VehicleSeatFlags and VehicleSeatFlagsB. Research by linencloth
2010-12-30 17:33:51 +01:00
Machiavelli 68c6189201 Core/Vehicles:
- Set MovementFlagsExtra (2) correctly depending on vehicle 'template' flags. This makes certain vehicles such as demolishers unable to jump/strafe (as intended)
- Fix SMSG_MONSTER_MOVE_TRANSPORT stucture, prevents a client crash when entering certain vehicles, as well as *properly* broadcast position relative to the vehicle.
- Send SMSG_BREAK_TARGET to player when entering vehicle.
- Set MOVEMENTFLAG_ROOT on passenger when entering vehicle
- Cleanup in affected code
2010-12-29 05:45:38 +01:00
click 464f1a9f8f Core: Kill off some warnings
--HG--
branch : trunk
2010-12-27 22:58:22 +01:00
Machiavelli dd745ef326 Core/Vehicles: Some research on VehicleSeatFlagsB.
It is assumed that VehicleSeatFlagsB & 322 means the seat can be used indirectly (ie. by aura 236 (SPELL_AURA_CONTROL_VEHICLE)) even though !(VehicleSeatFlags & VEHICLE_SEAT_FLAG_USABLE).
More research to be done Soon (tm).

--HG--
branch : trunk
2010-12-27 16:55:17 +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 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 82f45966fc Core/Unit: Renamed addUnitState/hasUnitState/clearUnitState to AddUnitState/HasUnitState/ClearUnitState
Core/Vehicles: Allow the vehicle to always damage the passenger (removed unneded dbc hacks from scripts)

--HG--
branch : trunk
2010-12-17 13:43:24 +01:00
silinoron fc832122cc Core/Vehicle: Some code-style cleanup.
--HG--
branch : trunk
2010-11-21 10:07:51 -08:00
Rat b6c8158f88 Core/Vehicles: temp fix visibility issues when creatures enter a vehicle, this also fixes the 'Ride Vehicle' type spells
note: isntance scripts using spell+EnterVehicle() hacks should be updated

--HG--
branch : trunk
2010-10-31 14:19:14 +01:00
Shocker 91aa72a5c6 Core/Vehicles: Add some missing power types, thanks to Heisenberg, closes issue 3841
--HG--
branch : trunk
2010-10-12 21:59:11 +03: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
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
Shauren c2c3302d2f Core/Vehicles: Removed hacky setting entry for multi-passenger mounts
Core/Pools: Fixed compile

--HG--
branch : trunk
2010-09-14 16:14:43 +02:00
Shauren 996e7741a1 Scripts/Icecrown Citadel: Corrected vehicleId for Deathbringer Saurfang, patch by Heisenberg/bolvor
Closes issue #3704.

--HG--
branch : trunk
2010-08-31 21:47:43 +02:00
Shauren 73d3f210a9 Scripts/Icecrown Citadel: Add script for Deathbringer Saurfang (only missing alliance outro due to need of spawning and moving a transport)
Scripts/Icecrown Citadel: Corrected Lord Marrowgar, should no longer target tanks with Bone Spike Graveyard, his Coldflame should now spread properly
Core/Scripts: Moved Lady Deathwhisper Mana Barrier handler to scripts
Core/Scripts: Allow AuraScript to prevent default effects by effect index
Core/Scripts: Added Is25ManRaid() method to ScriptedAI, obviously used to check if raid is 25man
Core/Achievements: Pass m_caster to UpdateAchievementCriteria for ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET

--HG--
branch : trunk
2010-08-21 20:50:38 +02:00
silinoron aaaeecc916 Add support for vehicle scaling based on item level.
Requires database data.
Fixes issue #2754

--HG--
branch : trunk
2010-08-24 15:04:34 -07:00
Shocker c0dda8b492 * Forgotten stack rules for rev f69fb2d3e0, thanks svetilo12
* Fix a crash in rev a972aa682b

--HG--
branch : trunk
2010-08-24 22:47:41 +03:00
Shocker 5e92a8e55a Fix accessories for vehicle player mounts (the vendors on Traveler's Tundra Mammoth for example)
--HG--
branch : trunk
2010-08-24 07:19:29 +03:00
click 1f80c7b3c0 Sourcefile sleanups -> tabs to spaces, remove whitespace - also update the cleanupscripts very slightly
--HG--
branch : trunk
2010-08-08 19:45:53 +02:00
XTZGZoReX 9083271a2f * Some singleton renames for consistency:
accmgr -> AccountMgr
objmgr -> ObjectMgr
auctionmgr -> sAuctionMgr
spellmgr -> sSpellMgr
CreatureEAI_Mgr -> sEventAIMgr
achievementmgr -> sAchievementMgr
gameeventmgr -> sGameEventMgr
sInstanceSaveManager -> sInstanceSaveMgr
poolhandler -> sPoolMgr

--HG--
branch : trunk
2010-08-08 05:25:45 +02:00
XTZGZoReX 14aeb09945 * This should help with the Linux build; thanks to Machiavelli/click.
* VehicleScript is now bound to the database (`creature_template`.`ScriptName`) and only works for creature vehicles.

--HG--
branch : trunk
2010-08-07 15:26:24 +02:00
XTZGZoReX 946adf469c *** New core <-> script library interface - complete rewrite of the old one.
* Removed the misdesigned on_events script/hooks.
* Lots of related cleanups and assertions.
* The interface is now fully object-oriented.
** Scripts no longer use function pointers.
** Scripts no longer use the general-purpose Script struct for everything.
** Script types are split into separate classes which must be inherited depending on what functionality is desired.
* Several script types have been added to allow extending functionality in a code-only manner (some script types require
  assignment in the recently added ScriptName columns in the database, though).
** SpellHandlerScript: Wrapper around spell scripts (returns new SpellScript objects (`spell_script_names`.`ScriptName`)).
** ServerScript: Allows scripting events that occur in the network layer.
** WorldScript: Allows scripting certain world-global events.
** FormulaScript: Allows hooking and interfering with core formulas.
** *MapScript: Allows hooking different map types (including world, instance, and battleground maps (`instance_template`.`ScriptName`)).
** ItemScript: Allows scripting of items (like the old interface (`item_template`.`ScriptName`)).
** CreatureScript: Allows scripting of creatures/AI (like the old interface (`creature_template`.`ScriptName`)).
** GameObjectScript: Allows scripting of gameobjects (like the old interface (`gameobject_template`.`ScriptName`)).
** AreaTriggerScript: Allows scripting triggered area triggers (like the old interface (`areatrigger_scripts`.`ScriptName`)).
** OutdoorPvPScript: Script which should return OutdoorPvP objects for use by OutdoorPvPMgr (`outdoorpvp_template`.`ScriptName`).
** CommandScript: Allows extending the in-core command table.
** WeatherScript: Allows scripting of weather changes (`game_weather`.`ScriptName`).
** AuctionHouseScript: Allows scripting of auction events.
** ConditionScript: Allows scripting of conditions (`conditions`.`ScriptName`).
** DynamicObjectScript: Allows scripting of dynamicobjects.
** TransportScript: Allows scripting of transport events (`transports`.`ScriptName`).
* OutdoorPvP objects are now created through scripts. This effectively means that they'll need to be moved to scripts
  before the they're functional again.
* The whole idea with this new interface is to allow expanding core functionality without touching core code. If further
  hooks are needed to expand functionality of the core, let us know; we'll add them, if we agree that it is appropriate
  to do so.
*** NOTE: The scripts project will _not_ build before it has been adapted to the new interface.
*** Thanks to everyone who helped out with related preparations and suggestions!

--HG--
branch : trunk
2010-08-06 19:23:43 +02:00
azazel eb5fb3664b * Add NULL-pointer check to CharmInfo destructor. Closes issue #3287.
* Remove references to AuctionHouseBot files from win project.

--HG--
branch : trunk
2010-08-06 15:50:12 +06:00
QAston 6353e7dd8c *Update movement enums - thanks to Zor for info.
*Add functions for position data streaming.

--HG--
branch : trunk
2010-08-04 14:39:45 +02:00
QAston 48b360097c *use ASSERT macro instead of regular assert for better output.
--HG--
branch : trunk
2010-07-30 20:04:28 +02:00