MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / OnAddScriptAndHighlight

Method OnAddScriptAndHighlight

editor/DallasMainDlg.cpp:1247–1297  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1245}
1246
1247LRESULT 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
1300int CDallasMainDlg::ModifiedPrompt(void) {

Callers

nothing calls this directly

Calls 3

ObjGetFunction · 0.85
SetCheckMethod · 0.80
SelectItemMethod · 0.45

Tested by

no test coverage detected