From 7381679cd0f77a2b91b2fce5f0060afc2d359f5a Mon Sep 17 00:00:00 2001
From: James Cook <james@cookmd.com>
Date: Thu, 1 Apr 2010 10:15:37 -0700
Subject: [PATCH] Add TransactionInfo to MoneyBalanceReply, unpack test data

---
 indra/newview/llviewermessage.cpp     | 20 +++++++++++++++++++-
 scripts/messages/message_template.msg | 24 ++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index ffe638dfbf9..2502cd4303e 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -4610,6 +4610,24 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
 	LL_INFOS("Messaging") << "L$, credit, committed: " << balance << " " << credit << " "
 			<< committed << LL_ENDL;
 
+    // Added in server 1.40 and viewer 2.1, support for localization
+    // and agent ids for name lookup.
+    S32 transaction_type = 0;
+    U32 transaction_flags = 0;
+    LLUUID source_id;
+    LLUUID dest_id;
+    S32 amount = 0;
+    std::string item_description;
+    if (msg->has("TransactionInfo"))
+    {
+        msg->getS32("TransactionInfo", "TransactionType", transaction_type);
+        msg->getU32("TransactionInfo", "TransactionFlags", transaction_flags);
+        msg->getUUID("TransactionInfo", "SourceID", source_id);
+        msg->getUUID("TransactionInfo", "DestID", dest_id);
+        msg->getS32("TransactionInfo", "Amount", amount);
+        msg->getString("TransactionInfo", "ItemDescription", item_description);
+    }
+    
 	if (gStatusBar)
 	{
 	//	S32 old_balance = gStatusBar->getBalance();
@@ -4649,7 +4667,7 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
 		// "<avatar name> paid you L$"
 		const std::string marker = "paid you L$";
 
-		args["MESSAGE"] = desc;
+		args["MESSAGE"] = desc + item_description; // JAMESDEBUG
 
 		// extract avatar name from system message
 		S32 marker_pos = desc.find(marker, 0);
diff --git a/scripts/messages/message_template.msg b/scripts/messages/message_template.msg
index d4f791c202b..1080d140dc5 100644
--- a/scripts/messages/message_template.msg
+++ b/scripts/messages/message_template.msg
@@ -6812,6 +6812,18 @@ version 2.0
 		{	SquareMetersCommitted	S32	}
 		{	Description			Variable 1	}	// string
 	}
+	// For replies that are part of a transaction (buying something) provide
+	// metadata for localization.  If TransactionType is 0, the message is
+	// purely a balance update.  Added for server 1.40 and viewer 2.1.  JC
+	{
+		TransactionInfo		Single
+		{	TransactionType			S32			}	// lltransactiontype.h
+		{	TransactionFlags		U32			}	// lltransactionflags.h
+		{	SourceID				LLUUID		}
+		{	DestID					LLUUID		}
+		{	Amount					S32			}
+		{	ItemDescription			Variable 1	}	// string
+	}
 }
 
 
@@ -6838,6 +6850,16 @@ version 2.0
 		{	SquareMetersCommitted	S32	}
 		{	Description			Variable 1	}	// string
 	}
+	// See MoneyBalanceReply above.
+	{
+		TransactionInfo		Single
+		{	TransactionType			S32			}	// lltransactiontype.h
+		{	TransactionFlags		U32			}	// lltransactionflags.h
+		{	SourceID				LLUUID		}
+		{	DestID					LLUUID		}
+		{	Amount					S32			}
+		{	ItemDescription			Variable 1	}	// string
+	}
 }
 
 
@@ -8972,5 +8994,7 @@ version 2.0
 		{	InvType			S8	}
 		{	Name			Variable	1	}
 		{	Description		Variable	1	}
+
 	}
 }
+
-- 
GitLab