SHADEFORM.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. namespace OpenVIII.Fields.Scripts.Instructions
  2. {
  3. /// <summary>
  4. /// two sets of 4 values. i think it could be colors but unsure.
  5. /// </summary>
  6. /// <see cref="http://wiki.ffrtt.ru/index.php?title=FF8/Field/Script/Opcodes/0B0_SHADEFORM&action=edit&redlink=1"/>
  7. public sealed class SHADEFORM : JsmInstruction
  8. {
  9. #region Fields
  10. private readonly IJsmExpression _arg0;
  11. private readonly IJsmExpression _arg1;
  12. private readonly IJsmExpression _arg2;
  13. private readonly IJsmExpression _arg3;
  14. private readonly IJsmExpression _arg4;
  15. private readonly IJsmExpression _arg5;
  16. private readonly IJsmExpression _arg6;
  17. private readonly IJsmExpression _arg7;
  18. #endregion Fields
  19. #region Constructors
  20. public SHADEFORM(IJsmExpression arg0, IJsmExpression arg1, IJsmExpression arg2, IJsmExpression arg3, IJsmExpression arg4, IJsmExpression arg5, IJsmExpression arg6, IJsmExpression arg7)
  21. {
  22. _arg0 = arg0;
  23. _arg1 = arg1;
  24. _arg2 = arg2;
  25. _arg3 = arg3;
  26. _arg4 = arg4;
  27. _arg5 = arg5;
  28. _arg6 = arg6;
  29. _arg7 = arg7;
  30. }
  31. public SHADEFORM(int parameter, IStack<IJsmExpression> stack)
  32. : this(
  33. arg7: stack.Pop(),
  34. arg6: stack.Pop(),
  35. arg5: stack.Pop(),
  36. arg4: stack.Pop(),
  37. arg3: stack.Pop(),
  38. arg2: stack.Pop(),
  39. arg1: stack.Pop(),
  40. arg0: stack.Pop())
  41. {
  42. }
  43. #endregion Constructors
  44. #region Methods
  45. public override string ToString() => $"{nameof(SHADEFORM)}({nameof(_arg0)}: {_arg0}, {nameof(_arg1)}: {_arg1}, {nameof(_arg2)}: {_arg2}, {nameof(_arg3)}: {_arg3}, {nameof(_arg4)}: {_arg4}, {nameof(_arg5)}: {_arg5}, {nameof(_arg6)}: {_arg6}, {nameof(_arg7)}: {_arg7})";
  46. #endregion Methods
  47. }
  48. }