Sim: Fix that some callsigns could mess up emesary communications.

This commit is contained in:
Nikolai V. Chr
2022-07-15 23:19:12 +02:00
parent 9684e5e388
commit 641f407599
13 changed files with 224 additions and 64 deletions
+16 -4
View File
@@ -347,8 +347,7 @@ var DamageRecipient =
}
# Missile approach warning:
var callsign = getprop("sim/multiplay/callsign");
callsign = size(callsign) < 8 ? callsign : left(callsign,7);
var callsign = processCallsign(getprop("sim/multiplay/callsign"));
if (notification.RemoteCallsign != callsign) return emesary.Transmitter.ReceiptStatus_OK;
if (!radarOn) return emesary.Transmitter.ReceiptStatus_OK;# this should be little more complex later
var heading = getprop("orientation/heading-deg");
@@ -379,8 +378,7 @@ var DamageRecipient =
# debug.dump(notification);
#
#
var callsign = getprop("sim/multiplay/callsign");
callsign = size(callsign) < 8 ? callsign : left(callsign,7);
var callsign = processCallsign(getprop("sim/multiplay/callsign"));
if (notification.RemoteCallsign == callsign and getprop("payload/armament/msg") == 1) {
#damage enabled and were getting hit
if (m28_auto) mig28.engagedBy(notification.Callsign);
@@ -1243,6 +1241,20 @@ var printDamageLog = func {
print();
}
var processCallsign = func (callsign) {
# Convert the callsign to one that emesary can work with.
var l = size(callsign);
callsign = l < 8?callsign:left(callsign, 7);
var newCallsign = "";
for(var ii = 0; ii < l; ii += 1) {
var ev = emesary.TransferString.getalphanumericchar(substr(callsign,ii,1));
if (ev != nil) {
newCallsign ~= ev;
}
}
return newCallsign;
}
#TODO testing:
var writeDamageLog = func {