mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-07 08:15:59 -10:00
properly initialize each reinforcement
This commit is contained in:
1 parent
81695b36db
commit
b532a7b855
7 files changed
+23
-36
No files matched your search
@@ -6055,10 +6055,6 @@ void parse_reinforcement(mission *pm)
|
||||
|
||||
required_string("$Num times:");
|
||||
stuff_int(&reinforcement.uses);
|
||||
reinforcement.num_uses = 0;
|
||||
|
||||
// reset the flags to 0
|
||||
reinforcement.flags = 0;
|
||||
|
||||
if ( optional_string("+Arrival delay:") )
|
||||
{
|
||||
|
||||
@@ -7646,6 +7646,23 @@ bool wing::has_display_name() const
|
||||
return flags[Ship::Wing_Flags::Has_display_name];
|
||||
}
|
||||
|
||||
reinforcements::reinforcements(const char *reinforcement_name)
|
||||
{
|
||||
if (reinforcement_name)
|
||||
strcpy_s(name, reinforcement_name);
|
||||
else
|
||||
name[0] = '\0';
|
||||
|
||||
type = 0;
|
||||
uses = 1;
|
||||
num_uses = 0;
|
||||
arrival_delay = 0;
|
||||
flags = 0;
|
||||
|
||||
memset(no_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH);
|
||||
memset(yes_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH);
|
||||
}
|
||||
|
||||
// NOTE: Now that the clear() member function exists, this function only sets the stuff associated with the object and ship class.
|
||||
static void ship_set(int ship_index, int objnum, int ship_type)
|
||||
{
|
||||
|
||||
@@ -88,6 +88,8 @@ struct reinforcements {
|
||||
int flags;
|
||||
char no_messages[MAX_REINFORCEMENT_MESSAGES][NAME_LENGTH]; // list of messages to possibly send when calling for reinforcement not available
|
||||
char yes_messages[MAX_REINFORCEMENT_MESSAGES][NAME_LENGTH]; // list of messages to acknowledge reinforcement on the way
|
||||
|
||||
reinforcements(const char *reinforcement_name = nullptr);
|
||||
};
|
||||
|
||||
class ship_weapon {
|
||||
|
||||
@@ -1750,13 +1750,7 @@ int set_reinforcement(const char *name, int state)
|
||||
|
||||
if (state && (cur == -1)) {
|
||||
Assert(strlen(name) < NAME_LENGTH);
|
||||
reinforcements reinforcement;
|
||||
strcpy_s(reinforcement.name, name);
|
||||
reinforcement.uses = 1;
|
||||
reinforcement.arrival_delay = 0;
|
||||
memset( reinforcement.no_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
memset( reinforcement.yes_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
Reinforcements.push_back(std::move(reinforcement));
|
||||
Reinforcements.emplace_back(name);
|
||||
|
||||
// set the reinforcement flag on the ship or wing
|
||||
index = ship_name_lookup(name);
|
||||
|
||||
@@ -138,11 +138,6 @@ void reinforcement_editor_dlg::save_data()
|
||||
if (cur >= 0) {
|
||||
m_reinforcements[cur].uses = m_uses;
|
||||
m_reinforcements[cur].arrival_delay = m_delay;
|
||||
|
||||
// save the message information to the reinforcement structure. First clear out the string
|
||||
// entires in the Reinforcement structure
|
||||
memset( m_reinforcements[cur].no_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
memset( m_reinforcements[cur].yes_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -328,15 +323,8 @@ void reinforcement_editor_dlg::OnAdd()
|
||||
}
|
||||
}
|
||||
|
||||
reinforcements reinforcement;
|
||||
strcpy_s(reinforcement.name, dlg.name);
|
||||
((CListBox *) GetDlgItem(IDC_LIST)) -> AddString(dlg.name);
|
||||
reinforcement.type = 0;
|
||||
reinforcement.uses = 1;
|
||||
reinforcement.arrival_delay = 0;
|
||||
memset( reinforcement.no_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
memset( reinforcement.yes_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
m_reinforcements.push_back(std::move(reinforcement));
|
||||
m_reinforcements.emplace_back(dlg.name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1553,13 +1553,7 @@ int Editor::set_reinforcement(const char* name, int state) {
|
||||
|
||||
if (state && (cur == -1)) {
|
||||
Assert(strlen(name) < NAME_LENGTH);
|
||||
reinforcements reinforcement;
|
||||
strcpy_s(reinforcement.name, name);
|
||||
reinforcement.uses = 1;
|
||||
reinforcement.arrival_delay = 0;
|
||||
memset(reinforcement.no_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH);
|
||||
memset(reinforcement.yes_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH);
|
||||
Reinforcements.push_back(std::move(reinforcement));
|
||||
Reinforcements.emplace_back(name);
|
||||
|
||||
// set the reinforcement flag on the ship or wing
|
||||
index = ship_name_lookup(name);
|
||||
|
||||
@@ -84,13 +84,9 @@ bool ReinforcementsDialogModel::apply()
|
||||
// Properly set all reinforcement info.
|
||||
Reinforcements.clear();
|
||||
for (auto& modelReinforcement : _reinforcementList) {
|
||||
reinforcements reinforcement;
|
||||
strcpy_s(reinforcement.name, std::get<0>(modelReinforcement).c_str());
|
||||
reinforcements reinforcement(std::get<0>(modelReinforcement).c_str());
|
||||
reinforcement.uses = std::get<1>(modelReinforcement);
|
||||
reinforcement.arrival_delay = std::get<2>(modelReinforcement);
|
||||
reinforcement.type = 0;
|
||||
memset( reinforcement.no_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
memset( reinforcement.yes_messages, 0, MAX_REINFORCEMENT_MESSAGES * NAME_LENGTH );
|
||||
Reinforcements.push_back(std::move(reinforcement));
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user