Skip to content

Commit

Permalink
Add new components. Fix se loading. Improve frame alignment.
Browse files Browse the repository at this point in the history
  • Loading branch information
acaly committed Jan 14, 2019
1 parent 84d748f commit d05d923
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 6 deletions.
10 changes: 8 additions & 2 deletions Editor/EditorForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1022,10 +1022,16 @@ private void alignAllFramesToolStripMenuItem_Click(object sender, EventArgs e)
{
var seg = _Editor.CurrentSegment;
var frame = _Editor.CurrentFrame;
var imageFrame = _Editor.Project.ImageList.GetImage(frame.ImageID);
var x = -frame.OriginX + imageFrame.Width * frame.ScaleX / 200;
var y = -frame.OriginY + imageFrame.Height * frame.ScaleY / 100;
foreach (var f in seg.Frames)
{
f.OriginX = frame.OriginX;
f.OriginY = frame.OriginY;
var image2 = _Editor.Project.ImageList.GetImage(f.ImageID);
var x2 = -f.OriginX + image2.Width * f.ScaleX / 200;
var y2 = -f.OriginY + image2.Height * f.ScaleY / 100;
f.OriginX -= x - x2;
f.OriginY -= y - y2;
}
}
}
Expand Down
27 changes: 27 additions & 0 deletions Pat/Effects/ActorVariables.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public override float Get(Simulation.Actor actor)
{

}
if (!actor.Variables.ContainsKey(Name)) return 0;
var val = actor.Variables[Name];
if (val.Type == Simulation.ActorVariableType.Float)
{
Expand All @@ -36,6 +37,32 @@ public override Expression Generate(GenerationEnvironment env)
}
}

[Serializable]
public class ActorParentFloatVariableValue : Value
{
[XmlAttribute]
public string Name { get; set; }

public override float Get(Simulation.Actor actor)
{
var parent = actor.Owner;
if (!parent.Variables.ContainsKey(Name)) return 0;
var val = parent.Variables[Name];
if (val.Type == Simulation.ActorVariableType.Float)
{
return (float)val.Value;
}
return 0;
}

public override Expression Generate(GenerationEnvironment env)
{
return ActorVariableHelper.GenerateGet(
ActorVariableHelper.GenerateGet("SYS_parent").MakeIndex("wr"),
Name);
}
}

[Serializable]
public class ActorSetFloatVariableEffect : Effect
{
Expand Down
4 changes: 2 additions & 2 deletions Pat/Effects/BulletEffect.cs
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ public override ILineObject Generate(GenerationEnvironment env)
}
if (cond != null)
{
cond = new BiOpExpr(new CustomCodeExpr("ownerActor != null"), cond, BiOpExpr.Op.And);
cond = new BiOpExpr(new CustomCodeExpr("(!ownerActor)"), cond, BiOpExpr.Op.Or);
ret.Add(new ControlBlock(ControlBlockType.If, cond,
new ILineObject[] {
BulletEffectHelper.GenerateEnd(ReleaseIfCheckFailed, SegmentCheckFailed),
Expand All @@ -390,7 +390,7 @@ public override ILineObject Generate(GenerationEnvironment env)

var setRotation = ThisExpr.Instance.MakeIndex("rz").Assign(ownerActor.MakeIndex("rz")).Statement();
ret.AddRange(new ILineObject[] {
new ControlBlock(ControlBlockType.If, "ownerActor != null", new ILineObject[] {
new ControlBlock(ControlBlockType.If, "(ownerActor)", new ILineObject[] {
ThisExpr.Instance.MakeIndex("x").Assign(x).Statement(),
ThisExpr.Instance.MakeIndex("y").Assign(y).Statement(),
ThisExpr.Instance.MakeIndex("direction").Assign(dir).Statement(),
Expand Down
49 changes: 49 additions & 0 deletions Pat/Effects/CommonValue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using GS_PatEditor.Editor.Exporters.CodeFormat;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Expand Down Expand Up @@ -122,4 +123,52 @@ public override Expression Generate(GenerationEnvironment env)
BiOpExpr.Op.Add);
}
}

public enum UnaryFunctionValueType
{
Sin,
Cos,
}

[Serializable]
public class UnaryFunctionValue : Value
{
[XmlElement]
[EditorChildNode("UnaryFunctionValue_Operand")]
public Value Operand;

[XmlAttribute]
public UnaryFunctionValueType Function { get; set; }

public UnaryFunctionValue()
{
}

public override float Get(Simulation.Actor actor)
{
var v = Operand.Get(actor);
switch (Function)
{
case UnaryFunctionValueType.Sin:
return (float)Math.Sin(v);
case UnaryFunctionValueType.Cos:
return (float)Math.Cos(v);
default:
return 0;
}
}

public override Expression Generate(GenerationEnvironment env)
{
var v = Operand.Generate(env);
string name;
switch (Function)
{
case UnaryFunctionValueType.Sin: name = "sin"; break;
case UnaryFunctionValueType.Cos: name = "cos"; break;
default: return new ConstNumberExpr(0);
}
return ThisExpr.Instance.MakeIndex(name).Call(v);
}
}
}
4 changes: 2 additions & 2 deletions SoundEffect/Sound.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public Sound(SoundEngine engine, string filename)
var align = br.ReadInt16();
if (align != 2)
{
throw new IOException("invalid cv3 file");
//throw new IOException("invalid cv3 file");
}
var bits = br.ReadInt16();
if (bytesPerSecond != rate * bits / 8 * channels)
Expand All @@ -63,7 +63,7 @@ public Sound(SoundEngine engine, string filename)
var zero = br.ReadInt16();
if (zero != 0)
{
throw new IOException("invalid cv3 file");
//throw new IOException("invalid cv3 file");
}
var len = br.ReadInt32();

Expand Down

0 comments on commit d05d923

Please sign in to comment.