| 1245 | } |
| 1246 | |
| 1247 | LRESULT CDallasMainDlg::OnAddScriptAndHighlight(WPARAM, LPARAM) { |
| 1248 | HTREEITEM new_node; |
| 1249 | |
| 1250 | int new_id = GetLowestUnusedScriptID(); |
| 1251 | |
| 1252 | new_node = CreateDefaultScriptTree(new_id); |
| 1253 | if (new_node != NULL) { |
| 1254 | if (new_id == m_NextScriptID) |
| 1255 | m_NextScriptID++; |
| 1256 | m_ScriptTree.SelectItem(new_node); |
| 1257 | |
| 1258 | // Assign given data to owner |
| 1259 | HTREEITEM owner_node = GetScriptOwnerNode(new_node); |
| 1260 | if (owner_node != NULL) { |
| 1261 | tTreeNodeData *data = (tTreeNodeData *)m_ScriptTree.GetItemData(owner_node); |
| 1262 | if (data != NULL) { |
| 1263 | data->ID = m_ScriptOwnerType; |
| 1264 | data->int_val = m_ScriptOwnerHandle; |
| 1265 | if (data->ID == OBJECT_TYPE) { |
| 1266 | object *objp = ObjGet(data->int_val); |
| 1267 | if (objp == NULL || objp->type == OBJ_NONE || objp->name == NULL) { |
| 1268 | data->int_val = OBJECT_HANDLE_NONE; |
| 1269 | strcpy(data->str_val, ""); |
| 1270 | } else { |
| 1271 | strcpy(data->str_val, objp->name); |
| 1272 | } |
| 1273 | } else if (data->ID == TRIGGER_TYPE) { |
| 1274 | if (data->int_val < 0 || data->int_val >= Num_triggers) { |
| 1275 | data->int_val = NOT_SPECIFIED_TYPE; |
| 1276 | strcpy(data->str_val, ""); |
| 1277 | } else { |
| 1278 | strcpy(data->str_val, Triggers[data->int_val].name); |
| 1279 | } |
| 1280 | } else { |
| 1281 | strcpy(data->str_val, ""); |
| 1282 | } |
| 1283 | UpdateNodeText(owner_node); |
| 1284 | } |
| 1285 | } |
| 1286 | |
| 1287 | // Highlight all the scripts |
| 1288 | HighlightAllScripts(); |
| 1289 | |
| 1290 | ClearHighlightRadioButtons(); |
| 1291 | ((CButton *)GetDlgItem(IDC_SPECIFIC_RADIO))->SetCheck(1); |
| 1292 | |
| 1293 | // Prompt the user for the name of this script |
| 1294 | AssignSpecificValue(); |
| 1295 | } |
| 1296 | return 0; |
| 1297 | } |
| 1298 | |
| 1299 | // Displays the "are you sure?" dialog |
| 1300 | int CDallasMainDlg::ModifiedPrompt(void) { |
nothing calls this directly
no test coverage detected