+ case Script::CODE_CMP_I0:
+ Compare(integer0, PopInt());
+ break;
+ case Script::CODE_CMP_I1:
+ Compare(integer1, PopInt());
+ break;
+ case Script::CODE_CMP_I0_I1:
+ Compare(integer0, integer1);
+ break;
+ case Script::CODE_JUMP:
+ cursor = PopInt();
+ break;
+ case Script::CODE_JUMP_EQUAL: {
+ int addr(PopInt());
+ if (compare == COMPARE_EQUAL) {
+ cursor = addr;
+ }
+ break;
+ }
+ case Script::CODE_JUMP_NOT_EQUAL: {
+ int addr(PopInt());
+ if (compare != COMPARE_EQUAL) {
+ cursor = addr;
+ }
+ break;
+ }
+ case Script::CODE_JUMP_LESS: {
+ int addr(PopInt());
+ if (compare == COMPARE_LESS) {
+ cursor = addr;
+ }
+ break;
+ }
+ case Script::CODE_JUMP_LESS_EQUAL: {
+ int addr(PopInt());
+ if (compare != COMPARE_GREATER) {
+ cursor = addr;
+ }
+ break;
+ }
+ case Script::CODE_JUMP_GREATER: {
+ int addr(PopInt());
+ if (compare == COMPARE_GREATER) {
+ cursor = addr;
+ }
+ break;
+ }
+ case Script::CODE_JUMP_GREATER_EQUAL: {
+ int addr(PopInt());
+ if (compare != COMPARE_LESS) {
+ cursor = addr;
+ }
+ break;
+ }