1
0
forked from 0ad/0ad
0ad/source/tools/rmgen/simpleconstraints.h
Matei 467b14e928 - Added stay-in-tile-class and border-tile-class constraints.
- Made objects snap to terrain (the game does this automatically for
entities but it was a problem with actors)
- Small enhancements to the RMS API
- New version of cantabrian_highlands

This was SVN commit r2688.
2005-09-08 01:20:51 +00:00

68 lines
1.6 KiB
C++

#ifndef __SIMPLECONSTRAINTS_H__
#define __SIMPLECONSTRAINTS_H__
#include "constraint.h"
#include "map.h"
#include "area.h"
#include "tileclass.h"
class NullConstraint : public Constraint {
public:
virtual bool allows(Map* m, int x, int y);
};
class AndConstraint : public Constraint {
private:
std::vector<Constraint*> constraints;
public:
AndConstraint(const std::vector<Constraint*>& constraints);
~AndConstraint();
virtual bool allows(Map* m, int x, int y);
};
class AvoidAreaConstraint : public Constraint {
private:
Area* area;
public:
AvoidAreaConstraint(Area* area);
virtual bool allows(Map* m, int x, int y);
};
class AvoidTextureConstraint : public Constraint {
private:
int textureId;
public:
AvoidTextureConstraint(int textureId);
virtual bool allows(Map* m, int x, int y);
};
class AvoidTileClassConstraint : public Constraint {
private:
TileClass* tileClass;
float distance;
public:
AvoidTileClassConstraint(TileClass* tileClass, float distance);
virtual bool allows(Map* m, int x, int y);
};
class StayInTileClassConstraint : public Constraint {
private:
TileClass* tileClass;
float distance;
public:
StayInTileClassConstraint(TileClass* tileClass, float distance);
virtual bool allows(Map* m, int x, int y);
};
class BorderTileClassConstraint : public Constraint {
private:
TileClass* tileClass;
float distanceInside;
float distanceOutside;
public:
BorderTileClassConstraint(TileClass* tileClass, float distanceInside, float distanceOutside);
virtual bool allows(Map* m, int x, int y);
};
#endif