[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16896] trunk/blender/source: interpreted request from Carsten - make message sensor work.

Campbell Barton ideasman42 at gmail.com
Fri Oct 3 11:51:50 CEST 2008


Revision: 16896
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16896
Author:   campbellbarton
Date:     2008-10-03 11:51:43 +0200 (Fri, 03 Oct 2008)

Log Message:
-----------
 interpreted request from Carsten - make message sensor work.
object message actuators needed the prefix OB when sending a message to a specific object.--This line, and those below, will be ignored--

M    source/gameengine/Converter/KX_ConvertActuators.cpp
M    source/blender/blenkernel/BKE_blender.h
M    source/blender/src/buttons_logic.c
M    source/blender/blenloader/intern/readfile.c

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/src/buttons_logic.c
    trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2008-10-03 09:40:48 UTC (rev 16895)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2008-10-03 09:51:43 UTC (rev 16896)
@@ -41,7 +41,7 @@
 struct MemFile;
 
 #define BLENDER_VERSION			247
-#define BLENDER_SUBVERSION		9
+#define BLENDER_SUBVERSION		10
 
 #define BLENDER_MINVERSION		245
 #define BLENDER_MINSUBVERSION	15

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2008-10-03 09:40:48 UTC (rev 16895)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2008-10-03 09:51:43 UTC (rev 16896)
@@ -7926,9 +7926,27 @@
 			la->sky_exposure= 1.0f;
 		}
 	}
+	
+	/* BGE message actuators needed OB prefix, very confusing */
+	if (main->versionfile < 247 || (main->versionfile == 247 && main->subversionfile < 10)) {
+		bActuator *act;
+		Object *ob;
 		
-		
-		
+		for(ob = main->object.first; ob; ob= ob->id.next) {
+			for(act= ob->actuators.first; act; act= act->next) {
+				if (act->type == ACT_MESSAGE) {
+					bMessageActuator *msgAct = (bMessageActuator *) act->data;
+					if (strlen(msgAct->toPropName) > 2) {
+						/* strip first 2 chars, would have only worked if these were OB anyway */
+						strncpy(msgAct->toPropName, msgAct->toPropName+2, sizeof(msgAct->toPropName));
+					} else {
+						msgAct->toPropName[0] = '\0';
+					}
+				}
+			}
+		}
+	}
+	
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
 	/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */
 

Modified: trunk/blender/source/blender/src/buttons_logic.c
===================================================================
--- trunk/blender/source/blender/src/buttons_logic.c	2008-10-03 09:40:48 UTC (rev 16895)
+++ trunk/blender/source/blender/src/buttons_logic.c	2008-10-03 09:51:43 UTC (rev 16896)
@@ -2565,30 +2565,20 @@
 	case ACT_MESSAGE:
 		ma = act->data;
 
-#define MESSAGE_SENSOR_TO_FIELD_WORKS	/* Really?  Not really.  Don't remove this ifdef yet */
-
-#ifdef MESSAGE_SENSOR_TO_FIELD_WORKS
 		ysize = 4 + (3 * 24); /* footer + number of lines * 24 pixels/line */
-#else
-		ysize = 4 + (2 * 24); /* footer + number of lines * 24 pixels/line */
-#endif
+	
 		glRects(xco, yco-ysize, xco+width, yco);
 		uiEmboss((float)xco,	    (float)yco-ysize,
 				 (float)xco+width,  (float)yco, 1);
 
 		myline=1;
 
-
-#ifdef MESSAGE_SENSOR_TO_FIELD_WORKS
 		/* line 1: To */
 		uiDefBut(block, TEX, 1, "To: ",
 			(xco+10), (yco-(myline++*24)), (width-20), 19,
 			&ma->toPropName, 0, 31, 0, 0,
-			"Optional send message to objects with this name only (Prefix name with OB)"
-			", or empty to broadcast");
+			"Optional send message to objects with this name only, or empty to broadcast");
 
-#endif
-
 		/* line 2: Message Subject */
 		uiDefBut(block, TEX, 1, "Subject: ",
 		(xco+10), (yco-(myline++*24)), (width-20), 19,

Modified: trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp	2008-10-03 09:40:48 UTC (rev 16895)
+++ trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp	2008-10-03 09:51:43 UTC (rev 16896)
@@ -291,15 +291,19 @@
 				STR_String toPropName = (msgAct->toPropName
 					? (char*) msgAct->toPropName
 					: "");
-					/**
-					* Get the Message Subject to send.
+				/* BGE Wants "OB" prefix */
+				if (toPropName != "")
+					toPropName = "OB" + toPropName;
+				
+				/**
+				* Get the Message Subject to send.
 				*/
 				STR_String subject = (msgAct->subject
 					? (char*) msgAct->subject
 					: "");
 				
-					/**
-					* Get the bodyType
+				/**
+				* Get the bodyType
 				*/
 				int bodyType = msgAct->bodyType;
 				





More information about the Bf-blender-cvs mailing list