In Marble Blast Ultra, whenever a client receives a message from the server, first a generic callback is called for every callback not registered to a type (this being onServerMessage currently). This callback doesn't work properly for tagged messages ever since the MBO code got added, as the tagged messages are being treated as server messages to be rendered in the Chat Box (not as a tooltip like they were in the XBLA release). Nothing renders at all due to a faulty comparison in game/cpmmon/client/message.cs shown below:
Regardless of this, rather than interfere with the client chat code (which is more complex than the original messaging functionality), this PR simply adds callbacks for the message types sent by a server when a gem/easter egg is picked up or the player touches an EndPad. The logic here simply detags the string and tries to load any additional data into it before correctly playing any sound effects and rendering text as required.
Closes #172
In Marble Blast Ultra, whenever a client receives a message from the server, first a generic callback is called for every callback not registered to a type (this being
onServerMessage
currently). This callback doesn't work properly for tagged messages ever since the MBO code got added, as the tagged messages are being treated as server messages to be rendered in the Chat Box (not as a tooltip like they were in the XBLA release). Nothing renders at all due to a faulty comparison ingame/cpmmon/client/message.cs
shown below:Regardless of this, rather than interfere with the client chat code (which is more complex than the original messaging functionality), this PR simply adds callbacks for the message types sent by a server when a gem/easter egg is picked up or the player touches an
EndPad
. The logic here simply detags the string and tries to load any additional data into it before correctly playing any sound effects and rendering text as required.