Refactor the various special item arrays into a single structure array
This commit is contained in:
@@ -380,7 +380,7 @@ void init_party_scen_data()
|
|||||||
// univ.party.party_event_timers[i] = 0;
|
// univ.party.party_event_timers[i] = 0;
|
||||||
univ.party.party_event_timers.clear();
|
univ.party.party_event_timers.clear();
|
||||||
for (i = 0; i < 50; i++)
|
for (i = 0; i < 50; i++)
|
||||||
univ.party.spec_items[i] = (scenario.special_items[i] >= 10) ? 1 : 0;
|
univ.party.spec_items[i] = (scenario.special_items[i].flags >= 10) ? 1 : 0;
|
||||||
|
|
||||||
for (i = 0; i < 200; i++)
|
for (i = 0; i < 200; i++)
|
||||||
univ.party.m_killed[i] = 0;
|
univ.party.m_killed[i] = 0;
|
||||||
@@ -519,7 +519,7 @@ void put_party_in_scen(std::string scen_name)
|
|||||||
|
|
||||||
// this is kludgy, put here to prevent problems
|
// this is kludgy, put here to prevent problems
|
||||||
for (i = 0; i < 50; i++)
|
for (i = 0; i < 50; i++)
|
||||||
univ.party.spec_items[i] = (scenario.special_items[i] >= 10) ? 1 : 0;
|
univ.party.spec_items[i] = (scenario.special_items[i].flags >= 10) ? 1 : 0;
|
||||||
|
|
||||||
// Compatibility flags
|
// Compatibility flags
|
||||||
if(scenario.format.prog_make_ver[0] < 2){
|
if(scenario.format.prog_make_ver[0] < 2){
|
||||||
|
|||||||
@@ -571,7 +571,7 @@ void use_spec_item(short item)
|
|||||||
short i,j,k;
|
short i,j,k;
|
||||||
location null_loc;
|
location null_loc;
|
||||||
|
|
||||||
run_special(8,0,scenario.special_item_special[item],loc(),&i,&j,&k);
|
run_special(8,0,scenario.special_items[item].special,loc(),&i,&j,&k);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ void put_item_screen(short screen_num,short suppress_buttons)
|
|||||||
win_draw_string(item_stats_gworld,item_buttons[i][0],scenario.scen_strs(60 + spec_item_array[i_num] * 2),0,style);
|
win_draw_string(item_stats_gworld,item_buttons[i][0],scenario.scen_strs(60 + spec_item_array[i_num] * 2),0,style);
|
||||||
|
|
||||||
place_item_button(3,i,4,0);
|
place_item_button(3,i,4,0);
|
||||||
if ((scenario.special_items[spec_item_array[i_num]] % 10 == 1)
|
if ((scenario.special_items[spec_item_array[i_num]].flags % 10 == 1)
|
||||||
&& (!(is_combat())))
|
&& (!(is_combat())))
|
||||||
place_item_button(0,i,3,0);
|
place_item_button(0,i,3,0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,15 @@ std::istream& operator >> (std::istream& in, eWeapType& e);
|
|||||||
std::istream& operator >> (std::istream& in, eItemType& e);
|
std::istream& operator >> (std::istream& in, eItemType& e);
|
||||||
std::istream& operator >> (std::istream& in, eItemAbil& e);
|
std::istream& operator >> (std::istream& in, eItemAbil& e);
|
||||||
|
|
||||||
|
class cSpecItem {
|
||||||
|
public:
|
||||||
|
short flags;
|
||||||
|
short special;
|
||||||
|
// TODO: Change to std::string
|
||||||
|
char name[256];
|
||||||
|
char descr[256];
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
typedef struct {
|
typedef struct {
|
||||||
short variety, item_level;
|
short variety, item_level;
|
||||||
|
|||||||
@@ -70,9 +70,8 @@ cScenario& cScenario::operator = (legacy::scenario_data_type& old){
|
|||||||
}
|
}
|
||||||
for(i = 0; i < 3; i++) store_item_towns[i] = old.store_item_towns[i];
|
for(i = 0; i < 3; i++) store_item_towns[i] = old.store_item_towns[i];
|
||||||
flag_e = old.flag_e;
|
flag_e = old.flag_e;
|
||||||
// TODO: Combine these two into a structure
|
for(i = 0; i < 50; i++) special_items[i].flags = old.special_items[i];
|
||||||
for(i = 0; i < 50; i++) special_items[i] = old.special_items[i];
|
for(i = 0; i < 50; i++) special_items[i].special = old.special_item_special[i];
|
||||||
for(i = 0; i < 50; i++) special_item_special[i] = old.special_item_special[i];
|
|
||||||
rating = old.rating;
|
rating = old.rating;
|
||||||
// TODO: Is this used anywhere?
|
// TODO: Is this used anywhere?
|
||||||
uses_custom_graphics = old.uses_custom_graphics;
|
uses_custom_graphics = old.uses_custom_graphics;
|
||||||
@@ -126,8 +125,8 @@ char(& cScenario::scen_strs(short i))[256]{
|
|||||||
if(i >= 4 && i < 10 ) return intro_strs[i - 4];
|
if(i >= 4 && i < 10 ) return intro_strs[i - 4];
|
||||||
if(i >= 10 && i < 60 ) return journal_strs[i - 10];
|
if(i >= 10 && i < 60 ) return journal_strs[i - 10];
|
||||||
if(i >= 60 && i < 160){
|
if(i >= 60 && i < 160){
|
||||||
if(i % 2 == 0) return spec_item_names[(i - 60) / 2];
|
if(i % 2 == 0) return special_items[(i - 60) / 2].name;
|
||||||
else return spec_item_strs[(i - 60) / 2];
|
else return special_items[(i - 60) / 2].descr;
|
||||||
}
|
}
|
||||||
if(i >= 160 && i < 260) return spec_strs[i - 160];
|
if(i >= 160 && i < 260) return spec_strs[i - 160];
|
||||||
return journal_strs[6]; // random unused slot
|
return journal_strs[6]; // random unused slot
|
||||||
|
|||||||
@@ -62,8 +62,7 @@ public:
|
|||||||
rectangle store_item_rects[3];
|
rectangle store_item_rects[3];
|
||||||
short store_item_towns[3];
|
short store_item_towns[3];
|
||||||
short flag_e;
|
short flag_e;
|
||||||
short special_items[50];
|
cSpecItem special_items[50];
|
||||||
short special_item_special[50];
|
|
||||||
short rating,uses_custom_graphics;
|
short rating,uses_custom_graphics;
|
||||||
short flag_f;
|
short flag_f;
|
||||||
cMonster scen_monsters[256];
|
cMonster scen_monsters[256];
|
||||||
@@ -93,9 +92,6 @@ public:
|
|||||||
char contact_info[256];
|
char contact_info[256];
|
||||||
char intro_strs[6][256];
|
char intro_strs[6][256];
|
||||||
char journal_strs[50][256];
|
char journal_strs[50][256];
|
||||||
//char spec_item_strs[100][256];
|
|
||||||
char spec_item_names[50][256];
|
|
||||||
char spec_item_strs[50][256];
|
|
||||||
char spec_strs[100][256];
|
char spec_strs[100][256];
|
||||||
char monst_strs[100][256];
|
char monst_strs[100][256];
|
||||||
bool adjust_diff : 1;
|
bool adjust_diff : 1;
|
||||||
|
|||||||
@@ -89,8 +89,8 @@ void init_scenario() {
|
|||||||
scenario.store_item_towns[i] = -1;
|
scenario.store_item_towns[i] = -1;
|
||||||
}
|
}
|
||||||
for (i = 0; i < 50; i++) {
|
for (i = 0; i < 50; i++) {
|
||||||
scenario.special_items[i] = 0;
|
scenario.special_items[i].flags = 0;
|
||||||
scenario.special_item_special[i] = -1;
|
scenario.special_items[i].special = -1;
|
||||||
}
|
}
|
||||||
scenario.rating = 0;
|
scenario.rating = 0;
|
||||||
scenario.uses_custom_graphics = 0;
|
scenario.uses_custom_graphics = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user