Generalize the special node types dealing with fields.

- IF_FIELDS (formerly IF_OBJECTS) can now deal with any kind of field (apart from special spots, which aren't technically a field but share some implementation details).
- The twelve RECT_PLACE_XXX field nodes (well, one of them was RECT_CLEANSE) have been collapsed into one, allowing the placement of any kind of field (apart from special spots). In particular, antimagic fields can now be placed! (There wasn't a node for them before.) As a bonus, since it exists in the field type enum, RECT_PLACE_FIELDS can also smash fragile wall terrains (like the Move Mountains spell).
This commit is contained in:
2014-12-22 23:34:28 -05:00
parent fb1f97e2f1
commit f4c9d98808
4 changed files with 174 additions and 108 deletions

View File

@@ -662,7 +662,7 @@ enum class eSpecType {
IF_HAVE_ITEM_CLASS_AND_TAKE = 145,
IF_EQUIP_ITEM_CLASS_AND_TAKE = 146,
IF_DAY_REACHED = 147,
IF_OBJECTS = 148,
IF_FIELDS = 148,
IF_PARTY_SIZE = 149,
IF_EVENT_OCCURRED = 150,
IF_SPECIES = 151,
@@ -700,18 +700,18 @@ enum class eSpecType {
TOWN_TIMER_START = 195,
TOWN_CHANGE_LIGHTING = 196,
TOWN_SET_ATTITUDE = 197,
RECT_PLACE_FIRE = 200,
RECT_PLACE_FORCE = 201,
RECT_PLACE_ICE = 202,
RECT_PLACE_BLADE = 203,
RECT_PLACE_SCLOUD = 204,
RECT_PLACE_SLEEP = 205,
RECT_PLACE_QUICKFIRE = 206,
RECT_PLACE_FIRE_BARR = 207,
RECT_PLACE_FORCE_BARR = 208,
RECT_CLEANSE = 209,
RECT_PLACE_SFX = 210,
RECT_PLACE_OBJECT = 211, // place barrels, etc
RECT_PLACE_FIELD = 200,
UNUSED2 = 201,
UNUSED3 = 202,
UNUSED4 = 203,
UNUSED5 = 204,
UNUSED6 = 205,
UNUSED7 = 206,
UNUSED8 = 207,
UNUSED9 = 208,
UNUSED10 = 209,
UNUSED11 = 210,
UNUSED12 = 211,
RECT_MOVE_ITEMS = 212,
RECT_DESTROY_ITEMS = 213,
RECT_CHANGE_TER = 214,