From 3b5f986d09edd1855df22be862e229728aa42523 Mon Sep 17 00:00:00 2001 From: "False.Genesis" Date: Wed, 17 Jan 2007 14:46:44 +0000 Subject: [PATCH] fixed compile error; added math functions to DefScript; removed old, commented out code --- bin/db/chat | Bin 6144 -> 6144 bytes bin/scripts/_startup.def | 1 - src/Client/DefScript/DefScript.cpp | 13 +- src/Client/DefScript/DefScript.h | 18 +++ src/Client/DefScript/DefScriptFunctions.cpp | 158 +++++++++++++++++++- src/Client/DefScriptInterface.cpp | 1 + src/Client/World/WorldSession.cpp | 2 - src/PseuWoW.vcproj | 3 - src/shared/tools.cpp | 149 ------------------ 9 files changed, 188 insertions(+), 157 deletions(-) diff --git a/bin/db/chat b/bin/db/chat index 0570f47f982906a9355723d6687b1992149fe291..7f1371e4b988fa433ee914640f28c5841d1dab96 100644 GIT binary patch delta 63 zcmZoLXfT){&1kVv<^?|o6Z3rr<`2yGHw&^{W>(~9Vv!bR^e@QF%goQK%r9l+V`PyQ NgbC!PGA DefScriptPackage inited!\n"); } DefScriptPackage::~DefScriptPackage() @@ -47,6 +46,18 @@ DefScriptFunctionTable *DefScriptPackage::_GetFunctionTable(void) const {"reloaddef",&DefScriptPackage::func_reloaddef}, {"setscriptpermission",&DefScriptPackage::func_setscriptpermission}, + // mathematical functions: + {"toint",&DefScriptPackage::func_toint}, + {"add",&DefScriptPackage::func_add}, + {"sub",&DefScriptPackage::func_sub}, + {"mul",&DefScriptPackage::func_mul}, + {"div",&DefScriptPackage::func_div}, + {"mod",&DefScriptPackage::func_mod}, + {"pow",&DefScriptPackage::func_pow}, + {"bitor",&DefScriptPackage::func_bitor}, + {"bitand",&DefScriptPackage::func_bitand}, + {"bitxor",&DefScriptPackage::func_bitxor}, + // user functions: {"pause",&DefScriptPackage::SCpause}, diff --git a/src/Client/DefScript/DefScript.h b/src/Client/DefScript/DefScript.h index bff38eb..a581c32 100644 --- a/src/Client/DefScript/DefScript.h +++ b/src/Client/DefScript/DefScript.h @@ -9,6 +9,14 @@ # define _DEFSC_DEBUG(code) /* code */ #endif +#if COMPILER == COMPILER_MICROSOFT +typedef __int64 def_int64; +#else +typedef __int64_t def_int64; +#endif + + + #include #include #include "VarSet.h" @@ -119,6 +127,16 @@ private: bool func_eof(CmdSet); bool func_shdn(CmdSet); bool func_setscriptpermission(CmdSet); + bool func_toint(CmdSet); + bool func_add(CmdSet); + bool func_sub(CmdSet); + bool func_mul(CmdSet); + bool func_div(CmdSet); + bool func_mod(CmdSet); + bool func_pow(CmdSet); + bool func_bitor(CmdSet); + bool func_bitand(CmdSet); + bool func_bitxor(CmdSet); // Useable own internal functions: bool SCpause(CmdSet); diff --git a/src/Client/DefScript/DefScriptFunctions.cpp b/src/Client/DefScript/DefScriptFunctions.cpp index d043c1e..47a83f2 100644 --- a/src/Client/DefScript/DefScriptFunctions.cpp +++ b/src/Client/DefScript/DefScriptFunctions.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "DefScript.h" @@ -134,4 +135,159 @@ bool DefScriptPackage::func_setscriptpermission(CmdSet Set) scriptPermissionMap[Set.arg[0]] = atoi(Set.defaultarg.c_str()); return true; -} \ No newline at end of file +} + +bool DefScriptPackage::func_toint(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myint = strtol(Set.defaultarg.c_str(), NULL, 10); + std::stringstream ss; + ss << myint; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_add(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + long long myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar += myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_sub(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar -= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_mul(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar *= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_div(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + if(myadd==0) + { + // TODO: some error handling + variables.Set(vname,"0"); + } + myvar /= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_mod(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar %= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_pow(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + long double myd=(long double)myvar,mya=(long double)myadd; + myd = (long double)pow(myd,mya); + myvar = (def_int64)myd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_bitor(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar |= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_bitand(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar &= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} + +bool DefScriptPackage::func_bitxor(CmdSet Set) +{ + if(Set.arg[0].empty()) + return false; + + std::string vname=_NormalizeVarName(Set.arg[0], Set.myname); + def_int64 myvar = strtol(variables.Get(vname).c_str(), NULL, 10); + def_int64 myadd = strtol(Set.defaultarg.c_str(), NULL, 10); + myvar ^= myadd; + std::stringstream ss; + ss << myvar; + variables.Set(vname,ss.str()); + return true; +} diff --git a/src/Client/DefScriptInterface.cpp b/src/Client/DefScriptInterface.cpp index 105e2bf..bb417bd 100644 --- a/src/Client/DefScriptInterface.cpp +++ b/src/Client/DefScriptInterface.cpp @@ -92,6 +92,7 @@ bool DefScriptPackage::SCfollow(CmdSet Set){ } + void DefScriptPackage::My_LoadUserPermissions(VarSet &vs) { static char *prefix = "USERS::"; diff --git a/src/Client/World/WorldSession.cpp b/src/Client/World/WorldSession.cpp index ba1df67..5f31e33 100644 --- a/src/Client/World/WorldSession.cpp +++ b/src/Client/World/WorldSession.cpp @@ -401,8 +401,6 @@ void WorldSession::_HandleMessageChatOpcode(WorldPacket& recvPacket) delete chat; } - SendChatMessage(CHAT_MSG_SAY, lang, chat->GetResult(), ""); - /*if(msg=="lol") SendChatMessage(CHAT_MSG_SAY,lang,"say \"lol\" if you have nothing else to say... lol xD",""); else if(msg.length()>4 && msg.find("you?")!=std::string::npos) diff --git a/src/PseuWoW.vcproj b/src/PseuWoW.vcproj index 80c74ac..c6f521a 100644 --- a/src/PseuWoW.vcproj +++ b/src/PseuWoW.vcproj @@ -243,9 +243,6 @@ - - diff --git a/src/shared/tools.cpp b/src/shared/tools.cpp index 1aeb544..f9d4cb0 100644 --- a/src/shared/tools.cpp +++ b/src/shared/tools.cpp @@ -5,19 +5,6 @@ #include #include "tools.h" -/* -char *triml(char *data,int count){ - data=data+count; - return data; -} - -void nullify(char *ptr,int len){ - int i; - for(i=0;i