mirror of
https://github.com/jmarshall23/CnC_Remastered_Collection.git
synced 2026-08-18 01:03:32 +02:00
Initial edit trigger and trigger list screens. Trigger List screen complete, edit trigger screen needs some more work.
This commit is contained in:
+152
-86
@@ -2303,6 +2303,63 @@ void MapEditClass::Handle_Triggers(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int select_trigger_seleceted = 0;
|
||||||
|
enum SelectTriggerButtonState_t {
|
||||||
|
SELECT_TRIGGER_BUTTON_NONE = 0,
|
||||||
|
SELECT_TRIGGER_BUTTON_EDIT,
|
||||||
|
SELECT_TRIGGER_BUTTON_DELETE,
|
||||||
|
SELECT_TRIGGER_BUTTON_OK,
|
||||||
|
SELECT_TRIGGER_BUTTON_NEW
|
||||||
|
};
|
||||||
|
|
||||||
|
SelectTriggerButtonState_t selectTriggerButtonState = SELECT_TRIGGER_BUTTON_NONE;
|
||||||
|
|
||||||
|
void ImGui_SelectTrigger(void) {
|
||||||
|
bool toolActive = false;
|
||||||
|
|
||||||
|
std::vector<const char*> triggerlist;
|
||||||
|
|
||||||
|
for (int i = 0; i < TriggerTypes.Count(); i++) {
|
||||||
|
//triggerlist.Add_Item(TriggerTypes.Ptr(i));
|
||||||
|
triggerlist.push_back(TriggerTypes.Ptr(i)->Description());
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGuiStyle& style = ImGui::GetStyle();
|
||||||
|
style.FramePadding = ImVec2(0, 0);
|
||||||
|
ImGui::SetNextWindowSize(ImVec2(450, 230));
|
||||||
|
ImGui::SetNextWindowPos(ImVec2(100, 100));
|
||||||
|
ImGui::Begin("Trigger Editor", &toolActive, ImGuiWindowFlags_AlwaysAutoResize);
|
||||||
|
ImGui::PushItemWidth(450);
|
||||||
|
ImGui::ListBox("", &select_trigger_seleceted, &triggerlist[0], triggerlist.size());
|
||||||
|
ImGui::PopItemWidth();
|
||||||
|
ImGui::NewLine();
|
||||||
|
ImGui::Columns(4, "outert", true);
|
||||||
|
ImGui::PushID("st_edit");
|
||||||
|
if (ImGui::Button("Edit")) {
|
||||||
|
selectTriggerButtonState = SELECT_TRIGGER_BUTTON_EDIT;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::PushID("st_new");
|
||||||
|
if (ImGui::Button("New")) {
|
||||||
|
selectTriggerButtonState = SELECT_TRIGGER_BUTTON_NEW;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::PushID("st_delete");
|
||||||
|
if (ImGui::Button("Delete")) {
|
||||||
|
selectTriggerButtonState = SELECT_TRIGGER_BUTTON_DELETE;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::PushID("st_ok");
|
||||||
|
if (ImGui::Button("Ok")) {
|
||||||
|
selectTriggerButtonState = SELECT_TRIGGER_BUTTON_OK;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::Columns(1);
|
||||||
|
ImGui::End();
|
||||||
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
* MapEditClass::Select_Trigger -- lets user select a trigger *
|
* MapEditClass::Select_Trigger -- lets user select a trigger *
|
||||||
@@ -2341,6 +2398,9 @@ void MapEditClass::Handle_Triggers(void)
|
|||||||
*=========================================================================*/
|
*=========================================================================*/
|
||||||
int MapEditClass::Select_Trigger(void)
|
int MapEditClass::Select_Trigger(void)
|
||||||
{
|
{
|
||||||
|
selectTriggerButtonState = SELECT_TRIGGER_BUTTON_NONE;
|
||||||
|
Imgui_Dialog_Function = ImGui_SelectTrigger;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Dialog & button dimensions
|
** Dialog & button dimensions
|
||||||
*/
|
*/
|
||||||
@@ -2397,25 +2457,25 @@ int MapEditClass::Select_Trigger(void)
|
|||||||
/*
|
/*
|
||||||
** Dialog variables:
|
** Dialog variables:
|
||||||
*/
|
*/
|
||||||
bool edit_trig = false; // true = user wants to edit
|
//bool edit_trig = false; // true = user wants to edit
|
||||||
bool new_trig = false; // true = user wants to new
|
//bool new_trig = false; // true = user wants to new
|
||||||
bool del_trig = false; // true = user wants to new
|
//bool del_trig = false; // true = user wants to new
|
||||||
int i; // loop counter
|
int i; // loop counter
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Buttons
|
** Buttons
|
||||||
*/
|
*/
|
||||||
ControlClass * commands = NULL; // the button list
|
//ControlClass * commands = NULL; // the button list
|
||||||
|
|
||||||
TListClass<const TriggerTypeClass *> triggerlist(TRIGGER_LIST, D_LIST_X, D_LIST_Y, D_LIST_W, D_LIST_H,
|
//TListClass<const TriggerTypeClass *> triggerlist(TRIGGER_LIST, D_LIST_X, D_LIST_Y, D_LIST_W, D_LIST_H,
|
||||||
TPF_EFNT|TPF_NOSHADOW,
|
// TPF_EFNT|TPF_NOSHADOW,
|
||||||
MFCD::Retrieve("EBTN-UP.SHP"),
|
// MFCD::Retrieve("EBTN-UP.SHP"),
|
||||||
MFCD::Retrieve("EBTN-DN.SHP"));
|
// MFCD::Retrieve("EBTN-DN.SHP"));
|
||||||
|
//
|
||||||
TextButtonClass editbtn(BUTTON_EDIT, "Edit", TPF_EBUTTON, D_EDIT_X, D_EDIT_Y, D_EDIT_W, D_EDIT_H);
|
//TextButtonClass editbtn(BUTTON_EDIT, "Edit", TPF_EBUTTON, D_EDIT_X, D_EDIT_Y, D_EDIT_W, D_EDIT_H);
|
||||||
TextButtonClass newbtn(BUTTON_NEW, "New", TPF_EBUTTON, D_NEW_X, D_NEW_Y, D_NEW_W, D_NEW_H);
|
//TextButtonClass newbtn(BUTTON_NEW, "New", TPF_EBUTTON, D_NEW_X, D_NEW_Y, D_NEW_W, D_NEW_H);
|
||||||
TextButtonClass deletebtn(BUTTON_DELETE, "Delete", TPF_EBUTTON, D_DELETE_X, D_DELETE_Y, D_DELETE_W, D_DELETE_H);
|
//TextButtonClass deletebtn(BUTTON_DELETE, "Delete", TPF_EBUTTON, D_DELETE_X, D_DELETE_Y, D_DELETE_W, D_DELETE_H);
|
||||||
TextButtonClass okbtn(BUTTON_OK, TXT_OK, TPF_EBUTTON, D_OK_X, D_OK_Y, D_OK_W, D_OK_H);
|
//TextButtonClass okbtn(BUTTON_OK, TXT_OK, TPF_EBUTTON, D_OK_X, D_OK_Y, D_OK_W, D_OK_H);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Initialize
|
** Initialize
|
||||||
@@ -2425,45 +2485,43 @@ int MapEditClass::Select_Trigger(void)
|
|||||||
/*
|
/*
|
||||||
** Fill in the list box
|
** Fill in the list box
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < TriggerTypes.Count(); i++) {
|
//for (i = 0; i < TriggerTypes.Count(); i++) {
|
||||||
triggerlist.Add_Item(TriggerTypes.Ptr(i));
|
// triggerlist.Add_Item(TriggerTypes.Ptr(i));
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
PNBubble_Sort(&triggerlist[0], triggerlist.Count());
|
//PNBubble_Sort(&triggerlist[0], triggerlist.Count());
|
||||||
|
//
|
||||||
if (CurTrigger) {
|
//if (CurTrigger) {
|
||||||
triggerlist.Set_Selected_Index(CurTrigger);
|
// triggerlist.Set_Selected_Index(CurTrigger);
|
||||||
} else {
|
//} else {
|
||||||
triggerlist.Set_Selected_Index(0);
|
// triggerlist.Set_Selected_Index(0);
|
||||||
}
|
//}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Set CurTrigger if it isn't
|
** Set CurTrigger if it isn't
|
||||||
*/
|
*/
|
||||||
if (TriggerTypes.Count()==0) {
|
// if (TriggerTypes.Count()==0) {
|
||||||
CurTrigger = NULL;
|
// CurTrigger = NULL;
|
||||||
} else {
|
// } else {
|
||||||
CurTrigger = (TriggerTypeClass *)triggerlist.Current_Item();
|
// CurTrigger = (TriggerTypeClass *)triggerlist.Current_Item();
|
||||||
// if (!CurTrigger) {
|
//// if (!CurTrigger) {
|
||||||
// CurTrigger = &*triggerlist.Current_Item();
|
//// CurTrigger = &*triggerlist.Current_Item();
|
||||||
// }
|
//// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Create the list
|
** Create the list
|
||||||
*/
|
*/
|
||||||
commands = &triggerlist;
|
//commands = &triggerlist;
|
||||||
editbtn.Add_Tail(*commands);
|
//editbtn.Add_Tail(*commands);
|
||||||
newbtn.Add_Tail(*commands);
|
//newbtn.Add_Tail(*commands);
|
||||||
deletebtn.Add_Tail(*commands);
|
//deletebtn.Add_Tail(*commands);
|
||||||
okbtn.Add_Tail(*commands);
|
//okbtn.Add_Tail(*commands);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Main Processing Loop
|
** Main Processing Loop
|
||||||
*/
|
*/
|
||||||
bool display = true;
|
while (selectTriggerButtonState == SELECT_TRIGGER_BUTTON_NONE) {
|
||||||
bool process = true;
|
|
||||||
while (process) {
|
|
||||||
/*
|
/*
|
||||||
** Invoke game callback
|
** Invoke game callback
|
||||||
*/
|
*/
|
||||||
@@ -2472,55 +2530,61 @@ int MapEditClass::Select_Trigger(void)
|
|||||||
/*
|
/*
|
||||||
** Refresh display if requested.
|
** Refresh display if requested.
|
||||||
*/
|
*/
|
||||||
if (display /*&& LogicPage->Lock()*/) {
|
// if (display /*&& LogicPage->Lock()*/) {
|
||||||
Hide_Mouse();
|
// Hide_Mouse();
|
||||||
Dialog_Box(D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W, D_DIALOG_H);
|
// Dialog_Box(D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W, D_DIALOG_H);
|
||||||
Draw_Caption(TXT_TRIGGER_EDITOR, D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W);
|
// Draw_Caption(TXT_TRIGGER_EDITOR, D_DIALOG_X, D_DIALOG_Y, D_DIALOG_W);
|
||||||
commands->Flag_List_To_Redraw();
|
// //commands->Flag_List_To_Redraw();
|
||||||
commands->Draw_All();
|
// //commands->Draw_All();
|
||||||
Show_Mouse();
|
// Show_Mouse();
|
||||||
display = false;
|
// display = false;
|
||||||
// LogicPage->Unlock();
|
//// LogicPage->Unlock();
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
KeyNumType _key;
|
||||||
|
int _flags;
|
||||||
|
WWSDL_ProcessEvents(_key, _flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Get user input
|
** Get user input
|
||||||
*/
|
*/
|
||||||
KeyNumType input = commands->Input();
|
//KeyNumType input = commands->Input();
|
||||||
|
//
|
||||||
/*
|
///*
|
||||||
** Process input
|
//** Process input
|
||||||
*/
|
//*/
|
||||||
switch (input) {
|
//switch (input) {
|
||||||
case (TRIGGER_LIST | KN_BUTTON):
|
// case (TRIGGER_LIST | KN_BUTTON):
|
||||||
CurTrigger = (TriggerTypeClass *)&*triggerlist.Current_Item();
|
// CurTrigger = (TriggerTypeClass *)&*triggerlist.Current_Item();
|
||||||
// CurTrigger = (TriggerTypeClass *)&*triggerlist.Current_Item();
|
// // CurTrigger = (TriggerTypeClass *)&*triggerlist.Current_Item();
|
||||||
break;
|
// break;
|
||||||
|
//
|
||||||
case (BUTTON_EDIT | KN_BUTTON):
|
// case (BUTTON_EDIT | KN_BUTTON):
|
||||||
if (CurTrigger) { // only allow if there's one selected
|
// if (CurTrigger) { // only allow if there's one selected
|
||||||
process = false;
|
// process = false;
|
||||||
edit_trig = true;
|
// edit_trig = true;
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
|
//
|
||||||
case (BUTTON_NEW | KN_BUTTON):
|
// case (BUTTON_NEW | KN_BUTTON):
|
||||||
process = false;
|
// process = false;
|
||||||
new_trig = true;
|
// new_trig = true;
|
||||||
break;
|
// break;
|
||||||
|
//
|
||||||
case (BUTTON_DELETE | KN_BUTTON):
|
// case (BUTTON_DELETE | KN_BUTTON):
|
||||||
process = false;
|
// process = false;
|
||||||
del_trig = true;
|
// del_trig = true;
|
||||||
break;
|
// break;
|
||||||
|
//
|
||||||
case (KN_RETURN):
|
// case (KN_RETURN):
|
||||||
case (BUTTON_OK | KN_BUTTON):
|
// case (BUTTON_OK | KN_BUTTON):
|
||||||
process = false;
|
// process = false;
|
||||||
break;
|
// break;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CurTrigger = TriggerTypes.Ptr(select_trigger_seleceted);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Redraw the display
|
** Redraw the display
|
||||||
*/
|
*/
|
||||||
@@ -2528,9 +2592,11 @@ int MapEditClass::Select_Trigger(void)
|
|||||||
Flag_To_Redraw(true);
|
Flag_To_Redraw(true);
|
||||||
Render();
|
Render();
|
||||||
|
|
||||||
if (edit_trig) return(1);
|
Imgui_Dialog_Function = nullptr;
|
||||||
if (new_trig) return(2);
|
|
||||||
if (del_trig) return(3);
|
if (selectTriggerButtonState == SELECT_TRIGGER_BUTTON_EDIT) return(1);
|
||||||
|
if (selectTriggerButtonState == SELECT_TRIGGER_BUTTON_NEW) return(2);
|
||||||
|
if (selectTriggerButtonState == SELECT_TRIGGER_BUTTON_DELETE) return(3);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1703,6 +1703,8 @@ void MapEditClass::Main_Menu(void)
|
|||||||
*/
|
*/
|
||||||
case 7:
|
case 7:
|
||||||
if (Changed) {
|
if (Changed) {
|
||||||
|
Imgui_Dialog_Function = nullptr;
|
||||||
|
WWSDL_ProcessEvents(_key, _flags);
|
||||||
rc = WWMessageBox().Process("Save Changes?", TXT_YES, TXT_NO, TXT_CANCEL);
|
rc = WWMessageBox().Process("Save Changes?", TXT_YES, TXT_NO, TXT_CANCEL);
|
||||||
HidPage.Clear();
|
HidPage.Clear();
|
||||||
Flag_To_Redraw(true);
|
Flag_To_Redraw(true);
|
||||||
@@ -1718,6 +1720,7 @@ void MapEditClass::Main_Menu(void)
|
|||||||
}
|
}
|
||||||
Changed = 0;
|
Changed = 0;
|
||||||
Debug_Map = false;
|
Debug_Map = false;
|
||||||
|
Imgui_Dialog_Function = nullptr;
|
||||||
Start_Scenario(Scen.ScenarioName);
|
Start_Scenario(Scen.ScenarioName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
+235
-20
@@ -48,7 +48,7 @@
|
|||||||
* TriggerTypeClass::~TriggerTypeClass -- Deleting a trigger type deletes associated triggers*
|
* TriggerTypeClass::~TriggerTypeClass -- Deleting a trigger type deletes associated triggers*
|
||||||
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
|
#include "imgui.h"
|
||||||
#include "function.h"
|
#include "function.h"
|
||||||
#include "trigtype.h"
|
#include "trigtype.h"
|
||||||
|
|
||||||
@@ -165,6 +165,186 @@ enum {
|
|||||||
BUTTON_EVENT, // Multiple event control button.
|
BUTTON_EVENT, // Multiple event control button.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char selected_trigger_name[5] = { 0 };
|
||||||
|
std::vector<const char*> trig_houses;
|
||||||
|
std::vector<const char*> trig_events;
|
||||||
|
std::vector<const char*> trig_actions;
|
||||||
|
int current_trig_action = 0;
|
||||||
|
int current_trig_house = 0;
|
||||||
|
int current_trig_perst = 0;
|
||||||
|
int current_trig_event = 0;
|
||||||
|
int current_trig2_event = -1;
|
||||||
|
int current_trig2_action = -1;
|
||||||
|
|
||||||
|
int current_event1 = 0;
|
||||||
|
int current_event2 = 0;
|
||||||
|
int current_event3 = 0;
|
||||||
|
int current_event4 = 0;
|
||||||
|
|
||||||
|
std::vector<const char*> typelist;
|
||||||
|
std::vector<const char*> triggerentrylist;
|
||||||
|
std::vector<const char*> boollist;
|
||||||
|
std::vector<const char*> themelist;
|
||||||
|
std::vector<const char*> movielist;
|
||||||
|
std::vector<const char*> soundlist;
|
||||||
|
std::vector<const char*> speechlist;
|
||||||
|
std::vector<const char*> buildinglist;
|
||||||
|
std::vector<const char*> infrantrylist;
|
||||||
|
std::vector<const char*> aircraftlist;
|
||||||
|
std::vector<const char*> unitlist;
|
||||||
|
std::vector<const char*> quarytypelist;
|
||||||
|
std::vector<const char*> specialweaponlist;
|
||||||
|
|
||||||
|
void ImGui_DrawCombo(int eventListType, int *eventId) {
|
||||||
|
ImGui::SameLine();
|
||||||
|
switch (Event_Needs(EventChoices[eventListType])) {
|
||||||
|
case NEED_MOVIE:
|
||||||
|
ImGui::Combo("", eventId, &movielist[0], movielist.size());
|
||||||
|
break;
|
||||||
|
case NEED_SOUND:
|
||||||
|
ImGui::Combo("", eventId, &soundlist[0], soundlist.size());
|
||||||
|
break;
|
||||||
|
case NEED_HOUSE:
|
||||||
|
ImGui::Combo("", eventId, &trig_houses[0], trig_houses.size());
|
||||||
|
break;
|
||||||
|
case NEED_TEAM:
|
||||||
|
ImGui::Combo("", eventId, &typelist[0], typelist.size());
|
||||||
|
break;
|
||||||
|
case NEED_WAYPOINT:
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NEED_TIME:
|
||||||
|
case NEED_NUMBER:
|
||||||
|
ImGui::InputInt("", eventId);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NEED_STRUCTURE:
|
||||||
|
ImGui::Combo("", eventId, &buildinglist[0], buildinglist.size());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NEED_INFANTRY:
|
||||||
|
ImGui::Combo("", eventId, &infrantrylist[0], infrantrylist.size());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NEED_AIRCRAFT:
|
||||||
|
ImGui::Combo("", eventId, &aircraftlist[0], aircraftlist.size());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NEED_UNIT:
|
||||||
|
ImGui::Combo("", eventId, &unitlist[0], unitlist.size());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ImGui::NewLine();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static char* _perstext[3] = {
|
||||||
|
"Volatile",
|
||||||
|
"Semi-persistent",
|
||||||
|
"Persistent"
|
||||||
|
};
|
||||||
|
static TriggerTypeClass *currentTriggerClass;
|
||||||
|
bool edittrigger_process = true;
|
||||||
|
void ImGui_TriggerEdit(void) {
|
||||||
|
bool toolActive = false;
|
||||||
|
current_trig_house = currentTriggerClass->House;
|
||||||
|
current_trig_perst = currentTriggerClass->IsPersistant;
|
||||||
|
|
||||||
|
|
||||||
|
ImGuiStyle& style = ImGui::GetStyle();
|
||||||
|
style.FramePadding = ImVec2(0, 0);
|
||||||
|
ImGui::SetNextWindowSize(ImVec2(450, 340));
|
||||||
|
ImGui::SetNextWindowPos(ImVec2(100, 100));
|
||||||
|
ImGui::Begin("Edit Trigger", &toolActive, ImGuiWindowFlags_AlwaysAutoResize);
|
||||||
|
ImGui::Columns(3, "trigger_o3", true);
|
||||||
|
ImGui::Text("Name");
|
||||||
|
ImGui::PushID("trigedit_name");
|
||||||
|
ImGui::InputText("", selected_trigger_name, 5);
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::Text("House");
|
||||||
|
ImGui::PushID("trigedit_house");
|
||||||
|
ImGui::Combo("", ¤t_trig_house, &trig_houses[0], trig_houses.size());
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::NextColumn();
|
||||||
|
ImGui::Text("Persistence");
|
||||||
|
ImGui::PushID("trigedit_persistance");
|
||||||
|
ImGui::Combo("", ¤t_trig_perst, &_perstext[0], 3);
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::Columns(1);
|
||||||
|
ImGui::NewLine();
|
||||||
|
ImGui::Text("Trigger Event:");
|
||||||
|
ImGui::PushID("trigedit_event");
|
||||||
|
ImGui::Combo("", ¤t_trig_event, &trig_events[0], trig_events.size());
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::PushID("trigedit_data1");
|
||||||
|
ImGui_DrawCombo(current_trig_event, ¤t_event1);
|
||||||
|
ImGui::PopID();
|
||||||
|
if (current_trig2_event == -1) {
|
||||||
|
ImGui::PushID("trigedit_justevent_btn");
|
||||||
|
if (ImGui::Button("Just this event")) {
|
||||||
|
current_trig2_event = 0;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ImGui::PushID("trigedit_and1_btn");
|
||||||
|
if (ImGui::Button("_AND_")) {
|
||||||
|
current_trig2_event = -1;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::PushID("trigedit_event2");
|
||||||
|
ImGui::Combo("", ¤t_trig2_event, &trig_events[0], trig_events.size());
|
||||||
|
ImGui::PopID();
|
||||||
|
|
||||||
|
ImGui::PushID("trigedit_data2");
|
||||||
|
ImGui_DrawCombo(current_trig2_event, ¤t_event3);
|
||||||
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
ImGui::NewLine();
|
||||||
|
ImGui::Text("Action to perform:");
|
||||||
|
ImGui::PushID("trigedit_action");
|
||||||
|
ImGui::Combo("", ¤t_trig_action, &trig_actions[0], trig_actions.size());
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::PushID("trigedit_data3");
|
||||||
|
ImGui_DrawCombo(current_trig_action, ¤t_event3);
|
||||||
|
ImGui::PopID();
|
||||||
|
if (current_trig2_action == -1) {
|
||||||
|
ImGui::PushID("trigedit_justaction_btn");
|
||||||
|
if (ImGui::Button("Just this action")) {
|
||||||
|
current_trig2_action = 0;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ImGui::PushID("trigedit_and2_btn");
|
||||||
|
if (ImGui::Button("_AND_")) {
|
||||||
|
current_trig2_action = -1;
|
||||||
|
}
|
||||||
|
ImGui::PopID();
|
||||||
|
ImGui::PushID("trigedit_action2");
|
||||||
|
ImGui::Combo("", ¤t_trig2_action, &trig_actions[0], trig_actions.size());
|
||||||
|
ImGui::PopID();
|
||||||
|
|
||||||
|
ImGui::PushID("trigedit_data4");
|
||||||
|
ImGui_DrawCombo(current_trig2_action, ¤t_event4);
|
||||||
|
ImGui::PopID();
|
||||||
|
}
|
||||||
|
ImGui::NewLine();
|
||||||
|
if (ImGui::Button("Ok")) {
|
||||||
|
edittrigger_process = false;
|
||||||
|
}
|
||||||
|
//ImGui::SameLine();
|
||||||
|
//ImGui::Button("Cancel");
|
||||||
|
ImGui::End();
|
||||||
|
|
||||||
|
currentTriggerClass->House = (HousesType)current_trig_house;
|
||||||
|
currentTriggerClass->IsPersistant = (TriggerTypeClass::PersistantType)current_trig_perst;
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************************************
|
/***********************************************************************************************
|
||||||
* TriggerTypeClass::Edit -- Edit the trigger type through the scenario editor. *
|
* TriggerTypeClass::Edit -- Edit the trigger type through the scenario editor. *
|
||||||
* *
|
* *
|
||||||
@@ -183,6 +363,28 @@ enum {
|
|||||||
*=============================================================================================*/
|
*=============================================================================================*/
|
||||||
bool TriggerTypeClass::Edit(void)
|
bool TriggerTypeClass::Edit(void)
|
||||||
{
|
{
|
||||||
|
edittrigger_process = true;
|
||||||
|
currentTriggerClass = this;
|
||||||
|
trig_houses.clear();
|
||||||
|
trig_events.clear();
|
||||||
|
trig_actions.clear();
|
||||||
|
|
||||||
|
typelist.clear();
|
||||||
|
triggerentrylist.clear();
|
||||||
|
boollist.clear();
|
||||||
|
themelist.clear();
|
||||||
|
movielist.clear();
|
||||||
|
soundlist.clear();
|
||||||
|
speechlist.clear();
|
||||||
|
buildinglist.clear();
|
||||||
|
infrantrylist.clear();
|
||||||
|
aircraftlist.clear();
|
||||||
|
unitlist.clear();
|
||||||
|
quarytypelist.clear();
|
||||||
|
specialweaponlist.clear();
|
||||||
|
|
||||||
|
Imgui_Dialog_Function = ImGui_TriggerEdit;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Dialog variables:
|
** Dialog variables:
|
||||||
*/
|
*/
|
||||||
@@ -213,6 +415,8 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (TEventType event = TEVENT_FIRST; event < TEVENT_COUNT; event++) {
|
for (TEventType event = TEVENT_FIRST; event < TEVENT_COUNT; event++) {
|
||||||
event1list.Add_Item(&EventChoices[event]);
|
event1list.Add_Item(&EventChoices[event]);
|
||||||
event2list.Add_Item(&EventChoices[event]);
|
event2list.Add_Item(&EventChoices[event]);
|
||||||
|
|
||||||
|
trig_events.push_back(EventChoices[event].Description());
|
||||||
}
|
}
|
||||||
|
|
||||||
PBubble_Sort(&event1list[0], event1list.Count());
|
PBubble_Sort(&event1list[0], event1list.Count());
|
||||||
@@ -241,6 +445,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (TActionType action = TACTION_FIRST; action < TACTION_COUNT; action++) {
|
for (TActionType action = TACTION_FIRST; action < TACTION_COUNT; action++) {
|
||||||
action1list.Add_Item(&ActionChoices[action]);
|
action1list.Add_Item(&ActionChoices[action]);
|
||||||
action2list.Add_Item(&ActionChoices[action]);
|
action2list.Add_Item(&ActionChoices[action]);
|
||||||
|
trig_actions.push_back(ActionChoices[action].Description());
|
||||||
}
|
}
|
||||||
|
|
||||||
PBubble_Sort(&action1list[0], action1list.Count());
|
PBubble_Sort(&action1list[0], action1list.Count());
|
||||||
@@ -373,13 +578,15 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
TPF_EFNT | TPF_NOSHADOW,
|
TPF_EFNT | TPF_NOSHADOW,
|
||||||
AD2_X, AD2_Y, ED_WIDTH, ED_HEIGHT,
|
AD2_X, AD2_Y, ED_WIDTH, ED_HEIGHT,
|
||||||
MFCD::Retrieve("EBTN-UP.SHP"),
|
MFCD::Retrieve("EBTN-UP.SHP"),
|
||||||
MFCD::Retrieve("EBTN-DN.SHP"));
|
MFCD::Retrieve("EBTN-DN.SHP"));
|
||||||
|
|
||||||
for (int index = 0; index < TeamTypes.Count(); index++) {
|
for (int index = 0; index < TeamTypes.Count(); index++) {
|
||||||
ttype1list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
ttype1list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
||||||
ttype2list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
ttype2list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
||||||
ttype3list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
ttype3list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
||||||
ttype4list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
ttype4list.Add_Item(TeamTypes.Ptr(index)->IniName);
|
||||||
|
|
||||||
|
typelist.push_back(TeamTypes.Ptr(index)->IniName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Event1.Team.Is_Valid()) {
|
if (Event1.Team.Is_Valid()) {
|
||||||
@@ -426,6 +633,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (index = 0; index < TriggerTypes.Count(); index++) {
|
for (index = 0; index < TriggerTypes.Count(); index++) {
|
||||||
trtype1list.Add_Item(TriggerTypes.Ptr(index)->IniName);
|
trtype1list.Add_Item(TriggerTypes.Ptr(index)->IniName);
|
||||||
trtype2list.Add_Item(TriggerTypes.Ptr(index)->IniName);
|
trtype2list.Add_Item(TriggerTypes.Ptr(index)->IniName);
|
||||||
|
triggerentrylist.push_back(TriggerTypes.Ptr(index)->IniName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Action1.Trigger.Is_Valid()) {
|
if (Action1.Trigger.Is_Valid()) {
|
||||||
@@ -457,6 +665,9 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
MFCD::Retrieve("EBTN-UP.SHP"),
|
MFCD::Retrieve("EBTN-UP.SHP"),
|
||||||
MFCD::Retrieve("EBTN-DN.SHP"));
|
MFCD::Retrieve("EBTN-DN.SHP"));
|
||||||
|
|
||||||
|
boollist.push_back("OFF");
|
||||||
|
boollist.push_back("ON");
|
||||||
|
|
||||||
booltype1list.Add_Item("OFF");
|
booltype1list.Add_Item("OFF");
|
||||||
booltype1list.Add_Item("ON");
|
booltype1list.Add_Item("ON");
|
||||||
booltype2list.Add_Item("OFF");
|
booltype2list.Add_Item("OFF");
|
||||||
@@ -484,6 +695,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (ThemeType theme = THEME_FIRST; theme < THEME_COUNT; theme++) {
|
for (ThemeType theme = THEME_FIRST; theme < THEME_COUNT; theme++) {
|
||||||
themetype1list.Add_Item(Theme.Full_Name(theme));
|
themetype1list.Add_Item(Theme.Full_Name(theme));
|
||||||
themetype2list.Add_Item(Theme.Full_Name(theme));
|
themetype2list.Add_Item(Theme.Full_Name(theme));
|
||||||
|
themelist.push_back(Theme.Full_Name(theme));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Action_Needs(Action1.Action) == NEED_THEME) {
|
if (Action_Needs(Action1.Action) == NEED_THEME) {
|
||||||
@@ -518,6 +730,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (VQType movie = VQ_FIRST; movie < VQ_COUNT; movie++) {
|
for (VQType movie = VQ_FIRST; movie < VQ_COUNT; movie++) {
|
||||||
movietype1list.Add_Item(VQName[movie]);
|
movietype1list.Add_Item(VQName[movie]);
|
||||||
movietype2list.Add_Item(VQName[movie]);
|
movietype2list.Add_Item(VQName[movie]);
|
||||||
|
movielist.push_back(VQName[movie]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Action_Needs(Action1.Action) == NEED_MOVIE) {
|
if (Action_Needs(Action1.Action) == NEED_MOVIE) {
|
||||||
@@ -552,6 +765,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (VocType sound = VOC_FIRST; sound < VOC_COUNT; sound++) {
|
for (VocType sound = VOC_FIRST; sound < VOC_COUNT; sound++) {
|
||||||
soundtype1list.Add_Item(Voc_Name(sound));
|
soundtype1list.Add_Item(Voc_Name(sound));
|
||||||
soundtype2list.Add_Item(Voc_Name(sound));
|
soundtype2list.Add_Item(Voc_Name(sound));
|
||||||
|
soundlist.push_back(Voc_Name(sound));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Action_Needs(Action1.Action) == NEED_SOUND) {
|
if (Action_Needs(Action1.Action) == NEED_SOUND) {
|
||||||
@@ -586,6 +800,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (VoxType speech = VOX_FIRST; speech < VOX_COUNT; speech++) {
|
for (VoxType speech = VOX_FIRST; speech < VOX_COUNT; speech++) {
|
||||||
speechtype1list.Add_Item(Speech_Name(speech));
|
speechtype1list.Add_Item(Speech_Name(speech));
|
||||||
speechtype2list.Add_Item(Speech_Name(speech));
|
speechtype2list.Add_Item(Speech_Name(speech));
|
||||||
|
speechlist.push_back(Speech_Name(speech));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Action_Needs(Action1.Action) == NEED_SPEECH) {
|
if (Action_Needs(Action1.Action) == NEED_SPEECH) {
|
||||||
@@ -620,6 +835,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (StructType ss = STRUCT_FIRST; ss < STRUCT_COUNT; ss++) {
|
for (StructType ss = STRUCT_FIRST; ss < STRUCT_COUNT; ss++) {
|
||||||
btype1list.Add_Item(Text_String(BuildingTypeClass::As_Reference(ss).Full_Name()));
|
btype1list.Add_Item(Text_String(BuildingTypeClass::As_Reference(ss).Full_Name()));
|
||||||
btype2list.Add_Item(Text_String(BuildingTypeClass::As_Reference(ss).Full_Name()));
|
btype2list.Add_Item(Text_String(BuildingTypeClass::As_Reference(ss).Full_Name()));
|
||||||
|
buildinglist.push_back(BuildingTypeClass::As_Reference(ss).Name());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Event_Needs(Event1.Event) == NEED_STRUCTURE) {
|
if (Event_Needs(Event1.Event) == NEED_STRUCTURE) {
|
||||||
@@ -654,6 +870,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (InfantryType ii = INFANTRY_FIRST; ii < INFANTRY_COUNT; ii++) {
|
for (InfantryType ii = INFANTRY_FIRST; ii < INFANTRY_COUNT; ii++) {
|
||||||
itype1list.Add_Item(Text_String(InfantryTypeClass::As_Reference(ii).Full_Name()));
|
itype1list.Add_Item(Text_String(InfantryTypeClass::As_Reference(ii).Full_Name()));
|
||||||
itype2list.Add_Item(Text_String(InfantryTypeClass::As_Reference(ii).Full_Name()));
|
itype2list.Add_Item(Text_String(InfantryTypeClass::As_Reference(ii).Full_Name()));
|
||||||
|
infrantrylist.push_back(InfantryTypeClass::As_Reference(ii).Name());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Event_Needs(Event1.Event) == NEED_INFANTRY) {
|
if (Event_Needs(Event1.Event) == NEED_INFANTRY) {
|
||||||
@@ -688,6 +905,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (AircraftType aa = AIRCRAFT_FIRST; aa < AIRCRAFT_COUNT; aa++) {
|
for (AircraftType aa = AIRCRAFT_FIRST; aa < AIRCRAFT_COUNT; aa++) {
|
||||||
atype1list.Add_Item(Text_String(AircraftTypeClass::As_Reference(aa).Full_Name()));
|
atype1list.Add_Item(Text_String(AircraftTypeClass::As_Reference(aa).Full_Name()));
|
||||||
atype2list.Add_Item(Text_String(AircraftTypeClass::As_Reference(aa).Full_Name()));
|
atype2list.Add_Item(Text_String(AircraftTypeClass::As_Reference(aa).Full_Name()));
|
||||||
|
aircraftlist.push_back(Text_String(AircraftTypeClass::As_Reference(aa).Full_Name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Event_Needs(Event1.Event) == NEED_AIRCRAFT) {
|
if (Event_Needs(Event1.Event) == NEED_AIRCRAFT) {
|
||||||
@@ -722,6 +940,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (UnitType uu = UNIT_FIRST; uu < UNIT_COUNT; uu++) {
|
for (UnitType uu = UNIT_FIRST; uu < UNIT_COUNT; uu++) {
|
||||||
utype1list.Add_Item(Text_String(UnitTypeClass::As_Reference(uu).Full_Name()));
|
utype1list.Add_Item(Text_String(UnitTypeClass::As_Reference(uu).Full_Name()));
|
||||||
utype2list.Add_Item(Text_String(UnitTypeClass::As_Reference(uu).Full_Name()));
|
utype2list.Add_Item(Text_String(UnitTypeClass::As_Reference(uu).Full_Name()));
|
||||||
|
unitlist.push_back(Text_String(UnitTypeClass::As_Reference(uu).Full_Name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Event_Needs(Event1.Event) == NEED_UNIT) {
|
if (Event_Needs(Event1.Event) == NEED_UNIT) {
|
||||||
@@ -770,6 +989,8 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
htype2list.Add_Item(HouseTypeClass::As_Reference(hh).IniName);
|
htype2list.Add_Item(HouseTypeClass::As_Reference(hh).IniName);
|
||||||
htype3list.Add_Item(HouseTypeClass::As_Reference(hh).IniName);
|
htype3list.Add_Item(HouseTypeClass::As_Reference(hh).IniName);
|
||||||
htype4list.Add_Item(HouseTypeClass::As_Reference(hh).IniName);
|
htype4list.Add_Item(HouseTypeClass::As_Reference(hh).IniName);
|
||||||
|
|
||||||
|
trig_houses.push_back(HouseTypeClass::As_Reference(hh).IniName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Event_Needs(Event1.Event) == NEED_HOUSE) {
|
if (Event_Needs(Event1.Event) == NEED_HOUSE) {
|
||||||
@@ -815,6 +1036,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (SpecialWeaponType spec = SPC_FIRST; spec < SPC_COUNT; spec++) {
|
for (SpecialWeaponType spec = SPC_FIRST; spec < SPC_COUNT; spec++) {
|
||||||
spc1.Add_Item(SpecialWeaponName[spec]);
|
spc1.Add_Item(SpecialWeaponName[spec]);
|
||||||
spc2.Add_Item(SpecialWeaponName[spec]);
|
spc2.Add_Item(SpecialWeaponName[spec]);
|
||||||
|
specialweaponlist.push_back(SpecialWeaponName[spec]);
|
||||||
}
|
}
|
||||||
if ((unsigned)Action1.Data.Special < SPC_COUNT) {
|
if ((unsigned)Action1.Data.Special < SPC_COUNT) {
|
||||||
spc1.Set_Selected_Index(Action1.Data.Special);
|
spc1.Set_Selected_Index(Action1.Data.Special);
|
||||||
@@ -847,6 +1069,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
for (QuarryType q = QUARRY_FIRST; q < QUARRY_COUNT; q++) {
|
for (QuarryType q = QUARRY_FIRST; q < QUARRY_COUNT; q++) {
|
||||||
qlist1.Add_Item(QuarryName[q]);
|
qlist1.Add_Item(QuarryName[q]);
|
||||||
qlist2.Add_Item(QuarryName[q]);
|
qlist2.Add_Item(QuarryName[q]);
|
||||||
|
quarytypelist.push_back(SpecialWeaponName[spec]);
|
||||||
}
|
}
|
||||||
if ((unsigned)Action1.Data.Quarry < QUARRY_COUNT) {
|
if ((unsigned)Action1.Data.Quarry < QUARRY_COUNT) {
|
||||||
qlist1.Set_Selected_Index(Action1.Data.Quarry);
|
qlist1.Set_Selected_Index(Action1.Data.Quarry);
|
||||||
@@ -864,9 +1087,9 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
/*
|
/*
|
||||||
** Name of this trigger text edit field.
|
** Name of this trigger text edit field.
|
||||||
*/
|
*/
|
||||||
char namebuf[5] = "";
|
// char namebuf[5] = "";
|
||||||
EditClass name_edt(NAME_EDIT, namebuf, sizeof(namebuf), TPF_EFNT | TPF_NOSHADOW, D_DIALOG_X + 40, D_DIALOG_Y + 30, 40, 9, EditClass::ALPHANUMERIC);
|
EditClass name_edt(NAME_EDIT, selected_trigger_name, sizeof(selected_trigger_name), TPF_EFNT | TPF_NOSHADOW, D_DIALOG_X + 40, D_DIALOG_Y + 30, 40, 9, EditClass::ALPHANUMERIC);
|
||||||
strcpy(namebuf, IniName); // Name
|
strcpy(selected_trigger_name, IniName); // Name
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Create the list of house's allowed for trigger.
|
** Create the list of house's allowed for trigger.
|
||||||
@@ -888,11 +1111,6 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
** TriggerTypeClass definition.
|
** TriggerTypeClass definition.
|
||||||
*/
|
*/
|
||||||
char perstext[DESC_SIZE] = "";
|
char perstext[DESC_SIZE] = "";
|
||||||
static char* _perstext[3] = {
|
|
||||||
"Volatile",
|
|
||||||
"Semi-persistent",
|
|
||||||
"Persistent"
|
|
||||||
};
|
|
||||||
DropListClass persbtn(BUTTON_PERSISTANCE, perstext, sizeof(perstext),
|
DropListClass persbtn(BUTTON_PERSISTANCE, perstext, sizeof(perstext),
|
||||||
TPF_EFNT | TPF_NOSHADOW,
|
TPF_EFNT | TPF_NOSHADOW,
|
||||||
housebtn.X + housebtn.Width + 20, housebtn.Y, 105, 8 * 5,
|
housebtn.X + housebtn.Width + 20, housebtn.Y, 105, 8 * 5,
|
||||||
@@ -943,9 +1161,8 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
/*
|
/*
|
||||||
** Main Processing Loop
|
** Main Processing Loop
|
||||||
*/
|
*/
|
||||||
bool display = true;
|
bool display = true;
|
||||||
bool process = true;
|
while (edittrigger_process) {
|
||||||
while (process) {
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Invoke game callback
|
** Invoke game callback
|
||||||
@@ -1347,11 +1564,11 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
case BUTTON_OK | KN_BUTTON:
|
case BUTTON_OK | KN_BUTTON:
|
||||||
House = HousesType(housebtn.Current_Index());
|
House = HousesType(housebtn.Current_Index());
|
||||||
IsPersistant = PersistantType(persbtn.Current_Index());
|
IsPersistant = PersistantType(persbtn.Current_Index());
|
||||||
if (strlen(namebuf) == 0) {
|
if (strlen(selected_trigger_name) == 0) {
|
||||||
Set_Name("____");
|
Set_Name("____");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Set_Name(namebuf);
|
Set_Name(selected_trigger_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1567,7 +1784,7 @@ bool TriggerTypeClass::Edit(void)
|
|||||||
|
|
||||||
case KN_ESC:
|
case KN_ESC:
|
||||||
case BUTTON_CANCEL | KN_BUTTON:
|
case BUTTON_CANCEL | KN_BUTTON:
|
||||||
process = false;
|
edittrigger_process = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Always signal a redraw if any of the buttons were touched. This
|
** Always signal a redraw if any of the buttons were touched. This
|
||||||
@@ -1742,9 +1959,7 @@ void TriggerTypeClass::Detach(TARGET target, bool)
|
|||||||
* 07/09/1996 JLB : Created. *
|
* 07/09/1996 JLB : Created. *
|
||||||
*=============================================================================================*/
|
*=============================================================================================*/
|
||||||
char const * TriggerTypeClass::Description(void) const
|
char const * TriggerTypeClass::Description(void) const
|
||||||
{
|
{
|
||||||
static char _buffer[128];
|
|
||||||
|
|
||||||
char special;
|
char special;
|
||||||
switch (EventControl) {
|
switch (EventControl) {
|
||||||
case MULTI_AND:
|
case MULTI_AND:
|
||||||
@@ -1813,7 +2028,7 @@ char const * TriggerTypeClass::Description(void) const
|
|||||||
if (IsPersistant == SEMIPERSISTANT) pers = 'S';
|
if (IsPersistant == SEMIPERSISTANT) pers = 'S';
|
||||||
if (IsPersistant == PERSISTANT) pers = 'P';
|
if (IsPersistant == PERSISTANT) pers = 'P';
|
||||||
|
|
||||||
sprintf(_buffer, "%4.4s\t %s %c%c%c %s%s",
|
sprintf((char * const)&_buffer[0], "%4.4s\t %s %c%c%c %s%s",
|
||||||
IniName,
|
IniName,
|
||||||
HouseTypeClass::As_Reference(House).Suffix,
|
HouseTypeClass::As_Reference(House).Suffix,
|
||||||
pers,
|
pers,
|
||||||
|
|||||||
@@ -142,5 +142,8 @@ class TriggerTypeClass : public AbstractTypeClass
|
|||||||
operator const char * (void) const {return(Description());};
|
operator const char * (void) const {return(Description());};
|
||||||
#endif
|
#endif
|
||||||
void Draw_It(int index, int x, int y, int width, int height, bool selected, TextPrintType flags) const;
|
void Draw_It(int index, int x, int y, int width, int height, bool selected, TextPrintType flags) const;
|
||||||
|
// jmarshall - made this instance based.
|
||||||
|
char _buffer[128];
|
||||||
|
// jmarshall end
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user