mirror of
https://github.com/mangosfour/server.git
synced 2025-12-28 22:37:04 +00:00
[Build] Larger build system update
FIXED: Core now builds under cmake for Windows TODO: Map and mmap gen currently does not build TODO: More sync work is required for Eluna, thus Eluna is temporarily disabled This has only been tested under Windows with CMAKE and VS
This commit is contained in:
parent
c2f9316581
commit
13292befd6
640 changed files with 100354 additions and 29918 deletions
|
|
@ -1,184 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2010 - 2014 Eluna Lua Engine <http://emudevs.com/>
|
||||
* This program is free software licensed under GPL version 3
|
||||
* Please see the included DOCS/LICENSE.md for more information
|
||||
*/
|
||||
|
||||
#ifndef SPELLMETHODS_H
|
||||
#define SPELLMETHODS_H
|
||||
|
||||
namespace LuaSpell
|
||||
{
|
||||
/**
|
||||
* Returns 'true' if the [Spell] is automatically repeating, false otherwise.
|
||||
*
|
||||
* @return bool isAutoRepeating
|
||||
*/
|
||||
int IsAutoRepeat(lua_State* L, Spell* spell)
|
||||
{
|
||||
Eluna::Push(L, spell->IsAutoRepeat());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the [Unit] that casted the [Spell].
|
||||
*
|
||||
* @return [Unit] caster
|
||||
*/
|
||||
int GetCaster(lua_State* L, Spell* spell)
|
||||
{
|
||||
Eluna::Push(L, spell->GetCaster());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the cast time of the [Spell].
|
||||
*
|
||||
* @return int32 castTime
|
||||
*/
|
||||
int GetCastTime(lua_State* L, Spell* spell)
|
||||
{
|
||||
Eluna::Push(L, spell->GetCastTime());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the entry ID of the [Spell].
|
||||
*
|
||||
* @return uint32 entryId
|
||||
*/
|
||||
int GetEntry(lua_State* L, Spell* spell)
|
||||
{
|
||||
Eluna::Push(L, spell->m_spellInfo->Id);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the power cost of the [Spell].
|
||||
*
|
||||
* @return uint32 powerCost
|
||||
*/
|
||||
int GetPowerCost(lua_State* L, Spell* spell)
|
||||
{
|
||||
Eluna::Push(L, spell->GetPowerCost());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the spell duration of the [Spell].
|
||||
*
|
||||
* @return int32 duration
|
||||
*/
|
||||
int GetDuration(lua_State* L, Spell* spell)
|
||||
{
|
||||
#ifndef TRINITY
|
||||
Eluna::Push(L, GetSpellDuration(spell->m_spellInfo));
|
||||
#else
|
||||
Eluna::Push(L, spell->GetSpellInfo()->GetDuration());
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the target destination coordinates of the [Spell].
|
||||
*
|
||||
* @return float x : x coordinate of the [Spell]
|
||||
* @return float y : y coordinate of the [Spell]
|
||||
* @return float z : z coordinate of the [Spell]
|
||||
*/
|
||||
int GetTargetDest(lua_State* L, Spell* spell)
|
||||
{
|
||||
#ifndef TRINITY
|
||||
if (!(spell->m_targets.m_targetMask & TARGET_FLAG_DEST_LOCATION))
|
||||
return 3;
|
||||
float x, y, z;
|
||||
spell->m_targets.getDestination(x, y, z);
|
||||
#else
|
||||
if (!spell->m_targets.HasDst())
|
||||
return 3;
|
||||
float x, y, z;
|
||||
spell->m_targets.GetDstPos()->GetPosition(x, y, z);
|
||||
#endif
|
||||
Eluna::Push(L, x);
|
||||
Eluna::Push(L, y);
|
||||
Eluna::Push(L, z);
|
||||
return 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the target [Object] of the [Spell].
|
||||
* Target can be any of the following [Object] types: [Player], [Creature], [GameObject], [Item], [Corpse]
|
||||
*
|
||||
* @return [Object] target
|
||||
*/
|
||||
int GetTarget(lua_State* L, Spell* spell)
|
||||
{
|
||||
#ifndef TRINITY
|
||||
if (GameObject* target = spell->m_targets.getGOTarget())
|
||||
Eluna::Push(L, target);
|
||||
else if (Item* target = spell->m_targets.getItemTarget())
|
||||
Eluna::Push(L, target);
|
||||
else if (Corpse* target = spell->GetCaster()->GetMap()->GetCorpse(spell->m_targets.getCorpseTargetGuid()))
|
||||
Eluna::Push(L, target);
|
||||
else if (Unit* target = spell->m_targets.getUnitTarget())
|
||||
Eluna::Push(L, target);
|
||||
#else
|
||||
if (GameObject* target = spell->m_targets.GetGOTarget())
|
||||
Eluna::Push(L, target);
|
||||
else if (Item* target = spell->m_targets.GetItemTarget())
|
||||
Eluna::Push(L, target);
|
||||
else if (Corpse* target = spell->m_targets.GetCorpseTarget())
|
||||
Eluna::Push(L, target);
|
||||
else if (Unit* target = spell->m_targets.GetUnitTarget())
|
||||
Eluna::Push(L, target);
|
||||
else if (WorldObject* target = spell->m_targets.GetObjectTarget())
|
||||
Eluna::Push(L, target);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the [Spell] to automatically repeat.
|
||||
*
|
||||
* @param bool repeat : set variable to 'true' for spell to automatically repeat
|
||||
*/
|
||||
int SetAutoRepeat(lua_State* L, Spell* spell)
|
||||
{
|
||||
bool repeat = Eluna::CHECKVAL<bool>(L, 2);
|
||||
spell->SetAutoRepeat(repeat);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts the [Spell].
|
||||
*
|
||||
* @param bool skipCheck = false : skips initial checks to see if the [Spell] can be casted or not, this is optional
|
||||
*/
|
||||
int Cast(lua_State* L, Spell* spell)
|
||||
{
|
||||
bool skipCheck = Eluna::CHECKVAL<bool>(L, 2, false);
|
||||
spell->cast(skipCheck);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cancels the [Spell].
|
||||
*
|
||||
*/
|
||||
int Cancel(lua_State* /*L*/, Spell* spell)
|
||||
{
|
||||
spell->cancel();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finishes the [Spell].
|
||||
*
|
||||
*/
|
||||
int Finish(lua_State* /*L*/, Spell* spell)
|
||||
{
|
||||
spell->finish();
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue