AmericanNero
Seasoned veteran member
- Joined
- Oct 13, 2020
- RedCents
- 4,709¢
You can replace the Main or any Sub within a macro with another version, without deleting the original, by placing it at the bottom or including at the end. There is no need to touch a line of code in the original... the implications...
[CODE lang="ini" title="Replacing a subroutine is easy as pie"]
||| ---------------------------------------------------------------------------
||| How To Non-Destructively Replace MQ2 Main and Subs
||| ---------------------------------------------------------------------------
||| ---------------------------------------------------------------------------
||| Sub:Main
||| ---------------------------------------------------------------------------
Sub Main
/echo Main 1
/call MySub Hi!
/call MySub Hi there!
/call MySub MQ2
/call MySub MQ2 Rules!
/return
Sub MySub(string MyParam)
/echo MySub 1 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 2 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 3 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 4 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 5 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 6 received ${MyParam1} ${MyParam2}
/return
||| ---------------------------------------------------------------------------
||| Sub:Main
||| ---------------------------------------------------------------------------
Sub Main
/echo Main 2
/call MySub Hi!
/call MySub Hi there!
/call MySub MQ2
/call MySub MQ2 Rules!
/return
||| ---------------------------------------------------------------------------
Sub MySub(string MyParam)
/echo MySub 7 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 8 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 9 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 10 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 11 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 12 received ${MyParam1} ${MyParam2}
/return
||| ---------------------------------------------------------------------------
||| Sub:Main
||| ---------------------------------------------------------------------------
Sub Main
/echo Main 3
/call MySub Hi!
/call MySub Hi there!
/call MySub MQ2
/call MySub MQ2 Rules!
/return
[/CODE]
Produces this output:
[MQ2] Main 3
[MQ2] MySub 12 received Hi!
[MQ2] MySub 12 received Hi there!
[MQ2] MySub 12 received MQ2
[MQ2] MySub 12 received MQ2 Rules!
[CODE lang="ini" title="Replacing a subroutine is easy as pie"]
||| ---------------------------------------------------------------------------
||| How To Non-Destructively Replace MQ2 Main and Subs
||| ---------------------------------------------------------------------------
||| ---------------------------------------------------------------------------
||| Sub:Main
||| ---------------------------------------------------------------------------
Sub Main
/echo Main 1
/call MySub Hi!
/call MySub Hi there!
/call MySub MQ2
/call MySub MQ2 Rules!
/return
Sub MySub(string MyParam)
/echo MySub 1 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 2 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 3 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 4 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 5 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 6 received ${MyParam1} ${MyParam2}
/return
||| ---------------------------------------------------------------------------
||| Sub:Main
||| ---------------------------------------------------------------------------
Sub Main
/echo Main 2
/call MySub Hi!
/call MySub Hi there!
/call MySub MQ2
/call MySub MQ2 Rules!
/return
||| ---------------------------------------------------------------------------
Sub MySub(string MyParam)
/echo MySub 7 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 8 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 9 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 10 received ${MyParam1} ${MyParam2}
/return
Sub MySub(string MyParam)
/echo MySub 11 received ${MyParam}
/return
Sub MySub(string MyParam1, string MyParam2)
/echo MySub 12 received ${MyParam1} ${MyParam2}
/return
||| ---------------------------------------------------------------------------
||| Sub:Main
||| ---------------------------------------------------------------------------
Sub Main
/echo Main 3
/call MySub Hi!
/call MySub Hi there!
/call MySub MQ2
/call MySub MQ2 Rules!
/return
[/CODE]
Produces this output:
[MQ2] Main 3
[MQ2] MySub 12 received Hi!
[MQ2] MySub 12 received Hi there!
[MQ2] MySub 12 received MQ2
[MQ2] MySub 12 received MQ2 Rules!
Last edited:


