Guest User

BP.revised.patch

a guest
Jan 28th, 2013
74
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Index: code/fred2/sexp_tree.cpp
  2. ===================================================================
  3. --- code/fred2/sexp_tree.cpp    (revision 9485)
  4. +++ code/fred2/sexp_tree.cpp    (working copy)
  5. @@ -2643,6 +2643,7 @@
  6.         case OPF_SHIP_EFFECT:
  7.         case OPF_ANIMATION_TYPE:
  8.         case OPF_SHIP_FLAG:
  9. +       case OPF_NEBULA_PATTERN:
  10.             return 1;
  11.  
  12.         case OPF_SHIP:
  13. @@ -4420,6 +4421,10 @@
  14.             list = get_listing_opf_team_colors();
  15.             break;
  16.  
  17. +       case OPF_NEBULA_PATTERN:
  18. +           list = get_listing_opf_nebula_patterns();
  19. +           break;
  20. +
  21.         default:
  22.             Int3();  // unknown OPF code
  23.             list = NULL;
  24. @@ -5933,8 +5938,28 @@
  25.     return head.next;
  26.  }
  27.  
  28. +sexp_list_item *sexp_tree::get_listing_opf_nebula_patterns()
  29. +{
  30. +   sexp_list_item head;
  31.  
  32. +   head.add_data(SEXP_NONE_STRING);
  33.  
  34. +   /*for (size_t i=0; i < Storm_types.size(); i++)
  35. +   {
  36. +       head.add_data(Storm_types[i].name);
  37. +   }*/
  38. +
  39. +   for(int i=0; i<MAX_NEB2_BITMAPS; i++) {
  40. +       if(strlen(Neb2_bitmap_filenames[i]) > 0) {
  41. +           head.add_data(Neb2_bitmap_filenames[i]);
  42. +       }
  43. +   }
  44. +
  45. +   return head.next;
  46. +}
  47. +
  48. +
  49. +
  50.  // Deletes sexp_variable from sexp_tree.
  51.  // resets tree to not include given variable, and resets text and type
  52.  void sexp_tree::delete_sexp_tree_variable(const char *var_name)
  53. Index: code/fred2/sexp_tree.h
  54. ===================================================================
  55. --- code/fred2/sexp_tree.h  (revision 9485)
  56. +++ code/fred2/sexp_tree.h  (working copy)
  57. @@ -270,6 +270,7 @@
  58.     sexp_list_item *get_listing_opf_mission_moods();
  59.     sexp_list_item *get_listing_opf_ship_flags();
  60.     sexp_list_item *get_listing_opf_team_colors();
  61. +   sexp_list_item *get_listing_opf_nebula_patterns();
  62.  
  63.     int m_mode;
  64.     int item_index;
  65. Index: code/globalincs/globals.h
  66. ===================================================================
  67. --- code/globalincs/globals.h   (revision 9485)
  68. +++ code/globalincs/globals.h   (working copy)
  69. @@ -42,9 +42,9 @@
  70.  // DO NOT CHANGE THIS - IT WILL LIKELY BREAK FREESPACE2 PXO SUPPORT
  71.  // TALK TO DAVE B FIRST
  72.  // ****************************************************************
  73. -#define MAX_SHIP_CLASSES_MULTI 130
  74. +#define MAX_SHIP_CLASSES_MULTI 512
  75.  
  76. -#define MAX_SHIP_CLASSES       250
  77. +#define MAX_SHIP_CLASSES       512
  78.  
  79.  #define MAX_WINGS              75
  80.  
  81. Index: code/mission/missionparse.cpp
  82. ===================================================================
  83. --- code/mission/missionparse.cpp   (revision 9485)
  84. +++ code/mission/missionparse.cpp   (working copy)
  85. @@ -3426,8 +3426,8 @@
  86.             for (j=0; j < sip->n_subsystems; ++j)
  87.                 if (!subsystem_stricmp(sip->subsystems[j].subobj_name, Subsys_status[i].name))
  88.                     break;
  89. -           if (j == sip->n_subsystems)
  90. -               Warning(LOCATION, "Ship \"%s\", class \"%s\"\nUnknown subsystem \"%s\" found in mission!", objp->name, sip->name, Subsys_status[i].name);
  91. +           //if (j == sip->n_subsystems)
  92. +               //Warning(LOCATION, "Ship \"%s\", class \"%s\"\nUnknown subsystem \"%s\" found in mission!", objp->name, sip->name, Subsys_status[i].name);
  93.         }
  94.  
  95.         if (optional_string("$Damage:"))
  96. Index: code/parse/sexp.cpp
  97. ===================================================================
  98. --- code/parse/sexp.cpp (revision 9485)
  99. +++ code/parse/sexp.cpp (working copy)
  100. @@ -209,7 +209,7 @@
  101.     { "num-ships-in-battle",            OP_NUM_SHIPS_IN_BATTLE,                 0,  INT_MAX,    SEXP_INTEGER_OPERATOR,  },  //phreak modified by FUBAR
  102.     { "num-ships-in-wing",              OP_NUM_SHIPS_IN_WING,                   1,  INT_MAX,    SEXP_INTEGER_OPERATOR,  },  // Karajorma
  103.     { "directive-value",                OP_DIRECTIVE_VALUE,                     12,          SEXP_INTEGER_OPERATOR,  },  // Karajorma
  104. -  
  105. +
  106.     //Player Sub-Category
  107.     { "was-promotion-granted",          OP_WAS_PROMOTION_GRANTED,               01,          SEXP_BOOLEAN_OPERATOR,  },
  108.     { "was-medal-granted",              OP_WAS_MEDAL_GRANTED,                   01,          SEXP_BOOLEAN_OPERATOR,  },
  109. @@ -625,9 +625,10 @@
  110.     { "remove-sun-bitmap",              OP_REMOVE_SUN_BITMAP,                   11,          SEXP_ACTION_OPERATOR,   },  // phreak
  111.     { "nebula-change-storm",            OP_NEBULA_CHANGE_STORM,                 11,          SEXP_ACTION_OPERATOR,   },  // phreak
  112.     { "nebula-toggle-poof",             OP_NEBULA_TOGGLE_POOF,                  22,          SEXP_ACTION_OPERATOR,   },  // phreak
  113. +   { "nebula-change-pattern",          OP_NEBULA_CHANGE_PATTERN,               1,  1,      }, // Axem
  114.     { "set-skybox-model",               OP_SET_SKYBOX_MODEL,                    11,          SEXP_ACTION_OPERATOR,   },  // taylor
  115. -   { "set-skybox-orientation",         OP_SET_SKYBOX_ORIENT,                   3,  3,          SEXP_ACTION_OPERATOR,   },  // Goober5000
  116. -   { "set-ambient-light",              OP_SET_AMBIENT_LIGHT,                   3,  3,          SEXP_ACTION_OPERATOR,   },  // Karajorma
  117. +   { "set-skybox-orientation",     OP_SET_SKYBOX_ORIENT,               3, 3 }, // Goober5000
  118. +   { "set-ambient-light",          OP_SET_AMBIENT_LIGHT,           3, 3 },             // Karajorma
  119.  
  120.     //Jump Node Sub-Category
  121.     { "set-jumpnode-name",              OP_JUMP_NODE_SET_JUMPNODE_NAME,         22,          SEXP_ACTION_OPERATOR,   },  //CommanderDJ
  122. @@ -3017,6 +3018,7 @@
  123.             case OPF_SUN_BITMAP:
  124.             case OPF_NEBULA_STORM_TYPE:
  125.             case OPF_NEBULA_POOF:
  126. +           case OPF_NEBULA_PATTERN:
  127.             case OPF_POST_EFFECT:
  128.                 if (type2 != SEXP_ATOM_STRING) {
  129.                     return SEXP_CHECK_TYPE_MISMATCH;
  130. @@ -12007,6 +12009,15 @@
  131.     neb2_eye_changed();
  132.  }
  133.  
  134. +void sexp_nebula_change_pattern(int n)
  135. +{
  136. +   if (!(The_mission.flags & MISSION_FLAG_FULLNEB)) return;
  137. +  
  138. +   strcpy_s(Neb2_texture_name,(CTEXT(n)));
  139. +
  140. +   neb2_post_level_init();
  141. +}
  142. +
  143.  /**
  144.   * End the mission.
  145.   *
  146. @@ -21510,6 +21521,8 @@
  147.  */
  148.  void add_to_event_log_buffer(int op_num, int result)
  149.  {
  150. +   if (op_num == -1)
  151. +       return; //How does this happen?
  152.     char buffer[TOKEN_LENGTH];
  153.     SCP_string tmp;
  154.     tmp.append(Operators[op_num].text);
  155. @@ -22618,6 +22631,11 @@
  156.                 sexp_val = SEXP_TRUE;
  157.                 break;
  158.  
  159. +           case OP_NEBULA_CHANGE_PATTERN:
  160. +               sexp_nebula_change_pattern(node);
  161. +               sexp_val = SEXP_TRUE;
  162. +               break;
  163. +
  164.             case OP_END_MISSION:
  165.                 sexp_end_mission(node);
  166.                 sexp_val = SEXP_TRUE;
  167. @@ -23369,7 +23387,7 @@
  168.                 break;
  169.  
  170.             case OP_NUM_SHIPS_IN_BATTLE:    // phreak
  171. -               sexp_val = sexp_num_ships_in_battle(node);
  172. +               sexp_val=sexp_num_ships_in_battle(node);
  173.                 break;
  174.  
  175.             // Karajorma
  176. @@ -24645,6 +24663,7 @@
  177.         case OP_DEBUG:
  178.         case OP_ALTER_SHIP_FLAG:
  179.         case OP_CHANGE_TEAM_COLOR:
  180. +       case OP_NEBULA_CHANGE_PATTERN:
  181.             return OPR_NULL;
  182.  
  183.         case OP_AI_CHASE:
  184. @@ -26569,6 +26588,9 @@
  185.         case OP_NEBULA_CHANGE_STORM:
  186.             return OPF_NEBULA_STORM_TYPE;
  187.  
  188. +       case OP_NEBULA_CHANGE_PATTERN:
  189. +           return OPF_NEBULA_PATTERN;
  190. +
  191.         case OP_NEBULA_TOGGLE_POOF:
  192.             if (argnum == 1) return OPF_BOOL;
  193.             else return OPF_NEBULA_POOF;
  194. @@ -28181,6 +28203,7 @@
  195.         case OP_REMOVE_SUN_BITMAP:
  196.         case OP_NEBULA_CHANGE_STORM:
  197.         case OP_NEBULA_TOGGLE_POOF:
  198. +       case OP_NEBULA_CHANGE_PATTERN:
  199.         case OP_SET_AMBIENT_LIGHT:
  200.             return CHANGE_SUBCATEGORY_BACKGROUND_AND_NEBULA;
  201.  
  202. @@ -31710,6 +31733,12 @@
  203.         "\t2:\tA True boolean expression will toggle this poof on.  A false one will do the opposite."
  204.     },
  205.  
  206. +   { OP_NEBULA_CHANGE_STORM, "nebula-change-pattern\r\n"
  207. +   "\tChanges the current nebula background pattern (as defined in nebula.tbl)\r\n\r\n"
  208. +       "Takes 1 argument...\r\n"
  209. +       "\t1:\tNebula background pattern to change to\r\n"
  210. +   },
  211. +
  212.     {OP_SCRIPT_EVAL_NUM, "script-eval-num\r\n"
  213.         "\tEvaluates script to return a number"
  214.         "Takes 1 argument...\r\n"
  215. Index: code/parse/sexp.h
  216. ===================================================================
  217. --- code/parse/sexp.h   (revision 9485)
  218. +++ code/parse/sexp.h   (working copy)
  219. @@ -109,6 +109,7 @@
  220.  #define OPF_MISSION_MOOD       82      // Karajorma - Moods determine which builtin messages will be sent
  221.  #define OPF_SHIP_FLAG          83      // Karajorma - The name of a ship flag
  222.  #define OPF_TEAM_COLOR         84      // The E - Color settings as defined in Colors.tbl
  223. +#define OPF_NEBULA_PATTERN     85      // Axem - Full Nebula Background Patterns, as defined in nebula.tbl
  224.  
  225.  // Operand return types
  226.  #define    OPR_NUMBER              1   // returns number
  227. @@ -707,6 +708,7 @@
  228.  #define OP_NAV_UNSELECT                        (0x001a | OP_CATEGORY_CHANGE2 | OP_NONCAMPAIGN_FLAG)    // Talon1024
  229.  #define OP_ALTER_SHIP_FLAG                 (0x001b | OP_CATEGORY_CHANGE2 | OP_NONCAMPAIGN_FLAG)    // Karajorma
  230.  #define OP_CHANGE_TEAM_COLOR               (0x001c | OP_CATEGORY_CHANGE2 | OP_NONCAMPAIGN_FLAG)    // The E
  231. +#define OP_NEBULA_CHANGE_PATTERN           (0x001d | OP_CATEGORY_CHANGE2 | OP_NONCAMPAIGN_FLAG)    // Axem
  232.  
  233.  // defined for AI goals
  234.  #define OP_AI_CHASE                            (0x0000 | OP_CATEGORY_AI | OP_NONCAMPAIGN_FLAG)
RAW Paste Data