X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FScript.h;h=2459edc54f1d54971036196edbf550ab0aaf5fa8;hb=cc3d698b8c1ad09d7a3f9e3f28bc84e0ac1735ea;hp=c203f4061e402cbf4b2f6d0a8724105092c0252f;hpb=8060b9ee74a24fe33a874732035dc8b74003439f;p=l2e.git diff --git a/src/common/Script.h b/src/common/Script.h index c203f40..2459edc 100644 --- a/src/common/Script.h +++ b/src/common/Script.h @@ -1,13 +1,8 @@ -/* - * Script.h - * - * Created on: Oct 13, 2012 - * Author: holy - */ - #ifndef COMMON_SCRIPT_H_ #define COMMON_SCRIPT_H_ +#include + namespace common { class Script { @@ -16,42 +11,40 @@ public: Script(); ~Script(); - enum Code { - CODE_MOVE_A0, - CODE_MOVE_A1, - CODE_MOVE_I0, - CODE_MOVE_I1, - CODE_MOVE_V0, - CODE_MOVE_V1, - - CODE_ADD_I0, - CODE_ADD_I1, - CODE_ADD_V0, - CODE_ADD_V1, - - CODE_MOD_I0, - CODE_MOD_I1, - - CODE_RAND_I0, - CODE_RAND_I1, - - CODE_CMP_I0, - CODE_CMP_I1, - CODE_CMP_I0_I1, - - CODE_JUMP, - CODE_JUMP_EQUAL, - CODE_JUMP_NOT_EQUAL, - CODE_JUMP_LESS, - CODE_JUMP_LESS_EQUAL, - CODE_JUMP_GREATER, - CODE_JUMP_GREATER_EQUAL, - - CODE_SYSCALL, + enum Command { + COMMAND_NOOP, + COMMAND_MOVE, + COMMAND_ADD, + COMMAND_MOD, + COMMAND_RAND, + COMMAND_CMP, + COMMAND_JMP, + COMMAND_JEQ, + COMMAND_JNE, + COMMAND_JL, + COMMAND_JLE, + COMMAND_JG, + COMMAND_JGE, + COMMAND_SYSC, + }; + + enum Type { + TYPE_NONE, + TYPE_ADDRESS, + TYPE_INTEGER, + TYPE_VECTOR, + }; + + struct Code { + Command command : 6; + unsigned int numParams : 2; + Type type : 2; + unsigned int reg1 : 3; + unsigned int reg2 : 3; }; public: - const unsigned char *text; + const char *text; int textlen; };