public override void defineFunction(DefineFunction action) { int updatePos = encodeActionHeader(action); writer.writeString(action.name); writer.writeUI16(action.params_Renamed.Length); for (int i = 0; i < action.params_Renamed.Length; i++) { writer.writeString(action.params_Renamed[i]); } int pos = writer.Pos; writer.writeUI16(0); // codesize placeholder updateActionHeader(updatePos); new ActionEncoder(writer, debug).encode(action.actionList); writer.writeUI16at(pos, (writer.Pos - pos) - 2); }
public override void defineFunction2(DefineFunction action) { int updatePos = encodeActionHeader(action); writer.writeString(action.name); writer.writeUI16(action.params_Renamed.Length); writer.writeUI8(action.regCount); writer.writeUI16(action.flags); for (int i = 0; i < action.params_Renamed.Length; i++) { writer.writeUI8(action.paramReg[i]); writer.writeString(action.params_Renamed[i]); } int pos = writer.Pos; writer.writeUI16(0); // placeholder updateActionHeader(updatePos); new ActionEncoder(writer, debug).encode(action.actionList); writer.writeUI16at(pos, (writer.Pos - pos) - 2); }