Clear out some useless, easily-resolvable, or no-longer-relevant TODO notes
This commit is contained in:
@@ -1016,9 +1016,13 @@ bool handle_action(sf::Event event) {
|
||||
main_button_click(combat_buttons[i]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// either resting or startup; do nothing
|
||||
// TODO: A call to handle_startup_action() would make sense here, though
|
||||
case MODE_STARTUP: case MODE_RESTING: case MODE_CUTSCENE:
|
||||
// If we get here during these modes, something is probably not right, so bail out
|
||||
add_string_to_buf("Unexpected game state!");
|
||||
return are_done;
|
||||
case MODE_ROOM_DESCR:
|
||||
// TODO: This mode is not yet implemented.
|
||||
// The idea is to put a long description in the transcript with something like "press any key to continue".
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1331,7 +1335,6 @@ bool handle_action(sf::Event event) {
|
||||
for(int j = 0; j < 6; j++)
|
||||
if(item_area_button_active[i][j] && point_in_area.in(item_buttons[i][j])) {
|
||||
item_buttons[i][j].offset(ITEM_WIN_UL_X,ITEM_WIN_UL_Y);
|
||||
// if((j > 0) || (stat_screen_mode < 2)) // TODO: <-- Windows version has this check - why?
|
||||
arrow_button_click(item_buttons[i][j]);
|
||||
item_buttons[i][j].offset(-ITEM_WIN_UL_X,-ITEM_WIN_UL_Y);
|
||||
|
||||
@@ -1359,8 +1362,8 @@ bool handle_action(sf::Event event) {
|
||||
; // TODO: Implement quests view
|
||||
else display_pc_item(stat_window, item_hit,univ.party[stat_window].items[item_hit],0);
|
||||
break;
|
||||
case 5: // sell? That this codes was reached indicates that the item was sellable
|
||||
// TODO: How does that work? ^
|
||||
case 5: // sell? That this code was reached indicates that the item was sellable
|
||||
// (Based on item_area_button_active)
|
||||
handle_item_shop_action(item_hit);
|
||||
break;
|
||||
}
|
||||
@@ -1424,7 +1427,7 @@ bool handle_action(sf::Event event) {
|
||||
}
|
||||
|
||||
void handle_monster_actions(bool& need_redraw, bool& need_reprint) {
|
||||
draw_map(true); // TODO: Might be possible to only do this in certain circumstances?
|
||||
draw_map(true);
|
||||
play_ambient_sound();
|
||||
|
||||
if(is_combat() && overall_mode != MODE_LOOK_COMBAT) {
|
||||
@@ -2086,7 +2089,6 @@ bool handle_keystroke(sf::Event& event){
|
||||
else return false;
|
||||
break;
|
||||
case 'A':if(overall_mode == MODE_TOWN) {
|
||||
// TODO: Uh, what about ul.y?
|
||||
pass_point.x = 1000 + ul.x;
|
||||
pass_event.mouseButton.x = pass_point.x;
|
||||
pass_event.mouseButton.y = pass_point.y;
|
||||
@@ -2102,7 +2104,6 @@ bool handle_keystroke(sf::Event& event){
|
||||
if(overall_mode == MODE_COMBAT)
|
||||
j = 5;
|
||||
else if(overall_mode == MODE_TOWN) {
|
||||
// TODO: Uh, what about ul.y?
|
||||
pass_point.x = 1001 + ul.x;
|
||||
pass_event.mouseButton.x = pass_point.x;
|
||||
pass_event.mouseButton.y = pass_point.y;
|
||||
@@ -2161,7 +2162,6 @@ void post_load() {
|
||||
// }
|
||||
// make_out_trim();
|
||||
|
||||
// TODO: Presumably need to call draw() as well, but maybe not here
|
||||
text_sbar->show();
|
||||
item_sbar->show();
|
||||
shop_sbar->hide();
|
||||
|
@@ -603,8 +603,6 @@ void pc_attack(short who_att,iLiving* target) {
|
||||
|
||||
static void apply_weapon_status(eStatus status, int how_much, int dmg, iLiving& which_m, std::string weap_type) {
|
||||
switch(status) {
|
||||
// TODO: It should be possible to make monsters support magic resistance and invulnerability, at least.
|
||||
// Maybe also poisoned weapon and invisibility.
|
||||
case eStatus::MAIN: break; // Not a valid status
|
||||
case eStatus::INVISIBLE:
|
||||
add_string_to_buf(" " + weap_type + " leaks an odd-coloured aura.");
|
||||
@@ -1449,7 +1447,6 @@ void handle_marked_damage() {
|
||||
|
||||
for(i = 0; i < 6; i++)
|
||||
if(univ.party[i].marked_damage > 0) {
|
||||
// TODO: Perhaps there should be a way of determining the correct race here?
|
||||
damage_pc(i,univ.party[i].marked_damage,eDamageType::MARKED,eRace::UNKNOWN,0);
|
||||
univ.party[i].marked_damage = 0;
|
||||
}
|
||||
@@ -1775,7 +1772,6 @@ bool combat_next_step() {
|
||||
pick_next_pc();
|
||||
if(current_pc != store_pc)
|
||||
to_return = true;
|
||||
// TODO: Windows version checks for overall_mode being MODE_OUTDOORS or MODE_TOWN - that's not necessary, right?
|
||||
center = univ.party[current_pc].combat_pos;
|
||||
|
||||
adjust_spell_menus();
|
||||
@@ -2818,7 +2814,7 @@ void monst_fire_missile(short m_num,short bless,std::pair<eMonstAbil,uAbility> a
|
||||
int spec_item = pc_target->has_abil_equip(eItemAbil::HIT_CALL_SPECIAL);
|
||||
if(spec_item < 24) {
|
||||
short s1,s2,s3;
|
||||
// TODO: This force_ptr...run_special code is almost duplicated in several places; maybe make a call_attack_spec subroutine?
|
||||
// TODO: This force_ptr...run_special code is almost duplicated in several places; maybe make a call_attack_spec subroutine!
|
||||
univ.party.force_ptr(21, 301, 5);
|
||||
univ.party.force_ptr(22, 301, 6);
|
||||
univ.party.force_ptr(20, 301, 7);
|
||||
@@ -2966,11 +2962,10 @@ void monst_basic_abil(short m_num, std::pair<eMonstAbil,uAbility> abil, iLiving*
|
||||
case eStatus::DUMB:
|
||||
target->dumbfound(abil.second.gen.strength);
|
||||
break;
|
||||
// These only work on PCs
|
||||
case eStatus::INVULNERABLE:
|
||||
case eStatus::MAGIC_RESISTANCE:
|
||||
case eStatus::INVISIBLE:
|
||||
case eStatus::MARTYRS_SHIELD: // TODO: Wait what? This one works for monsters!
|
||||
case eStatus::MARTYRS_SHIELD:
|
||||
target->apply_status(abil.second.gen.stat, -abil.second.gen.strength);
|
||||
break;
|
||||
// This only works on monsters
|
||||
@@ -4098,7 +4093,6 @@ void place_spell_pattern(effect_pat_type pat,location center,eDamageType type,sh
|
||||
case eDamageType::FIRE: code = 50; break;
|
||||
case eDamageType::COLD: code = 90; break;
|
||||
case eDamageType::MAGIC: code = 130; break;
|
||||
// TODO: These are new; nothing actually uses them, but maybe eventually!
|
||||
case eDamageType::WEAPON: code = 170; break;
|
||||
case eDamageType::POISON: code = 210; break;
|
||||
case eDamageType::UNBLOCKABLE: code = 250; break;
|
||||
|
@@ -883,7 +883,7 @@ void handle_talk_event(location p) {
|
||||
}
|
||||
talk_end_forced = true;
|
||||
break;
|
||||
// TODO: Strings resulting from this don't seem to be recordable; whyever not?
|
||||
// TODO: Strings resulting from this don't seem to be recordable; whyever not!?
|
||||
case eTalkNode::CALL_TOWN_SPEC:
|
||||
run_special(eSpecCtx::TALK,2,a,univ.town.p_loc,&s1,&s2,&s3);
|
||||
// check s1 & s2 to see if we got diff str, and, if so, munch old strs
|
||||
@@ -923,10 +923,7 @@ void handle_talk_event(location p) {
|
||||
//short sign_type; // terrain type
|
||||
void do_sign(short town_num, short which_sign, short sign_type) {
|
||||
std::string sign_text;
|
||||
location view_loc;
|
||||
|
||||
// TODO: Why is this line here? The location isn't used anywhere.
|
||||
view_loc = (is_out()) ? univ.party.p_loc : univ.town.p_loc;
|
||||
make_cursor_sword();
|
||||
|
||||
cChoiceDlog sign("view-sign");
|
||||
@@ -1000,20 +997,16 @@ void save_prefs(bool resetHelp){
|
||||
}
|
||||
|
||||
static bool prefs_event_filter (cDialog& me, std::string id, eKeyMod) {
|
||||
// TODO: I should no longer need done_yet as this now only handles the okay and cancel buttons; the LEDs are now handled automatically by the cLed class (and the cLedGroup class, for LED groups).
|
||||
bool done_yet = false,did_cancel = false,reset_help = false;
|
||||
bool did_cancel = false,reset_help = false;
|
||||
short i;
|
||||
|
||||
if(id == "okay") {
|
||||
done_yet = true;
|
||||
me.toast(true);
|
||||
} else if(id == "cancel") {
|
||||
done_yet = true;
|
||||
me.toast(false);
|
||||
did_cancel = true;
|
||||
}
|
||||
|
||||
if(done_yet) {
|
||||
if(!did_cancel) {
|
||||
std::string cur_display_mode = dynamic_cast<cLedGroup&>(me["display"]).getSelected();
|
||||
// TODO: Make an enum for the display mode
|
||||
@@ -1059,7 +1052,6 @@ static bool prefs_event_filter (cDialog& me, std::string id, eKeyMod) {
|
||||
save_maps = 1 - PSD[SDF_NO_MAPS];
|
||||
give_delays = PSD[SDF_NO_FRILLS];
|
||||
save_prefs(reset_help);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1185,9 +1177,7 @@ static bool edit_party_event_filter(cDialog& me, std::string item_hit, eKeyMod)
|
||||
} else if(item_hit == "pic") {
|
||||
if(univ.party[which_pc].main_status == eMainStatus::ABSENT)
|
||||
return true;
|
||||
// TODO: Uhh, why did he check this twice...
|
||||
if(univ.party[which_pc].main_status != eMainStatus::ABSENT)
|
||||
pick_pc_graphic(which_pc,1,&me);
|
||||
pick_pc_graphic(which_pc,1,&me);
|
||||
put_party_stats(me);
|
||||
} else if(item_hit == "delete") { // Note: This button is also used for "create new PC".
|
||||
if(univ.party[which_pc].main_status != eMainStatus::ABSENT) {
|
||||
@@ -1199,8 +1189,6 @@ static bool edit_party_event_filter(cDialog& me, std::string item_hit, eKeyMod)
|
||||
give_help(56,0,me);
|
||||
create_pc(which_pc,&me);
|
||||
put_party_stats(me);
|
||||
// TODO: Not sure if this is needed
|
||||
// cd_initial_draw(989); // extra redraw, just in case
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1233,8 +1221,6 @@ void edit_party() {
|
||||
|
||||
put_party_stats(pcDialog);
|
||||
if(univ.party.help_received[22] == 0) {
|
||||
// TODO: Not sure if this is needed
|
||||
// cd_initial_draw(989);
|
||||
give_help(22,23,pcDialog);
|
||||
}
|
||||
|
||||
|
@@ -464,8 +464,7 @@ void build_scen_headers() {
|
||||
scenDir /= "Blades of Exile Scenarios";
|
||||
std::cout << progDir << '\n' << scenDir << std::endl;
|
||||
scen_headers.clear();
|
||||
fs::path folderRef(scenDir); // TODO: This variable is unnecessary
|
||||
fs::directory_iterator iter(folderRef);
|
||||
fs::directory_iterator iter(scenDir);
|
||||
// TODO: Double-check that kFSIterateFlat is identical to the behaviour of Boost's directory_iterator
|
||||
#if 0
|
||||
err = FSOpenIterator(&folderRef, kFSIterateFlat, &iter);
|
||||
|
@@ -549,7 +549,6 @@ void load_main_screen() {
|
||||
if(invenbtn_gworld.getSize().x > 0)
|
||||
return;
|
||||
|
||||
// TODO: Hopefully reusing a texture here won't cause issues...
|
||||
invenbtn_gworld.loadFromImage(*ResMgr::get<ImageRsrc>("invenbtns"));
|
||||
loadImageToRenderTexture(pc_stats_gworld, "statarea");
|
||||
loadImageToRenderTexture(item_stats_gworld, "inventory");
|
||||
|
@@ -175,9 +175,6 @@ void draw_monsters() {
|
||||
}
|
||||
if(picture_wanted < 1000) {
|
||||
for(k = 0; k < width * height; k++) {
|
||||
// TODO: Windows special-cases the bear and drake, whose graphics are split between two columns/sheets. Is this necessary?
|
||||
// It really doesn't look necessary to me, since each quadrant of the graphic is fetched separately.
|
||||
// Technically what they do is always pass 0 as the final argument to get_monster_template_rect, instead of passing k; they also hardcode the sheet to look on (4 for drake, 5 for bear).
|
||||
source_rect = get_monster_template_rect(picture_wanted,(univ.party.out_c[i].direction < 4) ? 0 : 1,k);
|
||||
to_rect = monst_rects[(width - 1) * 2 + height - 1][k];
|
||||
to_rect.offset(13 + 28 * where_draw.x,13 + 36 * where_draw.y);
|
||||
|
@@ -590,15 +590,14 @@ static void display_pc_info(cDialog& me, const short pc) {
|
||||
static bool give_pc_info_event_filter(cDialog& me, std::string item_hit, short& store_pc_num) {
|
||||
if(item_hit == "done") me.toast(true);
|
||||
else if(item_hit == "left") {
|
||||
// TODO: Put braces on these do-whiles... o.O
|
||||
do
|
||||
do {
|
||||
store_pc_num = (store_pc_num == 0) ? 5 : store_pc_num - 1;
|
||||
while(univ.party[store_pc_num].main_status != eMainStatus::ALIVE);
|
||||
} while(univ.party[store_pc_num].main_status != eMainStatus::ALIVE);
|
||||
display_pc_info(me, store_pc_num);
|
||||
} else if(item_hit == "right") {
|
||||
do
|
||||
do {
|
||||
store_pc_num = (store_pc_num + 1) % 6;
|
||||
while(univ.party[store_pc_num].main_status != eMainStatus::ALIVE);
|
||||
} while(univ.party[store_pc_num].main_status != eMainStatus::ALIVE);
|
||||
display_pc_info(me, store_pc_num);
|
||||
}
|
||||
return true;
|
||||
|
@@ -467,12 +467,6 @@ static void put_item_graphics(cDialog& me, size_t& first_item_shown, short& curr
|
||||
if(item.graphic_num >= 1000)
|
||||
pic.setPict(item.graphic_num - 1000, PIC_CUSTOM_ITEM);
|
||||
else pic.setPict(item.graphic_num, PIC_ITEM);
|
||||
// TODO: This code is currently kept here for reference to the changed numbers. It can be removed after verifying it works correctly.
|
||||
#if 0
|
||||
if(item.graphic_num >= 1000) // was 150
|
||||
csp(987,20 + i * 4,/*3000 + 2000 + */item.graphic_num - 1000,PICT_CUSTOM + PICT_ITEM);
|
||||
else csp(987,20 + i * 4,/*4800 + */item.graphic_num,PICT_ITEM);
|
||||
#endif
|
||||
me[detail].setText(get_item_interesting_string(item));
|
||||
me[weight].setText("Weight: " + std::to_string(item.item_weight()));
|
||||
} catch(std::out_of_range) { // erase the spot
|
||||
@@ -727,7 +721,6 @@ short get_num_of_items(short max_num) {
|
||||
}
|
||||
|
||||
void init_mini_map() {
|
||||
// TODO: I'm not sure if the bounds in the DLOG resource included the titlebar height; perhaps the actual height should be a little less
|
||||
mini_map.create(sf::VideoMode(296,277), "Map", sf::Style::Titlebar | sf::Style::Close);
|
||||
mini_map.setPosition(sf::Vector2i(52,62));
|
||||
mini_map.setVisible(false);
|
||||
|
@@ -97,7 +97,6 @@ location center;
|
||||
short current_pc;
|
||||
short combat_active_pc;
|
||||
effect_pat_type current_pat;
|
||||
// TODO: Integrate this ^ into the town cCreature type
|
||||
short spell_caster, missile_firer,current_monst_tactic;
|
||||
short store_current_pc = 0;
|
||||
|
||||
|
@@ -1036,7 +1036,7 @@ bool monst_check_special_terrain(location where_check,short mode,short which_mon
|
||||
can_enter = false;
|
||||
break;
|
||||
|
||||
case eTerSpec::DAMAGING: // TODO: Update this to check other cases
|
||||
case eTerSpec::DAMAGING:
|
||||
switch(eDamageType(ter_flag)) {
|
||||
case eDamageType::FIRE:
|
||||
return univ.town.monst[which_monst].fire_res == 0;
|
||||
|
@@ -322,7 +322,10 @@ bool create_pc(short spot,cDialog* parent) {
|
||||
univ.party[spot].main_status = eMainStatus::ALIVE;
|
||||
|
||||
if(overall_mode != MODE_STARTUP) {
|
||||
// TODO: Why only when not in MODE_STARTUP?
|
||||
// If this is called while in startup mode, it means we're in the middle of building a party.
|
||||
// Thus, the PC should not be finalized yet.
|
||||
// However, if we're not in startup mode, it means we're adding a new PC to an existing party.
|
||||
// Thus, we must finalize the PC now.
|
||||
univ.party[spot].finish_create();
|
||||
}
|
||||
univ.party[spot].cur_health = univ.party[spot].max_health;
|
||||
@@ -1377,8 +1380,6 @@ void do_priest_spell(short pc_num,eSpell spell_num,bool freebie) {
|
||||
univ.party[i].status[eStatus::DISEASE] = 0;
|
||||
}
|
||||
if(spell_num == eSpell::HYPERACTIVITY) {
|
||||
// Looks like this isn't clipped to a positive number. (That's probably intentional.)
|
||||
// TODO: So, should a status icon be added for negative levels of sleep?
|
||||
univ.party[i].status[eStatus::ASLEEP] -= 6 + 2 * adj;
|
||||
univ.party[i].status[eStatus::HASTE_SLOW] = max(0,univ.party[i].status[eStatus::HASTE_SLOW]);
|
||||
}
|
||||
@@ -1771,7 +1772,6 @@ static void draw_spell_info(cDialog& me, const eSkill store_situation, const sho
|
||||
|
||||
for(int i = 0; i < 6; i++) {
|
||||
std::string id = "target" + boost::lexical_cast<std::string>(i + 1);
|
||||
// TODO: Make this thing an enum
|
||||
switch((*cSpell::fromNum(store_situation,store_spell)).need_select) {
|
||||
case SELECT_NO:
|
||||
me[id].hide();
|
||||
@@ -2202,8 +2202,6 @@ eSpell pick_spell(short pc_num,eSkill type) { // 70 - no spell OW spell num
|
||||
put_spell_led_buttons(castSpell, type, former_spell);
|
||||
|
||||
if(univ.party.help_received[7] == 0) {
|
||||
// TODO: Not sure if this initial draw is needed
|
||||
// cd_initial_draw(1098);
|
||||
give_help(7,8,castSpell);
|
||||
}
|
||||
|
||||
@@ -2364,8 +2362,6 @@ eAlchemy alch_choice(short pc_num) {
|
||||
sout << " (skill " << univ.party[pc_num].skill(eSkill::ALCHEMY) << ")";
|
||||
chooseAlchemy["mixer"].setText(sout.str());
|
||||
if(univ.party.help_received[20] == 0) {
|
||||
// TODO: I'm not sure if the initial draw is needed
|
||||
// cd_initial_draw(1047);
|
||||
give_help(20,21,chooseAlchemy);
|
||||
}
|
||||
|
||||
|
@@ -79,26 +79,6 @@ std::map<eItemAbil, short> abil_chart = {
|
||||
{eItemAbil::CALL_SPECIAL,4}, {eItemAbil::CAST_SPELL,4},
|
||||
};
|
||||
|
||||
// TODO: I bet this is completely unused; it looks like it does nothing.
|
||||
//short which; // number, 0 - 49, of special
|
||||
bool town_specials(short which,short /*t_num*/) {
|
||||
bool can_enter = true;
|
||||
short spec_id;
|
||||
location l;
|
||||
|
||||
|
||||
l = univ.town->special_locs[which];
|
||||
spec_id = univ.town->spec_id[which];
|
||||
if(spec_id < 0)
|
||||
return true;
|
||||
|
||||
// call special
|
||||
|
||||
erase_specials();
|
||||
|
||||
return can_enter;
|
||||
}
|
||||
|
||||
// which is unused
|
||||
//short mode; // 0 - pre 1 - end by victory 2 - end by flight
|
||||
// wanderin spec 99 -> generic spec
|
||||
@@ -1241,7 +1221,6 @@ bool adj_town_look(location where) {
|
||||
// tell party you find something, if looking at a space they can't step in
|
||||
add_string_to_buf(" Search: You find something! ");
|
||||
}
|
||||
//call special can_open = town_specials(i,univ.town.town_num);
|
||||
|
||||
run_special(eSpecCtx::TOWN_LOOK,2,univ.town->spec_id[i],where,&s1,&s2,&s3);
|
||||
if(s1 > 0)
|
||||
@@ -1504,9 +1483,7 @@ bool damage_monst(short which_m, short who_hit, short how_much, eDamageType dam_
|
||||
// Monster damages. Make it hostile.
|
||||
victim->active = 2;
|
||||
|
||||
// TODO: This looks like the reason Windows split the boom_space function in two.
|
||||
// It doesn't exactly make sense though, since in its version, boom_space is only called for how_much_spec.
|
||||
if(dam_type != eDamageType::MARKED) { // note special damage only gamed in hand-to-hand, not during animation
|
||||
if(dam_type != eDamageType::MARKED) {
|
||||
if(party_can_see_monst(which_m)) {
|
||||
boom_space(victim->cur_loc,100,boom_gr[dam_type],how_much,sound_type);
|
||||
}
|
||||
@@ -2386,7 +2363,6 @@ void general_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
}
|
||||
*/
|
||||
|
||||
// TODO: What was next_spec_type for? Is it still needed?
|
||||
void oneshot_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
short* next_spec,short* next_spec_type,short* a,short* b,short* redraw) {
|
||||
bool check_mess = true,set_sd = true;
|
||||
@@ -2552,7 +2528,6 @@ void oneshot_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
|
||||
}
|
||||
|
||||
// TODO: What was next_spec_type for? Is it still needed?
|
||||
void affect_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
short *next_spec,short* /*next_spec_type*/,short *a,short *b,short *redraw) {
|
||||
bool check_mess = true;
|
||||
@@ -3006,7 +2981,6 @@ static bool isValidField(int fld, bool allowSpecial) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: What was next_spec_type for? Is it still needed?
|
||||
void ifthen_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
short *next_spec,short* /*next_spec_type*/,short *a,short *b,short *redraw) {
|
||||
bool check_mess = false;
|
||||
@@ -3566,7 +3540,6 @@ void set_terrain(location l, ter_num_t terrain_type) {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: What was next_spec_type for? Is it still needed?
|
||||
void townmode_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
short *next_spec,short* /*next_spec_type*/,short *a,short *b,short *redraw) {
|
||||
static const char*const stairDlogs[8] = {
|
||||
@@ -4049,7 +4022,6 @@ void townmode_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: What was next_spec_type for? Is it still needed?
|
||||
void rect_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
short *next_spec,short* /*next_spec_type*/,short *a,short *b,short *redraw){
|
||||
bool check_mess = true;
|
||||
@@ -4192,7 +4164,6 @@ END:
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: What was next_spec_type for? Is it still needed?
|
||||
void outdoor_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
short *next_spec,short* /*next_spec_type*/,short *a,short *b,short *redraw){
|
||||
bool check_mess = false;
|
||||
|
@@ -1,7 +1,6 @@
|
||||
|
||||
#include "creature.hpp"
|
||||
|
||||
bool town_specials(short which,short t_num);
|
||||
bool handle_wandering_specials (short which,short mode);
|
||||
bool check_special_terrain(location where_check,eSpecCtx mode,cPlayer& which_pc,short *spec_num,
|
||||
bool *forced);
|
||||
|
Reference in New Issue
Block a user