Dredge out useless code from check_fields function
- Stinking and sleep clouds are no longer processed twice in town mode
This commit is contained in:
@@ -458,6 +458,8 @@ bool check_special_terrain(location where_check,eSpecCtx mode,cPlayer& which_pc,
|
|||||||
|
|
||||||
// This procedure find the effects of fields that would affect a PC who moves into
|
// This procedure find the effects of fields that would affect a PC who moves into
|
||||||
// a space or waited in that same space
|
// a space or waited in that same space
|
||||||
|
// In town mode, process_fields() is responsible for actually dealing the damage
|
||||||
|
// All this does is print a message
|
||||||
void check_fields(location where_check,eSpecCtx mode,cPlayer& which_pc) {
|
void check_fields(location where_check,eSpecCtx mode,cPlayer& which_pc) {
|
||||||
short r1,i;
|
short r1,i;
|
||||||
size_t i_pc = univ.get_target_i(which_pc);
|
size_t i_pc = univ.get_target_i(which_pc);
|
||||||
@@ -468,34 +470,21 @@ void check_fields(location where_check,eSpecCtx mode,cPlayer& which_pc) {
|
|||||||
}
|
}
|
||||||
if(is_out())
|
if(is_out())
|
||||||
return;
|
return;
|
||||||
if(is_town())
|
|
||||||
fast_bang = 1;
|
|
||||||
if(univ.town.is_fire_wall(where_check.x,where_check.y)) {
|
if(univ.town.is_fire_wall(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Fire wall! ");
|
add_string_to_buf(" Fire wall! ");
|
||||||
r1 = get_ran(1,1,6) + 1;
|
r1 = get_ran(1,1,6) + 1;
|
||||||
// TODO: Is this commented code important?
|
|
||||||
// if(mode < 2)
|
|
||||||
// hit_party(r1,1);
|
|
||||||
if(mode == eSpecCtx::COMBAT_MOVE)
|
if(mode == eSpecCtx::COMBAT_MOVE)
|
||||||
damage_pc(i_pc,r1,eDamageType::FIRE,eRace::UNKNOWN,0);
|
damage_pc(i_pc,r1,eDamageType::FIRE,eRace::UNKNOWN,0);
|
||||||
if(overall_mode < MODE_COMBAT)
|
|
||||||
boom_space(univ.party.p_loc,overall_mode,0,r1,5);
|
|
||||||
}
|
}
|
||||||
if(univ.town.is_force_wall(where_check.x,where_check.y)) {
|
if(univ.town.is_force_wall(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Force wall! ");
|
add_string_to_buf(" Force wall! ");
|
||||||
r1 = get_ran(2,1,6);
|
r1 = get_ran(2,1,6);
|
||||||
// if(mode < 2)
|
|
||||||
// hit_party(r1,3);
|
|
||||||
if(mode == eSpecCtx::COMBAT_MOVE)
|
if(mode == eSpecCtx::COMBAT_MOVE)
|
||||||
damage_pc(i_pc,r1,eDamageType::MAGIC,eRace::UNKNOWN,0);
|
damage_pc(i_pc,r1,eDamageType::MAGIC,eRace::UNKNOWN,0);
|
||||||
if(overall_mode < MODE_COMBAT)
|
|
||||||
boom_space(univ.party.p_loc,overall_mode,1,r1,12);
|
|
||||||
}
|
}
|
||||||
if(univ.town.is_ice_wall(where_check.x,where_check.y)) {
|
if(univ.town.is_ice_wall(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Ice wall! ");
|
add_string_to_buf(" Ice wall! ");
|
||||||
r1 = get_ran(2,1,6);
|
r1 = get_ran(2,1,6);
|
||||||
// if(mode < 2)
|
|
||||||
// hit_party(r1,5);
|
|
||||||
if(mode == eSpecCtx::COMBAT_MOVE)
|
if(mode == eSpecCtx::COMBAT_MOVE)
|
||||||
damage_pc(i_pc,r1,eDamageType::COLD,eRace::UNKNOWN,0);
|
damage_pc(i_pc,r1,eDamageType::COLD,eRace::UNKNOWN,0);
|
||||||
if(overall_mode < MODE_COMBAT)
|
if(overall_mode < MODE_COMBAT)
|
||||||
@@ -504,58 +493,38 @@ void check_fields(location where_check,eSpecCtx mode,cPlayer& which_pc) {
|
|||||||
if(univ.town.is_blade_wall(where_check.x,where_check.y)) {
|
if(univ.town.is_blade_wall(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Blade wall! ");
|
add_string_to_buf(" Blade wall! ");
|
||||||
r1 = get_ran(4,1,8);
|
r1 = get_ran(4,1,8);
|
||||||
// if(mode < 2)
|
|
||||||
// hit_party(r1,0);
|
|
||||||
if(mode == eSpecCtx::COMBAT_MOVE)
|
if(mode == eSpecCtx::COMBAT_MOVE)
|
||||||
damage_pc(i_pc,r1,eDamageType::WEAPON,eRace::UNKNOWN,0);
|
damage_pc(i_pc,r1,eDamageType::WEAPON,eRace::UNKNOWN,0);
|
||||||
if(overall_mode < MODE_COMBAT)
|
|
||||||
boom_space(univ.party.p_loc,overall_mode,3,r1,2);
|
|
||||||
}
|
}
|
||||||
if(univ.town.is_quickfire(where_check.x,where_check.y)) {
|
if(univ.town.is_quickfire(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Quickfire! ");
|
add_string_to_buf(" Quickfire! ");
|
||||||
r1 = get_ran(2,1,8);
|
r1 = get_ran(2,1,8);
|
||||||
// if(mode < 2)
|
|
||||||
// hit_party(r1,1);
|
|
||||||
if(mode == eSpecCtx::COMBAT_MOVE)
|
if(mode == eSpecCtx::COMBAT_MOVE)
|
||||||
damage_pc(i_pc,r1,eDamageType::FIRE,eRace::UNKNOWN,0);
|
damage_pc(i_pc,r1,eDamageType::FIRE,eRace::UNKNOWN,0);
|
||||||
if(overall_mode < MODE_COMBAT)
|
|
||||||
boom_space(univ.party.p_loc,overall_mode,0,r1,5);
|
|
||||||
}
|
}
|
||||||
if(univ.town.is_scloud(where_check.x,where_check.y)) {
|
if(univ.town.is_scloud(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Stinking cloud! ");
|
add_string_to_buf(" Stinking cloud! ");
|
||||||
if(mode != eSpecCtx::COMBAT_MOVE) {
|
univ.party[current_pc].curse(get_ran(1,2,3));
|
||||||
for(i = 0; i < 6; i++) {
|
|
||||||
r1 = get_ran(1,2,3);
|
|
||||||
univ.party[i].curse(r1);
|
|
||||||
}
|
|
||||||
put_pc_screen();
|
|
||||||
}
|
|
||||||
else univ.party[current_pc].curse(get_ran(1,2,3));
|
|
||||||
}
|
}
|
||||||
if(univ.town.is_sleep_cloud(where_check.x,where_check.y)) {
|
if(univ.town.is_sleep_cloud(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Sleep cloud! ");
|
add_string_to_buf(" Sleep cloud! ");
|
||||||
if(mode != eSpecCtx::COMBAT_MOVE) {
|
univ.party[current_pc].sleep(eStatus::ASLEEP,3,0);
|
||||||
univ.party.sleep(eStatus::ASLEEP,3,0);
|
|
||||||
}
|
|
||||||
else univ.party[current_pc].sleep(eStatus::ASLEEP,3,0);
|
|
||||||
put_pc_screen();
|
put_pc_screen();
|
||||||
}
|
}
|
||||||
if(univ.town.is_fire_barr(where_check.x,where_check.y)) {
|
if(univ.town.is_fire_barr(where_check.x,where_check.y)) {
|
||||||
add_string_to_buf(" Magic barrier! ");
|
add_string_to_buf(" Magic barrier! ");
|
||||||
r1 = get_ran(2,1,10);
|
r1 = get_ran(2,1,10);
|
||||||
if(mode != eSpecCtx::COMBAT_MOVE)
|
if(is_town()) fast_bang = 1;
|
||||||
hit_party(r1,eDamageType::MAGIC);
|
|
||||||
if(mode == eSpecCtx::COMBAT_MOVE)
|
if(mode == eSpecCtx::COMBAT_MOVE)
|
||||||
damage_pc(i_pc,r1,eDamageType::MAGIC,eRace::UNKNOWN,0);
|
damage_pc(i_pc,r1,eDamageType::MAGIC,eRace::UNKNOWN,0);
|
||||||
if(overall_mode < MODE_COMBAT)
|
else hit_party(r1,eDamageType::MAGIC,0);
|
||||||
boom_space(univ.party.p_loc,overall_mode,1,r1,12);
|
fast_bang = 0;
|
||||||
}
|
}
|
||||||
if(univ.town.is_force_cage(where_check.x,where_check.y)) {
|
if(univ.town.is_force_cage(where_check.x,where_check.y)) {
|
||||||
if(which_pc.status[eStatus::FORCECAGE] == 0)
|
if(which_pc.status[eStatus::FORCECAGE] == 0)
|
||||||
add_string_to_buf(" Trapped in force cage!");
|
add_string_to_buf(" Trapped in force cage!");
|
||||||
which_pc.status[eStatus::FORCECAGE] = 8;
|
which_pc.status[eStatus::FORCECAGE] = 8;
|
||||||
} else which_pc.status[eStatus::FORCECAGE] = 0;
|
} else which_pc.status[eStatus::FORCECAGE] = 0;
|
||||||
fast_bang = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void use_spec_item(short item) {
|
void use_spec_item(short item) {
|
||||||
|
Reference in New Issue
Block a user