X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FScript.cpp;h=c5caf579a3d817b70a59b0198d3eaa57d1987443;hb=refs%2Fheads%2Flinker;hp=05dd8194d8a6a78249c66add98618f72e9d8edd7;hpb=8ef435410d1f8aff339e4afef87a5757e77eba45;p=l2e.git diff --git a/src/common/Script.cpp b/src/common/Script.cpp index 05dd819..c5caf57 100644 --- a/src/common/Script.cpp +++ b/src/common/Script.cpp @@ -1,5 +1,7 @@ #include "Script.h" +#include "../math/Vector.h" + namespace common { Script::Script() @@ -12,4 +14,41 @@ Script::~Script() { } + +unsigned int Script::Code::Size() const { + unsigned int size = sizeof(Code); + if (numParams == 0) { + return size; + } + unsigned int argSize = 0; + switch (type) { + default: + argSize = 0; + break; + case TYPE_ADDRESS: + argSize = sizeof(void *); + break; + case TYPE_INTEGER: + argSize = sizeof(int); + break; + case TYPE_VECTOR: + argSize = sizeof(math::Vector); + break; + } + switch (numParams) { + case 3: + case 2: + if (reg2 == 7) { + size += argSize; + } + case 1: + if (reg1 == 7) { + size += argSize; + } + default: + break; + } + return size; +} + }