Implement the new string types

This commit is contained in:
2025-02-22 14:56:40 -05:00
committed by Celtic Minstrel
parent 7306c65d5a
commit 8ac6caa8c5
6 changed files with 52 additions and 9 deletions

View File

@@ -6,10 +6,10 @@ Second part of message
Unused
Unused
Unused
0 - only living, 1 - any, 2 - all, 3 - dead, 4 - inv. space
Restrictions
Special if Cancel button pressed
Unused
0 - player choice, 1 - random, 2 - specific
Selection Mode
0..6 - PC, 100+ - monster (if above = 2)
Unused
Special to Jump To
@@ -247,9 +247,9 @@ Unused
Which item
Which enchantment (if weapon)
Number of charges (-1 = default)
ID? (-1 - normal, 0 - no, 1 - yes, 2 - full)
Cursed? (-1 - default, 0 - no, 1 - yes)
Equip? (-1 - no, 0 - soft, 1 - try, 2 - force)
Identified?
Cursed?
Equip?
Special to Jump To
--------------------

View File

@@ -514,7 +514,7 @@ Stuff Done Flag Part B
Unused
Unused
Unused
0 - SDF, 1 - extra1 values, 2 - monster hp/mp
Specify what to print
Unused
Number of monster, or value to print
Value to print (could be a pointer)

View File

@@ -463,7 +463,7 @@ Unused
Scenario string containing prompt text
Minimum allowed response
Maximum allowed response
Comparison Mode (0 - in range, 1 - not in range, 2 - simple)
Comparison Mode
If tests 1 and 2 both pass, call this special ...
Range lower bound (or value to compare to)
Range upper bound (or comparison method -2 .. 2)

View File

@@ -555,7 +555,7 @@ Y Coordinate of pattern center
Which spell pattern? (-1 for targeted pattern)
Which damage type? (0..8)
How many dice? (calculated in d6's)
0 - sequential simple booms, 1 - simultaneous animated booms
Boom type
Special to Jump To
--------------------
@@ -587,7 +587,7 @@ Unused
X coordinate, or which creature
Y coordinate, or -1 for creature
Unused
0 - Align top, 1 - align centre
Vertical Alignment
Delay
Unused
Special to Jump To

View File

@@ -640,6 +640,9 @@ node_function_t::node_function_t(eStrType str)
case STRT_CMP: adjust = 2; break;
case STRT_ACCUM: adjust = 1; break;
case STRT_STATUS: adjust = 1; break;
case STRT_ID_MODE: adjust = 1; break;
case STRT_EQUIP_MODE: adjust = 1; break;
case STRT_CURSE_MODE: adjust = 1; break;
default: break;
}
}

View File

@@ -445,6 +445,36 @@ short choose_text(eStrType list, unsigned short cur_choice, cDialog* parent, std
case STRT_POS_MODE:
strings = {"Absolute Position", "Move Southeast", "Move Southwest", "Move Northwest", "Move Northeast", "Nearest"};
break;
case STRT_DEBUG_PRINT:
strings = {"Print SDF", "Print Extra1 Values", "Print Monster HP/MP"};
break;
case STRT_TARG_TYPE:
strings = {"Only living characters", "Any character", "All characters simultaneously", "Dead characters only", "Characters with inventory space"};
break;
case STRT_TARG_MODE:
strings = {"Player can choose", "Select at random", "Specific character specified in Extra 2b"};
break;
case STRT_ID_MODE:
strings = {"Based on Item Lore", "Never Identify", "Always Identify", "Always Identify (and also reveal concealed ability)"};
break;
case STRT_CURSE_MODE:
strings = {"Depends on item", "Force uncursed", "Force cursed"};
break;
case STRT_EQUIP_MODE:
strings = {"Do not equip", "Soft Equip (only if no conflicting items equipped)", "Try to equip (unequipping any conflicting items first if possible)", "Force equip (forcibly unequipping even conflicting cursed items)"};
break;
case STRT_CMP_MODE:
strings = {"Check value in range", "Check value outside range", "Compare to single value"};
break;
case STRT_PATH:
strings = {"Straight Line", "Parabolic Arc"};
break;
case STRT_SPELL_PAT_MODE:
strings = {"Sequential Simple Booms", "Simultaneous Animated Booms"};
break;
case STRT_LABEL_ALIGN:
strings = {"Align Top", "Align Centre"};
break;
}
if(cur_choice < 0 || cur_choice >= strings.size())
cur_choice = -1;
@@ -891,6 +921,16 @@ static bool edit_spec_enc_value(cDialog& me, std::string item_hit, node_stack_t&
case STRT_QUEST: title = "Select a quest:"; break;
case STRT_QUEST_STATUS: title = "Select the quest's status:"; break;
case STRT_DIR: title = "Select the direction:"; break;
case STRT_DEBUG_PRINT: title = "Choose what to print:"; break;
case STRT_TARG_TYPE: title = "Select restrictions on chosen characters:"; break;
case STRT_TARG_MODE: title = "Choose how a target is selected:"; break;
case STRT_ID_MODE: title = "Choose how to identify the item:"; break;
case STRT_CURSE_MODE: title = "Choose whether the item should be cursed:"; break;
case STRT_EQUIP_MODE: title = "Choose whether and how to attempt to equip the item:"; break;
case STRT_CMP_MODE: title = "Choose the type of comparison to make:"; break;
case STRT_PATH: title = "What path shape?"; break;
case STRT_SPELL_PAT_MODE: title = "What kind of booms?"; break;
case STRT_LABEL_ALIGN: title = "Choose vertical alignment:"; break;
default: title = "Title not set for this string type!!!"; break;
}
store = choose_text(fcn.str_type, val + fcn.adjust, &me, title) - fcn.adjust;