Open stm2 opened 8 years ago
I'm drawing a blank here. I have a vague memory that says this relates to exploits with Dolphins, but I cannot remember every weird thing that players have ever done.
Why not allow a Dolphin to enter a Ship? Maybe they where not allowed in coast regions at all and the trick was to put them on a ship and sail them on land. But if Dolphins are not allowed on a ship, this makes them weak, as the cannot stay with the mage when he is sailing (perhaps with magic speed) away.
I think there should be a option in the XML that a (future)race (Stone Giants, Wyrm, Dwarfs, Cats :-) just kidding) may be not allowed on a ship (can sail default on, off to be set in the XML). Then check only this value when entering or creating a ship.
enter_ship has a nice logic, which even comes with test coverage: You can enter a ship if your race has either of the RCF_CANSAIL, RCF_WALK, RCF_FLY flags set. But this is not the same everywhere. For example, in build.c, when you build a new ship, you only enter it if you have RCF_CANSAIL.
Also, the comment in enter_Ship says this is "to disallow swimmers from entering land inside ships". But there are afaics no swimmers that would be disallowed on land, at least in coastal regions.
I'm unsure what to do. Remove RCF_WALK/FLY option from enter_ship? Remove the cansail flag altogether (and the restriction to enter ships)?
Note that the race flags default to RCF_CANSAIL set, which is defined in xmlreader.c:parse_races, which is not what I would have expected. Note also that shadowdemons and -masters are the only races not allowed on ships. Why all the hate? Is cansail simply deprecated?