Skip to content

Commit

Permalink
NWN2: Include error checking when loading member
Browse files Browse the repository at this point in the history
  • Loading branch information
rjshae authored and DrMcCoy committed Feb 10, 2019
1 parent 041f6e2 commit bc13960
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/engines/nwn2/roster.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,21 @@ void Roster::loadMember(const Aurora::GFF3Struct &gff) {
Member member;

// Add a roster member to the list
member.rosterName = gff.getString("RosName", member.rosterName);
member.isAvailable = gff.getBool("RosAvailable", member.isAvailable);
member.isCampaignNPC = gff.getBool("RosCampaignNPC", member.isCampaignNPC);
member.isSelectable = gff.getBool("RosSelectable", member.isSelectable);
member.isLoadBefore = gff.getBool("RosLoadBefore", member.isLoadBefore);
_members.push_back(member);
if (gff.hasField("RosName")) {
member.rosterName = gff.getString("RosName", member.rosterName);
member.isAvailable = gff.getBool("RosAvailable", member.isAvailable);
member.isCampaignNPC = gff.getBool("RosCampaignNPC", member.isCampaignNPC);
member.isSelectable = gff.getBool("RosSelectable", member.isSelectable);
member.isLoadBefore = gff.getBool("RosLoadBefore", member.isLoadBefore);

if (getRosterMember(member.rosterName) == _members.end()) {
_members.push_back(member);
} else {
throw Common::Exception("Attempt to load duplicate roster member name: \"%s\"", member.rosterName.c_str());
}
} else {
throw Common::Exception("Missing RosName field.");
}
}

} // End of namespace NWN2
Expand Down

0 comments on commit bc13960

Please sign in to comment.