Skip to content

Commit

Permalink
Rework the special node button dictionary (#607)
Browse files Browse the repository at this point in the history
  • Loading branch information
CelticMinstrel committed Feb 23, 2025
1 parent b2cac23 commit 357e9e3
Show file tree
Hide file tree
Showing 15 changed files with 992 additions and 297 deletions.
7 changes: 7 additions & 0 deletions proj/vs2013/Common/Common.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,13 @@
<ClCompile Include="..\..\..\src\scenario\scenario.cpp" />
<ClCompile Include="..\..\..\src\scenario\shop.cpp" />
<ClCompile Include="..\..\..\src\scenario\special.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-affect.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-condition.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-general.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-oneshot.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-outdoor.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-rect.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-town.cpp" />
<ClCompile Include="..\..\..\src\scenario\talking.cpp" />
<ClCompile Include="..\..\..\src\scenario\terrain.cpp" />
<ClCompile Include="..\..\..\src\scenario\town.cpp" />
Expand Down
21 changes: 21 additions & 0 deletions proj/vs2013/Common/Common.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -647,6 +647,27 @@
<ClCompile Include="..\..\..\src\scenario\special.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-affect.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-condition.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-general.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-oneshot.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-outdoor.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-rect.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-town.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\shop.cpp">
<Filter>Scenario</Filter>
</ClCompile>
Expand Down
7 changes: 7 additions & 0 deletions proj/vs2017/Common/Common.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,13 @@
<ClCompile Include="..\..\..\src\scenario\scenario.cpp" />
<ClCompile Include="..\..\..\src\scenario\shop.cpp" />
<ClCompile Include="..\..\..\src\scenario\special.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-affect.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-condition.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-general.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-oneshot.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-outdoor.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-rect.cpp" />
<ClCompile Include="..\..\..\src\scenario\special-town.cpp" />
<ClCompile Include="..\..\..\src\scenario\talking.cpp" />
<ClCompile Include="..\..\..\src\scenario\terrain.cpp" />
<ClCompile Include="..\..\..\src\scenario\town.cpp" />
Expand Down
21 changes: 21 additions & 0 deletions proj/vs2017/Common/Common.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,27 @@
<ClCompile Include="..\..\..\src\scenario\special.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-affect.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-condition.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-general.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-oneshot.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-outdoor.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-rect.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\special-town.cpp">
<Filter>Scenario</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\scenario\talking.cpp">
<Filter>Scenario</Filter>
</ClCompile>
Expand Down
28 changes: 28 additions & 0 deletions proj/xc12/BoE.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,13 @@
919B13A21BBCDF14009905A4 /* monst_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A11BBCDE18009905A4 /* monst_legacy.cpp */; };
919B13A41BBD8854009905A4 /* item_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A31BBD8849009905A4 /* item_legacy.cpp */; };
919B13A61BBDE986009905A4 /* spec_legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919B13A51BBDE985009905A4 /* spec_legacy.cpp */; };
919BE86B2D658BC6000C64C6 /* special-general.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE86A2D658BBC000C64C6 /* special-general.cpp */; };
919BE8722D66CD1C000C64C6 /* special-oneshot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE8712D66CD1C000C64C6 /* special-oneshot.cpp */; };
919BE88D2D66F6E3000C64C6 /* special-affect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE88C2D66F6E2000C64C6 /* special-affect.cpp */; };
919BE8942D676567000C64C6 /* special-condition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE8932D676567000C64C6 /* special-condition.cpp */; };
919BE8A02D676DDE000C64C6 /* special-town.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE89F2D676DDE000C64C6 /* special-town.cpp */; };
919BE8AC2D677699000C64C6 /* special-rect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE8AB2D677699000C64C6 /* special-rect.cpp */; };
919BE8B32D6776A8000C64C6 /* special-outdoor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 919BE8B22D6776A8000C64C6 /* special-outdoor.cpp */; };
919CC2481B3772F300273FDA /* population.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91AC620A0FA2853700EEAE67 /* population.cpp */; };
919CC2491B3772FB00273FDA /* creature.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 914698FE1A747C4500F20F5E /* creature.cpp */; };
919CC24B1B37730300273FDA /* item.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91279D3D0F9D1D6A007B0D52 /* item.cpp */; };
Expand Down Expand Up @@ -766,6 +773,13 @@
919B13A51BBDE985009905A4 /* spec_legacy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spec_legacy.cpp; sourceTree = "<group>"; };
919B13A71BBE297B009905A4 /* scrollpane.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = scrollpane.hpp; sourceTree = "<group>"; };
919B13A81BBE2B54009905A4 /* scrollpane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scrollpane.cpp; sourceTree = "<group>"; };
919BE86A2D658BBC000C64C6 /* special-general.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-general.cpp"; sourceTree = "<group>"; };
919BE8712D66CD1C000C64C6 /* special-oneshot.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-oneshot.cpp"; sourceTree = "<group>"; };
919BE88C2D66F6E2000C64C6 /* special-affect.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-affect.cpp"; sourceTree = "<group>"; wrapsLines = 1; };
919BE8932D676567000C64C6 /* special-condition.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-condition.cpp"; sourceTree = "<group>"; };
919BE89F2D676DDE000C64C6 /* special-town.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-town.cpp"; sourceTree = "<group>"; };
919BE8AB2D677699000C64C6 /* special-rect.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-rect.cpp"; sourceTree = "<group>"; };
919BE8B22D6776A8000C64C6 /* special-outdoor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "special-outdoor.cpp"; sourceTree = "<group>"; };
919DDBFA19006CC9003E7FED /* libboost_filesystem-mt.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libboost_filesystem-mt.dylib"; path = "/opt/local/libexec/boost/1.76/lib/libboost_filesystem-mt.dylib"; sourceTree = "<absolute>"; };
919DDBFB19006CC9003E7FED /* libboost_system-mt.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libboost_system-mt.dylib"; path = "/opt/local/libexec/boost/1.76/lib/libboost_system-mt.dylib"; sourceTree = "<absolute>"; };
919DDC091900750D003E7FED /* freetype.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = freetype.framework; path = /Library/Frameworks/freetype.framework; sourceTree = "<absolute>"; };
Expand Down Expand Up @@ -1248,6 +1262,13 @@
91279CC10F9D19DA007B0D52 /* monster.cpp */,
91E5C79D0F9F60FA00C21460 /* outdoors.cpp */,
91279C580F9D1253007B0D52 /* scenario.cpp */,
919BE88C2D66F6E2000C64C6 /* special-affect.cpp */,
919BE8932D676567000C64C6 /* special-condition.cpp */,
919BE86A2D658BBC000C64C6 /* special-general.cpp */,
919BE8712D66CD1C000C64C6 /* special-oneshot.cpp */,
919BE8B22D6776A8000C64C6 /* special-outdoor.cpp */,
919BE8AB2D677699000C64C6 /* special-rect.cpp */,
919BE89F2D676DDE000C64C6 /* special-town.cpp */,
91FDB5791A4E774E00DE5983 /* shop.cpp */,
91279CC60F9D1A02007B0D52 /* special.cpp */,
91E5C7B70F9F619D00C21460 /* talking.cpp */,
Expand Down Expand Up @@ -2068,6 +2089,7 @@
files = (
919CC24B1B37730300273FDA /* item.cpp in Sources */,
919CC24D1B37730E00273FDA /* location.cpp in Sources */,
919BE8722D66CD1C000C64C6 /* special-oneshot.cpp in Sources */,
919CC24E1B37731400273FDA /* monster.cpp in Sources */,
919CC24F1B37731800273FDA /* outdoors.cpp in Sources */,
919CC2531B37732C00273FDA /* scenario.cpp in Sources */,
Expand All @@ -2079,6 +2101,7 @@
919CC25A1B37735100273FDA /* terrain.cpp in Sources */,
919CC25C1B37735C00273FDA /* town.cpp in Sources */,
919CC25F1B37736E00273FDA /* vehicle.cpp in Sources */,
919BE88D2D66F6E3000C64C6 /* special-affect.cpp in Sources */,
919CC2601B37737200273FDA /* estreams.cpp in Sources */,
919CC2611B37738100273FDA /* gzstream.cpp in Sources */,
919CC2621B37738A00273FDA /* ticpp.cpp in Sources */,
Expand All @@ -2099,6 +2122,7 @@
415EEEB02D5534A500B47408 /* prefs.cpp in Sources */,
919CC2701B3773EC00273FDA /* scrollbar.cpp in Sources */,
919CC2711B3773F300273FDA /* cursors.mac.mm in Sources */,
919BE86B2D658BC6000C64C6 /* special-general.cpp in Sources */,
919CC2721B3773F800273FDA /* fileio.cpp in Sources */,
919CC2741B37740200273FDA /* fileio_scen.cpp in Sources */,
919CC2751B37740A00273FDA /* render_image.cpp in Sources */,
Expand All @@ -2108,6 +2132,7 @@
919CC2791B37742200273FDA /* prefs.mac.mm in Sources */,
919CC27A1B37742800273FDA /* qdpict.mac.cpp in Sources */,
919CC27B1B37742D00273FDA /* sounds.cpp in Sources */,
919BE8AC2D677699000C64C6 /* special-rect.cpp in Sources */,
919CC27C1B37743200273FDA /* special_parse.cpp in Sources */,
919CC27D1B37743700273FDA /* tarball.cpp in Sources */,
919CC27E1B37743B00273FDA /* undo.cpp in Sources */,
Expand All @@ -2116,9 +2141,11 @@
915473CF2C800AB000EB1C94 /* enchant.cpp in Sources */,
915AF9E81BBF8B5C008AEF49 /* scrollpane.cpp in Sources */,
91E128E71BC1E6DD00C8BE1D /* basicbtns.cpp in Sources */,
919BE8942D676567000C64C6 /* special-condition.cpp in Sources */,
91E128ED1BC2076B00C8BE1D /* 3choice.cpp in Sources */,
91E128EE1BC2076B00C8BE1D /* choicedlog.cpp in Sources */,
9143044A2970EDC1003A3967 /* keymods.cpp in Sources */,
919BE8B32D6776A8000C64C6 /* special-outdoor.cpp in Sources */,
91E128EF1BC2076B00C8BE1D /* pictchoice.cpp in Sources */,
91E128F01BC2076B00C8BE1D /* strchoice.cpp in Sources */,
91E128F11BC2076B00C8BE1D /* strdlog.cpp in Sources */,
Expand All @@ -2128,6 +2155,7 @@
91A2480E2969CFD200B8D90F /* res_dialog.cpp in Sources */,
91CE24921EA12ABD005BDCE4 /* gfxsheets.cpp in Sources */,
91CE24931EA12AC9005BDCE4 /* tiling.cpp in Sources */,
919BE8A02D676DDE000C64C6 /* special-town.cpp in Sources */,
91EC1F0423DDFF9D00271891 /* res_cursor.cpp in Sources */,
91EC1F0523DDFF9D00271891 /* res_font.cpp in Sources */,
91EC1F0623DDFF9D00271891 /* res_image.cpp in Sources */,
Expand Down
93 changes: 93 additions & 0 deletions src/scenario/special-affect.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
//
// special-affect.cpp
// Common
//
// Created by Celtic Minstrel on 2025-02-20.
//

#include "special.hpp"

// Note: If adding a new node type below, be sure to adjust the end point here too.
node_category_info_t CAT_AFFECT{eSpecType::SELECT_TARGET, eSpecType::UNSTORE_PC};

namespace {
node_properties_t S_SELECT = node_builder_t(eSpecType::SELECT_TARGET)
.msg();
node_properties_t S_DAMAGE = node_builder_t(eSpecType::DAMAGE)
.msg()
.ex2b(eSpecPicker::DAMAGE_TYPE)
.ex2c(eSpecPicker::SOUND);
node_properties_t S_HEALTH = node_builder_t(eSpecType::AFFECT_HP)
.msg();
node_properties_t S_MANA = node_builder_t(eSpecType::AFFECT_SP)
.msg();
node_properties_t S_EXP = node_builder_t(eSpecType::AFFECT_XP)
.msg();
node_properties_t S_SKILLPT = node_builder_t(eSpecType::AFFECT_SKILL_PTS)
.msg();
node_properties_t S_KILL = node_builder_t(eSpecType::AFFECT_DEADNESS)
.msg()
.ex1a(STRT_STATUS);
node_properties_t S_STATUS = node_builder_t(eSpecType::AFFECT_STATUS)
.msg()
.ex1c(eSpecPicker::STATUS);
node_properties_t S_TRAIT = node_builder_t(eSpecType::AFFECT_TRAITS)
.msg()
.ex1a(STRT_TRAIT);
node_properties_t S_ACTIONS = node_builder_t(eSpecType::AFFECT_AP)
.msg();
node_properties_t S_NAME = node_builder_t(eSpecType::AFFECT_NAME)
.msg()
.msg3(eSpecPicker::MSG_SINGLE);
node_properties_t S_LEVEL = node_builder_t(eSpecType::AFFECT_LEVEL)
.msg();
node_properties_t S_MORALE = node_builder_t(eSpecType::AFFECT_MORALE)
.msg();
node_properties_t S_CRYSTAL = node_builder_t(eSpecType::AFFECT_SOUL_CRYSTAL)
.msg();
node_properties_t S_EQUIP = node_builder_t(eSpecType::GIVE_ITEM)
.msg()
.pict(eSpecPicker::NODE)
.ex1a(STRT_ITEM)
.ex1b(STRT_ENCHANT);
node_properties_t S_TARGET = node_builder_t(eSpecType::AFFECT_MONST_TARG)
.msg();
node_properties_t S_ATTACK = node_builder_t(eSpecType::AFFECT_MONST_ATT)
.msg();
node_properties_t S_STAT_M = node_builder_t(eSpecType::AFFECT_MONST_STAT)
.msg()
.ex2a(STRT_MONST_STAT);
node_properties_t S_STAT_P = node_builder_t(eSpecType::AFFECT_STAT)
.msg()
.ex2a(STRT_SKILL);
node_properties_t S_MAGE = node_builder_t(eSpecType::AFFECT_MAGE_SPELL)
.msg()
.ex1a(STRT_MAGE);
node_properties_t S_PRIEST = node_builder_t(eSpecType::AFFECT_PRIEST_SPELL)
.msg()
.ex1a(STRT_PRIEST);
node_properties_t S_GOLD = node_builder_t(eSpecType::AFFECT_GOLD)
.msg();
node_properties_t S_FOOD = node_builder_t(eSpecType::AFFECT_FOOD)
.msg();
node_properties_t S_ALCHEMY = node_builder_t(eSpecType::AFFECT_ALCHEMY)
.msg()
.ex1a(STRT_ALCHEMY);
node_properties_t S_STATUS_PARTY = node_builder_t(eSpecType::AFFECT_PARTY_STATUS)
.msg()
.ex1c(eSpecPicker::STATUS_PARTY);
node_properties_t S_NEWPC = node_builder_t(eSpecType::CREATE_NEW_PC)
.sdf()
.msg()
.msg3(eSpecPicker::MSG_SINGLE)
.pict(PIC_PC)
.ptyp(eSpecPicker::NODE)
.ex1c(STRT_RACE);
node_properties_t S_STOREPC = node_builder_t(eSpecType::STORE_PC)
.sdf()
.msg();
node_properties_t S_UNSTOREPC = node_builder_t(eSpecType::UNSTORE_PC)
.sdf()
.msg()
.ex1b(eSpecPicker::NODE);
}
112 changes: 112 additions & 0 deletions src/scenario/special-condition.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
//
// special-condition.cpp
// Common
//
// Created by Celtic Minstrel on 2025-02-20.
//

#include "special.hpp"

// Note: If adding a new node type below, be sure to adjust the end point here too.
node_category_info_t CAT_COND{eSpecType::IF_SDF, eSpecType::IF_QUEST};

namespace {
node_properties_t S_SDF = node_builder_t(eSpecType::IF_SDF)
.sdf()
.ex1b(eSpecPicker::NODE)
.ex2b(eSpecPicker::NODE);
node_properties_t S_TOWN = node_builder_t(eSpecType::IF_TOWN_NUM)
.ex1a(STRT_TOWN)
.ex1b(eSpecPicker::NODE);
node_properties_t S_RANDOM = node_builder_t(eSpecType::IF_RANDOM)
.ex1b(eSpecPicker::NODE);
node_properties_t S_SPECITEM = node_builder_t(eSpecType::IF_HAVE_SPECIAL_ITEM)
.ex1a(STRT_SPEC_ITEM)
.ex1b(eSpecPicker::NODE);
node_properties_t S_SDFCMP = node_builder_t(eSpecType::IF_SDF_COMPARE)
.sdf()
.sdf(eSpecField::EX1A, eSpecField::EX1B)
.ex2b(eSpecPicker::NODE);
node_properties_t S_TERRAIN = node_builder_t(eSpecType::IF_TER_TYPE)
.loc(eSpecField::EX1A, eSpecField::EX1B)
.ex2a(STRT_TER)
.ex2b(eSpecPicker::NODE);
node_properties_t S_ALIVE = node_builder_t(eSpecType::IF_ALIVE)
.ex1a(STRT_STATUS)
.ex1b(eSpecPicker::NODE);
node_properties_t S_GOLD = node_builder_t(eSpecType::IF_HAS_GOLD)
.ex1b(eSpecPicker::NODE);
node_properties_t S_FOOD = node_builder_t(eSpecType::IF_HAS_FOOD)
.ex1b(eSpecPicker::NODE);
node_properties_t S_ITEM_THERE = node_builder_t(eSpecType::IF_ITEM_CLASS_ON_SPACE)
.loc(eSpecField::EX1A, eSpecField::EX1B)
.ex2b(eSpecPicker::NODE);
node_properties_t S_ITEM_OWNED = node_builder_t(eSpecType::IF_HAVE_ITEM_CLASS)
.ex1b(eSpecPicker::NODE);
node_properties_t S_ITEM_EQUIP = node_builder_t(eSpecType::IF_EQUIP_ITEM_CLASS)
.ex1b(eSpecPicker::NODE);
node_properties_t S_MAGE = node_builder_t(eSpecType::IF_MAGE_SPELL)
.ex1a(STRT_MAGE)
.ex1b(eSpecPicker::NODE);
node_properties_t S_PRIEST = node_builder_t(eSpecType::IF_PRIEST_SPELL)
.ex1a(STRT_PRIEST)
.ex1b(eSpecPicker::NODE);
node_properties_t S_ALCHEMY = node_builder_t(eSpecType::IF_RECIPE)
.ex1a(STRT_ALCHEMY)
.ex1b(eSpecPicker::NODE);
node_properties_t S_STATUS = node_builder_t(eSpecType::IF_STATUS)
.ex1a(eSpecPicker::STATUS)
.ex1b(eSpecPicker::NODE)
.ex2b(STRT_ACCUM)
.ex2c(STRT_CMP);
node_properties_t S_LOOK = node_builder_t(eSpecType::IF_LOOKING)
.ex1c(eSpecPicker::NODE);
node_properties_t S_DAY = node_builder_t(eSpecType::IF_DAY_REACHED)
.ex1b(eSpecPicker::NODE);
node_properties_t S_FIELDS = node_builder_t(eSpecType::IF_FIELDS)
.rect()
.msg1(eSpecPicker::FIELD)
.msg2(eSpecPicker::NODE);
node_properties_t S_PARTY_SIZE = node_builder_t(eSpecType::IF_PARTY_SIZE)
.ex1b(eSpecPicker::NODE);
node_properties_t S_EVENT = node_builder_t(eSpecType::IF_EVENT_OCCURRED)
.ex2b(eSpecPicker::NODE);
node_properties_t S_RACE = node_builder_t(eSpecType::IF_SPECIES)
.ex1a(STRT_RACE)
.ex1b(eSpecPicker::NODE)
.ex2b(STRT_CMP);
node_properties_t S_TRAIT = node_builder_t(eSpecType::IF_TRAIT)
.ex1a(STRT_TRAIT)
.ex1b(eSpecPicker::NODE)
.ex2b(STRT_CMP);
node_properties_t S_STAT = node_builder_t(eSpecType::IF_STATISTIC)
.ex1b(eSpecPicker::NODE)
.ex2a(+STRT_SKILL)
.ex2b(STRT_ACCUM);
node_properties_t S_TEXT = node_builder_t(eSpecType::IF_TEXT_RESPONSE)
.msg1(+eSpecPicker::MSG_SINGLE)
.ex1a(+eSpecPicker::MSG_SINGLE)
.ex1b(eSpecPicker::NODE)
.ex2a(+eSpecPicker::MSG_SINGLE)
.ex2b(eSpecPicker::NODE);
node_properties_t S_SDFEQ = node_builder_t(eSpecType::IF_SDF_EQ)
.sdf()
.ex1b(eSpecPicker::NODE);
node_properties_t S_CONTEXT = node_builder_t(eSpecType::IF_CONTEXT)
.ex1a(STRT_CONTEXT)
.ex1c(eSpecPicker::NODE);
node_properties_t S_NUM = node_builder_t(eSpecType::IF_NUM_RESPONSE)
.msg1(+eSpecPicker::MSG_SINGLE)
.ex1b(STRT_CMP)
.ex1c(eSpecPicker::NODE)
.ex2b(STRT_CMP)
.ex2c(eSpecPicker::NODE);
node_properties_t S_BOAT = node_builder_t(eSpecType::IF_IN_BOAT)
.ex1c(eSpecPicker::NODE);
node_properties_t S_HORSE = node_builder_t(eSpecType::IF_ON_HORSE)
.ex1c(eSpecPicker::NODE);
node_properties_t S_QUEST = node_builder_t(eSpecType::IF_QUEST)
.ex1a(STRT_QUEST)
.ex1b(STRT_QUEST_STATUS)
.ex1c(eSpecPicker::NODE);
}
Loading

0 comments on commit 357e9e3

Please sign in to comment.