preview town node generic dialogs

This commit is contained in:
2025-08-26 14:28:53 -05:00
parent 06ca6969f5
commit 935a62d7f5
4 changed files with 24 additions and 18 deletions

View File

@@ -3812,12 +3812,6 @@ void ifthen_spec(const runtime_state& ctx) {
}
void townmode_spec(const runtime_state& ctx) {
static const char*const stairDlogs[8] = {
"basic-stair-up", "basic-stair-down",
"basic-slope-up", "basic-slope-down",
"slimy-stair-up", "slimy-stair-down",
"dark-slope-up", "dark-slope-down"
};
bool check_mess = true;
std::array<std::string, 6> strs;
short r1;

View File

@@ -67,26 +67,18 @@ namespace {
node_properties_t S_NUKE = node_builder_t(eSpecType::TOWN_NUKE_MONSTS)
.msg()
.ex1a(STRT_MONST);
// TODO Implement preview
node_properties_t S_LEVER_G = node_builder_t(eSpecType::TOWN_GENERIC_LEVER)
.ex1b(eSpecPicker::NODE)
.no_preview();
// TODO Implement preview
.ex1b(eSpecPicker::NODE);
node_properties_t S_PORTAL_G = node_builder_t(eSpecType::TOWN_GENERIC_PORTAL)
.loc(eSpecField::EX1A, eSpecField::EX1B, eLocType::ACTIVE_TOWN)
.no_preview();
// TODO Implement preview
.loc(eSpecField::EX1A, eSpecField::EX1B, eLocType::ACTIVE_TOWN);
node_properties_t S_BUTTON_G = node_builder_t(eSpecType::TOWN_GENERIC_BUTTON)
.ex1b(eSpecPicker::NODE)
.no_preview();
// TODO implement preview
.ex1b(eSpecPicker::NODE);
node_properties_t S_STAIR_G = node_builder_t(eSpecType::TOWN_GENERIC_STAIR)
.loc(eSpecField::EX1A, eSpecField::EX1B, eLocType::SPECIFIED_TOWN, eSpecField::EX2A)
.ex2a(STRT_TOWN)
.ex2b(STRT_STAIR)
.ex2c(STRT_STAIR_MODE)
.jump(eSpecPicker::NONE)
.no_preview();
.jump(eSpecPicker::NONE);
// TODO implement preview
node_properties_t S_LEVER = node_builder_t(eSpecType::TOWN_LEVER)
.msg1(eSpecPicker::MSG_SEQUENCE)

View File

@@ -172,6 +172,13 @@ enum eStrType {
STRT_LABEL_ALIGN, STRT_HORSE, STRT_BOAT,
};
const char*const stairDlogs[8] = {
"basic-stair-up", "basic-stair-down",
"basic-slope-up", "basic-slope-down",
"slimy-stair-up", "slimy-stair-down",
"dark-slope-up", "dark-slope-down"
};
enum class eSpecPicker {
NONE,
MSG_SINGLE, MSG_PAIR, MSG_SEQUENCE, MSG_SEQUENCE_VAR,

View File

@@ -880,6 +880,19 @@ static bool preview_spec_enc_dlog(cDialog& me, std::string, cSpecial& special, s
cDialog::defaultBackground = cDialog::BG_DARK;
switch(special.type){
case eSpecType::TOWN_GENERIC_STAIR:
if(special.ex2b < 8)
cChoiceDlog(stairDlogs[max(0,special.ex2b)],{"climb","leave"}).show();
break;
case eSpecType::TOWN_GENERIC_BUTTON:
cChoiceDlog("basic-button",{"yes","no"}).show();
break;
case eSpecType::TOWN_GENERIC_PORTAL:
cChoiceDlog("basic-portal",{"yes","no"}).show();
break;
case eSpecType::TOWN_GENERIC_LEVER:
cChoiceDlog("basic-lever",{"pull", "leave"}).show();
break;
case eSpecType::IF_NUM_RESPONSE:{
int min = special.m2;
int max = special.m3;