<URL: http://bugs.freeciv.org/Ticket/Display.html?id=2581 >

 Adding bugtracker back to loop.

2009/5/5 Raahul Kumar <raahul_da_...@yahoo.com>:
>>As currently implemented, this patch is huge step backwards in
>>relation to gen-movement. It even restores some functions we have
>>worked so hard to get rid of. It assumes a lot of unit class related
>>things to always be like they are in default ruleset (checking
>>is_ground_unit() & co instead of actual unit class properties). My
>>stealthy super spies are considered submarines :-)
>>I've not spent time on detailed analysis if, and how, these issues
>>can be corrected. It seems obvious starting point that layer unit
>>belongs to is part of unit class definition.
>>Good thing is that this is implemented as ruleset option. If above
>>issues can be solved, I'm all for taking this option to game.
>>- ML
> Sure, so do you want me to change unit definitions to include what layer
> a unit is? Something like enum{"Air","Underwater","Land","Sea"}. I did
> think that adding this kind of definition was redundant with move types of
> units already defined, but unfortunately that cursed helicopter move type
> makes simple things difficult.

 We try to minimize uses of move_type, and to define movement
properties more flexibly. We should get rid of move_type completely in
the end. So adding layers enum seems like correct thing to do. But do
you really need separate "land" and "sea" layers? What layer one would
use for amphibious unit, then?

> Or I could just add a new unitclass_submarine
> and get the unitclass return type to help me out in making the layer
> judgements.

 Uh, you would still need layer information in that unitclass
structure, don't you?

 Since splitting unit classes to two greatly increases number of
effects one would need (almost same set of effects for both classes),
I would add layer information to unit_type rather than unit_class.
That way we don't need separate class for submarine.

> I think you only have a problem with use of is ground unit and is sub unit,
> not
> with use of unit class flags?

 You can't determine other properties from unit class flag than what
flag is documented to tell you. Just because there's correlation
between properties in default ruleset, that's not necessarily the case
with custom rulesets.

> I take it is_sub_unit, is_air_unit and the rest that I added to movement.h
> can just go away?

 They should go.

> By the way, the flags for Spy and diplomat are:
> flags         = "Diplomat", "IgZOC", "NonMil", "Spy"
> So nope, no land attack and partial Invis combined except for submarine.

 I were not referring to default ruleset (although you are correct in
that my stealth spy does not have "No_Land_Attack" flag)

 - ML

Freeciv-dev mailing list

Reply via email to