From bc82bff4b4921398be86962b28f9d6294d74224b Mon Sep 17 00:00:00 2001 From: KimLS Date: Mon, 3 Jun 2013 00:08:41 -0700 Subject: [PATCH] Lua doors api --- zone/doors.cpp | 2 +- zone/doors.h | 2 +- zone/lua_client.h | 7 +- zone/lua_corpse.cpp | 6 +- zone/lua_corpse.h | 7 +- zone/lua_door.cpp | 164 ++++++++++++++++++++++++++++++++++++++++- zone/lua_door.h | 28 +++++++ zone/lua_entity.h | 7 +- zone/lua_entity_list.h | 7 +- zone/lua_group.h | 7 +- zone/lua_item.h | 7 +- zone/lua_iteminst.h | 7 +- zone/lua_mob.h | 7 +- zone/lua_npc.h | 7 +- zone/lua_raid.h | 7 +- zone/lua_spell.h | 7 +- 16 files changed, 207 insertions(+), 72 deletions(-) diff --git a/zone/doors.cpp b/zone/doors.cpp index 7c22ea7eb..e6c3c9c65 100644 --- a/zone/doors.cpp +++ b/zone/doors.cpp @@ -766,7 +766,7 @@ void Doors::SetOpenType(uint8 in) { entity_list.RespawnAllDoors(); } -void Doors::SetDoorName(char* name) { +void Doors::SetDoorName(const char* name) { entity_list.DespawnAllDoors(); memset(door_name, 0, sizeof(door_name)); strncpy(door_name, name, sizeof(door_name)); diff --git a/zone/doors.h b/zone/doors.h index acdb0dfb3..59fe394c8 100644 --- a/zone/doors.h +++ b/zone/doors.h @@ -68,7 +68,7 @@ public: void SetZ(float in); void SetHeading(float in); void SetIncline(int in); - void SetDoorName(char* name); + void SetDoorName(const char* name); void SetOpenType(uint8 in); void SetLocation(float x, float y, float z); void SetSize(uint16 size); diff --git a/zone/lua_client.h b/zone/lua_client.h index 0c8d17e9a..3450149de 100644 --- a/zone/lua_client.h +++ b/zone/lua_client.h @@ -24,12 +24,7 @@ public: virtual ~Lua_Client() { } operator Client*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } void SendSound(); diff --git a/zone/lua_corpse.cpp b/zone/lua_corpse.cpp index bf5090b22..6498458ae 100644 --- a/zone/lua_corpse.cpp +++ b/zone/lua_corpse.cpp @@ -155,6 +155,8 @@ void Lua_Corpse::AddLooter(Lua_Mob who) { luabind::scope lua_register_corpse() { return luabind::class_("Corpse") .def(luabind::constructor<>()) + .property("null", &Lua_Corpse::Null) + .property("valid", &Lua_Corpse::Valid) .def("GetCharID", (uint32(Lua_Corpse::*)(void))&Lua_Corpse::GetCharID) .def("GetDecayTime", (uint32(Lua_Corpse::*)(void))&Lua_Corpse::GetDecayTime) .def("Lock", (void(Lua_Corpse::*)(void))&Lua_Corpse::Lock) @@ -183,9 +185,7 @@ luabind::scope lua_register_corpse() { .def("GetSilver", (uint32(Lua_Corpse::*)(void))&Lua_Corpse::GetSilver) .def("GetGold", (uint32(Lua_Corpse::*)(void))&Lua_Corpse::GetGold) .def("GetPlatinum", (uint32(Lua_Corpse::*)(void))&Lua_Corpse::GetPlatinum) - .def("AddLooter", (void(Lua_Corpse::*)(Lua_Mob))&Lua_Corpse::AddLooter) - .property("null", &Lua_Corpse::Null) - .property("valid", &Lua_Corpse::Valid); + .def("AddLooter", (void(Lua_Corpse::*)(Lua_Mob))&Lua_Corpse::AddLooter); } #endif diff --git a/zone/lua_corpse.h b/zone/lua_corpse.h index 1d4815f69..3909cd190 100644 --- a/zone/lua_corpse.h +++ b/zone/lua_corpse.h @@ -22,12 +22,7 @@ public: virtual ~Lua_Corpse() { } operator Corpse*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } uint32 GetCharID(); diff --git a/zone/lua_door.cpp b/zone/lua_door.cpp index 2db10ba7a..f85b05dd2 100644 --- a/zone/lua_door.cpp +++ b/zone/lua_door.cpp @@ -7,11 +7,173 @@ #include "doors.h" #include "lua_door.h" +int Lua_Door::GetID() { + Lua_Safe_Call_Int(); + return self->GetID(); +} + +void Lua_Door::SetDoorName(const char *name) { + Lua_Safe_Call_Void(); + self->SetDoorName(name); +} + +const char *Lua_Door::GetDoorName() { + Lua_Safe_Call_String(); + return self->GetDoorName(); +} + +float Lua_Door::GetX() { + Lua_Safe_Call_Real(); + return self->GetX(); +} + +float Lua_Door::GetY() { + Lua_Safe_Call_Real(); + return self->GetY(); +} + +float Lua_Door::GetZ() { + Lua_Safe_Call_Real(); + return self->GetZ(); +} + +float Lua_Door::GetHeading() { + Lua_Safe_Call_Real(); + return self->GetHeading(); +} + +void Lua_Door::SetX(float x) { + Lua_Safe_Call_Void(); + self->SetX(x); +} + +void Lua_Door::SetY(float y) { + Lua_Safe_Call_Void(); + self->SetY(y); +} + +void Lua_Door::SetZ(float z) { + Lua_Safe_Call_Void(); + self->SetZ(z); +} + +void Lua_Door::SetHeading(float h) { + Lua_Safe_Call_Void(); + self->SetHeading(h); +} + +void Lua_Door::SetLocation(float x, float y, float z) { + Lua_Safe_Call_Void(); + self->SetLocation(x, y, z); +} + +uint32 Lua_Door::GetDoorDBID() { + Lua_Safe_Call_Int(); + return self->GetDoorDBID(); +} + +uint32 Lua_Door::GetDoorID() { + Lua_Safe_Call_Int(); + return self->GetDoorID(); +} + +void Lua_Door::SetSize(uint32 sz) { + Lua_Safe_Call_Void(); + self->SetSize(sz); +} + +uint32 Lua_Door::GetSize() { + Lua_Safe_Call_Int(); + return self->GetSize(); +} + +void Lua_Door::SetIncline(uint32 incline) { + Lua_Safe_Call_Void(); + self->SetIncline(incline); +} + +uint32 Lua_Door::GetIncline() { + Lua_Safe_Call_Int(); + return self->GetIncline(); +} + +void Lua_Door::SetOpenType(uint32 type) { + Lua_Safe_Call_Void(); + self->SetOpenType(type); +} + +uint32 Lua_Door::GetOpenType() { + Lua_Safe_Call_Int(); + return self->GetOpenType(); +} + +void Lua_Door::SetLockPick(uint32 pick) { + Lua_Safe_Call_Void(); + self->SetLockpick(pick); +} + +uint32 Lua_Door::GetLockPick() { + Lua_Safe_Call_Int(); + return self->GetLockpick(); +} + +void Lua_Door::SetKeyItem(uint32 key) { + Lua_Safe_Call_Void(); + self->SetKeyItem(key); +} + +uint32 Lua_Door::GetKeyItem() { + Lua_Safe_Call_Int(); + return self->GetKeyItem(); +} + +void Lua_Door::SetNoKeyring(int type) { + Lua_Safe_Call_Void(); + self->SetNoKeyring(type); +} + +int Lua_Door::GetNoKeyring() { + Lua_Safe_Call_Int(); + return self->GetNoKeyring(); +} + +void Lua_Door::CreateDatabaseEntry() { + Lua_Safe_Call_Void(); + self->CreateDatabaseEntry(); +} + luabind::scope lua_register_door() { return luabind::class_("Door") .def(luabind::constructor<>()) .property("null", &Lua_Door::Null) - .property("valid", &Lua_Door::Valid); + .property("valid", &Lua_Door::Valid) + .def("GetID", (int(Lua_Door::*)(void))&Lua_Door::GetID) + .def("SetDoorName", (void(Lua_Door::*)(const char*))&Lua_Door::SetDoorName) + .def("GetDoorName", (const char*(Lua_Door::*)(void))&Lua_Door::GetDoorName) + .def("GetX", (float(Lua_Door::*)(void))&Lua_Door::GetX) + .def("GetY", (float(Lua_Door::*)(void))&Lua_Door::GetY) + .def("GetZ", (float(Lua_Door::*)(void))&Lua_Door::GetZ) + .def("GetHeading", (float(Lua_Door::*)(void))&Lua_Door::GetHeading) + .def("SetX", (void(Lua_Door::*)(float))&Lua_Door::SetX) + .def("SetY", (void(Lua_Door::*)(float))&Lua_Door::SetY) + .def("SetZ", (void(Lua_Door::*)(float))&Lua_Door::SetZ) + .def("SetHeading", (void(Lua_Door::*)(float))&Lua_Door::SetHeading) + .def("SetLocation", (void(Lua_Door::*)(float,float,float))&Lua_Door::SetLocation) + .def("GetDoorDBID", (uint32(Lua_Door::*)(void))&Lua_Door::GetDoorDBID) + .def("GetDoorID", (uint32(Lua_Door::*)(void))&Lua_Door::GetDoorID) + .def("SetSize", (void(Lua_Door::*)(uint32))&Lua_Door::SetSize) + .def("GetSize", (uint32(Lua_Door::*)(void))&Lua_Door::GetSize) + .def("SetIncline", (void(Lua_Door::*)(uint32))&Lua_Door::SetIncline) + .def("GetIncline", (uint32(Lua_Door::*)(void))&Lua_Door::GetIncline) + .def("SetOpenType", (void(Lua_Door::*)(uint32))&Lua_Door::SetOpenType) + .def("GetOpenType", (uint32(Lua_Door::*)(void))&Lua_Door::GetOpenType) + .def("SetLockPick", (void(Lua_Door::*)(uint32))&Lua_Door::SetLockPick) + .def("GetLockPick", (uint32(Lua_Door::*)(void))&Lua_Door::GetLockPick) + .def("SetKeyItem", (void(Lua_Door::*)(uint32))&Lua_Door::SetKeyItem) + .def("GetKeyItem", (uint32(Lua_Door::*)(void))&Lua_Door::GetKeyItem) + .def("SetNoKeyring", (void(Lua_Door::*)(int))&Lua_Door::SetNoKeyring) + .def("GetNoKeyring", (int(Lua_Door::*)(void))&Lua_Door::GetNoKeyring) + .def("CreateDatabaseEntry", (void(Lua_Door::*)(void))&Lua_Door::CreateDatabaseEntry); } #endif diff --git a/zone/lua_door.h b/zone/lua_door.h index 03e118f2a..81bdb68fa 100644 --- a/zone/lua_door.h +++ b/zone/lua_door.h @@ -28,6 +28,34 @@ public: return nullptr; } + + int GetID(); + void SetDoorName(const char *name); + const char *GetDoorName(); + float GetX(); + float GetY(); + float GetZ(); + float GetHeading(); + void SetX(float x); + void SetY(float y); + void SetZ(float z); + void SetHeading(float h); + void SetLocation(float x, float y, float z); + uint32 GetDoorDBID(); + uint32 GetDoorID(); + void SetSize(uint32 sz); + uint32 GetSize(); + void SetIncline(uint32 incline); + uint32 GetIncline(); + void SetOpenType(uint32 type); + uint32 GetOpenType(); + void SetLockPick(uint32 pick); + uint32 GetLockPick(); + void SetKeyItem(uint32 key); + uint32 GetKeyItem(); + void SetNoKeyring(int type); + int GetNoKeyring(); + void CreateDatabaseEntry(); }; #endif diff --git a/zone/lua_entity.h b/zone/lua_entity.h index b66a0cc56..9ca37bd3b 100644 --- a/zone/lua_entity.h +++ b/zone/lua_entity.h @@ -30,12 +30,7 @@ public: virtual ~Lua_Entity() { } operator Entity*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } bool IsClient(); diff --git a/zone/lua_entity_list.h b/zone/lua_entity_list.h index 43455be1f..f0e53cfee 100644 --- a/zone/lua_entity_list.h +++ b/zone/lua_entity_list.h @@ -41,12 +41,7 @@ public: virtual ~Lua_EntityList() { } operator EntityList*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } Lua_Mob GetMobID(int id); diff --git a/zone/lua_group.h b/zone/lua_group.h index baa926059..ef4a24355 100644 --- a/zone/lua_group.h +++ b/zone/lua_group.h @@ -23,12 +23,7 @@ public: virtual ~Lua_Group() { } operator Group*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } void DisbandGroup(); diff --git a/zone/lua_item.h b/zone/lua_item.h index d7d7b07e2..586d74fb7 100644 --- a/zone/lua_item.h +++ b/zone/lua_item.h @@ -22,12 +22,7 @@ public: virtual ~Lua_Item() { } operator const Item_Struct*() { - const void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } int GetMinStatus(); diff --git a/zone/lua_iteminst.h b/zone/lua_iteminst.h index f0472bfe8..184f2331b 100644 --- a/zone/lua_iteminst.h +++ b/zone/lua_iteminst.h @@ -22,12 +22,7 @@ public: virtual ~Lua_ItemInst() { } operator ItemInst*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } bool IsType(int item_class); diff --git a/zone/lua_mob.h b/zone/lua_mob.h index 65ebc767f..6a87989e3 100644 --- a/zone/lua_mob.h +++ b/zone/lua_mob.h @@ -25,12 +25,7 @@ public: virtual ~Lua_Mob() { } operator Mob*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } const char *GetName(); diff --git a/zone/lua_npc.h b/zone/lua_npc.h index 5ff56f63d..c60505beb 100644 --- a/zone/lua_npc.h +++ b/zone/lua_npc.h @@ -24,12 +24,7 @@ public: virtual ~Lua_NPC() { } operator NPC*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } void Signal(int id); diff --git a/zone/lua_raid.h b/zone/lua_raid.h index 9ca04f8f4..9485574ac 100644 --- a/zone/lua_raid.h +++ b/zone/lua_raid.h @@ -23,12 +23,7 @@ public: virtual ~Lua_Raid() { } operator Raid*() { - void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } bool IsRaidMember(const char *name); diff --git a/zone/lua_spell.h b/zone/lua_spell.h index 21b49340f..5b90da331 100644 --- a/zone/lua_spell.h +++ b/zone/lua_spell.h @@ -21,12 +21,7 @@ public: virtual ~Lua_Spell() { } operator const SPDat_Spell_Struct*() { - const void *d = GetLuaPtrData(); - if(d) { - return reinterpret_cast(d); - } - - return nullptr; + return reinterpret_cast(GetLuaPtrData()); } int GetID();