Strictify special node type enum
This commit is contained in:
@@ -1812,7 +1812,7 @@ void sanctify_space(location where)
|
|||||||
|
|
||||||
for (i = 0; i < 50; i++)
|
for (i = 0; i < 50; i++)
|
||||||
if (where == univ.town->special_locs[i]) {
|
if (where == univ.town->special_locs[i]) {
|
||||||
if (univ.town->specials[univ.town->spec_id[i]].type == 24)
|
if(univ.town->specials[univ.town->spec_id[i]].type == eSpecType::SANCTIFY)
|
||||||
run_special(16,2,univ.town->spec_id[i],where,&s1,&s2,&s3);
|
run_special(16,2,univ.town->spec_id[i],where,&s1,&s2,&s3);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -541,154 +541,179 @@ enum eSpecContext {
|
|||||||
SPEC_SEE_MONST = 18,
|
SPEC_SEE_MONST = 18,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum eSpecNodeType {
|
enum class eSpecType {
|
||||||
SPEC_NULL = 0,
|
ERROR = -1, // A magic value used while processing nodes
|
||||||
SPEC_SET_SDF = 1,
|
NONE = 0,
|
||||||
SPEC_INC_SDF = 2,
|
SET_SDF = 1,
|
||||||
SPEC_DISPLAY_MSG = 3,
|
INC_SDF = 2,
|
||||||
SPEC_SECRET_PASSAGE = 4,
|
DISPLAY_MSG = 3,
|
||||||
SPEC_DISPLAY_SM_MSG = 5,
|
SECRET_PASSAGE = 4,
|
||||||
SPEC_FLIP_SDF = 6,
|
DISPLAY_SM_MSG = 5,
|
||||||
SPEC_OUT_BLOCK = 7,
|
FLIP_SDF = 6,
|
||||||
SPEC_TOWN_BLOCK = 8,
|
OUT_BLOCK = 7,
|
||||||
SPEC_FIGHT_BLOCK = 9,
|
TOWN_BLOCK = 8,
|
||||||
SPEC_LOOK_BLOCK = 10,
|
FIGHT_BLOCK = 9,
|
||||||
SPEC_CANT_ENTER = 11,
|
LOOK_BLOCK = 10,
|
||||||
SPEC_CHANGE_TIME = 12,
|
CANT_ENTER = 11,
|
||||||
SPEC_SCEN_TIMER_START = 13,
|
CHANGE_TIME = 12,
|
||||||
SPEC_PLAY_SOUND = 14,
|
SCEN_TIMER_START = 13,
|
||||||
SPEC_CHANGE_HORSE_OWNER = 15,
|
PLAY_SOUND = 14,
|
||||||
SPEC_CHANGE_BOAT_OWNER = 16,
|
CHANGE_HORSE_OWNER = 15,
|
||||||
SPEC_SET_TOWN_VISIBILITY = 17,
|
CHANGE_BOAT_OWNER = 16,
|
||||||
SPEC_MAJOR_EVENT_OCCURRED = 18,
|
SET_TOWN_VISIBILITY = 17,
|
||||||
SPEC_FORCED_GIVE = 19,
|
MAJOR_EVENT_OCCURRED = 18,
|
||||||
SPEC_BUY_ITEMS_OF_TYPE = 20,
|
FORCED_GIVE = 19,
|
||||||
SPEC_CALL_GLOBAL = 21,
|
BUY_ITEMS_OF_TYPE = 20,
|
||||||
SPEC_SET_SDF_ROW = 22,
|
CALL_GLOBAL = 21,
|
||||||
SPEC_COPY_SDF = 23,
|
SET_SDF_ROW = 22,
|
||||||
SPEC_SANCTIFY = 24,
|
COPY_SDF = 23,
|
||||||
SPEC_REST = 25,
|
SANCTIFY = 24,
|
||||||
SPEC_WANDERING_WILL_FIGHT = 26,
|
REST = 25,
|
||||||
SPEC_END_SCENARIO = 27,
|
WANDERING_WILL_FIGHT = 26,
|
||||||
SPEC_ONCE_GIVE_ITEM = 50,
|
END_SCENARIO = 27,
|
||||||
SPEC_ONCE_GIVE_SPEC_ITEM = 51,
|
ONCE_GIVE_ITEM = 50,
|
||||||
SPEC_ONCE_NULL = 52,
|
ONCE_GIVE_SPEC_ITEM = 51,
|
||||||
SPEC_ONCE_SET_SDF = 53,
|
ONCE_NULL = 52,
|
||||||
SPEC_ONCE_DISPLAY_MSG = 54,
|
ONCE_SET_SDF = 53,
|
||||||
SPEC_ONCE_DIALOG = 55,
|
ONCE_DISPLAY_MSG = 54,
|
||||||
SPEC_ONCE_DIALOG_TERRAIN = 56,
|
ONCE_DIALOG = 55,
|
||||||
SPEC_ONCE_DIALOG_MONSTER = 57,
|
ONCE_DIALOG_TERRAIN = 56,
|
||||||
SPEC_ONCE_GIVE_ITEM_DIALOG = 58,
|
ONCE_DIALOG_MONSTER = 57,
|
||||||
SPEC_ONCE_GIVE_ITEM_TERRAIN = 59,
|
ONCE_GIVE_ITEM_DIALOG = 58,
|
||||||
SPEC_ONCE_GIVE_ITEM_MONSTER = 60,
|
ONCE_GIVE_ITEM_TERRAIN = 59,
|
||||||
SPEC_ONCE_OUT_ENCOUNTER = 61,
|
ONCE_GIVE_ITEM_MONSTER = 60,
|
||||||
SPEC_ONCE_TOWN_ENCOUNTER = 62,
|
ONCE_OUT_ENCOUNTER = 61,
|
||||||
SPEC_ONCE_TRAP = 63,
|
ONCE_TOWN_ENCOUNTER = 62,
|
||||||
SPEC_SELECT_PC = 80,
|
ONCE_TRAP = 63,
|
||||||
SPEC_DAMAGE = 81,
|
SELECT_PC = 80,
|
||||||
SPEC_AFFECT_HP = 82,
|
DAMAGE = 81,
|
||||||
SPEC_AFFECT_SP = 83,
|
AFFECT_HP = 82,
|
||||||
SPEC_AFFECT_XP = 84,
|
AFFECT_SP = 83,
|
||||||
SPEC_AFFECT_SKILL_PTS = 85,
|
AFFECT_XP = 84,
|
||||||
SPEC_AFFECT_DEADNESS = 86,
|
AFFECT_SKILL_PTS = 85,
|
||||||
SPEC_AFFECT_POISON = 87,
|
AFFECT_DEADNESS = 86,
|
||||||
SPEC_AFFECT_SPEED = 88,
|
AFFECT_POISON = 87,
|
||||||
SPEC_AFFECT_INVULN = 89,
|
AFFECT_SPEED = 88,
|
||||||
SPEC_AFFECT_MAGIC_RES = 90,
|
AFFECT_INVULN = 89,
|
||||||
SPEC_AFFECT_WEBS = 91,
|
AFFECT_MAGIC_RES = 90,
|
||||||
SPEC_AFFECT_DISEASE = 92,
|
AFFECT_WEBS = 91,
|
||||||
SPEC_AFFECT_SANCTUARY = 93,
|
AFFECT_DISEASE = 92,
|
||||||
SPEC_AFFECT_CURSE_BLESS = 94,
|
AFFECT_SANCTUARY = 93,
|
||||||
SPEC_AFFECT_DUMBFOUND = 95,
|
AFFECT_CURSE_BLESS = 94,
|
||||||
SPEC_AFFECT_SLEEP = 96,
|
AFFECT_DUMBFOUND = 95,
|
||||||
SPEC_AFFECT_PARALYSIS = 97,
|
AFFECT_SLEEP = 96,
|
||||||
SPEC_AFFECT_STAT = 98,
|
AFFECT_PARALYSIS = 97,
|
||||||
SPEC_AFFECT_MAGE_SPELL = 99,
|
AFFECT_STAT = 98,
|
||||||
SPEC_AFFECT_PRIEST_SPELL = 100,
|
AFFECT_MAGE_SPELL = 99,
|
||||||
SPEC_AFFECT_GOLD = 101,
|
AFFECT_PRIEST_SPELL = 100,
|
||||||
SPEC_AFFECT_FOOD = 102,
|
AFFECT_GOLD = 101,
|
||||||
SPEC_AFFECT_ALCHEMY = 103,
|
AFFECT_FOOD = 102,
|
||||||
SPEC_AFFECT_STEALTH = 104,
|
AFFECT_ALCHEMY = 103,
|
||||||
SPEC_AFFECT_FIREWALK = 105,
|
AFFECT_STEALTH = 104,
|
||||||
SPEC_AFFECT_FLIGHT = 106,
|
AFFECT_FIREWALK = 105,
|
||||||
SPEC_IF_SDF = 130,
|
AFFECT_FLIGHT = 106,
|
||||||
SPEC_IF_TOWN_NUM = 131,
|
IF_SDF = 130,
|
||||||
SPEC_IF_RANDOM = 132,
|
IF_TOWN_NUM = 131,
|
||||||
SPEC_IF_HAVE_SPECIAL_ITEM = 133,
|
IF_RANDOM = 132,
|
||||||
SPEC_IF_SDF_COMPARE = 134,
|
IF_HAVE_SPECIAL_ITEM = 133,
|
||||||
SPEC_IF_TOWN_TER_TYPE = 135,
|
IF_SDF_COMPARE = 134,
|
||||||
SPEC_IF_OUT_TER_TYPE = 136,
|
IF_TOWN_TER_TYPE = 135,
|
||||||
SPEC_IF_HAS_GOLD = 137,
|
IF_OUT_TER_TYPE = 136,
|
||||||
SPEC_IF_HAS_FOOD = 138,
|
IF_HAS_GOLD = 137,
|
||||||
SPEC_IF_ITEM_CLASS_ON_SPACE = 139,
|
IF_HAS_FOOD = 138,
|
||||||
SPEC_IF_HAVE_ITEM_CLASS = 140,
|
IF_ITEM_CLASS_ON_SPACE = 139,
|
||||||
SPEC_IF_EQUIP_ITEM_CLASS = 141,
|
IF_HAVE_ITEM_CLASS = 140,
|
||||||
SPEC_IF_HAS_GOLD_AND_TAKE = 142,
|
IF_EQUIP_ITEM_CLASS = 141,
|
||||||
SPEC_IF_HAS_FOOD_AND_TAKE = 143,
|
IF_HAS_GOLD_AND_TAKE = 142,
|
||||||
SPEC_IF_ITEM_CLASS_ON_SPACE_AND_TAKE = 144,
|
IF_HAS_FOOD_AND_TAKE = 143,
|
||||||
SPEC_IF_HAVE_ITEM_CLASS_AND_TAKE = 145,
|
IF_ITEM_CLASS_ON_SPACE_AND_TAKE = 144,
|
||||||
SPEC_IF_EQUIP_ITEM_CLASS_AND_TAKE = 146,
|
IF_HAVE_ITEM_CLASS_AND_TAKE = 145,
|
||||||
SPEC_IF_DAY_REACHED = 147,
|
IF_EQUIP_ITEM_CLASS_AND_TAKE = 146,
|
||||||
SPEC_IF_BARRELS = 148,
|
IF_DAY_REACHED = 147,
|
||||||
SPEC_IF_CRATES = 149,
|
IF_BARRELS = 148,
|
||||||
SPEC_IF_EVENT_OCCURRED = 150,
|
IF_CRATES = 149,
|
||||||
SPEC_IF_HAS_CAVE_LORE = 151,
|
IF_EVENT_OCCURRED = 150,
|
||||||
SPEC_IF_HAS_WOODSMAN = 152,
|
IF_HAS_CAVE_LORE = 151,
|
||||||
SPEC_IF_ENOUGH_MAGE_LORE = 153,
|
IF_HAS_WOODSMAN = 152,
|
||||||
SPEC_IF_TEXT_RESPONSE = 154,
|
IF_ENOUGH_MAGE_LORE = 153,
|
||||||
SPEC_IF_SDF_EQ = 155,
|
IF_TEXT_RESPONSE = 154,
|
||||||
SPEC_MAKE_TOWN_HOSTILE = 170,
|
IF_SDF_EQ = 155,
|
||||||
SPEC_TOWN_CHANGE_TER = 171,
|
MAKE_TOWN_HOSTILE = 170,
|
||||||
SPEC_TOWN_SWAP_TER = 172,
|
TOWN_CHANGE_TER = 171,
|
||||||
SPEC_TOWN_TRANS_TER = 173,
|
TOWN_SWAP_TER = 172,
|
||||||
SPEC_TOWN_MOVE_PARTY = 174,
|
TOWN_TRANS_TER = 173,
|
||||||
SPEC_TOWN_HIT_SPACE = 175,
|
TOWN_MOVE_PARTY = 174,
|
||||||
SPEC_TOWN_EXPLODE_SPACE = 176,
|
TOWN_HIT_SPACE = 175,
|
||||||
SPEC_TOWN_LOCK_SPACE = 177,
|
TOWN_EXPLODE_SPACE = 176,
|
||||||
SPEC_TOWN_UNLOCK_SPACE = 178,
|
TOWN_LOCK_SPACE = 177,
|
||||||
SPEC_TOWN_SFX_BURST = 179,
|
TOWN_UNLOCK_SPACE = 178,
|
||||||
SPEC_TOWN_CREATE_WANDERING = 180,
|
TOWN_SFX_BURST = 179,
|
||||||
SPEC_TOWN_PLACE_MONST = 181,
|
TOWN_CREATE_WANDERING = 180,
|
||||||
SPEC_TOWN_DESTROY_MONST = 182,
|
TOWN_PLACE_MONST = 181,
|
||||||
SPEC_TOWN_NUKE_MONSTS = 183,
|
TOWN_DESTROY_MONST = 182,
|
||||||
SPEC_TOWN_GENERIC_LEVER = 184,
|
TOWN_NUKE_MONSTS = 183,
|
||||||
SPEC_TOWN_GENERIC_PORTAL = 185,
|
TOWN_GENERIC_LEVER = 184,
|
||||||
SPEC_TOWN_GENERIC_BUTTON = 186,
|
TOWN_GENERIC_PORTAL = 185,
|
||||||
SPEC_TOWN_GENERIC_STAIR = 187,
|
TOWN_GENERIC_BUTTON = 186,
|
||||||
SPEC_TOWN_LEVER = 188,
|
TOWN_GENERIC_STAIR = 187,
|
||||||
SPEC_TOWN_PORTAL = 189,
|
TOWN_LEVER = 188,
|
||||||
SPEC_TOWN_STAIR = 190,
|
TOWN_PORTAL = 189,
|
||||||
SPEC_TOWN_RELOCATE = 191, // Relocate outdoors
|
TOWN_STAIR = 190,
|
||||||
SPEC_TOWN_PLACE_ITEM = 192,
|
TOWN_RELOCATE = 191, // Relocate outdoors
|
||||||
SPEC_TOWN_SPLIT_PARTY = 193,
|
TOWN_PLACE_ITEM = 192,
|
||||||
SPEC_TOWN_REUNITE_PARTY = 194,
|
TOWN_SPLIT_PARTY = 193,
|
||||||
SPEC_TOWN_TIMER_START = 195,
|
TOWN_REUNITE_PARTY = 194,
|
||||||
SPEC_RECT_PLACE_FIRE = 200,
|
TOWN_TIMER_START = 195,
|
||||||
SPEC_RECT_PLACE_FORCE = 201,
|
RECT_PLACE_FIRE = 200,
|
||||||
SPEC_RECT_PLACE_ICE = 202,
|
RECT_PLACE_FORCE = 201,
|
||||||
SPEC_RECT_PLACE_BLADE = 203,
|
RECT_PLACE_ICE = 202,
|
||||||
SPEC_RECT_PLACE_SCLOUD = 204,
|
RECT_PLACE_BLADE = 203,
|
||||||
SPEC_RECT_PLACE_SLEEP = 205,
|
RECT_PLACE_SCLOUD = 204,
|
||||||
SPEC_RECT_PLACE_QUICKFIRE = 206,
|
RECT_PLACE_SLEEP = 205,
|
||||||
SPEC_RECT_PLACE_FIRE_BARR = 207,
|
RECT_PLACE_QUICKFIRE = 206,
|
||||||
SPEC_RECT_PLACE_FORCE_BARR = 208,
|
RECT_PLACE_FIRE_BARR = 207,
|
||||||
SPEC_RECT_CLEANSE = 209,
|
RECT_PLACE_FORCE_BARR = 208,
|
||||||
SPEC_RECT_PLACE_SFX = 210,
|
RECT_CLEANSE = 209,
|
||||||
SPEC_RECT_PLACE_OBJECT = 211, // place barrels, etc
|
RECT_PLACE_SFX = 210,
|
||||||
SPEC_RECT_MOVE_ITEMS = 212,
|
RECT_PLACE_OBJECT = 211, // place barrels, etc
|
||||||
SPEC_RECT_DESTROY_ITEMS = 213,
|
RECT_MOVE_ITEMS = 212,
|
||||||
SPEC_RECT_CHANGE_TER = 214,
|
RECT_DESTROY_ITEMS = 213,
|
||||||
SPEC_RECT_SWAP_TER = 215,
|
RECT_CHANGE_TER = 214,
|
||||||
SPEC_RECT_TRANS_TER = 216,
|
RECT_SWAP_TER = 215,
|
||||||
SPEC_RECT_LOCK = 217,
|
RECT_TRANS_TER = 216,
|
||||||
SPEC_RECT_UNLOCK = 218,
|
RECT_LOCK = 217,
|
||||||
SPEC_OUT_MAKE_WANDER = 225,
|
RECT_UNLOCK = 218,
|
||||||
SPEC_OUT_CHANGE_TER = 226,
|
OUT_MAKE_WANDER = 225,
|
||||||
SPEC_OUT_PLACE_ENCOUNTER = 227,
|
OUT_CHANGE_TER = 226,
|
||||||
SPEC_OUT_MOVE_PARTY = 228,
|
OUT_PLACE_ENCOUNTER = 227,
|
||||||
SPEC_OUT_STORE = 229,
|
OUT_MOVE_PARTY = 228,
|
||||||
|
OUT_STORE = 229,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class eSpecCat {
|
||||||
|
INVALID = -1,
|
||||||
|
GENERAL, ONCE, AFFECT, IF_THEN, TOWN, RECT, OUTDOOR
|
||||||
|
};
|
||||||
|
|
||||||
|
inline eSpecCat getNodeCategory(eSpecType node) {
|
||||||
|
int code = (int) node;
|
||||||
|
if(code >= 0 && code <= 27)
|
||||||
|
return eSpecCat::GENERAL;
|
||||||
|
if(code >= 50 && code <= 63)
|
||||||
|
return eSpecCat::ONCE;
|
||||||
|
if(code >= 80 && code <= 106)
|
||||||
|
return eSpecCat::AFFECT;
|
||||||
|
if(code >= 130 && code <= 155)
|
||||||
|
return eSpecCat::IF_THEN;
|
||||||
|
if(code >= 170 && code <= 195)
|
||||||
|
return eSpecCat::TOWN;
|
||||||
|
if(code >= 200 && code <= 218)
|
||||||
|
return eSpecCat::RECT;
|
||||||
|
if(code >= 225 && code <= 229)
|
||||||
|
return eSpecCat::OUTDOOR;
|
||||||
|
return eSpecCat::INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
enum eTalkNodeType {
|
enum eTalkNodeType {
|
||||||
TALK_REGULAR = 0,
|
TALK_REGULAR = 0,
|
||||||
TALK_DEP_ON_SDF = 1,
|
TALK_DEP_ON_SDF = 1,
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
#include "oldstructs.h"
|
#include "oldstructs.h"
|
||||||
|
|
||||||
cSpecial::cSpecial(){
|
cSpecial::cSpecial(){
|
||||||
type = 0;
|
type = eSpecType::NONE;
|
||||||
sd1 = -1;
|
sd1 = -1;
|
||||||
sd2 = -1;
|
sd2 = -1;
|
||||||
pic = -1;
|
pic = -1;
|
||||||
@@ -30,13 +30,15 @@ cSpecial::cSpecial(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
cSpecial& cSpecial::operator = (legacy::special_node_type& old){
|
cSpecial& cSpecial::operator = (legacy::special_node_type& old){
|
||||||
type = old.type;
|
type = (eSpecType)old.type;
|
||||||
sd1 = old.sd1;
|
sd1 = old.sd1;
|
||||||
sd2 = old.sd2;
|
sd2 = old.sd2;
|
||||||
pic = old.pic;
|
pic = old.pic;
|
||||||
if(type == 55 || type == 58 || type == 189)
|
// Large dialogs with 36x36 dialog graphics
|
||||||
|
if(old.type == 55 || old.type == 58 || old.type == 189)
|
||||||
pic -= 700;
|
pic -= 700;
|
||||||
else if(type == 57 || type == 60)
|
// Large dialogs with monster graphics
|
||||||
|
else if(old.type == 57 || old.type == 60)
|
||||||
pic -= 400;
|
pic -= 400;
|
||||||
m1 = old.m1;
|
m1 = old.m1;
|
||||||
m2 = old.m2;
|
m2 = old.m2;
|
||||||
@@ -47,3 +49,17 @@ cSpecial& cSpecial::operator = (legacy::special_node_type& old){
|
|||||||
jumpto = old.jumpto;
|
jumpto = old.jumpto;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::ostream& operator << (std::ostream& out, eSpecType& e) {
|
||||||
|
return out << (int) e;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: This should probably understand symbolic names as well?
|
||||||
|
std::istream& operator >> (std::istream& in, eSpecType& e) {
|
||||||
|
int i;
|
||||||
|
in >> i;
|
||||||
|
e = (eSpecType) i;
|
||||||
|
if(getNodeCategory(e) == eSpecCat::INVALID)
|
||||||
|
e = eSpecType::ERROR;
|
||||||
|
return in;
|
||||||
|
}
|
||||||
|
@@ -17,7 +17,7 @@ namespace legacy { struct special_node_type; };
|
|||||||
|
|
||||||
class cSpecial {
|
class cSpecial {
|
||||||
public:
|
public:
|
||||||
short type;
|
eSpecType type;
|
||||||
short sd1;
|
short sd1;
|
||||||
short sd2;
|
short sd2;
|
||||||
short pic;
|
short pic;
|
||||||
@@ -46,4 +46,7 @@ struct pending_special_type {
|
|||||||
long long trigger_time;
|
long long trigger_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::ostream& operator << (std::ostream& out, eSpecType& e);
|
||||||
|
std::istream& operator >> (std::istream& in, eSpecType& e);
|
||||||
|
|
||||||
#endif
|
#endif
|
@@ -23,7 +23,7 @@ class SpecialParser {
|
|||||||
static void prep_add_symbol(char c);
|
static void prep_add_symbol(char c);
|
||||||
static void add_symbol(int i);
|
static void add_symbol(int i);
|
||||||
static void add_command();
|
static void add_command();
|
||||||
static void set_type(eSpecNodeType type);
|
static void set_type(eSpecType type);
|
||||||
static void skip_to(int i);
|
static void skip_to(int i);
|
||||||
static void for_sdf();
|
static void for_sdf();
|
||||||
static void for_pic();
|
static void for_pic();
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
#include "special.h"
|
#include "special.h"
|
||||||
|
|
||||||
namespace ph = boost::phoenix;
|
namespace ph = boost::phoenix;
|
||||||
qi::symbols<char, eSpecNodeType> opcode;
|
qi::symbols<char, eSpecType> opcode;
|
||||||
|
|
||||||
#define _(fcn) SpecialParser::fcn
|
#define _(fcn) SpecialParser::fcn
|
||||||
|
|
||||||
@@ -66,113 +66,113 @@ SpecialParser::SpecialParser() {
|
|||||||
struct initer {
|
struct initer {
|
||||||
initer() {
|
initer() {
|
||||||
opcode.add
|
opcode.add
|
||||||
("null", SPEC_NULL)
|
("null", eSpecType::NONE)
|
||||||
("set-sdf", SPEC_SET_SDF)
|
("set-sdf", eSpecType::SET_SDF)
|
||||||
("inc-sdf", SPEC_INC_SDF)
|
("inc-sdf", eSpecType::INC_SDF)
|
||||||
("disp-msg", SPEC_DISPLAY_MSG)
|
("disp-msg", eSpecType::DISPLAY_MSG)
|
||||||
("secret-pass", SPEC_SECRET_PASSAGE)
|
("secret-pass", eSpecType::SECRET_PASSAGE)
|
||||||
("disp-sm-msg", SPEC_DISPLAY_SM_MSG)
|
("disp-sm-msg", eSpecType::DISPLAY_SM_MSG)
|
||||||
("flip-sdf", SPEC_FLIP_SDF)
|
("flip-sdf", eSpecType::FLIP_SDF)
|
||||||
("filter-context", SPEC_OUT_BLOCK)
|
("filter-context", eSpecType::OUT_BLOCK)
|
||||||
("block-move", SPEC_CANT_ENTER)
|
("block-move", eSpecType::CANT_ENTER)
|
||||||
("change-time", SPEC_CHANGE_TIME)
|
("change-time", eSpecType::CHANGE_TIME)
|
||||||
("start-timer-scen", SPEC_SCEN_TIMER_START)
|
("start-timer-scen", eSpecType::SCEN_TIMER_START)
|
||||||
("play-sound", SPEC_PLAY_SOUND)
|
("play-sound", eSpecType::PLAY_SOUND)
|
||||||
("change-horse", SPEC_CHANGE_HORSE_OWNER)
|
("change-horse", eSpecType::CHANGE_HORSE_OWNER)
|
||||||
("change-boat", SPEC_CHANGE_BOAT_OWNER)
|
("change-boat", eSpecType::CHANGE_BOAT_OWNER)
|
||||||
("town-visible", SPEC_SET_TOWN_VISIBILITY)
|
("town-visible", eSpecType::SET_TOWN_VISIBILITY)
|
||||||
("set-event", SPEC_MAJOR_EVENT_OCCURRED)
|
("set-event", eSpecType::MAJOR_EVENT_OCCURRED)
|
||||||
("force-give", SPEC_FORCED_GIVE)
|
("force-give", eSpecType::FORCED_GIVE)
|
||||||
("buy-item-class", SPEC_BUY_ITEMS_OF_TYPE)
|
("buy-item-class", eSpecType::BUY_ITEMS_OF_TYPE)
|
||||||
("call-global", SPEC_CALL_GLOBAL)
|
("call-global", eSpecType::CALL_GLOBAL)
|
||||||
("set-sdf-row", SPEC_SET_SDF_ROW)
|
("set-sdf-row", eSpecType::SET_SDF_ROW)
|
||||||
("copy-sdf", SPEC_COPY_SDF)
|
("copy-sdf", eSpecType::COPY_SDF)
|
||||||
("rest", SPEC_REST)
|
("rest", eSpecType::REST)
|
||||||
("set-wander-fight", SPEC_WANDERING_WILL_FIGHT)
|
("set-wander-fight", eSpecType::WANDERING_WILL_FIGHT)
|
||||||
("end-scen", SPEC_END_SCENARIO)
|
("end-scen", eSpecType::END_SCENARIO)
|
||||||
("once-give-item", SPEC_ONCE_GIVE_ITEM)
|
("once-give-item", eSpecType::ONCE_GIVE_ITEM)
|
||||||
("once-give-spec-item", SPEC_ONCE_GIVE_SPEC_ITEM)
|
("once-give-spec-item", eSpecType::ONCE_GIVE_SPEC_ITEM)
|
||||||
("once", SPEC_ONCE_NULL)
|
("once", eSpecType::ONCE_NULL)
|
||||||
("once-set-sdf", SPEC_ONCE_SET_SDF)
|
("once-set-sdf", eSpecType::ONCE_SET_SDF)
|
||||||
("once-disp-msg", SPEC_ONCE_DISPLAY_MSG)
|
("once-disp-msg", eSpecType::ONCE_DISPLAY_MSG)
|
||||||
("once-dlog", SPEC_ONCE_DIALOG)
|
("once-dlog", eSpecType::ONCE_DIALOG)
|
||||||
("once-give-dlog", SPEC_ONCE_GIVE_ITEM_DIALOG)
|
("once-give-dlog", eSpecType::ONCE_GIVE_ITEM_DIALOG)
|
||||||
("once-encounter", SPEC_ONCE_OUT_ENCOUNTER)
|
("once-encounter", eSpecType::ONCE_OUT_ENCOUNTER)
|
||||||
("once-trap", SPEC_ONCE_TRAP)
|
("once-trap", eSpecType::ONCE_TRAP)
|
||||||
("select-pc", SPEC_SELECT_PC)
|
("select-pc", eSpecType::SELECT_PC)
|
||||||
("damage", SPEC_DAMAGE)
|
("damage", eSpecType::DAMAGE)
|
||||||
("hp", SPEC_AFFECT_HP)
|
("hp", eSpecType::AFFECT_HP)
|
||||||
("sp", SPEC_AFFECT_SP)
|
("sp", eSpecType::AFFECT_SP)
|
||||||
("xp", SPEC_AFFECT_XP)
|
("xp", eSpecType::AFFECT_XP)
|
||||||
("skill-pts", SPEC_AFFECT_SKILL_PTS)
|
("skill-pts", eSpecType::AFFECT_SKILL_PTS)
|
||||||
("death", SPEC_AFFECT_DEADNESS)
|
("death", eSpecType::AFFECT_DEADNESS)
|
||||||
("status", SPEC_AFFECT_POISON)
|
("status", eSpecType::AFFECT_POISON)
|
||||||
("statistic", SPEC_AFFECT_STAT)
|
("statistic", eSpecType::AFFECT_STAT)
|
||||||
("spell", SPEC_AFFECT_MAGE_SPELL)
|
("spell", eSpecType::AFFECT_MAGE_SPELL)
|
||||||
("gold", SPEC_AFFECT_GOLD)
|
("gold", eSpecType::AFFECT_GOLD)
|
||||||
("food", SPEC_AFFECT_FOOD)
|
("food", eSpecType::AFFECT_FOOD)
|
||||||
("alchemy", SPEC_AFFECT_ALCHEMY)
|
("alchemy", eSpecType::AFFECT_ALCHEMY)
|
||||||
("stealth", SPEC_AFFECT_STEALTH)
|
("stealth", eSpecType::AFFECT_STEALTH)
|
||||||
("firewalk", SPEC_AFFECT_FIREWALK)
|
("firewalk", eSpecType::AFFECT_FIREWALK)
|
||||||
("flight", SPEC_AFFECT_FLIGHT)
|
("flight", eSpecType::AFFECT_FLIGHT)
|
||||||
("if-sdf", SPEC_IF_SDF)
|
("if-sdf", eSpecType::IF_SDF)
|
||||||
("if-town", SPEC_IF_TOWN_NUM)
|
("if-town", eSpecType::IF_TOWN_NUM)
|
||||||
("if-spec-item", SPEC_IF_HAVE_SPECIAL_ITEM)
|
("if-spec-item", eSpecType::IF_HAVE_SPECIAL_ITEM)
|
||||||
("if-sdf-compare", SPEC_IF_SDF_COMPARE)
|
("if-sdf-compare", eSpecType::IF_SDF_COMPARE)
|
||||||
("if-ter", SPEC_IF_TOWN_TER_TYPE)
|
("if-ter", eSpecType::IF_TOWN_TER_TYPE)
|
||||||
("if-gold", SPEC_IF_HAS_GOLD_AND_TAKE)
|
("if-gold", eSpecType::IF_HAS_GOLD_AND_TAKE)
|
||||||
("if-food", SPEC_IF_HAS_FOOD_AND_TAKE)
|
("if-food", eSpecType::IF_HAS_FOOD_AND_TAKE)
|
||||||
("if-item-class-on-space", SPEC_IF_ITEM_CLASS_ON_SPACE_AND_TAKE)
|
("if-item-class-on-space", eSpecType::IF_ITEM_CLASS_ON_SPACE_AND_TAKE)
|
||||||
("if-item-class", SPEC_IF_HAVE_ITEM_CLASS_AND_TAKE)
|
("if-item-class", eSpecType::IF_HAVE_ITEM_CLASS_AND_TAKE)
|
||||||
("if-item-class-equip", SPEC_IF_EQUIP_ITEM_CLASS_AND_TAKE)
|
("if-item-class-equip", eSpecType::IF_EQUIP_ITEM_CLASS_AND_TAKE)
|
||||||
("if-day", SPEC_IF_DAY_REACHED)
|
("if-day", eSpecType::IF_DAY_REACHED)
|
||||||
("if-field", SPEC_IF_BARRELS)
|
("if-field", eSpecType::IF_BARRELS)
|
||||||
("if-object", SPEC_IF_CRATES)
|
("if-object", eSpecType::IF_CRATES)
|
||||||
("if-event", SPEC_IF_EVENT_OCCURRED)
|
("if-event", eSpecType::IF_EVENT_OCCURRED)
|
||||||
("if-cave-lore", SPEC_IF_HAS_CAVE_LORE)
|
("if-cave-lore", eSpecType::IF_HAS_CAVE_LORE)
|
||||||
("if-woodsman", SPEC_IF_HAS_WOODSMAN)
|
("if-woodsman", eSpecType::IF_HAS_WOODSMAN)
|
||||||
("if-mage-lore", SPEC_IF_ENOUGH_MAGE_LORE)
|
("if-mage-lore", eSpecType::IF_ENOUGH_MAGE_LORE)
|
||||||
("if-response", SPEC_IF_TEXT_RESPONSE)
|
("if-response", eSpecType::IF_TEXT_RESPONSE)
|
||||||
("if-sdf-eq", SPEC_IF_SDF_EQ)
|
("if-sdf-eq", eSpecType::IF_SDF_EQ)
|
||||||
("town-attitude", SPEC_MAKE_TOWN_HOSTILE)
|
("town-attitude", eSpecType::MAKE_TOWN_HOSTILE)
|
||||||
("change-ter", SPEC_TOWN_CHANGE_TER)
|
("change-ter", eSpecType::TOWN_CHANGE_TER)
|
||||||
("swap-ter", SPEC_TOWN_SWAP_TER)
|
("swap-ter", eSpecType::TOWN_SWAP_TER)
|
||||||
("trans-ter", SPEC_TOWN_TRANS_TER)
|
("trans-ter", eSpecType::TOWN_TRANS_TER)
|
||||||
("move-party", SPEC_TOWN_MOVE_PARTY)
|
("move-party", eSpecType::TOWN_MOVE_PARTY)
|
||||||
("hit-space", SPEC_TOWN_HIT_SPACE)
|
("hit-space", eSpecType::TOWN_HIT_SPACE)
|
||||||
("explode-space", SPEC_TOWN_EXPLODE_SPACE)
|
("explode-space", eSpecType::TOWN_EXPLODE_SPACE)
|
||||||
("lock-space", SPEC_TOWN_LOCK_SPACE)
|
("lock-space", eSpecType::TOWN_LOCK_SPACE)
|
||||||
("unlock-space", SPEC_TOWN_UNLOCK_SPACE)
|
("unlock-space", eSpecType::TOWN_UNLOCK_SPACE)
|
||||||
("anim-explode", SPEC_TOWN_SFX_BURST)
|
("anim-explode", eSpecType::TOWN_SFX_BURST)
|
||||||
("make-wandering", SPEC_TOWN_CREATE_WANDERING)
|
("make-wandering", eSpecType::TOWN_CREATE_WANDERING)
|
||||||
("place-monst", SPEC_TOWN_PLACE_MONST)
|
("place-monst", eSpecType::TOWN_PLACE_MONST)
|
||||||
("destroy-most", SPEC_TOWN_DESTROY_MONST)
|
("destroy-most", eSpecType::TOWN_DESTROY_MONST)
|
||||||
("nuke-monsts", SPEC_TOWN_NUKE_MONSTS)
|
("nuke-monsts", eSpecType::TOWN_NUKE_MONSTS)
|
||||||
("lever-generic", SPEC_TOWN_GENERIC_LEVER)
|
("lever-generic", eSpecType::TOWN_GENERIC_LEVER)
|
||||||
("portal-generic", SPEC_TOWN_GENERIC_PORTAL)
|
("portal-generic", eSpecType::TOWN_GENERIC_PORTAL)
|
||||||
("stair-generic", SPEC_TOWN_GENERIC_STAIR)
|
("stair-generic", eSpecType::TOWN_GENERIC_STAIR)
|
||||||
("button-generic", SPEC_TOWN_GENERIC_BUTTON)
|
("button-generic", eSpecType::TOWN_GENERIC_BUTTON)
|
||||||
("lever", SPEC_TOWN_LEVER)
|
("lever", eSpecType::TOWN_LEVER)
|
||||||
("portal", SPEC_TOWN_PORTAL)
|
("portal", eSpecType::TOWN_PORTAL)
|
||||||
("stair", SPEC_TOWN_STAIR)
|
("stair", eSpecType::TOWN_STAIR)
|
||||||
("set-sector", SPEC_TOWN_RELOCATE)
|
("set-sector", eSpecType::TOWN_RELOCATE)
|
||||||
("place-item", SPEC_TOWN_PLACE_ITEM)
|
("place-item", eSpecType::TOWN_PLACE_ITEM)
|
||||||
("split-party", SPEC_TOWN_SPLIT_PARTY)
|
("split-party", eSpecType::TOWN_SPLIT_PARTY)
|
||||||
("unite-party", SPEC_TOWN_REUNITE_PARTY)
|
("unite-party", eSpecType::TOWN_REUNITE_PARTY)
|
||||||
("start-timer-town", SPEC_TOWN_TIMER_START)
|
("start-timer-town", eSpecType::TOWN_TIMER_START)
|
||||||
("rect-place-field", SPEC_RECT_PLACE_BLADE)
|
("rect-place-field", eSpecType::RECT_PLACE_BLADE)
|
||||||
("rect-cleanse", SPEC_RECT_CLEANSE)
|
("rect-cleanse", eSpecType::RECT_CLEANSE)
|
||||||
("rect-place-sfx", SPEC_RECT_PLACE_SFX)
|
("rect-place-sfx", eSpecType::RECT_PLACE_SFX)
|
||||||
("rect-place-object", SPEC_RECT_PLACE_OBJECT)
|
("rect-place-object", eSpecType::RECT_PLACE_OBJECT)
|
||||||
("rect-move-items", SPEC_RECT_MOVE_ITEMS)
|
("rect-move-items", eSpecType::RECT_MOVE_ITEMS)
|
||||||
("rect-destroy-items", SPEC_RECT_DESTROY_ITEMS)
|
("rect-destroy-items", eSpecType::RECT_DESTROY_ITEMS)
|
||||||
("rect-change-ter", SPEC_RECT_CHANGE_TER)
|
("rect-change-ter", eSpecType::RECT_CHANGE_TER)
|
||||||
("rect-swap-ter", SPEC_RECT_SWAP_TER)
|
("rect-swap-ter", eSpecType::RECT_SWAP_TER)
|
||||||
("rect-trans-ter", SPEC_RECT_TRANS_TER)
|
("rect-trans-ter", eSpecType::RECT_TRANS_TER)
|
||||||
("rect-lock", SPEC_RECT_LOCK)
|
("rect-lock", eSpecType::RECT_LOCK)
|
||||||
("rect-unlock", SPEC_RECT_UNLOCK)
|
("rect-unlock", eSpecType::RECT_UNLOCK)
|
||||||
("make-out-monst", SPEC_OUT_PLACE_ENCOUNTER)
|
("make-out-monst", eSpecType::OUT_PLACE_ENCOUNTER)
|
||||||
("start-shop", SPEC_OUT_STORE)
|
("start-shop", eSpecType::OUT_STORE)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -187,7 +187,7 @@ void SpecialParser::init_file() {
|
|||||||
void SpecialParser::init_block() {
|
void SpecialParser::init_block() {
|
||||||
cur_node++;
|
cur_node++;
|
||||||
temp_symbol.clear();
|
temp_symbol.clear();
|
||||||
curSpec.type = SPEC_NULL;
|
curSpec.type = eSpecType::NONE;
|
||||||
curSpec.sd1 = -1;
|
curSpec.sd1 = -1;
|
||||||
curSpec.sd2 = -1;
|
curSpec.sd2 = -1;
|
||||||
curSpec.m1 = -1;
|
curSpec.m1 = -1;
|
||||||
@@ -217,7 +217,7 @@ void SpecialParser::add_command() {
|
|||||||
specials[cur_node] = curSpec;
|
specials[cur_node] = curSpec;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpecialParser::set_type(eSpecNodeType type) {
|
void SpecialParser::set_type(eSpecType type) {
|
||||||
curSpec.type = type;
|
curSpec.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user