static string GetConditionName(EvalEnum evalEnum, string value) { switch (evalEnum) { case EvalEnum.INHAND: case EvalEnum.COL_BY: case EvalEnum.CONTACT: case EvalEnum.HIT_BY: case EvalEnum.HIT: case EvalEnum.ACTOR_COLLIDER: return(GetObjectName(value)); case EvalEnum.POSREL: return(vars.GetText(VarEnum.POSREL, value)); case EvalEnum.ACTION: return(vars.GetText(VarEnum.ACTIONS, value)); case EvalEnum.ANIM: return(vars.GetText(VarEnum.ANIMS, value)); case EvalEnum.BODY: return(vars.GetText(VarEnum.BODYS, value)); case EvalEnum.KEYBOARD_INPUT: return(vars.GetText(VarEnum.KEYBOARD_INPUT, value)); case EvalEnum.NUM_TRACK: return(vars.GetText(VarEnum.TRACKS, value)); case EvalEnum.MUSIC: return(vars.GetText(VarEnum.MUSIC, value)); case EvalEnum.LIFE: return(vars.GetText(VarEnum.LIFES, value)); default: return(value); } }
static string Evalvar(out EvalEnum evalEnum) { evalEnum = EvalEnum.NONE; int curr = GetParam(); if (curr == -1) { //constant return(GetParam().ToString()); } if (curr == 0) { //variable curr = GetParam(); string name = vars.GetText(VarEnum.VARS, curr, "var_" + curr); if (name == "player_current_action") { evalEnum = EvalEnum.ACTION; } return(name); } //function string result = string.Empty; if ((curr & 0x8000) == 0x8000) { //change actor result = GetObjectName(GetParam()) + "."; } curr &= 0x7FFF; curr--; if (curr < 0 || curr >= config.EvalMacro.Length) { throw new NotImplementedException(curr.ToString()); } evalEnum = config.EvalMacro[curr]; string parameter = evalEnum.ToString().ToLowerInvariant(); switch (evalEnum) { case EvalEnum.DIST: parameter += string.Format("({0})", GetObjectName(GetParam())); break; case EvalEnum.POSREL: if (config.Version == GameVersion.TIMEGATE || config.Version == GameVersion.TIMEGATE_DEMO) { parameter += string.Format("({0})", Evalvar()); } else { parameter += string.Format("({0})", GetObjectName(GetParam())); } break; case EvalEnum.OBJECT: case EvalEnum.THROW: parameter += string.Format("({0})", GetObjectName(GetParam())); break; case EvalEnum.ISFOUND: parameter += string.Format("({0})", GetObjectName(Evalvar())); break; case EvalEnum.RAND: parameter += string.Format("({0})", GetParam()); break; case EvalEnum.C_VAR: parameter = vars.GetText(VarEnum.CVARS, GetParam(), "cvar_" + curr); break; case EvalEnum.TEST_ZV_END_ANIM: case EvalEnum.MATRIX: parameter += string.Format("({0} {1})", GetParam(), GetParam()); break; case EvalEnum.DIV_BY_2: parameter += string.Format("({0})", GetParam()); break; } result += parameter; return(result); }