-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3dea009
commit 7e149a4
Showing
5 changed files
with
290 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
// | ||
// special-general.cpp | ||
// BoE | ||
// | ||
// Created by Celtic Minstrel on 2025-02-18. | ||
// | ||
|
||
#include "special.hpp" | ||
|
||
using namespace node_builder_fields; | ||
|
||
auto S_NONE = node_builder_t(eSpecType::NONE).finish(); | ||
auto S_SETFLAG = node_builder_t(eSpecType::SET_SDF).sdf().msg().finish(); | ||
auto S_INCFLAG = node_builder_t(eSpecType::INC_SDF).sdf().msg().finish(); | ||
auto S_MSG = node_builder_t(eSpecType::DISPLAY_MSG).msg().finish(); | ||
auto S_SHOP = node_builder_t(eSpecType::ENTER_SHOP).msg1(eSpecPicker::MSG_SINGLE).ex1a(STRT_SHOP).ex1b(STRT_COST_ADJ).jump(eSpecPicker::NONE).finish(); | ||
auto S_MSG_SM = node_builder_t(eSpecType::DISPLAY_SM_MSG).msg().finish(); | ||
auto S_FLIPFLAG = node_builder_t(eSpecType::FLIP_SDF).sdf().msg().finish(); | ||
auto S_RANDFLAG = node_builder_t(eSpecType::SDF_RANDOM).sdf().msg().finish(); | ||
auto S_ADDFLAG = node_builder_t(eSpecType::SDF_ADD).sdf().msg().finish(); | ||
auto S_SUBFLAG = node_builder_t(eSpecType::SDF_DIFF).sdf().msg().finish(); | ||
auto S_STORY = node_builder_t(eSpecType::STORY_DIALOG).msg1(eSpecPicker::MSG_SINGLE).pic().finish(); | ||
auto S_PREVENT = node_builder_t(eSpecType::CANT_ENTER).msg().finish(); | ||
auto S_TIME = node_builder_t(eSpecType::CHANGE_TIME).msg().finish(); | ||
auto S_TIMER = node_builder_t(eSpecType::SCEN_TIMER_START).msg().ex1b(+eSpecPicker::NODE).finish(); | ||
auto S_SND = node_builder_t(eSpecType::PLAY_SOUND).ex1a(eSpecPicker::SOUND).finish(); | ||
auto S_HORSE_OWN = node_builder_t(eSpecType::CHANGE_HORSE_OWNER).msg().finish(); | ||
auto S_BOAT_OWN = node_builder_t(eSpecType::CHANGE_BOAT_OWNER).msg().finish(); | ||
auto S_TOWN_VIS = node_builder_t(eSpecType::SET_TOWN_VISIBILITY).msg().ex1a(STRT_TOWN).finish(); | ||
auto S_EVENT = node_builder_t(eSpecType::MAJOR_EVENT_OCCURRED).msg().finish(); | ||
auto S_FORCEGIVE = node_builder_t(eSpecType::FORCED_GIVE).msg().ex1a(STRT_ITEM).ex1b(eSpecPicker::NODE).finish(); | ||
auto S_BUYTYPE = node_builder_t(eSpecType::BUY_ITEMS_OF_TYPE).msg().ex1b(eSpecPicker::NODE).finish(); | ||
auto S_GLOBAL = node_builder_t(eSpecType::CALL_GLOBAL).jump(+eSpecPicker::NODE).finish(); | ||
auto S_SETROW = node_builder_t(eSpecType::SET_SDF_ROW).finish(); | ||
auto S_COPYFLAG = node_builder_t(eSpecType::COPY_SDF).sdf().sdf(EX1A, EX1B).finish(); | ||
auto S_PICTURE = node_builder_t(eSpecType::DISPLAY_PICTURE).msg1(eSpecPicker::MSG_SINGLE).ex1a(PIC_FULL).finish(); | ||
auto S_REST = node_builder_t(eSpecType::REST).msg().finish(); | ||
auto S_MSG_TITLE = node_builder_t(eSpecType::TITLED_MSG).msg().msg3(eSpecPicker::MSG_SINGLE).pic().finish(); | ||
auto S_END_SCEN = node_builder_t(eSpecType::END_SCENARIO).finish(); | ||
auto S_SETPTR = node_builder_t(eSpecType::SET_POINTER).sdf().finish(); | ||
auto S_CAMPFLAG = node_builder_t(eSpecType::SET_CAMP_FLAG).sdf().msg1(+eSpecPicker::MSG_SINGLE).finish(); | ||
auto S_DEBUG = node_builder_t(eSpecType::PRINT_NUMS).sdf().finish(); | ||
auto S_MULFLAG = node_builder_t(eSpecType::SDF_DIFF).sdf().msg().finish(); | ||
auto S_DIVFLAG = node_builder_t(eSpecType::SDF_DIFF).sdf().sdf(EX1C, EX2C).msg().finish(); | ||
auto S_EXPFLAG = node_builder_t(eSpecType::SDF_DIFF).sdf().msg().finish(); | ||
auto S_TERCHANGE = node_builder_t(eSpecType::CHANGE_TER).msg().loc(EX1A, EX1B).ex2a(STRT_TER).finish(); | ||
auto S_TERSWAP = node_builder_t(eSpecType::SWAP_TER).msg().loc(EX1A, EX1B).ex2a(STRT_TER).ex2b(STRT_TER).finish(); | ||
auto S_TERTRANS = node_builder_t(eSpecType::TRANS_TER).msg().loc(EX1A, EX1B).ex2a(STRT_TER).finish(); | ||
auto S_BUF_CLEAR = node_builder_t(eSpecType::CLEAR_BUF).finish(); | ||
auto S_BUF_ADDSTR = node_builder_t(eSpecType::APPEND_STRING).ex1a(eSpecPicker::MSG_SINGLE).finish(); | ||
auto S_BUF_ADDNUM = node_builder_t(eSpecType::APPEND_NUM).finish(); | ||
auto S_BUF_ADDMONST = node_builder_t(eSpecType::APPEND_MONST).ex1a(STRT_MONST).finish(); | ||
auto S_BUF_ADDITEM = node_builder_t(eSpecType::APPEND_ITEM).ex1a(STRT_ITEM).finish(); | ||
auto S_BUF_ADDTER = node_builder_t(eSpecType::APPEND_TER).ex1a(STRT_TER).finish(); | ||
auto S_PAUSE = node_builder_t(eSpecType::PAUSE).finish(); | ||
auto S_TALK = node_builder_t(eSpecType::START_TALK).pict(PIC_TALK).ex1b(STRT_MONST).jump(eSpecPicker::NONE).finish(); | ||
auto S_QUEST = node_builder_t(eSpecType::UPDATE_QUEST).msg().ex1a(STRT_QUEST).ex1b(STRT_QUEST_STATUS).finish(); | ||
auto S_BUF_SWAP = node_builder_t(eSpecType::SWAP_STR_BUF).msg().finish(); | ||
auto S_ALTER_SIGN = node_builder_t(eSpecType::STR_BUF_TO_SIGN).msg().finish(); | ||
|
||
auto dead_ends = {eSpecType::TOWN_GENERIC_STAIR, eSpecType::TOWN_STAIR}; | ||
// Key: | ||
// space - no button | ||
// m - Create/Edit button to edit message pair (covers msg1 and msg2 together) | ||
// M - Create/Edit button to edit single message | ||
// $ - As above, but always a scenario message | ||
// d - Create/Edit button to edit dialog message sequence (covers msg1 and msg2 together) | ||
// b - Choose button to select a button label | ||
// p - Choose button to select a picture (uses pictype for type) | ||
// ? - Choose button to select a picture type | ||
// s - Create/Edit button to edit special node | ||
// S - As above, but always a scenario node | ||
// x - Choose button to select a sound | ||
// X - Choose button to select a trap type | ||
// T - Choose button to select a town | ||
// i - Choose button to select an item | ||
// I - Choose button to select a special item | ||
// t - Choose button to select a terrain type | ||
// c - Choose button to select a monster type | ||
// C - Choose button to select a monster statistic | ||
// a - Choose button to select an alchemy recipe | ||
// A - Choose button to select a mage spell | ||
// P - Choose button to select a priest spell | ||
// k - Choose button to select a skill | ||
// K - As above, but add the special pseudo-skills for the if-statistic node | ||
// f - Choose button to select a field type | ||
// F - As above, but also include Dispel and Smash | ||
// q - Choose button to select a trait | ||
// Q - Choose button to select a species | ||
// = - Choose button to select a comparison method (<=, <, =, >, >=) | ||
// + - Choose button to select stat cumulation mode | ||
// * - Choose button to select a special node context | ||
// @ - Choose button to select a monster attitude | ||
// D - Choose button to select a damage type | ||
// ! - Choose button to select an explosion animation type | ||
// / - Choose button to select generic stairway text | ||
// : - Choose stairway trigger conditions | ||
// L - Choose button to select a town lighting type | ||
// & - Choose button to select a shop | ||
// % - Choose button to select shop cost adjustment | ||
// { - Choose button to select a spell pattern | ||
// } - As above, but allows you to select which version of the rotateable field | ||
// ^ - Choose button to select a positioning mode | ||
// e - Choose button to select a status effect | ||
// E - Choose button to select a party status effect | ||
// w - Choose button to select main party status effect | ||
// j - Choose button to select a quest | ||
// J - Choose button to select a quest status | ||
// < - Choose button to select a cardinal direction | ||
// ~ - Choose button to select a weapon enchantment | ||
// _ - Choose button to select a full sheet | ||
// 0..9 - Choose button to select a specific type of picture | ||
// (terrain, monster, dialog, talk, item, pc, field, boom, missile, status) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This seems wrong?