Several new special nodes
- A set of nodes for building complex strings in a string buffer; to reference the string buffer anywhere a string is expected, you can use -8 as the string number - A node to pause the action for a specified period of time - Nodes to alter traits, action points (only in combat), and PC/monster names - Node to create a new level 1 PC with a specified race, name, graphic, hp, sp, basic stats; custom graphics supported too - Nodes to test for deadness, spells, alchemy, and status effects - Node to centre the view on an arbitrary space - Node to lift the "fog of war", which currently means the unseen and light masks (which can actually be disabled in preferences anyway) - Node to edit maps (ie, specify which areas are explored) Changes to existing nodes: - All the rectangle nodes that affect terrain now work outdoors. - Play sound node now has an asynchronous option - Fix min and max modes being swapped in the check statistic node - Select PC now allows restricting to dead PCs or to PCs with free inventory space - Select PC now calls the "on cancel" node if a non-interactive selection fails - Affect deadness node now allows: setting/clearing the "fled outdoor combat" flag; setting/clearing the "absent" flag used for splitting the party; (un)deleting a PC - If context node can now check if the party is in a specific boat/horse as opposed to any boat/horse
This commit is contained in:
@@ -269,6 +269,9 @@ short choose_text(eStrType list, unsigned short cur_choice, cDialog* parent, con
|
||||
case STRT_COST_ADJ:
|
||||
strings = {"Extremely Cheap", "Very Reasonable", "Pretty Average", "Somewhat Pricey", "Expensive", "Exorbitant", "Utterly Ridiculous"};
|
||||
break;
|
||||
case STRT_STATUS:
|
||||
strings = {"Alive", "Dead", "Dust", "Petrified", "Fled Outdoor Combat", "Absent", "Deleted"};
|
||||
break;
|
||||
}
|
||||
if(cur_choice < 0 || cur_choice >= strings.size())
|
||||
cur_choice = 0;
|
||||
@@ -629,6 +632,10 @@ static pic_num_t choose_status_effect(short cur, bool party, cDialog* parent) {
|
||||
}
|
||||
|
||||
static bool edit_spec_enc_value(cDialog& me, std::string item_hit, node_stack_t& edit_stack) {
|
||||
static const ePicType pics[10] = {
|
||||
PIC_TER, PIC_MONST, PIC_DLOG, PIC_TALK, PIC_ITEM,
|
||||
PIC_PC, PIC_FIELD, PIC_BOOM, PIC_MISSILE, PIC_STATUS
|
||||
};
|
||||
std::string field = item_hit.substr(0, item_hit.find_first_of('-'));
|
||||
char btn;
|
||||
eSpecType type = edit_stack.top().node.type;
|
||||
@@ -739,6 +746,13 @@ static bool edit_spec_enc_value(cDialog& me, std::string item_hit, node_stack_t&
|
||||
case '%': strt = STRT_COST_ADJ; title = "What cost adjust?"; break;
|
||||
case '*': strt = STRT_CONTEXT; title = "What context?"; break;
|
||||
case ':': strt = STRT_STAIR_MODE; title = "Select trigger limitations:"; break;
|
||||
case 'w': strt = STRT_STATUS; title = "Select status:"; str_adj = 1; break;
|
||||
case '0': case '1': case '2': case '3': case '4':
|
||||
case '5': case '6': case '7': case '8': case '9':
|
||||
choose_string = false;
|
||||
store = choose_graphic(val, pics[btn - '0'], &me);
|
||||
if(store < 0) store = val;
|
||||
break;
|
||||
case '#':
|
||||
choose_string = false;
|
||||
store = val;
|
||||
|
@@ -10,6 +10,7 @@ enum eStrType {
|
||||
STRT_PICT, STRT_SND, STRT_CMP, STRT_ACCUM, STRT_TRAP,
|
||||
STRT_ATTITUDE, STRT_STAIR, STRT_LIGHT, STRT_CONTEXT,
|
||||
STRT_SHOP, STRT_COST_ADJ, STRT_STAIR_MODE, STRT_TALK_NODE,
|
||||
STRT_STATUS,
|
||||
};
|
||||
|
||||
bool cre(short val,short min,short max,const char *text1,const char *text2,cDialog* parent) ;
|
||||
|
Reference in New Issue
Block a user