NScumm.Sword1.Logic.fnGetPos C# (CSharp) 메소드

fnGetPos() 개인적인 메소드

private fnGetPos ( SwordObject cpt, int id, int targetId, int b, int c, int d, int z, int x ) : int
cpt SwordObject
id int
targetId int
b int
c int
d int
z int
x int
리턴 int
        private int fnGetPos(SwordObject cpt, int id, int targetId, int b, int c, int d, int z, int x)
        {
            SwordObject target = _objMan.FetchObject((uint)targetId);
            if ((target.type == Screen.TYPE_MEGA) || (target.type == Screen.TYPE_PLAYER))
            {
                ScriptVars[(int)ScriptVariableNames.RETURN_VALUE] = (uint)target.xcoord;
                ScriptVars[(int)ScriptVariableNames.RETURN_VALUE_2] = (uint)target.ycoord;
            }
            else
            {
                ScriptVars[(int)ScriptVariableNames.RETURN_VALUE] = (uint)((target.mouse_x1 + target.mouse_x2) / 2);
                ScriptVars[(int)ScriptVariableNames.RETURN_VALUE_2] = (uint)target.mouse_y2;
            }
            ScriptVars[(int)ScriptVariableNames.RETURN_VALUE_3] = (uint)target.dir;

            int megaSeperation;
            if (targetId == DUANE)
                megaSeperation = 70; // George & Duane stand with feet 70 pixels apart when at full scale
            else if (targetId == BENOIR)
                megaSeperation = 61; // George & Benoir
            else
                megaSeperation = 42; // George & Nico/Goinfre stand with feet 42 pixels apart when at full scale

            if ((target.status & STAT_SHRINK) != 0)
            {
                int scale = (target.scale_a * target.ycoord + target.scale_b) / 256;
                ScriptVars[(int)ScriptVariableNames.RETURN_VALUE_4] = (uint)((megaSeperation * scale) / 256);
            }
            else
                ScriptVars[(int)ScriptVariableNames.RETURN_VALUE_4] = (uint)megaSeperation;
            return SCRIPT_CONT;
        }