Files
oboe/osx/boe.party.h
Celtic Minstrel 4b96f579b7 Embark on an epic journey to make both the game and the two editors load the entire scenario into memory.
Some other tweaks and fixes got pulled in along the way.
Details:
- Improved const-correctness
- The scenario is now part of the universe, so now there's no global scenario object in the game or the PC editor. (Of course, the scenario editor has no universe, so it still has a global scenario object.)
- Towns and outdoors now store a reference to the scenario; the party, current town, and current outdoors store a reference to the universe. Altogether this means that the data module has no need for global scenario or universe objects.
- The fileio routines now take a scenario or universe reference as a parameter, so they don't need the global scenario or universe objects either.
- cCurOut now has an arrow operator for accessing the current outdoor section, instead of a 2x2 subset of the outdoors; this replaces using i_w_c to index the 2x2 subset. (And it's much less verbose!)
- cCurTown no longer stores a pointer to the town record, since it can simply access it through the universe instance which it stores a reference to.
- Tweaked how the monster roster menu works (it now caches up to 60 monsters)
- The operator= functions that convert from legacy to new scenario/save format are now ordinary functions rather than operators.
- The bizarre use of assigning a cCreature to itself to populate certain fields has been nuked.
- When at the corner of an outdoor sector, the scenario editor now shows the cornermost terrain in the diagonally adjacent sector.
- There was a missing check to prevent horses entering dangerous terrain (eg, swamp) while in town.
- Fix cancelling load party dialog causing a party to appear
2014-12-22 00:20:37 -05:00

73 lines
2.9 KiB
C++

#ifndef BOE_GAME_PARTY_H
#define BOE_GAME_PARTY_H
class cDialog;
void make_boats();
bool create_pc(short spot,cDialog* parent_num);
bool take_sp(short pc_num,short amt);
void heal_pc(short pc_num,short amt);
void heal_party(short amt);
void cure_pc(short pc_num,short amt);
void cure_party(short amt);
void curse_pc(short which_pc,short how_much);
void dumbfound_pc(short which_pc,short how_much);
void disease_pc(short which_pc,short how_much);
void sleep_pc(short which_pc,short how_much,eStatus what_type,short adjust);
void slow_pc(short which_pc,short how_much);
void web_pc(short which_pc,short how_much);
void increase_light(short amt);
void restore_sp_pc(short pc_num,short amt);
void restore_sp_party(short amt);
void award_party_xp(short amt);
void award_xp(short pc_num,short amt);
void drain_pc(short which_pc,short how_much);
short check_party_stat(eSkill which_stat, short mode);
bool poison_weapon( short pc_num, short how_much,short safe);
bool is_weapon(short pc_num,short item);
void cast_spell(eSkill type);
bool repeat_cast_ok(eSkill type);
void give_party_spell(short which);
void do_mage_spell(short pc_num,eSpell spell_num);
void do_priest_spell(short pc_num,eSpell spell_num);
void cast_town_spell(location where);
bool cast_spell_on_space(location where, eSpell spell);
void crumble_wall(location where);
void do_mindduel(short pc_num,cCreature *monst);
void dispel_fields(short i,short j,short mode);
bool pc_can_cast_spell(short pc_num,eSpell spell_num);
bool pc_can_cast_spell(short pc_num,eSkill spell_num);
eSpell pick_spell(short pc_num,eSkill type);
short stat_adj(short pc_num,eSkill which);
void start_town_targeting(eSpell s_num,short who_c,bool freebie = false);
void do_alchemy();
short alch_choice(short pc_num);
bool pick_pc_graphic(short pc_num,short mode,cDialog* parent_num);
bool pick_pc_name(short pc_num,cDialog* parent) ;
m_num_t pick_trapped_monst() ;
bool flying() ;
void acid_pc(short which_pc,short how_much);
void poison_pc(short which_pc,short how_much);
void poison_party(short how_much);
void affect_pc(short which_pc,eStatus type,short how_much);
void affect_party(eStatus type,short how_much);
void void_sanctuary(short pc_num);
void hit_party(short how_much,eDamageType damage_type);
void slay_party(eMainStatus mode);
bool damage_pc(short which_pc,short how_much,eDamageType damage_type,eRace type_of_attacker, short sound_type);
void kill_pc(short which_pc,eMainStatus type);
void petrify_pc(short which_pc, short strength);
void set_pc_moves();
void take_ap(short num);
short trait_present(eTrait which_trait);
short race_present(eRace which_race);
short wilderness_lore_present();
void print_spell_cast(eSpell spell,eSkill which);
void put_party_in_scen(std::string scen_name);
short party_size(bool only_living);
// This is defined in pc.editors.cpp since it is also used by the character editor
bool spend_xp(short pc_num, short mode, cDialog* parent);
#endif