Browse Source

Bug fix of description text display

louyihua 8 years ago
parent
commit
2981396a01
3 changed files with 15 additions and 22 deletions
  1. 3 3
      makedialog.py
  2. 7 13
      script.c
  3. 5 6
      text.c

+ 3 - 3
makedialog.py

@@ -92,7 +92,7 @@ def main():
 
             if is_msg_group == 0:
                 is_msg_group = 1
-                output += "%s %d\n" % ('[BEGIN DIALOG]', w1)
+                output += "%s %d\n" % ('[BEGIN MESSAGE]', w1)
 
             last_index = w1
             msg_count += 1
@@ -106,12 +106,12 @@ def main():
         elif op == 0x008E:
 
             if is_msg_group == 1:
-                output += "%s\n" % ('[CLEAR DIALOG]')
+                output += "%s\n" % ('[CLEAR MESSAGE]')
 
         else:
             if is_msg_group == 1:
                 is_msg_group = 0
-                output += "%s %d\n\n" % ('[END DIALOG]', last_index)
+                output += "%s %d\n\n" % ('[END MESSAGE]', last_index)
 
     try:
         with open(options.outfile, "wt") as f:

+ 7 - 13
script.c

@@ -3366,7 +3366,6 @@ PAL_RunAutoScript(
 {
    LPSCRIPTENTRY          pScript;
    LPEVENTOBJECT          pEvtObj;
-   int                    iDescLine = 0;
 
 begin:
    pScript = &(gpGlobals->g.lprgScriptEntry[wScriptEntry]);
@@ -3465,7 +3464,10 @@ begin:
    case 0xFFFF:
 	   if (gpGlobals->fIsWIN95)
 	   {
-		   iDescLine = (wEventObjectID & ~PAL_ITEM_DESC_BOTTOM);
+		   int XBase = (wEventObjectID & PAL_ITEM_DESC_BOTTOM) ? 75 : 100;
+		   int YBase = (wEventObjectID & PAL_ITEM_DESC_BOTTOM) ? 150 - gpGlobals->dwExtraItemDescLines * 16 : 3;
+		   int iDescLine = (wEventObjectID & ~PAL_ITEM_DESC_BOTTOM);
+
 		   if (gpGlobals->pszMsgName)
 		   {
 			   int idx = 0, iMsg;
@@ -3473,15 +3475,7 @@ begin:
 			   {
 				   if (iMsg > 0)
 				   {
-					   if (wEventObjectID & PAL_ITEM_DESC_BOTTOM)
-					   {
-						   int YOffset = gpGlobals->dwExtraItemDescLines * 16;
-						   PAL_DrawText(PAL_GetMsg(iMsg), PAL_XY(75, iDescLine * 16 + 150 - YOffset), DESCTEXT_COLOR, TRUE, FALSE);
-					   }
-					   else
-					   {
-						   PAL_DrawText(PAL_GetMsg(iMsg), PAL_XY(100, iDescLine * 16 + 3), DESCTEXT_COLOR, TRUE, FALSE);
-					   }
+					   PAL_DrawText(PAL_GetMsg(iMsg), PAL_XY(XBase, iDescLine * 16 + YBase), DESCTEXT_COLOR, TRUE, FALSE);
 					   iDescLine++;
 				   }
 			   }
@@ -3495,8 +3489,8 @@ begin:
 		   }
 		   else
 		   {
-			   PAL_ShowDialogText(PAL_GetMsg(pScript->rgwOperand[0]));
-			   iDescLine++; wScriptEntry++;
+			   PAL_DrawText(PAL_GetMsg(pScript->rgwOperand[0]), PAL_XY(XBase, iDescLine * 16 + YBase), DESCTEXT_COLOR, TRUE, FALSE);
+			   wScriptEntry++;
 		   }
 	   }
 	   else

+ 5 - 6
text.c

@@ -205,8 +205,8 @@ PAL_ReadMessageFile(
 				//
 				if (*buffer && *buffer != '#')
 				{
-					if (strncmp(buffer, "[BEGIN DIALOG]", 14) == 0 &&
-						sscanf(buffer + 14, "%d", &sid) == 1 &&
+					if (strncmp(buffer, "[BEGIN MESSAGE]", 15) == 0 &&
+						sscanf(buffer + 15, "%d", &sid) == 1 &&
 						sid == eid + 1)
 					{
 						state = ST_DIALOG;
@@ -241,7 +241,6 @@ PAL_ReadMessageFile(
 #ifdef ENABLE_LOG
 						UTIL_WriteLog(LOG_ERR, "PAL_ReadMessageFile(): encounter invalid line '%s'!\n", line);
 #endif
-						int iii = 1;
 					}
 				}
 				break;
@@ -249,8 +248,8 @@ PAL_ReadMessageFile(
 				//
 				// Check if to end one dialog
 				//
-				if (strncmp(buffer, "[END DIALOG]", 12) == 0 &&
-					sscanf(buffer + 12, "%d", &eid) == 1 && eid >= sid)
+				if (strncmp(buffer, "[END MESSAGE]", 13) == 0 &&
+					sscanf(buffer + 13, "%d", &eid) == 1 && eid >= sid)
 				{
 					// End dialog
 					state = ST_OUTSIDE;
@@ -264,7 +263,7 @@ PAL_ReadMessageFile(
 					}
 					else
 						cur_val = (struct _msg_entry *)malloc(sizeof(struct _msg_entry));
-					if (strncmp(buffer, "[CLEAR DIALOG]", 14) == 0)
+					if (strncmp(buffer, "[CLEAR MESSAGE]", 15) == 0)
 					{
 						cur_val->value = NULL;
 					}