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;
                                


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to